Concurrencia de Datos
Click here to load reader
-
Upload
jesusescobar -
Category
Documents
-
view
6 -
download
0
description
Transcript of Concurrencia de Datos
![Page 1: Concurrencia de Datos](https://reader038.fdocuments.es/reader038/viewer/2022100509/563db78b550346aa9a8c068c/html5/thumbnails/1.jpg)
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](https://reader038.fdocuments.es/reader038/viewer/2022100509/563db78b550346aa9a8c068c/html5/thumbnails/2.jpg)
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](https://reader038.fdocuments.es/reader038/viewer/2022100509/563db78b550346aa9a8c068c/html5/thumbnails/3.jpg)
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](https://reader038.fdocuments.es/reader038/viewer/2022100509/563db78b550346aa9a8c068c/html5/thumbnails/4.jpg)
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](https://reader038.fdocuments.es/reader038/viewer/2022100509/563db78b550346aa9a8c068c/html5/thumbnails/5.jpg)
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](https://reader038.fdocuments.es/reader038/viewer/2022100509/563db78b550346aa9a8c068c/html5/thumbnails/6.jpg)
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](https://reader038.fdocuments.es/reader038/viewer/2022100509/563db78b550346aa9a8c068c/html5/thumbnails/7.jpg)
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](https://reader038.fdocuments.es/reader038/viewer/2022100509/563db78b550346aa9a8c068c/html5/thumbnails/8.jpg)
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](https://reader038.fdocuments.es/reader038/viewer/2022100509/563db78b550346aa9a8c068c/html5/thumbnails/9.jpg)
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](https://reader038.fdocuments.es/reader038/viewer/2022100509/563db78b550346aa9a8c068c/html5/thumbnails/10.jpg)
Prof. Esp. Raul Ramones
Relaciones: las relaciones tiene tres propiedades ò características:
Grado ò Cardinalidad: que se clasifica en:
![Page 11: Concurrencia de Datos](https://reader038.fdocuments.es/reader038/viewer/2022100509/563db78b550346aa9a8c068c/html5/thumbnails/11.jpg)
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](https://reader038.fdocuments.es/reader038/viewer/2022100509/563db78b550346aa9a8c068c/html5/thumbnails/12.jpg)
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](https://reader038.fdocuments.es/reader038/viewer/2022100509/563db78b550346aa9a8c068c/html5/thumbnails/13.jpg)
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.