Restricciones semánticas
- Son definidas por el usuario
- Son facilidades que el modelo ofrece a los diseñadores para que puedan reflejar en el esquema, lo mas fielmente posible, la semántica del mundo real.
- Los tipos de restricciones semánticas permitidos en el MR(modelo relacional)
- Clave Primaria (primary key)
- No acepta valores nulos o repetidos
- Unicidad (unique)
- No necesita identificar nada pero ha de ser único
- Obligatoriedad (not null)
- Integridad Referencial (foreing kay)
- Cuando un valor esta repetido en dos tablas se cambie en ambas
- Verificación (check)
- La comprobación para asegurarse que este entre x valores. Se puede hacer a nivel de columna
- Aserción (create assertion)
- Realiza la misma función que la anterior pero afecta a varias tablas
- Disparador (trigger)
Clave primaria
Permite declarar un atributo o conjunto de atributos como clave primaria de una relación
se debe distinguir entre restricción inherente de obligatoriedad y la restricción semántica
Unicidad
Los valores de un conjunto de atributos Permiten claves alternativa
Obligatoriedad
El conjunto de atributos no admite valores nulos
Restricciones semánticas: Foreing key
Integridad referencial
Esta compuesta por una relación R2 con un descriptor CA que hace referencia a un CC de R1
CA y CC han de coincidir o ser nulos.
Condiciones
- El descriptor CA es, por tanto, una clave ajena de la relación R2
- No es obligatorio que R1!=R2
- La clave puede ser la parte o la totalidad de la clave primaria de R2
Claves ajenas(restricciones)CA
- No action: Rechaza la operación de borrado o modificación.
- Cascade: Propagar la información de las tuplas de las tablas a la que hace referencia.
- Set null: Poner un valor nulo en la clave ajena de la tabla a la que hace referencia.
- Set default: Poner el valor por defecto en la clave ajena de la tabla a la que hace referencia.
Restricciones semánticas: Verificación
Check
Comprueba, en toda operación de actualización, si el predicado es cierto o falso y en este ultimo caso rechaza la información.
Assertion
Actúa igual que el anterior pero puede afectar a varios elementos
Trigger
Restricción en la que el usuario pueda especificar la respuesta (acción) ante una determinada acción
Valores nulos
- Un valor nulo se especifica cuando desconozco un valor en una tabla.
- Crean tuplas con valores desconocidos en ese momento.
- Añadir un nuevo atributo a una relación existente.
- Atributos inaplicables a cierta tuplas.
Las reglas Codd
- Representación de la información: Toda la información en la Base de datos es representada de forma explícita y única a nivel lógico, por medio de valores en columnas de filas de tablas.
- Acceso garantizado: Todo dato (valor atómico) debe ser accesible mediante una combinación de tabla, un valor de su clave y el nombre de una columna.
- Tratamiento sistemático de valores nulos: El SGBD debe soportar la representación y manipulación de información desconocida y/o no aplicable, independientemente del tipo de dato.
- Catálogo en línea (diccionario de datos) basado en el modelo relacional. La descripción de la base de datos se debe representar en el nivel lógico de la misma manera que los datos ordinarios, de forma que los usuarios autorizados puedan consultarla con el mismo lenguaje con el que consultan los datos.
- Sublenguaje de datos completo: El SGBD debe soportar al menos un lenguaje relacional:
- a) con sintaxis lineal.
- b) que pueda ser usado interactivamente o en programas (embebido).
- c) con soporte para operaciones de:
- definición de datos (p.e. declaración de vistas).
- manipulación de datos (p.e. recuperación y modificación de tuplas).
- restricciones de seguridad e integridad.
- gestión de transacciones.
- Actualización de vistas: todas las vistas teóricamente actualizables deben poder serlo en la práctica.
- Inserción, modificación y borrado de tuplas de alto nivel: todas las operaciones de manipulación de datos deben operar sobre conjuntos de filas.
- Independencia física de los datos: cambios en los métodos de acceso físico o la forma de almacenamiento no deben afectar al acceso lógico a los datos.
- Independencia lógica de los datos: los programas de aplicación no deben ser afectados por cambios en las tablas que preservan la integridad.
- Independencia de la integridad: Las restricciones de integridad deben estar separadas de los programas, almacenadas en el catálogo de la BD para ser editadas mediante un sublenguaje de datos.
- Independencia de la distribución: Las aplicaciones no deben verse afectadas al distribuir (dividir entre varias máquinas), o al cambiar la distribución ya existente de la Base de Datos.
- Regla de no subversión: Si el sistema posee un interfaz de bajo nivel (p.e. mediante llamadas en C), éste no puede utilizarse para saltarse las reglas de integridad y las restricciones expresadas por medio de un lenguaje de más alto nivel.
No hay comentarios:
Publicar un comentario