Está en la página 1de 47

Transformacin del Modelo

ERE al Modelo Relacional

Universidad de los Andes


Demin Gutierrez
Enero 2010

Transformacin del Modelo ERE


al Modelo Relacional

Por que es necesario transformar del modelo ERE al


modelo Relacional?
Cdigo

Nombre

Departamento (Cdigo, Nombre)

Nombre
Cdigo

Servicio

Lugares

Departamento

RIF

presta

Nombre

Empleado (Cdula, Nombre, Telfono, CodDpto)

Cliente

Cliente (RIF, Nombre)

1
Fecha
pertenece

Telfono

N
Empleado

Servicio (Cdigo, Nombre)


Presta (CdDpto, CodServ, RIF, Fecha)

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

Definir una serie


de esquemas de
relaciones
equivalentes

Transformacin de Entidades
(Paso 1)
PrimApellido
PrimNombre

SegApellido

Nombre

Telfono

Empleado

Cdula

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

Nmero_Proyecto

Fecha_Hito

Descripcin_Proyecto

Proyecto

es_parte_de

Descripcin_Hito

Cdigo_Hito

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

Cdula

Nombre_Dpto

Telfono

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

SegApellido
Numero_Dpto
Nombre

Cdula

Nombre_Dpto

Telfono

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

Cdula

Numero_Proyecto

Nombre_Proyecto

Telfono

Empleado

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

trabaja_en

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

Siglas

Avion

Fecha_Sal
Cdigo

Peso_Max

estacionado_en

Ubicacin

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

Estudiante

Cdula
9.644.667
14.126.112

Nombre
Pedro
Gilberto

Cdula
9.644.667
9.644.667
14.126.112
14.126.112

Nombre
Pedro
Pedro
Gilberto
Gilberto

Apellido
Prez
Zapata

Curso
BD, I S
BD, I A

Atributo
Multivaluado /
Compuesto
Grupo
Repetitivo

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_Servicio

Nombre_Dpto

Servicio
Numero_Dpto

Lugares

Departamento

RIF

presta

Nombre_Cliente

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

Apellido

Cdula

Direccin

E (Entidad Padre,

Persona

Entidad Generalizada)

O
Salario

Empleado

Carrera

Profesor

Estudiante

Ei (Entidades

Especializadas)

Costo_Hora

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

Apellido

Cdula

Direccin

Persona

Persona (Cdula, Nombre, Apellido, Direccin)


Empleado (Cdula, Salario)

O
Salario

Carrera

Empleado

Profesor

Estudiante

Estudiante (Cdula, Carrera)


Profesor (Cdula, Costo_Hora)

Costo_Hora

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

Apellido

Cdula

Direccin

Persona

Aplica para
especializaciones
disjuntas y totales

d
Salario

Empleado

Carrera

Profesor

Estudiante

Costo_Hora

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

Apellido

Cdula

Direccin

Persona

Aplica solo para


especializaciones
disjuntas

d
Salario

Empleado

Carrera

Profesor

Estudiante

Costo_Hora

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

Apellido

Cdula

Direccin

Persona

Aplica para
especializaciones
disjuntas y
traslapadas

d
Salario

Empleado

Carrera

Profesor

Estudiante

Costo_Hora

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

Apellido

Cdula

Nombre

Direccin

RIF

Persona

Direccin

Compaa
C1

C2
U

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

Apellido

Cdula

Nombre

Direccin

RIF

Persona

Direccin

Compaa
C1

C2
U

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

ModeloC

ModeloA

Matrcula

Color

NumEjes

Matrcula

Auto

Peso

Camin
C1

C2
U

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

ModeloC

ModeloA

Matrcula

Color

NumEjes

Matrcula

Auto

Peso

Camin
C1

C2
U

Vehculo
Registrado

posee

Persona

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

47

También podría gustarte