You are on page 1of 32

Sistemas de Informacin II

Tema 5. El modelo relacional


Bibliografa: Elmasri y Navathe: Fundamentos de Sistemas de Bases de Datos 3 edicin, 2002 (Captulo 7). Garcia-Molina, Ullman y Widom: Database systems: the complete book. Prentice-Hall (Captulo 3). Dr. Carlos Castillo UPF 2005
1

Temas de esta clase


Conceptos del modelo relacional Convertir E-R a modelo relacional

Relacin
Relacin tabla de datos
Por eso se llaman bases de datos relacionales Ttulo
La guerra de las galaxias El seor de los anillos 1 Mar Adentro El viaje de Chihiro

Ao
1977 2001 2004 2001

Duracin
123 178 125 125

Conceptos
Esquema Pelcula(ttulo,ao,duracin)

Atributos Tuplas

Ttulo
La guerra de las galaxias El seor de los anillos 1 Mar Adentro El viaje de Chihiro

Ao
1977 2001 2004 2001

Duracin
123 178 125 125

Dominio=Textos

Dominio=Enteros
4

Notacin
Atributos Relacin R Dominio de Ai Ai R(A1, A2, A3, ..., AN) dom(Ai)

R A 1, A 2, ... , A N dom A 1 dom A 2 ...dom A N

Relacin son algunas de todas las combinaciones posibles


5

Relacin es un conjunto
Por lo tanto, no est ordenado Notacin para las tuplas
t = <Mar Adentro, 2004, 125> Pelcula

Notacin para subconjunto de tupla


t[ao,duracin] = <2004, 125>

Dominios
Restriccin de dominio
t[A] = <x> x dom(A)

En algunos casos ...


NULL dom(A) En tal caso diremos que la relacin acepta valores nulos

Claves candidatas y primarias


Claves candidatas

Coche NMatrcula
CCA-341 OFG-851 XTV-657 WGB-959

NMotor
91234908123 53489787679 30752312386 50934187123

Marca
Toyota Fiat Ford Toyota

Modelo ...
Yaris Fiorino Mustang Avensis

La eleccin de una clave primaria es arbitraria Se escoge una que tenga pocos atributos

Restricciones de claves
Restriccin de claves nicas
K claves(Relacin)

t1, t2 Relacin, t1[K] t2[K] NULL


|K|

Una clave puede ser


Un atributo Varios atributos (clave compuesta)
Incluso toda la tupla en algunos casos (evitarlo)
9

Llaves forneas
Empleado Nombre Apellido

DNI

FechaNac

DNI_Jefe Salario NumDept

Departamento Nombre Nmero

DNI_Jefe

Direccin

Trabaja_En DNI NmProy

Proyecto Nombre

Nmero

Depto

Presupuesto
10

Integridad referencial
Empleado Nombre Apellido

DNI

FechaNac

DNI_Jefe Salario NumDept

Departamento Nombre Nmero

DNI_Jefe

Direccin

Trabaja_En DNI NmProy

Proyecto Nombre

Nmero

Depto

Presupuesto
11

Mejor nombre: ID_XXX[_rol] Mejor dominio: numrico


Empleado Nombre Apellido ID_emp FechaNac ID_emp_jefe Salario ID_depto

Departamento Nombre ID_depto ID_emp_direct Direccin

Trabaja_En ID_emp ID_proy

Proyecto Nombre

ID_proy

Depto

Presupuesto
12

Mantener integridad referencial


Al insertar
Insertar clave fornea en la otra tabla Rechazar la insercin

Al eliminar
Eliminar tuplas que apuntan a esta tupla
Cascada

Actualizar valores en tuplas que apuntan a esta tupla

13

Convertir Entidad-Relacin en Modelo Relacional

14

Convertir Entidad-Relacin
Se comienza con un modelo E-R
Porque es ms fcil de disear Tiene dos conceptos: entidad y relacin

Traducir E-R a relacional, versin simple:


1)Cada entidad se transforma en una tabla con los mismos atributos 2)Se agregan claves donde sea necesario 3)Cada relacin se transforma en una tabla en que los atributos son las claves de cada entidad participante
15

Traduccin simple, paso 0


Nombre Pelcula Ao Nombre Acta Actor Apellido

Produce

Estudio

Nombre

16

Traduccin simple, paso 1


Nombre Pelcula Ao Nombre Acta Actor Apellido

ID_Pelcula

ID_Actor ID_Estudio Produce Estudio

Nombre

17

Traduccin simple, paso 2


Nombre Pelcula Ao Acta ID_Actor ID_Estudio Produce Estudio Nombre Actor Apellido

ID_Pelcula

Pelcula ID_Pelcula
1 2 3 4

Nombre
La guerra de las galaxias El seor de los anillos 1 Mar Adentro El viaje de Chihiro

Ao
1977 2001 2004 2001

Nombre

Actor ID_Actor
1 2 3 4

Nombre
Mark Cristopher Javier Hugo

Apellido
Hamill Lee Bardem Weaving

Estudio ID_Estudio
1 2 3 4

Nombre
Ghibli New Line Cinema Lucasfilms Sogecine

18

Traduccin simple, paso 3


Nombre Pelcula Ao Acta ID_Actor ID_Estudio Nombre Actor Apellido

ID_Pelcula

Pelcula ID_Pelcula
1 2 3 4

Nombre
La guerra de las galaxias El seor de los anillos 1 Mar Adentro El viaje de Chihiro

Ao
1977 2001 2004 2001

Produce

Estudio

Nombre

Actor ID_Actor
1 2 3 4

Nombre
Mark Cristopher Javier Hugo

Apellido
Hamill Lee Bardem Weaving

