Está en la página 1de 47

Transformacin del Modelo ERE al Modelo Relacional

Universidad de los Andes


Demin Gutierrez Enero 2010 1

Transformacin del Modelo ERE al Modelo Relacional

Por que es necesario transformar del modelo ERE al modelo Relacional?


Cdigo Nombre

Nombre Cdigo Lugares Servicio RIF presta Cliente Nombre

Departamento (Cdigo, Nombre) Empleado (Cdula, Nombre, Telfono, CodDpto) Cliente (RIF, Nombre) Servicio (Cdigo, Nombre) Presta (CdDpto, CodServ, RIF, Fecha)

Departamento

M Fecha

1
pertenece

N Empleado

Telfono Nombre Cdula

As como existe una relacin entre una clase de un diagrama de clases y el cdigo, tambin existe una relacin entre una entidad (o un vnculo) de un diagrama ERE o una clase y el modelo relacional

Base de Datos Relacional


2

Por que es Necesaria la Transformacin?

El modelo ERE es un modelo de datos conceptual de alto nivel. Facilita las tareas de diseo conceptual de bases de datos. Es necesario traducirlo a un esquema que sea compatible con un SGBD. El Modelo Relacional es utilizado por la mayora de los SGBD existentes en el mercado.
3

Transformacin del Modelo ER al Modelo Relacional

Modelo Entidad Relacin (Bsico), transformacin al modelo Relacional de:


Entidades (no dbiles) Entidades Dbiles Vnculos 1:N Vnculos 1:1 Vnculos M:N Atributos Multivaluados Vnculos n-arios
4

Definir una serie de esquemas de relaciones equivalentes

Transformacin de Entidades (Paso 1)


PrimApellido PrimNombre SegApellido

Nombre

Telfono

Cdula

Empleado

Empleado (Cdula, PrimNombre, PrimApellido, SegApellido, Telfono)


CP Atributo compuesto Nombre
5

Transformacin de Entidades (Paso 1)


En caso de que ms de un atributo sea parte de la clave primaria:
Nombre_Proyecto

Numero_Proyecto

Descripcin_Proyecto

Proyecto

Proyecto (Nmero_Proyecto, Nombre_Proyecto, Descripcin_Proyecto)


CP Compuesta
6

Transformacin de Entidades (Paso 1)

Para cada tipo normal (no dbil) de entidad E del modelo ERE se define una relacin R. En la relacin R se incluyen todos los atributos simples de E. Se incluyen en R los atributos simples que sean componentes de los atributos compuestos. Se eligen todos los atributos clave de E como atributos claves de R.

Transformacin de Entidades Dbiles (Paso 2)


Nombre_Proyecto Fecha_Hito

Nmero_Proyecto

Descripcin_Proyecto

Cdigo_Hito

Descripcin_Hito

Proyecto

es_parte_de

Hito

Hito (Nmero_Proyecto, Nombre_Proyecto, Cdigo_Hito, Fecha_Hito, Descripcin_Hito)

Proyecto (Nmero_Proyecto, Nombre_Proyecto, Descripcin_Proyecto)


8

Transformacin de Entidades Dbiles (Paso 2)


Podra verse como una composicin tambin

Hito (Nmero_Proyecto, Nombre_Proyecto, Cdigo_Hito, Fecha_Hito, Descripcin_Hito)

Proyecto (Nmero_Proyecto, Nombre_Proyecto, Descripcin_Proyecto)


9

Transformacin de Entidades Dbiles (Paso 2)

Para cada entidad dbil D del modelo ERE y su respectivo vnculo con su entidad propietaria E se define una relacin R. La relacin R tiene todos los atributos de la entidad dbil D ms los atributos que conforman la clave primaria de la entidad propietaria E. La clave primaria de la relacin R est formada por los atributos de la clave primaria de la entidad propietaria E ms los atributos de la clave parcial de D.
10

Transformacin de Vnculos 1:N (Paso 3)


PrimApellido PrimNombre SegApellido Numero_Dpto Nombre Telfono Nombre_Dpto

Cdula

Empleado

pertenece_a

Departamento

Empleado (Cdula, PrimNombre, PrimApellido, SegApellido, Telfono, Numero_Dpto)

Departamento (Nmero_Dpto, Nombre_Dpto)


11

Transformacin de Vnculos 1:N (Paso 3)

Empleado (Cdula, PrimNombre, PrimApellido, SegApellido, Telfono, Numero_Dpto)

Departamento (Nmero_Dpto, Nombre_Dpto)


12

Transformacin de Vnculos 1:N (Paso 3)

Para cada vinculo 1:N entre dos entidades (no dbiles) E y F donde F est del lado N del vnculo, se aade a la relacin correspondiente a la entidad F de alguna de las entidades la clave primaria de la otra entidad relacionada.

13

Transformacin de Vnculos 1:1 (Paso 4)


PrimApellido PrimNombre Nombre SegApellido Numero_Dpto Telfono Nombre_Dpto

Cdula

Empleado

tiene_jefe

Departamento

Departamento (Nmero_Dpto, Nombre_Dpto, Cdula_Jefe)

Empleado (Cdula, PrimNombre, PrimApellido, SegApellido, Telfono)


14

Transformacin de Vnculos 1:1 (Paso 4)

Departamento (Nmero_Dpto, Nombre_Dpto, Cdula_Jefe)

Empleado (Cdula, PrimNombre, PrimApellido, SegApellido, Telfono)


15

Transformacin de Vnculos 1:1 (Paso 4)

Para cada vinculo 1:1 entre dos entidades (no dbiles) E y F se aade a la relacin de alguna de las entidades, a modo de clave fornea, la clave primaria de la otra entidad relacionada. Se especifica una restriccin que define que la clave fornea aadida debe ser nica (no se puede repetir, porque de hacerlo entonces sera una relacin 1:N

16

Transformacin de Vnculos M:N (Paso 5)


PrimApellido PrimNombre SegApellido Horas Nombre Telfono Numero_Proyecto Nombre_Proyecto

Cdula

Empleado

trabaja_en

Proyecto

Cuantas veces puede un empleado trabajar en un proyecto? O bien, Cuntos registros puedo tener en Trabaja_En para un mismo empleado y proyecto?

Empleado (Cdula, PrimNombre, PrimApellido, SegApellido, Telfono)

Trabaja_en (Cdula, Nmero_Proyecto, Horas)


Proyecto (Nmero_Proyecto, Nombre_Proyecto)
17

Transformacin de Vnculos M:N (Paso 5)

Empleado (Cdula, PrimNombre, PrimApellido, SegApellido, Telfono)

Trabaja_en (Cdula, Nmero_Proyecto, Horas)


Proyecto (Nmero_Proyecto, Nombre_Proyecto)
18

Transformacin de Vnculos M:N (Paso 5)


Fecha_Ent Num_Motores Peso_Max Fecha_Sal Cdigo Ubicacin

Siglas

Avion

estacionado_en

Hangar

Cuantas veces puede un Avin estar estacionado en un hangar? O bien, Cuntos registros puedo tener en Estacionado_En para un mismo Avin y Hangar?
19

Transformacin de Vnculos M:N (Paso 5)

Para cada vinculo M:N entre dos entidades se crea una relacin R. Los atributos de la relacin R sern las claves primarias de las entidades relacionadas mas los atributos propios del vinculo. La clave primaria de la relacin R ser el conjunto de todos los atributos que sean claves primarias de las entidades relacionadas.

20

Transformacin de Atributos Multivaluados (Paso 6)


Nombre_Dpto

Numero_Dpto

Lugares

Departamento

Lugares_Dptos (Numero_Dpto, Lugar)

Departamento (Nmero_Dpto, Nombre_Dpto)


21

Transformacin de Atributos Multivaluados (Paso 6)


Estudiante Cdula 9.644.667 14.126.112 Nombre Pedro Gilberto Apellido Prez Zapata Curso BD, I S BD, I A

Atributo Multivaluado / Compuesto Grupo Repetitivo

Estudiante

Cdula 9.644.667 9.644.667 14.126.112 14.126.112

Nombre Pedro Pedro Gilberto Gilberto

Apellido Curso Prez BD Prez IS Zapata BD Zapata IA

EstCurso Estudiante Cdula 9.644.667 14.126.112 Nombre Pedro Gilberto Apellido Prez Zapata

Cdula Curso 9.644.667 BD 9.644.667 IS 14.126.112 BD 14.126.112 IA


22

Transformacin de Atributos Multivaluados (Paso 6)

Para cada atributo multivaluado se crear una relacin R. Los atributos de la relacin R sern la clave primaria de las entidad a la cual pertenece el atributo multivaluado ms el (o los) atributos correspondientes al atributo multivaluado. La clave primaria de la relacin R ser la clave primaria de la entidad a la cual pertenece el atributo multivaluado ms el (o los) atributos correspondientes al atributo multivaluado
23

Transformacin de Vnculos n-arios (paso 7)


Cdigo_Servicio Nombre_Dpto Nombre_Servicio

Servicio
Numero_Dpto Lugares RIF Nombre_Cliente

Departamento

presta

Cliente

Fecha

Presta (Numero_Dpto, Cdigo_Servicio, RIF, Fecha)

Recordar los vnculos n-arios pueden ser nocivos para la salud!!!

24

Transformacin de Vnculos n-arios (paso 7)

Presta (Numero_Dpto, Cdigo_Servicio, RIF, Fecha)

Recordar los vnculos n-arios pueden ser nocivos para la salud!!!

25

Transformacin de Vnculos n-arios (paso 7)

Para cada vinculo M:N entre tres o ms entidades se crea una relacin R. Los atributos de la relacin R sern las claves primarias de todas las entidades relacionadas ms los atributos propios del vinculo. La clave primaria de la relacin R ser el conjunto de todos los atributos que sean claves primarias de todas las entidades relacionadas.

26

Transformacin del Modelo ERE al Modelo Relacional

Modelo Entidad Relacin (Extendido), transformacin al modelo Relacional de:


Generalizacin (o Especializacin) Categorizacin


Definir una serie de esquemas de relaciones equivalentes

27

Transformacin de una Generalizacin (Paso 8)


Nombre Cdula Apellido Direccin

Persona
O Salario

E (Entidad Padre,
Entidad Generalizada)

Carrera

Empleado

Profesor
Costo_Hora

Estudiante

Ei (Entidades

Especializadas)

Usando un diagrama de clases...


28

Transformacin de una Generalizacin (Paso 8)

... o bien ...


29

Transformacin de una Generalizacin (Paso 8)

Existen cuatro estrategias para transformar una relacin de generalizacin (o especializacin) al modelo Relacional
30

Generalizacin (Paso 8 / Estrategia 1)

Estrategia 1: Crear una relacin R para la entidad padre E y una relacin Ri para cada entidad especializada Ei.

La relacin R tiene todos los atributos de la entidad E. Cada relacin Ri tiene todos los atributos de la entidad Ei correspondiente. Todas las relaciones (tanto R como cada Ri) comparten la misma clave primaria de la entidad padre E.
31

Generalizacin (Paso 8 / Estrategia 1)


Nombre Cdula Apellido Direccin

Persona
O
Salario

Persona (Cdula, Nombre, Apellido, Direccin) Empleado (Cdula, Salario)


Carrera

Estudiante (Cdula, Carrera) Profesor (Cdula, Costo_Hora)

Empleado

Profesor
Costo_Hora

Estudiante

Esta estrategia funciona tanto para subclases que se traslapan como para subclases disjuntas y para especializaciones totales o parciales

Persona <12453334, 'Pedro', 'Perez', 'Av. 8'> Empleado <12453334, 2000> Estudiante <12453334, 'Ingeniera'>
32

Generalizacin (Paso 8 / Estrategia 2)

Estrategia 2: Crear una relacin Ri para cada entidad especializada Ei.

Cada relacin Ri tiene todos los atributos de la entidad Ei correspondiente ms los atributos de la entidad padre E. La clave primaria de cada relacin Ri es la clave primaria de la entidad padre E.

33

Generalizacin (Paso 8 / Estrategia 2)


Nombre Cdula Apellido Direccin

Persona
d
Salario

Aplica para especializaciones disjuntas y totales


Carrera

Empleado

Profesor
Costo_Hora

Estudiante

Empleado (Cdula, Nombre, Apellido, Direccin, Salario) Profesor (Cdula, Nombre, Apellido, Direccin, Costo_Hora) Estudiante (Cdula, Nombre, Apellido, Direccin, Carrera)
34

Generalizacin (Paso 8 / Estrategia 3)

Estrategia 3: Utilizar una misma relacin R para la entidad padre E y para las entidades especializadas Ei.

La relacin R tiene todos los atributos de la entidad padre E ms todos los atributos todas las entidades especializadas Ei. Se crea un atributo adicional que define el tipo de entidad Ei que representa una tupla en particular. Aplica slo a casos donde las subclases son disjuntas.
35

Generalizacin (Paso 8 / Estrategia 3)


Nombre Cdula Apellido Direccin

Persona
d
Salario

Aplica solo para especializaciones disjuntas


Carrera

Empleado

Profesor
Costo_Hora

Estudiante

Persona (Cdula, Nombre, Apellido, Direccin,Tipo, Salario, Costo_Hora, Carrera)

Donde Tipo puede ser 0 para la subclase Empleado, 1 para la subclase Profesor o 2 para la subclase Estudiante

<12453334, 'Pedro', 'Perez', 'Av. 8',0, 2000, NULL, NULL>


36

Generalizacin (Paso 8 / Estrategia 4)

Estrategia 4: Utilizar una misma relacin R para la entidad padre E y para las entidades especializadas Ei. (Similar a la estrategia 3).

La relacin R tiene todos los atributos de la entidad padre E ms todos los atributos todas las entidades especializadas Ei. (Similar a 3) Se crea un atributo booleano adicional por cada entidad especializada que define si una tupla en particular pertenece dicha entidad.

37

Generalizacin (Paso 8 / Estrategia 4)


Nombre Cdula Apellido Direccin

Persona
d
Salario

Aplica para especializaciones disjuntas y traslapadas


Carrera

Empleado

Profesor
Costo_Hora

Estudiante

Persona (Cdula, Nombre, Apellido, Direccin, Es_Empleado, Salario, Es_Profesor, Costo_Hora, Es_Estudiante, Carrera)

Los atributos Es_* son verdaderos para una tupla si esta es una la clase especializada de la entidad correspondiente
<12453334, 'Pedro', 'Perez', 'Av. 8',true, 2000, true, 50, false, NULL>
38

Transformacin de una Categorizacin (Paso 9)

Nombre Cdula

Apellido Direccin RIF

Nombre Direccin

Persona C1
U

Compaa C2

Cuenta Habiente

tiene cuenta en

Banco

Usando un diagrama de clases...


39

Transformacin de una Categorizacin (Paso 9)

Existen dos casos posibles al transformar una relacin de categorizacin al modelo Relacional
40

Transformacin de una Categorizacin (Paso 9 / Caso 1)

Caso 1: Las superclases de la categora tienen diferentes claves primarias. Se crea una relacin R que corresponda a la categora y se asigna una clave sustituta arbitraria. Se aade la clave sustituta a modo de clave fornea a cada una de las relaciones Ri que correspondan a las superclases de la categora.

Claves primarias de las superclases no compatibles


41

Transformacin de una Categorizacin (Paso 9 / Caso 1)


Nombre Cdula Apellido Direccin RIF Nombre Direccin

Persona C1
U

Compaa C2

Cuenta Habiente

tiene cuenta en

Banco

Persona (Cdula, Nombre, Apellido, Direccin, IdCuentaHabiente) Compaa (RIF, Nombre, IdCuentaHabiente) CuentaHabiente (IdCuentaHabiente)
42

Transformacin de una Categorizacin (Paso 9 / Caso 2)

Caso 2: Las superclases de la categora tienen la misma clave primaria. Se crea una relacin R que corresponda a la categora y se le asigna como atributo de clave primaria la clave comn a todas las superclases de la categora.

Claves primarias compatibles entre las superclases


43

Transformacin de una Categorizacin (Paso 9 / Caso 2)


MarcaA Matrcula ModeloA Color ModeloC Matrcula NumEjes Peso

Auto C1
U

Camin C2

Vehculo Registrado

posee

Persona

... o bien usando un diagrama de clases ...


44

Transformacin de una Categorizacin (Paso 9 / Caso 2)

... se transforma al modelo relacional de la siguiente forma...


45

Gracias

Gracias!

46

Transformacin de una Categorizacin (Paso 9 / Caso 2)


MarcaA Matrcula ModeloA Color ModeloC Matrcula NumEjes Peso

Auto C1
U

Camin C2

Vehculo Registrado

posee

Persona

Vehculo_Registrado (Matrcula) Auto (Matrcula, MarcaA, ModeloA, Color) Camin (Matrcula, ModeloC, NumEjes, Peso)

47

También podría gustarte