Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Bases de Datos
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
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
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
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
Bases de Datos
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
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
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
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
11 24 33 55 78
Departamento
d-nombre
d-numero
5 4 1
f-inicio
22/05/78 01/01/85 17/07/71
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
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
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
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
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
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
d-numero
d-local
Valencia
p-nombre
p-numero
10 20 30 Valencia Guacara Valencia
p-local
d-no
4 4 4
e-cident
24 33
p-no
3 1
Horas
40 20
Bases de Datos 33 2 20
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
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.
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
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