Anda di halaman 1dari 25

Base de Datos Distribuidas

UNIDAD I
Introduccin
La cantidad de innovaciones tecnolgicas que ha habido en los ltimos aos ha promovido un cambio en la forma de observar a los sistemas de informacin y, en general, a las aplicaciones computacionales. Existen avances tecnolgicos que se realizan continuamente en circuitos, dispositivos de almacenamiento, programas y metodologas. Sin embargo, los cambios tecnolgicos van de la mano con la demanda de los usuarios y programas para la explotacin exhaustiva de tales dispositivos mejorados. Por tanto, existe un continuo desarrollo de nuevos productos los cuales incorporan ideas nuevas desarrolladas por compaas e instituciones acadmicas. An cuando es posible que un usuario comn no perciba los desarrollos relevantes de nuevos productos, para las aplicaciones existe una demanda permanente por mayor funcionalidad, mayor nmero de servicios, ms flexibilidad y mejor rendimiento. As, al disear un nuevo sistema de informacin o al prolongar la vida de uno ya existente, se debe buscar siempre formas para enlazar las soluciones ofrecidas por la tecnologa disponible a las necesidades de las aplicaciones de los usuarios. Una rea en la cual las soluciones estn integrando tecnologa con nuevas arquitecturas o formas de hacer las cosas es, sin lugar a dudas, el rea de los sistemas distribuidos de informacin. Ellos se refieren al manejo de datos almacenados en facilidades de cmputo localizadas en muchos sitios ligados a travs de una red de comunicaciones. Un caso especfico de estos sistemas distribuidos es lo que se conoce como bases de datos distribuidas, tpico a estudiar en estas notas. Las bases de datos se han tenido diversos desarrollos en su arquitectura a travs de su historia, los mas representativos son: Bases de datos compartidas Bases de datos centralizadas Bases de datos distribuidas

Base de Datos Distribuidas

Motivaciones de distribucin
Existen dos fuerzas que han impulsado la evolucin de los sistemas de bases de datos. Por un lado los usuarios como parte de organizaciones ms complejas han demandado una serie de capacidades que se han ido incorporando en los sistemas de bases de datos (Figura 1.1). Un ejemplo de esto es la necesidad de integrar informacin proveniente de fuentes diversas. Por otro lado, la tecnologa ha hecho posible que algunas facilidades inicialmente imaginadas solo en sueos se conviertan en realidad. Por ejemplo, las transacciones en lnea que permite el sistema bancario actual no hubiera sido posible sin el desarrollo de los equipos de comunicacin. Los sistemas de cmputo distribuido son ejemplos claros en donde presiones organizacionales se combinan con la disponibilidad de nuevas tecnologas para hacer realidad tales aplicaciones.

1. La presin por datos distribuidos


La presin de los usuarios
Las bases de datos grandes permiten organizar la informacin relevante a alguna parte de la operacin de una organizacin como por ejemplo servicios de salud, corporaciones industriales o bancos. Casi cualquier organizacin que ha incorporado sistemas de informacin para su funcionamiento ha experimentado dos fases.

Fuerzas evolucionarias en los sistemas de bases de datos.


En la primera fase, se ha agrupando toda la informacin en un solo lugar. La idea original era que todos los accesos a datos podran ser integrados en un solo lugar usando herramientas de bases de datos tales como lenguajes de descripcin de datos, lenguajes de manipulacin de datos, mecanismos de acceso, verificadores de restricciones y lenguajes de alto nivel. Para poder tener estos mecanismos de almacenamiento y recuperacin de informacin, las organizaciones hicieron fuertes inversiones en equipos computacionales sofisticas y con grandes capacidades. Sin embargo, despus de experimentar por un tiempo con este enfoque, muchas organizaciones encontraron que el sistema completo era satisfactorio, en algn grado, para un buen nmero de usuarios pero muy pocos obtenan un servicio ptimo. Ms an, bajo este esquema centralizado los "propietarios" u originadores de la informacin especfica perdieron el control sobre el manejo de su informacin ya que sta no se almacenaba en sus lugares de trabajo. Algunos experimentos mostraron que el 90% de las operaciones de entrada y salida de informacin eran "locales" (correspondientes al departamento que las generaba) y solo el 10% de tales operaciones involucraba informacin cruzada (informacin proveniente de ms de un departamento). As, en la segunda fase se promovi la descentralizacin de los sistemas de bases de datos corporativos. Entonces, se empezaron a adquirir sistemas de software y

Base de Datos Distribuidas

hardware departamentales. Este enfoque present grandes beneficios para el control de la seguridad de la informacin y la disponibilidad de la misma. Permiti que los esquemas de mantenimiento y planeacin de los sistemas de informacin afectara en menor medida al funcionamiento general de la organizacin. Sin embargo, muy pronto empezaron a aparecer inconvenientes con este enfoque. Se presentaron problemas de consistencia de la informacin entre los sistemas locales y central y se hallaron dificultados al transferir informacin de entre departamentos diferentes de una corporacin. De esta manera, en una tercera fase (la cual an no ha concluido) se ha tratado de formalizar la descentralizacin de las bases de datos y de sus funciones manteniendo la integridad de la informacin y quiz algn tipo de control centralizado o distribuido.

La presin de la tecnologa
Existen buenas razones tcnicas para distribuir datos. La ms obvia es la referente a la sobrecarga de los canales de entrada y salida a los discos en donde se almacena finalmente la informacin. Es mucho mejor distribuir los accesos a la informacin sobre diferentes canales que concentrarlos en uno solo. Otra razn de peso es que las redes de computadoras empezaron a trabajar a velocidades razonables abriendo la puerta a la distribucin del trabajo y la informacin. El hacer una descentralizacin de la informacin se justifica desde el punto de vista tecnolgico por las siguientes razones:
Para permitir autonoma local y promover la evolucin de los sistemas y los cambios en los requerimientos de usuario. Para proveer una arquitectura de sistemas simple, flexible y tolerante a fallas. Para ofrecer buenos rendimientos.

Existen aplicaciones que nacieron distribuidas. Para ellas ha sido necesario el uso de nuevas tecnologas para integrar sistemas de informacin diferentes, de forma que, no se afecte de manera sustancial el estilo de trabajo o de hacer las cosas de los usuarios. Aunque la idea de distribucin de datos es bastante atractiva, su realizacin conlleva la superacin de una serie de dificultades tecnolgicas entre las que se pueden mencionar:
Asegurar que el acceso entre diferentes sitios o nodos y el procesamiento de datos se realice de manera eficiente, presumiblemente ptima. Transformar datos e integrar diferentes tipos de procesamiento entre nodos de un ambiente distribuido. Distribuir datos en los nodos del ambiente distribuido de una manera ptima. Controlar el acceso a los datos disponibles en el ambiente distribuido. Soportar la recuperacin de errores de diferentes mdulos del sistema de manera segura y eficiente. Asegurar que los sistemas locales y globales permanezcan como una imagen fiel del mundo real evitando la interferencia destructiva que pueden ocasionar diferentes transacciones en el sistema.

Base de Datos Distribuidas

As tambin, la aplicacin de tcnicas de distribucin de informacin requiere de superar algunas dificultades de ndole organizacional y algunas otras relacionadas con los usuarios. Entre ellas se puede mencionar:
El desarrollo de modelos para estimar la capacidad y el trfico esperado en el sistema distribuido. Soportar el diseo de sistemas de informacin distribuidos. Por ejemplo, ayudar a decidir donde localizar algn dato particular o donde es mejor ejecutar un programa de aplicacin. Considerar la competencia que habr por el uso de los recursos entre nodos diferentes.

Aun cuando las dificultades mencionadas son importantes, las ventajas de la distribucin de informacin han promovido su aplicacin en ambientes del presente y del futuro.

2. Heterogeneidad y la presin para integrar datos


La descentralizacin de los sistemas de informacin y el advenimiento de los sistemas distribuidos estn bien justificados. Sin embargo, existe todava un argumento importante para el desarrollo de sistemas de bases de datos distribuidas; ste se refiere a la integracin de necesidades de procesamiento no locales en donde es necesario intercambiar informacin proveniente de otras reas o departamentos. La descentralizacin de la informacin promueve la heterogeneidad en su manejo. La heterogeneidad se puede dar a muchos niveles, desde la forma y significado de cada dato hasta el formato y el medio de almacenamiento que se elige para guardarlo. La integracin de la informacin es de importancia mayor para el funcionamiento de una organizacin. En resumen, en los sistemas de bases de datos distribuidas se persigue la integracin de sistemas de bases de datos diversos no necesariamente homogneos para dar a los usuarios una visin global de la informacin disponible. Este proceso de integracin no implica la centralizacin de la informacin, ms bien, con la ayuda de la tecnologa de redes de computadoras disponible, la informacin se mantiene distribuida (localizada en diversos lugares) y los sistemas de bases de datos distribuidos permiten el acceso a ella como si estuviera localizada en un solo lugar. La distribucin de la informacin permite, entre otras cosas, tener accesos rpidos a la informacin, tener copias de la informacin para accesos ms rpidos y para tener respaldo en caso de fallas.

Base de Datos Distribuidas

3. Computacin Distribuida
Los sistemas de bases de datos distribuidas son un caso particular de los sistemas de cmputo distribuido o sistemas distribuidos en los cuales un conjunto de elementos de procesamiento autnomos (no necesariamente homogneos) se interconectan por una red de comunicaciones y cooperan entre ellos para realizar sus tareas asignadas. Histricamente, el cmputo distribuido se ha estudiado desde muchos puntos de vista. As, es comn encontrar en la literatura un gran nmero de trminos que se han usado para identificarlo. Entre los trminos ms comunes que se utilizan para referirse al cmputo distribuido podemos encontrar: funciones distribuidas, procesamiento distribuido de datos, multiprocesadores, multicomputadoras, procesamiento satelital, procesamiento tipo "backend", computadoras dedicadas y de propsito especfico, sistemas de tiempo compartido, sistemas funcionalmente modulares. Existen muchas componentes a distribuir para realizar una tarea. En computacin distribuida los elementos que se pueden distribuir son:
Control. Las actividades relacionadas con el manejo o administracin del sistema. Datos. La informacin que maneja el sistema. Funciones. Las actividades que cada elemento del sistema realiza. Procesamiento lgico. Las tareas especficas involucradas en una actividad de procesamiento de informacin.

Motivacin de los sistemas de bases de datos distribuidos.

Base de Datos Distribuidas

Conceptos bsicos
Una base de datos distribuida (BDD) es un conjunto de mltiples elementos de informacin organizados en bases de datos lgicamente relacionadas entre si las cuales se encuentran distribuidas entre diferentes sitios interconectados por una red de comunicaciones. Una Base de Datos Distribuida especifica a dos o ms bases de datos construidas sobre una red computacional y no por el contrario en una mquina aislada. La informacin que constituye la base de datos esta almacenada en diferentes sitios en la red, y las aplicaciones que se ejecutan accesan datos en distintos sitios. Una Base de Datos Distribuida entonces es una coleccin de datos que pertenecen lgicamente a un slo sistema, pero se encuentra fsicamente esparcido en varios "sitios" de la red. Cada sitio es un sistema de base de datos en s mismo, los sitios trabajar juntos ( si es necesario ) 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. Cada sitio participa en la ejecucin de al menos una transaccin global la cual requiere el acceso en diversos sitios.
Transaccin Local: Aquellas que no implican comunicacin global. Solo un S.M.B.D. por lo tanto la transaccin solo lo abarca a el. Transaccin Global: Aquellas transacciones que ocupan mas de un S.M.B.D.

Un sistema de bases de datos distribuida (SBDD) es un sistema en el cual mltiples sitios de bases de datos estn ligados por un sistema de comunicaciones, de tal forma que, un usuario en cualquier sitio puede accesar los datos en cualquier parte de la red exactamente como si los datos estuvieran almacenados en su sitio propio de manera transparente. La diferencia principal entre los sistemas de bases de datos centralizados y los distribuidos es que en los primeros, los datos residen en una sola localidad, mientras que, en lo ltimos, se encuentran en varias localidades. Cada localidad puede procesar transacciones locales , es decir, aquellas que slo acceden a datos que residen en esa localidad. Adems, una localidad puede participar en la ejecucin de transacciones globales , es decir, aquellas que acceden a datos de varias localidades, sta requiere comunicacin entre las localidades. Una transaccin local es la que accede a cuentas en la localidad individual donde se inicio. En cambio, una transaccin global accede a cuentas de una localidad distinta a la localidad donde se inicio o a cuentas de varias localidades diferentes.

