Está en la página 1de 11

Bases de Datos

Bases de datos distribuidas

Bases de Datos Distribuidas


Introduccin Las BDD son la unin de dos conceptos que, en principio, pueden parecer opuestos: los DBMS y la tecnologa de redes de computadores. Por un lado, los DBMS se basan en un paradigma de procesamiento de datos, que difiere del procesamiento convencional de archivos en donde cada aplicacin define y mantiene sus propios datos. As, los DBMS se ubican en el enfoque de datos nicos que es definida y administrada en un punto de control centralizado. Recordemos que de este enfoque de trabajo result el concepto de independencia de datos en el cual los programas de las distintas aplicaciones son inmunes a los cambios en la organizacin lgica y fsica de los datos y viceversa. La tecnologa de redes de computadores, por otra parte, promueve un modo de trabajo que va en contra de todo esfuerzo de centralizacin. A simple vista resulta difcil entender cmo estos dos enfoques, que se oponen, pueden ser sintetizados para producir una tecnologa que es mucho ms poderosa y prospectiva que cualquiera de los dos enfoques por separado. La clave para entender esto es darse cuenta que en la tecnologa de las BDD el objetivo clave no es la centralizacin sino ms bien la integracin. La idea consiste en lograr la integracin y distribucin y que ambos enfoques no pierdan su naturaleza esencial. Programa 1 Descrip. datos REDUNDANCIA DE DATOS

Programa 2 Descrip. datos

ARCHIVO 1 ARCHIVO 2 ARCHIVO 3

Programa 3 Descrip. Datos

PROCESAMIENTO CONVENCIONAL DE ARCHIVOS


Programa 1 DESCRIPCIN Programa 2 DE LOS DATOS ADMINISTRACIN Programa 3 DE LOS DATOS BASE DE DATOS

Bases de Datos

Bases de datos distribuidas

PROCESAMIENTO DE BASE DE DATOS


RED
DE

COMPUTADORAS.

Una red de computadores consiste es un conjunto de computadores llamados sites o nodos que estn conectados mediante algn tipo de red de comunicaciones para transmitir los datos y/o comandos entre los distintos nodos. Si los nodos se encuentran fsicamente cercanos (como en un mismo edificio o edificios adyacentes) la red se denomina red de rea local (local area network) y normalmente se conecta usando cables. Si, por el contrario, los computadores se hallan geogrficamente distantes (en otras ciudades o pases) la red se llama long-haul network o red de largo alcance y para la comunicacin se usan lneas telefnicas y satlites. A veces, se encuentran redes que usan ambos tipos de conexin. En un sistema de base de datos centralizada, aunque el nodo en donde la BD resida pueda estar conectada a una red y pueda ser accedida desde un terminal remoto, todos los componentes del DBMS reside en un solo computador. Los componentes incluyen: la descripcin de los datos, los dispositivos de memoria secundaria en donde residen los datos y todos los mdulos para la gestin de la base de datos (control de concurrencia, recovery, optimizacin de consultas, precompiladores de DML y DDL, etc.). SITE 1 SITE 2 DBMS SITE 3

RED DE COMUNICACIONES

SITE 4 SITE 6 SITE 5

RED DE COMPUTADORES CON BASE DE DATOS CENTRALIZADA.


CONCEPTOS BSICOS. SISTEMA DE COMPUTACIN DISTRIBUIDO. "Es un nmero de elementos de procesamiento (no necesariamente homogneos) que estn interconectados en una red de computadores y que cooperan para realizar las tareas que tienen asignadas." BASE DATOS DISTRIBUIDA (BDD). "Es una coleccin de mltiples bases de datos lgicamente interrelacionadas y repartidas sobre un sistema de computacin distribuido."
DE

SISTEMA DE GESTIN DE BASE DE DATOS DISTRIBUIDO (DDBMS). "Es un sistema de software que permite el manejo de la BDD y que hace que la distribucin sea transparente para el usuario."

Bases de Datos

Bases de datos distribuidas

LA ARQUITECTURA CLIENTE SERVIDOR. La arquitectura cliente-servidor se ha desarrollado con la finalidad de propiciar un ambiente de computacin en el que un nmero de computadores personales, servidores de archivos, impresoras y otros equipos estn todos conectados en una red. La idea es definir servidores especializados en funciones especficas. En este ambiente es posible encontrar que algunos computadores sin disco duro se conecten como clientes a una mquina que sea el servidor de archivos que mantiene todos los archivos de los usuarios clientes. Otra mquina puede ser designada como servidor de impresin y que a esa mquina se le conecten varias impresoras de manera que todos los requerimientos de impresin se remitan a esa mquina. De esta manera todos los recursos de computacin son ofrecidos y gestionados por servidores especializados que pueden ser accedidos por varios clientes.

