miércoles, 25 de marzo de 2015

actividad 13 parte B

Resumen

• Sistema de computación distribuido: elementos de procesamiento que cooperan en la ejecución de tareas, interconectados por una red de ordenadores.

– No han de ser homogéneos pueden tener diferentes SGBD y diferentes sistemas operativos.
– Dividen un problema en otros más manejables y los resuelven de modo coordinado, esto se hace a partir de una distribución.

• BD distribuida (BDD): son varias BD interrelacionadas lógicamente y situadas en diferentes nodos de una red de ordenadores, las cuales contienen fragmentos de la base de daos o se tiene la misma base de datos en los diferentes servidores.

• SGBD distribuido: el que gestiona BD distribuidas de forma transparente para el usuario (éste ve las BD como si fueran una sola BD centralizada). Este sistema gestor es el que permite la intaraccion de la base de datos con las aplicaciones.

• Ventajas de las BDD:
– Localización transparente de los datos: las instrucciones no dependen de dónde se ejecutan ni de dónde se sitúan los datos
– Transparencia en los nombres: un objeto se accede por su nombre, sin ambigüedad y sin especificar nada más.
– Transparencia de fragmentación: fragmentación horizontal es distribuir una  tabla en varios conjuntos de tuplas (cada uno en un ordenador). La vertical en distribuir la tabla en conjuntos de atributos. La consulta sobre la tabla se transforma de modo automático en varias consultas sobre sus fragmentos.
– Más fiabilidad y disponibilidad: Datos y software están en varios ordenadores. Si un ordenador falla los demás pueden seguir funcionando. Los datos y SW del que ha fallado son inaccesibles.  Con réplicas (copias) automáticas de datos y SW en varios ordenadores se pueden mejorar  estas situaciones.
– Mejora del rendimiento: Situando los datos en el ordenador donde se usan (o uno cercano): BD locales y más pequeñas. Solo si se tiene la base fragmentada, por lo contrario si se distribuye de forma que en todos los servidores tienen la base de datos completa se aria más pesada y más complicada de administrar.
– Expansión más sencilla: añadir más datos, más  procesadores o aumentar la BD, son tareas más sencillas.



Diseño de BDD: fragmentación

• Directorio (catálogo) global: contiene la información de fragmentación. Lo utiliza el SBDD.
• Fragmentar: decidir dónde situar las partes de la BDD
– Se puede plantear top-down (como aquí) o bottom-up
• Idea simple: situar cada tabla en un ordenador distinto
– Podemos generar fragmentos que compartan otros atributos además de la clave (no disjuntos)
• Toda fragmentación debería ser completa:
– Horizontal: todas las tuplas están en algún fragmento
– Vertical: todo atributo está en algún fragmento
• Fragmentación mixta: cuando se aplica fragmentación vertical y horizontal sobre la misma tabla
• Esquema de fragmentación es un conjunto de fragmentos que:
– Fragmentación completa: todos los atributos y tuplas están en algún fragmento
– Permite reconstruir la BD original.se debe crear correctamente para poder lograr la reconstrucción.
– Interesante (no necesario) que los fragmentos sean disjuntos
• La replicación mejora la disponibilidad de los datos
• Caso extremo: tener una réplica de la BD completa en cada sitio (ordenador):
– Ventajas: mejora el rendimiento local y global además de la disponibilidad (con un sitio activo se accede a toda la BD)
– Inconvenientes: actualizaciones más costosas (se deben realizar en todas las réplicas para mantener la coherencia). El control de concurrencia y recuperación es también más costoso. Se pone más complicado, y se debe de tomar en cuenta la actualización en tiempo real de todas las bases.

• El otro extremo es no tener ninguna replicación (salvo las claves primarias en fragmentos verticales).
• Entre ambos extremos: replicación parcial. Hay muchas posibilidades.
• Esquema de replicación: describe qué se replica
• Asignación: dónde se sitúan los fragmentos y réplicas
– La elección del lugar y el grado de replicación depende de los objetivos de rendimiento y disponibilidad. También del tipo de transacciones y su frecuencia.
– Encontrar una solución óptima o incluso una buena es un problema complejo




Descomposición de actualizaciones y consultas
• SGBD sin transparencia de distribución: hay que indicar el sitio y la tabla sobre la que se realiza la consulta.
• SGBD sin transparencia de replicación: hay que mantener a mano la consistencia de los datos
• SGBD con transparencia de distribución, replicación y fragmentación:
– La consulta o actualización se expresan como si se tratase de un SGBD centralizado
– El SGBD se encarga de descomponer y dirigir a los fragmentos adecuados




BDD y cliente-servidor:arquitectura de 2 niveles
• Los SGBD totalmente distribuidos (transparentes) aun no son viables comercialmente.  En su lugar se han creado sistemas basados en cliente-servidor.  La forma habitual de dividir la funcionalidad del SGBD entre cliente y servidor ha sido la arquitectura de 2 niveles:
– Servidor (o servidor SQL): donde se sitúa el SGBD. Una BDD se situaría en varios servidores.
– Clientes:
• Envían consultas/actualizaciones a servidores
• Tienen interfaces SQL, de usuario y funciones de interfaz del lenguaje de programación
• Consultan en el diccionario de datos la información sobre la distribución de la BD entre los servidores.


