Concurrencia de Datos

13

Click here to load reader

description

descripción de datos...

Transcript of Concurrencia de Datos

Page 1: Concurrencia de Datos

Prof. Esp. Raul Ramones

Concurrencia De Datos.

La concurrencia es un fenómeno que se presenta en varios contextos. Uno de ellos es la

multiprogramación ya que el tiempo del procesador es compartido dinámicamente por varios

procesos. Otro caso son las aplicaciones estructuradas, donde la programación estructurada se

implementa como un conjunto de procesos concurrentes. Y por último se tiene que la misma

estructuración recién mencionada es utilizada en el diseño de los sistemas operativos los cuales se

implementan como un conjunto de procesos.

El termino concurrencia se refiere al hecho de que los DBMS (SISTEMAS MANEJADORES DE

BASES DE DATOS) permiten que muchas transacciones puedan accesar a una misma base de

datos a la vez. En un sistema de estos se necesitan algún tipo de mecanismos de control de

concurrencia para asegurar que las transacciones concurrentes no interfieran entre sí.

En sistemas multiusuario, es necesario un mecanismo para controlar la concurrencia. Se pueden

producir inconsistencias importantes derivadas del acceso concurrente, como por ejemplo, el

problema de la operación perdida.

El control de transacciones concurrentes en una base de datos brinda un eficiente desempeño del

Sistema de Base de Datos; puesto que permite controlar la ejecución de transacciones que operan en

paralelo, accesando a información compartida y, por lo tanto, interfiriendo potencialmente unas con

otras. Ejemplo: El hecho de reservar un asiento en una avión mediante un sistema basado en

aplicaciones web, cuando decenas de personas en el mundo pueden reservarlo también, nos da una

idea de lo importante y crucial que es el control de concurrencia en un sistema de base de datos a

mediana o gran escala.

Otro ejemplo en el que podemos observar la incidencia del control de concurrencia en el siguiente: en

una Base de Datos bancaria podría ocurrir que se paguen dos cheques en forma simultánea sobre

una cuenta que no tiene saldo suficiente para cubrirlos en su totalidad, esto es posible evitarlo si se

tiene un control de concurrencia.

TRANSACCIONES

Los sistemas que tratan el problema de control de concurrencia permiten que sus usuarios asuman

que cada una de sus aplicaciones se ejecutan automáticamente como si no existieran otras

aplicaciones ejecutándose concurrentemente.

Page 2: Concurrencia de Datos

Prof. Esp. Raul Ramones

Esta abstracción de una ejecución atómica y confiable de una aplicación se conoce como una

transacción.

Un algoritmo de control de concurrencia asegura que las transacciones se ejecuten automáticamente

controlando la intercalación de transacciones concurrentes, para dar la ilusión de que las

transacciones se ejecutan serialmente, una después de la otra, sin ninguna intercalación. Las

ejecuciones intercaladas cuyos efectos son los mismos que las ejecuciones seriales son

denominadas serializables y son correctos ya que soportan la ilusión de la atomicidad de las

transacciones.

El concepto principal es el de transacción. Informalmente; una transacción es la ejecución de ciertas

instrucciones que accesan a una base de datos compartida. El objetivo del control de concurrencia y

recuperación es asegurar que dichas transacciones se ejecuten atómicamente, es decir:

Cada transacción accede a información compartida sin interferir con otras transacciones, y si una

transacción termina normalmente, todos sus efectos son permanentes, en caso contrario no tiene

afecto alguno.

Una base de datos está en un estado consistente si obedece todas las restricciones de integridad

(significa que cuando un registro en una tabla haga referencia a un registro en otra tabla, el registro

correspondientes debe existir) definidas sobre ella.

Los cambios de estado ocurren debido a actualizaciones, inserciones y supresiones de información.

Por supuesto, se quiere asegurar que la base de datos nunca entre en un estado de inconsistencia.

Sin embargo, durante la ejecución de una transacción, la base de datos puede estar temporalmente

en un estado inconsistente.

El punto importante aquí es asegurar que la base de datos regresa a un estado consistente al fin de

la ejecución de una transacción.

Page 3: Concurrencia de Datos

Prof. Esp. Raul Ramones

PROPIEDADES FUNDAMENTALES DE UNA TRANSACCIÓN:

