INTEGRIDAD DE LA BASE DE DATOS














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.

Ejemplos:

Ø  Tenemos la siguiente relación:
DESPACHOS
Edificio
número
superficie
Marina
120
10
Marina
122
15
Marina
230
20
Diagonal
120
10
En esta relación, puesto que la clave primaria está formada por edificio y número, no hay ningún despacho que tenga un valor nulo para edificio, ni tampoco para número.

Ø  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.


La integridad de dominio viene dada por la validez de las entradas para una columna determinada. Puede exigir la integridad de dominio para restringir el tipo mediante tipos de datos, el formato mediante reglas y restricciones CHECK, o el intervalo de valores posibles mediante restricciones FOREIGN KEY, restricciones CHECK, definiciones DEFAULT, definiciones NOT NULL y reglas.

Ejemplos:

Ø  Si en la relación EMPLEADOS (DNI, nombre, apellido, edademp) hemos declarado que dominio (DNI) es el dominio predefinido de los enteros, entonces no podremos insertar, por ejemplo, ningún empleado que tenga por DNI el valor “Luis”, que no es un entero.
Ø   Si en la relación EMPLEADOS (DNI, nombre, apellido, edademp) se ha declarado que dominio (DNI) es el dominio predefinido de los enteros, entonces no se permitirá consultar todos aquellos empleados cuyo DNI sea igual a ‘Elena’ (DNI = ‘Elena’). El motivo es que no tiene sentido que el operador de comparación = se aplique entre un DNI que tiene por dominio los enteros, y el valor ‘Elena’, que es una serie de caracteres.



La integridad referencial protege las relaciones definidas entre las tablas cuando se crean o se eliminan filas. En SQL Server la integridad referencial se basa en las relaciones entre claves externas y claves principales o entre claves externas y claves exclusivas, mediante restricciones FOREIGN KEY y CHECK. La integridad referencial 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.
Ejemplos:




Ø     En las tablas Sales.SalesOrderDetail y Production.Product de la base de datos AdventureWorks2008R2, la integridad referencial se basa en la relación entre la clave externa (ProductID) de la tabla Sales.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 tabla Production.Product.


Ø  Supongamos una base de datos con las entidades Persona y Factura. Toda factura corresponde a una persona y solamente una. Implica que en todo momento dichos datos sean correctos, sin repeticiones innecesarias, datos perdidos y relaciones mal resueltas.
Supongamos que una persona se identifica por su atributo DNI (Documento Nacional de Identidad). También tendrá otros atributos como el nombre y la dirección. La entidad Factura debe tener un atributo DNI_cliente que identifique a quién pertenece la factura.
Por sentido común es evidente que todo valor de DNI_cliente debe corresponder con algún valor existente del atributo DNI de la entidad Persona. Esta es la idea intuitiva de la integridad referencial.


La integridad definida por el usuario permite definir reglas de empresa específicas que no pertenecen a ninguna otra categoría de integridad. Todas las categorías de integridad admiten la integridad definida por el usuario. Esto incluye todas las restricciones de nivel de columna y nivel de tabla en CREATE TABLE, procedimientos almacenados y desencadenadores.

Ejemplos:
Ø  Supongamos que en la conocida relación EMPLEADOS (DNI, nombre, apellido, edademp) se ha declarado que dominio (DNI) es el dominio definido por el usuario númerosDNI y que dominio (edademp) es el dominio definido por el usuario edad. Supongamos que númerosDNI corresponde a los enteros positivos y que edad corresponde a los enteros que están entre 16 y 65. En este caso, será incorrecto,por ejemplo, consultar los empleados que tienen el valor de DNI igual al valor de edademp. El motivo es que, aunque tanto los valores de DNI como los de edademp sean enteros, sus dominios son diferentes; por ello, según el significado que el usuario les da, no tiene sentido compararlos.

1 comentario:

  1. Gracias por la información.
    Saludos desde en Instituto Tecnológico de Tapachula

    ResponderEliminar