Cliente SITE 1

Servidor SITE 2

SITE 3

RED DE COMUNICACIONES

Servidor

SITE 4 Cliente SITE 5 Cliente SITE 6 Cliente

Cliente

son accedidos por varios paquetes. En las BDD la idea es dividir al DBMS en tres niveles: cliente, servidor y las comunicaciones, para reducir su complejidad. No se ha establecido una regla para dividir al DBMS pero una distribucin muy comn es designar a un nodo con toda la funcionalidad de un DBMS centralizado en el nivel del servidor y varios otros servidores especializados en SQL para, con ambos, atender a los dems nodos que seran los clientes. Cada cliente tiene una interfaz de usuario, las funciones de interfaz de un lenguaje de programacin y cada cliente debe formular

Estas ideas aplicadas al hardware han sido llevadas al software, donde un software especializado como el DBMS o una aplicacin CAD se almacena en varias mquinas servidores y

ARQUITECTURA CLIENTE SERVIDOR

Bases de Datos

Bases de datos distribuidas

las consultas en sentencias SQL apropiadas. Puede, incluso, haber varios servidores de SQL de distintas firmas comerciales.

VENTAJAS DE UNA BDD. Se adecua mejor a la naturaleza de ciertas aplicaciones (por ejemplo, los sistemas bancarios). Incrementa la fiabilidad (reliability, definida como la probabilidad de que un sistema est levantado en un momento particular). Incrementa la disponibilidad (availability, definida como la probabilidad de que el sistema est levantado durante un intervalo de tiempo). Permite el compartimiento de datos manteniendo alguna medida de control local. Mejora el rendimiento. FUNCIONES
ADICIONALES DE UN

DDBMS (DISTRIBUTED DATA BASE MANAGEMENT SYSTEM).

Accede a sitios remotos y transmite queries y datos usando redes de comunicacin. Usa un catlogo especial para guardar la informacin de la distribucin de los datos y la replicacin (copias) de la misma en el DDBMS. Delega estrategias de ejecucin para transacciones que acceden datos desde ms de un nodo. Decide sobre cul copia de un data tem replicado se debe hacer el acceso. Mantiene la consistencia de las copias de los data tems replicados. Habilita la recuperacin (recovery) de nodos individuales cados en el caso de nuevos tipos de fallas como lo es el hecho de que el enlace de comunicacin (la red) se caiga.
DE

PROCESADORES

DATOS (DP)

PROCESADORES

DE

APLICACIONES (PA)

Como se mencion antes la complejidad de un software como el DBMS en los ambientes distribuidos se divide en: 1. El software del servidor (DP, Procesador de Data) que es el responsable del manejo de los datos locales a un nodo y este opera parecido a como opera el DBMS centralizado. 2. El software del cliente (AP, Procesador de Aplicaciones) es el responsable de la mayora de las funciones distribuidas; accede la informacin de los datos distribuidos en el catalogo del DDBMS y procesa todos los requerimientos que exijan el acceso a ms de un nodo. 3. El software de comunicaciones (a veces en conjuncin con el sistema operativo distribuido) provee de las primitivas de comunicacin usadas por el cliente (PA) para transmitir comandos y datos entre tanto nodos como sea necesario (esto no es estrictamente parte del DDBMS).
DEL

FUNCIONES

AP.

Es el responsable de generar un plan de ejecucin distribuido para una transaccin multinodo (o multisitio) y de supervisar la ejecucin distribuida al enviar comandos a DPs (servidores) y a otros APs (clientes). Estos comandos incluyen transacciones y queries

Bases de Datos

Bases de datos distribuidas

locales a ser ejecutados por el DP al igual que comandos para transmitir datos a otros Aps o DPs. Asegura la consistencia de las copias de los datos duplicados al manejar el control de concurrencia distribuido. Asegura la atomicidad de las transacciones al ejecutar recuperacin global cuando ciertos nodos fallan. Transparenta la distribucin al esconder los detalles de distribucin de los datos a los usuarios. Un usuario puede escribir un query o una transaccin sobre la base de datos como si esta fuera centralizada.

