Base de Datos Distribuidos

BASE DE DATOS DISTRIBUIDOS INTRODUCCION: La necesidad de almacenar datos de forma masiva dio paso a la creación de los s

Views 29 Downloads 0 File size 56KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

BASE DE DATOS DISTRIBUIDOS INTRODUCCION: La necesidad de almacenar datos de forma masiva dio paso a la creación de los sistemas de bases de datos. La base de datos distribuidas originalmente almacenan la información 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 creación de almacenamiento distribuido, los cuales hoy en día proveen características indispensables en el manejo de información; es decir, la combinación de las redes de comunicación y las bases de datos. 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 través de diversos medios de comunicación, tales como cables de alta velocidad o líneas telefónicas. No comparten la memoria principal ni el reloj. Los procesadores de un sistema distribuido pueden variar en cuanto su tamaño y función. Pueden incluir microcomputadores pequeños, estaciones de trabajo y sistemas de computadores grandes de aplicación general. Estos procesadores reciben diferentes nombres, tales como localidades, nodos o computadores. Un sistema distribuido de bases de datos consiste en un conjunto de localidades, cada uno de las cuales puede participar en la ejecución de transacciones que accedan a datos de una o varias localidades. La diferencia principal entre los sistemas de base de datos centralizados y distribuidos es que, en los primeros, los datos residen en una sola localidad, mientras que, en los últimos, se encuentran en varias localidades. PROBLEMÁTICA Uno de los objetivos principales de los SBDD es minimizar la utilización de la red. 1. Procesamiento de Consultas, implica que el propio proceso de optimización de consultas debe ser distribuido, al igual que el proceso de ejecución de la consulta. El proceso de optimización consistirá de un paso de optimización global seguido de un paso de optimización local en cada sitio afectado. 2. Administración de catálogo. En un sistema distribuido el catálogo del sistema incluirá los datos usuales del catálogo y toda la información de control necesaria para que el sistema

proporcione la independencia de ubicación, fragmentación y replicación necesaria. El catálogo puede ser: • Centralizado. • Completamente replicado. • Dividido. • Combinación de los dos primeros. Normalmente se utiliza otro esquema, manejando sinónimos para acceder a los objetos remotos. 3. Propagación de la Actualización. Se refiere más al concepto de replicación que se verá más adelante. 4. Control de la recuperación. El control de concurrencia en los SBDD está basado en el protocolo de confirmación de dos fases. Las características generales son: • El coordinador de una transacción no debe ser siempre el mismo nodo, por lo general es el nodo que inicia la transacción. Cada sitio debe ser capaz de actuar como coordinador para algunas transacciones y como participante en otras. • El proceso de confirmación requiere que el coordinador se comunique con cada uno de los sitios participantes, lo cual significa más mensajes y más sobrecarga. • El participante debe hacer lo que le indique el coordinador, esto implica pérdida de autonomía. MARCO TEORICO DEFINICION: Una BDD (Base de Datos Distribuida) es un conjunto de Bases de Datos relacionadas lógicamente, pero que se encuentran físicamente localizadas en varios “sitios” de la red. El soporte completo para las BDD implica que una sola aplicación debe ser capaz de operar de manera transparente sobre los datos que están dispersos en bases de datos diferentes, administradas por distintos DBMS, ejecutadas en máquinas diferentes, manejadas por sistemas operativos diferentes y conectadas a una variedad de redes de comunicación, donde el término transparente significa que la aplicación opera desde un punto de vista lógico como sin todos los datos fueran manejados por un solo DBMS y ejecutados en una sola máquina. Un SGBDD permite el manejo de la BDD y hace esta distribución transparente a todos los usuarios. Cada punto de la red es una base de datos. A cada uno de los computadores que integran el SBD se le conoce como nodo o emplazamiento del sistema y pueden ser administrados de forma diferente. Cada computador que maneja una BD de una BDD se le denomina NODO. BD Local: BD a la cual el usuario está directamente conectado. BD Remota: cualquier BD adicional accesada por este usuario. AMBIENTES DE BASES DE DATOS DISTRIBUIDAS

Las BDD pueden ser: Homogéneas: Todos los sitios tienen el mismo SGBD, son conscientes de la existencia de los demás sitios y cooperan en el procesamiento de las solicitudes. Los sitios locales mantienen un mismo esquema y SGBD. Heterogéneas: Cada sitio puede tener un SGBD distinto así como esquemas diferentes. Puede que algunos sitios no conozcan a otros. Puede que solo ofrezcan facilidades limitadas para la cooperación en el procesamiento de transacciones.

