5. Bases de datos distribuidas

Anuncio
5. Bases de datos distribuidas
5. Distributed Databases
5.1 Introducción
Un sistema de bases de datos distribuidas se compone de un conjunto de sitios conectados
entre sí mediante algún tipo de red de comunicaciones en el cual:
1. Cada sitio es un sistema de B.D. por sí mismo.
2. Los sitios han convenido en trabajar juntos con el fin de que un usuario de cualquier sitio
pueda obtener acceso a los datos de cualquier punto de la red tal como si todos los datos
estuvieran almacenados en el sitio propio del usuario.
5.2 Definición
Base de Datos Distribuida
DDBMS ( Distributed DBMS). Es el software que administra todas las bases de datos de
los sitios y proporciona un mecanismo de acceso que hace
transparente esta distribución a los usuarios.
Esta regla conduce a 12 objetivos o reglas secundarias:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Autonomia local.
No dependencia de ningun sitio central.
Operación continua.
Independencia con respectos a la localización (transparencia de localización).
Indepencia con respecto a la fragmentación.
Independencia de réplica.
Optimización en el procesamiento distribuido de consultas.
Manejo de transacciones distribuídas
Independencia con respecto al equipo.
Independencia con respecto al sistema operativo.
http://www.carlosproal.com/bda/bda05.html[02/05/2013 02:27:38 p.m.]
5. Bases de datos distribuidas
11. Independencia con respecto a la red.
12. Independencia con respecto al DBMS.
Ventajas de los DDBMS
Autonomia local.
Mejora la confiabilidad / disponibilidad.
Mejora de la eficiciencia.
Expandibilidad.
Economía en cuanto crecimiento incremental.
Compartición de recursos.
Areas problemas de los DDBMS
Diseño de base de datos distribuídas.
Procesamiento de querys distribuídos.
Administración del diccionario de datos.
Control de concurrencia distribuído.
Administración del deadlock distribuído.
Recuperación de transacciones en ambientes distribuídos.
Base de datos heterogeneas ( Multibase de datos ).
Relación cruzada entre los problemas anteriores.
5.3 Fragmentación
5.3.1 Definición
Fragmentación es la descomposición o partición de una tabla en pedazos llamados
fragmentos.
http://www.carlosproal.com/bda/bda05.html[02/05/2013 02:27:38 p.m.]
5. Bases de datos distribuidas
La fragmentación básicamente se puede hacer de dos formas:
Fragmentación Horizontal. selecciona registros completos de una relación
Fragmentación Vertical. selecciona columnas completas de una relación
5.3.2 Reglas a Cumplir por Fragmentación
Condición de Completés.
Todos los datos de la relación global deberán ser mapeados a algún fragmento.
Condición de Reconstrucción.
Deberá ser siempre posible reconstruir la relación global a partir de sus fragmentos.
Condición de Conjuntos Disjuntos .
Es conveniente que los fragmentos sean disjuntos.
5.3.3 Fragmentación Horizontal
Definir fragmentos horizontales se hace a través del operador de selección del algebra
relacional operando sobre una relación global.
Los predicados que nos permiten definir una fragmentación de una relación son llamados la
calificación de la fragmentación .
En el ejemplo la calificación de la fragmetación hecha a S, son:
q1 : CD = ‘L’
q2 : CD = ‘P’
En general una fragmentación horizontal es correcta, si cumple que:
El conjunto de calificaciones mapea todo el dominio del atributo(s) bajo el cual se hace la
calificación.
Si siempre es posible reconstruir la tabla global por medio del operador UNION del algebra
relaciónal:
R = F1 UNION F2 UNION …UNION Fn
http://www.carlosproal.com/bda/bda05.html[02/05/2013 02:27:38 p.m.]
5. Bases de datos distribuidas
Si todas las calificaciones de los fragmentos son mutuamente exclusivas, es decir, si al
aplicar las calificaciones se producen fragmentos que al intersectarlos generan un conjunto
vacio.
F = F1 INTERSECT F2 INTERSECT ..
INTESECT Fn
5.3.4 Fragmentación Horizontal Derivada
Este tipo de fragmentación particiona una tabla en base a un atributo(s) que esta presente en
otra tabla(s).
Los fragmentos se definirían de la sig. manera:
5.3.5 Fragmentación Vertical
Definir fragmentos verticales se hace a través del operador de proyección del algebra
relacional operando sobre una relación global.
http://www.carlosproal.com/bda/bda05.html[02/05/2013 02:27:38 p.m.]
5. Bases de datos distribuidas
Una característica importante de la fragmentación vertical, es que todos los fragmentos deben
incluir la llave primaria de la relación global.
La razón es que si no incluímos la llave primaria no es posible reconstruir la relación original.
Para reconstruir la relación original debemos realizar un JOIN de todos los fragmentos.
R = F1 JOIN F2 JOIN … JOIN F3
En fragmentación vertical no se cumple que los fragmentos sean disjuntos (la llave está repetida
en todos los fragmentos).
5.3.4 Fragmentación Híbrida
Consiste en aplicar las operaciones de fragmentación vistas anteriormente de manera
recursiva, satisfaciendo las condiciones de correctés cada vez que se realiza la fragmentación.
La reconstrucción puede ser obtenida aplicando las reglas de reconstrucción en orden inverso.
De esta forma podemos fragmentar nuestra tabla global en los pedazos que queramos y como
queramos.
Ejemplo: Considere la relación de empleado (E).
Una posible fragmentación híbrida sería:
E1 = Ex[Emp#, Nombre, #Jefe,Dept#] Where Dept# <10
E2 = Ex[Emp#, Nombre, #Jefe,Dept#] Where Dept# >=10 And
Dept# <=20
E3 = Ex[Emp#, Nombre, #Jefe,Dept#] Where Dept# >20
E4 = E[Emp#, Salario, Impto]
5.4 Transacciones distribuidas
http://www.carlosproal.com/bda/bda05.html[02/05/2013 02:27:38 p.m.]
5. Bases de datos distribuidas
5.4.1 Definición
Una transacción distribuida es aquella que involucra algún proceso en distintos sitios de
la red. Llamaremos a estos procesos los agentes de la transacción, entonces una transacción
distribuida esta compuesta por varios agentes.
Para llevar a cabo una transacción distribuida los agentes tienen que comunicarse a través
de mensajes en la red y se debe garantizar la atomicidad de la transacción.
Requiere:
1. Existe un agente raíz que inicia toda la transacción, así que cuando el usuario requiere la
ejecución de una aplicación distribuida el agente raíz es iniciado; el sitio del agente raíz es
llamado el sitio origen de la transacción.
2. El agente raíz tiene la responsabilidad de asegurar BEGIN-TRANSACTION, COMMIT O
ROLLBACK de toda la transacción distribuida.
5.4.2 Recuperación de transacciones distribuidas
Para realizar la recuperación de transacción distribuidas se asume que cada sitio tiene su
propio manejador de transacción local (LTM).
Cada agente utiliza de manera local las primitivas asociadas a sus transacciones. Podemos
llamar a los agentes subtransacciones, lo cual origina distinguir las primitivas BEGINTRANSACTION, COMMIT Y ROLLBACK asociado a la transacción distribuida de la primitivas
locales utilizada por
cada agente en LTM; para poder distinguir una de las otras, a las ultimas les llamaremos:
LOCAL-BEGIN, LOCAL-COMMIT Y LOCALROLLBACK.
Para propósito del manejador de transacciones distribuidas (DTM), requieren que los LTM se
conformen de la siguiente manera:
1. Asegurar la atomicidad de su transacción.
2. Grabar en bitácora por ordenes de la transacción distribuida.
Para asegurar que todas las acciones de una transacción distribuida son ejecutadas o
no ejecutadas dos condiciones son necesarias:
a. En cada sitio todas las acciones son ejecutadas o ninguna es ejecutada.
b. Todos los sitios deberán tomar la misma decisión respecto al COMMIT o
ROLLBACK de la transición global.
http://www.carlosproal.com/bda/bda05.html[02/05/2013 02:27:38 p.m.]
5. Bases de datos distribuidas
5.4.3 Commit de 2 fases
En este protocolo hay un agente que tiene un papel especial, este agente es llamado el
coordinador (el cual es el agente raíz) y todo los demás agentes son llamados PARTICIPANTES.
El COORDINADOR es el responsable de tomar la decisión de hacer un COMMIT o un ROLLBACK
GLOBAL y cada PARTICIPANTE es responsable de grabar a sus bitácoras y bases de datos locales.
La idea básica del protocolo en dos fases (2pl, 2 phase locking) es determinar una decisión única
para todos los participantes con respecto a hacer un COMMIT o un ROLLBACK en todas las
subtransacciones locales.
La primera fase de este protocolo tiene como objetivo lograr una decisión común, la meta de la
segunda fase es llevar a cabo esta decisión.
En términos generales el commit de 2 fases en bases de datos distribuidas funciona muy similar a
commit de 2 fases tradicional.
"En toda transacción, todos los locks preceden a todos los unlocks".
http://www.carlosproal.com/bda/bda05.html[02/05/2013 02:27:38 p.m.]
Descargar