710 likes | 896 Views
Administración de Bases de Datos. Administración de BD distribuidas Objetivos Comprender las nociones básicas de las BDD Conocer las ventajas e inconvenientes de las BDD Conocer diferentes arquitecturas y diseños de BDD Conocer diferentes estrategias de implementación de las BDD
E N D
Administración de Bases de Datos Administración de BD distribuidas • Objetivos • Comprender las nociones básicas de las BDD • Conocer las ventajas e inconvenientes de las BDD • Conocer diferentes arquitecturas y diseños de BDD • Conocer diferentes estrategias de implementación de las BDD • Conocer las funcionalidades y requerimientos de un SGBDD
Administración de Bases de Datos Administración de BD distribuidas • Bases de Datos distribuidas: distribución de datos
Administración de Bases de Datos Administración de BD distribuidas • Arquitecturas Cliente/Servidor: distribución de procesos
Administración de Bases de Datos Administración BD distribuidas • Bases de Datos Distribuidas: precisan al menos de dos servidores de Bases de Datos • Cliente/servidor: separan el rol del servidor del de cliente • Bases de Datos paralelas: usan varias máquinas (o máquinas multiprocesador) y varios dispositivos de almacenamiento
Administración de Bases de Datos BD distribuidas • Contenidos • Introducción y motivación • Nociones generales de las BDD • Ventajas y desventajas de las BDD • Diseño de las BDD • Procesamiento de transacciones en BDD • Seguridad en BDD • Control de Concurrencia en BDD • Restricciones de Integridad en BDD • Clasificación de BDD • BDD en Oracle
Administración de Bases de Datos BD distribuidas • Bibliografía • Elmasri, Navathe Fundamentals of Database Systems (4a edición) Fundamentos de Sistemas de Bases de Datos (3a edición) Addison Wesley 2004 • Ozsu, Valduriez Principles of Distributed Database Systems (2a edición) Pentice Hall International Inc. 1999 • Connolly, Begg Database Systems. A Practical Approach to Design, Implementation and Management (3a edición) Addison Wesley 2002
Administración de Bases de Datos Motivación • Tecnología “tradicional” de las BDs • Centralización de los datos • Múltiples ficheros => una base de datos • Tecnología de redes • Distribución/compartición de recursos • BD centralizada => BDs distribuida (¿varias BDs?) • BDs distribuidas • Unión de estas dos aproximaciones (aparentemente incompatibles) • La tecnología de las BDs busca la INTEGRACIÓN de los datos y no la CENTRALIZACIÓN.
Administración de Bases de Datos Motivación • Tecnología “tradicional” de las BDs • Centralización de los datos • Múltiples ficheros => una base de datos • Tecnología de redes • Distribución/compartición de recursos • BD centralizada => BDs distribuida (¿varias BDs?) • BDs distribuidas • Unión de estas dos aproximaciones (aparentemente incompatibles) • La tecnología de las BDs busca la INTEGRACIÓN de los datos y no la CENTRALIZACIÓN.
Administración de Bases de Datos BD distribuidas vs. centralizadas • La diferencia principal entre ambos es que las BD centralizadas residen en una única ubicación física, mientras que las distribuidas residen en varias ubicaciones • La distribución de los datos puede causar muchas complicaciones y dificultades en el procesamiento de transacciones y consultas
Administración de Bases de Datos Definición de BD distribuida • BD que se encuentra repartida entre ubicaciones físicas dispersas pero conectadas via enlaces de comunicación que permite ver la BD de forma integrada • Colección de datos que pertenecen lógicamente a un único sistema pero físicamente están dispersos en distintos lugares de la red • Los usuarios de cada nodo pueden acceder a todos los datos de forma transparente • Para los usuarios sólo hay una única BD
Administración de Bases de Datos SGBDD • Un sistema de gestión de bases de datos distribuidas (SGBDD) es el software que permite el manejo de Bases de Datos Distribuidas y que hace dicha distribución transparente al usuario • Transparente: las aplicaciones trabajaran, desde un punto de vista lógico, como si un solo SGBD ejecutado en una sola máquina, administrara esos datos
Administración de Bases de Datos Arquitectura de un SBDD • Conjunto de nodos que operan con SGBD locales que pueden participar en la ejecución de transacciones que acceden a datos de varios nodos • SBDD = BDD + SGBDD SGBDD BDD SGBDD BDD SGBDD BDD
Administración de Bases de Datos Configuraciones de la red • Criterios que permiten comparar distintas configuraciones de SBDD • Coste de instalación: el coste de enlazar físicamente los nodos del sistema • Coste de comunicaciones: coste en tiempo y dinero de enviar un mensaje entre nodos • Disponibilidad: grado en que se puede tener acceso a los datos a pesar del nodo de algunos enlaces o nodos
Administración de Bases de Datos Nodos de la arquitectura • En los nodos pueden existir: • Usuarios locales: Sólo acceden a los datos de su nodo • Usuarios globales: Necesitan acceder a los datos almacenados en distintos nodos
Administración de Bases de Datos BD remotas vs. BD distribuidas • BD remotas: el usuario especifica los comandos de comunicación • BD distribuidas: se proporciona transparencia respecto a la distribución. Los usuarios realizan las transacciones como si se tratara de una BD centralizada
Administración de Bases de Datos Organización de los sistemas de BDD • Tradicionalmente se han clasificado respecto a: • Nivel de compartición • Nivel de acceso a los datos • Nivel de conocimiento de las características de acceso acceso dinámico parcial estático total datos datos y programas conocimiento compartición
Administración de Bases de Datos Organización de los sistemas de BDD • El nivel de compartición presenta tres alternativas • Inexistencia: cada aplicación y sus datos se ejecutan en un ordenador con ausencia total de comunicación con otros programas o datos • Se comparten sólo los datos y no los programas, existe una réplica de las aplicaciones en cada nodo y los datos se comparten por la red (BDD) • Se comparten datos y programas, dado un programa ubicado en un nodo, éste puede solicitar un servicio a otro programa localizado en otro lugar, el cual accederá a los datos situados en otro lugar
Administración de Bases de Datos Organización de los sistemas de BDD • Respecto a las características de acceso a los datos existen dos alternativas posibles: • Estático: el modo de acceso a los datos que solicitan los usuarios no cambiará a lo largo del tiempo • Dinámico: el modo de acceso cambia a lo largo del tiempo (BDD) Resulta difícil encontrar sistemas distribuidos reales que puedan clasificarse como estáticos. Esta dimensión establece la relación entre el diseño de BDD y el procesamiento de transacciones y consultas, y el grado su variabilidad a lo largo del tiempo
Administración de Bases de Datos Organización de los sistemas de BDD • Respecto al nivel de conocimiento de las características de acceso: • Los diseñadores carecen de información sobre cómo los usuarios acceden a la BD (situación irreal) • Los diseñadores conocen perfectamente la forma de acceso de los usuarios o en su defecto, información parcial de ésta (BDD)
Administración de Bases de Datos Objetivo de las BDD • Transparencia: Separación del nivel semántico (QUÉ) del sistema de los aspectos de implementación (CÓMO) • Proporcionar INDEPENDENCIA DE DATOS • Tipos de transparencia: • En la localización y distribución en la red • En las copias • En la fragmentación
Administración de Bases de Datos Transparencia en la localización y distribución • Los usuarios y los programas no deben conocer los detalles de cada dato • Transparencia en la localización: los comandos son independienes de la localización de los datos y del lugar donde se lanza el comando • Transparencia en los nombres: cuando se asignan nombres a los objetos, éstos se pueden acceder de forma no ambigua • Un esquema de localización describe el lugar donde están almacenados los datos (fragmentos)
Administración de Bases de Datos Transparencia en las copias • Todos los detalles para localizar y mantener copias deben ser tratados por el sistema. Se duplican los fragmentos. • Ventajas: • Seguridad • menor número de comunicaciones • Inconvenientes: • Modificaciones • Más espacio de almacenamiento
Administración de Bases de Datos Transparencia en las copias • Distribución redundante: replicar toda la BD en cada nodo. • Ventajas: • Disponibilidad: el sistema funciona mientras funciona alguno de sus nodos • Paralelismo incrementado • Inconvenientes: • Modificaciones más costosas • Mecanismos de control de concurrencia y recuperación ante fallos más complejas
Administración de Bases de Datos Transparencia en las copias • Distribución reduntante parcial: algunos fragmentos se duplican y otros no. La descripción de los fragmentos duplicados se denomina esquema de duplicación. El grado de duplicación de un fragmento depende de los objetivos deseados de rendimiento y disponibilidad del sistema y de los tipos y frecuencias de las preguntas enviadas a cada nodo • Distribución no redundante: no existen copias de los datos. Cada fragmento está en un nodo.
Administración de Bases de Datos Tipos de fragmentación • Fragmento: unidad lógica de la BD (p.e. Relación) • Tipos de fragmentación: • Horizontal • Vertical • Mixta
Administración de Bases de Datos Fragmentación horizontal • La fragmentación horizontal de una relación consiste en un subconjunto de tuplas de dicha relación. Las tuplas que pertenecen al fragmento horizontal se especifican por una condición (condición de guardia) • Operador: SELECT • Propiedades: • Completa: cada tupla de la relación original R está en alguno de los fragmentos (F1 or F2 or ... or Fn) • Disjunta: para cualquier i#j ninguna tupla está en Ci and Cj • Si es completa y disjunta, se puede utilizar la operación UNION para reconstruir la relación original
Administración de Bases de Datos Fragmentación vertical • La fragmentación vertical de una relación contiene sólo ciertos atributos que están relacionados entre sí de alguna forma • Operador: Proyección • Es necesario incluir en cada fragmento el atributo clave primaria • Propiedades: • Completa: el conjunto de fragmentos verticales incluye todos los atributos de la relación original y comparten el atributo clave primaria • La operación OUTER UNION nos permite reconstruir la relación original
Administración de Bases de Datos Fragmentación • Mixta: Combinación de los tipos de fragmentación Horizontal y Vertical • Combinación de SELECT-PROJECT del tipo pF (sC (R)) • IF C=true AND F#ATTRS(R) Fragmento vertical • IF C#true AND F=ATTRS(R) Fragmento horizontal • IF C#true AND F#ATTRS(R) Magmento mixto • IF C=true AND F=ATTRS(R) Relación original
Administración de Bases de Datos Esquema de Fragmentación • Un esquema de fragmentación de una BDD contiene la definición del conjunto de fragmentos que incluyen todos los atributos y tuplas de la BD y que cumple la condición de que toda la BD puede ser reconstruida a partir de los fragmentos mediante una secuencia de operaciones
Administración de Bases de Datos Objetivos de la BD distribuidas • Transparencia en la localización + • Transparencia en copias + • Transparencia en fragmentación • La transparencia en la localización permite trasladar relaciones entre nodos sin alterar las aplicaciones • La transparencia en las copias permite incrementar el factor de disponibilidad de los datos y el del rendimiento del sistema • La transparencia en la fragmentación también permite incrementar el factor de rendimiento del sistema • Permite que el usuario vea el sistema distribuido como un sistema centralizado
Administración de Bases de Datos Ventajas y desventajas de las BD distribuidas + Manejo de datos distribuidos con diferentes niveles de transparencia + Mejora la seguridad y disponibilidad de los datos + Permite la expansión incremental con el mínimo impacto en las aplicaciones + Incrementa el rendimiento del sistema + Permite la compartición de datos mateniendo un control local de los datos más utilizados en el nodo
Administración de Bases de Datos Ventajas y desventajas de las BD distribuidas + Compartición de datos + Autonomía local (permite políticas locales de acceso a datos) + Más eficiencia local (en cada nodo) + Mayor fiabilidad/disponibilidad de datos (hay datos replicados) + Economía (varios ordenadores vs. un solo mainframe) + Escalabilidad (permite expandir nodos fácilmente) • Complejidad (todos los problemas de la BD centralizadas y otros) • Costo (SGBDD, varios ordenadores) • Resistencia al cambio (de centralizadas a distribuidas)
Administración de Bases de Datos Sin replicación Replicación Parcial Replicación Completa Ventajas y desventajas de las BD distribuidas • Asignación Procesamiento De Consultas Fácil Difícil Difícil Control de concurrencia Fácil Muy difícil Difícil Disponibilidad de datos Baja Muy alta Alta
Administración de Bases de Datos Nuevas funciones del SGBDD • Manejar el catálogo global que contiene los esquemas de localización, duplicación y fragmentación • Implementar estrategias de ejecución para preguntas globales • Transmitir transacciones y datos entre los nodos • Decidir a qué copia duplicada acceder • Mantener la consistencia entre cópias duplicadas • Recuperación entre fallos en los nodos o en la red
Administración de Bases de Datos Diseño de BDD • Hay que decidir en qué nodos deben residir: • Cómo distribuir los datos entre diferentes sitios? • Diseño bottom-up: integración de BD ya existentes • Diseño top-down: fragmentar y asignar • Las aplicaciones que trabajan con los datos • Objetivos: • Procesamiento local • Distribución de la carga de trabajo: • Coste de almacenamiento • Disponibilidad
Administración de Bases de Datos Esquema global canónico Diseño bottom-up de BDD integración Esquema local canónico N Esquema local canónico 1 traducción traducción ... Esquema local N Esquema local 1
Administración de Bases de Datos Esquema global Fragmentación Diseño top-down de BDD Esquema global fragmentado Asignación Esquema local N Esquema local 1 Diseño físico Diseño físico ... Esquema físico N Esquema físico 1
Administración de Bases de Datos Diseño top-down de BDD • Asignación • Sin replicación: • todo fragmento reside en un único nodo • Bueno para actualizaciones • Malo para consultas • Con replicación total • Todos los fragmentos residen en todos los nodos • Malo para actualizaciones • Bueno para consultas • Con replicación parcial • Algunos fragmentos pueden residir en más de un nodo • Compromiso entre actualizaciones y preguntas • Si hay más actualizaciones que preguntas, la replicación será menos ventajosa
Administración de Bases de Datos Diseño top-down de BDD • Asignación • Dados N fragmentos y M nodos, encontrar la matriz Q donde Qij = true si el fragmento i se aloja en el nodo j tal que minimiza el coste total de transacciones Suma de los costos de procesamiento de todas las consultas y Actualizaciones sujeto a las siguientes restricciones • No superar una determinada carga de procesamiento en cada nodo • Existe un almacenamiento máximo en cada nodo • Hay un tiempo de respuesta máximo para cada transacción • El problema es NP-completo: problema de la mochila, etc. • Pero se podrían usar heurísticos ...
Administración de Bases de Datos Diseño de BDD • Dónde se almacena el catálogo global? • Centralizado: en un único nodo • Totalmente replicado: en cada nodo • Distribuido: en cada nodo se almacena la información necesaria para el nodo • Combinación de 1) y 3)
Administración de Bases de Datos Procesamiento de consultas • El SGBDD debe: • Descomponer la consulta original en subpreguntas que se puedan ejecutar en nodos individuales • Generar un plan para combinar los resultados de las subpreguntas para obtener la respuesta final • Maneja los esquemas de localización, copias y fragmentación • El álgebra relacional no es suficiente para expresar la ejecución de planes distribuidos. Debe ser completada con operaciones para intercambio de datos entre distintos nodos • Elegir el orden de las operaciones del álgebra relacional • Seleccionar los mejores sitios para procesar los datos
Administración de Bases de Datos Procesamiento de consultas • Como regla general, minimizaremos el coste de enviar los datos entre nodos • Por ejemplo, Procesamiento de preguntas utilizando la operación SEMI-JOIN para reducir el número de tuplas de una relación antes de transferirlas a otro nodo • Enviar los atributos de una relación R necesarios para hacer el join al nodo donde esté almacenada S. Hacer el join. Proyectar los atributos necesarios para el resultado y enviar de vuelta al nodo que está R.
Administración de Bases de Datos Pregunta inicial Esquema global Descomposición de consultas Procesamiento de consultas Pregunta inicial en algebra relacional Esquema de fragmentos Localización de datos Pregunta sobre fragmentos Estadísticas sobre fragmentos Optimización global Pregunta sobre fragmentos y operaciones de comunicación Esquema Local Optimización local Preguntas locales
Administración de Bases de Datos Procesamiento de consultas • Descomposición de preguntas • Transforma la pregunta en otra del álgebra relacional • Localización de datos • Determina qué fragmentos están involucrados en la consulta y la transforma en consulta sobre fragmentos distribuidos • Optimización global • Obtiene un plan de ejecución cercana a la óptima • La salida es una consulta algebraica con primitivas de comunicación para transferir datos entre nodos • Optimización local • Con los algoritmos vistos para BD centralizadas
Administración de Bases de Datos Procesamiento de Transacciones • Las transacciones distribuidas deben conservar las propiedades ACID • Atomicity: • Gestor de transacciones y gestor de recuperación • Consistency: • Gestor de restricciones de integridad • Isolation: • Gestor de control de concurrencia • Durability • Gestor de recuperación
Administración de Bases de Datos Procesamiento de Transacciones • Cada nodo tiene dos subsistemas • Gestor de transacciones: Gestiona la ejecución de las transacciones que tienen acceso a datos almacenados en el nodo • Coordinador de transacciones: coordina la ejecución de las transacciones iniciadas en ese nodo • Inicia la ejecución de la transacción • Divide la transacción en una serie de subtransacciones y las distribuye para su ejecución en los nodos adecuados • Coordina la terminación de la transacción. Todos los nodos que intervienen en la transacción deben ponerse de acuerdo sobre el resultado final de la ejecución: COMMINT o ROLLBACK en todos los nodos. • Debe seguir un protocolo: de dos fases, de tres fases.
Administración de Bases de Datos Protocolo de dos fases • Fase 1 (Votación) El coordinador de transacciones del nodo envía un mensaje a todos los nodos donde se ejecuta la transacción. Al recibir el mensaje, el gestor de transacciones de cada nodo determina si está dispuesto a comprometer su parte de la transacción. • Fase 2 (Decisión) Cuando el coordinador recibe la respuesta de todos los nodos, o cuando ha transcurrido un intervalo de tiempo predeterminado desde su envío, determina si puede hacer COMMIT o ABORTAR. Será COMMIT global si recibe la confirmación de todos los nodos. Una vez tomada la decisión, envía un mensaje a todos los nodos para que ejecuten el COMMIT o el ROLLBACK.
Administración de Bases de Datos Protocolo de dos fases • La estructura de comunicaciones puede ser: • Centralizada: el coordinador centraliza la comunicación • Lineal: Se establece un orden entre los nodos, que pueden comunicarse entre sí. • Distribuida: comunicación entre todos los nodos participantes durante la primera fase del protocolo. Esta estructura no requiere de la segunda fase. Cada participante envía su decisión al resto de nodos participantes.
Administración de Bases de Datos Control de concurrencia en BDD • Mediante bloqueos. • Costo adicional: Una transacción sobre un objeto con N réplicas: • N solicitudes de bloqueo. • N concesiones de bloqueo. • N mensajes de actualización. • N verificaciones. • N solicitudes de liberación. • TOTAL = 5*N mensajes. • Solución: métodos que se basan en la extensión de las técnicas de control de concurrencia en las BD centralizadas
Administración de Bases de Datos Control de concurrencia en BDD • Idea: designar una copia de cada elemento a bloquear como una copia distinguida • Las reservas para ese elemento de información se asocian a la copia distinguida y todas las solicitudes de reservas y liberalizaciones se envían al nodo que contiene esa copia • Los métodos difieren en la forma en que se escogen las copias distinguidas: • Nodo primario • Nodo primario con respaldo • Copia primaria • Un nodo que incluye una copia distinguida de un elemento de información actúa como coordinador para el control de concurrencia de ese elemento