ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Integridad De Datos


Enviado por   •  30 de Noviembre de 2012  •  3.068 Palabras (13 Páginas)  •  713 Visitas

Página 1 de 13

Integridad de datos

El término integridad de datos se refiere a la corrección y completitud de los datos en una base de datos. Cuando los contenidos se modifican con sentencias INSERT, DELETEo UPDATE, la integridad de los datos almacenados puede perderse de muchas maneras diferentes. Pueden añadirse datos no válidos a la base de datos, tales como un pedido que especifica un producto no existente.

Pueden modificarse datos existentes tomando un valor incorrecto, como por ejemplo si se reasigna un vendedor a una oficina no existente. Los cambios en la base de datos pueden perderse debido a un error del sistema o a un fallo en el suministro de energía. Los cambios pueden ser aplicados parcialmente, como por ejemplo si se añade un pedido de un producto sin ajustar la cantidad disponible para vender.

Una de las funciones importantes de un DBMS relacional es preservar la integridad de sus datos almacenados en la mayor medida posible.

[editar]Tipos de restricciones de integridad

Datos Requeridos: establece que una columna tenga un valor no NULL. Se define efectuando la declaración de una columna es NOT NULL cuando la tabla que contiene las columnas se crea por primera vez, como parte de la sentencia CREATE TABLE.

Chequeo de Validez: cuando se crea una tabla cada columna tiene un tipo de datos y el DBMS asegura que solamente los datos del tipo especificado sean ingresados en la tabla.

Integridad de entidad: establece que la clave primaria de una tabla debe tener un valor único para cada fila de la tabla; si no, la base de datos perderá su integridad. Se especifica en la sentencia CREATE TABLE. El DBMS comprueba automáticamente la unicidad del valor de la clave primaria con cada sentencia INSERT Y UPDATE. Un intento de insertar o actualizar una fila con un valor de la clave primaria ya existente fallará.

Integridad referencial: asegura la integridad entre las llaves foráneas y primarias (relaciones padre/hijo). Existen cuatro actualizaciones de la base de datos que pueden corromper la integridad referencial:

La inserción de una fila hijo se produce cuando no coincide la llave foránea con la llave primaria del padre.

La actualización en la llave foránea de la fila hijo, donde se produce una actualización en la clave ajena de la fila hijo con una sentencia UPDATE y la misma no coincide con ninguna llave primaria.

La supresión de una fila padre, con la que, si una fila padre -que tiene uno o más hijos- se suprime, las filas hijos quedarán huérfanas.

La actualización de la llave primaria de una fila padre, donde si en una fila padre, que tiene uno o más hijos se actualiza su llave primaria, las filas hijos quedarán huérfanas.

Integridad de datos SQL

Al almacenar datos en las tablas se pueden ajustar a una serie de restricciones predefinidas, por ejemplo: que una columna no pueda tener valores negativos, que una cadena de caracteres se deba almacenar en mayusculas, que el valor de una columna no pueda ser 0. La integridad hace referencia a que los datos de la bd han de ajustarse a una serie de restricciones antes de almacenar. Asi pues, una restricción de integridad sera una regla que restringe el rango de valores para una o mas columnas de una tabla

Concurrencia

El ejemplo más común de un bloqueo mutuo es cuando un recurso A está siendo utilizado por una transacción A que a su vez solicita un recurso B que está siendo utilizado por una transacción B que solicita el recurso A. Entre los ejemplos específicos para las bases de datos distribuidas podemos destacar::

[editar]Control de concurrencia

El problema de las actualizaciones perdidas: cuando dos transacciones concurrentes borran el efecto una de la otra

Recuperaciones inconsistentes: acceder a información modificada parcialmente por una transacción de Ian.

[editar]Soluciones

El control de concurrencia y detección y manejo de bloqueos es un área de mucho estudio en las bases de datos distribuidas, a pesar de esto no hay ningún algoritmo aceptado para solucionar el problema. Esto se debe a varios factores de los cuales se consideran a los siguientes tres los más determinantes:

La data puede estar duplicada en un BDD, por tanto, el manejador de la BDD es responsable de localizar y actualizar la data duplicada.

Si un nodo falla o la comunicación con un nodo falla mientras se realiza una actualización, el manejador debe asegurarse de que los efectos se reflejen una vez el nodo se recupere del fallo.

La sincronización de transacciones en sitios o nodos múltiples es difícil ya que los nodos no pueden obtener información inmediata de las acciones realizadas en otros nodos concurrentemente.

Para el control de bloqueos mutuos no se ha desarrollado ninguna solución viable y la forma más simple y que la mayoría de productos utilizan es la implementación de un tiempo máximo de espera en las peticiones de bloqueos.

Causa de estas dificultades más de 20 algoritmos de control de concurrencia se han propuesto en el pasado, y aun así siguen apareciendo nuevos. Una revisión bibliográficamuestra que la mayoría de los algoritmos son variantes del 2PL (2-phase locking o bloqueo de dos fases) o el algoritmo de time-stamp. A continuación se explican estos dos algoritmos básicos.

[editar]Bloqueo de dos fases (2PL)

El algoritmo 2PL utiliza bloqueos de lectura y escritura para prevenir conflictos entre operaciones. Consiste en los siguientes pasos para una transacción T:

Obtiene bloqueo de lectura para un elemento L (bloqueo compartido)

Obtiene bloqueo de escritura para un elemento E (bloqueo exclusivo)

Lee el elemento L

Escribe en el elemento E

Libera el bloqueo de L

Libera el bloqueo de E

Las reglas básicas para manejar los bloqueos son: transacciones distintas no pueden tener acceso simultáneamente a un elemento (lectura-escritura o escritura-escritura), y una vez se libere un bloqueo no se puede pedir otro, es decir, los bloqueos de la transacción crecerán mientras no libere ninguno y luego de liberar alguno solo puede liberar los demás.

Ejemplos del algoritmo 2PL son

La básica en la que se sigue el esquema previamente explicado con la variante que el bloqueo de escritura se pide para todas las copias del elemento.

2PL de copia primaria: en vez de pedir bloqueo para cada copia del elemento de escritura se le pide a una copia primaria o principal.

2PL de voto: se pide a todos los nodos que voten para ver si se concede el bloqueo.

2PL centralizado: el manejador de bloqueos está centralizado y todas las peticiones de bloqueo las maneja el.

Antes de implementar un algoritmo de control de concurrencia 2PL es necesario considerar distintos factores

...

Descargar como (para miembros actualizados) txt (19 Kb)
Leer 12 páginas más »
Disponible sólo en Clubensayos.com