Base de Datos  Profesor: MSC Luis Serna Jherry
El Modelo Relacional ¿ Qué es ? Estructura de Datos relacional Tipos de Relaciones Restricciones de Integridad Transformación de un DER en un esquema relacional
¿Qué es? Es el modelo teórico que constituye los cimientos de los manejadores de base de datos relacionales (RDBMS). Es el principal modelo de datos empleado para las aplicaciones de procesamiento de datos, cubriendo cerca del 85% de las ventas mundiales.
¿Qué es? El modelo relacional es una forma de ver los datos que consta de: Una representación de los datos mediante tablas llamadas “relaciones” ( Estructura ) Un conjunto de restricciones que permiten la consistencia de los datos ( Integridad ) Un conjunto de operadores  que permiten manipular dichos datos ( Lenguaje de Manipulación )
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
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
Estructura de Datos Relacional El  dominio   es el componente elemental de una BD relacional: un conjunto de valores (= tipo de dato). D 1  = {Juan, María, Pablo} D 2  = todas las cadenas de caracteres D 3  = {x / x es un entero y x > 0} D 4  = {x / x es un entero negativo} Es un conjunto nominado y homogéneo  de valores atómicos 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).
Estructura de Datos Relacional Estos dominios o tipos pueden ser definidos por el sistema o definidos por el usuario  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. Todo valor  tiene  un tipo El sistema siempre comprueba que los operandos son del tipo adecuado para la ejecución de cada operación
Estructura de Datos Relacional:  Dominios Los dominios restringen la manipulación: Las comparaciones tienen sentido cuando se plantean entre atributos que provienen del mismo dominio: Q_Peso = Q_Unidades A.N_Ciudad = B.N_Ciudad Las expresiones tienen sentido si emplean operadores definidos como válidos en los dominios y en sus combinaciones: Q_Peso + Q_Unidades Q_Peso * Q_Unidades
Estructura de Datos Relacional:  Dominios El soporte para dominios (tipos) en el modelo relacional implica que: El sistema siempre sabrá qué expresiones son válidas y el tipo del resultado de cada expresión 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 El sistema conoce qué asignaciones y qué comparaciones son válidas
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.  Una  Relación  (tabla) es un conjunto de atributos con nombre (R, C), donde  R  es el nombre de la relación, y  C = {(N 1 , D 1 ), {N 2 , D 2 ), ... , (N n , D n )} es el conjunto finito de atributos; todos los N i  son distintos, aunque no necesariamente lo son los D i   Estructura de Datos Relacional
Un esquema relacional (cabecera de una tabla) es un  conjunto  de atributos 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. Un cuerpo relacional es un  conjunto  de tuplas Una base de datos relacional es un  conjunto  de relaciones Estructura de Datos Relacional
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
Estructura de Datos Relacional: Relaciones D 1  el conjunto de los nombres de códigos de curso D 2  el conjunto de los nombres de curso D 3  el conjunto de los números naturales  D 4  el conjunto de los grupos 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  La tabla CURSO es un subconjunto de  D 1  x D 2  x D 3  x D 4
Estructura de Datos Relacional: Relaciones En general: Una tabla de “n” atributos debe ser un subconjunto de  D 1  x D 2  x D 3  ....... x D n-1  x D n Definición matemática de “Relación”: “ Subconjunto del producto cartesiano de la lista de dominios”    Relación = Tabla Tupla  = Fila
Propiedades de las Relaciones No existen tuplas repetidas : Cada relación es un conjunto matemático; por ende, no tiene elementos repetidos. Las tuplas  no  están ordenadas (de arriba a abajo). Los atributos  no  están ordenados (de izquierda a derecha). Todos los valores de los atributos son  atómicos .  Es decir, cada tupla contiene exactamente un valor para cada atributo.
Tipos de Relaciones Relación base  (relación real). Es equivalente al concepto tabla del SQL. Tiene nombre y  es autónoma. 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. Instantánea  (snapshot). Relación derivada con nombre que  si  posee datos, como resultado de una consulta que se almacena y refresca periódicamente.
Tipos de Relaciones 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. Resultado intermedio :  Es una relación resultante de alguna expresión relacional anidada, que no tiene existencia persistente y que generalmente no tiene nombre.
Tipos de Relaciones 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. Las relaciones base, vista e instantánea se destruyen solamente por acción específica del usuario.
Tipos de Relaciones Vistas No forman parte del modelo lógico Consideraciones de seguridad. No mostrar los atributos de una tabla que corresponden a información confidencial (por ejemplo sueldos).  Personalización de relaciones para un usuario en particular. Mostrar algunos atributos seleccionados de varias tablas relacionadas.
Restricciones de Integridad
Restricciones de Integridad El propósito de las reglas de integridad es informar al DBMS de ciertas restricciones en el mundo real. 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).
Restricciones de Integridad (Constraints) Aseguran que   las modificaciones realizadas no originen pérdida de consistencia de los datos Restricciones de Dominio:   Especifican el conjunto de valores que se puede asociar a un atributo. Restricciones de Clave Primaria Todas las tuplas de una relaci ón son distintas, es decir, debe haber siempre una clave primaria que garantice esta unicidad
Restricciones de Clave Primaria La  clave primaria   (PK)  es un identificador único para una relación. La clave primaria puede ser  compuesta  (más de un atributo) Es posible que en una relación haya más de un identificador único o  “ clave candidata ”: Unicidad:  En cualquier momento dado, no existen dos tuplas en R con el mismo valor de K. Minimalidad:  Si K es compuesta, no será posible eliminar ningún componente de K, sin destruir la propiedad de unicidad. En estos casos una debe ser escogida como clave primaria y las otras se denominarán claves alternantes únicas. Restricciones de Integridad (Constraints)
Restricciones de Integridad (Constraints) Restricciones sobre nulos:   Especifican cuándo un atributo puede no tener un valor asociado por ser desconocido o no aplicable a alguna instancia en particular   Restricciones de Integridad de entidades:   Ningún componente de la clave primaria de una relación base puede aceptar nulos (un valor desconocido o no aplicable)
Restricciones de Integridad (Constraints) Restricciones de Integridad Referencial:   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: “ La base de datos no debe contener valores de clave foránea sin concordancia”
Restricciones de Integridad Referencial:   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). Restricciones de Integridad (Constraints)
Restricciones de Integridad Referencial:   El atributo  FK   (quizá compuesto) de una relación base R2 es una clave foránea si satisface dos propiedades: Cada valor de FK es nulo del todo o bien no nulo del todo. 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. Restricciones de Integridad (Constraints)
Restricciones de Integridad (Constraints) Restricciones de integridad Semántica - Disparadores (triggers): 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: Especificar las condiciones de ejecución. Especificar las acciones a realizar.
Restricciones de Integridad (Constraints) Ejemplo: “ 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” Condición:  Actualización de la relación  CUENTA  que da un valor negativo en el atributo  saldo Acciones: Insertar una nueva tupla en la relación  PRESTAMO Cambiar el valor de  saldo  a cero en la relación  CUENTA
Restricciones de Integridad (Constraints) Restricciones de integridad Semántica –  Asertos (afirmaciones): Son expresiones declarativas que expresan predicados que deben ser verdaderos. Es decir, condiciones que siempre se deben cumplir en la BD. Ejemplo: “ La suma de los importes de los préstamos de un banco debe ser menor a la suma de los saldos de las cuentas”.
Integridad Referencial –  Reglas para Claves Foráneas Para cada clave foránea es necesario responder tres preguntas: ¿La  clave foránea  puede aceptar  nulos ? ¿Que deberá suceder si hay un intento de  eliminar  el registro de referencia de una clave foránea? ¿Que deberá suceder si hay un intento de  modificar  la clave foránea?
Si la relación R2 tiene una clave foránea  FK  que lo relaciona con R1: Insertar: Si se inserta una tupla en R2, debe asegurarse que   una instancia en R1 con el valor correspondiente como PK Borrar: 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. Integridad Referencial –  Reglas para Claves Foráneas
Actualizar: Si se modifica una tupla de R2 Se procede a verificar como en el caso de la inserción Si se modifica una tupla en R1 Se procede a verificar como en el caso del borrado Integridad Referencial –  Reglas para Claves Foráneas
REGLAS: Cascada Si se elimina una instancia del padre, todas las instancias hijo relacionadas también se eliminarán. Restricción 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. Integridad Referencial –  Reglas para Claves Foráneas
Set Null Si se elimina una instancia del padre, las claves foráneas (FK) en las instancias hijo relacionadas cambian al valor nulo. Set Default Si se elimina una instancia del padre, las claves foráneas (FK) en las instancias hijo relacionadas cambian al valor por omisión establecido. <None> No se toma ninguna acción específica. Integridad Referencial –  Reglas para Claves Foráneas
Pinacotecas
¿Que deberá suceder si hay un intento de eliminar un  Pintor  del que haya  Cuadros  registradas? Restricción (RESTRICTED):  Se rechazará la operación Propagación (CASCADE):  La eliminación se hace efectiva y se propaga borrando los cuadros de su autoría. 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. Integridad Referencial –  Reglas para Claves Foráneas
Para cada relación existen  seis  posibles acciones para las cuales es necesario establecer las reglas de integridad referencial: Parent Insert Child Insert Parent Update Child Update  Parent Delete Child Delete Integridad Referencial –  Reglas para Claves Foráneas
Traducción de un modelo de información en una BD Relacional
Traducción de un modelo ..... Cada entidad se convierte en una tabla El identificador único se convierte en la clave primaria Cada atributo se convierte en una columna de su respectiva tabla Las relaciones se implementan colocando la clave primaria de una tabla en la tabla relacionada, como clave externa.
Traducción de un modelo ..... Antes de generar un diseño relacional a partir de un modelo, hay que asegurase que esté completo: Tipos de dato de los atributos Cardinalidad de las relaciones Identificadores de las entidades (claves primarias)
Traducción de un modelo ..... Relaciones de uno a muchos: La clave primaria del lado “uno” es incrustada en la tabla del lado “muchos” Si el lado “uno” es opcional, la clave externa será opcional, en caso contrario será requerido.
Traducción de un modelo ..... Relaciones de uno a uno: Son muy poco frecuentes en un sistema de negocios. Generalmente ocultan relaciones de tipo generalización / especialización. 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 Si sólo un lado es obligatorio, la PK de éste debe migrar hacia el lado opcional.
Traducción de un modelo ..... Relaciones de muchos a muchos: Deben ser resueltas en el modelo mediante entidades asociativas o designativas. 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)
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
Implementación de Entidades Supertipo / Subtipo Tablas de supertipo / subtipo Implementar el supertipo y cada subtipo como tablas separadas La PK del supertipo puede también usarse como PK de los subtipos Para la descripción completa de cualquier instancia es necesario acceder por lo menos a dos tablas
Implementación de Entidades Supertipo / Subtipo Sólo supertipo Las entidades subtipo son combinadas con el supertipo e implementadas como una sola tabla Las relaciones exclusivas de los subtipos se convierten en opcionales para la nueva tabla Se incluirán campos que deberán aceptar valores nulos dependiendo de lo que se establezca en el código de la aplicación. La codificación de las consultas se hace más compleja.
Implementación de Entidades Supertipo / Subtipo Sólo subtipos Eliminar el supertipo e implementar solamente los subtipos Si los subtipos no son excluyentes, será necesario duplicar alguna información. Adecuado con subtipos excluyentes, que comparten muy poco comportamiento.
RESUMEN El modelo relacional propone una estructura, un conjunto de restricciones de integridad y un lenguaje para manipulación de los datos almacenados Las relaciones son conjuntos matemáticos, con las propiedades que esa condición les confieren Las restricciones de integridad permiten garantizar que la información almacenada es siempre confiable, en el sentido de no violar las reglas del negocio Las restricciones de integridad referencial son un tipo particular de restricciones

