MODULO III: BASES DE DATOS DISTRIBUIDAS

MODULO III: BASES DE DATOS DISTRIBUIDAS

ESPACIO DEL VÍDEO DEL MODULO

TABLA DE CONTENIDO DE ESTE MODULO:

1. Bases de datos Distribuidas (BDD).

2. Componentes de una BDD.   

3. Terminologías y conceptos de BDD. 

4. Arquitectura de una BDD. 

5. Objetivos, opciones y costos de la localización de localización de directorio en BDD.

 1. Bases de datos distribuidas (BDD).

Una base de datos distribuida consiste en varias bases de datos (DB) situadas entre distintos ordenadores de una misma red, ya sea a nivel local o cada uno en una diferente localización geográfica (espacio físico), cada sitio en la red es autónomo en sus capacidades de procesamiento y es capaz de realizar operaciones locales y en cada uno de estos ordenadores debe estar ejecutándose una aplicación de nivel global que permita la consulta de todos los datos como si se tratase de uno solo.

Frecuentemente el termino Sistema de Bases de Datos Distribuidas (SBDD) hace referencia a los Sistemas manejadores de BDD. Un SBDD es una colección de archivos almacenados individualmente en cada nodo de la red. Estos archivos, además de tener una relación lógica, deben contar con una estructura y proveer un acceso mediante una interfaz común.

2. Componentes de un Base de Datos Distribuida.

2.1. Hardware: El hardware utilizado no difiere mucho del utilizado en un servidor normal. Gracias a la descentralización de los elementos, y la adopción del enfoque “nada compartido” (shared-nothing) se comprobó que 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.

2.2. Software.

2.2.1. SBDD: Es el sistema que maneja la BDD, este sistema está formado por las transacciones y los administradores de la base de datos distribuidos. Un SBDD implica un conjunto de programas que operan en diversas computadoras.

2.2.2. DTM: Administrador de transacciones distribuidas, 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.

2.2.3. DBMS: Sistema manipulador de Base de Datos, es un programa que procesa cierta porción de la BDD. Se encarga de recuperar y actualizar datos del usuario y generales de acuerdo con los comandos recibidos de los DTM.

2.2.4. Nodo: dentro de un SBDD, 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.

2.2.5. DC: Comunicación de Datos, Es el software en cada nodo que lo liga con la red, ya que incluye la descripción completa de los nodos y líneas de la red.

3. Terminologías y conceptos de BDD.

3.1. Replica: El sistema conserva varias copias o replicas idénticas de una tabla. Cada replica se almacena en un nodo diferente. Esto con el fin de que el sistema siga funcionando aun en casos de caída de uno de los nodos aumentando el paralelismo de consultas sobre una misma tabla.

3.2. Fragmentación.

3.2.1. Fragmentación horizontal: Una tabla se divide en subconjuntos. Los fragmentos se definen a través de una operación de selección y su reconstrucción se realiza con una operación de unión de los fragmentos componentes.



3.2.2. Fragmentación vertical: Una tabla se divide en subconjuntos. 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 realizara con una operación de join de los fragmentos componentes, pueden existir fragmentos no disjuntos: combinación de fragmentación y replicación.


3.2.3. Fragmentación Mixta: Es la combinación entre la fragmentación horizontal y la fragmentación vertical.



3.3. Independencia de datos.

3.3.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 de usuario.

3.3.2. Independencia física de datos: Se refiere al ocultamiento de los detalles sobre las estructuras de almacenamiento a las aplicaciones de usuario, la descripción física de datos puede cambiar sin afectar a las aplicaciones de usuario.

3.4. Transparencia.

3.4.1. Transparencia a nivel de red: Las aplicaciones no deben notar que se accede a los datos a través de una red de computadoras o nodos.

3.4.2. Transparencia sobre replicación: La replicación de los objetos de base de Datos no han de ser controladas por el usuario, sino por el propio sistema.

3.4.2. Transparencia a nivel de fragmentación: El sistema debe ser el encargado de convertir las consultas globales del usuario en consultas definidas sobre fragmentos de la base de datos. Del mismo modo, el sistema también se encarga de mezclar las consultas fragmentadas para obtener la respuesta a una consulta global.

3.5. Distribución: Los componentes del sistema están localizados en la misma computadora o en diferentes computadoras.

3.6. Heterogeneidad: Es cuando existen en él componentes que se ejecutan en diversos sistemas operativos.

3.7. Autonomía.

3.7.1. Autonomía de diseño: Esta relacionadas a su propio diseño.

3.7.2. Autonomía de comunicación: Es como y cuando comunicarse con otros DBMS.

3.7.3. Autonomía de ejecución: Ejecutar operaciones locales como quiera.

4. Arquitectura de una base de Datos Distribuidos.

En la arquitectura distribuida el DBMS y la BDD no están asociados a un determinado ordenador, sino a una red cuyos nodos se reparten las funciones. Una base de datos distribuida es vista por las aplicaciones igual que si fuera centralizada. Se suele distinguir entre sistemas homogéneos y heterogéneos. Un sistema es homogéneo si el DBMS usado en todas las maquinas es el mismo. Si existe más de un DBMS distinto el sistema se denomina heterogéneo. Para la arquitectura de una Base de Datos Distribuida se debe tener en cuenta los factores de Distribución, Heterogeneidad, Autonomía mencionados en la pregunta 3.