Base de Datos Distribuidas

Un sistema manejador de bases de datos distribuidas (SMBDD) es aquel que se encarga del manejo y administracin de la BDD y proporciona mecanismos de acceso que hace que la distribucin sea transparente a los usuarios. El trmino transparente significa que la aplicacin trabajara, desde un punto de vista lgico, como si un solo SMBD ejecutado en una sola mquina, administrara esos datos.

Un sistema de base de datos distribuida (SBDD) es entonces el resultado de la integracin de una base de datos distribuida con un sistema para su manejo. Dada la definicin anterior, es claro que algunos sistemas no se pueden considerar como SBDD. Por ejemplo, un sistema de base de datos compartido no incluye necesariamente un sistema nico de manejo de bases de datos y, en caso de que lo haga, ste es controlado y administrado por una sola computadora. Un sistema de multiprocesamiento puede administrar una base de datos pero lo hace usualmente a travs de un solo sistema de manejo de base de datos; los procesadores se utilizan para distribuir la carga de trabajo del sistema completo o incluso del propio SMBD pero actuando sobre una sola base de datos. Finalmente, una base de datos la cual reside en un solo sitio de una red de computadoras y que es accesada por todos los nodos de la red no es una base de datos distribuida (Figura 1.3). Este caso se trata de una base de datos cuyo control y administracin esta centralizada en un solo nodo pero se permite el acceso a ella a travs de la red de computadoras.

Base de Datos Distribuidas

El medio ambiente tpico de un SMBDD consiste de un conjunto de sitios o nodos los cuales tiene un sistema de procesamiento de datos completo que incluye una base de datos local, un sistema de manejo de bases de datos y facilidades de comunicaciones. Si los diferentes sitios pueden estar geogrficamente dispersos, entonces, ellos estn interconectados por una red de tipo WAN. Por otro lado, si los sitios estn localizados en diferentes edificios o departamentos de una misma organizacin pero geogrficamente en la misma ubicacin, entonces, estn conectados por una red local (LAN).

Un sistema centralizado sobre una red.

Un medio ambiente distribuido para bases de datos.

Base de Datos Distribuidas

En resumen, dadas las definiciones anteriores, la llamada "base de datos distribuida" es en realidad una especie de objeto virtual, cuyas partes componentes se almacenan fsicamente en varias bases de datos "reales" distintas ubicadas en diferentes sitios. De hecho, es la unin lgica de esas bases de datos. En otras palabras, cada sitio tiene sus propias bases de datos "reales" locales, sus propios usuarios locales, sus propios DBMS y programas para la administracin de transacciones ( incluyendo programas de bloqueo, bitcoras, recuperacin, etc ), y su propio administrador local de comunicacin de datos ( administrador DC ). En particular un usuario dado puede realizar operaciones sobre los datos en su propio sitio local exactamente como si ese sitio no participara en absoluto en el sistema distribuido ( al menos, se es uno de los objetivos ). As pues, el sistema de bases de datos distribuidas puede considerarse como una especie de sociedad entre los DBMS individuales locales de todos los sitios. Un nuevo componente de software en cada sitio ( en el aspecto lgico, una extensin del DBMS local ) realiza las funciones de sociedad necesarias; y es la combinacin de este nuevo componente y el DBMS ya existente lo que constituye el llamado "sistema de administracin de bases de datos distribuidas" (DDBMS, distributed database management system ).

Sistema de Base De Datos Distribuidos (S.B.D.D.)

Todas las Base de Datos Distribuidas (B.D.D.)

Sistema Manejador de Base de Datos Distribuidas (S.M.B.D.D.)

Ejemplos de bases de datos distribuidas Ejemplo 1.1 Considere un banco que tiene tres sucursales, en cada sucursal, un computador controla las terminales de la misma y el sistema de cuentas. Cada computador con su sistema de cuentas local en cada sucursal constituye un "sitio" de la BDD; las computadoras estn conectadas por la red. Durante las operaciones normales, las aplicaciones en las terminales de la sucursal necesitan solo accesar la BD de la misma. Como solo accesan la misma red local, se les llaman aplicaciones locales . Desde el punto de vista tecnolgico, aparentemente lo importante es la existencia de algunas transacciones que accesen informacin en ms de una sucursal. stas transacciones son llamadas transacciones globales o transacciones distribuidas. La existencia de transacciones globales ser considerada como una caracterstica que nos ayude a discriminar entre las BDD y un conjunto de base de datos locales. Una tpica transaccin global sera una transferencia de fondos de una sucursal a otra. Esta aplicacin requiere de actualizar datos en dos diferentes sucursales y asegurarse de la real actualizacin en ambos sitios o en ninguno. Asegurar el buen funcionamiento de aplicaciones globales es una tarea difcil. En el ejemplo 1.1 las computadoras estaban Geogrficamente en diferentes puntos; tambin, BDD pueden ser construidas en una red local.

Base de Datos Distribuidas

