INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS

Preview:

Citation preview

Pretende que cada entidad que se guarda en la base dedatos sea identificable de un modo único, es decir, queevitemos la información redundante.

La identificación de entidades no es única, podemos tenervarios modos de entidad para un mismo objeto real .

Estas entidades puede ser de diferente carácter:

•Entidades físicas: un libro, una bebida, un empleado

•Entidades conceptuales: una empresa

•Entidades como eventos: una alerta de nuestra agenda que nos recuerda

una tarea

La integridad de entidad define una fila como entidad única para una tabla

determinada. Exige la integridad de las columnas, de los identificadores o

la clave principal de una tabla, mediante índices y restricciones UNIQUE,

o restricciones PRIMARY KEY o IDENTITY

Cada tabla puede tener sólo

una columna de identificación,

la que contendrá una

secuencia de valores

generados por el sistema que

unívocamente identifican a

cada fila de la tabla

Una tabla puede tener solo una

restricción PRIMARY KEY, y ninguna

columna que participa de la clave

primaria puede aceptar nulos. Cuando

se especifica una restricción PRIMARY

KEY para una tabla, SQL asegura la

unicidad de los datos creando un

índice principal para las columnas de

la clave primaria.

Como ejemplo una empresa dedicada a la venta de bebidas, podríamos

identificar las bebidas de un modo general, a un modo más individual:

•Todas las bebidas en un sólo grupo.

•Todas las bebidas de la misma marca en un grupo.

•Agrupar las bebidas en función de si son alcohólicas o no.

•Cada bebida de modo individual.

•Un hecho sobre una determinada bebida, como puede ser el sabor de

un refresco.

INTEGRIDAD REFERENCIAL

Protege las relaciones definidas entre las tablas cuando se crean o se

eliminan filas.

Se basa en las relaciones entre claves externas y claves principales,

mediante restricciones FOREIGN KEY y CHECK.

Garantiza que los valores de clave sean coherentes en las distintas

tablas. Para conseguir esa coherencia, es preciso que no haya

referencias a valores inexistentes y que, si cambia el valor de una clave,

todas las referencias a ella se cambien en consecuencia en toda la base

de datos.

Cuando se exige la integridad referencial, SQL Server impide a los

usuarios:

•Agregar o cambiar filas en una tabla relacionada si no hay ninguna fila

asociada en la tabla principal.

•Cambiar valores en una tabla principal que crea filas huérfanas en una

tabla relacionada.

•Eliminar filas de una tabla principal cuando hay filas relacionadas

coincidentes.

Por ejemplo, en las

tablas Sales.SalesOrderDetail y Production.Product de la base de

datos AdventureWorks, la integridad referencial se basa en la relación

entre la clave externa (ProductID) de la tablaSales.SalesOrderDetail y

la clave principal (ProductID) de la tabla Production.Product. Esta

relación garantiza que un pedido de ventas no pueda nunca hacer

referencia a un producto que no existe en la tablaProduction.Product.

La integridad referencial es un sistema de reglas que utiliza Access para asegurarse que las relaciones entre registros de tablas relacionadas son válidas y que no se borren o cambien datos relacionados de forma accidental.

Al exigir integridad referencial en una relación le estamos diciendo a Access que no nos deje introducir datos en la tabla secundaria si previamente no se han introducido en la tabla principal.

La integridad referencial entre dos tablas debemos indicarla en el siguiente cuadro de diálogo (aparece cuando se realiza la relación entre dos campos).

Si al hacer las relaciones entra las tablas “Socios”, “Préstamos” y “Libros” hemos marcado en todas ellas la opción de “Exigir integridad referencial”, y ahora intentamos introducir en la tabla “Préstamos” un libro que no existe en la tabla Libros aparecer´ el siguiente mensaje de error:

La integridad de entidad define una fila como entidad única para una tabla determinada. La integridad de entidad exige la integridad de las columnas de los identificadores o la clave principal de una tabla, mediante índices y restricciones UNIQUE, o restricciones PRIMARY KEY.

La clave primaria de una entidad no puede tener valores nulos y siempre deberá ser única, por ejemplo DNI.

La primera regla de integridad se aplica a las claves primarias de las relaciones base: ninguno de los atributos que componen la clave primaria puede ser nulo.

Por definición, una clave primaria es un identificador irreducible que se utiliza para identificar de modo único las tuplas. Que es irreducible significa que ningún subconjunto de la clave primaria sirve para identificar las tuplas de modo único. Si se permite que parte de la clave primaria sea nula, se está diciendo que no todos sus atributos son necesarios para distinguir las tuplas, con lo que se contradice la irreducibilidad.

Nótese que esta regla sólo se aplica a las relaciones base y a las claves primarias, no a las claves alternativas.

Recommended