FRAGMENTACIN DE LOS DATOS. Antes de decidir cmo dividir los datos, se deben determinar las unidades lgicas de la base de datos que van a ser distribuidas. Estas unidades lgicas se llaman: fragmentos. Fragmentacin Horizontal. Una fragmentacin horizontal de una relacin es un subconjunto de las tuplas de esa relacin. Las tuplas que pertenecen al fragmento horizontal son especificadas por una condicin relacionada con uno o ms atributos de la relacin (condiciones expresadas en el ). Fragmentacin Vertical. Una fragmentacin vertical es una relacin que guarda slo ciertos atributos de una relacin que se vinculan de alguna manera. Es importante incluir los atributos claves en cualquier fragmentacin vertical, de modo que la relacin original pueda ser reconstruida. Los atributos de este tipo de fragmentos se toman con la operacin . Fragmentacin Mixta. Es la definicin de un conjunto de fragmentos que incluyen todos los atributos y tuplas de la base de datos y satisface la condicin de que la base de datos total se puede reconstruir a partir de esos fragmentos al aplicar una secuencia de operaciones UNION. Esquema de Localizacin. Describe la localizacin de los fragmentos en los nodos de la BDD. Si un fragmento se copia en ms de un nodo se dice que est replicado o duplicado. Replicacin (duplicacin) de Datos y Localizacin. La replicacin es til porque mejora la disponibilidad de los datos. El caso ms extremo de la duplicacin es el tener rplicas de la BD en cada nodo o site. Ventajas de la duplicacin: Mejora la disponibilidad porque el sistema puede seguir operando con, al menos, un nodo. Mejora el rendimiento al recuperar datos en un solo nodo (si este nodo incluye un servidor). Desventajas: Actualizacin masiva en cada nodo. Concurrencia y recuperacin de fallas costosas. Otro extremo, opuesto a la total duplicacin, es la no duplicacin o no replicacin. Esto propone fragmentos disjuntos donde no se duplica ni un solo data tem, a esto se le llama localizacin no redundante. Ejemplo de Fragmentacin, Localizacin y Replicacin (Duplicacin) Supongamos que tenemos una organizacin que maneja, de forma automatizada, su base de datos. El modelo lgico relacional es el siguiente: Empleado(e-nombre,e-apellido,e-ci,f-nac,e-dir,sexo,salario,jefe-ci,d-num)

Bases de Datos Departamento(d-nombre,d-numero,f-inicio) UbicacionDepto(d-numero,d-local) Proyecto(p-nombre,p-numero,p-local,d-no) Trabaja-En(e-cident,p-no,horas) Dependiente(e-cident,dep-nombre,sex,f-nac,parentesco) Una instancia de la base de datos es la siguiente. Empleado

Bases de datos distribuidas

e-nombre e-apellido
Prez Gonzlez Bermdez Alves Flores

e-ci

f-nac

e-dir

Sexo
F M M F F

Salario
400000 350000 410000 524000 870000

Jefe-ci
99 67 67 99 Nulo

d-num
5 4 4 5 1

Maria Carlos Santiago Fabiola Emilia

11 24 33 55 78

16/02/48 24/03/50 07/06/66 17/04/65 28/12/45

Caracas Guacara Valencia San Antonio Los Teques

Departamento

d-nombre

d-numero
5 4 1

f-inicio
22/05/78 01/01/85 17/07/71

Recursos Administracin Direccin UbicacionDepto 1 4 5 Proyecto

d-numero

d-local
Caracas Valencia Los Teques

p-nombre

p-numero
1 2 3 10 20 30

p-local
Los Teques Caracas San Antonio Valencia Guacara Valencia

d-no
5 5 5 4 4 4

ProductoX ProductoY ProductoZ Computarizacin Reorganizacin Nuevos Beneficios Trabaja-En

e-cident
11 11 24 33 33 55 55 55

p-no
1 2 3 1 2 2 3 10

Horas
32.5 7.5 40 20 20 10 10 10

Bases de Datos 55 78 Dependiente 20 20 10 30

Bases de datos distribuidas

e-cident
11 24 33 55 78

dep-nombre
Alicia Teodoro Juan Miguel Elizabeth

Sex
F M M M F

f-nac
05/05/84 25/10/80 03/05/48 29/02/32 01/01/90

Parentesco
Hija Hijo Cnyuge Cnyuge Hija