Ejemplo 1.2 Considere el mismo banco del ejemplo previo, con las mismas aplicaciones, pero con un sistema configurado como en la figura anterior (Un medio ambiente distribuido para bases de datos). Los mismos procesadores con sus bases de datos han sido movidos de sus sucursales a un edificio comn y ahora estn conectados entre si en un radio con un amplio ancho de banda. Las terminales de las sucursales estn conectadas a sus respectivos computadores por lneas telefnicas. Cada procesador y su base de datos constituye un sitio de la red local. Vemos que la estructura fsica de las conexiones a cambiado con respecto al ejemplo 1.1, pero las caractersticas de la arquitectura son las mismas. En particular, los mismos computadores ejecutan las mismas aplicaciones, accesando las mismas bases de datos. La transaccin local del ejemplo anterior an es local, no por el hecho geogrfico, si no por el hecho de que solo un computador por bases de datos est envuelto en el proceso. Si hay aplicaciones globales, es conveniente considerar este ejemplo como BDD, ya que muchas caractersticas que el ejemplo previo present son an vlidas. Apesar de todo, el hecho de que la BDD sea implementada en una red local o en una grficamente distribuida, cambian muchas veces el tipo de solucin que se busca para un problema. Ejemplo 1.3 Qu no es una Base de Datos Distribuida? Un caso de sistema NO considerado BDD : Considere el mismo banco del ejemplo anterior, pero con la configuracin del sistema mostrado en la posterior a la anterior(Un sistema centralizado sobre una red.). La informacin en diferentes sucursales esta distribuida en tres computadores ( "backend" computers ), que realizan el control de funciones de la base de datos. Las aplicaciones son ejecutadas por diferentes computadores. [BDD, sistema multiproceso] La razn para no considerar esta una base de datos distribuida: an cuando la informacin se encuentra fsicamente distribuida en diferentes procesadores, su distribucin, no es relevante desde el punto de vista de la aplicacin. Lo que perdemos aqui es la existencia de aplicaciones locales, en el sentido de que la integracin del sistema ha alcanzado el punto donde ninguno de los computadores ser capaz de ejecutar una transaccin por si mismo. Por qu son deseables las bases de datos distribuidas? La respuesta bsica a esta pregunta es que por lo regular las empresas ya estn distribuidas, por lo menos desde el punto de vista lgico ( en divisiones, departamentos, proyectos, etc ) y muy probablemente en el sentido fsico tambin ( en plantas, talleres, laboratorios, y dems ), de lo cual se desprende que en general la informacin ya est tambin distribuida, porque cada unidad de organizacin dentro de la empresa mantendr por fuerza los datos pertinentes a su propio funcionamiento. As pues, un sistema distribuido permite que la estructura de la base de datos refleje la estructura de la empresa : los datos locales se pueden mantener en forma local, donde por lgica deben estar, pero al mismo tiempo es posible obtener acceso a datos remotos en caso necesario.

10

Base de Datos Distribuidas

Ventajas
Los SMBDD tienen mltiples ventajas. En primer lugar los datos son localizados en lugar ms cercano, por tanto, el acceso es ms rpido, el procesamiento es rpido debido a que varios nodos intervienen en el procesamiento de una carga de trabajo, nuevos nodos se pueden agregar fcil y rpidamente. La comunicacin entre nodos se mejora, los costos de operacin se reducen, son amigables al usuario, la probabilidad de que una falla en un solo nodo afecte al sistema es baja y existe una autonoma e independencia entre los nodos. Las razones por las que compaas y negocios migran hacia bases de datos distribuidas incluyen razones organizacionales y econmicas, para obtener una interconexin confiable y flexible con las bases de datos existente, y por un crecimiento futuro. El enfoque distribuido de las bases de datos se adapta ms naturalmente a la estructura de las organizaciones. Adems, la necesidad de desarrollar una aplicacin global (que incluya a toda la organizacin), se resuelva fcilmente con bases de datos distribuidas. Si una organizacin crece por medio de la creacin de unidades o departamentos nuevos, entonces, el enfoque de bases de datos distribuidas permite un crecimiento suave. Los datos se pueden colocar fsicamente en el lugar donde se accesan ms frecuentemente, haciendo que los usuarios tengan control local de los datos con los que interactan. Esto resulta en una autonoma local de datos permitiendo a los usuarios aplicar polticas locales respecto del tipo de accesos a sus datos. Mediante la replicacin de informacin, las bases de datos distribuidas pueden presentar cierto grado de tolerancia a fallas haciendo que el funcionamiento del sistema no dependa de un solo lugar como en el caso de las bases de datos centralizadas.

Desventajas
La principal desventaja se refiere al control y manejo de los datos. Dado que stos residen en muchos nodos diferentes y se pueden consultar por nodos diversos de la red, la probabilidad de violaciones de seguridad es creciente si no se toman las precauciones debidas. La habilidad para asegurar la integridad de la informacin en presencia de fallas no predecibles tanto de componentes de hardware como de software es compleja. La integridad se refiere a la consistencia, validez y exactitud de la informacin. Dado que los datos pueden estar replicados, el control de concurrencia y los mecanismos de recuperacin son mucho ms complejos que en un sistema centralizado.

11

Base de Datos Distribuidas

Aspectos importantes de los SMBD distribuidos


Existen varios factores relacionados a la construccin de bases de datos distribuidas que no se presentan en bases de datos centralizadas. Entre los ms importantes se encuentran los siguientes: 1. Diseo de la base de datos distribuida. En el diseo de bases de datos distribuidas se debe considerar el problema de como distribuir la informacin entre diferentes sitios. Existen razones organizacionales las cuales determinan en gran medida lo anterior. Sin embargo, cuando se busca eficiencia en el acceso a la informacin, se deben abordar dos problemas relacionados. Primero, como fragmentar la informacin. Segundo, como asignar cada fragmento entre los diferentes sitios de la red. En el diseo de la BDD tambin es importante considerar si la informacin est replicada, es decir, si existen copias mltiples del mismo dato y, en este caso, como mantener la consistencia de la informacin. Finalmente, una parte importante en el diseo de una BDD se refiere al manejo del directorio. Si existen nicamente usuarios globales, se debe manejar un solo directorio global. Sin embargo, si existen tambin usuarios locales, el directorio combina informacin local con informacin global. 2. Procesamiento de consultas. El procesamiento de consultas es de suma importancia en bases de datos centralizadas. Sin embargo, en BDD ste adquiere una relevancia mayor. El objetivo es convertir transacciones de usuario en instrucciones para manipulacin de datos. No obstante, el orden en que se realizan las transacciones afecta grandemente la velocidad de respuesta del sistema. As, el procesamiento de consultas presenta un problema de optimizacin en el cual se determina el orden en el cual se hace la menor cantidad de operaciones. Este problema de optimizacin es NPdifcil, por lo que en tiempos razonables solo se pueden obtener soluciones aproximadas. En BDD se tiene que considerar el procesamiento local de una consulta junto con el costo de transmisin de informacin al lugar en donde se solicit la consulta. 3. Control de concurrencia. El control de concurrencia es la actividad de coordinar accesos concurrentes a la base de datos. El control de concurrencia permite a los usuarios accesar la base de datos en una forma multiprogramada mientras se preserva la ilusin de que cada usuario est utilizndola solo en un sistema dedicado. El control de concurrencia asegura que transacciones mltiples sometidas por usuarios diferentes no interfieran unas con otras de forma que se produzcan resultados incorrectos. En BDD el control de concurrencia es an ms complejo que en sistemas centralizados. Los algoritmos ms utilizados son variaciones de aquellos usados en sistemas centralizados: candados de dos fases, ordenamiento por estampas de tiempo, ordenamiento por estampas de tiempo mltiples y control de concurrencia optimista. Un aspecto interesante del control de concurrencia es el manejo de interbloqueos. El sistema no debe permitir que dos o ms transacciones se bloqueen entre ellas.

