Dos tablas pueden ser relacionadas entre ellas si tienen en común uno o más campos, que reciben el nombre de clave ajena. La restricción de integridad referencial requiere que haya coincidencia en todos los valores que deben tener en común ambas tablas. Cada valor del campo que forma parte de la integridad referencial definida, debe corresponderse, en la otra tabla, con otro registro que contenga el mismo valor en el campo referenciado.
Siguiendo con el ejemplo de juegos online, supongamos que en una determinada partida de un juego, se han unido una serie de usuarios. En la tabla de PARTIDAS
existe un campo de referencia al tipo de juego al que corresponde, mediante su código de juego. Por tanto, no puede existir ninguna partida cuyo código de juego no se corresponda con ninguno de los juegos de la tabla JUEGOS
.
En este ejemplo, no se cumple la integridad referencial, porque la partida "PARTIDA03
" corresponde al juego cuyo código es 4, y en la tabla JUEGOS
no existe ningún registro con ese código.
Para que se cumpla la integridad referencial, todos los valores del campo Cod_Juego
de la tabla PARTIDAS
deben corresponderse con valores existentes en el campo Codigo
de la tabla JUEGOS.
Cuando se habla de integridad referencial se utilizan los siguientes términos:
- Clave ajena: También llamada clave foránea, es el campo o conjunto de campos incluidos en la definición de la restricción que deben hacer referencia a una clave de referencia. En el ejemplo anterior, la clave ajena sería el campo
Cod_Juego
de la tabla PARTIDAS
.
- Clave de referencia: Clave única o primaria de la tabla a la que se hace referencia desde una clave ajena. En el ejemplo, la clave de referencia es el campo
Codigo
de la tabla JUEGOS
.
- Tabla hija o dependiente: Tabla que incluye la clave ajena, y que, por tanto, depende de los valores existentes en la clave de referencia. Correspondería a la tabla
PARTIDAS
del ejemplo, que sería la tabla hija de la tabla JUEGOS
.
- Tabla padre o de referencia: Corresponde a la tabla que es referenciada por la clave ajena en la tabla hija. Esta tabla determina las inserciones o actualizaciones que son permitidas en la tabla hija, en función de dicha clave. En el ejemplo, la tabla
JUEGOS
es padre de la tabla PARTIDAS
.
Columna que existiendo como dependiente en una tabla, es a su vez clave primaria en otra tabla