Bases de Datos Distribuidas
Bases de Datos Distribuidas
Bases de Datos Distribuidas
Cuba
Centro Universitario
Vladimir Ilich Lenin
Monografía
ISBN: 959-16-0336-3.
2
Definición
La base de datos consiste en dos o más ficheros de datos almacenados en
diferentes localidades de una red que pueden estar geográficamente separadas y
conectadas por enlaces de comunicación[1]. Cuando las bases de datos son
distribuidas, diferentes usuarios tienen acceso sin interferir unos con otros. Sin
embargo, el sistema de gestión de bases de datos distribuidas (SGBBD) debe
sincronizar periódicamente las bases de datos dispersas, para asegurar que todas
tengan sus datos uniformes[2].
Cuando cada sitio procesa sus datos locales se elimina un poco el tráfico de la
red, pero si los sitios usan frecuentemente datos almacenados en otros sitios
las comunicaciones pueden convertirse en un cuello de botella.
Un SBDD está formado por una colección de sitios, cada uno de los cuales opera
un sistema de bases de datos para el procesamiento de las actividades que solo
requieran datos locales. Los SGBDD están compuestos por varios SGBDs
operando en sitios locales y que están conectados mediante la trasmisión de
mensajes, transacciones, datos desde el sitio local hacia remostos y viceversa,
etc.
Nodo W
ABDW BDw
Nodo X
Programa de
consulta o ATX BDX
ABDx
transacción
Nodo Y
Programa de
consulta o ATY ABDY
BDY
transacción
Nodo X
DDB
Programa de
consulta o
ATZ
transacción Interfaz de
acción
1. Los datos deben estar localizados lo más cerca posible de los sitio donde
sean utilizado, es decir, utilizando réplicas de los datos.
Atomic (Atomicidad)
Si una transacción completa exitosamente, sus efectos son durables, en caso
contrario la transacción aborta y sus efectos se deshacen (rollback). Por ejemplo,
cuando actualizamos un registro, el registro cambia de valor y el antiguo valor se
anula (cuando termina exitosamente), o no cambia nada (cuando aborte).
Consistency (Consistencia)
Una transacción es una transformación correcta del estado del sistema. Una
transacción producirá siempre los mismos resultados si se aplican más de una vez
(es decir, deben ser consistentes y reproducibles). Por ejemplo, cuando
agregando un elemento a una lista doblemente enlazada, los cuatro indicadores
(dos delanteros y los dos dirigidos hacia atrás) son puestos al día.
Isolation (Aislamiento).
Se aíslan transacciones concurrentes de las actualizaciones de otras
transacciones incompletas. Estas actualizaciones no constituyen un estado
consistente, los datos deben protegerse de cambios hasta haber completado la
transacción a través de todos los nodos. Esta propiedad es llamada a menudo
seriabilidad. Por ejemplo, una segunda transacción, cruzando la lista doblemente
enlazada mencionada en el ejemplo de consistencia, verá la lista antes o después
de la inserción, pero solo verá cambios completos.
Durability (Durabilidad)
Una vez una transacción completa exitosamente, sus efectos persistirán aun
cuando hay fracasos del sistema. Por ejemplo, después de la actualización en el
ejemplo de atomicidad, el registro tendrá el nuevo valor aun cuando el sistema
falla y cuando el sistema se inicie nuevamente se corrigen después de haber
completado la transacción comprometa completa.
Hoy esta tecnología muestra sus limites y los grandes vendedores de bases de
datos (Oracle, Infomix, Sysbase), a fin de satisfacer las necesidades emergentes
de negocio, hacen posible otro adelanto tecnológico en la gestión de bases de
datos. Este enfoque relativamente nuevo usualmente se conoce bajo términos
como: Almacenaje de Datos, Repetición, DSS-R (Sistemas de apoyo de Decisión-
Repetición).
6
Expandibilidad
Al crecer una organización por la adición una nueva unidad, el nuevo nodo o
unidad de localización de dato pasa a formar parte de la base de datos
distribuida sin reconfigurar la BD completamente – el nuevo nodo casi
automáticamente forma parte de la BD global.
Confiabilidad o Disponibilidad.
Fácil conexión entre los datos de varias localizaciones sin tener en cuenta los
Sistemas Operativos y/o el hardware y software utilizados.
La capacidad que tiene el sistema para seguir trabajando, a pesar del fallo de
una localidad, da como resultado una mayor disponibilidad. Para aplicaciones
7
Sharing o Compartición.
Los datos pueden ser compartidos por sucursales o usuarios diferentes de la
misma organización u organizaciones diferentes, permitiendo así
comunicación eficiente entre usuarios distantes.
La ventaja principal de compartir los datos por medio de la distribución es que
cada localidad puede tener mejor control de sus datos almacenados
localmente. En los sistemas centralizados existe un administrador global de la
base de datos, mientras que en un SBDD existe un administrador global de
base de datos que se descompone en los administradores de base de datos
locales donde reside cada base de datos. Dependiendo del diseño del sistema
distribuido, cada administrador de base de datos local podrá tener un grado de
autonomía diferente, que se conoce como autonomía local. La posibilidad de
contar con autonomía local es en muchos casos una ventaja importante de las
bases de datos distribuidas.
Confiabilidad.
La confiabilidad se logra al tener replicas de los datos, pues es posible
recuperar una copia dañada o destruida a partir de otra. Por supuesto, que
como los daños pueden obedecer a catástrofes físicas, deben tenerse copias
en lugares geográficamente separadas.
Razones económicas.
Cuando se maximiza el acceso local de las aplicaciones a los datos se
disminuye el tráfico en las comunicaciones. Hoy en día podemos adquirir
computadoras personales a precios considerados, comparado con el
equivalente a una supercomputadora o MainFrame.
Desventajas de BDD.
8
Complejidad.
Un sistema distribuido, que oculta su naturaleza distribuida al usuario, es más
complejo que el sistema centralizado. Las consideraciones adicionales tales
como el control de concurrencia y la seguridad deberían tenerse en cuenta, no
para mencionar la complejidad alta de la optimización de consultas, comparado
con una base de datos centralizada, sino que las actualizaciones se complican
proporcionalmente con el aumento de replicas en el sistema.
La confiabilidad /Eficiencia.
Se deben implementar mecanismos que garanticen la consistencia y permitan
detectar fallas en el sistema y su posterior recuperación. Al ocurrir alguna falla
en sitios distintos, el sitio que contenga una réplica de esa base de datos, y
además sea operable debe garantizar la consistencia y actualización de su
base de datos. Al reponerse los diferentes sitios el sistema de gestión de base
de datos debe granizar la actualización de esos sitios que estaban sin operar.
AL estar particionada la red que une los diferentes sitios es un poco más difícil
garantizar las actualizaciones de las bases de datos. Puesto que las
localidades del sistema distribuido operan en paralelo, es más difícil garantizar
que los algoritmos sean correctos. Existe la posibilidad de errores
extremadamente sutiles. (Profundizar)
Costo.
La complejidad aumentada significa que los costos de mantenimiento y
adquisición del sistema son mucho más altos que los de un DBMS
centralizado.
La capacidad de almacenamiento de cada sitio debe tenerse en cuenta,
usualmente el costo de almacenamiento no es importante comparado con
otros costos, no obstante, las limitaciones de almacenamiento deben ser
consideradas.
Integridad.
Debido a que no todos los datos se ubican en un lugar centralizado - una
estación (nodo) - el fracaso podría ocasionar una pérdida de datos para otros
nodos.
9
1. Inexistencia.
Los datos y programas se ejecutan en un ordenador sin que exista
comunicación entre ellos.
Existe una réplica de los programas de aplicación en cada maquina y los datos
viajan a través de la red.
2. Consistencia ancha.
El modelo de consistencia ancha permite un retardo entre el momento en que
los datos originales son modificados y las copias de los mismos son
actualizadas, lo que permite que la base de datos esté disponible más tiempo
que el modelo de consistencia estrecha. Permite conexiones tanto rápidas
como lentas soportadas en WANs o LANs.
La duplicación en bases de datos SQL Server dedicadas utilizan una cola fiable
para los datos duplicados, también ofrece flexibilidad en los datos seleccionados
para la réplica en todas las bases de datos destino. Y, incrementa la seguridad,
limitando que los usuarios pueden preparar y administrar duplicación, y qué los
servidores destino pueden ver y recibir tablas que estén disponibles para ser
duplicadas.
Para abordar el diseño de las bases de datos distribuidas podemos optar por dos
tipos de estrategias: Bottom – Up y. Ambas no son excluyentes, es decir que
cuando estemos trabajando en un determinado proyecto podemos usar en
diferentes partes del mismo una u otra estrategia. La estrategia Bottom – Up se
puede utilizar sistemas ya instalados con pequeñas bases de datos existentes con
el fin de integrarlas en una única BDD. Este problema se nos presenta en BD
*heterogéneas. En la vida real este caso se nos puede presentar con facilidad,
12
Diseño de la distribución
Diseño físico
Esquema físico
Observación y monitoreo
2. Diseño de fragmentación.
3. Diseño de la asignación de los fragmentos.
4. Diseño de la BD física (transformar los esquemas locales en áreas de
almacenamiento y determinar métodos de acceso apropiados).
Estrategias y objetivos.
Transparencia de ubicación. Permite a los usuarios acceder a los datos sin tener
en cuenta la ubicación de los mismos. Esta transparencia se puede conseguir
cuando los administradores de transacciones distribuidas (ATD) son capaces de
determinar la localización de los datos y de emitir acciones a los ADs apropiados,
lo cual puede ejecutarse cuando los ATs poseen acceso a los directorios de
localizaciones de los datos. Si los datos cambian de lugar, solo el ATs necesita
14
Las actualizaciones afectan las columnas que tienen datos de longitud variable o
nulos, esto se puede resolver combinando los DELETES y INSERT, aun cuando la
longitud física de los datos no varia. En SQL Server para Windows NT ahora se
ejecutan todas las actualizaciones sin modificar el tamaño físico de los datos, a
pesar que el tipo de dato sea afectado
Fallo de disco.
Cuando una o más de las unidades de disco donde se almacena la base de
datos falla, nos encontramos ante una pérdida completa de los datos, esto se
puede resolver, restaurando la base de datos con el respaldo más actualizado.
15
Localidad del procesamiento. Los datos se deben distribuir lo más cerca posible
de las aplicaciones que los usan para maximizar la localidad del procesamiento,
este principio responde a minimizar el acceso remoto a los datos.
Diseñar una distribución que maximice localidad del procesamiento puede hacerse
añadiendo la cantidad de referencias locales y remotas correspondientes a cada
fragmentación candidata y asignar la fragmentación eligiendo la mejor solución.
R = ∇ Ri, ∀Ri ∈ FR
Alternativas de asignación
Procesamiento de
Fácil Dificultad similar
Consultas
Manipulación de Fácil o
Dificultad similar
Directorios inexistente
Control de
Moderado Difícil Fácil
Concurrencia
Seguridad y
Muy alta Alta Baja
confiabilidad
Aplicación Posible Real Posible
Relación Estudiantes
Id_Estudiante Nombre_E Dirección Edad
E1 Pablo Peña C/ maceo no 33 19
E2 Enrique Ortega C/ martí no 45 22
E3 Juan Escobar C/ 39 no 34 21
E4 Miguel Suárez Edif. 23 apto 5 20
20
Relación Profesores
Id_Profesor Nombre_P Facultad Salario
P1 Pedro R. Cont 380.00
P2 Alicia A. Cont 340.00
P3 Juan R. Agro 380.00
P4 Enrique M. Agro 360.00
P5 Edecio P. CF 330.00
cualitativo esta basada en las consultas generadas por los usuarios y las
aplicaciones. Debemos investigar cuales son las principales aplicaciones en caso
que no fuese posible investigarlas todas para determinar estos predicados. Para
guiarnos en este análisis nos podemos auxiliar en la regla de que el xx% de las
consultas acceden al yy% de los datos. Llegados a este punto, sería interesante
determinar los predicados simples. Dada una relación R(A1, A2, ..., An), donde Ai
es un atributo definido sobre el dominio Di, un predicado simple pj definido sobre R
es de la forma
pj : Ai θ Valor
Dado un conjunto de predicados simples de una relación R, Pri = {pi1, pi2, ..., pim},
el conjunto de predicados mintérmino Mi = {mi1, mi2, ..., miz} se define como
M i = {mij | mij = ∧
pik ∈Pri
p * ik },1 ≤ k ≤ m,1 ≤ j ≤ z
donde p ik = pik o p ik = ¬pik. Es decir, cada predicado mintérmino puede ser igual
* *
Atributo = Valor
Límite_inferior ≤ Atributo_1
Atributo_1 ≤ Límite_superior
¬(Límite_inferior ≤ Atributo_1)
¬(Atributo_1≤ Límite_superior)
Que se traduce como:
Estos 8 predicados mintérminos no son todos los que se pueden definir, estos son
solo una muestra de todos los posibles a definir.
Para que un conjunto de predicado {Pr} sea completo debe garantizar que, para
cada aplicación del conjunto de aplicaciones, accedan con igual probabilidad a dos
tuplas cualquiera de un mismo fragmento.
Archivo (tamaño).
1 2 3 4 5 6 7 8
Trans. (8) (8) (16) (9) (10) (7) (4) (5)
1 10 9 0 0 0 10 0 20
2 0 0 0 0 0 20 0 9
3 0 0 0 60 70 140 16 0
4 0 0 0 6 5 15 10 0
25
5 0 0 0 4 4 0 0 10
6 4 10 0 6 1 0 0 15
7 9 2 0 3 4 0 0 0
8 6 5 0 2 4 0 0 0
9 2 2 0 0 0 0 0 0
10 0 0 0 0 0 0 0 0
Sitio
Trans. 1 2 3 4 5
1 0 25 0 0 0
2 12 30 0 0 0
3 0 3 5 4 5
4 0 0 10 10 10
5 0 0 12 8 4
6 20 150 100 2 2
7 2 100 0 30 40
8 18 32 12 12 10
9 4 2 0 0 0
10 0 4 0 0 0
Paso1: Para cada archivo identificar el sitio que requiere mayor número de
acceso. Significa buscar el máximo de cada columna de la tabla 3, de esta forma
tenemos en que sitio se generaron más transacciones para cada fichero.
1 2 3 4 5 6 7 8
1 214 302 0 162 100 240 0 408
2 1946 2089 0 1444 888 1270 48 3020
3 472 1060 0 1032 596 850 180 1620
4 350 140 0 458 532 710 164 110
26
3 4 5 6 7
1 0 162 100 240 0
3 0 1032 596 850 48
4 0 458 532 710 164
5 0 528 618 850 180
Paso 2’: Se le asigna dij = 1 para todas las entradas en negritas y dij = 0 para los
demás casos.
Existen algunos sistemas de bases de datos que soportan bases de datos cuyas
partes están físicamente separadas. Las relaciones pueden estar ubicadas en
sitos diferentes, pueden existir múltiples copias de una misma relación en sitios
27
Violación de integridad
Para el siguiente ejemplo tenemos una base profesores con los campos: nombre,
departamento, asignatura. También otra base con la información de un grupo de
una facultad que le llamaremos Grupo_1 que posee los campos: turno, asignatura,
nombre_P. Inicialmente estas bases se encuentran en siguiente estado:
Profesores Grupo_1
Nombre Departamento Asignatura Turno Asignatura Nombre_P
Pepe Computación DDB 1er DB Pepe
Pepe Computación DB 2da Análisis Pedro
Juan Computación DB 3ra MOC Tomas
T4 T5
Select Asignatura
From Grupo_1 Where Turno = 1er Select Asignatura
Select Nombre From Grupo_1 Where
From Profesores Where Nombre_P = Pepe AND Turno= 1er
Asignatura_I = DDB Select Nombre_P
Asignatura = DDB From Profesores
Nombre_P = Nombre Where Asignatura_I = Asignatura
AND Nombre_P <> Pepe
Nombre = Nombre_P
Grupo_1
1er DDB Juan
2da Análisis Pedro
3ra MOC Tomas
T5 T6
Begin T6
Total = 0
Begin T5 Do while not end_S
Read (S, S_Juan) Read S_juan
Inc(S_juan, 15$) Inc(total, S_Juan)
Write(S, S_juan) :
Commit T5 :
30
Read S_Pepe
Inc(Total, S_Pepe)
:
:
Commit T6
El orden de las solicitudes conflictivas deberá ser una imagen de espejo del orden
de las transacciones independiente de donde procedan e independiente de
cuantas veces se procesen. De alguna forma los mecanismos de control de
31
Existen tres técnicas básicas que permiten que las transacciones concurrentes se
ejecuten en paralelo sin que se generen datos erróneos en la base de datos.
Estas técnicas son las siguientes:
1. Métodos de bloqueos.
2. Métodos de marcas de tiempos.
3. Métodos optimistas.
Arquitectura multiusuario.
Sistema de teleprocesamiento
AP 1
Usuario 1
OS net
AP 2
Red de área local
Cliente 1
Cliente 2
OS net DBMS OSdm DB
Cliente N
cual hace más difícil el control de los problemas de pérdidas por actualización y
otros problemas que provoca el control multiusuario.
36
Bibliografía