La organizacin tiene una red con tres nodos (sites). El nodo 1 se halla en la Direccin, el nodo 2 se halla en el Departamento 5 y el nodo 3 se halla en el Departamento 4. Frecuentemente, cada departamento consulta la informacin de los empleados y los proyectos de su propia ingerencia, es decir, los empleados que trabajan en ese departamento y los proyectos que controla ese departamento. Adems, estos nodos (sites) estn interesados, la mayor parte de las veces en los atributos e-nombre, e-ci, salario y jefe-ci de la relacin EMPLEADO. El nodo 1 es utilizado por los directivos de la organizacin y ellos acceden todos los datos de la organizacin, para fines gerenciales. De acuerdo con esto, toda la base de datos puede estar almacenada en el nodo 1. Para determinar qu fragmentos deben estar duplicados (replicados) en los nodos 2 y 3, se procede a fragmentar horizontal y verticalmente. Localizacin de los Fragmentos en los Nodos Las relaciones Empleado, Departamento, UbicacinDepto y Proyecto se fragmentan horizontalmente por el atributo que identifica al departamento (d-num en Empleado, d-numero en Departamento y UbicacionDepto, d-no en Proyecto). Las siguientes figuras muestran la fragmentacin para d-numero=5 y d-numero=4. Adems, en ambos nodos se fragmenta verticalmente la relacin Empleado resultando slo los atributos requeridos en esos nodos e-nombre, e-apellido, e-ci, salario y jefe-ci. Para fragmentar la relacin Trabaja-En, no tenemos un atributo que directamente indica que empleado trabaja en qu proyecto. Si un empleado trabaja slo en proyectos controlados por el departamento al que l pertenece fragmentamos horizontalmente indicando en la condicin que p-no=d-no para cada empleado e-cident. Pero si un empleado que pertenece a un departamento puede trabajar tanto en proyectos controlados por su departamento como en proyectos controlados por otros departamentos entonces la condicin de la fragmentacin debe buscar los empleados del departamento que aparecen en Trabaja-En y los proyectos de Trabaja-En que controla el departamento (pus ah pueden estar empleados de otros departamentos) a) Empleado

e-nombre e-apellido
Prez Alves

e-ci

Salario

Jefe-ci

d-num

Maria Fabiola

11 55

400000 524000

99 99

5 5

Bases de Datos Departamento

Bases de datos distribuidas

d-nombre
Recursos

d-numero
5

f-inicio
22/05/78

UbicacionDepto 5 Proyecto

d-numero

d-local
Los Teques

p-nombre

p-numero
1 2 3

p-local
Los Teques Caracas San Antonio

d-no
5 5 5

ProductoX ProductoY ProductoZ Trabaja-En

e-cident
11 11 55 55 55 55

p-no
1 2 2 3 10 20

Horas
32.5 7.5 10 10 10 10

b) Empleado Carlos Santiago

e-nombre e-apellido
Gonzlez Bermdez

e-ci
24 33

Salario
350000 410000

Jefe-ci
67 67 4 4

d-num

Departamento

d-nombre

d-numero
4

f-inicio
01/01/85

Administracin UbicacionDepto 4 Proyecto

d-numero

d-local
Valencia

p-nombre

p-numero
10 20 30 Valencia Guacara Valencia

p-local

d-no
4 4 4

Computarizacin Reorganizacin Nuevos Beneficios Trabaja-En

e-cident
24 33

p-no
3 1

Horas
40 20

Bases de Datos 33 2 20

Bases de datos distribuidas

PROCESAMIENTO Y OPTIMIZACIN DE CONSULTAS (QUERIES) Adicionalmente a los costos asociados a las consultas que estudiamos anteriormente en el procesamiento centralizado, debemos sumar el costo de transferencia entre sites cuando trabajamos con una BDD. Entonces el costo de transferencia se convierte en un aspecto relevante del problema, dado que se consume un tiempo enviando los datos a travs de una red. Esta transferencia implica envo de resultados parciales de los queries y resultados finales de los queries. La meta en la optimizacin es enviar la menor cantidad posible de datos. Supongamos que tenemos: En el site 1: Empleado

e-nombre e-apellido

e-ci

f-nac

e-dir

Sexo

Salario

Jefe-ci

d-num

Con 10.000 tuplas Cada tupla tiene 100 bytes de longitud, en donde destacan los campos: e-ci con 9 bytes e-nombre con 15 bytes e-apellido con 15 bytes d-num con 4 bytes entonces esta relacin es del tamao 10.000 * 100 bytes = 1.000.000 bytes En el site 2: Departamento

d-nombre

d-numero

f-inicio

Con 100 tuplas Cada tupla es de 23 bytes en donde los campos tienen: d-numero 4 bytes d-nombre 10 bytes f-inicio 9 bytes entonces esta relacin es del tamao 100 * 23 bytes = 2.300 bytes Ahora supongamos, que desde el site 3, se hace la siguiente consulta: Q: "Para cada empleado diga el nombre, el apellido y el departamento en el cual trabaja". e-nombre,e-apellido,dnum (Empleado Departamento)
d-num=d-numero

