Niveles de la integridad de datos
La integridad de datos se define en los siguientes niveles:
Integridad de dominio
Se conoce como el dominio de un atributo al conjunto de valores aceptables para dicho atributo. La integridad de dominio establece qué condiciones deben cumplir los valores a insertar en una columna.
La integridad de dominio se define mediante reglas de validación, valores predeterminados, conjunto de valores permitidos en la columna (llave foránea), tipo y formato de los datos.
Integridad de entidad
Una tabla almacena los datos de cada una de las ocurrencias de una entidad. La entidad (o tabla) requiere que todas sus filas sean únicas. Esto se garantiza definiendo para cada fila de la entidad un identificador único (llave primaria).
Integridad referencial
La integridad referencial garantiza que la relación entre la llave primaria (en la tabla referenciada) y la llave foránea (en la tabla de referencia) siempre se mantiene. Una fila en una tabla referenciada no puede anularse, ni cambiar su valor de la llave primaria, si una llave foránea se refiere a la fila
Los modos de integridad
La integridad de datos se puede definir como parte de la declaración de una tabla, ó también mediante programación.
Integridad declarativa
La integridad declarativa se establece cuando definimos la integridad de datos como parte de la definición de la tabla. Consiste en la creación de restricciones (constraints), y se define mediante las instrucciones CREATE TABLE y ALTER TABLE.
Integridad procedural
La integridad procedural se establece cuando definimos la integridad de datos a través de la programación. Consiste en la creación de desencadenantes (triggers), procedimientos almacenados (stored procedures), y funciones (user defined functions)
Las restricciones (constraints)
Las restricciones son un método declarativo de definición de la integridad de datos ya que ellas se definen al momento de crear la tabla (con la sentencia CREATE TABLE), o al momento de modificar la definición de la tabla (con la sentencia ALTER TABLE). En otras palabras, una restricción forma parte de la definición de la tabla. Las restricciones son el método preferido para dar fuerza a la integridad de los datos.
Tipos de restricciones
Las restricciones son un método estándar ANSI para forzar la integridad de los datos. Garantizan que los datos ingresados en las columnas sean valores válidos y que se mantengan las relaciones entre las tablas.
La tabla siguiente describe los diferentes tipos de restricciones.
Las restricciones se definen al momento de definir la tabla con las sentencias CREATE TABLE o ALTER TABLE.
CREATE TABLE nombre_tabla(
columna1 tipo_dato propiedades
CONSTRAINT nombre_restricción … ,
columna2 tipo_dato propiedades
CONSTRAINT nombre_restricción … , … )
ALTER TABLE nombre_tabla
ADD CONSTRAINT nombre_restricción …
La restricción DEFAULT (valor predeterminado)
Define cuál es el valor por defecto de una columna cuando al ejecutar INSERT no se especifica el valor de dicha columna.
Ejemplo
USE biblioteca
ALTER TABLE prestamo
ADD CONSTRAINT df_fecha_sal
DEFAULT getdate( ) FOR pre_fec_sal
Establece que el valor predeterminado de la columna pre_fec_sal de la tabla prestamo es la fecha del sistema.
La restricción CHECK (regla de validación)
Define la regla que debe cumplir el valor a ingresar a una columna. Se verifica
durante la ejecución de INSERT y UPDATE.
Ejemplo
ALTER TABLE ejemplar
ADD CONSTRAINT chk_disponibilidad
CHECK ( eje_dis LIKE'[ SN]’ )
El contenido de la columna eje_dis de la tabla ejemplar debe ser ‘S’ o ‘N’.
La restricción PRIMARY KEY (llave primaria)
Define cuál es la llave primaria de una tabla. La columna o combinación de columnas no debe tener valores duplicados ni nulos.
Ejemplo
ALTER TABLE publicacion
ADD CONSTRAINT pk_publicacion
PRIMARY KEY CLUSTERED( pub_cod )
Establece que la columna pub_cod de la tabla publicacion es la llave primaria de la tabla.
Crea un índice clustered único de nombre pk_publicación para la columna pub_cod.
La restricción UNIQUE (valores únicos)
Define que mas de una fila no pueden tener el mismo valor en una columna. Permite nulo.
Ejemplo:
ALTER TABLE tema
ADD CONSTRAINT u_descripcion
UNIQUE NONCLUSTERED( tem_des )
Establece que la columna tem_des de la tabla tema no puede tener descripciones iguales.
Crea un índice único de nombre u_descripcion.
La restricción FOREIGN KEY (llave foránea)
Define la integridad referencial. La restricción FOREIGN KEY se define sobre la columna llave foránea de la tabla secundaria. La tabla primaria debe tener definida su restricción PRIMARY KEY o UNIQUE.
Ejemplo
ALTER TABLE ejemplar
ADD CONSTRAINT fk_ejemplar_publicacion
FOREIGN KEY( pub_cod )
REFERENCES publicacion( pub_cod )
Establece la relación entre las tablas publicación y ejemplar.
Contenido relacionado:
- Sistemas de Gestión de Base Datos – SGBD
- Introducción a SQL Server
- Clientes Administrador Corporativo y Analizador de consultas
- El objeto base de datos – SQL Server
- La integridad de datos – SQL Server
- Transact SQL – SQL Server
- Diseño de Consultas Complejas – SQL Server
- Lenguaje de Definición de Datos (DDL)
- Lenguaje de manipulación de datos (DML)