
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 primaria correspondiente en la tabla referenciada. Lo que sucedió aquí fue que había un artista llamado " Aerosmith ", con un artist_idvalor de 4, que fue eliminado de la tabla de artistas. Sin embargo, el álbum " Eat the Rich " hacía referencia a este artista. Con la integridad referencial aplicada, esto no habría sido posible.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 se mantenga la integridad referencial en una base de datos relacional, cualquier columna en una tabla base que se declare como clave externa solo puede contener valores nulos o valores de la clave primaria de una tabla padre o una clave candidata . [ 2 ] En otras palabras, cuando se usa un valor de clave externa, este debe hacer referencia a una clave primaria válida y existente en la tabla padre. 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) pueden imponer la integridad referencial, normalmente eliminando también las filas de la clave externa para mantener la integridad, o devolviendo un error y no realizando la eliminación. El método que se utilice 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 , que hace referencia a una columna vinculada en otra tabla. En términos sencillos, la «integridad referencial» garantiza que se encontrará el elemento al que se hace referencia. La falta de integridad referencial en una base de datos puede provocar que las bases de datos relacionales devuelvan datos incompletos, generalmente sin ninguna indicación de error.
Formalización
Una dependencia de inclusión sobre dos predicados (posiblemente idénticos)ya partir de un esquema se escribe, donde el,son atributos distintos (nombres de columna) dey. Esto implica que las tuplas de valores que aparecen en las columnaspara hechos deTambién debe aparecer como una tupla de valores en columnas.por algún hecho de.
Dicha restricción es una forma particular de dependencia generadora de tuplas (TGD) donde en ambos lados de la regla hay solo un átomo relacional. [ 3 ] En lógica de primer orden se puede expresar como, dóndees el vector (cuyo tamaño es) de variables compartidas poryy ninguna variable aparece varias veces ni en el cuerpo del TGD ni en su cabeza.
La implicación lógica entre dependencias de inclusión puede axiomatizarse mediante reglas de inferencia [ 4 ] : 193 y puede resolverse mediante un algoritmo PSPACE . Se puede demostrar que el problema es PSPACE-completo mediante reducción al problema de aceptación para un autómata lineal acotado [ 4 ] : 196. Sin embargo, la implicación lógica entre dependencias que pueden ser de inclusión o funcionales es indecidible mediante reducción al problema de la palabra para monoides [ 4 ] : 199 .
Integridad referencial declarativa
La integridad referencial declarativa (DRI) es una de las técnicas del lenguaje de programación de bases de datos SQL para garantizar la integridad de los datos.
Significado en SQL
Una tabla (denominada tabla de referencia) puede hacer referencia a una columna (o un grupo de columnas) en otra tabla (la tabla referenciada) mediante una clave externa . La(s) columna(s) referenciada(s) en la tabla referenciada deben estar sujetas a una restricción de unicidad, como una clave primaria . También son posibles las autorreferencias (aunque no están completamente implementadas en MS SQL Server [ 5 ] ). Al insertar una nueva fila en la tabla de referencia, el sistema de gestión de bases de datos relacionales (RDBMS) comprueba si el valor de la clave introducida existe en la tabla referenciada. Si no existe, no es posible la inserción. También es posible especificar acciones DRI en UPDATE y DELETE , como CASCADE (reenvía un cambio/eliminación en la tabla referenciada a las tablas de referencia), NO ACTION (si la fila específica está referenciada, no se permite cambiar la clave) o SET NULL / SET DEFAULT (una clave cambiada/eliminada en la tabla referenciada da como resultado que los valores de referencia se establezcan en NULL o en el valor DEFAULT si se especifica uno). [ 6 ]
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 . Otorgar permisos DRI a un usuario de base de datos le permite agregar restricciones de clave externa a una tabla. [ 7 ]
Véase también
Referencias
- ↑ Chapple, Mike. "Integridad referencial" . About.com Tech . About.com. Archivado del original el 25/09/2004 . Recuperado el 20/03/2011 .
Definición : La integridad referencial es un concepto de base de datos que garantiza que las relaciones entre tablas permanezcan consistentes. Cuando una tabla tiene una clave externa a otra tabla, el concepto de integridad referencial establece que no se puede agregar un registro a la tabla que contiene la clave externa a menos que exista un registro correspondiente en la tabla vinculada.
- ↑ Coronel et al. (2013). Sistemas de bases de datos, 10.ª ed. Cengage Learning, ISBN 978-1-111-96960-8
- ^ Kolaitis, Phokion G. "Un tutorial sobre dependencias de bases de datos" (PDF) . Universidad de California Santa Cruz e IBM Research - Almadén. Archivado desde el original (PDF) el 10 de diciembre de 2021 . Consultado el 10 de diciembre de 2021 .
- 1 2 3 Abiteboul, Serge ; Hull, Richard B.; Vianu, Victor (1994). "9. Dependencia de inclusión". Fundamentos de bases de datos . Addison-Wesley. págs. 192–199 .
- ↑ Soporte técnico de Microsoft (11 de febrero de 2007). "El mensaje de error 1785 se produce al crear una restricción FOREIGN KEY que puede provocar múltiples rutas en cascada" . microsoft.com . Consultado el 24 de enero de 2009 .
- ↑ ANSI/ISO/IEC 9075-1:2003, Tecnología de la información—Lenguajes de bases de datos—SQL
- Parte 1: Marco de trabajo (SQL/Framework)
- Parte 2: Fundamentos (SQL/Foundation)
- ↑ Chigrik, Alexander (13 de agosto de 2003). "Administración de permisos de usuarios en SQL Server" . Database Journal . Consultado el 17 de diciembre de 2006 .
Enlaces externos
- DRI frente a desencadenantes ( archivado )
- Sistemas de gestión de bases de datos
- Calidad de los datos