Integridad referencial

Introducción a las bases de datos relacionales en SQL

Timo Grossenbacher

Data Journalist

Integridad referencial

  • Un registro que haga referencia a otra tabla debe referirse a un registro existente en esa tabla.
  • Especificado entre dos tablas
  • Aplicado mediante claves externas
Introducción a las bases de datos relacionales en SQL

Infracciones de la integridad referencial

Se ha infringido la integridad referencial de la tabla A a la tabla B...

  • ...si se elimina un registro de la tabla B al que se hace referencia desde un registro de la tabla A.
  • ...si se inserta un registro en la tabla A que hace referencia a un registro inexistente de la tabla B.
  • ¡Las claves externas evitan infracciones!
Introducción a las bases de datos relacionales en SQL

Tratamiento de las infracciones

CREATE TABLE a (
 id integer PRIMARY KEY,
 column_a varchar(64), 
 ...,
 b_id integer REFERENCES b (id) ON DELETE NO ACTION
);
CREATE TABLE a (
 id integer PRIMARY KEY,
 column_a varchar(64), 
 ...,
 b_id integer REFERENCES b (id) ON DELETE CASCADE
);
Introducción a las bases de datos relacionales en SQL

Tratamiento de las infracciones, cont.

ON DELETE...

  • ...NO ACTION: Lanzar un error
  • ...CASCADE: Eliminar todos los registros de referencia
  • ...RESTRICT: Lanzar un error
  • ...SET NULL: Establece la columna de referencia en NULL
  • ...SET DEFAULT: Establece la columna de referencia en su valor predeterminado.
Introducción a las bases de datos relacionales en SQL

¡Veamos algunos ejemplos!

Introducción a las bases de datos relacionales en SQL

Preparing Video For Download...