Bases de Datos - Parte 5/10 Modelo relacional

17,167 views

Published on

0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
17,167
On SlideShare
0
From Embeds
0
Number of Embeds
249
Actions
Shares
0
Downloads
760
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Bases de Datos - Parte 5/10 Modelo relacional

  1. 1. Sistemas de Información II Tema 5. El modelo relacional <ul><ul><li>Carlos Castillo </li></ul></ul><ul><ul><li>UPF – 2007 </li></ul></ul><ul><ul><li>Bibliografía: </li></ul></ul><ul><ul><li>Elmasri y Navathe: “Fundamentos de Sistemas de Bases de Datos” </li></ul></ul><ul><ul><li>3ª edición, 2002 (Capítulo 7). </li></ul></ul><ul><ul><li>Garcia-Molina, Ullman y Widom: “Database systems: the complete book”. Prentice-Hall (Capítulo 3). </li></ul></ul>
  2. 2. Temas de esta clase <ul><li>Conceptos del modelo relacional </li></ul><ul><li>Convertir E-R a modelo relacional </li></ul>
  3. 3. Relación <ul><li>Relación ≃ tabla de datos </li></ul><ul><ul><li>Por eso se llaman bases de datos relacionales </li></ul></ul>
  4. 4. Conceptos Atributos Tuplas Dominio =Textos Dominio =Enteros Película(título,año,duración) Esquema
  5. 5. Notación <ul><li>Atributos A i </li></ul><ul><li>Relación R R(A 1 , A 2 , A 3 , ..., A N ) </li></ul><ul><li>Dominio de Ai dom(A i ) </li></ul>Relación son algunas de todas las combinaciones posibles
  6. 6. Relación es un conjunto <ul><li>Por lo tanto, no está ordenado </li></ul><ul><li>Notación para las tuplas </li></ul><ul><ul><li>t = <Mar Adentro, 2004, 125> ∈ Película </li></ul></ul><ul><li>Notación para subconjunto de tupla </li></ul><ul><ul><li>t[año,duración] = <2004, 125> </li></ul></ul>
  7. 7. Dominios <ul><li>Restricción de dominio </li></ul><ul><ul><li>t[A] = <x> ⇔ x ∈ dom(A) </li></ul></ul><ul><li>En algunos casos ... </li></ul><ul><ul><li>NULL ∈ dom(A) </li></ul></ul><ul><ul><li>En tal caso diremos que la relación acepta valores nulos </li></ul></ul>
  8. 8. Claves candidatas y primarias Claves candidatas <ul><ul><li>La elección de una clave primaria es arbitraria </li></ul></ul><ul><ul><li>Se escoge una que tenga pocos atributos </li></ul></ul>
  9. 9. Restricciones de claves <ul><li>Restricción de claves únicas </li></ul><ul><ul><li>K ⊆ claves(Relación) </li></ul></ul><ul><ul><li>∀ t 1 , t 2 ∈ Relación, t 1 [K] ≠ t 2 [K] </li></ul></ul><ul><ul><li>NULL |K| ∉ K </li></ul></ul><ul><li>Una clave puede ser </li></ul><ul><ul><li>Un atributo </li></ul></ul><ul><ul><li>Varios atributos (clave compuesta) </li></ul></ul><ul><ul><ul><li>Incluso toda la tupla en algunos casos (evitarlo) </li></ul></ul></ul>
  10. 10. Llaves foráneas
  11. 11. Integridad referencial
  12. 12. Mejor nombre: ID_XXX[_rol] Mejor dominio: numérico
  13. 13. Mantener integridad referencial <ul><li>Al insertar </li></ul><ul><ul><li>Insertar clave foránea en la otra tabla </li></ul></ul><ul><ul><li>Rechazar la inserción </li></ul></ul><ul><li>Al eliminar </li></ul><ul><ul><li>Eliminar tuplas que apuntan a esta tupla </li></ul></ul><ul><ul><ul><li>“Cascada” </li></ul></ul></ul><ul><ul><li>Actualizar valores en tuplas que apuntan a esta tupla </li></ul></ul>
  14. 14. Convertir Entidad-Relación en Modelo Relacional
  15. 15. Convertir Entidad-Relación <ul><li>Se comienza con un modelo E-R </li></ul><ul><ul><li>Porque es más fácil de diseñar </li></ul></ul><ul><ul><li>Tiene dos conceptos: entidad y relación </li></ul></ul><ul><li>Traducir E-R a relacional, versión simple: </li></ul><ul><ul><li>Cada entidad se transforma en una tabla con los mismos atributos </li></ul></ul><ul><ul><li>Se agregan claves donde sea necesario </li></ul></ul><ul><ul><li>Cada relación se transforma en una tabla en que los atributos son las claves de cada entidad participante </li></ul></ul>
  16. 16. Traducción simple, paso 0
  17. 17. Traducción simple, paso 1
  18. 18. Traducción simple, paso 2
  19. 19. Traducción simple, paso 3
  20. 20. Combinar relaciones <ul><li>A veces es posible combinar relaciones </li></ul><ul><ul><li>El caso típico son las relaciones 1-N </li></ul></ul><ul><ul><li>Relaciones 1-1 deberían descartarse antes </li></ul></ul>
  21. 21. Combinando relación 1-N (a)
  22. 22. Combinando relación 1-N (b)
  23. 23. Combinando relación 1-N (c) Actúa Película Nombre Año Produce Estudio Nombre Actor Nombre Apellido N N N 1 ID_Película ID_Actor ID_Estudio
  24. 24. Traducción cuando hay subclases
  25. 25. E-R a relacional con subclases
  26. 26. Opción 1: directo E-R
  27. 27. Opción 2: orientado a objetos Nota : La tabla vehículo existe en este caso sí y sólo si hay especialización parcial
  28. 28. Opción 3: valores nulos
  29. 29. Desventaja opción orientado a objetos <ul><li>Queremos pocas entidades </li></ul><ul><ul><li>Cuando hay entidades “ o verlapped ” podríamos tener que generar todas las combinaciones posibles </li></ul></ul>
  30. 30. Ventaja de usar valores nulos <ul><li>Puede acelerar ciertas consultas, al evitar consultar varias tablas </li></ul><ul><li>SELECT ejes </li></ul><ul><li>FROM vehiculo,camion </li></ul><ul><li>WHERE camion.idv=vehiculo.idv </li></ul><ul><li>AND vehiculo.matricula='XXX-XXX'; </li></ul><ul><li>SELECT ejes </li></ul><ul><li>FROM camion </li></ul><ul><li>WHERE camion.matricula='XXX-XXX'; </li></ul>
  31. 31. Uso de espacio extra <ul><li>Directo E-R </li></ul><ul><ul><li>Se repiten las claves primarias </li></ul></ul><ul><li>Orientado a objetos </li></ul><ul><ul><li>No se repite nada </li></ul></ul><ul><li>Valores nulos </li></ul><ul><ul><li>Se repiten todos los atributos </li></ul></ul><ul><li>La opción “ Directo E-R ” es una buena solución intermedia entre ambas </li></ul>
  32. 32. Resumen <ul><li>Modelo relacional </li></ul><ul><ul><li>Formalización de esquemas de tablas </li></ul></ul><ul><li>Traducción E-R a relacional es directa en muchos casos </li></ul>

×