El modelo relacional

  • 1.
    Base de Datos Profesor: MSC Luis Serna Jherry
  • 2.
    El Modelo Relacional¿ Qué es ? Estructura de Datos relacional Tipos de Relaciones Restricciones de Integridad Transformación de un DER en un esquema relacional
  • 3.
    ¿Qué es? Esel modelo teórico que constituye los cimientos de los manejadores de base de datos relacionales (RDBMS). Es el principal modelo de datos empleado para las aplicaciones de procesamiento de datos, cubriendo cerca del 85% de las ventas mundiales.
  • 4.
    ¿Qué es? Elmodelo relacional es una forma de ver los datos que consta de: Una representación de los datos mediante tablas llamadas “relaciones” ( Estructura ) Un conjunto de restricciones que permiten la consistencia de los datos ( Integridad ) Un conjunto de operadores que permiten manipular dichos datos ( Lenguaje de Manipulación )
  • 5.
    Estructura de DatosRelacional 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.
    Bases de DatosRelacionales 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.
    Estructura de DatosRelacional El dominio es el componente elemental de una BD relacional: un conjunto de valores (= tipo de dato). D 1 = {Juan, María, Pablo} D 2 = todas las cadenas de caracteres D 3 = {x / x es un entero y x > 0} D 4 = {x / x es un entero negativo} Es un conjunto nominado y homogéneo de valores atómicos 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).
  • 8.
    Estructura de DatosRelacional Estos dominios o tipos pueden ser definidos por el sistema o definidos por el usuario 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. Todo valor tiene un tipo El sistema siempre comprueba que los operandos son del tipo adecuado para la ejecución de cada operación
  • 9.
    Estructura de DatosRelacional: Dominios Los dominios restringen la manipulación: Las comparaciones tienen sentido cuando se plantean entre atributos que provienen del mismo dominio: Q_Peso = Q_Unidades A.N_Ciudad = B.N_Ciudad Las expresiones tienen sentido si emplean operadores definidos como válidos en los dominios y en sus combinaciones: Q_Peso + Q_Unidades Q_Peso * Q_Unidades
  • 10.
    Estructura de DatosRelacional: Dominios El soporte para dominios (tipos) en el modelo relacional implica que: El sistema siempre sabrá qué expresiones son válidas y el tipo del resultado de cada expresión 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 El sistema conoce qué asignaciones y qué comparaciones son válidas
  • 11.
    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. Una Relación (tabla) es un conjunto de atributos con nombre (R, C), donde R es el nombre de la relación, y C = {(N 1 , D 1 ), {N 2 , D 2 ), ... , (N n , D n )} es el conjunto finito de atributos; todos los N i son distintos, aunque no necesariamente lo son los D i Estructura de Datos Relacional
  • 12.
    Un esquema relacional(cabecera de una tabla) es un conjunto de atributos 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. Un cuerpo relacional es un conjunto de tuplas Una base de datos relacional es un conjunto de relaciones Estructura de Datos Relacional
  • 13.
    Estructura de DatosRelacional: 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.
    Estructura de DatosRelacional: Relaciones D 1 el conjunto de los nombres de códigos de curso D 2 el conjunto de los nombres de curso D 3 el conjunto de los números naturales D 4 el conjunto de los grupos 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  La tabla CURSO es un subconjunto de D 1 x D 2 x D 3 x D 4
  • 15.
    Estructura de DatosRelacional: Relaciones En general: Una tabla de “n” atributos debe ser un subconjunto de D 1 x D 2 x D 3 ....... x D n-1 x D n Definición matemática de “Relación”: “ Subconjunto del producto cartesiano de la lista de dominios”  Relación = Tabla Tupla = Fila
  • 16.
    Propiedades de lasRelaciones No existen tuplas repetidas : Cada relación es un conjunto matemático; por ende, no tiene elementos repetidos. Las tuplas no están ordenadas (de arriba a abajo). Los atributos no están ordenados (de izquierda a derecha). Todos los valores de los atributos son atómicos . Es decir, cada tupla contiene exactamente un valor para cada atributo.
  • 17.
    Tipos de RelacionesRelación base (relación real). Es equivalente al concepto tabla del SQL. Tiene nombre y es autónoma. 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. Instantánea (snapshot). Relación derivada con nombre que si posee datos, como resultado de una consulta que se almacena y refresca periódicamente.
  • 18.
    Tipos de RelacionesResultado 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. Resultado intermedio : Es una relación resultante de alguna expresión relacional anidada, que no tiene existencia persistente y que generalmente no tiene nombre.
  • 19.
    Tipos de RelacionesRelaciones 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. Las relaciones base, vista e instantánea se destruyen solamente por acción específica del usuario.
  • 20.
    Tipos de RelacionesVistas No forman parte del modelo lógico Consideraciones de seguridad. No mostrar los atributos de una tabla que corresponden a información confidencial (por ejemplo sueldos). Personalización de relaciones para un usuario en particular. Mostrar algunos atributos seleccionados de varias tablas relacionadas.
  • 21.
  • 22.
    Restricciones de IntegridadEl propósito de las reglas de integridad es informar al DBMS de ciertas restricciones en el mundo real. 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).
  • 23.
    Restricciones de Integridad(Constraints) Aseguran que las modificaciones realizadas no originen pérdida de consistencia de los datos Restricciones de Dominio: Especifican el conjunto de valores que se puede asociar a un atributo. Restricciones de Clave Primaria Todas las tuplas de una relaci ón son distintas, es decir, debe haber siempre una clave primaria que garantice esta unicidad
  • 24.
    Restricciones de ClavePrimaria La clave primaria (PK) es un identificador único para una relación. La clave primaria puede ser compuesta (más de un atributo) Es posible que en una relación haya más de un identificador único o “ clave candidata ”: Unicidad: En cualquier momento dado, no existen dos tuplas en R con el mismo valor de K. Minimalidad: Si K es compuesta, no será posible eliminar ningún componente de K, sin destruir la propiedad de unicidad. En estos casos una debe ser escogida como clave primaria y las otras se denominarán claves alternantes únicas. Restricciones de Integridad (Constraints)
  • 25.
    Restricciones de Integridad(Constraints) Restricciones sobre nulos: Especifican cuándo un atributo puede no tener un valor asociado por ser desconocido o no aplicable a alguna instancia en particular Restricciones de Integridad de entidades: Ningún componente de la clave primaria de una relación base puede aceptar nulos (un valor desconocido o no aplicable)
  • 26.
    Restricciones de Integridad(Constraints) Restricciones de Integridad Referencial: 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: “ La base de datos no debe contener valores de clave foránea sin concordancia”
  • 27.
    Restricciones de IntegridadReferencial: 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). Restricciones de Integridad (Constraints)
  • 28.
    Restricciones de IntegridadReferencial: El atributo FK (quizá compuesto) de una relación base R2 es una clave foránea si satisface dos propiedades: Cada valor de FK es nulo del todo o bien no nulo del todo. 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. Restricciones de Integridad (Constraints)
  • 29.
    Restricciones de Integridad(Constraints) Restricciones de integridad Semántica - Disparadores (triggers): 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: Especificar las condiciones de ejecución. Especificar las acciones a realizar.
  • 30.
    Restricciones de Integridad(Constraints) Ejemplo: “ 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” Condición: Actualización de la relación CUENTA que da un valor negativo en el atributo saldo Acciones: Insertar una nueva tupla en la relación PRESTAMO Cambiar el valor de saldo a cero en la relación CUENTA
  • 31.
    Restricciones de Integridad(Constraints) Restricciones de integridad Semántica – Asertos (afirmaciones): Son expresiones declarativas que expresan predicados que deben ser verdaderos. Es decir, condiciones que siempre se deben cumplir en la BD. Ejemplo: “ La suma de los importes de los préstamos de un banco debe ser menor a la suma de los saldos de las cuentas”.
  • 32.
    Integridad Referencial – Reglas para Claves Foráneas Para cada clave foránea es necesario responder tres preguntas: ¿La clave foránea puede aceptar nulos ? ¿Que deberá suceder si hay un intento de eliminar el registro de referencia de una clave foránea? ¿Que deberá suceder si hay un intento de modificar la clave foránea?
  • 33.
    Si la relaciónR2 tiene una clave foránea FK que lo relaciona con R1: Insertar: Si se inserta una tupla en R2, debe asegurarse que  una instancia en R1 con el valor correspondiente como PK Borrar: 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. Integridad Referencial – Reglas para Claves Foráneas
  • 34.
    Actualizar: Si semodifica una tupla de R2 Se procede a verificar como en el caso de la inserción Si se modifica una tupla en R1 Se procede a verificar como en el caso del borrado Integridad Referencial – Reglas para Claves Foráneas
  • 35.
    REGLAS: Cascada Sise elimina una instancia del padre, todas las instancias hijo relacionadas también se eliminarán. Restricción 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. Integridad Referencial – Reglas para Claves Foráneas
  • 36.
    Set Null Sise elimina una instancia del padre, las claves foráneas (FK) en las instancias hijo relacionadas cambian al valor nulo. Set Default Si se elimina una instancia del padre, las claves foráneas (FK) en las instancias hijo relacionadas cambian al valor por omisión establecido. <None> No se toma ninguna acción específica. Integridad Referencial – Reglas para Claves Foráneas
  • 37.
  • 38.
    ¿Que deberá sucedersi hay un intento de eliminar un Pintor del que haya Cuadros registradas? Restricción (RESTRICTED): Se rechazará la operación Propagación (CASCADE): La eliminación se hace efectiva y se propaga borrando los cuadros de su autoría. 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. Integridad Referencial – Reglas para Claves Foráneas
  • 39.
    Para cada relaciónexisten seis posibles acciones para las cuales es necesario establecer las reglas de integridad referencial: Parent Insert Child Insert Parent Update Child Update Parent Delete Child Delete Integridad Referencial – Reglas para Claves Foráneas
  • 40.
    Traducción de unmodelo de información en una BD Relacional
  • 41.
    Traducción de unmodelo ..... Cada entidad se convierte en una tabla El identificador único se convierte en la clave primaria Cada atributo se convierte en una columna de su respectiva tabla Las relaciones se implementan colocando la clave primaria de una tabla en la tabla relacionada, como clave externa.
  • 42.
    Traducción de unmodelo ..... Antes de generar un diseño relacional a partir de un modelo, hay que asegurase que esté completo: Tipos de dato de los atributos Cardinalidad de las relaciones Identificadores de las entidades (claves primarias)
  • 43.
    Traducción de unmodelo ..... Relaciones de uno a muchos: La clave primaria del lado “uno” es incrustada en la tabla del lado “muchos” Si el lado “uno” es opcional, la clave externa será opcional, en caso contrario será requerido.
  • 44.
    Traducción de unmodelo ..... Relaciones de uno a uno: Son muy poco frecuentes en un sistema de negocios. Generalmente ocultan relaciones de tipo generalización / especialización. 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 Si sólo un lado es obligatorio, la PK de éste debe migrar hacia el lado opcional.
  • 45.
    Traducción de unmodelo ..... Relaciones de muchos a muchos: Deben ser resueltas en el modelo mediante entidades asociativas o designativas. 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)
  • 46.
    Implementación de EntidadesSupertipo / 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.
    Implementación de EntidadesSupertipo / Subtipo Tablas de supertipo / subtipo Implementar el supertipo y cada subtipo como tablas separadas La PK del supertipo puede también usarse como PK de los subtipos Para la descripción completa de cualquier instancia es necesario acceder por lo menos a dos tablas
  • 48.
    Implementación de EntidadesSupertipo / Subtipo Sólo supertipo Las entidades subtipo son combinadas con el supertipo e implementadas como una sola tabla Las relaciones exclusivas de los subtipos se convierten en opcionales para la nueva tabla Se incluirán campos que deberán aceptar valores nulos dependiendo de lo que se establezca en el código de la aplicación. La codificación de las consultas se hace más compleja.
  • 49.
    Implementación de EntidadesSupertipo / Subtipo Sólo subtipos Eliminar el supertipo e implementar solamente los subtipos Si los subtipos no son excluyentes, será necesario duplicar alguna información. Adecuado con subtipos excluyentes, que comparten muy poco comportamiento.
  • 50.
    RESUMEN El modelorelacional propone una estructura, un conjunto de restricciones de integridad y un lenguaje para manipulación de los datos almacenados Las relaciones son conjuntos matemáticos, con las propiedades que esa condición les confieren Las restricciones de integridad permiten garantizar que la información almacenada es siempre confiable, en el sentido de no violar las reglas del negocio Las restricciones de integridad referencial son un tipo particular de restricciones

Notas del editor

  • #2 Introducción a las Bases de Datos 26 de abril de 2011 UPC - Ingeniería de Sistemas
  • #3 Modelo Relacional 26 de abril de 2011 UPC-Ing. Sistemas
  • #8 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.
  • #9 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.