MODULO III: BASES DE DATOS DISTRIBUIDAS
MODULO III: BASES DE DATOS DISTRIBUIDAS
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
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
Publicar un comentario