Sobes.tech
Middle

¿Qué es la integridad de las relaciones de referencia?

sobes.tech AI

Respuesta de la IA

La integridad referencial es una propiedad de los datos en una base de datos relacional que garantiza que las referencias entre tablas permanezcan válidas. Previene los siguientes problemas:

  • Eliminar una fila de la tabla "padre" a la que hacen referencia las filas en la tabla "hija".
  • Cambiar la clave primaria en la tabla "padre" a la que hacen referencia las filas en la tabla "hija" sin actualizar esas referencias.
  • Insertar una fila en la tabla "hija" con una referencia a una clave primaria inexistente en la tabla "padre".

Se implementa mediante claves externas (FOREIGN KEY).

Ejemplos de restricciones para claves externas:

  • ON DELETE CASCADE: Al eliminar una fila en la tabla padre, las filas correspondientes en la tabla hija también se eliminan.
  • ON DELETE SET NULL: Al eliminar una fila en la tabla padre, la clave externa correspondiente en la tabla hija se establece en NULL.
  • ON DELETE RESTRICT: La eliminación de una fila en la tabla padre está prohibida si existen referencias a ella en la tabla hija.
  • ON UPDATE CASCADE: Al actualizar la clave primaria en la tabla padre, las claves externas correspondientes en la tabla hija también se actualizan.
-- Ejemplo de tabla "users" (padre)
CREATE TABLE users (
    user_id INT PRIMARY KEY,
    username VARCHAR(255) NOT NULL
);

-- Ejemplo de tabla "orders" (hija) con clave externa
CREATE TABLE orders (
    order_id INT PRIMARY KEY,
    user_id INT,
    order_date DATE,
    FOREIGN KEY (user_id) REFERENCES users(user_id)
        ON DELETE CASCADE /* Ejemplo de restricción */
        ON UPDATE CASCADE /* Ejemplo de restricción */
);