4.1. Arquitectura de BDD ANSI / SPARC.

Esta arquitectura se divide en tres niveles:

4.1.1. Nivel interno: Donde se maneja la forma como se almacena físicamente los datos.

4.1.2. Nivel externo: Es el que se ocupa de la forma como los usuarios individualmente perciben los datos.

4.1.3. Nivel conceptual: Es un nivel de mediación entre los el nivel interno y el nivel externo, es decir define las estructuras de almacenamientos, y el administrador de Base de Datos.



4.2. Arquitectura de SBDD.

No existe una arquitectura estándar para los sistemas de manejo de bases de datos distribuidas, cada sistema ha adoptado su propia arquitectura. Se debe definir un modelo de referencia para un esquema de estandarización en bases de datos distribuidas, cuyo propósito es dividir el trabajo en piezas y esas piezas se relacionan unas con otras. Estas siguen los siguientes enfoques:

a. Basado en componentes: Se define los componentes del sistema junto con las relaciones entre ellas.

b. Basado en funciones: Se identifican las diferentes clases de usuarios junto con la funcionalidad que el sistema ofrecerá para cada clase.

c. Basado en datos: Se identifican los diferentes tipos de descripción de datos y se especifica un marco de trabajo arquitectural el cual se define las unidades funcionales que realizaran y/o usaran los datos de acuerdo con las diferentes vistas. Este es el enfoque seguido por el modelo ANSI /SPARC.

4.2.1. SBDD homogéneos: son parecidos a los sistemas centralizados, a diferencia que estos sus datos se distribuyen en varios sitios comunicados por la red. No existen usuarios locales y todos ellos acceden a la base de datos a través de una interfaz global.



Para manejar los aspectos de la distribución, se deben agregar dos niveles a la arquitectura ANSI / SPARC, de la siguiente manera:



4.2.2. SBDD Heterogéneos o multa-bases: Estos son sistemas que tienen múltiples DBMS, que pueden ser de tipos diferentes y múltiples bases de datos existentes. Existen entre usuarios locales y globales.


Para comunicar el sistema global con los sistemas locales se define una interfaz común entre componentes mediante la cual, las operaciones globales se convierten en una  o varias acciones locales.


5. Objetivos, opciones y costos de la localización de localización de directorio en BDD.

5.1. Objetivos: un directorio es una base de datos optimizada para lectura, navegación y búsqueda. Los directorios tienden a contener información descrita basada en atributos y tienen capacidades de filtrado muy sofisticadas. Y tiene como objetivo actuar como una capa de abstracción entre los usuarios y los recursos compartidos. En el caso del modelo de servicio de directorio distribuido, se usa uno o más espacios de nombre (árbol de objetos) para formar el servicio de directorio. El servicio de directorio proporciona la interfaz de acceso a los datos que se contienen en unos o más espacios de nombre de directorio. La interfaz del servicio de directorio es la encargada de gestionar la autentificación de los accesos al servicio de forma segura, actuando como  autoridad central para el acceso a los recursos de sistema que manejan los datos del directorio.

5.2. Opciones: La gran mayoría de implementaciones están basados en el estándar X.500 que posteriormente fue la base de LDAP (Lightweight Directory Access Protocol, que hace referencia a un protocolo a nivel de aplicación que permite el acceso a un servicio de directorio ordenado y distribuido para buscar diversas informaciones en un entorno de red). Existen numerosas formas de implementación de servicios de directorio de diferentes compañías. Algunas opciones son:

5.2.1. NIS: Network Information Service, nombrado originalmente como Páginas Amarillas, implementación de Sun Microsystems’ en un servicio de directorio para redes de entorno UNIX.

5.2.2. NetIQ eDirectory: desarrollado por Novell, es un servicio de directorio que soporta múltiples arquitecturas incluyendo Windows, NetWare, Linux, incluyendo algunas distribuciones de Unix. Se ha utilizado durante un tiempo para la administración de usuarios, gestión de configuraciones y gestión de software. eDirectory se ha desarrollado como componente central en una gama de productos para la gestión de identidad. (Previamente es conocido como servicios de directorio de Novell).

5.2.3. Servidor de directorio de Red Hat: La empresa Red Hat, lanzó un servicio del directorio, que adquirió de “Netscape Security Solutions de AOL”, el cual funcionaba como producto comercial bajo Red Hat Enerprise Linux denominado como servidor de directorio de Red Hat como parte del núcleo de la distribución GNU/Linux Fedora.

5.2.4. CentOS Directory Server: está basado en Red Hat Directory Server, prosee similares características, y está disponible para instalar vía yum, sin necesidad de tener un contrato de por medio. La base del software esta licenciada bajo GNU/GPL 2, y se incluye una excepción para ser integrado con software no libre, la cual proviene de Red Hat.

