Sistemas de Información II Tema 5. El modelo relacional · El viaje de Chihiro 2001 125. 4...
Transcript of Sistemas de Información II Tema 5. El modelo relacional · El viaje de Chihiro 2001 125. 4...
1
Sistemas de Información II
Tema 5. El modelo relacional
Carlos Castillo
UPF – 2008
Bibliografía:Elmasri y Navathe: “Fundamentos de Sistemas de Bases de
Datos”3ª edición, 2002 (Capítulo 7).
Garcia-Molina, Ullman y Widom: “Database systems: the complete book”. Prentice-Hall (Capítulo 3).
2
Temas de esta clase
Conceptos del modelo relacional
Convertir E-R a modelo relacional
3
Relación
Relación ≃ tabla de datos
Por eso se llaman bases de datos relacionales
Título Año DuraciónLa guerra de las galaxias 1977 123El señor de los anillos 1 2001 178Mar Adentro 2004 125El viaje de Chihiro 2001 125
4
Conceptos
Título Año DuraciónLa guerra de las galaxias 1977 123El señor de los anillos 1 2001 178Mar Adentro 2004 125El viaje de Chihiro 2001 125
Atributos
Tuplas
Dominio=Textos Dominio=Enteros
Película(título,año,duración)Esquema
5
Notación
Atributos Ai
Relación R R(A1, A
2, A
3, ..., A
N)
Dominio de Ai dom(Ai)
R A1,A2, ... , AN⊆dom A1×domA2×...×dom AN
Relación son algunas de todas las combinaciones posibles
6
Relación es un conjunto
Por lo tanto, no está ordenado
Notación para las tuplas
t = <Mar Adentro, 2004, 125> ∈ Película
Notación para subconjunto de tupla
t[año,duración] = <2004, 125>
7
Dominios
Restricción de dominio
t[A] = <x> ⇔ x ∈ dom(A)
En algunos casos ...
NULL ∈ dom(A)
En tal caso diremos que la relación acepta valores nulos
8
Claves candidatas y primarias
CocheNMatrícula NMotor Marca Modelo ...CCA-341 91234908123 Toyota YarisOFG-851 53489787679 Fiat FiorinoXTV-657 30752312386 Ford MustangWGB-959 50934187123 Toyota Avensis
Claves candidatas
La elección de una clave primaria es arbitrariaSe escoge una que tenga pocos atributos
9
Restricciones de claves
Restricción de claves únicas
K ⊆ claves(Relación)
∀ t1, t
2 ∈ Relación, t
1[K] ≠ t
2[K]
NULL|K| ∉ KUna clave puede ser
Un atributo
Varios atributos (clave compuesta)Incluso toda la tupla en algunos casos (evitarlo)
10
Llaves foráneas
EmpleadoNombre Apellido DNI FechaNac DNI_Jefe Salario NumDept
DepartamentoNombre Número DNI_Jefe Dirección
ProyectoNombre Número Depto Presupuesto
Trabaja_EnDNI NúmProy
11
Integridad referencial
EmpleadoNombre Apellido DNI FechaNac DNI_Jefe Salario NumDept
DepartamentoNombre Número DNI_Jefe Dirección
ProyectoNombre Número Depto Presupuesto
Trabaja_EnDNI NúmProy
12
Mejor nombre: ID_XXX[_rol]Mejor dominio: numérico
EmpleadoNombre Apellido ID_emp FechaNac ID_emp_jefe Salario ID_depto
DepartamentoNombre ID_depto ID_emp_direct Dirección
ProyectoNombre ID_proy Depto Presupuesto
Trabaja_EnID_emp ID_proy
13
Mantener integridad referencial
Al insertar
Insertar clave foránea en la otra tabla
Rechazar la inserción
Al eliminar
Eliminar tuplas que apuntan a esta tupla“Cascada”
Actualizar valores en tuplas que apuntan a esta tupla
14
Convertir Entidad-Relaciónen
Modelo Relacional
15
Convertir Entidad-Relación
Se comienza con un modelo E-R
Porque es más fácil de diseñar
Tiene dos conceptos: entidad y relación
Traducir E-R a relacional, versión simple:
1)Cada entidad se transforma en una tabla con los mismos atributos
2)Se agregan claves donde sea necesario
3)Cada relación se transforma en una tabla en que los atributos son las claves de cada entidad participante
16
Traducción simple, paso 0
ActúaPelícula
Nombre Año
Produce Estudio
Nombre
Actor
Nombre Apellido
17
Traducción simple, paso 1
ActúaPelícula
Nombre Año
Produce Estudio
Nombre
Actor
Nombre Apellido
ID_Película ID_Actor
ID_Estudio
18
Traducción simple, paso 2
ActúaPelícula
Nombre Año
Produce Estudio
Nombre
Actor
Nombre Apellido
ID_Película ID_Actor
ID_Estudio
PelículaID_Película Nombre Año
1 La guerra de las galaxias 19772 El señor de los anillos 1 20013 Mar Adentro 20044 El viaje de Chihiro 2001
ActorID_Actor Nombre Apellido
1 Mark Hamill2 Cristopher Lee3 Javier Bardem4 Hugo Weaving
EstudioID_Estudio Nombre1 Ghibli2 New Line Cinema3 Lucasfilms4 Sogecine
19
Traducción simple, paso 3
ActúaPelícula
Nombre Año
Produce Estudio
Nombre
Actor
Nombre Apellido
ID_Película ID_Actor
ID_Estudio
PelículaID_Película Nombre Año
1 La guerra de las galaxias 19772 El señor de los anillos 1 20013 Mar Adentro 20044 El viaje de Chihiro 2001
ActorID_Actor Nombre Apellido
1 Mark Hamill2 Cristopher Lee3 Javier Bardem4 Hugo Weaving
EstudioID_Estudio Nombre1 Ghibli2 New Line Cinema3 Lucasfilms4 Sogecine
ActúaID_Actor ID_Película
1 12 23 34 2
ProduceID_Película ID_Estudio
1 32 23 44 1
20
Combinar relaciones
A veces es posible combinar relaciones
El caso típico son las relaciones 1-N
Relaciones 1-1 deberían descartarse antes
ActúaPelícula
Nombre Año
Produce Estudio
Nombre
Actor
Nombre Apellido
N N
1
ID_Película ID_Actor
ID_Estudio
N
21
Combinando relación 1-N (a)
ActúaPelícula
Nombre Año
Produce Estudio
Nombre
Actor
Nombre Apellido
N N
N
1
ID_Película ID_Actor ID_Estudio
PelículaID_Película Nombre Año
1 La guerra de las galaxias 19772 El señor de los anillos 1 20013 Mar Adentro 20044 El viaje de Chihiro 2001
ActorID_Actor Nombre Apellido
1 Mark Hamill2 Cristopher Lee3 Javier Bardem4 Hugo Weaving
EstudioID_Estudio Nombre1 Ghibli2 New Line Cinema3 Lucasfilms4 Sogecine
ActúaID_Actor ID_Película
1 12 23 34 2
ProduceID_Película (1) ID_Estudio (N)
1 32 23 44 1
22
Combinando relación 1-N (b)
ActúaPelícula
Nombre Año
Produce Estudio
Nombre
Actor
Nombre Apellido
N N
N
1
ID_Película ID_Actor ID_Estudio
PelículaID_Película Nombre Año ID_Estudio
1 La guerra de las galaxias 1977 32 El señor de los anillos 1 2001 23 Mar Adentro 2004 44 El viaje de Chihiro 2001 1
ActorID_Actor Nombre Apellido
1 Mark Hamill2 Cristopher Lee3 Javier Bardem4 Hugo Weaving
EstudioID_Estudio Nombre1 Ghibli2 New Line Cinema3 Lucasfilms4 Sogecine
ActúaID_Actor ID_Película
1 12 23 34 2
ProduceID_Película (1) ID_Estudio (N)
1 32 23 44 1
23
Combinando relación 1-N (c)
ActúaPelícula
Nombre Año
Produce Estudio
Nombre
Actor
Nombre Apellido
N N
N
1
ID_Película ID_Actor ID_Estudio
PelículaID_Película Nombre Año ID_Estudio
1 La guerra de las galaxias 1977 32 El señor de los anillos 1 2001 23 Mar Adentro 2004 44 El viaje de Chihiro 2001 1
ActorID_Actor Nombre Apellido
1 Mark Hamill2 Cristopher Lee3 Javier Bardem4 Hugo Weaving
EstudioID_Estudio Nombre1 Ghibli2 New Line Cinema3 Lucasfilms4 Sogecine
ActúaID_Actor ID_Película
1 12 23 34 2
24
Traducción cuando hay subclases
25
E-R a relacional con subclases
Vehículo
d
IDv
Matrícula
Bus Camión Coche
EjesPasajeros
Propietario
IDp
NombreDueñoN 1
26
Opción 1: directo E-R
Vehículo
d
IDv
Matrícula
Bus Camión Coche
EjesPasajeros
PropietarioIDp
Nombre
DueñoN 1
BusIDv Pasajeros
CamiónIDv Ejes
CocheIDv
PropietarioIDp Nombre
VehículoIDv Matrícula
DueñoIDv IDp
27
Opción 2: orientado a objetos
Vehículo
d
IDv
Matrícula
Bus Camión Coche
EjesPasajeros
PropietarioIDp
Nombre
DueñoN 1
BusIDv Matrícula Pasajeros
CamiónIDv Matrícula Ejes
CocheIDv Matrícula
PropietarioIDp Nombre
VehículoIDv Matrícula
DueñoIDv IDp
Nota:La tabla vehículo existe eneste caso sí y sólo si hayespecialización parcial
28
Opción 3: valores nulos
Vehículo
d
IDv
Matrícula
Bus Camión Coche
EjesPasajeros
PropietarioIDp
Nombre
DueñoN 1
VehículoIDv Matrícula Pasajeros Ejes
PropietarioIDp Nombre
DueñoIDv IDp
29
Desventaja opciónorientado a objetos
Queremos pocas entidades
Cuando hay entidades “overlapped” podríamos tener que generar todas las combinaciones posibles
Barco
o
Pasajeros CargaNPax Tons
Barco_PasajerosIDb NPax
Barco_CargaIDb Tons
Barco_Pasajeros_CargaIDb NPax Tons
30
Ventaja de usarvalores 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';
31
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 opción “Directo E-R” es una buena solución intermedia entre ambas
32
Resumen
Modelo relacional
Formalización de esquemas de tablas
Traducción E-R a relacional es directa en muchos casos