You are on page 1of 46

Transformacin del Modelo

ERE al Modelo Relacional

1
Transformacin del Modelo ERE
al Modelo Relacional
Por que es necesario transformar del modelo ERE al
modelo Relacional?
Cdigo Nombre

Nombre Departamento (Cdigo, Nombre)


Servicio
Cdigo Lugares
RIF Nombre Empleado (Cdula, Nombre, Telfono, CodDpto)

Departamento presta Cliente


N M Cliente (RIF, Nombre)
1
Fecha
pertenece Servicio (Cdigo, Nombre)

N Telfono
Presta (CdDpto, CodServ, RIF, Fecha)
Empleado 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 Base de Datos
diagrama ERE o una clase y el Relacional
modelo relacional 2
Por que es Necesaria la Transformacin?


El modelo relacional 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 Definir una serie
de esquemas de
Vnculos 1:1 relaciones
Vnculos M:N equivalentes
Atributos Multivaluados
Vnculos n-arios

4
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.

7
Transformacin de Entidades Dbiles
(Paso 2)

Nombre_Proyecto Fecha_Hito

Nmero_Proyecto Descripcin_Proyecto Cdigo_Hito Descripcin_Hito

Proyecto es_parte_de Hito


1 N

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_Dpto
Nombre Telfono

Cdula Empleado pertenece_a Departamento


N 1

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_Dpto
Nombre Telfono

Cdula Empleado tiene_jefe Departamento


1 1

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 Numero_Proyecto Nombre_Proyecto
Nombre Telfono

Cdula Empleado trabaja_en Proyecto


N M

Cuantas veces
puede un
empleado
trabajar en un
proyecto? Empleado (Cdula, PrimNombre, PrimApellido, SegApellido, Telfono)
O bien,
Cuntos
registros puedo
tener en Trabaja_en (Cdula, Nmero_Proyecto, Horas)
Trabaja_En para
un mismo
empleado y
proyecto? 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 Fecha_Sal

Cdigo Ubicacin
Num_Motores Peso_Max

Siglas Avion estacionado_en Hangar


N M

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 Nombre Apellido Curso


9.644.667 Pedro Prez BD, I S Atributo
14.126.112 Gilberto Zapata BD, I A Multivaluado /
Compuesto
Grupo
Repetitivo

Estudiante Cdula Nombre Apellido Curso


9.644.667 Pedro Prez BD
9.644.667 Pedro Prez IS
14.126.112 Gilberto Zapata BD
14.126.112 Gilberto Zapata IA

EstCurso Cdula Curso


Estudiante Cdula Nombre Apellido 9.644.667 BD
9.644.667 Pedro Prez 9.644.667 IS
14.126.112 Gilberto Zapata 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
RIF Nombre_Cliente

Departamento presta Cliente


N M

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 Carrera

Ei (Entidades
Empleado Profesor Estudiante
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 (Cdula, Nombre, Apellido, Direccin)


Persona
Empleado (Cdula, Salario)
O
Salario Carrera Estudiante (Cdula, Carrera)

Empleado Profesor Estudiante


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
Aplica para
especializaciones
Persona disjuntas y totales

d
Salario Carrera

Empleado 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 Aplica solo para


Persona especializaciones
disjuntas
d
Salario Carrera

Empleado 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
Aplica para
especializaciones
Persona disjuntas y
traslapadas
d
Salario Carrera

Empleado 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
Nombre

Cdula Direccin RIF Direccin

Persona Compaa
C1 C2

tiene
Cuenta cuenta Banco
Habiente en

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
Nombre

Cdula Direccin RIF Direccin

Persona Compaa
C1 C2

Cuenta tiene
cuenta Banco
Habiente en

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 ModeloA ModeloC NumEjes

Matrcula Color Matrcula Peso

Auto Camin
C1 C2

Vehculo posee Persona


Registrado

... 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

You might also like