1. Atomicidad Se refiere al hecho de que una transacción se trata como una unidad de

operación.

2. Por lo tanto, o todas las acciones de la transacción se realizan o ninguna de ellas se lleva a

cabo. La atomicidad requiere que si una transacción se interrumpe por una falla, sus

resultados parciales sean anulados.

3. Consistencia La consistencia de una transacción es simplemente su correctitud. En otras

palabras, una transacción es un programa correcto que lleva a la base de datos de un estado

consistente a otro con la misma característica. Debido a esto, las transacciones no violan las

restricciones de integridad de una base de datos.

4. Aislamiento Una transacción en ejecución no puede revelar sus resultados a otras

transacciones concurrentes antes de finalizar.

5. Más aún, si varias transacciones se ejecutan concurrentemente, los resultados deben ser los

mismos que si ellas se hubieran ejecutado de manera secuencial.

6. Permanencia Es la propiedad de las transacciones que asegura que una vez que una

transacción finaliza exitosamente, sus resultados son permanentes y no pueden ser borrados

de la base de datos por alguna falla posterior.

7. Por lo tanto, los sistemas manejadores de base de datos aseguran que los resultados de una

transacción sobrevivirán a fallas del sistema. Esta propiedad motiva el aspecto de

recuperación de base de datos, el cual trata sobre cómo recuperar la base de datos a un

estado consistente donde todas las acciones que han finalizado con éxito queden reflejadas

en la base.

8. En esencia, lo que se persigue con el procesamiento de transacciones es, por una parte

obtener una transparencia adecuada de las acciones concurrentes a una base de datos y por

otra, manejar adecuadamente las fallas que se puedan presentar en una base de datos.

Page 4: Concurrencia de Datos

Prof. Esp. Raul Ramones

El procesamiento de transacciones representa una enorme y significativa porción del mercado de los

sistemas informáticos además, se ha convertido en el elemento que facilita el comercio electrónico.

Integridad de los Datos

Integridad: conjunto de seguridades que son utilizadas para mantener los datos correctos. Ocurre

cuando no existe a través de todo el sistema procedimientos uniformes de validación para los datos.

Fuente de Error: estas fuentes de error se originan si el programa de entrada de datos no está

validado. Ejemplo: fallas del hardware, actualizaciones incompletas, defectos del software, inserción

de datos no válidos, errores humanos, entre otros. Una técnica que usa el BDMS de una entrada de

datos no válida es la validación.

Validación: es proteger los datos, validar los datos en la entrada de datos. Existen tipos de

validaciones:

Tipo de Dato: es si se define un campo como carácter ó char y no puede ingresar números

enteros.

Valor de Dato: si se define un valor entero se puede especificar un rango y no se puede pasar

de ese valor.

Valores Claves / No Nulos: asegura registros únicos y cuyos valores no sean nulos.

Integridad Referencial: asegura al DBMS que no exista registros hijos sin sus registros padres

correspondientes.

Control de Concurrencia ó Simultaneidad

Se da en ambiente multi-usuario, tratando de acceder a un objeto de datos al mismo tiempo.

Ocurre cuando el sistema es multiusuario y no se establecen los controles adecuados para

sincronizar los procesos que afectan a la base de datos. Comúnmente se refiere a la poca o nula

efectividad de los procedimientos de bloqueo

Granularidad: que es el tamaño de las unidades aseguradas. Ejemplo: la granularidad puede proteger

un campo, un registro, un archivo, entre otros.

Page 5: Concurrencia de Datos

Prof. Esp. Raul Ramones

Dead-look(Bloqueo): es la técnica que evita errores de concurrencia, se da cuando se desarrolla una

espera circular entre dos transacciones y cada una de estas solicita una actualización sobre el mismo

archivo, no permite a otros usuarios el recurso hasta que termine el proceso, se da la espera circular.

Recuperación de Datos

La restauración de la Base de Datos a su estado normal es responsabilidad del Administrador de

Base de Datos (DBA), quien es el responsable de implantar procedimientos de detección de error y

recuperación.

El DBA es quien tiene el control centralizado de la base de datos. Se persigue con esto reducir el

número de personas que tengan acceso a los detalles técnicos y de diseño para la operación del

DBMS.

Las soluciones principales de un DBA son:

a. DEFINICION DEL ESQUEMA.- Crea el esquema original de la base de datos y genera el

diccionario de datos por medio de proposiciones en DDL.

b. DEFINICION DE ESTRUCTURAS DE ALMACENAMIENTO Y METODOS DE ACCESO.- Se

encarga de generar a seleccionar estructuras para el medio secundario y definir los métodos

de acceso a la información, esto último por medio de proposiciones en DML.

c. MODIFICACION DE ESQUEMA Y ORGANIZACIÓN.- Es una actividad poco frecuente que

consiste en rediseñar el esquema de la base de datos. Esto se haría necesario ante la

modificación abrupta de las condiciones originales que dieron pie al diseño del esquema

primario. Las proposiciones para llevar a cabo esta tarea se realizan en DDL.

Page 6: Concurrencia de Datos

Prof. Esp. Raul Ramones

d. CONCESION DE AUTORIZACIONES DE ACCESO.- Se encarga de registrar a los usuarios

para permitir su acceso al DBMS. Asigna a cada uno de ellos una serie de atributos que le

permiten gozar de privilegios como el acceso a determinadas áreas de aplicación, de los datos

o del uso de recursos en el sistema.

e. ESPECIFICACION DE LAS LIMITANTES DE INTEGRIDAD.- Crea una serie de tablas donde

se especifica el conjunto de restricciones que serán aplicables durante los procesos de

actualización

Lenguaje de definición de datos (DDL: Data Definition Language): Sencillo lenguaje artificial para

definir y describir los objetos de la base de datos, su estructura, relaciones y restricciones. En la

práctica puede consistir en un subconjunto de instrucciones de otro lenguaje informático. Aparte suele

poseer dos subconjuntos de instrucciones:

Lenguaje de definición del almacenamiento de los datos (DSDL: Data Storage Definition

Language): permite especificar características físicas de la base de datos (volúmenes y

archivos donde van a ser almacenados los datos, entre otros).

Lenguaje de control de datos (DCL: Data Control Language): encargado del control y

seguridad de los datos (privilegios y modos de acceso, entre otros).

Lenguaje de manipulación de datos (DML: Data Manipulation Language): Es un Lenguaje

artificial de cierta complejidad que permite el manejo y procesamiento del contenido de la base de

datos. En la práctica puede consistir en un subconjunto de instrucciones de otro lenguaje informático.

Las aplicaciones que trabajan sobre la base de datos se programan en un lenguaje de programación

(C, Cobol, ...) insertando en el código fuente sentencias del DML. Al utilizar un DML se deben

especificar los datos que serán afectados por las sentencias del lenguaje. Un DML puede tener o no

procedimientos, según sea necesario especificar además cómo deben obtenerse esos datos. Los

DML con procedimientos tienen sentencias de control de flujo como bucles o condicionales. Los DML

sin procedimientos son conocidos también como declarativos.

El procesamiento de transacciones es una de las tareas más importantes dentro de un sistema de

base de datos, pero a la vez; es una de las más difíciles de manejar debido a diversos aspectos, tales

como:

1. La mayoría de medianas y grandes compañías modernas utilizan el procesamiento de

transacciones para sus sistemas de producción, y es tan imprescindible que las

organizaciones no pueden funcionar en ausencia de él.

Page 7: Concurrencia de Datos

Prof. Esp. Raul Ramones

2. Confiabilidad Puesto que los sistemas de base de datos en línea no pueden fallar.

3. Disponibilidad Debido a que los sistemas de base de datos en línea deben estar

actualizados correctamente todo el tiempo.

4. Tiempos de Respuesta En sistemas de este tipo, el tiempo de respuesta de las

transacciones no debe ser mayor a doce segundos.

5. Throughput Los sistemas de base de datos en línea requieren procesar miles de

transacciones por segundo.

6. Atomicidad En el procesamiento de transacciones no se aceptan resultados parciales.

7. Permanencia No se permite la eliminación en la base de datos de los efectos de una

transacción que ha culminado con éxito.

Nota La Concurrencia en las Bases de Datos es de suprema importancia en los sistemas de

información, ya que evita errores en el momento de ejecutar las diferentes transacciones.

Para recuperar los datos se debe tomar en cuenta los siguientes fatcores:

