Articulo de referencia

Integridad referencial

Un ejemplo de una base de datos que no ha aplicado la integridad referencial . En este ejemplo, hay un artist_id valor de clave externa ( ) en la tabla de álbumes que hace refer...

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 a la que se hace referencia. Lo que sucedió aquí fue que había un artista llamado " Aerosmith ", con un artist_idof 4, que se eliminó 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 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 referenciado 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 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 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 administración de bases de datos relacionales (RDBMS) pueden hacer cumplir 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 utiliza 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 , "haciendo referencia" 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 ninguna indicación de error.

Formalización

Una dependencia de inclusión sobre dos predicados (posiblemente idénticos) y de un esquema se escribe , donde , son atributos distintos (nombres de columnas) de y . Esto 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 . R {\estilo de visualización R} S {\estilo de visualización S} R [ A 1 , . . . , A norte ] S [ B 1 , . . . , B norte ] {\displaystyle R[A_{1},...,A_{n}]\subseteq S[B_{1},...,B_{n}]} A i Estilo de visualización A_{i}} B i Estilo de visualización B_{i}} R {\estilo de visualización R} S {\estilo de visualización S} A 1 , . . . , A norte {\displaystyle A_{1},...,A_{n}} R {\estilo de visualización R} B 1 , . . . , B norte Estilo de visualización B_{1},...,B_{n}} S {\estilo de visualización S}

Esta 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 es el vector (cuyo tamaño es ) de variables compartidas por y , y ninguna variable aparece varias veces ni en el cuerpo ni en la cabeza de la TGD. incógnita , y . ( R ( incógnita , y ) el . S ( incógnita , el ) ) {\displaystyle \forall {\vec {x}},{\vec {y}}.(R({\vec {x}},{\vec {y}})\rightarrow \exists {\vec {z} }.S({\vec {x}},{\vec {z}}))} incógnita {\displaystyle {\vec {x}}} norte {\estilo de visualización n} R {\estilo de visualización R} S {\estilo de visualización S}

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 reducción a partir del problema de aceptación para un autómata lineal acotado . [4] : ​​196  Sin embargo, la implicación lógica entre dependencias que pueden ser dependencias de inclusión o dependencias funcionales es indecidible mediante reducción a partir del problema de palabras 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 una clave externa . La(s) columna(s) referenciada(s) en la tabla referenciada deben estar bajo una restricción única, como una clave principal . Además, 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 administración de bases de datos relacionales (RDBMS) verifica si el valor de clave ingresado existe en la tabla referenciada. Si no es así, 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 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). [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 los 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 a una tabla. [7]

Véase también

Referencias

  1. ^ 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 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.
  2. ^ Coronel et al. (2013). Sistemas de bases de datos, décima edición. Cengage Learning, 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 ; Hull, Richard B.; Vianu, Victor (1994). "9. Dependencia de inclusión". Fundamentos de bases de datos. Addison-Wesley. págs. 192–199.
  5. ^ Soporte técnico de Microsoft (11 de febrero de 2007). "El mensaje de error 1785 aparece cuando se crea una restricción FOREIGN KEY que puede provocar 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 de trabajo (SQL/Framework)
    • Parte 2: Fundamentos (SQL/Foundation)
  7. ^ 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 .
  • DRI versus Triggers (archivado)
Obtenido de "https://es.wikipedia.org/w/index.php?title=Integridad_referencial&oldid=1248210310"