12

Base de Datos Distribuidas

4. Confiabilidad. En cualquier sistema de bases de datos, centralizado o distribuido, se debe ofrecer garantas de que la informacin es confiable. As cada consulta o actualizacin de la informacin se realiza mediante transacciones, las cuales tienen un inicio y fin. En sistemas distribuidos, el manejo de la atomicidad y durabilidad de las transacciones es an ms complejo, ya que una sola transaccin puede involucrar dos o ms sitios de la red. As, el control de recuperacin en sistemas distribuidos debe asegurar que el conjunto de agentes que participan en una transaccin realicen todos un compromiso (commit) al unsono o todos al mismo tiempo restablezcan la informacin anterior (roll-back). En la Figura siguiente se presenta un diagrama con las relaciones entre los aspectos relevantes sobre las BDD.

Factores importantes en BDD.

13

Base de Datos Distribuidas

Un principio fundamental de los sistemas de bases de datos distribuidos


El principio fundamental de las bases de datos distribuidas : Desde el punto de vista del usuario, un sistema distribuido deber ser idntico a un sistema no distribuido. En otras palabras, los usuarios de un sistema distribuido debern comportarse exactamente como si el sistema no estuviera distribuido. Todos los problemas de los sistemas distribuidos son (o deberan ser ) internos o a nivel de realizacin, no externos o a nivel del usuario. Llamaremos al principio fundamental recin identificado la "regla cero" de los sistemas distribuidos. La regla cero conduce a varios objetivos o reglas secundarios - doce en realidadsiguientes: 1. Autonoma local. 2. No dependencia de un sitio central. 3. Operacin continua. 4. Independencia con respecto a la localizacin. 5. Independencia con respecto a la fragmentacin. 6. Independencia de rplica. 7. Procesamiento distribuido de consultas. 8. Manejo distribuido de transacciones. 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.

Estas doce reglas no son todas independientes entre s, ni son por fuerza exhaustivas, ni tienen todas la misma importancia ( diferentes usuarios darn diferentes grados de importancia a diferentes reglas en diferentes ambientes ). Sin embargo, s son tiles como fundamento para entender la tecnologa distribuida y como marco de referencia para caracterizar la funcionalidad de sistemas distribuidos especficos. Un ltimo punto introductorio: es importante distinguir los sistemas distribuidos de bases de datos verdaderos, generalizados, de los sistemas que tan solo ofrecen algn tipo de acceso remoto a los datos ( llamados a veces sistemas de procesamiento distribuido o sistemas de red ). En un " sistema de acceso remoto a los datos ", el usuario podra ser capaz de trabajar con datos de un sitio remoto, o aun con datos de varios sitios remotos al mismo tiempo, pero " se notan las costuras" ; el usuario definitivamente est consciente ( en mayor o menor grado ) de que los datos son remotos, y debe comportarse de manera acorde. En cambio, en un sistema distribuido verdadero, las costuras son invisibles.

14

Base de Datos Distribuidas

Las doce reglas. 1. Autonoma Local. Los sitios de un sistema distribuido deben ser autnomos. La autonoma local significa que todas las operaciones en un sitio dado se controlan en ese sitio; ningn sitio X deber depender de algn otro sitio Y para su buen funcionamiento (pues de otra manera el sitio X podra ser incapaz de trabajar, aunque no tenga en s problema alguno, si cae el sitio Y, situacin a todas luces indeseable). La autonoma local implica tambin un propietario y una administracin locales de los datos, con responsabilidad local : todos los datos pertenecen " en realidad" a una base de datos local, aunque sean accesibles desde algn sitio remoto. Por tanto, las cuestiones de seguridad, integridad y representacin en almacenamiento de los datos locales permanecen bajo el control de la instalacin local. 2. No dependencia de un sitio central. La autonoma local implica que todos los sitios deben tratarse igual; no debe haber dependencia de un sitio central "maestro" para obtener un servicio central, como por ejemplo un procesamiento centralizado de las consultas o una administracin centralizada de las transacciones, de modo que todo el sistema dependa de ese sitio central. Este segundo objetivo es por tanto un corolario del primero ( si se logra el primero, se lograr pro fuerza el segundo ) . Pero la "no dependencia de un sitio central" es deseable por s misma, aun si no se logra la autonoma local completa. Por ello vale la pena expresarlo como un objetivo separado. La dependencia de un sitio central sera indeseable al menos por las siguientes razones : en primer lugar, ese sitio central podra ser un cuello de botella; en segundo lugar, el sistema sera vulnerable ; si el sitio central sufriera un desperfecto, todo el sistema dejara de funcionar. 3. Operacin continua. En un sistema distribuido, lo mismo que en uno no distribuido, idealmente nunca debera haber necesidad de apagar a propsito el sistema Es decir, el sistema nunca debera necesitar apagarse para que se pueda realizar alguna funcin, como aadirse un nuevo sitio o instalar una versin mejorada del DBMS en un sitio ya existente. 4. Independencia con respecto a la localizacin. La idea bsica de la independencia con respecto a la localizacin (tambin conocida como transparencia de localizacin) es simple : no debe ser necesario que los usuarios sepan dnde estn almacenados fsicamente los datos, sino que ms bien deben poder comportarse - al menos desde un punto de vista lgico - como si todos los datos estuvieran almacenados en su propio sitio local. La independencia con respecto a la localizacin es deseable porque simplifica los programas de los usuarios y sus actividades en la terminal. En particular, hace posible la migracin de datos de un sitio a otro sin anular la validez de ninguno de esos programas o actividades. Esta posibilidad de migracin es deseable pues permite modificar la distribucin de los datos dentro de la red en respuesta a cambios en los requerimientos de desempeo.

