Download BASE DE DATOS DISTRIBUIDA Definición

Document related concepts

Base de datos distribuida wikipedia , lookup

Middleware wikipedia , lookup

MySQL Cluster wikipedia , lookup

Servicio de directorio wikipedia , lookup

Memcached wikipedia , lookup

Transcript
Evaluación
 Conocimientos
30%
 Examen Escrito (30%) al no aplicar examen se asigna el % de manera igualitaria a los otros rubros.
 Habilidades
30%
 Prácticas (30%).
 Emprendedores
20%
 Investigaciones y desarrollo (20%).
 Valores
20%
 Responsabilidad, Honestidad y profesionalismo (20%)
BASE DE DATOS DISTRIBUIDA
Definición
• Un sistema gestión de bases de datos distribuida no es más que el
software que permite la administración de la base de dato distribuida y
hace que tanto como la distribución y el control de concurrencia de las
transacciones, las fallas, sean transparente para el usuario que opera
con el sistema.
•
Cuando las bases de datos son distribuidas, diferentes usuarios tienen
acceso sin interferir unos con otros. Sin embargo, el sistema de gestión
de bases de datos distribuidas (SGBBD) debe sincronizar
periódicamente las bases de datos dispersas, para asegurar que todas
tengan sus datos uniformes.
• El acceso a los datos en los SBDD se realiza mediante los enlaces de
comunicación que conformen la red en la que se encuentren los sitios
que contengan alguna de las partes los datos. Los sitios pueden estar en
una habitación o geográficamente separados, cada uno de ellos tiene
capacidad de procesamiento autónomo y de ejecución de aplicaciones
locales.
Cuando diseñamos un sistema de base de datos distribuida debemos
tener en cuanto algunas características claves que caracterizan este tipo
de sistemas, como son:
• Permitir que cada sitio almacene y mantenga su propia BD
facilita el acceso inmediato y eficaz de sus datos que se usan
más frecuentes.
•
• Mejora la fiabilidad si la computadora de un sitio se cae, el resto
de la red sigue funcionando.
•
• Permitir el control local de los datos en un sitio mejora el grado
de satisfacción de los usuarios con relación al sistema de BD.
•
• Cuando cada sitio procesa sus datos locales se elimina un poco
el tráfico de la red, pero si los sitios usan frecuentemente datos
almacenados en otros sitios las comunicaciones pueden
convertirse en un cuello de botella.
1.1 ARQUITECTURA
En un sistema de bases de datos distribuidas, existen varios factores que
deben tomar en consideración que definen la arquitectura del sistema:
• Distribución: Los componentes del sistema están localizados en la
misma computadora o no.
• Heterogeneidad: Un sistema es heterogéneo cuando existen en él
componentes que se ejecutan en diversos sistemas operativos, de
diferentes fuentes, etc.
• Autonomía: Se puede presentar en diferentes niveles, los cuales se
describen a continuación:
• Autonomía de diseño: Habilidad de un componente del para decidir
cuestiones relacionadas a su propio diseño.
• Autonomía de comunicación: Habilidad de un componente del para
decidir como y cuando comunicarse con otros SMBD.
• Autonomía de ejecución: Habilidad de un componente del para ejecutar
operaciones locales como quiera.
Arquitectura Distribuida de base de datos.
La tecnología y prototipo de los sistemas de gestión de bases de
datos distribuidas se han desarrollado de uno a otro y cada sistema
adopta una arquitectura particular propia.
1.2 Diseño de un sistema de bases de datos distribuidas
El diseñó de una BDD involucra 4 pasos:
1. Diseño del esquema conceptual donde se describe la BD integral.
2. Diseño de fragmentación.
3. Diseño de la asignación de los fragmentos.
4. Diseño de la BD física (transformar los esquemas locales en áreas de
almacenamiento y determinar métodos de acceso apropiados).
La fragmentación y asignación de los datos caracterizan el diseño de BDD. La
fragmentación se ocupa fundamentalmente de los criterios lógicos que motivan la
división de relaciones globales en fragmentos, mientras que la asignación se ocupa
de los aspectos físicos de su ubicación y réplicas en sitios; aunque hay una
diferencia entre ambos procesos, su interrelación es importante para obtener un
diseño óptimo.
En caso que también se distribuyan las aplicaciones debemos tener en cuenta el
diseño de los esquemas, los requerimientos más importantes de las aplicaciones
tenemos las siguientes:
1. Sitio que comparte una aplicación.
2. Frecuencia de activación de la aplicación
3. Cantidad, tipo y distribución estadística de los accesos de cada aplicación a cada
dato requerido.
En el diseño de un sistema de bases de datos distribuidas debemos tener en cuenta
algunas estrategias y objetivos y se deben en paralelo tomar decisiones sobre cómo
hay que distribuir los datos entre los sitios de la red.
A los problemas que presentamos en el diseño de las Bases de Datos Centralizadas
(BDC) se le añaden otros nuevos cuando diseñamos Bases de Datos Distribuidas
(BDD) entre los cuales se destacan la distribución óptima de datos y de las
aplicaciones en los diferentes sitios.
Cuando pensamos en el diseño de las bases de datos distribuidas debemos tener en
cuenta la ubicación de los programas que accederán a las bases de datos y sobre los
propios datos que constituyen la base de datos, en diferentes puntos de una red.
Sobre la ubicación de los programas supondremos que tenemos una copia de ellos en
cada maquina donde se necesite acceder a la base de datos. Sin embargo el problema
radica en como ubicaremos los datos en la red, existen diferentes formas de repartir
los datos: En solo una maquina que almacene todos los datos y se encargue de
responder a todas las consultas del resto de la red (sistema centralizado),
ubicaríamos la base de dato en cada maquina donde se utilice, o pensaríamos en
repartir las relaciones por toda la red.
La organización de los sistemas de bases de datos distribuidos se ha clasificado
tradicionalmente sobre el nivel de compartición, características de acceso y nivel de
conocimiento de los datos:
1. Inexistencia.
Los datos y programas se ejecutan en un ordenador sin que exista comunicación
entre ellos.
2. Se comparten datos y no programas.
Existe una réplica de los programas de aplicación en cada máquina y los datos
viajan a través de la red.
3. Se comparten datos y programas.
Los datos y programas se reparten por los diferentes sitios de la red, dado un
programa ubicado en un determinado sitio puede acceder a un servicio a otro
programa de segundo sitio solicitando acceder a los datos ubicados en un tercero.
Duplicación de los datos.
La duplicación de los datos ocurre si el sistema mantiene varias copias de una
relación, R, con cada copia almacenada en un sitio diferente.
Existen dos modelos básicos de replica:
1. Consistencia estrecha.
Este modelo que garantiza que todas las réplicas sean constantemente idénticas a la
original, requiere una red de alta velocidad, disminuye la disponibilidad de la base de
datos.
2. Consistencia ancha.
El modelo de consistencia ancha permite un retardo entre el momento en que los datos
originales son modificados y las copias de los mismos son actualizadas, lo que permite
que la base de datos esté disponible más tiempo que el modelo de consistencia
estrecha. Permite conexiones tanto rápidas como lentas soportadas en WANs o LANs.
La duplicación se introduce para aumentar la disponibilidad del sistema: cuando una
copia no está disponible debido a un fallo de un sitio sería posible tener acceso a otra
copia. Con la duplicación también se mejora el rendimiento puesto que las
transacciones tienen mayor probabilidad de encontrar una copia localmente. El
inconveniente está en el costo extra del almacenamiento adicional y del
mantenimiento de la consistencia mutua entre las copias cuando tenemos replicación.
Proceso de Diseño Top – Down.
Top – Down es adecuada cuando creamos un sistema de BD por vez
primera sin restricciones de otros sistemas ya instalados y que deban ser
integrados al sistema distribuido, es decir, primero elaboramos el
esquema conceptual global del proyecto y trabajamos en función de
resolver las diferentes partes de dicho proyecto.
Un esquema top-dow
El diseño de abajo hacia arriba (bottom-up).
Se utiliza particularmente a partir de bases de datos existentes,
generando con esto bases de datos distribuidas.
En forma resumida, el diseño bottom-up de una base de datos distribuida
requiere de la selección de un modelo de bases de datos común para
describir el esquema global de la base de datos. Esto se debe es posible
que se utilicen diferentes SMBD. Después se hace la traducción de cada
esquema local en el modelo de datos común y finalmente se hace la
integración del esquema local en un esquema global común
1.3 Arquitectura Cliente Servidor.
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.
Una desventaja de los sistemas cliente servidor es el control. Las
computadoras clientes operan en forma simultánea y procesan las
aplicaciones en paralelo, lo cual hace más difícil el control de los
problemas de pérdidas por actualización y otros problemas que provoca el
control multiusuario.
Filosofía cliente servidor:
El término cliente/servidor describe un sistema en el que una máquina
cliente solicita a una segunda máquina llamada servidor que ejecute
una tarea específica.
El cliente suele ser una computadora personal común conectada a una
LAN, y el servidor es, por lo general, una máquina anfitriona, como un
servidor de archivos PC, un servidor de archivos de UNIX o una
microcomputadora o computadora de rango medio.
LOS SOCKETS.
“Los sockets no son más que puntos o mecanismos de comunicación entre
procesos que permiten que un proceso hable ( emita o reciba información )
con otro proceso incluso estando estos procesos en distintas máquinas”.
Un socket es al sistema de comunicación entre ordenadores lo que un buzón
o un teléfono es al sistema de comunicación entre personas: un punto de
comunicación entre dos agentes ( procesos o personas respectivamente ) por
el cual se puede emitir o recibir información
El mecanismo de comunicación vía sockets tiene los siguientes pasos:
1) El proceso servidor crea un socket con nombre y espera la conexión.
2) El proceso cliente crea un socket sin nombre.
3) El proceso cliente realiza una petición de conexión al socket servidor.
4) El cliente realiza la conexión a través de su socket mientras el proceso
servidor mantiene el socket servidor original con nombre.
El RPC
(del inglés Remote Procedure Call, Llamada a Procedimiento Remoto) es un
protocolo que permite a un programa de ordenador ejecutar código en otra
máquina remota sin tener que preocuparse por las comunicaciones entre
ambos. El protocolo es un gran avance sobre los sockets usados hasta el
momento. De esta manera el programador no tenía que estar pendiente de
las comunicaciones, estando éstas encapsuladas dentro de las RPC.
Las RPC son muy utilizadas dentro del paradigma cliente-servidor. Siendo
el cliente el que inicia el proceso solicitando al servidor que ejecute cierto
procedimiento o función y enviando éste de vuelta el resultado de dicha
operación al cliente.
RPC es un protocolo de llamada a procedimiento remoto que usa XML para
codificar los datos y HTTP como protocolo de transmisión de mensajes
CORBA:
(Common Object Request Broker Architecture), es una arquitectura
estándar para sistemas de objetos distribuidos. Permite una distribución,
colección heterogénea de objetos para interoperar.
Corba es un estándar de sistema de objetos distribuidos que especifica la
arquitectura que debe tener un sistema de objetos distribuidos y establece
un modelo de objetos mínimo, donde cada objeto obedece a una interfaz.
CORBA define una arquitectura para objetos distribuidos. El paradigma
básico de CORBA es de una solicitud para servicios de objetos
distribuidos. Los servicios que un objeto provee son dados por su
interface. Las interfaces son definidas en el Lenguaje de Definición de
Interface (IDL).Los objetos distribuidos son identificados por referencias
a objetos, las cuales son definidas por las interfaces IDL.