Las bases de datos relacionales se normalizan para:
- Evitar la redundancia de los datos.
- Evitar problemas de actualización de los datos en las tablas.
- Proteger la integridad de los datos.
Una base de datos contiene unos datos que, en cada momento, deben reflejar la realidad o, más concretamente, la situación de una porción del mundo real. En el caso de las bases de datos relacionales, esto significa que la extensión de las relaciones (es decir, las tuplas que contienen las relaciones) deben tener valores que reflejen la realidad correctamente.
Denominamos integridad la propiedad de los datos de corresponder a representaciones plausibles del mundo real.
Como es evidente, para que los datos sean íntegros, es preciso que cumplan varias condiciones.
A continuación estudiaremos con detalle las reglas de integridad del modelo relacional, reglas que todo SGBD relacional debe obligar a cumplir.
Regla de integridad de la clave primaria: está relacionada con la definición de clave primaria. Concretamente, establece que toda clave primaria que se elija para una relación no debe tener valores nulos ni repetidos.
En esta tabla donde la clave primaria es matrícula, los elementos marcados con amarillo no cumplen con la regla antes mencionada, es decir, en el tercer alumno hay un valor nulo y la matrícula del último se repite con la del primero.
La regla de integridad referencial se enmarca en términos de estados de la base de datos: indica lo que es un estado ilegal, pero no dice cómo puede evitarse.
La cuestión es ¿qué hacer si estando en un estado legal, llega una petición para realizar una operación que conduce a un estado ilegal? Existen dos opciones: rechazar la operación, o bien aceptar la operación y realizar operaciones adicionales compensatorias que conduzcan a un estado legal.
Por lo tanto, para cada clave foranea de la base de datos habrá que contestar a tres preguntas:
1.- Regla de los nulos: ¿Tiene sentido que la clave foranea acepte nulos?
2.- Regla de borrado: ¿Qué ocurre si se intenta borrar la tupla referenciada por la clave foranea?
- Restringir: no se permite borrar la tupla referenciada.
- Propagar (cascada): se borra la tupla referenciada y se propaga el borrado a las tuplas que la referencian mediante la clave foranea.
- Anular: se borra la tupla referenciada y las tuplas que la referenciaban ponen a nulo la clave foranea (sólo si acepta nulos).
3.- Regla de modificación: ¿Qué ocurre si se intenta modificar el valor de la clave primaria de la tupla referenciada por la clave foranea?
- Restringir: no se permite modificar el valor de la clave primaria de la tupla referenciada.
- Propagar (cascada): se modifica el valor de la clave primaria de la tupla referenciada y se propaga la modificación a las tuplas que la referencian mediante la clave foranea.
- Anular: se modifica la tupla referenciada y las tuplas que la referenciaban ponen a nulo la clave foranea (sólo si acepta nulos).
Reglas de negocio: además de las dos reglas de integridad anteriores, los usuarios o los
administradores de la base de datos pueden imponer ciertas restricciones específicas sobre los datos, denominadas reglas de negocio.
Por ejemplo, si en una oficina de la empresa inmobiliaria sólo puede haber hasta veinte empleados, el SGBD debe dar la posibilidad al usuario de definir una regla al respecto y debe hacerla respetar. En este caso, no debería permitir dar de alta un empleado en una oficina que ya
tiene los veinte permitidos.
Fuentes:
http://www.dataprix.com/431-restriccion
http://carlos-perezlo.blogspot.com/2009/07/resumen-modelo-relacional.html