Fundamentos de Bases de Datos Distribuidas

Fundamentos de bases de datos distribuidas 1.1 CONCEPTOS BASICOS DE BASES DE DATOS DISTRIBUIDAS DEFINICION DE BASE DE DA

Views 181 Downloads 0 File size 170KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Fundamentos de bases de datos distribuidas 1.1 CONCEPTOS BASICOS DE BASES DE DATOS DISTRIBUIDAS DEFINICION DE BASE DE DATOS DISTRIBUIDAS: Es una colección de datos que pertenecen lógicamente a un sólo sistema, pero se encuentra fisicamente esparcido en varios sitios de la red. Un sistema de base de datos distribuidas se compone de un conjunto de sitios, conectados entre sí mediante algún tipo de red de comunicaciones, en el cual : 1. cada sitio es un sistema de base de datos en sí mismo, pero 2. los sitios han convenido en 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.

El procesamiento de bases de datos distribuidas es el proceso en el cual la ejecución de transacciones y la recuperación y actualización de los datos acontece a través de dos o más computadoras independientes, por lo general separadas geográficamente. Las Bases de Datos Distribuidas , no son simplemente implementaciones distribuidas de bases de datos centralizadas, por que ellas permiten el diseño de sistemas que representan diferentes características de las tradicionales, de sistemas centralizados. Esto es por lo tanto útil para ver las características típicas de BDD. Los rasgos que caracterizan las BD tradicionales se aproximan al control centralizado, independencia de datos, reducción de redundancia, estructuras físicas complejas para acceso eficiente, integridad, recuperación control de concurrencia, privacidad y seguridad. Los principales factores que distinguen un SBDD de un sistema centralizado son los siguientes: Hay múltiples computadores, llamados sitios o nodos. Estos sitios deben de estar comunicados por medio de algún tipo de red de comunicaciones para transmitir datos y órdenes entre los sitios 1.2 OBJETIVOS DE LAS B.D.D Transparencia de ubicación. Permite a los usuarios tener acceso a los datos sin que tenga conocimiento de la ubicación de éstos. Transparencia de duplicación. Para que la transparencia de duplicación sea posible, los administradores de transacciones deben traducir las solicitudes de procesamiento de transacción en acciones para el administrador de datos. Transparencia de concurrencia. Cuando varias transacciones se ejecuten al mismo tiempo, los resultados de las transacciones no deberán afectarse. Transparencia de fallas. Significa que a pesar de fallas las transacciones sean procesadas

de un modo correcto. Frente a una falla, las transacciones deben ser atómicas, significa que se procesen todas o ninguna de ellas. Localidad del procesamiento. Los datos se deben distribuir lo más cerca posible de las aplicaciones que los usan para maximizar la localidad del procesamiento, este principio responde a minimizar el acceso remoto a los datos. Particionado de la Base de Datos. La base de datos se distribuye de modo que no haya solapamiento o duplicación de los datos mantenidos en las diferentes localidades, como no hay duplicaciones de los datos, se evitan los costos asociados con el almacenamiento y mantenimiento de datos redundantes. Fragmentación de datos. Consiste en subdividir las relaciones y distribuirlas entre los sitios de la red, tiene como objetivo buscar formas alternativas de dividir una las instancias de relaciones en otras más pequeñas. 1.3 DISCIPLINAS DE ESTUDIO Las principales disciplinas de estudio para conocer las bases son las siguientes: A) INGENIERIA: Para conocer cono se desarrollan y que forma tendran para implementarse B) ALGEBRA: Busca establecer relaciones en base a funciones algebraicas C) BASES DE DATOS: Buscan un adecuado funcionamiento de acuerdo a los principios de estas D) REDES: Implementado en adecuado sistema para su funcionamiento sin concurrencia

1.4 ARQUITECTURA DE BASES DE DATOS DISTRIBUIDAS Podemos destacar tres niveles principales según la visión y la función que realice el usuario sobre la base de datos: Nivel Interno: es el nivel más cercano al almacenamiento físico de los datos. Permite escribirlos tal y como están almacenados en el ordenador. En este nivel se diseñan los archivos que contienen la información, la ubicación de los mismos y su organización, es decir se crean los archivos de configuración. Nivel conceptual: En este nivel se representan los datos que se van a utilizar sin tener en cuenta aspectos como lo que representamos en el nivel interno. Nivel externo: es el más cercano al usuario. En este nivel se describen los datos o parte de los datos que más interesan a los usuarios.

Diseño de bases de datos distribuidas.

2.1 NIVELES DE TRANSPARENCIA EN SBDD El próposito de establecer una arquitectura de un sistema de bases de datos distribuidas es ofrecer un nivel de transparencia adecuado para el manejo de la información. La