• Interacción cliente-servidor (arquitectura de 2 niveles):
– El cliente analiza la consulta del usuario. La descompone en varias subconsultas y envía cada una a un servidor.
– Cada servidor ejecuta su subconsulta y devuelve el resultado al cliente
– El cliente combina los resultados recibidos y muestra al usuario el resultado de su consulta.
• En este enfoque al servidor se le llama máquina back-end (o subyacente) y al cliente máquina front-end (de la parte visible).
• Al servidor también se le llama servidor de transacciones y procesador de BD y al cliente procesador de aplicaciones



BDD y cliente-servidor: arquitectura de 3 niveles
• Actualmente es más común utilizar una arquitectura en 3 niveles, sobre todo para aplicaciones web.
• Las 3 capas son:
– Cliente (Presentación):
• Es la interfaz (interfaces web, formularios, …)
• Suelen usar navegadores web y lenguajes como HTML, JavaScript, PERL, …
• Gestiona las entradas, salidas y la navegación con páginas web estáticas o, cuando accede a BD, con páginas dinámicas (ASP, JSP, …)
– Servidor de aplicaciones (SA) (lógica de negocio):
• Incluye, por ejemplo, consultas basadas en datos introducidos por el usuario, o resultados de consultas a los que da formato y envía para su presentación
• Puede incluir otro tipo de funcionalidad como comprobaciones de seguridad o de la identidad
• Puede acceder a varias BD conectándose mediante
ODBC, JDBC u otras técnicas
– Servidor de BD (SBD):
• Procesa consultas y actualizaciones solicitadas por la capa de aplicación
• Puede devolver los resultados en formato XML
• La división de funcionalidad entre las 3 capas puede variar.© A. Jaime 2005 DBD Tema 9 17
BDD y cliente-servidor: arquitectura de 3 niveles  (2)
• El servidor de aplicaciones (SA) también:
– Tiene acceso a diccionarios de datos para consultar cómo se distribuyen las BDD entre los servidores de BD
(SBD)
– Puede incluir módulos para descomponer una consulta en varias subconsultas locales a cada SBD
• La interacción entre SA y SBD puede ser así:
– El SA construye una consulta utilizando datos tomados por el cliente. Descompone la consulta en varias subconsultas, cada una de ellas local a un SBD, y las envía a sus correspondientes SBD.
– Cada SBD procesa sus consultas y envía los resultados al SA que las solicitó. Cada vez es más frecuente utilizar el formato XML para devolver los resultados.
– El SA combina los resultados para obtener el resultado de la consulta original. Dota al resultado de un formato, como HTML y lo envía al cliente para su presentación.
• El SA es responsable de (en arquitectura de 2 niveles lo es el cliente):
– Generar un plan de ejecución distribuido y supervisar su ejecución.
– Garantizar la consistencia de las réplicas de datos.
– Asegurar la atomicidad de las transacciones globales.


Documento 2:

Ø  RESUMEN: Los sistemas de información actuales se están enfocando cada vez más hacia arquitecturas descentralizadas y autónomas. Han surgido así los sistemas de datos distribuidas y más concretamente las bases de datos distribuidas para dar respuesta a estas necesidades. Los sistemas gestores de bases de datos distribuidas deben ofrecer al usuario un entorno que parezca centralizado, apareciendo así el concepto de transparencia a varios niveles: fragmentación, replicación y de consulta. En el presente trabajo, se ha diseñado un sistema gestor de base de datos distribuida que ofrece estas características de transparencia, utilizando la base de datos Oracle9i.


Ø  Estado actual de los SGBDD
Existen varios productos comerciales con bases de datos distribuidas, como:
• INGRES/STAR de Relational Technology, Inc.
• SQL*STAR, de Oracle Corp.
• DB2 versión 2 Edición 2, de IBM.
Desde el punto de vista académico los dos tipos de software conocidos son:
• Microsoft Access, con un SGBD muy sencillo porque da soporte a una base de datos de oficina muy poco sofisticada. No proporciona funcionalidad de BDD, pero se pueden implementar módulos que simulen la fragmentación, replicación y consultas distribuidas. Sin embargo, no se garantiza la fiabilidad del SGBDD desarrollado.
• MySQL, no proporciona actualmente soporte alguno para los BDD verdaderos.
• Oracle9i, (KOCH, G., 2003); no ofrece utilidades para fragmentar, replicar y realizar consultas optimizadas, pero se la ha elegido como plataforma para desarrollar la transparencia debido a sus prestaciones como SGBD.



Ø  Planteamiento del problema
Dado que el núcleo fundamental es desarrollar de manera automática las principales características de los SGBDD, se procede a la definición de los requisitos:

1.       Fragmentación de la base de datos original: La fragmentación debe poder ser mixta y derivada con asignación de los fragmentos a distintos nodos.
2.       Replicación de fragmentos de la base de datos: Se debe poder indicar los fragmentos que se replican y donde se replican.

3.       Consultas optimizadas, en la cual se puedan realizar tanto consultas locales como consulta globales a varios nodos, y que por tanto, involucran a tablas de varios nodos. Esto se puede realizar después de la fragmentación y replicación cualquier número de veces por un usuario corriente.

No hay comentarios:

Publicar un comentario