Integridad referencial


La integridad referencial es una propiedad de los datos que establece 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 como 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 usa un valor de clave externa, debe hacer referencia a una clave principal válida y 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 gestión de bases de datos relacionales(RDBMS) puede hacer cumplir la integridad referencial, normalmente eliminando las filas de claves foráneas también para mantener la integridad, o devolviendo un error y no realizando la eliminación. El método que se utiliza puede estar determinado por 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 'referido'. 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.

Se escribe una dependencia de inclusión sobre dos predicados (posiblemente idénticos) y de un esquema , donde , son atributos distintos (nombres de columna) de y . Implica que las tuplas de valores que aparecen en columnas para hechos de también deben aparecer como una tupla de valores en columnas para algún hecho de .


Un ejemplo de una base de datos que no ha aplicado la integridad referencial . En este ejemplo, hay un artist_idvalor de clave externa ( ) en la tabla de álbumes que hace referencia a un artista inexistente; en otras palabras, hay un valor de clave externa sin un valor de clave principal correspondiente en la tabla de referencia. Lo que pasó aquí fue que había un artista llamado " Aerosmith ", con un artist_idde 4, que fue borrado de la tabla de artistas. Sin embargo, el disco " Eat the Rich " hace referencia a este artista. Con la integridad referencial impuesta, esto no habría sido posible.