Transparencia se puede entender como la separación de la semántica de alto nivel de un sistema de las aspectos de bajo nivel relacionados a la implementación del mismo. Un nivel de transparencia adecuado permite ocultar los detalles de implementación a las capas de alto nivel de un sistema y a otros usuarios. En sistemas de bases de datos distribuidos el propósito fundamental de la transparencia es proporcionar independencia de datos en el ambiente distribuido. Se pueden encontrar diferentes aspectos relacionados con la transparencia. Por ejemplo, puede existir transparencia en el manejo de la red de comunicación, transparencia en el manejo de copias repetidas o transparencia en la distribución o fragmentación de la información. La independencia de datos es la inmunidad de las aplicaciones de usuario a los cambios en la definición y/u organización de los datos y viceversa. La independencia de datos se puede dar en dos aspectos: lógica y física. 1. Independencia lógica de datos . Se refiere a la inmunidad de las aplicaciones de usuario a los cambios en la estructura lógica de la base de datos. Esto permite que un cambio en la definición de un esquema no debe afectar a las aplicaciones d eusuario. Por ejemplo, el agregar un nuevo atributo a una relación, la creación de una nueva relación, el reordenamiento lógico de algunosatributos. 2. Independencia física de datos . Se refiere al ocultamiento de los detalles sobre las estructuras de almacenamiento a las aplicaciones de usuario. Esto es, la descripción física de datos puede cambiar sin afectar a las aplicaciones de usuario. Por ejemplo, los datos pueden ser movidos de un disco a otro, o la organización de los datos puede cambiar. La transparencia al nivel de red se refiere a que los datos en un SBDD se accesan sobre una red de computadoras, sin embargo, las aplicaciones no deben notar su existencia. La transparencia al nivel de red conlleva a dos cosas: 1. Transparencia sobre la localización de datos. Esto es, el comando que se usa es independiente de la ubicación de los datos en la red y del lugar en donde la operación se lleve a cabo. Por ejemplo, en Unix existen dos comandos para hacer una copia de archivo. Cp se utiliza para copias locales y rcp se

utiliza para copias remotas. En este caso no existe transparencia sobre la localización. 2. Transparencia sobre el esquema de nombramiento . Lo anterior se logra proporcionando un nombre único a cada objeto en el sistema distribuido. Así, no se debe mezclar la información de la localización con en el nombre de un objeto. La transparencia sobre replicación de datos se refiere a que si existen réplicas de objetos de la base de datos, su existencia debe ser controlada por el sistema no por el usuario. Se debe tener en cuenta que al cuando el usuario se encarga de manejar las réplicas en un sistema, el trabajo de éste es mínimo por lo que se puede obtener una eficiencia mayor. Sin embargo, el usuario puede olvidarse de mantener la consistencia de las réplicas teniendo así datos diferentes. La transparencia a nivel de fragmentación de datos permite que cuando los objetos de la bases de datos están fragmentados, el sistema tiene que manejar la conversión de consultas de usuario definidas sobre relaciones globales a consultas definidas sobre fragmentos. Así también, será necesario mezclar las respuestas a consultas fragmentadas para obtener una sola respuesta a una consulta global. El acceso a una base de datos distribuida debe hacerse en forma transparente. Bases de datos distribuidas heterogéneas:Significa que es un sistema de BDD donde las bases de datos pueden estar en diferentes sistemas gestores o en entornos operativos, lo contrario a las bases de datos homogéneas. Replicas:Un sistema de bases de datos puede contar con replicas, lo que significa que cada base de datos de los nodos o al menos una puede estar duplicada, con el objetivo de el sistema sea tolerante a fallas, si una base de datos falla la información se redirecciona a la réplica y cuando la base de datos se recupera copia automáticamente las actualizaciones de la réplica. De manera técnica en bases de datos se les conoce como espejos o reflejos. Fragmentación: Un sistema consiste en dividir las partes o fragmentos que contribuyen al diseño adecuado de las bases de datos. Autonomía local:Como la base de datos distribuidas están formadas por otras bases de datos existe autonomía, es decir cada nodo es dueño de su propia información y puede compartir solamente aquella que beneficie sus intereses.

//////////////////////////////////////ALTERNATIVA 2.3 NIVELES DE TRANSPARENCIA 1) De Distribucion Que este perfectamente organizada segun el numero de sedes 2) De Transacciones

Que las operacines a realizar se hagan sin problemas 3) De Rendimiento Que nunca se vea afectado el sistema ni la velocidad del mismo 4) De Red Que no se noten los usuarios conectados al sistema al realizar transacciones

2.4 FRAGMENTACION DE LOS DATOS

-FRAGMENTACIÓN HORIZONTAL: Una tabla T se divide en subconjuntos, T1, T2, ...Tn. Los fragmentos se definen a través de una operación de selección y su reconstrucción se realizará con una operación de unión de los fragmentos componentes. Cada fragmento se sitúa en un nodo. Pueden existir fragmentos no disjuntos: combinación de fragmentación y replicación.