15

Base de Datos Distribuidas

5. Independencia con respecto a la fragmentacin. Un sistema maneja fragmentacin de los datos si es posible dividir una relacin en partes o "fragmentos" para propsitos de almacenamiento fsico. La fragmentacin es deseable por razones de desempeo: los datos pueden almacenarse en la localidad donde se utilizan con mayor frecuencia, de manera que la mayor parte de las operaciones sean slo locales y se reduzca al trfico en la red. Por ejemplo, la relacin empleados EMP podra fragmentarse de manera que los registros de los empleados de Nueva York se almacenen en el sitio de Nueva York, en tanto que los registros de los empleados de Londres se almacenan en el sitio de Londres. Existen en esencia dos clases de fragmentacin, horizontal y vertical, correspondientes a las operaciones relacionales de restriccin y proyeccin; respectivamente. En trminos ms generales, un fragmento puede ser cualquier subrelacin arbitraria que pueda derivarse de la relacin original mediante operaciones de restriccin y proyeccin ( excepto que, en el caso de la proyeccin es obvio que las proyecciones deben conservar la clave primaria de la relacin original ). La reconstruccin de la relacin original a partir de los fragmentos se hace mediante operaciones de reunin y unin apropiadas ( reunin en el caso de fragmentacin vertical, y la unin en casos de fragmentacin horizontal ). Ahora llegamos a un punto principal : un sistema que maneja la fragmentacin de los datos deber ofrecer tambin una independencia con respecto a la fragmentacin (llamada tambin transparencia de fragmentacin). La independencia con respecto a la fragmentacin ( al igual que la independencia con respecto a la independencia con respecto a la localizacin) es deseable porque simplifica los programas de los usuarios y sus actividades en la terminal. 6. Independencia de rplica. Un sistema maneja rplica de datos si una relacin dada ( en trminos ms generales, un fragmento dado en una relacin) se puede representar en el nivel fsico mediante varias copias rplicas, en muchos sitios distintos. La rplica es deseable al menos por dos razones: en primer lugar, puede producir un mejor desempeo (las aplicaciones pueden operar sobre copias locales en vez de tener que comunicarse con sitios remotos) ; en segundo lugar, tambin puede significar una mejor disponibilidad (un objeto estar disponible para su procesamiento en tanto est disponible por lo menos una copia, al menos para propsitos de recuperacin). La desventaja principal de las rplicas es desde luego que cuando se pone al da un cierto objeto copiado, deben ponerse al da todas las rplicas de ese objeto : el problema de la propagacin de actualizaciones. La rplica como la fragmentacin, debe ser "transparente para el usuario". En otras palabras, un sistema que maneja la rplica de los datos deber ofrecer tambin una independencia de rplica (conocida tambin como transparencia de rplica); es decir, los usuarios debern poder comportarse como si slo existiera una copia de los datos. La independencia de rplica es buena porque simplifica los programas de los usuarios y sus actividades en la terminal. En particular, permite la creacin y eliminacin dinmicas de las rplicas en cualquier momento en respuesta a cambios en los requerimientos, sin anular la validez de esos programas o actividades de los usuarios.

16

Base de Datos Distribuidas

7. Procesamiento distribuido de consultas. En este aspecto debemos mencionar dos puntos amplios. Primero consideremos la consulta "obtener los proveedores de partes rojas en Londres". Supongamos que el usuario est en la instalacin de Nueva York y los datos estn en el sitio de Londres. Supongamos tambin que son n/ n registros de Londres a Nueva York. Si, por otro lado, el sistema no es relacional, sino de un registro a la vez, la consulta implicar en esencia 2n mensajes : n de Nueva York a Londres solicitando el siguiente registro, y n de Londres a Nueva York para devolver ese siguiente registro. As, el ejemplo ilustra el punto de que un sistema relacional tendr con toda probabilidad un mejor desempeo que uno no relacional (para cualquier consulta que solicite varios registros), quiz en varios rdenes de magnitud. En segundo lugar, la optimizacin es todava ms importante en un sistema distribuido que en uno centralizado. Lo esencial es que, en una consulta como la anterior, donde estn implicados varios sitios, habr muchas maneras de trasladar los datos en al red para satisfacer la solicitud, y es crucial encontrar una estrategia suficiente. Por ejemplo, una solicitud de unin de una relacin Rx almacenada en el sitio X y una relacin Ry almacenada en el sitio Y podra llevarse a cabo trasladando Rx a Y o trasladando Ry a X, o trasladando las dos a un tercer sitio Z . 8. Manejo distribuido de transacciones. El manejo de transacciones tiene dos aspectos principales, el control de recuperacin y el control de concurrencia, cada uno de los cuales requiere un tratamiento ms amplio en el ambiente distribuido. Para explicar ese tratamiento ms amplio es preciso introducir primero un trmino nuevo, "agente". En un sistema distribuido, una sola transaccin puede implicar la ejecucin de cdigo en varios sitios ( en particular puede implicar a actualizaciones en varios sitios ). Por tanto, se dice que cada transaccin est compuesta de varios agentes, donde un agente es el proceso ejecutado en nombre de una transaccin dada en determinado sitio. Y el sistema necesita saber cundo dos agentes son parte de la misma transaccin; por ejemplo, es obvio que no puede permitirse un bloqueo mutuo entre dos agentes que sean parte de la misma transaccin. La cuestin especifica del control de recuperacin; : para asegurar, pues que una transaccin dada sea atmica ( todo o nada ) en el ambiente distribuido, el sistema debe asegurarse de que todos los agentes correspondientes a esa transaccin se comprometan al unsono o bien que retrocedan al unsono. Este efecto puede lograrse mediante el protocolo de compromiso en dos fases. En cuanto al control de concurrencia, esta funcin en un ambiente distribuido estar basada con toda seguridad en el bloqueo, como sucede en los sistemas no distribuidos.

17

Base de Datos Distribuidas

