La integridad referencial garantiza que las relaciones entre filas de tablas relacionadas son válidas y que no se eliminan o se cambian datos relacionados de forma accidental. Cuando se exige la integridad referencial en una base de datos de Oracle, se deben observar las reglas siguientes:
- No puede especificar un valor en la columna de clave externa de la tabla relacionada si ese valor no existe en la clave principal de la tabla relacionada. Sin embargo, puede especificar un valor nulo en la columna de clave principal. Por ejemplo, no puede indicar que se asigna un trabajo a un empleado que no está incluido en la tabla EMPLOYEE, pero puede indicar que un empleado no tiene trabajo asignado mediante la especificación de un valor nulo en la columna JOB_ID de la tabla EMPLOYEE.
- No puede eliminar una fila de una tabla de clave principal si existen filas que coinciden con ella en una tabla relacionada. Por ejemplo, no puede eliminar una fila de la tabla JOBS si hay empleados asignados al trabajo representado por esa fila en la tabla EMPLOYEE. No obstante, si están activadas las eliminaciones en cascada, puede eliminar una fila de clave principal y se eliminarán también todas las filas coincidentes en las tablas relacionadas.
- No puede cambiar un valor de clave principal de la tabla de clave principal si esa fila tiene filas relacionadas. Por ejemplo, no puede eliminar un empleado de la tabla EMPLOYEE si ese empleado está asignado a un trabajo en la tabla JOBS.
Oracle sólo admite dos tipos de integridad referencial:
- Activar la integridad referencial para comprobar los valores de las tablas relacionadas al especificar los datos. Si el valor del dato no está permitido (determinado por las reglas definidas anteriormente), se produce un error en la entrada de datos y no se agregan a la base de datos.
- Eliminaciones en cascada.
SQL Server, por otro lado, admite algunas opciones adicionales de integridad referencial. En SQL Server puede establecer opciones para desactivar la restricción FOREIGN KEY bajo las siguientes condiciones:
- Tras la creación, para comprobar los datos existentes.
- Durante transacciones INSERT y UPDATE.
- Durante la duplicación.
v
No hay comentarios:
Publicar un comentario