La integridad referencial es una propiedad de los datos que afirman que todas sus referencias son válidas. En el contexto de las bases de datos relacionales , requiere que si un valor de un atributo (columna) de una relación (tabla) hace referencia a un valor de otro atributo (ya sea en la misma relación o en una diferente), entonces el valor referenciado debe existir. [1]
Para que la integridad referencial se mantenga en una base de datos relacional, cualquier columna de una tabla base que se declare una clave externa solo puede contener valores nulos o valores de la clave principal de una tabla principal o una clave candidata . [2] En otras palabras, cuando se utiliza un valor de clave externa, debe hacer referencia a una clave primaria válida existente en la tabla principal. Por ejemplo, eliminar un registro que contiene un valor al que hace referencia una clave externa en otra tabla rompería la integridad referencial. Algunos sistemas de administración de bases de datos relacionales (RDBMS) pueden imponer la integridad referencial, normalmente eliminando las filas de claves externas para mantener la integridad o devolviendo un error y no realizando la eliminación. El método que se utilice puede determinarse mediante una restricción de integridad referencial definida en un diccionario de datos .
El adjetivo 'referencial' describe la acción que realiza una clave externa , 'refiriéndose' a una columna vinculada en otra tabla. En términos simples, la 'integridad referencial' garantiza que se encontrará el objetivo 'al que se hace referencia'. La falta de integridad referencial en una base de datos puede hacer que las bases de datos relacionales devuelvan datos incompletos, generalmente sin indicación de error.
Formalización
Una dependencia de inclusión sobre dos predicados (posiblemente idénticos) y a partir de un esquema se escribe , donde el , son atributos distintos (nombres de columna) de y . Implica que las tuplas de valores que aparecen en columnas por hechos de también debe aparecer como una tupla de valores en columnas por algún hecho de .
La implicación lógica entre las dependencias de inclusión se puede axiomatizar mediante reglas de inferencia [3] : 193 y se puede decidir mediante un algoritmo PSPACE . Se puede demostrar que el problema es PSPACE-completo reduciendo el problema de aceptación para un autómata acotado lineal . [3] : 196 Sin embargo, la implicación lógica entre dependencias que pueden ser dependencias de inclusión o dependencias funcionales es indecidible mediante la reducción del problema verbal de los monoides . [3] : 199
Integridad referencial declarativa
La integridad referencial declarativa (DRI) es una de las técnicas del lenguaje de programación de la base de datos SQL para garantizar la integridad de los datos.
Significado en SQL (lenguaje de consulta estructurado)
Una tabla (llamada tabla de referencia) puede hacer referencia a una columna (o un grupo de columnas) en otra tabla (la tabla de referencia) mediante el uso de una clave externa . Las columnas a las que se hace referencia en la tabla a la que se hace referencia deben estar bajo una restricción única, como una clave principal . Además, las autorreferencias son posibles (aunque no están completamente implementadas en MS SQL Server [4] ). Al insertar una nueva fila en la tabla de referencia, el sistema de administración de bases de datos relacionales (RDBMS) verifica si el valor de clave ingresado existe en la tabla de referencia. Si no es así, no es posible insertarlo. También es posible especificar acciones DRI en ACTUALIZAR y BORRAR , como CASCADA (reenvía un cambio / eliminación en la tabla referenciada a las tablas de referencia), NO ACCIÓN (si se hace referencia a la fila específica, no se permite cambiar la clave) o SET NULL / SET DEFAULT (una clave modificada / eliminada en la tabla referenciada da como resultado el establecimiento de los valores de referencia en NULL o en el valor DEFAULT si se especifica uno).
ANSI / ISO / IEC 9075-1: 2003, Tecnología de la información — Lenguajes de base de datos — SQL — Parte 1: Marco (SQL / Marco) ANSI / ISO / IEC 9075-2: 2003, Tecnología de la información — Lenguajes de base de datos — SQL — Parte 2: Fundación (SQL / Foundation)
Significado específico del producto
En Microsoft SQL Server, el término DRI también se aplica a la asignación de permisos a usuarios sobre un objeto de base de datos. Dar permiso de DRI a un usuario de base de datos les permite agregar restricciones de clave externa en una tabla. [5]
Ver también
Referencias
- ^ Chapple, Mike. "Integridad referencial" . About.com . Consultado el 20 de marzo de 2011 .
Definición : La integridad referencial es un concepto de base de datos que asegura que las relaciones entre tablas sigan siendo consistentes. Cuando una tabla tiene una clave externa para otra tabla, el concepto de integridad referencial establece que no puede agregar un registro a la tabla que contiene la clave externa a menos que haya un registro correspondiente en la tabla vinculada.
- ^ Coronel y col. (2013). Sistemas de bases de datos 10ª ed. Aprendizaje Cengage, ISBN 978-1-111-96960-8
- ^ a b c Abiteboul, Serge ; Hull, Richard B .; Vianu, Victor (1994). "9. Dependencia de la inclusión". Fundamentos de bases de datos . Addison-Wesley. págs. 192-199.
- ^ Soporte de Microsoft (2007-02-11). "Aparece el mensaje de error 1785 cuando crea una restricción de CLAVE EXTRANJERA que puede causar varias rutas en cascada" . microsoft.com . Consultado el 24 de enero de 2009 .
- ^ Chigrik, Alexander (13 de agosto de 2003). "Gestión de permisos de usuarios en SQL Server" . Diario de base de datos . Consultado el 17 de diciembre de 2006 .
enlaces externos
- DRI versus Triggers ( archivado )