Acta ID_Actor
1 2 3 4 1 2 3 2

ID_Pelcula

Estudio ID_Estudio
1 2 3 4

Nombre
Ghibli New Line Cinema Lucasfilms Sogecine

Produce ID_Pelcula
1 2 3 4 3 2 4 1

ID_Estudio

19

Combinar relaciones
A veces es posible combinar relaciones
El caso tpico son las relaciones 1-N Relaciones 1-1 deberan descartarse antes
Nombre Pelcula Ao Nombre Apellido

Acta

N
ID_Actor

Actor

ID_Pelcula

ID_Estudio

Produce

1
Nombre

Estudio

20

Combinando relacin 1-N (a)


Nombre Pelcula Ao N N Produce Acta N ID_Actor 1 Estudio Nombre Actor ID_Estudio Apellido

ID_Pelcula

Pelcula ID_Pelcula
1 2 3 4

Nombre
La guerra de las galaxias El seor de los anillos 1 Mar Adentro El viaje de Chihiro

Ao
1977 2001 2004 2001

Nombre

Actor ID_Actor
1 2 3 4

Nombre
Mark Cristopher Javier Hugo

Apellido
Hamill Lee Bardem Weaving

Acta ID_Actor
1 2 3 4 1 2 3 2

ID_Pelcula

Estudio ID_Estudio
1 2 3 4

Nombre
Ghibli New Line Cinema Lucasfilms Sogecine

Produce ID_Pelcula (1)


1 2 3 4 3 2 4 1

ID_Estudio (N)

21

Combinando relacin 1-N (b)


Estudio ID_Estudio
1 2 3 4
Nombre Ao Pelcula N N Produce Acta N ID_Actor 1 Estudio Nombre Actor ID_Estudio Apellido

Nombre
Ghibli New Line Cinema Lucasfilms Sogecine

ID_Pelcula

Actor ID_Actor
1 2 3 4

Nombre
Mark Cristopher Javier Hugo

Apellido
Hamill Lee Bardem Weaving

Nombre

Acta ID_Actor
1 2 3 4 1 2 3 2

ID_Pelcula

Pelcula ID_Pelcula
1 2 3 4

Nombre
La guerra de las galaxias El seor de los anillos 1 Mar Adentro El viaje de Chihiro

Ao
1977 2001 2004 2001

ID_Estudio
3 2 4 1

Produce ID_Pelcula (1)


1 2 3 4 3 2 4 1

ID_Estudio (N)

22

Combinando relacin 1-N (c)


Estudio ID_Estudio
1 2 3 4

Nombre
Ghibli New Line Cinema Lucasfilms Sogecine
Nombre

Ao Pelcula N N Produce Acta N

Nombre Actor

Apellido

Actor ID_Actor
1 2 3 4

Nombre
Mark Cristopher Javier Hugo

Apellido
Hamill Lee Bardem Weaving

ID_Pelcula

ID_Actor 1 Estudio

ID_Estudio

Acta ID_Actor
1 2 3 4 1 2 3 2

ID_Pelcula

Nombre

Pelcula ID_Pelcula
1 2 3 4

Nombre
La guerra de las galaxias El seor de los anillos 1 Mar Adentro El viaje de Chihiro

Ao
1977 2001 2004 2001

ID_Estudio
3 2 4 1

23

Traduccin cuando hay subclases

24

E-R a relacional con subclases


IDv Matrcula Vehculo d IDp

Dueo

Propietario

Nombre

Bus Pasajeros

Camin Ejes

Coche

25

Opcin 1: directo E-R


IDv Matrcula d Bus Pasajeros Camin Ejes Coche Vehculo N Dueo 1 Propietario IDp Nombre

Propietario IDp Nombre Vehculo IDv Matrcula Dueo IDv IDp

Bus IDv

Pasajeros

Camin IDv

Ejes

Coche IDv
26

Opcin 2: orientado a objetos


IDv Matrcula d Bus Pasajeros Camin Ejes Coche Vehculo N Dueo 1 Propietario IDp Nombre

Propietario IDp Nombre Vehculo IDv Matrcula Dueo IDv IDp

Bus IDv Camin IDv Coche IDv

Matrcula Pasajeros Matrcula Matrcula Ejes

Nota: La tabla vehculo existe en este caso s y slo si hay especializacin parcial

27

Opcin 3: valores nulos


IDv Matrcula d Bus Pasajeros Camin Ejes Coche Vehculo N Dueo 1 Propietario IDp Nombre

Propietario IDp Nombre Dueo IDv IDp

Vehculo IDv Matrcula Pasajeros

Ejes

28

Desventaja opcin orientado a objetos


Queremos pocas entidades
Cuando hay entidades overlapped podramos tener que generar todas las combinaciones posibles
Barco o NPax Pasajeros Carga Tons

Barco_Pasajeros IDb NPax Barco_Carga IDb Tons

Barco_Pasajeros_Carga IDb NPax Tons

29

Ventaja de usar valores nulos


Puede acelerar ciertas consultas, al evitar consultar varias tablas
SELECT ejes FROM vehiculo,camion WHERE camion.idv=vehiculo.idv AND vehiculo.matricula='XXX-XXX'; SELECT ejes FROM camion WHERE camion.matricula='XXX-XXX';

30

Uso de espacio extra


Directo E-R
Se repiten las claves primarias

Orientado a objetos
No se repite nada

Valores nulos
Se repiten todos los atributos

La opcin Directo E-R es una buena solucin intermedia entre ambas


31

Resumen
Modelo relacional
Formalizacin de esquemas de tablas

Traduccin E-R a relacional es directa en muchos casos

32

You might also like