El modelo relacional

16,089 views
15,662 views

Published on

Published in: Education
1 Comment
3 Likes
Statistics
Notes
  • Muchas gracias por el aporte, Luis; me ha sido muy útil. Vientos =)
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
16,089
On SlideShare
0
From Embeds
0
Number of Embeds
178
Actions
Shares
0
Downloads
417
Comments
1
Likes
3
Embeds 0
No embeds

No notes for slide
  • Introducción a las Bases de Datos 26 de abril de 2011 UPC - Ingeniería de Sistemas
  • Modelo Relacional 26 de abril de 2011 UPC-Ing. Sistemas
  • Modelo Relacional 26 de abril de 2011 UPC-Ing. Sistemas Un predicado es una expresión booleana que puede evaluarse arrojando los resultados de verdadero o falso, para probar la membresía de un elemento en particular al dominio.
  • Modelo Relacional 26 de abril de 2011 UPC-Ing. Sistemas Un predicado es una expresión booleana que puede evaluarse arrojando los resultados de verdadero o falso, para probar la membresía de un elemento en particular al dominio.
  • El modelo relacional

    1. 1. Base de Datos Profesor: MSC Luis Serna Jherry
    2. 2. El Modelo Relacional <ul><li>¿ Qué es ? </li></ul><ul><li>Estructura de Datos relacional </li></ul><ul><li>Tipos de Relaciones </li></ul><ul><li>Restricciones de Integridad </li></ul><ul><li>Transformación de un DER en un esquema relacional </li></ul>
    3. 3. ¿Qué es? <ul><li>Es el modelo teórico que constituye los cimientos de los manejadores de base de datos relacionales (RDBMS). </li></ul><ul><li>Es el principal modelo de datos empleado para las aplicaciones de procesamiento de datos, cubriendo cerca del 85% de las ventas mundiales. </li></ul>
    4. 4. ¿Qué es? <ul><li>El modelo relacional es una forma de ver los datos que consta de: </li></ul><ul><ul><li>Una representación de los datos mediante tablas llamadas “relaciones” ( Estructura ) </li></ul></ul><ul><ul><li>Un conjunto de restricciones que permiten la consistencia de los datos ( Integridad ) </li></ul></ul><ul><ul><li>Un conjunto de operadores que permiten manipular dichos datos ( Lenguaje de Manipulación ) </li></ul></ul>
    5. 5. Estructura de Datos Relacional 1234 4210 6544 8541 9642 Clave Primaria NAC EXT Dominios # Proveedor N Proveedor C Tipo Servicio C Tipo Proveedor Ciudad Abad & Asoc. Ltd Carmen Morales OXF Traiders Lau Chun S.A. Marcos Segura SUM LIM EQP SUM LIM NAC NAC EXT NAC NAC LIMA MIRAF CHICG LIMA LINCE T u plas C a r d i n a l i d a d Atributos Grado R e l a c i ó n PROVEEDOR
    6. 6. Bases de Datos Relacionales Terminología Término Relacional Término tabular Base de datos relacional Conjunto de Tablas Relación Una sola tabla Atributo Encabezado de columna Tupla Fila de datos de una tabla Cardinalidad # de filas de una tabla Grado # de columnas de una tabla Dominio Lista de valores permitidos para los datos de una columna
    7. 7. Estructura de Datos Relacional <ul><li>El dominio es el componente elemental de una BD relacional: un conjunto de valores (= tipo de dato). </li></ul><ul><ul><ul><li>D 1 = {Juan, María, Pablo} </li></ul></ul></ul><ul><ul><ul><li>D 2 = todas las cadenas de caracteres </li></ul></ul></ul><ul><ul><ul><li>D 3 = {x / x es un entero y x > 0} </li></ul></ul></ul><ul><ul><ul><li>D 4 = {x / x es un entero negativo} </li></ul></ul></ul><ul><li>Es un conjunto nominado y homogéneo de valores atómicos </li></ul><ul><li>Se especifica lógicamente mediante un nombre y un formato, por extensión (lista de valores), o por intención (tipo de dato o predicado). </li></ul>
    8. 8. Estructura de Datos Relacional <ul><li>Estos dominios o tipos pueden ser definidos por el sistema o definidos por el usuario </li></ul><ul><li>Un dominio o tipo tiene asociado un conjunto de operadores válidos que se pueden aplicar a sus valores, los cuales dependen de su semántica y no de su representación física. </li></ul><ul><ul><li>Todo valor tiene un tipo </li></ul></ul><ul><ul><li>El sistema siempre comprueba que los operandos son del tipo adecuado para la ejecución de cada operación </li></ul></ul>
    9. 9. Estructura de Datos Relacional: Dominios <ul><li>Los dominios restringen la manipulación: </li></ul><ul><ul><li>Las comparaciones tienen sentido cuando se plantean entre atributos que provienen del mismo dominio: </li></ul></ul><ul><ul><ul><li>Q_Peso = Q_Unidades </li></ul></ul></ul><ul><ul><ul><li>A.N_Ciudad = B.N_Ciudad </li></ul></ul></ul><ul><ul><li>Las expresiones tienen sentido si emplean operadores definidos como válidos en los dominios y en sus combinaciones: </li></ul></ul><ul><ul><ul><li>Q_Peso + Q_Unidades </li></ul></ul></ul><ul><ul><ul><li>Q_Peso * Q_Unidades </li></ul></ul></ul>
    10. 10. Estructura de Datos Relacional: Dominios <ul><li>El soporte para dominios (tipos) en el modelo relacional implica que: </li></ul><ul><ul><li>El sistema siempre sabrá qué expresiones son válidas y el tipo del resultado de cada expresión </li></ul></ul><ul><ul><li>El conjunto de tipos de una base de datos es un conjunto cerrado: el tipo del resultado de toda expresión será siempre un tipo conocido por el sistema </li></ul></ul><ul><ul><li>El sistema conoce qué asignaciones y qué comparaciones son válidas </li></ul></ul>
    11. 11. <ul><li>Un Atributo es un par ordenado (N, D), donde N es el nombre del atributo y D es el dominio del cual toma sus valores. </li></ul><ul><li>Una Relación (tabla) es un conjunto de atributos con nombre (R, C), donde </li></ul><ul><ul><li>R es el nombre de la relación, y </li></ul></ul><ul><ul><li>C = {(N 1 , D 1 ), {N 2 , D 2 ), ... , (N n , D n )} es el conjunto finito de atributos; </li></ul></ul><ul><ul><li>todos los N i son distintos, aunque no necesariamente lo son los D i </li></ul></ul>Estructura de Datos Relacional
    12. 12. <ul><li>Un esquema relacional (cabecera de una tabla) es un conjunto de atributos </li></ul><ul><li>Una asociación basada en el atributo (N, D) es un par ordenado (N, x), donde x  D. Luego, una tupla es un conjunto de asociaciones (N, x), una por cada atributo del esquema. </li></ul><ul><li>Un cuerpo relacional es un conjunto de tuplas </li></ul><ul><li>Una base de datos relacional es un conjunto de relaciones </li></ul>Estructura de Datos Relacional
    13. 13. Estructura de Datos Relacional: Relaciones Relación CURSO ESQUEMA C U E R P O C_Curso N_Curso #Horas N_Grupo 00012 Diseño de Base de Datos 50 Base de Datos 00034 Bases de Datos OO 30 Base de Datos 00167 Sistemas Operativos Avanzados 30 Sistemas Operativos 01521 Datawarehousing 25 Base de Datos 005142 Introducción al C++ 25 Lenguajes
    14. 14. Estructura de Datos Relacional: Relaciones <ul><li>D 1 el conjunto de los nombres de códigos de curso </li></ul><ul><li>D 2 el conjunto de los nombres de curso </li></ul><ul><li>D 3 el conjunto de los números naturales </li></ul><ul><li>D 4 el conjunto de los grupos </li></ul><ul><li>Cada fila de CURSO consiste de una tupla (v 1 , v 2 , v 3 , v 4 ), donde: v i está en el dominio D i </li></ul><ul><li> La tabla CURSO es un subconjunto de </li></ul><ul><li>D 1 x D 2 x D 3 x D 4 </li></ul>
    15. 15. Estructura de Datos Relacional: Relaciones <ul><li>En general: </li></ul><ul><li>Una tabla de “n” atributos debe ser un subconjunto de </li></ul><ul><li>D 1 x D 2 x D 3 ....... x D n-1 x D n </li></ul><ul><li>Definición matemática de “Relación”: </li></ul><ul><li>“ Subconjunto del producto cartesiano de la lista de dominios” </li></ul><ul><li> Relación = Tabla </li></ul><ul><li>Tupla = Fila </li></ul>
    16. 16. Propiedades de las Relaciones <ul><li>No existen tuplas repetidas : </li></ul><ul><li>Cada relación es un conjunto matemático; por ende, no tiene elementos repetidos. </li></ul><ul><li>Las tuplas no están ordenadas (de arriba a abajo). </li></ul><ul><li>Los atributos no están ordenados (de izquierda a derecha). </li></ul><ul><li>Todos los valores de los atributos son atómicos . Es decir, cada tupla contiene exactamente un valor para cada atributo. </li></ul>
    17. 17. Tipos de Relaciones <ul><li>Relación base (relación real). Es equivalente al concepto tabla del SQL. Tiene nombre y es autónoma. </li></ul><ul><li>Vista (relación virtual). Es una relación derivada con nombre propio y cuya definición se basa en relaciones base. No poseen datos almacenados. </li></ul><ul><li>Instantánea (snapshot). Relación derivada con nombre que si posee datos, como resultado de una consulta que se almacena y refresca periódicamente. </li></ul>
    18. 18. Tipos de Relaciones <ul><li>Resultado de consulta : Es la relación resultante de alguna consulta (query) específica. Puede, o no, tener nombre, y no tiene existencia persistente en la base de datos. </li></ul><ul><li>Resultado intermedio : Es una relación resultante de alguna expresión relacional anidada, que no tiene existencia persistente y que generalmente no tiene nombre. </li></ul>
    19. 19. Tipos de Relaciones <ul><li>Relaciones temporales : Es una relación con nombre, similar a una relación base o vista, pero con la diferencia de que se destruye en forma automática. </li></ul><ul><li>Las relaciones base, vista e instantánea se destruyen solamente por acción específica del usuario. </li></ul>
    20. 20. Tipos de Relaciones Vistas <ul><li>No forman parte del modelo lógico </li></ul><ul><li>Consideraciones de seguridad. </li></ul><ul><li>No mostrar los atributos de una tabla que corresponden a información confidencial (por ejemplo sueldos). </li></ul><ul><li>Personalización de relaciones para un usuario en particular. </li></ul><ul><li>Mostrar algunos atributos seleccionados de varias tablas relacionadas. </li></ul>
    21. 21. Restricciones de Integridad
    22. 22. Restricciones de Integridad <ul><li>El propósito de las reglas de integridad es informar al DBMS de ciertas restricciones en el mundo real. </li></ul><ul><li>La mayor parte de las reglas de integridad de datos son específicas, en cuanto a que se aplican a una base de datos en particular (reglas de negocio). </li></ul>
    23. 23. Restricciones de Integridad (Constraints) <ul><li>Aseguran que las modificaciones realizadas no originen pérdida de consistencia de los datos </li></ul><ul><li>Restricciones de Dominio: </li></ul><ul><li>Especifican el conjunto de valores que se puede asociar a un atributo. </li></ul><ul><li>Restricciones de Clave Primaria </li></ul><ul><ul><li>Todas las tuplas de una relaci ón son distintas, es decir, debe haber siempre una clave primaria que garantice esta unicidad </li></ul></ul>
    24. 24. <ul><li>Restricciones de Clave Primaria </li></ul><ul><ul><li>La clave primaria (PK) es un identificador único para una relación. </li></ul></ul><ul><ul><li>La clave primaria puede ser compuesta (más de un atributo) </li></ul></ul><ul><ul><li>Es posible que en una relación haya más de un identificador único o “ clave candidata ”: </li></ul></ul><ul><ul><ul><li>Unicidad: En cualquier momento dado, no existen dos tuplas en R con el mismo valor de K. </li></ul></ul></ul><ul><ul><ul><li>Minimalidad: Si K es compuesta, no será posible eliminar ningún componente de K, sin destruir la propiedad de unicidad. </li></ul></ul></ul><ul><ul><li>En estos casos una debe ser escogida como clave primaria y las otras se denominarán claves alternantes únicas. </li></ul></ul>Restricciones de Integridad (Constraints)
    25. 25. Restricciones de Integridad (Constraints) <ul><li>Restricciones sobre nulos: </li></ul><ul><ul><li>Especifican cuándo un atributo puede no tener un valor asociado por ser desconocido o no aplicable a alguna instancia en particular </li></ul></ul><ul><li>Restricciones de Integridad de entidades: </li></ul><ul><ul><li>Ningún componente de la clave primaria de una relación base puede aceptar nulos (un valor desconocido o no aplicable) </li></ul></ul>
    26. 26. Restricciones de Integridad (Constraints) <ul><li>Restricciones de Integridad Referencial: </li></ul><ul><li>Aseguran que un valor que aparece en una relación para un conjunto de atributos dado, aparezca también para un conjunto de atributos en otra relación: </li></ul><ul><li>“ La base de datos no debe contener valores de clave foránea sin concordancia” </li></ul>
    27. 27. <ul><li>Restricciones de Integridad Referencial: </li></ul><ul><ul><li>Una clave foránea o ajena es un atributo o conjunto de atributos (clave foránea compuesta) de una relación R2, cuyos valores deben concordar con los de la clave primaria de alguna relación R1 (donde: R1 y R2 no necesariamente son distintos). </li></ul></ul>Restricciones de Integridad (Constraints)
    28. 28. <ul><li>Restricciones de Integridad Referencial: </li></ul><ul><ul><li>El atributo FK (quizá compuesto) de una relación base R2 es una clave foránea si satisface dos propiedades: </li></ul></ul><ul><ul><ul><li>Cada valor de FK es nulo del todo o bien no nulo del todo. </li></ul></ul></ul><ul><ul><ul><li>Existe una relación base R1 con clave primaria PK, tal que cada valor no nulo de FK es idéntico al valor de PK en alguna tupla de R1. </li></ul></ul></ul>Restricciones de Integridad (Constraints)
    29. 29. Restricciones de Integridad (Constraints) <ul><li>Restricciones de integridad Semántica - Disparadores (triggers): </li></ul><ul><li>Son órdenes que el sistema ejecuta de manera automática como efecto secundario de la modificación de la base de datos. Su diseño debe cumplir dos requisitos: </li></ul><ul><ul><li>Especificar las condiciones de ejecución. </li></ul></ul><ul><ul><li>Especificar las acciones a realizar. </li></ul></ul>
    30. 30. Restricciones de Integridad (Constraints) <ul><li>Ejemplo: </li></ul><ul><li>“ Los sobregiros en las cuentas corrientes se tratan dejando en cero el saldo de la cuenta y creando un préstamo por el importe sobregirado” </li></ul><ul><li>Condición: </li></ul><ul><ul><li>Actualización de la relación CUENTA que da un valor negativo en el atributo saldo </li></ul></ul><ul><li>Acciones: </li></ul><ul><ul><li>Insertar una nueva tupla en la relación PRESTAMO </li></ul></ul><ul><ul><li>Cambiar el valor de saldo a cero en la relación CUENTA </li></ul></ul>
    31. 31. Restricciones de Integridad (Constraints) <ul><li>Restricciones de integridad Semántica – </li></ul><ul><ul><li>Asertos (afirmaciones): </li></ul></ul><ul><li>Son expresiones declarativas que expresan predicados que deben ser verdaderos. Es decir, condiciones que siempre se deben cumplir en la BD. </li></ul><ul><li>Ejemplo: </li></ul><ul><li>“ La suma de los importes de los préstamos de un banco debe ser menor a la suma de los saldos de las cuentas”. </li></ul>
    32. 32. Integridad Referencial – Reglas para Claves Foráneas <ul><li>Para cada clave foránea es necesario responder tres preguntas: </li></ul><ul><li>¿La clave foránea puede aceptar nulos ? </li></ul><ul><li>¿Que deberá suceder si hay un intento de eliminar el registro de referencia de una clave foránea? </li></ul><ul><li>¿Que deberá suceder si hay un intento de modificar la clave foránea? </li></ul>
    33. 33. <ul><li>Si la relación R2 tiene una clave foránea FK que lo relaciona con R1: </li></ul><ul><li>Insertar: </li></ul><ul><ul><li>Si se inserta una tupla en R2, debe asegurarse que  una instancia en R1 con el valor correspondiente como PK </li></ul></ul><ul><li>Borrar: </li></ul><ul><ul><li>Si se borra una tupla en R1, identificar el conjunto de tuplas en relacionadas mediante una FK. Si las hay, se puede rechazar la operación de borrado, o borrarlas en cascada o alterar su valor. </li></ul></ul>Integridad Referencial – Reglas para Claves Foráneas
    34. 34. <ul><li>Actualizar: </li></ul><ul><ul><li>Si se modifica una tupla de R2 </li></ul></ul><ul><ul><li>Se procede a verificar como en el caso de la inserción </li></ul></ul><ul><ul><li>Si se modifica una tupla en R1 </li></ul></ul><ul><ul><li>Se procede a verificar como en el caso del borrado </li></ul></ul>Integridad Referencial – Reglas para Claves Foráneas
    35. 35. <ul><li>REGLAS: </li></ul><ul><li>Cascada </li></ul><ul><li>Si se elimina una instancia del padre, todas las instancias hijo relacionadas también se eliminarán. </li></ul><ul><li>Restricción </li></ul><ul><li>No se puede eliminar una instancia del padre si tiene hijos asociados, o no se puede eliminar un hijo si existe una instancia relacionada en la entidad padre. </li></ul>Integridad Referencial – Reglas para Claves Foráneas
    36. 36. <ul><li>Set Null </li></ul><ul><li>Si se elimina una instancia del padre, las claves foráneas (FK) en las instancias hijo relacionadas cambian al valor nulo. </li></ul><ul><li>Set Default </li></ul><ul><li>Si se elimina una instancia del padre, las claves foráneas (FK) en las instancias hijo relacionadas cambian al valor por omisión establecido. </li></ul><ul><li><None> </li></ul><ul><li>No se toma ninguna acción específica. </li></ul>Integridad Referencial – Reglas para Claves Foráneas
    37. 37. Pinacotecas
    38. 38. <ul><li>¿Que deberá suceder si hay un intento de eliminar un Pintor del que haya Cuadros registradas? </li></ul><ul><li>Restricción (RESTRICTED): Se rechazará la operación </li></ul><ul><li>Propagación (CASCADE): La eliminación se hace efectiva y se propaga borrando los cuadros de su autoría. </li></ul><ul><li>Valor por omisión (SET DEFAULT): Se asignan un valor default a la clave foránea N_Pintor en todas las instancias de Cuadro correspondientes y luego se elimina el registro de Pintor. </li></ul>Integridad Referencial – Reglas para Claves Foráneas
    39. 39. <ul><li>Para cada relación existen seis posibles acciones para las cuales es necesario establecer las reglas de integridad referencial: </li></ul><ul><ul><ul><ul><li>Parent Insert Child Insert </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Parent Update Child Update </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Parent Delete Child Delete </li></ul></ul></ul></ul>Integridad Referencial – Reglas para Claves Foráneas
    40. 40. Traducción de un modelo de información en una BD Relacional
    41. 41. Traducción de un modelo ..... <ul><li>Cada entidad se convierte en una tabla </li></ul><ul><li>El identificador único se convierte en la clave primaria </li></ul><ul><li>Cada atributo se convierte en una columna de su respectiva tabla </li></ul><ul><li>Las relaciones se implementan colocando la clave primaria de una tabla en la tabla relacionada, como clave externa. </li></ul>
    42. 42. Traducción de un modelo ..... <ul><li>Antes de generar un diseño relacional a partir de un modelo, hay que asegurase que esté completo: </li></ul><ul><li>Tipos de dato de los atributos </li></ul><ul><li>Cardinalidad de las relaciones </li></ul><ul><li>Identificadores de las entidades (claves primarias) </li></ul>
    43. 43. Traducción de un modelo ..... <ul><li>Relaciones de uno a muchos: </li></ul><ul><li>La clave primaria del lado “uno” es incrustada en la tabla del lado “muchos” </li></ul><ul><li>Si el lado “uno” es opcional, la clave externa será opcional, en caso contrario será requerido. </li></ul>
    44. 44. Traducción de un modelo ..... <ul><li>Relaciones de uno a uno: </li></ul><ul><li>Son muy poco frecuentes en un sistema de negocios. Generalmente ocultan relaciones de tipo generalización / especialización. </li></ul><ul><li>Si ambos lados de la relación son obligatorios u opcionales, escoger como principal aquella que “podría” variar su cardinalidad a de uno a muchos </li></ul><ul><li>Si sólo un lado es obligatorio, la PK de éste debe migrar hacia el lado opcional. </li></ul>
    45. 45. Traducción de un modelo ..... <ul><li>Relaciones de muchos a muchos: </li></ul><ul><li>Deben ser resueltas en el modelo mediante entidades asociativas o designativas. </li></ul><ul><li>Las cardinalidades de las relaciones de estas nuevas entidades determinarán la forma de traducirlas en una BD relacional (de uno a muchos o de uno a uno) </li></ul>
    46. 46. Implementación de Entidades Supertipo / Subtipo C TipoCuenta Cuenta C Cuenta C TipoCuenta D Apertura Corriente C Cuenta (FK) $ SaldoContable $ SaldoDisponible $ Sobregiro Ahorro C Cuenta (FK) $ SaldoAhorro % Interés $ Interés Plazo Fijo C Cuenta (FK) $ MontoDepósito D Depósito % Plazo Q PlazoDías C TipoCuenta Cuenta C Cuenta C TipoCuenta D Apertura Corriente C Cuenta (FK) $ SaldoContable $ SaldoDisponible $ Sobregiro Ahorro C Cuenta (FK) $ SaldoAhorro % Interés $ Interés Plazo Fijo C Cuenta (FK) $ MontoDepósito D Depósito % Plazo Q PlazoDías
    47. 47. Implementación de Entidades Supertipo / Subtipo <ul><li>Tablas de supertipo / subtipo </li></ul><ul><ul><li>Implementar el supertipo y cada subtipo como tablas separadas </li></ul></ul><ul><ul><li>La PK del supertipo puede también usarse como PK de los subtipos </li></ul></ul><ul><ul><li>Para la descripción completa de cualquier instancia es necesario acceder por lo menos a dos tablas </li></ul></ul>
    48. 48. Implementación de Entidades Supertipo / Subtipo <ul><li>Sólo supertipo </li></ul><ul><ul><li>Las entidades subtipo son combinadas con el supertipo e implementadas como una sola tabla </li></ul></ul><ul><ul><li>Las relaciones exclusivas de los subtipos se convierten en opcionales para la nueva tabla </li></ul></ul><ul><ul><li>Se incluirán campos que deberán aceptar valores nulos dependiendo de lo que se establezca en el código de la aplicación. </li></ul></ul><ul><ul><li>La codificación de las consultas se hace más compleja. </li></ul></ul>
    49. 49. Implementación de Entidades Supertipo / Subtipo <ul><li>Sólo subtipos </li></ul><ul><ul><li>Eliminar el supertipo e implementar solamente los subtipos </li></ul></ul><ul><ul><li>Si los subtipos no son excluyentes, será necesario duplicar alguna información. </li></ul></ul><ul><ul><li>Adecuado con subtipos excluyentes, que comparten muy poco comportamiento. </li></ul></ul>
    50. 50. RESUMEN <ul><li>El modelo relacional propone una estructura, un conjunto de restricciones de integridad y un lenguaje para manipulación de los datos almacenados </li></ul><ul><li>Las relaciones son conjuntos matemáticos, con las propiedades que esa condición les confieren </li></ul><ul><li>Las restricciones de integridad permiten garantizar que la información almacenada es siempre confiable, en el sentido de no violar las reglas del negocio </li></ul><ul><li>Las restricciones de integridad referencial son un tipo particular de restricciones </li></ul>

    ×