Está en la página 1de 14

Cuando se va a fragmentar una base de datos deberamos sopesar qu grado de

fragmentacin va a alcanzar, ya que ste ser un factor que influir notablemente en


el desarrollo de la ejecucin de las consultas. El grado de fragmentacin puede variar
desde una ausencia de la divisin, considerando a las relaciones unidades de
fragmentacin; o bien, fragmentar a un grado en el cada tupla o atributo forme un
fragmento. Ante estos dos casos extremos, evidentemente se ha de buscar un
compromiso intermedio, el cual debera establecerse sobre las caractersticas de las
aplicaciones que hacen uso de la base de datos. Dichas caractersticas se podrn
formalizar en una serie de parmetros. De acuerdo con sus valores, se podr
establecer el grado de fragmentacin del banco de datos.

Reglas de correccin de la fragmentacin

A continuacin se enuncian las tres reglas que se han de cumplir durante el proceso
de fragmentacin, las cuales asegurarn la ausencia de cambios semnticos en la
base de datos durante el proceso.

* Complecin. Si una relacin R se descompone en una serie de fragmentos R1, R2,


..., Rn, cada elemento de datos que pueda encontrarse en R deber poder
encontrarse en uno o varios fragmentos Ri. Esta propiedad extremadamente
importante asegura que los datos de la relacin global se proyectan sobre los
fragmentos sin prdida alguna. Tenga en cuenta que en el caso horizontal el elemento
de datos, normalmente, es una tupla, mientras que en el caso vertical es un atributo.

* Reconstruccin. Si una relacin R se descompone en una serie de fragmentos R1,


R2, ..., Rn, puededefinirse una operador relacional tal que el operador ser
diferente dependiendo de las diferentes formas defragmentacin. La
reconstruccin de la relacin a partir de sus fragmentos asegura la preservacin de
lasrestricciones definidas sobre los datos en forma de dependencias.

* Disyuncin. Si una relacin R se descompone horizontalmente en una serie de


fragmentos R1, R2, ..., Rn, yun elemento de datos di se encuentra en algn
fragmento Rj, entonces no se encuentra en otro fragmento Rk(k j). Esta
regla asegura que los fragmentos horizontales sean disjuntos. Si una relacin R se
descomponeverticalmente, sus atributos primarios clave normalmente se
repiten en todos sus fragmentos.

FRAGMENTACION HORIZONTAL
La fragmentacin horizontal se realiza sobre las tuplas de la relacin. Cada fragmento
ser un subconjunto de las tuplas de la relacin. Existen dos variantes de la
fragmentacin horizontal: la primaria y la derivada. La fragmentacin horizontal
primaria de una relacin se desarrolla empleando los predicados definidos en esa
relacin. Por el contrario, la fragmentacin horizontal derivada consiste en dividir una
relacin partiendo de los predicados definidos sobre alguna otra.

Informacin necesaria para la fragmentacin horizontal


Informacin sobre la base de datos.
Esta informacin implica al esquema conceptual global. Es importante sealar cmo
las relaciones de la base de datos se conectan con otras. En una conexin de
relaciones normalmente se denomina relacin propietaria a aquella situada en la cola
del enlace, mientras que se llama relacin miembro a la ubicada en la cabecera del
vnculo. Dicho de otra forma podemos pensar en relaciones de origen cuando nos
refiramos a las propietarias y relaciones destino cuando lo hagamos con las miembro.

Definiremos dos funciones: propietaria y miembro, las cuales proyectarn un conjunto


de enlaces sobre un conjunto de relaciones. Adems, dado un enlace, devolvern el
miembro y el propietario de la relacin, respectivamente. La informacin cuantitativa
necesaria gira en torno a la cardinalidad de cada relacin, notada como card(R).

Informacin sobre la aplicacin.


Necesitaremos tanto informacin cualitativa como cuantitativa. La informacin
cualitativa guiar la fragmentacin, mientras que la cuantitativa se necesitar en los
modelos de asignacin. La principal informacin de carcter cualitativo son los
predicados empleados en las consultas de usuario. Si no fuese posible investigar
todas las aplicaciones para determinar estos predicados, al menos se deberan
investigar las ms importantes. Podemos pensar en la regla "80/20" para guiarnos en
nuestro anlisis, esta regla dice que el 20% de las consultas existentes acceden al
80% de los datos. Llegados a este punto, sera interesante determinar los predicados
simples.

A parte de los predicados simples, las consultas emplean predicados ms complejos


resultado de combinaciones lgicas de los simples. Una combinacin especialmente
interesante es la conjuncin de predicados simples, al predicado resultante se le
denomina predicado mintrmino. Partiendo de que siempre es posible transformar
una expresin lgica en su forma normal conjuntiva, usaremos los predicados
mintrmino en los algoritmos para no causar ninguna prdida de generalidad.

