INTEGRIDAD REFERENCIAL

INTEGRIDAD REFERENCIAL

La integridad referencial significa que la clave externa de una tabla de referencia siempre debe aludir a una fila válida de la tabla a la que se haga referencia. La integridad referencial garantiza que la relación entre dos tablas permanezca sincronizada durante las operaciones de actualización y eliminación.
Por ejemplo, supongamos que la aplicación tiene una tabla Titles y una tabla Publishers como se muestra en la siguiente tabla.


Tabla Titles Tabla Publishers
isbn_ti (clave) id_edit (clave)
título_ti nombre_edit
añopublic_ti dir_edit
id_edit (clave externa) teléfono_edit


La integridad referencial requiere que estas dos tablas estén sincronizadas. Es decir, la identificación de cada editorial (id_edit) de la tabla Titles también debe aparecer en la tabla Publishers.
La aplicación no puede eliminar la fila id_edit de la tabla Publishers porque la fila id_edit de la tabla Titles se quedaría sin una referencia. Sin embargo, se podría permitir la eliminación de la fila id_edit de la tabla Publishers y eliminar también todas las filas de la tabla Titles que tengan la misma identificación id_edit. Con esta acción se mantendría la integridad referencial en ambas tablas.
De forma similar, la aplicación no puede añadir una fila a la tabla Titles si no existe ya una identificación válida id_edit en la tabla Publishers. Esta acción daría lugar a la inserción de datos "defectuosos" en el campo id_edit. De manera que la aplicación debe asegurarse de que haya una clave id_edit válida en la tabla Publishers antes de insertar la identificación id_edit en la fila de Titles relacionada.
La implementación real de la integridad referencial depende totalmente del motor de almacenamiento de datos que se elija y de los requisitos de diseño de la aplicación. Históricamente, las aplicaciones que utilizan archivos VSAM de gran sistema usaban código basado en aplicaciones para controlar la integridad referencial. Hoy en día, aunque la aplicación utilice SQL Server, eso no significa que se deban utilizar desencadenadores, claves externas, restricciones y eliminaciones en cascada para mantener la integridad referencial. Una vez más se puede elegir la opción de controlar aspectos relacionales con código basado en aplicaciones.


Existen tres tipos de integridad que son:

+ integridad referencial debil

+ integridad referencial parciall

+ integridad referencialcompleta