1.1. CONCEPTOS BÁSICOS DE BASES DE DATOS DISTRIBUIDAS
Una base de datos distribuida (BDD) es un conjunto de múltiples bases de datos lógicamente relacionadas las cuales se encuentran distribuidas en diferentes espacios lógicos y geográficos (pej. un servidor corriendo 2 máquinas virtuales) e interconectados por una red de comunicaciones. Dichas BDD tienen la capacidad de realizar procesamiento autónomo, esto permite realizar operaciones locales o distribuidas. Un sistema de Bases de Datos Distribuida (SBDD) es un sistema en el cual múltiples sitios de bases de datos están ligados por un sistema de comunicaciones de tal forma que, un usuario en cualquier sitio puede acceder los datos en cualquier parte de la red exactamente como si estos fueran accedidos de forma local.Un sistema distribuido de bases de datos se almacena en varias computadoras. Los principales factores que distinguen un SBDD de un sistema centralizado son los siguientes:
- Hay múltiples computadores, llamados sitios o nodos.
- Estos nodos deben de estar comunicados por medio de algún tipo de red de comunicaciones para transmitir datos y órdenes entre los sitios.
Historia
La necesidad de almacenar datos de forma masiva dio paso a la creación de los sistemas de bases de datos. En 1970 Edgar Frank Codd escribió un artículo con nombre: «A Relational Model of Data for Large Shared Data Banks» («Un modelo relacional para grandes bancos de datos compartidos»). Con este artículo y otras publicaciones, definió el modelo de bases de datos relacionales y reglas para poder evaluar un administrador de bases de datos relacionales.
Inicio de las bases de datos distribuidas
Originalmente se almacenaba 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.
Evolución
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 globalización y a la vez las operaciones de las empresas son cada vez más descentralizadas geográficamente. También el poder de las computadoras personales aumentó y el costo de los Mainframes ya no tenía sentido. Además, la necesidad de compartir datos ha hecho que crezca el mercado de las bases de datos distribuidas.
Componentes
Hardware involucrado
El hardware utilizado no difiere mucho del hardware utilizado en un servidor normal. Al principio se creía que si los componentes de una base de datos eran especializados serían más eficientes y rápidos, pero se comprobó que el descentralizar todo y adoptar un enfoque "nada compartido" (shared-nothing) resultaba más barato y eficaz. Por lo que el hardware que compone una base de datos distribuida se reduce a servidores y la red.
Software (DDBMS)
Este sistema está formado por las transacciones y los administradores de la base de datos distribuidos. Un DDBMS implica un conjunto de programas que operan en diversas computadoras, estos podrían consistir de una colección de programas de diferentes fuentes.
Administrador de transacciones distribuidas (DTM)
Este es un programa que recibe las solicitudes de procesamiento de los programas de consulta o transacciones y las traduce en acciones para los administradores de la base de datos. Los DTM se encargan de coordinar y controlar estas acciones. Este DTM puede ser propietario o libre.
Sistema manipulador de base de datos (DBMS)
Es un programa que procesa cierta porción de la base de datos distribuida. Se encarga de recuperar y actualizar datos del usuario y generales de acuerdo con los comandos recibidos de los DTM.
Nodo
Un nodo es una computadora que ejecuta un DTM o un DBM o ambos. Un nodo de transacción ejecuta un DTM y un nodo de base de datos ejecuta un DBM.
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, porque 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
Un sistema de base de datos distribuidas es aquel en el que hay múltiples sitios de base de datos unidos por un sistema de comunicaciones, en forma tal que los datos en cualquier sitio son accesibles para los usuarios de otros sitios. Normalmente, cada sitio o nodo tiene un sistema completo de procesamiento de información, con su propia función de administración de datos, personal, usuarios, hardware y software. Inclusive una base de datos local, sistema de administración de base de datos y software de comunicaciones.
Lo mínimo que debe tener un sitio es memoria y procesador de comunicaciones. Los sitios por lo general están separados geográficamente y están unidos por un sistema de telecomunicaciones, aunque es posible tener un sistema distribuido y comunicado por medio de una red de área local dentro de un solo edificio o área pequeña. Se pretende que los usuarios no necesiten conocer la verdadera localización de los datos a que acceden y para ellos el sistema parece ser una base de datos local.
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.
DISCIPLINAS DE ESTUDIO
Las principales disciplinas de estudio para conocer las bases son las siguientes:
A) INGENIERÍA: Para conocer cono se desarrollan y que forma tendrán para implementarse
B) ÁLGEBRA: 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.2 Diseño de Bases de Datos Distribuidas
El problema de diseño de bases de datos distribuidos se refiere, en general, a hacer decisiones acerca de la ubicación de datos y programas a través de los diferentes sitios de una red de computadoras. La decisión de donde colocar a las aplicaciones tiene que ver tanto con el software del SMBDD como con las aplicaciones que se van a ejecutar sobre la base de datos.
Los pasos a seguir para diseñar una base de datos distribuida:
- Diseño del "esquema conceptual" el cual describe la base de datos integrada (esto es, todos los datos que son utilizados por las aplicaciones que tienen acceso a las bases de datos).
- Diseño "físico de la base de datos", esto es, mapear el esquema conceptual a las áreas de almacenamiento y determinar los métodos de acceso a las bases de datos.
- Diseño de la fragmentación, este se determina por la forma en que las relaciones globales se subdividen en fragmentos horizontales, verticales o mixtos.
- Diseño de la asignación de los fragmentos, esto se determina en la forma en que los fragmentos se mapean a las imágenes físicas, en esta forma, también se determina la solicitud de fragmentos.
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.
Estos tres niveles de visión de usuarios los proporcionan los sistemas gestores de base de datos.
1.3. Procesamiento de operaciones de actualización distribuida
Los sistemas cliente/servidor involucran varias computadoras conectadas a una red. Las computadoras que procesan programas de aplicaciones se conocen como clientes y las que procesan bases de datos se conocen como servidor.
Arquitectura Cliente Servidor
Un sistema cliente servidor puede tener varios servidores de procesamiento de bases de datos, cuando esto ocurre cada servidor debe procesar una base de datos distinta. Cuando dos o más servidores procesan una misma base de datos, el sistema no es considerado cliente servidor, más bien, es conocido como sistema de base de datos distribuido.
Funciones del cliente:
- Administrar la interfaz de usuario.
- Aceptar datos del usuario.
- Procesar la lógica de la aplicación.
- Generar las solicitudes para la base de datos.
- Trasmitir las solicitudes de la base de datos al servidor.
- Recibir los resultados del servidor.
- Dar formatos a los resultados.
Funciones del servidor:
- Aceptar las solicitudes de la base de datos de los clientes.
- Procesar las solicitudes de los clientes.
- Dar formato a los resultados y trasmitirlos al cliente.
- Llevar a cabo la verificación de integridad.
- Mantener los datos generales de la base de datos.
- Proporcionar control de acceso concurrente.
- Llevar a cabo la recuperación.
- Optimizar el procesamiento de consulta/actualización.
1.4 Procesamiento de consultas distribuidas
El sistema debe de ser capaz de procesar consultas que hagan referencia a datos situados a mas de un nodo. Primeramente se debe de contar con heterogeneidad de los datos, para que puedan ser usados para formular consultas.
Tenemos los siguientes ejemplos:
Así como también necesitamos contar con:
- Localización de los datos para generar reglas heuristicas
- Descomposición de consultas en paralelo en cada nodo
- Reducir la cantidad de datos a transferir en la red
ESTRATEGIAS DE PROCESAMIENTO DE CONSULTAS DE BASES DE DATOS DISTRIBUIDAS
Contamos con la estrategia de Re formulación de consultas, que nos sirve para encontrar q la información que nos va a proveer sea solo la que se le pidió por la fuente También se cuenta con la estrategia de descomposición de las fuentes, q consiste en que según las fuentes q pidan cierto tipo de datos sean las atendidas con mayor velocidad.OPTIMIZACIÓN DE CONSULTAS DISTRIBUIDAS
Para poder optimizar una consulta necesitamos tener claras las propiedades del algebra relacional para asegurar la re formulación de la consulta, al optimizar una consulta obtenemos los siguientes beneficios:- Minimizar costos
- Reducir espacios de comunicaciones
- Seguridad en envíos de información.
1.5. Manejo de Transacciones
Se considera el manejo de transacciones cuando un dispositivo móvil inicia una transacción hacia la base de datos o hacia un servidor fijo. La transacción puede ejecutarse en el servidor o en el dispositivo móvil.
Una transacción en un Sistema de Gestión de Bases de Datos (SGBD), es un conjunto de órdenes que se ejecutan formando una unidad de trabajo, es decir, en forma indivisible o atómica.Un SGBD se dice transaccional, si es capaz de mantener la integridad de los datos, haciendo que estas transacciones no puedan finalizar en un estado intermedio. Cuando por alguna causa el sistema debe cancelar la transacción, empieza a deshacer las órdenes ejecutadas hasta dejar la base de datos en su estado inicial (llamado punto de integridad), como si la orden de la transacción nunca se hubiese realizado.
Para esto, el lenguaje de consulta de datos SQL (Structured Query Language), provee los mecanismos para especificar que un conjunto de acciones deben constituir una transacción.BEGIN TRAN: Especifica que va a empezar una transacción.COMMIT TRAN: Le indica al motor que puede considerar la transacción completada con éxito.ROLLBACK TRAN: Indica que se ha alcanzado un fallo y que debe restablecer la base al punto de integridad.En un sistema ideal, las transacciones deberían garantizar todas las propiedades ACID; en la práctica, a veces alguna de estas propiedades se simplifica o debilita con vistas a obtener un mejor rendimiento.
Un ejemplo de transacción, Un ejemplo habitual de transacción es el traspaso de una cantidad de dinero entre cuentas bancarias. Normalmente se realiza mediante dos operaciones distintas, una en la que se decrementa el saldo de la cuenta origen y otra en la que incrementamos el saldo de la cuenta destino. Para garantizar la atomicidad del sistema (es decir, para que no aparezca o desaparezca dinero), las dos operaciones deben ser atómicas, es decir, el sistema debe garantizar que, bajo cualquier circunstancia (incluso una caída del sistema), el resultado final es que, o bien se han realizado las dos operaciones, o bien no se ha realizado ninguna.
Se debe tomar en cuenta: Desconexiones, movilidad, errores, fallas en el dispositivo móvil.
Se debe mantener la autonomía y la consistencia local del SMBD.
Los algoritmos dependen de:
- Si el dispositivo está ejecutando la transacción (no, solo lectura, lectura y escritura)
- Si se almacenaron los datos en disco.
- Si el dispositivo móvil necesita datos que se encuentran en otros dispositivos móviles.
No hay comentarios:
Publicar un comentario