Sobre la informacin cuantitativa necesaria relativa a las aplicaciones, necesitaremos


definir dos conjuntos de datos.

Selectividad mintrmino. Es el nmero de tuplas de una relacin a las que accede


una consulta de acuerdo a un predicado mintrmino dado. Por ejemplo, en el ejemplo
anterior, la selectividad de m6 es 0 ya que no existe ninguna tupla que satisfaga las
condiciones; en cambio, la selectividad de m1 es 2. Notaremos la selectividad de un
mintrmino mi como sel(mi).

Frecuencia de acceso. Es la frecuencia con la que un usuario accede a los datos. Si


Q = {q1, q2, ..., qq} es un conjunto de consultas de usuario, acc(qi) indica la
frecuencia de acceso a la consulta qi en un periodo dado.

Fragmentacin horizontal primaria


Antes de presentar un algoritmo formal que lleve a cabo la fragmentacin horizontal,
intentaremos explicar de manera intuitiva los procesos de fragmentacin horizontal
primaria y derivada. La fragmentacin horizontal primaria se define como una
operacin de seleccin de las relaciones propietarias del esquema de la base de datos.
Ahora definiremos la fragmentacin horizontal ms formalmente. Un fragmento
horizontal Ri de una relacin R contiene todas las tuplas de R que satisfacen un
predicado mintrmino mi. Por tanto, dado un conjunto de predicados mintrmino M,
existen tantos fragmentos horizontales de la relacin R como predicados mintrmino.
Este conjunto de fragmentos horizontales tambin se conocen como conjuntos de
fragmentos mintrmino. En los prrafos siguientes se asumir que la definicin de
fragmentos horizontales se basa en los predicados mintrmino. Adems, el primer
paso para el algoritmo de fragmentacin consiste en establecer un conjunto de
predicados con ciertas propiedades.

Un aspecto importante de los predicados simples es su complecin, as como su


minimalidad. Un conjunto de predicados simples Pr se dice que es completo si y solo
si existe una probabilidad idntica de acceder por cada aplicacin a cualquier par de
tuplas pertenecientes a cualquier fragmento mintrmino que se define de acuerdo con
Pr. Se puede apreciar como la definicin de complecin de un conjunto de predicados
simples difiere de la regla de complecin de la fragmentacin.

El segundo paso en el proceso de fragmentacin primaria consiste en derivar el


conjunto de predicados mintrmino que pueden definirse sobre los predicados del
conjunto Pr'. Estos predicados mintrmino establecen los fragmentos candidatos para
el proceso de asignacin. El establecimiento de los predicados mintrmino es trivial;
la dificultad radica en el tamao del conjunto de predicados mintrmino, que puede
ser muy grande (de hecho, exponencial respecto al nmero de predicados simples).
En el paso siguiente se presentarn formas de reducir el nmero de predicados
mintrmino necesarios para la fragmentacin.

El tercer paso aborda la eliminacin de algunos fragmentos mintrmino que puedan


ser redundantes. Esta eliminacin se desarrolla identificando aquellos mintrminos
que puedan resultar contradictorios sobre un conjunto de implicaciones.

FRAGMENTACION HORIZONTAL DERIVADA

Una fragmentacin horizontal derivada se define sobre una relacin miembro de


acuerdo a una operacin de seleccin especificada sobre su propietaria. Se deben
dejar claros dos puntos. Primero, el enlace entre las relaciones propietaria y miembro
se define como un equi−yunto. Segundo, un equi−yunto puede
desarrollarse a travs de semiyuntos.
Este segundo punto es especialmente importante para nuestros propsitos, ya que
deseamos fraccionar una relacin miembro segn la fragmentacin de su propietaria,
adems es necesario que el fragmento resultante se defina nicamente sobre los
atributos de la relacin miembro.

Las tres entradas necesarias para desarrollar la fragmentacin horizontal derivada son
las siguientes: el conjunto de particiones de la relacin propietaria, la relacin
miembro y el conjunto se predicados resultados de aplicar el semi−yunto entre
la propietaria y la miembro. El algoritmo de fragmentacin resulta tan trivial que no
se ve la necesidad de entrar en detalles.

Existe una posible complicacin que necesita nuestro estudio. En un esquema de base
de datos, resulta frecuente que existan ms de dos enlaces sobre una relacin R. En
este caso, aparecen ms de una posibilidad de fragmentacin horizontal derivada. La
decisin para elegir una u otra se basa en dos criterios: Uno, la fragmentacin con
mejores caractersticas de yunto. Dos, la fragmentacin empleada en ms
aplicaciones.

FRAGMENTACION VERTICAL

Recurdese que la fragmentacin vertical de una relacin R produce una serie de


