stringtranslate.com

Integridad referencial

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 del álbum 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 a la que se hace referencia. Lo que pasó aquí fue que había un artista llamado " Aerosmith ", con una artist_idde 4, que fue eliminado de la tabla de artistas. Sin embargo, el álbum " Eat the Rich " hacía referencia a este artista. Si se hubiera hecho cumplir la integridad referencial, esto no habría sido posible.

La integridad referencial es una propiedad de los datos que indica 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 al que se hace referencia debe existir. [1]

Para que se mantenga la integridad referencial 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 o una clave candidata de una tabla principal . [2] En otras palabras, cuando se utiliza 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) pueden imponer la integridad referencial, normalmente eliminando también 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 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 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

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 .

Tal 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 , donde está el vector (cuyo tamaño es ) de variables compartidas por y , y 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 decidirse mediante un algoritmo PSPACE . Se puede demostrar que el problema es PSPACE completo mediante la reducción del problema de aceptación para un autómata acotado lineal . [4] : 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 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 (llamada tabla de referencia) puede hacer referencia a una columna (o un grupo de columnas) en otra tabla (la tabla referenciada) 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 [5] ). 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. De lo contrario, no es posible ninguna inserción. También es posible especificar acciones DRI en ACTUALIZAR y ELIMINAR , como CASCADE (reenvía un cambio/eliminación en la tabla referenciada a las tablas de referencia), NO ACTION (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 a la que se hace referencia da como resultado el establecimiento de los valores de referencia 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 permiso DRI a un usuario de base de datos le permite agregar restricciones de clave externa en una tabla. [7]

Ver también

Referencias

  1. ^ Chapple, Mike. "Integridad referencial". Acerca de.com . Consultado el 20 de marzo de 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 para 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 haya un registro correspondiente en la tabla vinculada.
  2. ^ Coronel y col. (2013). Sistemas de bases de datos 10ª ed. Aprendizaje Cengage, ISBN 978-1-111-96960-8 
  3. ^ Kolaitis, Phokion G. "Un tutorial sobre las dependencias de bases de datos" (PDF) . Universidad de California Santa Cruz e IBM Research - Almadén . Consultado el 10 de diciembre de 2021 .
  4. ^ abc Abiteboul, Serge ; Casco, Richard B.; Vianu, Víctor (1994). "9. Dependencia de la inclusión". Fundamentos de Bases de Datos. Addison-Wesley. págs. 192-199.
  5. ^ Soporte de Microsoft (11 de febrero de 2007). "El mensaje de error 1785 aparece cuando se crea una restricción de CLAVE EXTRANJERA que puede causar múltiples rutas en cascada". microsoft.com . Consultado el 24 de enero de 2009 .
  6. ^ ANSI/ISO/IEC 9075-1:2003, Tecnología de la información—Lenguajes de bases de datos—SQL
    • Parte 1: Marco (SQL/Framework)
    • Parte 2: Fundación (SQL/Fundación)
  7. ^ Chigrik, Alejandro (13 de agosto de 2003). "Administración de permisos de usuarios en SQL Server". Diario de base de datos . Consultado el 17 de diciembre de 2006 .

enlaces externos