Restricciones de integridad en el modelo relacional Paul Leger http://pleger.cl
Restricciones de integridad La integridad de una base de datos es crucial para confiar en su información Algunos ejemplos de errores de integridad: Sueldo negativo Una persona tenga 100 dependientes Una persona viva en una ciudad que no existe
Tres Tipos de Restricciones Dominio Primary Key Foreign Key
Restricciones de Dominio Un atributo tiene un dominio: Numerico String fijo o variable Fecha Boolean (este generalmente se evita? Cómo? Nulo? Pero hay otras restricciones de dominios (conocidas como «restricciones semánticas») que podrían existir: Sueldo (positive integer)
Restricciones de primary key La clave primaria de tupla/registro debe ser diferente a otra (es decir, pk(t1) != pk(t2)) No puede ser nula
Restricciones de foreign key Toda foreign key (si no es nula) debe existir en la tabla de origen Debe contener el mismo dominio Una foreign key podría ser nula ¿Cuándo no puede ser nula?
Restricciones en operaciones: Insertar Puede quebrar las integridades de dominio, primary key y foreign key El dato al ser insertado puede repetir la clave primaria o ser nula esta Los dominios pueden estar incorrectos Foreign key puede referenciar a una tupla que no existe en otra tabla
Soluciones para la inserción Rechazar la inserción Ofrecer corregir la inserción En caso de una clave externa no exista, pedir insertarla. Esto puede ser de manera recursiva (no es buena idea)
Restricciones en operaciones: Borrar Borrar una tupla que puede ser referenciada por otra tupla de otra tabla (o la misma) No hay otros problemas de restricciones de integridad Soluciones: Rechazar Borrar de manera recursiva Modificar los valores de las tuplas que referenciaba a tupla que se desea eliminar (ej. cambiarlos nulos) ¿Cuándo esto no se puede usar?
Restricciones en operaciones: Modificar Si no se modifica la clave primaria y externa, solo hay preocuparse del dominio del atributo Si se modifica la clave primaria o externa, esto puede generar los mismos problemas de eliminar e insertar ¿Por qué? Soluciones son las mismas aplicadas a eliminar e insertar
Consultas