Hoy he escrito un nuevo artículo para la gente de @GenbetaDev saliéndome un poco de mis temas habituales de Java y centrandome en el mundo de las bases de datos . En este artículo se realiza una introducción a las relaciones ternarias, que es uno de los conceptos de bases de datos que mas cuesta entender a la gente que esta empezando espero que os sea de utilidad.
Cecilio hace ya algunos meses que sigo tus publicaciones, te felicito, muy buenos aportes Dtb…
Una duda sobre las relaciones ternarias. Si tengo la tabla IMPARTICION, mis joins quedan simplificados al momento de hacer las consultas para crear un reporte por ejemplo. Pero, pensando en la aplicación ¿que pasa si tengo que crear filtros dependientes?
Digamos que tengo un combobox con todas las aulas y al seleccionar una aula debo mostrar todos los cursos que se imparten en ella. No puedo hacer un SELECT id_curso FROM imparticion WHERE id_aula = ? ya que eso me traería resultados repetidos (dado que varios alumnos pueden tomar el mismo curso en la misma aula). Así que debo hacer un SELECT DISTINCT id_curso FROM imparticion WHERE id_aula = ?
El mismo hecho (varios alumnos con el mismo curso en la misma aula) haría que se perdiera la normalización de la tabla IMPARTICION (no pasaría la regla de la tercera forma normal en mi opinión).
¿Cómo puedo saber si vale la pena aplicar el concepto de impartición para simplificar mis joins a costo de perder normalización y dificultar la lógica en mi apliación (distincts para mis filtros, etc)?
Gracias de antemano por tu respuesta.
Bueno es que en el modelo falta otro concepto 🙂 que es el de matricula un alumno tiene n matriculas y una impartición tambien los tiene 🙂
Cecilio, según tu experiencia “siempre” que se dan estas relacioines ternarias es porque hay algún concepto escondido que no modelamos y que facilitaría el esquema?
Saludos y gracias por compartir tus conocimientos
Habitualmente sucede 🙂
Ya que he comentado la entrada en ese sitio, me parece que es el lugar perfecto para preguntarte que tal la herencia en JPA? tienes pensado realizar algo o sacar la biblia en amazon? jaja salud!
Estoy aprendiendo que es lo que encaja en GenbetaDev como contenidos 😉 . Date cuenta que tiene que ser un blog mas generalista 🙂