9. Independencia con respecto al equipo. En realidad, no hay mucho que decir acerca de este tema, el ttulo lo dice todo. Las instalaciones de cmputo en el mundo real por lo regular incluyen varias mquinas diferentes -mquinas IBM, DEC, HP, UNISYS, PC etc- y existe una verdadera necesidad de poder integrar los datos en todos esos sistemas y presentar al usuario "una sola imagen del sistema". Por tanto conviene ejecutar el mismo DBMS en diferentes equipos, y adems lograr que esos diferentes equipos participen como socios iguales en un sistema distribuido. 10. Independencia con respecto al sistema operativo. Este objetivo es un corolario del anterior. Es obvia la conveniencia no slo de poder ejecutar el mismo DBMS en diferentes equipos, sino tambin poder ejecutarlo en diferentes sistemas operativos y lograr que una versin MVS y una UNIX y una PC/DOS participen todas en el mismo sistema distribuido. 11. Independencia con respecto a la red. Si el sistema ha de poder manejar mltiples sitios diferentes, con equipo distinto y diferentes sistemas operativos, resulta obvia la conveniencia de poder manejar tambin varias redes de comunicacin distintas. 12. Independencia con respecto al DBMS. Bajo este ttulo consideramos las implicaciones de relajar la suposicin de homogeneidad estricta. Puede alegarse que esa suposicin es quiz demasiado rgida. En realidad, no se requiere sino que los DBMS en los diferentes sitios manejen todos la misma interfaz ; no necesitan ser por fuerza copias del mismo sistema.

18

Base de Datos Distribuidas

Estructura de una Base de Datos Distribuida


Ya se ha comentado que un sistema de base de datos distribuidas consiste en un conjunto manejadores de bases de datos ubicados en distintas localidades, cada una de las cuales mantiene un sistema de base de datos local. Cada localidad puede procesar transacciones locales, o bien transacciones globales entre varias localidades, requiriendo para ello comunicacin entre ellas. Las localidades pueden conectarse fsicamente de diversas formas, las principales son: Red totalmente conectada Red parcialmente conectada Red con estructura de rbol Red de estrella Red de anillo
Estrella Estructura de rbol

Totalmente Conectado

Parcialmente Conectado

Anillo

Las diferencias principales entre estas configuraciones son: Coste de instalacin: El coste de conectar fsicamente las localidades del sistema. Coste de comunicacin: El coste en tiempo y dinero que implica enviar un mensaje desde la localidad A a la B. Fiabilidad: La frecuencia con que falla una lnea de comunicacin o una localidad. Disponibilidad: La posibilidad de acceder a informacin a pesar de fallos en algunas localidades o lneas de comunicacin.

Las localidades pueden estar dispersas, ya sea por un rea geogrfica extensa (a lo largo de un pas), llamadas redes de larga distancia; o en un rea reducida (en un mismo edificio), llamadas redes de rea local. Para las primeras se utilizan en la comunicacin lneas telefnicas, conexiones de microondas y canales de satlites; mientras que para las segundas se utiliza cables coaxiales de banda base o banda ancha y fibra ptica.

19

Base de Datos Distribuidas

Sistemas Cliente/Servidor
Las bases de datos distribuidas se han desarrollado a partir de los sistemas tradicionales de bases de datos bajo la arquitectura cliente servidor (sistema centralizado). Un sistema Cliente / Servidor es un tipo de procesamiento de computo basados en elementos distribuidos y computo colaborativo. Esta compuesto por tres elementos: Cliente, Servidor y medio de comunicacin. La funcionabilidad de los elementos es dividida de acuerdo a un nivel de especializacin, un elemento se especializa en determinado servicio y otro elemento hace uso de esos servicios.

SMBDD

SERVIDOR

COMUNICACION

CLIENTE

SERVICIOS

CONEXIONES

SOLICITA LOS SERVICIOS

Peticin

Cliente

Medio de comunicacin Respuesta

Servidor

Generador de Peticiones

Elemento que Enlaza

Ofrece el servicio

Caractersticas El Cliente y el Servidor pueden estar en una sola entidad o en entidades distintas, realizando tareas independientes. La representacin tpica es un cliente, quien solicita un servicio, y un servidor, quien da respuesta a esa solicitud de servicio. Un servidor da servicio a mltiples clientes en forma concurrente. Las funciones Cliente/Servidor pueden ser dinmicas, permiten integrar equipos dentro de una arquitectura heterognea. Designa un modelo de construccin de sistemas informticos de carcter distribuido. La interrelacin entre el hardware y el software estn basados en una infraestructura poderosa

20

Base de Datos Distribuidas

Arquitectura Cliente / Servidor


Una arquitectura es un esqueleto de componentes funcionales que aprovechan diferentes estndares, reglas y procesos, la cual permite integrar una amplia gama de productos y servicios, de manera que pueden ser utilizados eficazmente. Determina un conjunto de reglas que deben ser aplicadas en la operacin de los elementos de un sistema Cliente / Servidor, donde cada uno de ellos ejecuta funciones especficas de manera independiente. la integracin de todos estos elementos y sus reglas se le denomina Arquitectura Cliente / servidor. La arquitectura Cliente/Servidor es un modelo de computacin en el que para ejecutar una aplicacin o aplicaciones relacionadas se divide entre dos o ms procesos que cooperan entre s. Usualmente la mayora del trabajo pesado se hace en el proceso llamado servidor y el o los procesos clientes slo se ocupa de la interaccin con el usuario.

Ventajas de Cliente / Servidor Mejor aprovechamiento de la potencia de computo (Reduce el trabajo). Reduce el trafico en la red (solo viajan peticiones y respuestas). Opera bajo sistemas abiertos. Permite el uso de mltiples interfaces graficas (sistemas mas verstiles). La posibilidad de utilizar equipos ms baratos basados en sistemas grandes. Se pueden utilizar componentes de hardware y software de varios fabricantes. Favorece el uso de diferentes interfaces grficas interactivas con el usuario. Facilita la integracin de nuevas tecnologas y el crecimiento de la infraestructura computacional. Desventajas de Cliente / Servidor Los clientes y los servidores deben utilizar el mismo mecanismo. La seguridad de un esquema Cliente/Servidor es otra preocupacin importante. El mantenimiento suele ser un poco mas difcil. La distribucin incorrecta de los datos a travs de la red.

21

Base de Datos Distribuidas

Elementos de la un arquitectura cliente / servidor.


