Restricciones.

Definir los tipos de restricciones de integridad y referenciales en una base de datos, elabore una base de datos y aplic

Views 169 Downloads 2 File size 1MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Definir los tipos de restricciones de integridad y referenciales en una base de datos, elabore una base de datos y aplicar una restriccion por campo Definir el DDL (Lenguaje de Definicion de datos); de la base de datos elaborada anteriormente explicar cómo se implementó mediante las DDL

Restricciones.-Una restricción es una condición que obliga el cumplimiento de ciertas condiciones en la base de datos. Restricciones de Integridad.-Las restricciones de integridad proporcionan un medio de asegurar que las modificaciones hechas a la base de datos por los usuarios autorizados no provoquen la pérdida de la consistencia de los datos. Por tanto, las restricciones de integridad protegen a la base de datos contra los daños accidentales. Tipo de restricciones de integridad       

Declaración de claves. Cardinalidad de la relación - de varios a varios, de uno a varios, de uno a uno. Restricciones de los dominios Integridad referencial Asertos Disparadores Dependencias

Restricciones de dominio Una definición adecuada de las restricciones de los dominios permite verificar los valores introducidos en la base de datos También permite examinar las consultas para asegurarse de que tengan sentido las comparaciones que hagan. El principio subyacente a los dominios de los atributos es similar al de los tipos de las variables en los lenguajes de programación. Los lenguajes de programación con tipos estrictos permiten al compilador examinar el programa con mayor detalle. Se ha visto que hay que asociar a cada atributo un dominio de valores posibles. En un tema anterior se vieron varios tipos de dominios estándar, tales como los enteros, caracteres y fecha/tiempo en SQL. La declaración de que un atributo pertenezca a un determinado dominio actúa como una restricción sobre los valores que puede tomar. La cláusula CREATE DOMAIN se puede usar para definir nuevos dominios. Ejemplo, las instrucciones





 

CREATE DOMAIN Euros NUMERIC(12,2) CREATE DOMAIN Dólares NUMERIC(12,2) o Definen los dominios Euros y Dólares como números decimales con un total de 12 dígitos, dos de los cuales se sitúan después de la coma decimal. o Un intento de asignar un valor de tipo Dólares a una variable de tipo Euros resultaría en un error sintáctico, aunque ambos tengan el mismo tipo numérico. La declaración de diferentes dominios para diferentes monedas ayuda a detectar errores. Los valores de un dominio se pueden convertir a otro dominio. Si el atributo A de la relación r es de tipo Euros, se puede convertir a Dólares escribiendo: CAST r.A AS Dólares _La cláusula CHECK de SQL permite restringir los dominios de maneras poderosas que no permiten la mayor parte de los sistemas de tipos de los lenguajes de programación.  _Permite al diseñador del esquema especificar un predicado que debe satisfacer cualquier valor asignado a una variable cuyo tipo sea el dominio. _ Las condiciones check complejas pueden ser útiles cuando se desee asegurar la integridad de los datos, pero se deben usar con cuidado, dado que pueden ser costosas de comprobar.



Dentro de las restricciones de dominio, un tipo especial de restricción que se puede aplicar a cualquier dominio es la restricción de existencia.



Esta restricción evita la aparición de valores nulos en las columnas.

Nulos.- NULL es un valor especial que indica que es un valor desconocido

 No se tiene en cuenta cuando se usan funciones de columna (AVG, SUM, MIN, MAX) excepto COUNT

 Dos nulos no se consideran iguales, salvo para: o GROUP BY, ORDER BY o Unicidad de columna a menos que se utilice UNIQUE WHERE NOT NULL  NULL + 7 = NULL Nulos.- Al definir una columna se puede elegir entre: Admitir nulos (por omisión) No admitirlos (Columna tipo NOT NULL ) Establecer valores por defecto (Campo DEFAULT informado)

Restricciones de unicidad  

Otro tipo especial de restricción que se puede aplicar a cualquier dominio es la restricción de unicidad (superclave). Esta restricción evita la aparición de valores duplicados en las columnas.

Integridad referencial.-

La integridad referencial permite asegurar que un valor que aparece en una relación para un conjunto de atributos determinado aparezca también en otra relación para un cierto conjunto de atributos. Existen SGBD que permiten la utilización de secuencias para generación automática de valores, por ejemplo en Oracle:

El SGBD garantiza que sólo se puede actualizar una clave primaria (PRIMARY KEY) o única (UNIQUE KEY) si no hay ninguna clave externa (FOREIGN KEY) que dependa de ella.   



¿Qué pasa cuando borramos una clave que es referenciada por una clave ajena? Se puede establecer cómo gestionar las relaciones cuando se producen operaciones como borradas o actualización. La creación estaría controlada si el SGBD no deja crear filas para las que no exista una clave ajena definida.

CASCADE: Borra o actualiza la fila de la tabla padre y automáticamente borra o actualiza las filas asociadas en la tabla hija  SET NULL: Borra o actualiza la fila de la tabla padre y establece la clave ajena en la tabla hija como NULL. Las columnas de clave ajena en la fila hija no deberían estar definidas como NOT NULL  NO ACTION: Evita que se actualice o borre la fila en la tabla padre si hay un valor de clave ajena que lo invalida en la tabla hija.  RESTRICT: Rechaza el borrado o actualización en la tabla padre (similar a NO ACTION)

Asertos.- Un aserto es un predicado que expresa una condición que se desea que la base de datos satisfaga siempre. Las restricciones de dominio y las de integridad referencial son formas especiales de los asertos. Sin embargo, hay muchas restricciones que no se pueden expresar utilizando únicamente estas formas especiales. Ejemplos de estas restricciones pueden ser

La suma de todos los importes de los préstamos de cada sucursal debe ser menor que la suma de todos los saldos de las cuentas de esa sucursal. Cada préstamo tiene al menos un cliente que tiene una cuenta con un saldo mínimo de 1200 Euros. En SQL-92 los asertos adoptan la forma:  create assertion check

  

Cuando se crea un aserto el sistema comprueba su validez. Si el aserto es válido, sólo se permiten las modificaciones posteriores de la base de datos que no hagan que se viole el aserto. Esta comprobación puede introducir una sobrecarga importante si se han realizado asertos complejos.

Disparadores.-

Un disparador es una orden que el sistema ejecuta de manera automática como efecto secundario de la modificación de la base de datos. Los disparadores son mecanismos útiles para alertar a los usuarios o para realizar de manera automática ciertas tareas cuando se cumplen determinadas condiciones. Se almacenan en la base de datos como si fueran datos normales, persistentes y accesibles para las operaciones de la base de datos.

 

   

Para diseñar un disparador es necesario: Especificar las condiciones en las que se va a ejecutar el disparador: o Evento que provoca la comprobación del disparador o Una condición que se debe cumplir para que se ejecute el disparador Especificar las acciones que se van a realizar cuando se ejecute el disparador Siguen el modelo evento-condición-acción Los disparadores están asociados a operaciones sobre las filas de las tablas o vistas de la base de datos. Cuando se realiza una operación de inserción, modificación o borrado, el SGBD detecta si hay algún disparador asociado que se ha de ejecutar