Tema IV. Integridad de Datos Relacionales
::Universidad del Mar::
::Campus Puerto Escondido ::
Bases de Datos I MTI Remedios Fabián Velasco Ver. 1.1 Cuarto Semestre Licenciatura en Informática
Temario 4 Integridad de datos relacional: llaves candidatas y temas relacionados. 4.1 Introducción. 4.2 Llaves candidatas. 4.3 Llaves primarias y llaves alternas. 4.4 Llaves foráneas. 4.5 Reglas de llaves foráneas. 4.6 Valores nulos. 4.7 Llaves candidatas y nulas. 4.8 Llaves foráneas y nulas. Bases de Datos I
Universidad del Mar – 07/2008
MTI Remedios Fabián Velasco
4.1 Introducción. Consiste en conservar la seguridad en un sistema, donde se permite a múltiples usuarios el acceso al mismo para compartir la base de datos. La integridad tiene como función proteger la base de datos contra operaciones que introduzcan inconsistencias en los datos. Se habla de integridad en el sentido de corrección, validez y precisión de los datos. Un control de integridad o restricciones es aquel que nos permite definir con precisión el rango de valores validos para un elemento y/o las operaciones que serán consideraciones validas en la relación de tale elementos. El objetivo primordial de un control de integridad es
Bases de Datos I
Universidad del Mar – 07/2008
MTI Remedios Fabián Velasco
Las restricciones de integridad normalmente se aplican en tres niveles:
Un Atributo Simple: Se define un dominio del atributo que es totalmente independiente del resto del entorno de la Base de Datos. Es un atributo que tiene un solo componente, que no se puede dividir en partes mas pequeñas que tengan un significado propio (valor único). Un Atributo Dependiente de Otro: Se definen subconjuntos de dominios posibles para un atributo X según el valor que previamente a sido asignado al atributo W. También es conocido como atributos de grupo. Relaciones entre Tuplas de una o varias Tablas: Se especifican valores posibles para registros completos según los valores acumulados registros previos o por valores existentes en registros de otras tablas. También es conocido como objeto simétrico .
Bases de Datos I
Universidad del Mar – 07/2008
MTI Remedios Fabián Velasco
4.2 Llaves candidatas. Superllave Un atributo o conjunto de atributos que identifica de forma inequívoca cada tupla dentro de una relación.
Por ejemplo, el atributo id-cliente del conjunto de entidades cliente es suficiente para distinguir una entidad cliente de las otras. Si K es una superllave, entonces también lo es cualquier superconjunto de K.
Bases de Datos I
Universidad del Mar – 07/2008
MTI Remedios Fabián Velasco
4.2 Llaves candidatas. Una superllave tal que ningún subconjunto de la misma es una superllave de la relación.
Bases de Datos I
Conjuntos distintos de atributos pueden servir como llave candidata. Supóngase que una combinación de nombrecliente y calle-cliente es suficiente para distinguir entre los miembros del conjunto de entidades cliente. Entonces, los conjuntos {idcliente} y {nombre-cliente, calle-cliente} son llaves candidatas. Aunque los atributos id-cliente y nombrecliente juntos puedan distinguir entidades cliente, su combinación no forma una llave candidata, ya que el atributo id-cliente por sí solo es una llave candidata. Universidad del Mar – 07/2008
MTI Remedios Fabián Velasco
Llaves candidatas Una llave candidata, K, para una relación R tiene dos propiedades:
Unicidad: En cada tupla R, los valores de K identifican univocamente a la tupla. Irreducibilidad: Ningún subconjunto de K presenta la propiedad de unicidad. Se usará el término llave primaria para denotar una llave candidata que es elegida por el diseñador de la base de datos como elemento principal para identificar las entidades dentro de un conjunto de entidades. Las llaves candidatas no elegidas como llave principal se llama llave o llave secundaria. Bases de Datos I
Universidad del Mar – 07/2008
MTI Remedios Fabián Velasco
4.3 Llaves primarias . Llave candidata seleccionada para identificar las tuplas de manera unívoca dentro de la relación. La llave primaria de un conjunto de entidades permite distinguir entre las diferentes entidades del conjunto. Se necesita un mecanismo similar para distinguir entre las diferentes relaciones de un conjunto de relaciones. Sea R un conjunto de relaciones que involucra los conjuntos de entidades E1, E2,…, En. Sea llave-primaria(Ei) el conjunto de atributos que forma la llave primaria para el conjunto de entidades Ei. Si el conjunto de relaciones R no tiene atributos asociados, entonces el conjunto de atributos: llave-primaria(E1) Ʊ llave-primaria(E2) Ʊ … Ʊ llave-primaria(En) describe una relación individual en el conjunto R. Bases de Datos I
Universidad del Mar – 07/2008
MTI Remedios Fabián Velasco
Llaves primarias Si el conjunto de relaciones R tiene atributos a1, a2,…,am asociados a él, entonces el conjunto de atributos llave-primaria(E1) Ʊ llave-primaria(E2) Ʊ … Ʊ llave-primaria(En) Ʊ {a1, a2,…,am} describe una relación individual en el conjunto R. En ambos casos, el conjunto de atributos llave-primaria(E1) Ʊ llave-primaria(E2) Ʊ … Ʊ llave-primaria(En) forma una superllave para el conjunto de relaciones.
Bases de Datos I
Universidad del Mar – 07/2008
MTI Remedios Fabián Velasco
4.4 Llaves foráneas y llaves alternas Llave alternativa Llaves candidatas que no se seleccionan para ser llaves primarias.
Llave foránea Un atributo o conjunto de atributos, dentro de una relación que se corresponde con la llave candidata de alguna (posiblemente la misma) relación. Atributo que hace referencia a una llave primaria de otra relación; esto da pie a que una relación pueda tener varias llaves foráneas.
Bases de Datos I
Universidad del Mar – 07/2008
MTI Remedios Fabián Velasco
4.5 Reglas de llaves foráneas. Reglas de los nulos: ¿tiene sentido que la llave ajena acepte nulos? Regla de borrado: ¿Qué ocurre si se intenta borrar la tupla referenciada por la llave ajena? Restringir: no se permite borrar la tupla referenciada. Propagar: se borra la tupla referenciada y se propaga el borrado a las tuplas la referencia mediante la llave ajena. Anular: se borra la tupla referenciada y las tuplas que la reverenciaba ponen a nulo la llave ajena (solo si acepta nulos).
Reglas de modificación: ¿Qué ocurre si se intenta modificar el valor de la llave primaria de la tupla referenciada por la llave ajena? Restringir: no se permite modificar el valor de la llave primaria de la tupla referenciada. Propagar: se modifica el valor de la llave primaria de la tupla referenciaba y se propaga la modificación a las tuplas que la referencia mediante llave ajena. Anular: se modifica la tupla referenciada y las tuplas que la referenciaban ponen a nulo la llave ajena (solo si acepta nulos). Bases de Datos I
Universidad del Mar – 07/2008
MTI Remedios Fabián Velasco
4.6 Valores nulos. Representa un valor para un atributo que es desconocido o no es aplicable para una tupla. Formas de tratar datos nulos o excepcionales. Representa la ausencia de un valor y no es lo mismo cero o espacios, los cuales son valores.
Bases de Datos I
Universidad del Mar – 07/2008
MTI Remedios Fabián Velasco
4.7 Llaves candidatas y nulas. Integridad de Entidad En una relación base ningún atributo de una llave principal puede ser nulo.
Reglas de Integridad de Dominio. Un dominio de valores posibles puede estar asociado con cada atributo. Los límites de dominio son la forma mas elemental de restricciones de integridad. Son fáciles de probar por el sistema siempre que se introduce un nuevo dato en la base de datos.
Bases de Datos I
Universidad del Mar – 07/2008
MTI Remedios Fabián Velasco
4.8 Llaves foráneas y nulas. Integridad referencial Si hay una llave externa en una relación, el valor de la llave externa debe corresponderse con el valor de una llave candidata de alguna tupla en su relación de origen o el valor de la llave externa debe ser completamente nulo.
Esta regla evita registros huérfanos y la incongruencia de datos
Bases de Datos I
Universidad del Mar – 07/2008
MTI Remedios Fabián Velasco
Bibliografía utilizada Libros: Fundamentos de Bases de Datos. Abraham Silberschatz, Henry F. Korth, S. Sudarshan
Bases de Datos I
Universidad del Mar – 07/2008
MTI Remedios Fabián Velasco