Cliente
Es un conjunto de elementos de computo de hardware y software que invoca o solicita los servicios de uno o mas servidores. Caractersticas Inicia la comunicacin a travs de un requerimiento de servicio. El cliente oculta al servidor y a la red (transparencia). Detecta e intercepta peticiones de otra aplicacin, de manera que puede redireccionarla. Se encuentra dedicado ala sesin del usuario. El mtodo mas comn por el que se solicita los servicios es por medio de funciones RPC (Remote Procedure Call). Funciones Mantener y procesar todo el dialogo con el usuario. Manejo de pantallas. Mens de Interpretacin de comandos. Entrada de datos y validacin. Procesamiento de ayudas. Recuperacin de errores. Tipos de clientes Cliente flaco: Cliente rpidamente saturado. Gran circulacin de datos de interfase en la red. Cliente gordo: Casi todo el trabajo en el cliente. No hay centralizacin de la gestin de la Base de Datos. Gran circulacin de datos intiles en la red.

Servidor
Es cualquier dispositivo o recurso de cmputo (hardware o software) que posee un servicio dedicado a responder a los requerimientos del cliente. Los servidores pueden estar conectados a los clientes a travs de diferentes redes, para proveer de mltiples servicios a los clientes. Funciones Acceso, almacenamiento y organizacin de datos. Actualizacin de datos almacenados. Administracin de recursos compartidos. Ejecucin de toda la lgica para procesar una transaccin. Procesamiento comn de las funciones de un servidor (datos, poder del CPU, almacenamiento en disco, capacidad de impresin, manejo de memoria y comunicacin).

22

Base de Datos Distribuidas

Tipos de Servidores Servidores de Archivos (FTP, Novell). Este servidor proporciona servicios de almacenamiento y recuperacin de archivos, incluyendo funciones de seguridad que controlan los derechos de acceso a los archivos. Servidores de Base de Datos (SQL, Cybase, Oracle, Informix). Este servidor es un sistema dedicado que maneja las solicitudes y las respuestas de las bases de datos del usuario. Servidores de Comunicacin. Proporciona servicios de conexin a los grandes computadores o sistemas de minicomputadores, o a sistemas y redes de computadores remotos, por medio de enlaces de rea extensa. Servidores de Impresin. Este servidor proporciona a los usuarios acceso a las impresoras conectadas a la red y gestiona trabajos de impresin por medio de un sistema de colas. Servidores de Terminales. Este servidor es el encargado de realizar todas las tareas de procesamiento para todas las terminales conectadas a el. Servidores de Aplicaciones (Windows NT, Novell). Ejecuta programas que se encuentran asignados al sistema.

Medio De Comunicacin
Es el conjunto de hardware y software (elementos fsicos y lgicos) que permite establecer el enlace de los clientes con los servidores, normalmente se clasifican en : LAN, MAN, WAN.

Caractersticas
El cliente debe solicitar e iniciar la comunicacin con el servidor. No se utiliza la tecnologa de comparticin de archivos. El modelo ejecuta un programa en el servidor o en el cliente y a travs del medio de comunicacin solo se envan los resultados de entrada o salida. Trafico = respuesta y/o peticiones Se utiliza un estilo transaccional y cooperativo. Modelos o Tcnicas de Procesamiento y Protocolos comnmente utilizados Tcnicas: Formas o mtodos utilizados para estructurar los mensajes a enviar. Llamadas a procedimientos remotos (RPC). No sirven para usarse entre lenguajes de programacin diferentes (ya que se basan en el sistema operativo) Memoria compartida. Se comunican a travs de una memoria (se forma un puente). El problema es que tiene que estar checando continuamente si tiene mensaje. Se utiliza para comunicar main frames. Paso de Mensajes. Consiste en formar cadenas y enviarlas, al recibirlas el servidor debe decodificarlas (a travs de un cdigo comn). TCP/IP se basa en ellos.

23

Base de Datos Distribuidas

Interacciones SQL.
Lenguajes de consulta de B.D. Solo se utiliza para servicios de B.D. Protocolos: Son las reglas utilizadas por los elementos para ser usados como transporte para el envo/recepcin de los mensajes entre cliente y servidor. Todas usan el mismo protocolo. Spx/Ipx Protocolo creado a principios de 1980 derivado de la familia de protocolos XNS de Xerox el cual fue ampliamente usado por Novell Network en sus sistemas operativos, fue el primer protocolo de red que le permiti a MSDOS tener la posibilidad de comunicarse en red. Netbeui (Netbios) Creado para las redes IBM, fue difundido principalmente por Microsoft, fue la competencia para Novell (IPX). Trabaja con transferencia de mensajes basados en broadcast (Mensaje con encabezado que llega a todas las mquinas) Name Pipes Creado originalmente para Unix. Se utiliz para comunicacin de paquetes, tiene una direccin y por ello solo lo reciben las mquinas configuradas para hacerlo. No trabaja con fragmentos de red (Internet). TCP/IP (UDP/TCP) Familia de protocolos que ms ampliamente es utilizado en los sistemas de redes actualmente y es la base de la comunicacin de Internet. Sus dos protocolos mas utilizados son TCP y UDP. Las aplicaciones que utilizan estos protocolos los hacen a travs de sockets. Banyan Vines Sistema operativo de red creado a partir de UNIX sirvi de plataforma para intercomunicacin de diferentes servicios. AppleTalk Conjunto de protocolos creados por Apple Inc e incorporados en los sistemas Macintosh, por mucho tiempo fue el protocolo base de estos equipos.

24

Base de Datos Distribuidas

Distribucin entre Cliente y Servidor.


Dentro de una arquitectura cliente servidor generalmente las aplicaciones son dividas en diferentes niveles o segmentos de acuerdo al tipo de servicio que se pretenda controlar, generalmente son tres los elementos de una aplicacin que pueden distribuirse (modelo de tres capas), esto tambin depende del tipo de aplicacin y funciones que se lleven a cabo. Los elementos son: El manejo de datos La aplicacin La presentacin

Cliente
Presentacin Web

Servidor
Aplicacin Manejo de Datos

Presentacin Aplicacin

Aplicaciones de oficina

Manejo de Datos

Presentacin Aplicacin

Manejo de Datos Aplicacin

25

Anda mungkin juga menyukai