1. Entidades y Atributos Básicos
Cuando partimos de un Modelo Entidad-Relación (M.E.R.), la primera regla es muy simple:
Por cada atributo simple se crea una columna.
¿Qué hacemos con los atributos compuestos (como la Dirección)?
Se aplana la estructura. Se crean tantas nuevas columnas como atributos simples lo compongan.
PERSONA(Cedula, Prim_Nom, Prim_Ape, ciudad, calle, numero)
Repaso de Claves (Gira las tarjetas)
Clave Primaria (PK)
¿Cómo se subraya?
Siempre va subrayada de forma continua y selecciona el atributo determinante.
Clave Foránea (FK)
¿Qué es y cómo se marca?
Es un "puente" hacia otra tabla. Solemos marcarla con línea punteada.
Desafío 1
Tienes la entidad VEHICULO con la clave Matricula y un atributo compuesto Motor(Nro_Serie, Cilindrada). ¿Cómo queda la tabla?
2. Atributos Multivaluados
Un atributo multivaluado es cuando puedes tener varios valores (ejemplo: varios Teléfonos). No puedes guardarlos todos en la misma columna.
La Clave Primaria está formada por todos los atributos de esa nueva tabla (la PK de la entidad original + el valor en sí).
PERSONA(Cedula, Prim_Nom, Prim_Ape, ciudad, calle, numero)
TEL_PERSONA(Cedula, Telefono)
Desafío: Arrastrar y Soltar
La entidad fuerte PROYECTO tiene una PK compuesta: (Cod_Sede, Num_Proy).
Esta entidad tiene un atributo multivaluado llamado Idioma.
Arrastra sólo los atributos necesarios para formar la Clave Primaria (PK) de la nueva tabla del multivaluado.
Tabla Nueva (PK Resultante):
3. Relaciones Binarias 1:1
En las relaciones de uno a uno (1:1), la forma de pasarlas a tablas depende totalmente de las participaciones (si son totales o parciales).
Ambos lados Totales
Todos participan obligatoriamente
Se fusionan en UNA SOLA TABLA. No hay necesidad de tenerlas separadas.
Un lado Total, otro Parcial
Ej: Todo departamento tiene un jefe (Total), pero no todo empleado es jefe (Parcial)
La clave del lado Parcial pasa como Clave Foránea (FK) a la tabla del lado Total.
Prueba Rápida
Si la entidad A es TOTAL y la entidad B es PARCIAL, ¿dónde coloco la Clave Foránea?
4. Relaciones Binarias N:1
Aquí hay que dividir en dos casos súper claros: Con totalidad del lado N, y Sin totalidad del lado N.
Se agregan los atributos clave del lado 1 en la tabla de la entidad del lado N.
Ejemplo: Todo Docente dicta obligatoriamente una Materia. El código de la materia (lado 1) se guarda en la tabla del Docente (lado N).
Materia(cod_materia, nom_materia)
Para evitar que queden espacios nulos, se hace una tabla intermedia. Su clave primaria (PK) es ÚNICAMENTE la clave del lado N.
Ejemplo: Un Docente dicta, o no, una Materia.
Materia(cod_materia, nom_materia)
Dicta(ci_doc, cod_materia, cant_horas)
Completar Espacios
Estamos en un caso Sin Totalidad (parcial). VEHICULO(Patente) (Lado N) puede pertenecer o no a una SUCURSAL(id_suc) (Lado 1).
SUCURSAL(id_suc, Direccion)
// Completa las claves de la tabla intermedia (recuerda la regla de la PK para "Sin Totalidad"):
PERTENECE(, )
5. Relaciones Binarias N:N
En las relaciones de muchos a muchos (N:N), la solución es directa y siempre igual.
¿Cuál es su clave primaria? Está formada por la UNIÓN de las claves primarias de las entidades participantes.
Sintaxis del Ejemplo de Clase: SALA y EMPLEADO en la relación TRABAJA.
EMPLEADO(#emp, salario, Nombre)
TRABAJA(Nom_sala, #emp)
Desafío 5
Tenemos ALUMNO(ci) y CURSO(cod_curso, cod_sede) (Ojo, el curso tiene clave compuesta). La relación N:N es INSCRITO.
¿Cómo queda la clave primaria de la tabla INSCRITO?
6. Entidades Débiles
Una entidad débil no puede existir por sí sola. Por ejemplo, un SALON no existe si no está dentro de un INSTITUTO.
Su clave primaria: Clave primaria de la entidad "fuerte" + el atributo identificador parcial de la débil.
// nombreInst hereda de la fuerte y forma la PK junto con numero:
SALON(nombreInst, numero, capacidad)
Desafío de Jerarquía Débil
La entidad fuerte es LIBRO(ISBN). Tiene una entidad débil CAPITULO(Num_Cap).
¿Cuál es la PK exacta de la tabla CAPITULO?
7. Agregación
No debemos olvidar que en el M.E.R. el operador de agregación transforma a las relaciones en entidades.
Ejemplo del Material: La relación Dicta(ci_doc, cod_materia) es supervisada por un Inspector.
Inspector(ced_inspector, nom_inspector)
// Supervisa toma la PK del inspector y la PK completa de "Dicta":
Supervisa(ced_inspector, ci_doc, cod_materia)
8. Categorización (Herencia)
Hay otros casos, pero en este curso usamos la solución que FUNCIONA SIEMPRE.
• Un esquema de relación por cada sub entidad con referencia a la súper entidad.
// ciFunc es PK propia y también es FK hacia FUNCIONARIO:
CHOFER(ciFunc, NumLibreta, Categoría)
ADMINIST(ciFunc)
TECNICO(ciFunc, Especialidad)
Desafío Final
Si la súper entidad VEHICULO tiene la clave Matricula, y la sub entidad MOTO tiene atributos propios como Manillar. Siguiendo la regla de oro que "Funciona Siempre", ¿qué tabla creas para MOTO?