Bases de Datos - Restricciones (PDF)

Document Details

ImmaculateEclipse1922

Uploaded by ImmaculateEclipse1922

UDC

Tags

bases de datos restricciones de integridad modelo relacional sistemas de información

Summary

Este documento presenta información sobre las restricciones de integridad en bases de datos relacionales. Se explican conceptos clave como la integridad de dominio y las restricciones de integridad de entidad y referencial. El texto proporciona ejemplos para cada restricción, enfocado en el diseño de bases de datos.

Full Transcript

Bases de Datos Parte 3: El modelo relacional: restricciones de integridad Informática Básica - Bloques II-III Laboratorio de Bases de Datos Contenidos y bibliografía Contenidos 3.1. Restricciones de integridad. 3.2. Restricción de dominio. 3.3. Claves. 3.4. Restricción de inte...

Bases de Datos Parte 3: El modelo relacional: restricciones de integridad Informática Básica - Bloques II-III Laboratorio de Bases de Datos Contenidos y bibliografía Contenidos 3.1. Restricciones de integridad. 3.2. Restricción de dominio. 3.3. Claves. 3.4. Restricción de integridad de entidad. 3.5. Restricción de integridad referencial. Bibliografía – Elmasri, R.; Navathe, S. (2011). Database Systems. Addison-Wesley – Date, C.J. (2001). Introducción a los Sistemas de Bases de Datos. Prentice Hall. – Silberschatz, A.; Korth, H.; Sudarshan, S. (2011). Databases System Concepts. Mc Graw Hill. 2 Bases de Datos 3.1. Restricciones de integridad. Integridad Hemos visto: – Esquema: estructura de la base de datos – Estado: contenido de la base de datos Estado de la base de datos – El estado de una base de datos en un momento dado (el estado actual), debe reflejar lo más fielmente posible un estado específico del mundo real. – Si la información no es consistente con el mundo real la base de datos no nos sirve. Es necesario garantizar la integridad de la información. – La integridad de una base de datos se consigue centrándose en dos aspectos fundamentales: Completitud: toda la información relevante está registrada. Corrección: la información registrada se corresponde con la realidad. 4 Integridad Cada minimundo tiene sus peculiaridades. En particular, en cada minimundo podemos identificar reglas específicas que sabemos que siempre se cumplen. “Cada materia corresponde a una única titulación”. “Un estudiante no puede tener más de 3 libros en préstamo simultáneamente en la biblioteca”. Si queremos garantizar la integridad de la base de datos, debemos asegurarnos de que la información registrada también las cumpla. Restricción de integridad: regla que debe cumplir la información registrada en la base de datos para garantizar la integridad de la información. 5 Restricciones de integridad El modelo relacional define ciertas restricciones de integridad genéricas, que no son específicas de un minimundo determinado. – Es decir: esas reglas deben cumplirse en cualquier base de datos basada en el modelo relacional. Las restricciones genéricas asociadas al modelo relacional son: – Restricción de dominio – Restricción de integridad de entidad – Restricción de integridad referencial Utilizando las relaciones como elemento estructural, y cumpliendo estas restricciones, garantizamos un grado de integridad inicial y básico en nuestra base de datos. – Por supuesto, habrá que garantizar también (de algún modo) las restricciones específicas del minimundo. 6 Bases de Datos 3.2. Restricción de dominio. Restricción de dominio Restricción de dominio: El valor de cada atributo A en cada tupla debe ser un valor atómico del dominio dom(A) – Es decir, debe ser un valor único, no descomponible y pertenecer al dominio de dicho atributo – Ejemplo: DNI Nombre Teléfono Domicilio C/ Santiago de Compostela sur 12.345.678Z José Martínez Antonio 677 129846 s/n, Madrid C/ Cervantes 8, Santiago de 98.765.432Z José Antonio Martínez-Legazpi 623 982346 645 871839 Compostela 8 Se puede descomponer: Se puede descomponer: No es valor único nombre y apellidos dirección y localidad Bases de Datos 3.3. Claves Claves Superclave – Una relación se define como un conjunto de tuplas. Por tanto, todas las tuplas de la relación deben ser distintas. – Por lo tanto, deben existir uno o varios subconjuntos de atributos SC de un esquema de relación R tal que para dos tuplas cualesquiera t1 y t2, en cualquier posible estado de relación r(R ) se cumple siempre que: t1[SC] ≠ t2[SC] – El subconjunto de atributos SC se denomina superclave de R 10 Claves – Dicho de otro modo: en una relación no puede haber nunca, en un momento dado, dos tuplas con los mismos valores en los atributos de cualquiera de sus superclaves. – Ej.: Dada la relación Estudiante(dni, nombre, apellidos, email) ¿son superclaves? SC1 = {dni} SC2 = {nombre, apellidos} SC3 = {email} SC4 = {dni, nombre, apellidos} SC5 = {email, nombre, apellidos} El conjunto de todos los atributos SC6 = {dni, nombre, apellidos, email} SIEMPRE es superclave (por definición) 11 Claves Claves candidatas. – Un subconjunto de atributos K de R es una clave candidata si es una superclave mínima. Una superclave no es mínima si al eliminar alguno de sus atributos sigue siendo una superclave. – En ocasiones, un esquema de relación R puede tener más de una clave candidata. – Ej. : Dada la relación Estudiante(dni, nombre, apellidos, email) ¿Cuáles son claves candidatas? K1 = {dni, nombre, apellidos} K2 = {email, nombre, apellidos} K3 = {dni} K4 = {email} 12 Claves Clave primaria – La clave primaria de una relación es el subconjunto de atributos CP que elegimos, de entre todas las claves candidatas, para identificar de forma unívoca las tuplas de esa relación – Notación: subrayamos los atributos que forman la clave primaria Ejemplo: Estudiante(dni, nombre, apellidos, email) 13 Claves Clave foránea – Una clave foránea es un conjunto de atributos CF de una relación R1 que, para cada tupla, identifican a otra tupla de una relación R2 con la que está relacionada. – Las utilizamos para relacionar las tuplas de una relación con tuplas de otra – En ocasiones, también para relacionar tuplas de la misma relación entre sí. 14 Claves Estudiantes Materias dni nombre … codigo nombre creditos 11.222.333Z Pedro … 614G01002 Informática Básica 6 22.333.444Z Ana … 614G01013 Bases de Datos 6 11.888.999Z Alberto … 650G01022 Bases de Datos 6 Identifica al estudiante que realizó la matrícula Matricula dniEstudiante codMateria curso 11.222.333Z 614G01002 2018/2019 15 Claves Estudiantes Materias dni nombre … codigo nombre creditos 11.222.333Z Pedro … 614G01002 Informática Básica 6 22.333.444Z Ana … 614G01013 Bases de Datos 6 11.888.999Z Alberto … 650G01022 Bases de Datos 6 Identifica la materia a la que corresponde la matrícula Matricula dniEstudiante codMateria curso 11.222.333Z 614G01002 2018/2019 16 Claves Representación: al representar el esquema de la base de datos, debemos representar todas las claves primarias y todas las claves foráneas. Materias(codigo, nombre, curso, cuatrimestre) Estudiantes(dni, nombre, apellidos, email) Matricula(codigoMat, dniEstudiante, cursoAcademico) Despachos(numero, piso, capacidad) Docentes(dni, nombre, apellidos, despacho) 17 Bases de Datos 3.4. Restricción de integridad de entidad. Restricción de integridad de entidad Restricción de integridad de entidad: Ningún valor de la clave primaria puede ser un valor nulo – Ejemplo: Docentes dni nombre apellidos despacho 11.222.333Z Pedro Pérez Pérez D.01 22.333.444Z Ana López Pérez D.01 11.888.999Z Alberto López López D.02 Alberto López López D.02 ¿Es el mismo Alberto? ¿O son dos diferentes? ¡Las casualidades existen! 19 Bases de Datos 3.5. Restricción de integridad referencial. Restricción de integridad referencial Restricción de integridad referencial: Un conjunto de atributos CF en un esquema de relación R1 que funciona como clave foránea sobre otro esquema de relación R2 debe cumplir las siguientes condiciones: Los dominios de los atributos de CF de R1 deben ser exactamente los mismos que los de los atributos de la clave primaria CP de R2. Para cada tupla t1 en el estado actual de R1 debe existir una tupla t2 en el estado actual de R2 tal que t1[CF] = t2[CP], o bien t1[CF] debe ser nulo. – En el primer caso, si t1[CF] = t2[CP] decimos que la tupla t1 hace referencia (o apunta) a la tupla t2. 21 Restricción de integridad referencial Estudiantes Materias Dni nombre … codigo nombre creditos 11.222.333Z Pedro … 614G01002 Informática Básica 6 22.333.444Z Ana … 614G01013 Bases de Datos 6 11.888.999Z Alberto … 650G01022 Bases de Datos 6 Matricula dniEstudiante codMateria curso 11.222.333Z 614G01002 2018/2019 22 Restricción de integridad referencial Docentes Despachos dni nombre apellidos despacho numero piso capacidad 11.222.333Z Pedro Pérez Pérez D.01 D.01 1º 2 22.333.444Z Ana López Pérez D.01 D.02 1º 2 11.888.999Z Alberto López López D.03 2º 1 La foránea despacho toma valor nulo en esta tupla (El docente no tiene todavía despacho asignado) ES CORRECTO Y NO VIOLA LA RESTRICCIÓN 23 Restricción de integridad referencial Docentes Despachos dni nombre apellidos despacho numero piso capacidad 11.222.333Z Pedro Pérez Pérez D.01 D.01 1º 2 22.333.444Z Ana López Pérez D.01 D.02 1º 2 11.888.999Z Alberto López López D.05 D.03 2º 1 Este despacho no está registrado en la base de datos. (Estamos asignando al docente un despacho que no existe.) ESTO ES INCORRECTO Y VIOLA LA RESTRICCIÓN 24 Restricción de integridad referencial Borrados y actualizaciones con claves foráneas – Cuando eliminamos o actualizamos una fila de una tabla referenciada por otra, tenemos varias opciones: Prohibir el cambio. Poner un valor nulo en la clave foránea. Ejemplo: cuando borro un despacho, todos los docentes de ese despacho pasan a tener un NULO asignado como número de despacho. Propagar en cascada el borrado/actualización a la clave foránea. Ejemplo: si modifico el número de un despacho en la tabla de despachos, modifico el número también en las filas de los docentes asignados a él. – De lo contrario, violaríamos la restricción al hacer la operación. 25 Restricción de integridad referencial Docentes Despachos dni nombre apellidos despacho numero piso capacidad 11.222.333Z Pedro Pérez Pérez D.01 D.01 1º 2 22.333.444Z Ana López Pérez D.01 D.02 1º 2 11.888.999Z Alberto López López D.02 D.03 2º 1 Al eliminar el despacho D.02, como efecto secundario tenemos a un docente asignado a un despacho QUE YA NO EXISTE 26 Restricción de integridad referencial Docentes Despachos dni nombre apellidos despacho numero piso capacidad 11.222.333Z Pedro Pérez Pérez D.01 D.01 1º 2 22.333.444Z Ana López Pérez D.01 D.03 2º 1 11.888.999Z Alberto López López Mejor dejarlo temporalmente sin despacho hasta saber cuál se le asigna (Valor NULO) 27

Use Quizgecko on...
Browser
Browser