fragmentos R1, R2, ..., Rr, cada uno de los cuales contiene un subconjunto de los
atributos de R as como la clave primaria de R. El objetivo de la fragmentacin vertical
consiste en dividir la relacin en un conjunto de relaciones ms pequeas tal que
algunas de las aplicaciones de usuario slo hagan uso de un fragmento. Sobre este
marco, una fragmentacin ptima es aquella que produce un esquema de divisin que
minimiza el tiempo de ejecucin de las aplicaciones que emplean esos fragmentos.

La particin vertical resulta ms complicada que la horizontal. Esto se debe al


aumento del nmero total de alternativas que tenemos disponibles. Por ejemplo, en la
particin horizontal, si el nmero total de predicados simples de Pr es n, existen 2n
predicados mintrminos posibles que puedan definirse. Adems, sabemos que algunos
de estos predicados resultarn contradictorios con algunas de las aplicaciones
existentes, por lo que podremos reducir el nmero inicial.

En el caso vertical, si una relacin tiene m atributos clave no primarios, el nmero de


posibles fragmentos es igual a B(m), es decir el m−simo nmero de Bell [3].
Para valores grandes de m, B(m) mm; por ejemplo, para m = 10, B(m) 115.000, para
m = 15, B(m) 109, para m = 30, B(m) = 1023.

Estos valores indican que la obtencin de una solucin ptima de la fragmentacin


vertical resultar una tarea intil, sino nos apoyamos en el uso de heursticos.

Existen dos enfoques heursticos para la fragmentacin vertical de relaciones:

Agrupacin. Comienza asignando cada atributo a un fragmento, y en cada paso,


junta algunos de los fragmentos hasta que satisface un determinado criterio. La
agrupacin sugiri en principio para bases de datos centralizadas y se us
posteriormente para las bases de datos distribuidas.

Escisin. A partir de la relacin se deciden que fragmentos resultan mejores,


basndose en lascaractersticas de acceso de las aplicaciones a los
atributos. Esta tcnica se present, tambin, para bases de datos centralizadas.
Posteriormente, se extendi al entorno distribuido.
FRAGMENTACION MIXTA O HIBRIDA
En muchos casos la fragmentacin vertical u horizontal del esquema de la base de
datos no ser suficiente para satisfacer los requisitos de las aplicaciones.Podemos
combinar ambas, utilizando por ello la denominada fragmentacin mixta. Cuando al
proceso de fragmentacin vertical le sigue una horizontal, es decir, se fragmentan
horizontalmente los fragmentos verticales resultantes, se habla de la fragmentacin
mixta HV. En el caso contrario, estaremos ante una fragmentacin VH. Una
caracterstica comn a ambas es la generacin de rboles que representan la
estructura de fragmentacin.

Debe tenerse en cuenta el nmero de niveles arbreos que se generen, es decir,


nadie impide que tras realizar una fragmentacin VH, podamos aplicar a los
fragmentos resultantes una nueva fragmentacin vertical, y a estos ltimos una
nueva fragmentacin horizontal, etc. Dicho nmero puede ser grande, pero tambin
ser ciertamente finito. En el caso horizontal, el nivel mximo de profundidad se
alcanzar cuando cada fragmento albergue una nica tupla, mientras que en el caso
vertical el final llegar cuando cada fragmento contenga un nico atributo. Sin
embargo, aunque no deba tomarse como dogma, el nmero de niveles no debera
superar el par (VH y HV). El porqu de esta afirmacin es bien sencillo, piense, por
ejemplo, en el coste que supondra realizar la unin o el yunto de una relacin con
fragmentacin nivel 7.

Evidentemente, el coste sera muy elevado y ese aumento de rendimiento que se


persigue al aplicar estas tcnicas, quizs, no se produzca.

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 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 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 localizacin (transparencia
de localizacin).
5. Indepencia con respecto a la fragmentacin.
6. Independencia de rplica.
7. Optimizacin 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.

Ventajas 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 cruzada entre los problemas anteriores.

5.3 Fragmentacin

5.3.1 Definicin

Fragmentacin es la descomposicin o particin de una tabla en


pedazos 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 horizontal 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 razn es que si no inclumos la llave primaria no es posible reconstruir
la relacin original.

Para reconstruir la relacin original debemos realizar 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 realiza 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 pedazos
que queramos y como queramos.

Ejemplo: Considere la relacin de empleado (E).


Una posible fragmentacin hbrida sera:

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


5.4.1 Definicin

Una transaccin distribuida 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
garantizar 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 realizar la recuperacin de transaccin distribuidas se asume


que cada sitio tiene su propio manejador de transaccin 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 BEGIN-TRANSACTION, COMMIT
Y ROLLBACK asociado a la transaccin 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 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 toda transaccin, todos los locks preceden a todos los
unlocks".

También podría gustarte