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

Integridad De Datos

kerlyndejesus30 de Noviembre de 2012

3.068 Palabras (13 Páginas)730 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 como cual es la unidad atómica más pequeña que el sistema permite bloquear, cual es el intervalo de sincronización para todas las copias de un elemento, donde se deben colocar las tablas con la información de los bloqueos y por último que tan probable es que ocurra por los factores anteriores un bloqueo mutuo.

[editar]Time-stamp

Cada transacción realizada se le asigna un timestamp (literalmente: sello de tiempo) único en el nodo que se originó. Este sello se adjunta a cada petición de lectura y escritura. En el caso de que se dé un conflicto de que dos operaciones de escritura traten de acceder al mismo elemento, este se resuelve serializandolo respecto a los sellos que tengan. A pesar de que existen varios algoritmos de control de concurrencia basados en timestamps, muy pocos son utilizados en aplicaciones comerciales. Esto es en gran parte porque se requiere que el sistema distribuido cuente con un reloj sincronizado que es raro que se tenga implementado.

Recuperación de datos

Recuperación de datos es el proceso de restablecer la información contenida en dispositivos de almacenamiento secundarios dañados, defectuosos, corruptos, inaccesibles o que no se pueden acceder de forma normal. A menudo la información es recuperada de dispositivos de almacenamiento tales como discos duros, cintas, CD, DVD, RAID y otros dispositivos electrónicos. La recuperación puede ser debido a un daño físico en el dispositivo de almacenamiento o por un daño lógico en el sistema de archivos que evita que el dispositivo sea accedido desde el sistema operativo.

El escenario más común de "recuperación de datos" involucra una falla en el sistema operativo (típicamente de un solo disco, una sola partición, un solo sistema operativo), en este caso el objetivo es simplemente copiar todos los archivos requeridos en otro disco. Esto se puede conseguir fácilmente con un Live CD, la mayoría de los cuales provéen un medio para acceder al sistema de archivos, obtener una copia de respaldo de los discos o dispositivos removibles, y luego mover los archivos desde el disco hacia el respaldo con un administrador de archivos o un programa para creación de discos ópticos. Estos casos pueden ser mitigados realizando particiones del disco y continuamente almacenando los archivos de información importante (o copias de ellos) en una partición diferente del de la de los archivos de sistema en el sistema operativo, los cuales son reemplazables.

Otro escenario involucra una falla a nivel de disco, tal como un sistema de archivos o partición de disco que esté comprometido, o una falla en el disco duro. En cualquiera de estos casos, los datos no pueden ser fácilmente leidos. Dependiendo de la situación, las soluciones pueden estar entre reparar el sistema de archivos, la tabla de particiones o el registro maestro de cargado (MBR), o técnicas de recuperación del disco duro que van desde la recuperación

...

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