-FRAGMENTACIÓN VERTICAL: Una tabla T se divide en subconjuntos, T1, T2,...Tn. Los fragmentos se definen a través de una operación de proyección. Cada fragmento debe incluir la clave primaria de la tabla. Su reconstrucción se realizará con una operación de join de los fragmentos componentes. Cada fragmento se sitúa en un nodo. Pueden existir fragmentos no disjuntos: combinación de fragmentación y replicación.

2.5 DISTRIBUCION DE LOS DATOS -CENTRALIZADA Es muy similar al modelo de Cliente/Servidor en el sentido que la BDD está centralizada en un lugar y los usuarios están distribuidos. -REPLICADAS El esquema de BDD de replicación consiste en que cada nodo debe tener su copia completa de la base de datos. Es fácil ver que este esquema tiene un alto costo en el almacenamiento de la información. - PARTICIONADAS

Este modelo consiste en que solo hay una copia de cada elemento, pero la información está distribuida a través de los nodos. En cada nodo se aloja uno o más fragmentos disjuntos de la base de datos

Procesamiento de consultas distribuidas.

3.1 METODOLOGIA DE PROCESAMIENTO DE CONSULTAS DISTRIBUIDAS Primeramente se debe de contar con heterogenidad de los datos, para que puedan ser usados para formular consultas. Tenemos los sigueintes ejemplos: BD CENTRALIZADA

ᄃ BD DISTRUIBUIDA

ᄃ Asi como tambien necesitamos contar con: -Localizacion de los datos para generar reglas heuristicas -Descomposicion de consultas en paralelo en cada nodo -Reducir la cantidad de datos a transferir en la red

3.2 ESTRATEGIAS DE PROCESAMIENTO DE CONSULTAS DE BASES DE DATOS DISTRIBUIDAS Contamos con la estategia de Reformulacion de consultas, que nos sirve para encontrar q la informacion que nos va a proveer sea solo la que se le pidio por la fuente Tambien se cuenta con la estrategia de descomposicion de las fuentes, q consiste en que segun las fuentes q pidan cierto tipo de datos sean las atentidas con mayor velocidad.

3.3 OPTIMIZACION DE CONSULTAS DISTRIBUIDAS

Para poder optimizar una consulta necesitamos tener claras las propiedades del algebra relacional para asegurar la reformulacion de la consulta, al optimizar una consulta obtenemos los siguientes beneficios:

-minimizar costos -Reducir espacios de comunicaciones -Seguridad en envios de informacion

ᄃ Manejo de transacciones en ambiente distribuido. Manejo distribuido de transacciones. El manejo 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. Para explicar ese tratamiento más amplio es preciso introducir primero un término nuevo, "agente". En un sistema distribuido, una sola transacción puede implicar la ejecución de código en varios sitios ( en particular puede implicar a actualizaciones en varios sitios ). Por tanto, se dice que cada transacción está compuesta de varios agentes, donde un agente es el proceso ejecutado en nombre de una transacción dada en determinado sitio. Y el sistema necesita saber cuándo dos agentes son parte de la misma transacción; por ejemplo, es obvio que no puede permitirse un bloqueo mutuo entre dos agentes que sean parte de la misma transacción. La cuestión especifica del control de recuperación; : para asegurar, pues que una transacción dada sea atómica ( todo o nada ) en el ambiente distribuido, el sistema debe asegurarse de que todos los agentes correspondientes a esa transacción se comprometan al unísono o bien que retrocedan al unísono. Este efecto puede lograrse mediante el protocolo de compromiso en dos fases. En cuanto al control de concurrencia, esta función en un ambiente distribuido estará basada con toda seguridad en el bloqueo, como sucede en los sistemas no distribuidos.

Control de concurrencia El control de concurrencia trata con los problemas de aislamiento y consistencia del procesamiento de transacciones. El control de concurrencia distribuido de una DDBMS asegura que la consistencia de la base de datos se mantiene en un ambiente distribuido multiusuario. Si las transacciones son internamente consistentes, la manera más simple de lograr este objetivo es ejecutar cada transacción sola, una después de otra. Sin embargo, esto puede afectar grandemente el desempeño de un DDBMS dado que el nivel de concurrencia se reduce al mínimo. El nivel de concurrencia, el número de transacciones activas, es probablemente el parámetro más importante en sistemas distribuidos. Por lo tanto, los mecanismos de control de concurrencia buscan encontrar un balance entre el mantenimiento de la consistencia de la base de datos y el mantenimiento de un alto nivel de concurrencia. Si no se hace un adecuado control de concurrencia, se pueden presentar dos anomalías. En primer lugar, se pueden perder actualizaciones provocando que los efectos de algunas transacciones no se reflejen en la base de datos. En segundo término, pueden presentarse recuperaciones de información inconsistentes. En este capítulo se hace la suposición de que el sistema distribuido es completamente confiable y no experimente falla alguna. En el capítulo siguiente, se considerará la presencia de fallas para obtener sistemas confiables.