You are on page 1of 3

Integridad referencial

La integridad referencial es un sistema de reglas que utilizan la mayora de las bases de datos
relacionales para asegurarse que los registros de tablas relacionadas son vlidos y que no se
borren o cambien datos relacionados de forma accidental produciendo errores de integridad.
Cuando se define una columna como clave fornea, las filas de la tabla pueden contener en
esa columna o bien el valor nulo (ningn valor), o bien un valor que existe en la otra tabla,
un error sera asignar a un habitante una poblacin que no est en la tabla de poblaciones.
Eso es lo que se denomina integridad referencial y consiste en que los datos que referencian
otros (claves forneas) deben ser correctos. La integridad referencial hace que el sistema
gestor de la base de datos se asegure de que no haya en las claves forneas valores que no
estn en la tabla principal.
La integridad referencial se activa en cuanto creamos una clave fornea y a partir de ese
momento se comprueba cada vez que se modifiquen datos que puedan alterarla.
Cundo se pueden producir errores en los datos?
Cuando insertamos una nueva fila en la tabla secundaria y el valor de la clave fornea no
existe en la tabla principal. insertamos un nuevo habitante y en la columna poblacin
escribimos un cdigo de poblacin que no est en la tabla de poblaciones (una poblacin que
no existe).
Cuando modificamos el valor de la clave principal de un registro que tiene 'hijos',
modificamos el cdigo de Valencia, sustituimos el valor que tena (1) por un nuevo valor
(10), si Valencia tena habitantes asignados, qu pasa con esos habitantes, no pueden seguir
teniendo el cdigo de poblacin 1 porque la poblacin 1 ya no existe, en este caso hay dos
alternativas, no dejar cambiar el cdigo de Valencia o bien cambiar el cdigo de poblacin
de todos los habitantes de Valencia y asignarles el cdigo 10.
Cuando modificamos el valor de la clave fornea, el nuevo valor debe existir en la tabla
principal. Por ejemplo, cambiamos la poblacin de un habitante, tena asignada la poblacin
1 (porque estaba empadronado en valencia) y ahora se le asigna la poblacin 2 porque cambia
de lugar de residencia. La poblacin 2 debe existir en la tabla de poblaciones.
Cuando queremos borrar una fila de la tabla principal y ese registro tiene 'hijos', por ejemplo,
queremos borrar la poblacin 1 (Valencia) si existen habitantes asignados a la poblacin 1,
estos no se pueden quedar con el valor 1 en la columna poblacin porque tendran asignada
una poblacin que no existe. En este caso tenemos dos alternativas, no dejar borrar la
poblacin 1 de la tabla de poblaciones, o bien borrarla y poner a valor nulo el campo
poblacin de todos sus 'hijos'.
Asociada a la integridad referencial estn los conceptos de actualizar los registros en cascada
y eliminar registros en cascada.
La integridad referencial dispone de dos acciones asociadas:
Actualizar en cascada los campos relacionados: Hace que cuando se cambie el valor del
campo de la tabla principal, automticamente cambiarn los valores de sus registros
relacionados en la tabla secundaria.
Por ejemplo: Si cambiamos el nombre de la poblacin Onteniente por Ontinyent en la tabla
Poblaciones, automticamente en la tabla Habitantes, todos los habitantes de Onteniente se
cambiarn a Ontinyent.
Eliminar en cascada los registros relacionados: Cuando se elimina un registro de la tabla
principal se borrarn tambin los registros relacionados en la tabla secundaria.
Por ejemplo: Si borramos la poblacin Onteniente en la tabla Poblaciones, automticamente
todos los habitantes de Onteniente se borrarn de la tabla de Habitantes.
Si no marcamos ninguna de las opciones no nos dejar ni cambiar el nombre de una poblacin
ni eliminar una poblacin si sta tiene habitantes asignados.
La integridad referencial se define como el conjunto de mecanismos para conservar y
garantizar de forma automtica la integridad de todos los datos de los sistemas de gestin de
bases de datos. Define las reglas que claves primarias y claves forneas deben cumplir.
Las tablas que forman una base de datos pueden ser de diferentes tipos, dependiendo de las
relaciones que tengan con otras tablas.
Tabla referenciada: Su clave primaria es referenciada por una o ms claves forneas de la
misma o diferente tabla
Tabla dependiente: Tiene al menos una clave fornea
Tabla independiente: No tiene ninguna clave primaria referenciada ni fornea
Tabla autorreferenciada: Su clave primaria est referenciada por una clave fornea definida
en esta misma tabla
Al disear el modelo conceptual de una base de datos se definen las relaciones existentes
entre las entidades. Durante el diseo a nivel fsico del modelo relacional se definen
fsicamente las relaciones de forma que el gestor de bases de datos asegure la integridad de
los datos de acuerdo a dichas relaciones. En estas relaciones se establecen las restricciones
referenciales. Es decir, establecemos las acciones que el gestor debe tomar al efectuar las
validaciones entre la clave primaria y la clave fornea referente como consecuencia de una
operacin "contra" la base de datos.