En las bases de datos relacionales, los datos almacenados deben cumplir una serie de restricciones - constraints - para poder ser almacenados exitosamente en la base de datos. Una de estas restricciones tiene que ver con las claves foráneas, y se llama integridad referencial. Vamos, a continuación, a explicar en qué consiste esta restricción, y cuáles son sus implicaciones. |
La integridad referencial es una restricción que tienen los valores de una clave foránea para poder ser almacenadas en la base de datos, y dicha restricción exige que el valor de una clave foránea debe coincidir con algún valor de la clave primaria con la que se relaciona (a no ser que su valor sea nulo). Vamos a suponer dos tablas de la base de datos de los centros veterinarios: CENTROVETERINARIO y GERENTE. Como se puede observar en la imagen, son dos tablas que tienen una relación. La clave foránea es el campo CEDGERENTE, de la tabla CENTROVETERINARIO.
|
Como podemos ver, hay un centro veterinario, llamado MUNDO ANIMAL, cuya cédula de gerente es 500. Y hay un gerente, con cédula 500, llamada SARA RIOS. En este ejemplo, la integridad referencial se está cumpliendo, ya que el valor de la clave foránea (CEDGERENTE, en CENTROVETERINARIO), concuerda con algún valor de la clave primaria con la que se relaciona (CEDULA, en GERENTE). También, como se puede observar, hay un centro veterinario, llamado ANIMAL TOYS, que tiene su clave foránea en valor nulo. En este caso, la integridad referencial no se verifica. |
Es importante mencionar que la forma como configuramos la integridad referencial entre dos tablas, es simplemente creando la relación entre ellas, es decir, cuando dos tablas tienen una relación, implícitamente se configura la integridad referencial y se hace la validación correspondiente. Por ejemplo, como se puede ver en la imagen, cuando tratamos de grabar un centro veterinario cuya cedula de gerente no existe en la tabla GERENTE, saca un error y no deja hacer la grabación. En este caso, la cédula No. 305 no existe en la tabla GERENTE, por lo cual genera el error de integridad referencial, y por lo tanto no deja grabar el centro veterinario PETLAND.
|
Miremos la importancia de que las tablas estén debidamente relacionadas. Vamos a suponer que las tablas GERENTE y CENTROVETERINARIO no están relacionadas. Si tratamos de grabar el centro veterinario, PETLAND, con cédula de gerente No. 305, lo deja hacer sin ningún problema, dejando la base de datos con inconsistencia. |
Como se puede observar, el registro del centro veterinario llamado PETLAND ha quedado grabado, con un dato inconsistente, la cédula del gerente No. 305, la cual no existe en la tabla GERENTE. Con este ejemplo, se puede mirar la importancia que tiene preservar (o hacer cumplir) la integridad referencial en una base de datos, a través de las relaciones que se definan entre las tablas. La integridad referencial asegura consistencia en los valores de las claves foráneas. |
Video: