Está en la página 1de 7

carlosproal.

com

http://www.carlosproal.com/bda/bda05.html

5. Bases de datos distribuidas


5. Distributed Databases
5.1 Introduccin
Un sistema de bases de datos distribuidas se compone de un conjunto de sitios conectados entre s mediante algn 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 Definicin
Base de Dat os Dist ribuida 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 distribucin a los usuarios. Esta regla conduce a 12 objetivos o reglas secundarias: 1. Autonomia local. 2. No dependencia de ningun sitio central. 3. Operacin continua. 4. Independencia con respectos a la localiz acin (transparencia de localiz acin). 5. Indepencia con respecto a la fragmentacin. 6. Independencia de rplica. 7. Optimiz acin en el procesamiento distribuido de consultas.

8. Manejo de transacciones distribudas 9. Independencia con respecto al equipo. 10. Independencia con respecto al sistema operativo. 11. Independencia con respecto a la red. 12. Independencia con respecto al DBMS. Vent ajas de los DDBMS Autonomia local. Mejora la confiabilidad / disponibilidad. Mejora de la eficiciencia. Expandibilidad. Economa en cuanto crecimiento incremental. Comparticin de recursos. Areas problemas de los DDBMS Diseo de base de datos distribudas. Procesamiento de querys distribudos. Administracin del diccionario de datos. Control de concurrencia distribudo. Administracin del deadlock distribudo. Recuperacin de transacciones en ambientes distribudos. Base de datos heterogeneas (Multibase de datos). Relacin cruz ada entre los problemas anteriores.

5.3 Fragmentacin
5.3.1 Definicin
Fragmentacin es la descomposicin o particin de una tabla en pedaz os llamados fragmentos. La fragmentacin bsicamente se puede hacer de dos formas: Fragmentacin Horizontal. selecciona registros completos de una relacin Fragmentacin Vertical. selecciona columnas completas de una relacin

5.3.2 Reglas a Cumplir por Fragmentacin


Condicin de Complets. Todos los datos de la relacin global debern ser mapeados a algn fragmento. Condicin de Reconstruccin. Deber ser siempre posible reconstruir la relacin global a partir de sus fragmentos. Condicin de Conjuntos Disjuntos. Es conveniente que los fragmentos sean disjuntos.

5.3.3 Fragmentacin Horizontal


Definir fragmentos horizontales se hace a travs del operador de seleccin del algebra relacional operando sobre una relacin global.

Los predicados que nos permiten definir una fragmentacin de una relacin son llamados la calificacin de la fragmentacin. En el ejemplo la calificacin de la fragmetacin hecha a S, son:

q1 : CD = L q2 : CD = P

En general una fragmentacin horiz ontal es correcta, si cumple que:

El conjunto de calificaciones mapea todo el dominio del atributo(s) bajo el cual se hace la calificacin. Si siempre es posible reconstruir la tabla global por medio del operador UNION del algebra relacinal: R = F1 UNION F2 UNION UNION Fn 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 Fragmentacin Horizontal Derivada


Este tipo de fragmentacin particiona una tabla en base a un atributo(s) que esta presente en otra tabla(s).

Los fragmentos se definiran de la sig. manera:

5.3.5 Fragmentacin Vertical


Definir fragmentos verticales se hace a travs del operador de proyeccin del algebra relacional operando sobre una relacin global.

Una caracterstica importante de la fragmentacin vertical, es que todos los fragmentos deben incluir la llave primaria de la relacin global. La raz n es que si no inclumos la llave primaria no es posible reconstruir la relacin original. Para reconstruir la relacin original debemos realiz ar un JOIN de todos los fragmentos. R = F1 JOIN F2 JOIN JOIN F3 En fragmentacin vertical no se cumple que los fragmentos sean disjuntos (la llave est repetida en todos los fragmentos).

5.3.4 Fragmentacin Hbrida


Consiste en aplicar las operaciones de fragmentacin vistas anteriormente de manera recursiva, satisfaciendo las condiciones de corrects cada vez que se realiz a la fragmentacin. La reconstruccin puede ser obtenida aplicando las reglas de reconstruccin en orden inverso. De esta forma podemos fragmentar nuestra tabla global en los pedaz os que queramos y como queramos. Ejemplo: Considere la relacin de empleado (E). Una posible fragmentacin hbrida sera: E1 = Ex[Emp# , Nombre,

# Jef e,Dept # ] Where Dept # <10 E2 = Ex[Emp# , Nombre, # Jef e,Dept # ] Where Dept # >= 10 And Dept # <= 20 E3 = Ex[Emp# , Nombre, # Jef e,Dept # ] Where Dept # >20 E4 = E[Emp# , Salario, Impt o]

5.4 Transacciones distribuidas


5.4.1 Definicin
Una t ransaccin dist ribuida es aquella que involucra algn proceso en distintos sitios de la red. Llamaremos a estos procesos los agentes de la transaccin, entonces una transaccin distribuida esta compuesta por varios agentes. Para llevar a cabo una transaccin distribuida los agentes tienen que comunicarse a travs de

mensajes en la red y se debe garantiz ar la atomicidad de la transaccin. Requiere: 1. Existe un agente raz que inicia toda la transaccin, as que cuando el usuario requiere la ejecucin de una aplicacin distribuida el agente raz es iniciado; el sitio del agente raz es llamado el sitio origen de la transaccin. 2. El agente raz tiene la responsabilidad de asegurar BEGIN- TRANSACTION, COMMIT O ROLLBACK de toda la transaccin distribuida.

5.4.2 Recuperacin de transacciones distribuidas


Para realiz ar la recuperacin de transaccin distribuidas se asume que cada sitio tiene su propio manejador de transaccin local (LTM). Cada agente utiliz a de manera local las primitivas asociadas a sus transacciones. Podemos llamar a los agentes subtransacciones, lo cual origina distinguir las primitivas BEGIN- TRANSACTION, COMMIT Y ROLLBACK asociado a la transaccin distribuida de la primitivas locales utiliz ada por cada agente en LTM; para poder distinguir una de las otras, a las ultimas les llamaremos: LOCAL- BEGIN, LOCAL- COMMIT Y LOCALROLLBACK. Para propsito del manejador de transacciones distribuidas (DTM), requieren que los LTM se conformen de la siguiente manera: 1. Asegurar la atomicidad de su transaccin. 2. Grabar en bitcora por ordenes de la transaccin distribuida. Para asegurar que todas las acciones de una transaccin 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 debern tomar la misma decisin respecto al COMMIT o ROLLBACK de la transicin global.

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 raz ) y todo los dems agentes son llamados PARTICIPANTES. El COORDINADOR es el responsable de tomar la decisin de hacer un COMMIT o un ROLLBACK GLOBAL y cada PARTICIPANTE es responsable de grabar a sus bitcoras y bases de datos locales.

La idea bsica del protocolo en dos fases (2pl, 2 phase locking) es determinar una decisin 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 decisin comn, la meta de la segunda fase es llevar a cabo esta decisin. En trminos generales el commit de 2 fases en bases de datos distribuidas funciona muy similar a commit de 2 fases tradicional. "En t oda t ransaccin, t odos los locks preceden a t odos los unlocks".

También podría gustarte