Backup (respaldo): disco duro, cinta.

Backup caliente: Base de Datos esta operativa.

Backup frio: Base de Datos no está operativa.

Mirror o Espejo

Archivos de Logs: (registro de transacción)

Son las transacciones diarias que se registran en la Base de Datos. Cuando ocurre un problema se

acude a los archivos de logs se hace un REVERSO y también se puede recuperar la última

transacción que se hizo.

Page 8: Concurrencia de Datos

Prof. Esp. Raul Ramones

Seguridad de los Datos

Se presentan cuando no es posible establecer claves de acceso y resguardo en forma uniforme para

todo el sistema, facilitando así el acceso a intrusos.

La seguridad de los datos se puede definir en los siguientes aspectos:

Objeto a asegurar: el primer objeto a asegurar son los objetos, programas y finalmente al

esquema.

Codificación de Claves: el DBMS provee la seguridad de los Login (usuario y password).

Control de Acceso: se especifican seguridades contra accesos indicados orientado a personas

no autorizada.

Modelo Entidad – Relación

Modelaje: es el proceso mediante el cual podemos identificar las propiedades dinámicas ò

estáticas de un dominio de aplicación con mira a su transformación en un diseño interpretable

en un sistema computarizado. Es el plasmar los requerimientos de los usuarios en un

programa para poder implementarlo.

Entidad: es el objeto sobre el cual se requiere mantener ò almacenar información.

Relación: es la asociación significativa y estable entre dos entidades

Atributo: son las propiedades que describen y califican una entidad. Ejemplo: Entidad

cliente(nombre, apellido, dirección, edad, sexo)

Las entidades se las representa mediante cajas que se colocan el nombre de la entidad con letras

mayúsculas. Ejemplo:

Page 9: Concurrencia de Datos

Prof. Esp. Raul Ramones

Las relaciones se representan con líneas que conectan las cajas de las entidades. Ejemplo:

Los atributos se incluyen dentro de las cajas de las entidades y se escriben con minúsculas. Ejemplo:

Entidades: se puede considerar entidades a los sujetos, objetos, a los eventos, a los lugares y a las

abstracciones.

Page 10: Concurrencia de Datos

Prof. Esp. Raul Ramones

Relaciones: las relaciones tiene tres propiedades ò características:

Grado ò Cardinalidad: que se clasifica en:

Page 11: Concurrencia de Datos

Prof. Esp. Raul Ramones

Opcionalidad: es la participación obligatoria u opcional en la entidad de la relación.

Leyenda: es una expresión que escribe el rol de cada entidad en la relación.

Como se lee el Grado ó Cardinalidad:

Uno a muchos: una instancia de la entidad A se relaciona con una ò más instancias de la

entidad B.

Muchos a muchos: una instancia de la entidad A se relaciona con una ò más instancias de la

entidad B y una instancia de la entidad B se relaciona con uno ò más instancias de le entidad

B.

Page 12: Concurrencia de Datos

Prof. Esp. Raul Ramones

Uno a uno: una instancia de la entidad A se relaciona con uno y sólo una instancia de la

entidad B.

Relación Recursiva

Una instancia de una entidad se asocia con instancia de sí misma, es opcional en los dos extremos,

es decir, no hay el carácter de obligatorio. Ejemplo:

Atributo:

Los atributos son empleados para identificar, describir, calificar ò expresar el estado de una entidad.

Todo entidad posee un atributo ò combinación de atributos que se denomina "clave primaria" y que

emplea para diferenciar cada instancia de los demás.

Adicionalmente los atributos pueden ser obligatorios u opcionales.

A los atributos que forman parte de la clave primaria se los identifica anteponiéndoles el signo

de numero (#).

A los atributos obligatorio se les antepone el asterisco (*).

A los atributos opcionales se les antepone un circulo (o).

Page 13: Concurrencia de Datos

Prof. Esp. Raul Ramones

Ejemplo:

En un diagrama entidad-relación también puede agrupar las entidades en super tipo y en subtipo.

Los super tipo agrupa a dos ò más entidades subtipo.

Los subtipo heredan los atributos de las entidades super tipo.

Cada subtipo puede tener relaciones propias independientes del super tipo.

Los subtipos se representan como cajas dibujadas dentro de la caja del super tipo.