Basesdatos teo5 modelo_relacional
-
Upload
companirris-company-sa-de-cv-copyright -
Category
Technology
-
view
1.027 -
download
4
description
Transcript of Basesdatos teo5 modelo_relacional
![Page 1: Basesdatos teo5 modelo_relacional](https://reader033.fdocumento.com/reader033/viewer/2022051323/54922477b47959f2248b5859/html5/thumbnails/1.jpg)
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).
![Page 2: Basesdatos teo5 modelo_relacional](https://reader033.fdocumento.com/reader033/viewer/2022051323/54922477b47959f2248b5859/html5/thumbnails/2.jpg)
2
Temas de esta clase
Conceptos del modelo relacional
Convertir E-R a modelo relacional
![Page 3: Basesdatos teo5 modelo_relacional](https://reader033.fdocumento.com/reader033/viewer/2022051323/54922477b47959f2248b5859/html5/thumbnails/3.jpg)
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
![Page 4: Basesdatos teo5 modelo_relacional](https://reader033.fdocumento.com/reader033/viewer/2022051323/54922477b47959f2248b5859/html5/thumbnails/4.jpg)
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
![Page 5: Basesdatos teo5 modelo_relacional](https://reader033.fdocumento.com/reader033/viewer/2022051323/54922477b47959f2248b5859/html5/thumbnails/5.jpg)
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
![Page 6: Basesdatos teo5 modelo_relacional](https://reader033.fdocumento.com/reader033/viewer/2022051323/54922477b47959f2248b5859/html5/thumbnails/6.jpg)
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>
![Page 7: Basesdatos teo5 modelo_relacional](https://reader033.fdocumento.com/reader033/viewer/2022051323/54922477b47959f2248b5859/html5/thumbnails/7.jpg)
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
![Page 8: Basesdatos teo5 modelo_relacional](https://reader033.fdocumento.com/reader033/viewer/2022051323/54922477b47959f2248b5859/html5/thumbnails/8.jpg)
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
![Page 9: Basesdatos teo5 modelo_relacional](https://reader033.fdocumento.com/reader033/viewer/2022051323/54922477b47959f2248b5859/html5/thumbnails/9.jpg)
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)
![Page 10: Basesdatos teo5 modelo_relacional](https://reader033.fdocumento.com/reader033/viewer/2022051323/54922477b47959f2248b5859/html5/thumbnails/10.jpg)
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
![Page 11: Basesdatos teo5 modelo_relacional](https://reader033.fdocumento.com/reader033/viewer/2022051323/54922477b47959f2248b5859/html5/thumbnails/11.jpg)
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
![Page 12: Basesdatos teo5 modelo_relacional](https://reader033.fdocumento.com/reader033/viewer/2022051323/54922477b47959f2248b5859/html5/thumbnails/12.jpg)
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
![Page 13: Basesdatos teo5 modelo_relacional](https://reader033.fdocumento.com/reader033/viewer/2022051323/54922477b47959f2248b5859/html5/thumbnails/13.jpg)
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
![Page 14: Basesdatos teo5 modelo_relacional](https://reader033.fdocumento.com/reader033/viewer/2022051323/54922477b47959f2248b5859/html5/thumbnails/14.jpg)
14
Convertir Entidad-Relaciónen
Modelo Relacional
![Page 15: Basesdatos teo5 modelo_relacional](https://reader033.fdocumento.com/reader033/viewer/2022051323/54922477b47959f2248b5859/html5/thumbnails/15.jpg)
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
![Page 16: Basesdatos teo5 modelo_relacional](https://reader033.fdocumento.com/reader033/viewer/2022051323/54922477b47959f2248b5859/html5/thumbnails/16.jpg)
16
Traducción simple, paso 0
ActúaPelícula
Nombre Año
Produce Estudio
Nombre
Actor
Nombre Apellido
![Page 17: Basesdatos teo5 modelo_relacional](https://reader033.fdocumento.com/reader033/viewer/2022051323/54922477b47959f2248b5859/html5/thumbnails/17.jpg)
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
![Page 18: Basesdatos teo5 modelo_relacional](https://reader033.fdocumento.com/reader033/viewer/2022051323/54922477b47959f2248b5859/html5/thumbnails/18.jpg)
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
![Page 19: Basesdatos teo5 modelo_relacional](https://reader033.fdocumento.com/reader033/viewer/2022051323/54922477b47959f2248b5859/html5/thumbnails/19.jpg)
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
![Page 20: Basesdatos teo5 modelo_relacional](https://reader033.fdocumento.com/reader033/viewer/2022051323/54922477b47959f2248b5859/html5/thumbnails/20.jpg)
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
![Page 21: Basesdatos teo5 modelo_relacional](https://reader033.fdocumento.com/reader033/viewer/2022051323/54922477b47959f2248b5859/html5/thumbnails/21.jpg)
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
![Page 22: Basesdatos teo5 modelo_relacional](https://reader033.fdocumento.com/reader033/viewer/2022051323/54922477b47959f2248b5859/html5/thumbnails/22.jpg)
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
![Page 23: Basesdatos teo5 modelo_relacional](https://reader033.fdocumento.com/reader033/viewer/2022051323/54922477b47959f2248b5859/html5/thumbnails/23.jpg)
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
![Page 24: Basesdatos teo5 modelo_relacional](https://reader033.fdocumento.com/reader033/viewer/2022051323/54922477b47959f2248b5859/html5/thumbnails/24.jpg)
24
Traducción cuando hay subclases
![Page 25: Basesdatos teo5 modelo_relacional](https://reader033.fdocumento.com/reader033/viewer/2022051323/54922477b47959f2248b5859/html5/thumbnails/25.jpg)
25
E-R a relacional con subclases
Vehículo
d
IDv
Matrícula
Bus Camión Coche
EjesPasajeros
Propietario
IDp
NombreDueñoN 1
![Page 26: Basesdatos teo5 modelo_relacional](https://reader033.fdocumento.com/reader033/viewer/2022051323/54922477b47959f2248b5859/html5/thumbnails/26.jpg)
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
![Page 27: Basesdatos teo5 modelo_relacional](https://reader033.fdocumento.com/reader033/viewer/2022051323/54922477b47959f2248b5859/html5/thumbnails/27.jpg)
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
![Page 28: Basesdatos teo5 modelo_relacional](https://reader033.fdocumento.com/reader033/viewer/2022051323/54922477b47959f2248b5859/html5/thumbnails/28.jpg)
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
![Page 29: Basesdatos teo5 modelo_relacional](https://reader033.fdocumento.com/reader033/viewer/2022051323/54922477b47959f2248b5859/html5/thumbnails/29.jpg)
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
![Page 30: Basesdatos teo5 modelo_relacional](https://reader033.fdocumento.com/reader033/viewer/2022051323/54922477b47959f2248b5859/html5/thumbnails/30.jpg)
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';
![Page 31: Basesdatos teo5 modelo_relacional](https://reader033.fdocumento.com/reader033/viewer/2022051323/54922477b47959f2248b5859/html5/thumbnails/31.jpg)
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
![Page 32: Basesdatos teo5 modelo_relacional](https://reader033.fdocumento.com/reader033/viewer/2022051323/54922477b47959f2248b5859/html5/thumbnails/32.jpg)
32
Resumen
Modelo relacional
Formalización de esquemas de tablas
Traducción E-R a relacional es directa en muchos casos