Tema 3. Transformacion Del Modelo E-R Al Modelo Relacional

13

Transcript of Tema 3. Transformacion Del Modelo E-R Al Modelo Relacional

Page 1: Tema 3. Transformacion Del Modelo E-R Al Modelo Relacional
Page 2: Tema 3. Transformacion Del Modelo E-R Al Modelo Relacional

Para transformar un modelo entidad-relación amodelo relacional seguiremos las siguientesreglas:

◦ Toda entidad del modelo entidad-relación setransforma en una tabla.

◦ Cualquier atributo de una entidad setransforma en un campo dentro la tabla,manteniendo las claves primarias.

◦ Las relaciones N:M se transforman en unanueva tabla que tendrá como clave primariala concatenación de los atributos clave de lasentidades que relaciona.

Page 3: Tema 3. Transformacion Del Modelo E-R Al Modelo Relacional

Relaciones N:M

Supongamos el siguiente modelo entidad-relación:

El modelo relacional quedaría de la siguiente forma (en negrita las claves primarias):

◦ CLIENTES(DNI, nombre, apellidos)

◦ PRODUCTOS(código, descripción)

◦ COMPRAS(dni_cliente, código_producto, fecha_compra)

Page 4: Tema 3. Transformacion Del Modelo E-R Al Modelo Relacional

En las relaciones 1:N se pueden tener dos casos:

◦ (1,1): Si la entidad que participa con cardinalidadmáxima uno lo hace también con cardinalidad mínimauno, entonces se propaga el atributo de la entidadque tiene cardinalidad máxima 1 a la que tienecardinalidad máxima N, desapareciendo el nombre dela relación. Si existen atributos en la relación éstostambién se propagarán.

◦ (0,1): Si la entidad que participa con cardinalidadmáxima uno lo hace también cardinalidad mínimacero, entonces se crea una nueva tabla formada porlas claves de cada entidad y los atributos de larelación. La clave primaria de la nueva tabla será elidentificador de la entidad que participa concardinalidad máxima N.

Page 5: Tema 3. Transformacion Del Modelo E-R Al Modelo Relacional

Relaciones 1:N – Caso (1,1)

En el siguiente modelo E-R un empleado pertenece a un únicodepartamento (debe pertenecer a uno obligatoriamente), y undepartamento tiene 1 o más empleados (1,1):

En este caso se propaga el atributo código de departamento ala tabla EMPLEADO. El modelo relacional quedaría de lasiguiente manera:

◦ EMPLEADOS(DNI, nombre, salario, código_departamento)◦ DEPARTAMENTOS(código, nombre, localización)

Page 6: Tema 3. Transformacion Del Modelo E-R Al Modelo Relacional

Relaciones 1:N – Caso (0,1)

Imaginemos ahora que pudiera darse el caso de que hubieraempleados que no pertenecieran a ningún departamento (0,1):

Se crea una nueva tabla formada por DNI de EMPLEADO y códigode DEPARTAMENTO. En esta nueva tabla DNI de EMPLEADO serála clave primaria. El modelo relacional quedaría:

◦ EMPLEADOS(DNI, nombre, salario)

◦ DEPARTAMENTOS(código, nombre, localización)

◦ PERTENECEN(dni_empleado, código_departamento)

Page 7: Tema 3. Transformacion Del Modelo E-R Al Modelo Relacional

En el caso de las relaciones 1:1 pueden darse trescasos:

◦ Si las dos entidades poseen cardinalidades (0,1), larelación se convierte en una tabla.

◦ Si una de las entidades posee cardinalidad (0,1) y laotra (1,1), conviene propagar la clave de la entidadcon cardinalidad (1,1) a la tabla resultante de laentidad con cardinalidad (0,1).

◦ Si ambas entidades poseen cardinalidades (1,1) sepuede propagar la clave de cualquiera de ellas a latabla resultante de la otra.

Page 8: Tema 3. Transformacion Del Modelo E-R Al Modelo Relacional

Relaciones 1:1 En el siguiente modelo E-R un equipo de fútbol tiene a un único

presidente y un presidente preside a un único club de fútbol:

El modelo relacional podría quedar de cualquiera de las tres formassiguientes:1)

EQUIPOS(código, nombre, año_fundación) PRESIDENTES(DNI, nombre, código_equipo)

2)

EQUIPOS(código, nombre, año_fundación, dni_presidente) PRESIDENTES(DNI, nombre)

3)

EQUIPOS(código, nombre, año_fundación, dni_presidente) PRESIDENTES(DNI, nombre, código_equipo)

Page 9: Tema 3. Transformacion Del Modelo E-R Al Modelo Relacional

En el caso de las relaciones N-arias se aplica lamisma regla que para las relaciones N:M.

En el caso de las relaciones reflexivassupondremos que se trata de una relaciónbinaria con la particularidad que las dosentidades son iguales y aplicaremos las reglasvistas en los puntos anteriores.

Page 10: Tema 3. Transformacion Del Modelo E-R Al Modelo Relacional

Relaciones reflexivas

En el siguiente modelo E-R un ALUMNO es delegado de variosALUMNOS y un ALUMNO tiene obligatoriamente un delegado y sóloa uno:

Al tratarse de una relación 1:N se propagará la clave de la entidadALUMNO a la entidad ALUMNO, quedando el modelo relacional dela siguiente forma:

◦ ALUMNOS(num_expediente, nombre, num_expediente_delegado)

Page 11: Tema 3. Transformacion Del Modelo E-R Al Modelo Relacional

Generalizaciones y especializaciones

Para transformar las generalizaciones, se puede optar por 4opciones. Cada opción se adaptará mejor o peor a los diferentestipos de especialización (exclusiva o inclusiva, total o parcial).

Page 12: Tema 3. Transformacion Del Modelo E-R Al Modelo Relacional

Generalizaciones y especializaciones

1) Se puede crear una tabla para la superclase y otras tantas paracada subclase, incorporando el campo clave de la superclase a lastablas de las subclases:

EMPLEADOS(DNI, nombre, puesto)

DIRECTIVOS(DNI, dpto)

TECNICOS(DNI, máquina)

COMERCIALES(DNI, comisión)

2) Se puede crear una tabla para cada subclase incorporando todoslos atributos de la clase padre, y no crear una tabla para lasuperclase:

DIRECTIVOS(DNI, nombre, puesto, dpto)

TECNICOS(DNI, nombre, puesto, máquina)

COMERCIALES(DNI, nombre, puesto, comisión)

Page 13: Tema 3. Transformacion Del Modelo E-R Al Modelo Relacional

Generalizaciones y especializaciones

3) Se puede crear una sola tabla para la superclase, incorporandolos atributos de todas las subclases y añadir, para distinguir el tipode la superclase, un campo llamado “tipo”, que contendrá el tipo desubclase al que representa cada tupla:

EMPLEADOS(DNI, nombre, puesto, dpto, máquina, comisión, tipo)

◦ Este tipo de opción se adapta muy bien a las especializacionesexclusivas.

4) Se puede crear una sola tabla para la superclase como en laopción anterior, pero en lugar de añadir un sólo campo “tipo”, seañaden varios campos que indiquen si cumple un perfil:

EMPLEADOS(DNI, nombre, puesto, dpto, máquina, comisión,EsDirectivo, EsTecnico, Escomercial)

◦ De este modo se soportan las especializaciones inclusivas.