Ni Empleado ni Departamento estn en el site 3 pero es all a donde debe llegar el resultado de la consulta. Esta consulta involucra a 10.000 tuplas de Empleado (dado que cada uno pertenece a un departamento). Supongamos que el tamao del resultado de la consulta, que slo pide nombre, apellido y nmero del departamento, es de 40 bytes. Qu estrategias se pueden seguir? Estrategia 1: Transferir tanto la relacin Empleado (del site 1) como la relacin Departamento del site 2 al site 3. Esto significa transferir: 1.000.000 + 2.300 = 1.002.300 bytes. Estrategia 2:

Bases de Datos

Bases de datos distribuidas

Transferir la relacin Empleado (del site 1) al site 2 y all hacer el join, luego enviar el resultado al site 3. Esto significa: 10.000 tuplas que vienen del site 1 ms 100 tuplas de Departamento que estn en el site 2. Como es una operacin join se seleccionan las tuplas coherentes y estas deben ser las mismas 10.000 tuplas pero aplicando el sabemos que el tamao del resultado es de 40 bytes por tupla. Entonces se deben transferir: 10.000 * 40 = 400.000 bytes que resultan del join + 1.000.000 de la transferencia de las tuplas de Empleado al site 2. Total se transfirieron 1.400.000 bytes por la red. Estrategia 3: Transferir Departamento al site 1 y all hacer el join, luego transferir el resultado al site 3. Esto significa: 2.300 + 40 *10.000 = 2.300 + 400.000 = 402.300 bytes transferidos para la consulta.

Segn nuestro criterio de optimizacin deberamos escoger la estrategia 3.

SEMIJOIN Existe una estrategia un poco ms compleja, para tratar estos casos, que trabaja mejor que cualquiera de las estrategias anteriores, llamada semijoin. La idea principal de la aplicacin de la operacin semijoin es reducir el nmero de tuplas de una relacin antes de enviarla a otro site. La idea intuitiva es enviar la columna adecuada de una relacin R, que se encuentra en un site, hacia otro site en donde se encuentra una relacin S que ser reunida con la columna transferida. Luego, el resultado es enviado al site donde se hizo la consulta. Para ilustrar esto, consideremos el caso anterior y apliquemos el semijoin: Proyectamos el atributo requerido para el join de la relacin Departamento en el site 2 y lo transferimos al site 1. Transferimos: F = d-numero (Departamento), esto equivale a 4 bytes* 100 tuplas = 400 bytes Luego hacemos el join y proyectamos sobre los atributos requeridos R = d-num,e-nombre,e-apellido( F Empleado)
d-num=d-numero

esto significa transferir 34 * 10.000 bytes = 340.000 bytes al site 3, en donde se presenta el resultado. En total se transfirieron 340.400 bytes, menos que con cualquiera de las estrategias anteriores. FORMALIZACIN DEL SEMIJOIN: R S = ( r) (R S)
A=B A=B

donde A y B son atributos compatibles La operacin semijoin no es conmutativa. CONTROL DE CONCURRENCIA Y RECOVERY EN BDD Se pueden presentar problemas adicionales, tales como: Tratar con mltiples copias de data tems. El control de concurrencia debe mantener la consistencia de las copias entre los distintos sites. Y el recovery debe asegurar que todas las copias queden igual despus de una falla.

10

Bases de Datos

Bases de datos distribuidas

Cadas de site individuales. El DDBMS debera poder seguir trabajando con los sites que no fallaron y una vez re-establecido el site cado, este debe actualizar antes de unirse al sistema. Fallas de las lneas de comunicacin. El caso extremo es el particionamiento de la red. Commit distribuido. Se usa en este caso el commit de dos fases. Deadlock distribuido.

TCNICAS PARA EL CONTROL DE CONCURRENCIA BASADO SOBRE UNA COPIA DISTINGUIDA DE UN DATO. La idea es designar una copia particular de cada data tem como una copia distinguida. Los locks son guardados con la copia distinguida y todos los requerimientos de locking y unlocking son enviados al site donde se halla la copia distinguida. Un mtodo para implementar esto es designar slo a un site (llamado coordinador) para guardar la copia distinguida, llamada tcnica del site primario. La ventaja es que es simple de tratar, una extensin del tratamiento centralizado. La desventaja es la posible generacin de cuellos de botella y, adems, si falla ese site se paraliza el sistema. Otro mtodo, es tener un site coordinador y un site de backup por si hay una cada de alguno, llamada tcnica del site primario con backup. La desventaja de este es que el sistema se vuelve lento y todos los locking y unlocking se hacen en ambos sites. Otras tcnicas son: la copia primaria y la escogencia de un site coordinador cuando hay una falla.

11

También podría gustarte