Escolar Documentos
Profissional Documentos
Cultura Documentos
Originalmente se almacenaba la informacin de manera centralizada, pero con el paso del tiempo las necesidades aumentaron y esto produjo ciertos inconvenientes que no era posible solucionarlos o volverlos eficientes de la forma centralizada. Estos problemas impulsaron la creacin de almacenamiento distribuido, los cuales hoy en da proveen caractersticas indispensables en el manejo de informacin; es decir, la combinacin de las redes de comunicacin y las bases de datos. La cantidad de innovaciones tecnolgicas que ha habido en lo 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 almacenamientos, 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. Aun 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, mayores nmeros de servicios, ms flexibilidad y mejor rendimiento. As al disear unos nuevos sistemas 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. Un 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 base de datos distribuidos.
Hay varios factores que han hecho que las bases de datos evolucionen a bases de datos distribuidas. En el mundo de los negocios se ha dado una globalizacin y a la vez las operaciones de las empresas son cada vez ms descentralizadas geogrficamente. Tambin el poder de las computadoras personales aument y el costo de los Mainframes ya no tena sentido. Adems la necesidad de compartir datos ha hecho que crezca el mercado de las bases de datos distribuidas.
Definicin:
Es una coleccin de datos distribuidos en diferentes nodos de una red de computadoras. Cada sitio de la red es autnomo, puede ejecutar aplicaciones locales y al menos una aplicacin global, lo cual requiere acceso a datos ubicados en varios sitios. Es un conjunto de mltiples bases de datos lgicamente relacionadas que se encuentran distribuidas en diferentes lugares. En un sistema de base de datos distribuida, los datos se almacenan en varios computadores. Los computadores de un sistema distribuido, se comunican entre s a travs de diversos medios de comunicacin, tales como cables de alta velocidad o lneas telefnicas. La diferencia entre base de datos centralizados y los distribuidos es que, en los primeros, los datos residen en una sola localidad, mientras que, en los ltimos, se encuentran en varias localidades.
Las sedes deben estar interconectadas mediante una red (cada sede es un nodo de la red)
Los datos han de estar lgicamente integrados (recuperacin actualizacin) tanto en local como remoto (esquema lgico global y nico)
En una nica operacin se puede acceder (recuperar o actualizar) datos que se encuentran en ms de una sede (acceso a datos locales o remotos)
Todas las acciones que necesiten realizarse sobre ms de una sede sern transparentes al usuario (transparencia de distribucin para el usuario)
Los sitios distribuidos deben ser autnomos, es decir que todas las operaciones en un sitio dado se controlen en ese sitio.
Existen varias razones para construir sistemas distribuidos de bases de datos que incluyen compartir la informacin, fiabilidad y disponibilidad y agilizar el procesamiento de las consultas. Pero tambin tiene sus desventajas, como desarrollos de software ms costosos, mayor posibilidad de errores y costos extras de procesamiento.
VENTAJAS
La principal ventaja de los sistemas distribuidos es la capacidad de compartir y acceder a la informacin de una forma fiable y eficaz. Utilizacin compartida de los datos y distribucin del control. La ventaja principal de compartir los datos por medio de la distribucin es que cada localidad pueda controlar hasta cierto punto los datos almacenados localmente. En un sistema centralizado, el administrador de base de datos de la localidad central controla la base de datos. En un sistema distribuido existe un administrador global de la base de datos que se encarga de todo el sistema. Parte de esta responsabilidad se delega al administrador de base de datos de cada localidad. Dependiendo del diseo del sistema distribuido, cada administrador local podr tener un grado de autonoma diferente, que se conoce como autonoma local. La posibilidad de contar con autonoma local es en muchos casos una ventaja importante de las bases de datos distribuidas. Fiabilidad y disponibilidad: Si se produce un fallo en una localidad de un sistema distribuido, es posible que las dems localidades puedan seguir trabajando. En particular, si los datos se repiten en varias localidades, una transaccin que requiere un dato especfico puede encontrarlo en ms de una localidad. As, el fallo de una localidad no implica necesariamente la desactivacin del sistema. El sistema debe detectar cuando falla una localidad y tomar las medidas necesarias para recuperarse del fallo. El sistema no debe seguir utilizando la localidad que fall. Por ltimo, cuando se recupere o repare esta localidad, debe contarse con mecanismos para reintegrarla al sistema con el mnimo de complicaciones. La disponibilidad es fundamental para los sistemas de bases de datos que se utilizan en aplicaciones de tiempo real. Por ejemplo, si una lnea area no puede tener acceso a la informacin, es posible que pierda clientes a favor de la competencia.
Agilizacin del procesamiento de consultas. Si una consulta comprende datos de varias localidades, puede ser posible dividir la consulta en varias subconsultas que se ejecuten en paralelo en distintas localidades. Sin embargo, en un sistema distribuido no se comparte la memoria principal, as que no todas las estrategias de interseccin se pueden aplicar en estos sistemas. En los casos en que hay repeticin de los datos, el sistema puede pasar la consulta a las localidades ms ligeras de carga. Los costos de las comunicaciones de datos son por lo general menores con bases de datos distribuidas, ya que el procesamiento se puede hacer a nivel local. Por ejemplo, con los registros de clientes alojados localmente, una sucursal no incurre en costos de telecomunicaciones para comunicarse con una computadora que alberga la sede de los datos de la sucursal. Si hay un problema de hardware y software en un centro de cmputos que almacena toda la informacin y los procesos de la sucursal, todas las sucursales pueden ser afectadas. Con bases de datos distribuidas, muchas sucursales pueden continuar el proceso por computadora sin esperar a que la ubicacin central funcione de nuevo.
DESVENTAJAS:
Si ests decidiendo si debes implementar una base de datos distribuida, no basta con ver las ventajas, ya que hay tambin algunas desventajas. Las bases de datos distribuidas requieren mayor gestin. Por ejemplo, uno debe sincronizar con precisin con una computadora central. Si algunos de los mismos datos se encuentran en varios lugares, uno debe asegurarse de que los controles adecuados estn en su lugar para asegurar que no haya discrepancia en la precisin de dos o ms instancias de datos. La desventaja principal de los sistemas distribuidos es la mayor complejidad que se requiere para garantizar una coordinacin adecuada entre localidades. El aumento de la complejidad se refleja en: Coste del desarrollo de software: es ms difcil estructura un sistema de bases de datos distribuidos y por tanto su coste es menor Mayor posibilidad de errores: puesto que las localidades del sistema distribuido operan en paralelo, es ms difcil garantizar que los algoritmos sean correctos. Mayor tiempo extra de procesamiento: el intercambio de mensajes y los clculos adicionales son una forma de tiempo extra que no existe en los sistemas centralizados.
ARQUITECTURA DE BDD
Con el aumento de la velocidad y potencia de las computadoras personales y el decremento en su precio, los sistemas se han ido distanciando de la arquitectura centralizada. Los terminales conectados a un sistema central han sido suplantados por computadoras personales. De igual forma, la interfaz de usuario, que sola estar gestionada directamente por el sistema central, est pasando a ser gestionada cada vez ms por las computadoras personales. Como consecuencia, los sistemas centralizados actan hoy como sistemas servidores que satisfacen las peticiones generadas por los sistemas clientes. La computacin cliente/servidor es la extensin lgica de la programacin modular. El supuesto principal de la programacin modular es la divisin de un programa grande en pequeos programas (llamados mdulos), siendo ms fciles el desarrollo y la mantenibilidad (divide y vencers). Cualquier LAN (red de rea local) puede ser considerada como un sistema cliente/servidor, desde el momento en que el cliente solicita servicios como datos, ficheros o imprimir desde el servidor. Cuando un usuario se conecta a Internet, interactua con otros computadores utilizando el modelo cliente/servidor. Los recursos de Internet son proporcionados a travs de computadores host, conocidos como servidores. El servidor es el computador que contiene informacin (bases de datos, ficheros de texto...). El usuario, o cliente, accede a esos recursos va programas cliente (aplicaciones) que usan TCP/IP para entregar la informacin a su computadora. Segn esta definicin, los sistemas cliente/servidor no estn limitados a aplicaciones de bases de datos. Cualquier aplicacin que tenga una interfaz de usuario (front-end, seccin frontal o parte cliente) que se ejecute localmente en el cliente y un proceso que se ejecute en el servidor (back-end, seccin posterior, o sistema subyacente) est en forma de computacin cliente/servidor.
Conceptualmente, las plataformas cliente/servidor son parte del concepto de sistemas abiertos, en el cual todo tipo de computadores, sistemas operativos, protocolos de redes y otros, software y hardware, pueden interconectarse y trabajar coordinadamente para lograr los objetivos del usuario. Sin embargo, en la prctica, los problemas de alcanzar tal variedad de sistemas operativos, protocolos de redes, sistemas de base de datos y otros, que trabajen conjuntamente pueden ser muchos. El objetivo de los sistemas abiertos consiste en lograr la interoperabilidad, que es el estado de dos o ms sistemas heterogneos comunicndose y contribuyendo cada uno a alguna parte del trabajo que corresponde a una tarea comn.
En cierto sentido, el enfoque cliente/servidor es la culminacin de una percepcin temprana de la potencia del clculo distribuida conjuntamente con el control y el acceso a los datos inherentes a un computador centralizado.
Como ejemplos de clientes pueden citarse interfaces de usuario para enviar comandos a un servidor, APIs (Aplication Program Interface) para el desarrollo de aplicaciones distribuidas, herramientas en el cliente para acceder a servidores remotos (por ejemplo, servidores de SQL) o aplicaciones que solicitan acceso a servidores para algunos servicios. Como ejemplos de servidores pueden citarse servidores de ventanas como Xwindows, servidores de archivos como NFS, servidores para el manejo de bases de datos (como los servidores de SQL), servidores de diseo y manufactura asistidos por computador, etc.
La diferencia entre la computacin cliente/servidor y la computacin centralizada multiusuario es que el cliente no es un terminal tonto. El computador cliente tiene su propio sistema operativo y puede manejar entradas (teclado, ratn, etc...) y salidas (pantalla, impresora local, sonido, etc...) sin el servidor.
El papel del servidor es esperar pasivamente la peticin de servicio del cliente. Esta distribucin del proceso permite al cliente ofrecer un ambiente de trabajo ms amigable que un terminal tonto (interfaz de usuario grfica, aplicaciones locales, ratn, etc...) y permite al servidor ser menos complejo y caro que los sistemas mainframe. El conjunto de la computacin cliente/servidor conduce a un ambiente flexible y dinmico. La parte cliente de la aplicacin maneja la entrada de datos, acepta consultas de los usuarios y muestra los resultados. La parte cliente no procesa las consultas. En su lugar, enva la consulta del usuario al computador servidor, donde la parte
servidor de la aplicacin procesa la consulta. El servidor devuelve los resultados al cliente, que es quien se las muestra al usuario.
Primero, el usuario crea la consulta. Puede ser una consulta creada en el instante o puede ser una consulta pre-programada o almacenada anteriormente. Despus la aplicacin cliente convierte la consulta al SQL usado por el servidor de la base de datos y la enva a travs de la red al servidor. El servidor verifica que el usuario tiene los derechos de seguridad apropiados a la consulta de datos requerida. Si es as, verifica la consulta y enva los datos apropiados de vuelta al cliente. La aplicacin cliente recibe la respuesta y le da formato para presentarlo al usuario. Finalmente, el usuario ve la respuesta en la pantalla y puede manipular los datos, o modificar la consulta y empezar el proceso de nuevo.
En primer lugar, aplicaciones escritas por los usuarios. Casi siempre se trata de programas comunes de aplicacin, escritos (normalmente) en un lenguaje de programacin convencional (por ejemplo Cobol), o bien en algn lenguaje propio (como Focus), aunque en ambos casos el lenguaje debe acoplarse de alguna manera con un sublenguaje de datos apropiado. En segundo lugar, aplicaciones suministradas por los proveedores (herramientas). El objetivo general de estas herramientas es ayudar en el proceso de creacin y ejecucin de otras aplicaciones, o sea, aplicaciones hechas a la medida para alguna tarea especfica (aunque la aplicacin creada quiz no parezca una aplicacin en el sentido convencional; de hecho, la verdadera razn para utilizar herramientas es que los usuarios, sobre todo los finales, puedan crear aplicaciones sin tener que escribir programas convencionales). Por ejemplo, una de las herramientas suministradas por los proveedores sera un procesador de lenguaje de consulta, cuyo propsito es desde luego permitir a los usuarios finales hacer consultas al sistema. En esencia, cada una de esas consultas no es ms que una pequea aplicacin hecha a la medida para realizar alguna funcin de aplicacin especfica. A su vez, las herramientas suministradas por los proveedores se dividen en varias clases distintas: - Procesadores de lenguajes de consulta - Generadores de informes - Subsistemas de grficas para negocios - Hojas electrnicas de clculo - Procesadores de lenguajes naturales - Paquetes estadsticos - Herramientas para administrar copias - Generadores de aplicaciones (incluyendo procesador de lenguajes de cuarta generacin o 4GL) - Otras herramientas para desarrollar aplicaciones, incluyendo productos para ingeniera de software asistida por computador (CASE).
3.- Se vuelve al primer paso. La ventaja del servidor concurrente es que el servidor ejecuta un nuevo proceso para manejar cada consulta. Cada cliente tiene su "propio" servidor. Asumiendo que el sistema operativo permite la multiprogramacin, clientes mltiples y servicio concurrente. Tambin podemos dividir los servidores en servidores de transacciones y servidores de datos.
Los sistemas servidores de transacciones, tambin llamados sistemas servidores de consultas, proporcionan una interfaz a travs de la cual los clientes pueden enviar peticiones para realizar una accin que el servidor ejecutar y cuyos resultados se devolvern al cliente. Los usuarios pueden especificar sus peticiones con SQL o mediante la interfaz de una aplicacin utilizando un mecanismo de llamadas a procedimientos remotos (RPC: Remote Procedure Call). Los sistemas servidores de datos permiten que los clientes puedan interaccionar con los servidores realizando peticiones de lectura o modificacin de datos en unidades tales como archivos o pginas. Por ejemplo, los servidores de archivos proporcionan una interfaz de sistema de archivos a travs de la cual los clientes pueden crear, modificar, leer y borrar archivos. Los servidores de datos de los sistemas de bases de datos ofrecen muchas ms funcionalidades; soportan unidades de datos de menor tamao que los archivos, como pginas, tuplas u objetos. Proporcionan facilidades de indexacin de los datos, as como facilidades de transaccin, de modo que los datos nunca se quedan en un estado inconsistente si falla una mquina cliente o un proceso.
Con el crecimiento de las normas de interfaz, las herramientas de la parte visible al usuario y los servidores del sistema subyacente son administrados cada vez por ms marcas. Gupta SQL y Power-Builder son ejemplos de sistemas visibles al usuario independientes de los servidores del sistema subyacente. Es ms, ciertas aplicaciones, como algunas hojas de clculo o algunos paquetes de anlisis estadstico, utilizan directamente la interfaz cliente-servidor para acceder a los datos desde un servidor del sistema subyacente. Como resultado, proporcionan un sistema visible al usuario especializado en tareas concretas. Algunos sistemas de procesamiento de transacciones utilizan, adems de ODBC, otras interfaces cliente-servidor. stas se definen por medio de una interfaz de programacin de aplicaciones y son utilizadas por los clientes para realizar llamadas a procedimientos remotos de transacciones sobre el servidor. Para el programador, estas llamadas son como las llamadas normales a procedimientos, pero en realidad todas las llamadas a procedimientos remotos desde un cliente se engloban en una nica transaccin en el servidor. De esta forma, si la transaccin aborta, el servidor puede deshacer los efectos de las llamadas a procedimientos remotos individuales. El hecho de que adquirir y mantener una mquina pequea sea ahora ms barato, ha desembocado en una tendencia hacia el fraccionamiento de costes cada vez ms extendida en la industria. Muchas compaas estn reemplazando sus grandes sistemas por redes de estaciones de trabajo o computadoras personales conectadas a mquinas servidoras del sistema subyacente. Entre las ventajas, destacan una mejor funcionalidad respecto del coste, una mayor flexibilidad para localizar recursos y facilidades de expansin, mejores interfaces de usuario y un mantenimiento ms sencillo.
En esta arquitectura surgen algunos aspectos interesantes, ya que el coste en tiempo de comunicacin entre el cliente y el servidor es alto comparado al de acceso a una memoria local (milisegundos frente a menos de 100 nanosegundos)
Envo de pginas o envo de elementos La unidad de comunicacin de datos puede ser de grano grueso (como una pgina), o de grano fino (como una tupla). Si la unidad de comunicacin de datos es una nica tupla, la sobrecarga por la transferencia de mensajes es alta comparada con el nmero de datos transmitidos. En vez de hacer esto, cuando se necesita una tupla, cobra sentido la idea de enviar junto a aquella otras tuplas que probablemente vayan a ser utilizadas en un futuro prximo. Se denomina preextraccin a la accin de buscar y enviar tuplas antes de que sea estrictamente necesario. Si varias tuplas residen en una pgina, el envo de pginas puede considerarse como una forma de preextraccin, ya que cuando un procese desee acceder a una nica tupla de la pgina, se enviarn todos las tuplas de esa pgina.
Bloqueo La concesin del bloqueo de las tuplas de datos que el servidor enva a los clientes la realiza habitualmente el propio servidor. Un inconveniente del envo de pginas es que los clientes pueden recibir bloqueos de grano grueso (el bloqueo de una pgina bloquea implcitamente a todas las tuplas que residan en ella). El cliente adquiere implcitamente bloqueos sobre todas las tuplas preextradas, incluso aunque no est accediendo a alguno de ellos. De esta forma, puede detenerse innecesariamente el procesamiento de otros clientes que necesitan bloquear esos elementos. Se han propuesto algunas tcnicas para la liberacin de bloqueos, en las que el servidor puede pedir a los clientes que le devuelvan el control sobre los bloqueos de las tuplas preextradas. Si el cliente no necesita la tupla preextrada, puede devolver los bloqueos sobre esa tupla al servidor para que stos puedan ser asignados a otros clientes.
Cach de datos Los datos que se envan al cliente a favor de una transaccin se pueden alojar en una cach del cliente, incluso una vez completada la transaccin, si dispone de suficiente espacio de almacenamiento libre. Las transacciones sucesivas en el mismo cliente pueden hacer uso de los datos en cach. Sin embargo, se presenta el problema de la coherencia de la cach: si una transaccin encuentra los datos en la cach, debe asegurarse de que esos datos estn al da, ya que despus de haber sido almacenados en la cach pueden haber sido modificados por otro cliente.
As, debe establecerse una comunicacin con el servidor para comprobar la validez de los datos y poder adquirir un bloqueo sobre ellos.
Cach de bloqueos Los bloqueos tambin pueden ser almacenados en la memoria cach del cliente si la utilizacin de los datos est prcticamente dividida entre los clientes, de manera que un cliente rara vez necesita datos que estn siendo utilizados por otros clientes. Supngase que se encuentran en la memoria cach tanto el elemento de datos que se busca como el bloqueo requerido para acceder al mismo. Entonces, el cliente puede acceder al elemento de datos sin necesidad de comunicar nada al servidor.
No obstante, el servidor debe seguir el rastro de los bloqueos en cach; si un cliente solicita un bloqueo al servidor, ste debe comunicar a todos los bloqueos sobre el elemento de datos que se encuentran en las memorias cach de otros clientes. La tarea se vuelve ms complicada cuando se tienen en cuenta los posibles fallos de la mquina. Esta tcnica se diferencia de la liberacin de bloqueos en que la cach de bloqueo se realiza a travs de transacciones; de otra forma, las dos tcnicas seran similares.
- Clientes obesos (thick clients): La mayor parte de la lgica de la aplicacin (gestin del procesamiento) reside junto a la lgica de la presentacin (interfaz de usuario) en el cliente, con la porcin de acceso a datos en el servidor. - Clientes delgados (thin clients): solo la lgica de la presentacin reside en el cliente, con el acceso a datos y la mayora de la lgica de la aplicacin en el servidor. Es posible que un servidor funcione como cliente de otro servidor. Esto es conocido como diseo de dos capas encadenado.
Limitaciones - El nmero usuarios mximo es de 100. Ms all de este nmero de usuarios se excede la capacidad de procesamiento. - No hay independencia entre la interfaz de usuario y los tratamientos, lo que hace delicada la evolucin de las aplicaciones. - Dificultad de relocalizar las capas de tratamiento consumidoras de clculo. - Reutilizacin delicada del programa desarrollado bajo esta arquitectura.
Limitaciones Construir una arquitectura de 3 capas es una tarea complicada. Las herramientas de programacin que soportan el diseo de arquitecturas de 3 capas no proporcionan todos los servicios deseados que se necesitan para soportar un ambiente de computacin distribuida. Un problema potencial en el diseo de arquitecturas de 3 capas es que la separacin de la interfaz grfica de usuario, la lgica de gestin de procesamiento y la lgica de datos no es siempre obvia. Algunas lgicas de procesamiento de transacciones pueden aparecer en las 3 capas. La ubicacin de una funcin particular en una capa u otra debera basarse en criterios como los siguientes:
- Facilidad de desarrollo y comprobacin - Facilidad de administracin. - Escalabilidad de los servidores. - Funcionamiento (incluyendo procesamiento y carga de la red)
El middleware Como hemos visto, las capas estn localizadas en mquinas diferentes que estn conectadas a travs de la red. El middleware es el software que proporciona un conjunto de servicios que permite el acceso transparente a los recursos en una red. El middleware es un mdulo intermedio que acta como conductor entre dos mdulos de software. Para compartir datos, los dos mdulos de software no necesitan saber cmo comunicarse entre ellos, sino cmo comunicarse con el mdulo de middleware. Es el encargado del acceso a los datos: acepta las consultas y datos recuperados directamente de la aplicacin y los transmite por la red. Tambin es responsable de enviar de vuelta a la aplicacin, los datos de inters y de la generacin de cdigos de error.
Diseo fsico de la base de datos, esto es, mapear el esquema conceptual a las reas de almacenamiento y determinar los mtodos de acceso a la base de datos En el caso de las bases de datos distribuidas se tienen que considerar los dos problemas siguientes: Diseo de la fragmentacin, esto se determina por la forma en que las relaciones globales se subdividen en fragmentos horizontales, verticales o mixtos Diseo de la asignacin de los fragmentos, esto se determina en la forma en que los fragmentos se mapean a las imgenes fsicas, en esta forma, tambin se determina la solicitud de fragmentos
4. El problema de fragmentacin
El problema de fragmentacin se refiere al particionamiento de la informacin para distribuir cada parte a los diferentes sitios de la red. Inmediatamente aparece la siguiente pregunta: Cul es la unidad razonable de distribucin?. Se puede considerar que una relacin completa es lo adecuado ya que las vistas de usuario son subconjuntos de las relaciones. Sin embargo, el uso completo de relaciones no favorece las cuestiones de eficiencia sobre todo aquellas relacionadas con el procesamiento de consultas. La otra posibilidad es usar fragmentos de relaciones (sub-relaciones) lo cual favorece la ejecucin concurrente de varias transacciones que accesan porciones diferentes de una relacin. Sin embargo, el uso de sub-relaciones tambin presentan inconvenientes. Por ejemplo, las vistas de usuario que no se pueden definir sobre un solo fragmento necesitaran un procesamiento adicional a fin de localizar todos los fragmentos de una vista. Aunado a estos, el control semntico de datos es mucho mas complejo ya que, por
ejemplo, el manejo de llaves nicas requiere considerar todos los fragmentos e los que se distribuyen todos los registros de la relacin. En resumen, el objetivo de la fragmentacin es encontrar un nivel de particionamiento adecuado en el rango que va desde tuplas o atributos hasta relaciones completas.
Fragmentacin horizontal
La fragmentacin horizontal est relacionada a la particin a lo largo de las tuplas; as cada fragmento tiene un subconjunto de las tuplas de la relacin. Fragmentacin horizontal primaria: esta es llevada a cabo usando predicados que estn definidos en la relacin. Fragmentacin horizontal derivada: es la particin de las relaciones que resulta de predicados que han sido definidos en otras relaciones. Requerimientos de informacin de una fragmentacin horizontal Informacin acerca de la base de datos: Concierne a la informacin del esquema conceptual global de la base de datos, en este contexto es importante notar cmo estn conectadas las relaciones de la base de datos una con otra. Las conexiones entre los objetos de la base de datos en este caso llamadas relaciones deben ser absolutamente familiares para los que han manejado modelos de sistemas de bases de datos. La relacin al final de la conexin es llamada propietario de la conexin y la relacin que esta en la cabeza de la conexin es llamada miembro.
Fragmentacin vertical
La fragmentacin vertical produce fragmentos los cuales contienen un subconjunto de los atributos as como la clave principal de la relacin. El objetivo de este tipo de fragmentaciones es particionar una relacin en un conjunto de relaciones ms pequeas tal que otras de las aplicaciones de los usuarios corrern en solo un fragmento. El particionamiento vertical es inherentemente ms complicado que el horizontal ya que en el horizontal si el nmero total de predicados simples es n hay 2n posibles predicados minterms que pueden ser definidos en ellos. Sin embargo para la fragmentacin vertical si una relacin tiene m atributos que no sean claves primarias el nmero de posibles fragmentos es igual a B(m) el cual es el nmero de BELL. Existen dos tipos de enfoques heursticos para la fragmentacin vertical de relaciones globales:
Agrupacin: comienza con la asignacin de cada atributo a un fragmento y en cada paso se unen algunos de los fragmentos hasta que los criterios se satisfagan. Particionamiento: comienza con una relacin y se decide realizar particionamientos benficos en base al comportamiento de acceso de las aplicaciones hacia los atributos. Requerimientos de informacin de una fragmentacin vertical. La informacin principal requerida por una fragmentacin vertical es la relacionada a las aplicaciones. Ya que el particionamiento vertical coloca en un fragmento aquellos atributos los cuales son accesados juntos. Los principales datos requeridos relacionados a las aplicaciones son sus frecuencias de acceso.
Fragmentacin hibrida
Respecto a la fragmentacin hibrida, esta consiste en aplicar la fragmentacin vertical seguida de la fragmentacin horizontal o viceversa En muchos casos la fragmentacin vertical u horizontal del esquema de la base de datos no ser suficiente para satisfacer los requisitos de las aplicaciones. Como ya se cit al comienzo de este documento podemos combinar ambas, utilizando por ello la denominada fragmentacin mixta. Cuando al proceso de fragmentacin vertical le sigue una horizontal, es
decir, se fragmentan horizontalmente los fragmentos verticales resultantes, se habla de la fragmentacin mixta HV. En el caso contrario, estaremos ante una fragmentacin VH. Una caracterstica comn a ambas es la generacin de rboles que representan la estructura de fragmentacin No se desea entrar en excesivos detalles sobre las reglas y condiciones para efectuar la fragmentacin mixta. Entre otras razones porque, tanto a la fragmentacin HV como la fragmentacin VH, se le pueden aplicar los mismos criterios y reglas que a la fragmentacin horizontal y vertical. Es decir, volviendo al ejemplo anterior, al cual le practicamos la fragmentacin HV, al realizar la fragmentacin horizontal tal como se ha expuesto, lo que se obtienen no son ms que subrelaciones, la unin de las cuales da lugar a la relacin PROVINC. Por tanto, para fragmentar cada subrelacin sera perfectamente viable aplicarle el mtodo de fragmentacin vertical que se ha desarrollado. Como, en este caso, se han querido generar dos fragmentos verticales por cada uno horizontal, simplemente deberamos confeccionar la matriz de grupos afines (a travs del algoritmo BEA) para cada fragmento horizontal y aplicarle, posteriormente, el algoritmo de fragmentacin binaria PARTICIN. Tambin debe tenerse en cuenta el nmero de niveles arbreos que se generen, es decir, nadie impide que tras realizar una fragmentacin VH, podamos aplicar a los fragmentos resultantes una nueva fragmentacin vertical, y a esto ltimo una nueva fragmentacin horizontal, etc. Dicho nmero puede ser grande, pero tambin ser ciertamente finito. En el caso horizontal, el nivel mximo de profundidad se alcanzar cuando cada fragmento albergue una nica tupla, mientras que en el caso vertical el final llegar cuando cada fragmento contenga un nico atributo. Sin embargo, aunque no deba tomarse como dogma, el nmero de niveles no debera superar el par (VH y HV). El porqu de esta afirmacin es bien sencillo, piense, por ejemplo, en el coste que supondra realizar la unin o el yunto de una relacin con fragmentacin nivel 7. Evidentemente, el coste sera muy elevado y ese aumento de rendimiento que se persigue al aplicar estas tcnicas, quizs, no se produzca. Antes de pasar a estudiar el problema de la asignacin se desea comentar la tcnica de fragmentacin mixta basada en celdas [2]. Esta tcnica se basa en la generacin de celdas de rejilla. Qu es una celda de rejilla, podramos definirla como un fragmento horizontal y vertical simultneo. La tcnica aplica un algoritmo de fragmentacin vertical y otro horizontal de manera concurrente sobre la relacin. Los algoritmos realizan una fragmentacin mxima, es decir, se persigue que en cada celda nicamente
haya un atributo y una tupla. Quiz el lector pueda encontrar el mtodo contradictorio con lo citado anteriormente respecto a la eficiencia, dada la gran cantidad de fragmentos generados, el nmero es, efectivamente, el mximo. Sin embargo, este slo es el primer paso del proceso. Una vez generadas las celdas se aplica un mtodo para optimizar la rejilla mediante fusin o desfragmentacin, de acuerdo, fundamentalmente, a las aplicaciones que acten sobre esos fragmentos. El mtodo, por tanto, persigue una fragmentacin lo ms especfica posible acorde con las aplicaciones y los sitios existentes en la red.
CONCLUSIONES:
A lo largo de este documento se ha intentado dar una visin global y genrica de los problemas y caractersticas que contiene el diseo de una base de datos distribuida. Se ha hecho especial hincapi en las tcnicas de fragmentacin horizontal y vertical a travs de mtodos y algoritmos muy frecuentes en la literatura referida al tema. Se espera que el lector no haya tenido demasiados problemas para su comprensin, las tcnicas son sencillas y se ha procurado incluir distintos ejemplos para facilitar el entendimiento. Igualmente, la puesta en prctica de los algoritmos, es decir, su codificacin, no es un proceso complicado si se poseen nociones en el desarrollo de algoritmos. Piense, por ejemplo, que los dos algoritmos de particin vertical presentados, no hacen ms que manipular matrices. Tambin debera tenerse presente la existencia de enfoques de fragmentacin distintos y, posiblemente, ms complejos, pero se debe pensar que ms eficientes. Sean, por ejemplo, las tcnicas de fragmentacin vertical basadas en grafos, como el algoritmo de Navathe y Ra que genera en un solo pas fragmentos verticales. Adems, estn apareciendo mtodos de fragmentacin mixta como el que se ha comentado. Si bien, estos mtodos son enfoques formales ms que prcticos, desarrollados por insignes investigadores en universidades, por tanto, lejos todava de su desarrollo comercial. Pese a la aparicin de los mtodos de bases de datos distribuidas hace ya aos, parece que el salto de lo centralizado a lo distribuido a escala comercial est por venir. Todava no se ha extendido suficientemente el esquema distribuido, pero se espera que prximamente se produzca el avance definitivo. Considere los dos componentes bsicos de los sistemas de bases de datos distribuidos (la propia base de datos y la red de ordenadores) y piense en la situacin actual de la informtica. Si las bases de datos es una de las ramas ms antiguas e importantes de la informtica, muchas empresas compran ordenadores para dedicarlos exclusivamente a la gestin de sus datos (pienso que, prcticamente, en el 100% de las PYMES se produce este hecho) y, como parece ser que se ha asumido por parte de todo tipo de empresarios los beneficios que acarrea la conexin de los ordenadores, la instalacin de una red, se puede concluir diciendo que el terreno ya est abonado para su extensin comercial. Slo falta que determinadas multinacionales decidan apostar ms fuerte por este enfoque a travs de sus famosos sistemas gestores de bases de datos y que se produzca la consolidacin de la resolucin de los problemas que el enfoque distribuido acarrea.
Bibliografa:
http://www.monografias.com/trabajos82/base-datos-distribuidas/base-datosdistribuidas.shtml http://www.youtube.com/watch?v=r_niGkgJfUc http://html.rincondelvago.com/bases-de-datos-distribuidas_1.html http://bdi2011bddistribuidas.blogspot.com/2011/10/caracteristicas-de-las-basesde-datos.html http://tododistribuido.files.wordpress.com/2008/10/disdabe_design.pdf cdigital.uv.mx/bitstream/123456789/28569/1/alejandra_zavala.pdf http://html.rincondelvago.com/bases-de-datos-distribuidas_1.html