CARACTERÍSTICAS: 1. Cuenta con autonomía local. Los sitios distribuidos deben ser autónomos, es decir que todas las operaciones en un sitio dado se controlan en ese sitio, pues cuenta con su propio SGBD. 2. Réplicas. Se realizan copias de los datos las cuales se almacenan en los sitios que las requieren. De esta forma el usuario efectúa operaciones sobre la réplica. 3. Fragmentación. Es deseable por razones de desempeño, los datos pueden almacenarse en la localidad donde se utilizan con mayor frecuencia de manera que la mayor parte de las operaciones sean solo locales y se reduzca el tráfico en la red. 4. No dependencia de un sitio central. No debe haber dependencia de un sitio central para obtener un servicio. 5. Transparencia de localización de datos. No debe ser necesario que los usuarios sepan dónde están almacenados físicamente los datos, sino que el usuario debe verlo como si solo existiera un sitio local. 6. Manejo distribuido de transacciones. Tiene dos aspectos principales, el control de recuperación y el control de concurrencia. 7. Independencia con respecto a la red. Se puede leer o escribir datos localizados en diferentes nodos de la red. 8. Independencia del sistema operativo, hardware y DBMS. Para el usuario final no importa que los datos estén almacenados en sitios en los que no se maneje el mismo sistema operativo de su nodo local, el mismo hardware o DBMS. 9. Dos tipos de transacciones: Locales, cuando se accede a los datos del único sitio donde se inició la transacción. Globales, cuando se accede a datos de sitios distintos al sitio donde se inició la transacción. LAS DOCE REGLAS DE LAS BASES DE DATOS DISTRIBUIDAS

El principio fundamental es que para el usuario un sistema distribuido debe ser igual que uno centralizado.

• Autonomía Local: Los sitios distribuidos deben ser autónomos, es decir que todas las operaciones en un sitio dado se controlan en ese sitio.

• No dependencia de un sitio central: No debe de haber dependencia de un sitio central para obtener un servicio.

• Operación Continua: Nunca debería apagarse para que se pueda realizar alguna función, como añadir un nuevo sitio.

• Independencia con respecto a la localización: No debe de ser necesario que los usuarios sepan dónde están almacenados físicamente los datos, sino que más el usuario lo debe de ver como si solo existiera un sitio local.

• Independencia con respecto a la fragmentación: La fragmentación es deseable por razones de desempeño, los datos, pueden almacenarse en la localidad donde se utilizan con mayor frecuencia de manera que la mayor parte de las operaciones sean sólo locales y se reduzca el tráfico en la red.

• Independencia de réplica: Si una relación dada (es decir, un fragmento dado de una relación ) se puede presentar en el nivel físico mediante varias copias almacenadas o réplicas, en muchos sitios distintos.

• Procesamiento Distribuido de Consultas: El objetivo es convertir transacciones de usuario en instrucciones para manipulación de datos, y así reducir el trafico en la red implica que el proceso mismo de optimización de consultas debe ser distribuido.

• Manejo Distribuido de Transacciones: Tiene dos aspectos principales, el control de recuperación y el control de concurrencia, cada uno de los cuales requiere un tratamiento más amplio en el ambiente distribuido.

• Independencia con respecto al equipo: El SGBDD debe ser ejecutable en diferentes plataformas hardware.

• Independencia con respecto al Sistema Operativo: El sistema debe ser ejecutable varios diferentes SO.

• Independencia con respecto a la red: El sistema debe poder ejecutarse en diferentes redes.

• Todos los usuarios accesan a la BDD a través de un esquema global en forma transparente al usuario. Debe ser posible ejecutar diferentes SGBDD locales que utilicen distintos modelos de datos.

VENTAJAS: 1. El funcionamiento del sistema no depende de un solo lugar. 2. Las grandes organizaciones pueden adoptar BDD para obtener una interconexión confiable y flexible, potenciando su rendimiento y expansión. 3. Reduce los costos de hardware, se necesita menos recursos (memoria, etc.) si la base de datos es más pequeña. DESVENTAJAS: 1. La probabilidad de violaciones de seguridad es creciente. 2. El control de concurrencia y recuperación de los datos se tornan más complejos. 3. La distribución provoca un aumento en la complejidad del diseño al igual que en la implementación del sistema.

PROCESAMIENTO DISTRIBUIDO 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 manipulación 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 optimización en el cual se determina el orden en el cual se hace la menor cantidad de operaciones. En BDD se tiene que considerar el procesamiento local de una consulta junto con el costo de transmisión de información al lugar en donde se solicitó la consulta.

RECUPERACIÓN En los entornos siguientes:

distribuidos

de

datos

podemos

encontrar

lo

Fallo de los nodos. Cuando un nodo falla, el sistema deberá continuar trabajando con los nodos que aún funcionan. Si el nodo a recuperar es una base de datos local, se deberán separar los datos entre los nodos restantes antes de volver a unir de nuevo el sistema. Copias múltiples de fragmentos de datos. El subsistema encargado del control de concurrencia es el responsable de mantener la consistencia en todas las copias que se realicen y el subsistema que realiza la recuperación es el responsable de hacer copias consistentes de los datos de los nodos que han fallado y que después se recuperarán. Transacción distribuida correcta. Se pueden producir fallos durante la ejecución de una transacción correcta si se plantea el caso de que al acceder a alguno de los nodos que intervienen en la transacción, dicho nodo falla. Fallo de las conexiones de comunicaciones. El sistema debe ser capaz de tratar los posibles fallos que se produzcan en las comunicaciones entre nodos. El caso más extremo es el que se produce cuando se divide la red. Esto puede producir la separación de dos o más particiones donde las particiones de cada nodo pueden comunicarse entre sí pero no con particiones de otros nodos. Para implementar las soluciones a estos problemas, supondremos que los datos se encuentran almacenados en un único nodo sin repetición. De ésta manera sólo existirá un único catálogo y un único DM (Data Manager) encargados del control y acceso a las distintas partes de los datos. Para mantener la consistencia de los datos en el entorno distribuido contaremos con los siguientes elementos:  Catálogo: Programa o conjunto de programas encargados de controlar la ejecución concurrente de las transacciones.  CM (Cache Manager). Subsistema que se encarga de mover los datos entre las memorias volátiles y no volátiles, en respuesta a

las peticiones de los niveles más altos del sistema de bases de datos. Sus operaciones son Fetch(x) y Flush(x).  RM (Recovery Manager). Subsistema que asegura que la base de datos contenga los efectos de la ejecución de transacciones correctas y ninguno de incorrectas. Sus operaciones son Start, Commit, Abort, Read, Write, que utilizan a su vez los servicios del CM.  DM (Data Manager). Unifica las llamadas a los servicios del CM y el RM.  TM (Transaction Manager). Subsistema encargado de determinar que nodo deberá realizar cada operación a lo largo de una transacción. Las operaciones de transacción que soporta una base de datos son: Start, Commit y Abort. Para comenzar una nueva transacción se utiliza la operación Start. Si aparece una operación commit, el sistema de gestión da por terminada la transacción con normalidad y sus efectos permanecen en la base de datos. Si, por el contrario, aparece una operación abort, el sistema de gestión asume que la transacción no termina de forma normal y todas las modificaciones realizadas en la base de datos por la transacción deben de ser deshechas. FRAGMENTACIÓN El problema de fragmentación se refiere al particionamiento de la información para distribuir cada parte a los diferentes sitios de la red Objetivos de la fragmentación El objetivo de la fragmentación consiste en dividir la relación en un conjunto de relaciones más pequeñas tal que algunas de las aplicaciones de usuario sólo hagan uso de un fragmento. Sobre este marco, una fragmentación óptima es aquella que produce un esquema de división que minimiza el tiempo de ejecución de las aplicaciones que emplean esos fragmentos. La unidad de fragmentación ideal no es la tabla sino una subdivisión de ésta. Esto es debido a: Las aplicaciones usan vistas definidas sobre varias relaciones, es decir, se forman a partir de "trozos" de varias tablas. Si conseguimos que cada una de las vistas esté definida sobre subtablas locales (o en su defecto lo más "cerca" posible) a cada aplicación, es de esperar un incremento en el rendimiento. Si múltiples vistas de diferentes aplicaciones están definidas sobre una tabla no fragmentada, se tiene: Si la tabla no está replicada entonces se produce generación de tráfico por accesos remotos. Si la tabla está replicada en todos o algunos de los sitios donde residen cada una de las aplicaciones entonces la generación de

tráfico innecesario es producida por la necesidad de la actualización de las copias.