5.2.5. Active Directory: El servicio del directorio de Microsoft, es el directorio que se incluye en las versiones de los sistemas operativos Windows 2000 y Windows Server 2003.

5.2.6. Open Directory: El servidor del Max OS X de Apple ofrece un servicio del directorio llamado Open Directory que integra muchos protocolos estándares abiertos tales como LDAP y Kerberos así como soluciones propietarias de directorio como Active Directory y eDirectory.

5.2.7. Servidor de directorio de Apache: Apache Software Fundation ofrece un servicio del directorio llamado ApacheDS.

5.2.8. Directorio de Internet de Oracle (OID): es el servicio del directorio de Oracle Corporation, que es compatible con la versión 3 del protocolo a nivel de aplicación.

5.2.9. Directorio CA: El directorio CA contiene un motor de caché previo que puede indexar todo los atributos que se usan en los filtros de búsqueda de LDAP, y poner en cache aquellos atributos devueltos en tales búsquedas. Teniendo bastante memoria, el directorio CA es el directorio más rápido del planeta.

5.2.10. Servidor de Sun Java System: Primer Servicio de directorio ofrecido por Sun Microsystems.

5.2.11. OpenDS: La nueva generación de servicios de directorio abierto ofrecido por Sun Microsystems.

5.2.12. OpenDJ: Tras la adquisición de Sun Microsystems por parte de Oracle, se crea la empresa ForgeRock que retoma las naturalezas open source heredada por Sun Microsystems.

5.3. Costos de localización del directorio: Hay muchas formas diferentes de proveer un servicio de directorio. Diferentes métodos permiten almacenar distintos tipos de información en el directorio, tener distintos requisitos sobre como la información ha de ser referenciada, consultada y actualizada, como es protegida de los accesos no autorizados, etc. Algunos servicios de directorios son locales, es decir, proveen el servicio a un contexto restringido. Otros servicios son globales y proveen servicio a un contexto mucho más amplio. En cuanto al costo de la búsqueda  de elementos usando un servicio de directorios como base de datos, un servicio del directorio está altamente optimizado para lectura y proporciona alternativas avanzadas en los diferentes atributos que se puedan asociar a los objetos de un directorio. Los datos que se almacenan en el directorio son definidos por un esquema extensible y modificable. Los servicios de directorios utilizan un modelo distribuido para almacenar su información y esa información generalmente esta replicada entre los servicios que forman el directorio.

5.4. Operaciones de un Sistema de Base de Datos Distribuido.

Las distintas operaciones que realiza un SBDD son manejadas como transacciones por el DTM (Administrador de transacciones distribuidas), donde las transacciones son una secuencia de una o más operaciones agrupadas como una unidad. El inicio y final de la transacción definen los puntos de consistencia de la base de datos. El DTM tras definir la estructura de las transacciones, y mantiene la consistencia en la base de datos cuando se ejecuta una transacción o se cancela la ejecución de una, mantener protocolos de fiabilidad, implementar algoritmos para el control de la concurrencia y sincronía de las transacciones que se ejecutan simultáneamente. El DTM recibe solicitudes de procesamiento de transacciones y las traduce en acciones para el calendarizador:

5.4.1. La operación COMMIT: Esta señala el termino exitoso de la transacción, le dice al DTM que se ha finalizado con éxito una unidad lógica de trabajo, que la base de datos esta (o debería estar) de nuevo en un estado consistente, y que se pueden hacer permanentes todas las modificaciones efectuadas por esa unidad de trabajo.

5.4.2. La operación ROLLBACK: está a diferencia de COMMIT, señala el término no exitoso de la transacción: le dice al manejador de transacciones que algo salió mal, que la base de datos podría estar en un estado inconsistente y que todas las modificaciones efectuadas hasta el momento por la unidad lógica de trabajo deben retroceder o anularse.



Bibliográfica por pregunta:

1.

https://ayudaleyprotecciondatos.es/bases-de-datos/distribuida/

2. https://es.wikipedia.org/wiki/Base_de_datos_distribuida#Componentes

https://topicosdbd.files.wordpress.com/2013/09/12-3-componentes-de-un-sistema-de-base-de-datos-distribuida.pdf

3. https://ayudaleyprotecciondatos.es/bases-de-datos/distribuida/

http://base-datos-ruiz-salas-fl.blogspot.com/2015/02/arquitectura-de-base-de-datos.html

Hernandez, R., (2013). “Fundamentos de los Sistemas de Bases de Datos Distribuidas”. Caracas: Centro de Investigación en Sistemas de Información (CISI).

4. http://repositorio.utn.edu.ec/bitstream/123456789/522/6/04%20ISC%20151%20CAPITULO%20IV.pdf

https://iessanvicente.com/colaboraciones/BBDDdistribuidas.pdf

https://es.wikipedia.org/wiki/Base_de_datos_distribuida#Componentes

5. https://es.wikipedia.org/wiki/Servicio_de_directorio

https://casandrasoft.com/servicio-de-directorio-de-usuarios-en-red/


Comentarios

Entradas populares