miércoles, 14 de noviembre de 2012

Integridad y Concurrencia

Integridad

La integridad en una base de datos es la corrección y exactitud de la información que posee la misma. Además de ello, busca la seguridad en un sistema de bases de datos que permita el acceso a múltiples usuarios en tiempos paralelos.

Las condiciones que garantizan la integridad de los datos pueden ser de dos tipos:
  • Las restricciones de integridad de usuario: son condiciones específicas de una base de datos concreta que se deben cumplir con unos usuarios concretos.
  • Las reglas de integridad de modelo: son condiciones propias de un modelo de datos, y se deben cumplir en toda base de datos que siga dicho modelo.

Los SGBD deben proporcionar la forma de definir las restricciones de integridad de usuario de una base de datos y una vez definida, procurar que se cumplan. Las reglas de integridad del modelo, en cambio, no se deben definir para cada base de datos concreta, porque se consideran preestablecidas para todas las base de datos de un modelo.

Reglas de Integridad.-

Regla de integridad de unicidad de la clave primaria
Hace referencia a que los valores de una clave primaria no pueden repetirse entre los atributos de una misma tabla.
Regla de integridad de entidad de la clave primaria
La regla de integridad de entidad de la clave primaria dispone que los atributos de la clave primaria de una relación no puede tener valores nulos.
Regla de integridad referencial
La regla de integridad referencial está relacionada con el concepto de clave foránea, lo que determina que todos los valores que toma una clave foránea deben ser valores nulos o valores que existen en la clave primaria que referencia.
Restricción
La restricción en caso de borrado, consiste en no permitir borrar una tupla si tiene una clave primaria referenciada por alguna clave foránea y la restricción en caso de modificación consiste en no permitir modificar ningún atributo de la clave primaria de una fila si tiene una clave primaria representada por alguna clave foránea.
Actualización en cascada
La actualización en cascada consiste en permitir la operación de actualización de la tupla, y en efectuar operaciones que propaguen en cascada la actualización a las tuplas que la referenciaban; se actúa de este modo para mantener la integridad referencial.
Anulación
La anulación consiste en permitir la operación de actualización de la tupla y en efectuar operaciones que pongan valores nulos a los atributos de la clave foránea de las tuplas que la referencian; esta acción se lleva a cabo para mantener la integridad referencial.

Concurrencia

El termino concurrencia se refiere al hecho de que los DBMS (SISTEMAS DE ADMINISTRACION DE BD) permiten que muchas transacciones puedan realizarse en una misma base de datos a la vez. Para este sistema se necesita algún mecanismo de control para que las operaciones simultáneas no interfieran entre sí.


Métodos de control de concurrencia

Protocolos basados en técnicas de bloqueo
Un bloqueo es una operación usada para restringir las operaciones que se pueden aplicar sobre la base de datos. Existen varios tipos de bloqueo: binarios, compartidos, exclusivos, y bloqueos de certificación.
Bloqueos binarios
Poseen dos valores posibles, bloqueados y desbloqueados. Cada elemento de la base de datos tiene un bloqueo distinto. El bloqueo señala si una transacción está en ejecución sobre el elemento o está libre para que se pueda operar con él.
Bloqueos de lectura/escritura
Puede tener tres posibles posiciones: libre, bloqueado para lectura, y bloqueado para escritura. De esta forma, más de una transacción puede tener un mismo elemento de datos bloqueado para lectura, pero sólo una para escritura.
Problemas del bloqueo en dos fases: interbloqueo y espera indefinida
El interbloqueo se produce cuando una transacción T1 está esperando a algún elemento que está bloqueado por otra transacción T2. De esta forma, cada transacción está parada en espera a que otra transacción libere el recurso.
  • Exclusión mutua.- Cada elemento está bloqueado o está libre por una transacción.
  • Retención y espera.- Una transacción que ya ha bloqueado elementos puede solicitar un elemento adicional, y esperar que se le asigne, sin habilitar ninguno de los elementos anteriores.
  • No apropiación.- La transacción sólo puede liberar un elemento que tenga asignado; no se lo puede quitar a otra transacción que tenga mayor prioridad.
  • Espera circular.- Existe una cadena circular, compuesta por dos transacciones o más, y otros tantos elementos intercalados, de manera que cada proceso está esperando que se le asigne un elemento, el cual, a su vez, está asignado al siguiente proceso de la cadena.
  • Bloqueo mutuo o deadlock.- Un proceso se encuentra en estado de deadlock si está esperando por un suceso que no ocurrirá nunca.

3 comentarios: