30
Base de Datos Distribuidas M.S.I. Eloisa Ruiz Gonzalez Sistemas Computacionales Administrativos 2012

Base de Datos Distribuidas

Embed Size (px)

Citation preview

Page 1: Base de Datos Distribuidas

BasedeDatosDistribuidasM.S.I. Eloisa Ruiz GonzalezSistemas Computacionales Administrativos 2012

Page 2: Base de Datos Distribuidas

Conceptosgenerales

• Es un conjunto de múltiples bases de datos lógicamente relacionadas las cuales se encuentran distribuidas en diferentes espacios lógicos (pej. un servidor corriendo 2 máquinas virtuales) e interconectados por una red de comunicaciones.(Wikipedia)

Page 3: Base de Datos Distribuidas

ObjetivosdeunSD• Transparencia de localización 

• Transparencia de Fragmentación

• Transparencia de replicación

Page 4: Base de Datos Distribuidas

Ventajas• Refleja una estructura organizacional 

• Los fragmentos de la base de datos se ubican en los departamentos a los que tienen relación.

• Autonomía local • Un departamento puede controlar los datos que le pertenecen.

• Disponibilidad • Un fallo en una parte del sistema solo afectará a un fragmento, en lugar de a 

toda la base de datos.• Rendimiento 

• Los datos generalmente se ubican cerca del sitio con mayor demanda, también los sistemas trabajan en paralelo, lo cual permite balancear la carga en los servidores.

• Economía • Es más barato crear una red de muchas computadoras pequeñas, que tener 

una sola computadora muy poderosa.• Modularidad 

• Se pueden modificar, agregar o quitar sistemas de la base de datos distribuida sin afectar a los demás sistemas (módulos).

Page 5: Base de Datos Distribuidas

Ventajas

El mayor beneficio de los sistemas distribuidos es que permiten que la estructura de la BD refleje la estructura de la empresa. 

Page 6: Base de Datos Distribuidas

Desventajas• Complejidad 

• Se debe asegurar que la base de datos sea transparente, se debe lidiar con varios sistemas diferentes que pueden presentar dificultades únicas. El diseño de la base de datos se tiene que trabajar tomando en cuenta su naturaleza distribuida, por lo cual no podemos pensar en hacer joins que afecten varios sistemas.

• Economía • La complejidad y la infraestructura necesaria implica que se necesitará una mayor mano de obra.

• Seguridad • Se debe trabajar en la seguridad de la infraestructura así como cada uno de los sistemas.

• Integridad • Se vuelve difícil mantener la integridad, aplicar las reglas de integridad a través de la red puede ser muy caro en términos de transmisión de datos.

Page 7: Base de Datos Distribuidas

Desventajas• Falta de experiencia 

• Las bases de datos distribuidas son un campo relativamente nuevo y poco común por lo cual no existe mucho personal con experiencia o conocimientos adecuados.

• Carencia de estándares • Aún no existen herramientas o metodologías que ayuden a los usuarios a convertir un DBMS centralizado en un DBMS distribuido.

• Diseño de la base de datos se vuelve más complejo • Además de las dificultades que generalmente se encuentran al diseñar una base de datos, el diseño de una base de datos distribuida debe considerar la fragmentación, replicación y ubicación de los fragmentos en sitios específicos.

Page 8: Base de Datos Distribuidas

• ¿Por qué son necesarias las BDD?

• Las empresas ya están generalmente distribuidas al menos de manera lógica , en divisiones, departamentos, grupos de trabajo, etc. Y  es muy probable que también lo estén de manera física (en plantas, fábricas, laboratorios, etc.)

Page 9: Base de Datos Distribuidas

PrincipioFundamentalBDD

“Ante el usuario, un sistema distribuido debe lucir exactamente igual que un sistema que no es distribuido”

En otras palabras, los usuarios de un sistema distribuido deben ser capaces de comportarse exactamente como si no fuera distribuido.

Todos los problemas de los sistemas distribuidos son, o deberían ser, problemas internos o en el nivel de implementación, y no externos o en el nivel de usuario. 

Page 10: Base de Datos Distribuidas

ObjetivosdelaBDD

1.‐ Autonomía local. • Los sitios en un sistema distribuido deben ser autónomos.

La autonomía local significa que todas las operaciones en un sitio dado están controladas por ese sitio; ningún sitio X debe depender de algún otro sitio Y para su operación satisfactoria.

La seguridad, integridad y representación de almacenamiento de los datos locales permanecen bajo el control y jurisdicción del sitio local.

Page 11: Base de Datos Distribuidas

ObjetivosdelaBDD2.‐ No dependencia de un sitio central. 

• La autonomía local implica que todos los sitios deben ser tratados como iguales.

Por lo tanto, no debe haber particularmente ninguna dependencia de un sitio “maestro” central para algún servicio central, tal que todo el sistema dependa de ese sitio central.

Razones por las cuales no debería haber un sitio central:El sitio central puede ser un cuello de botella

El sistema sería vulnerable; es decir, si el sitio central falla, también fallará todo el sistema

Page 12: Base de Datos Distribuidas

ObjetivosdelaBDD3.‐ Operación continua. 

• Una ventaja de los sistemas distribuidos es que deben proporcionar mayor confiabilidad y mayor disponibilidad.

Confiabilidad. La probabilidad de que el sistema esté listo y funcionando en cualquier momento dado. Los SD no son una propuesta de todo o nada; pueden continuar operando cuando hay alguna falla en algún componente independiente.

Disponibilidad. La probabilidad de que el sistema esté listo y funcionando continuamente a lo largo de un período especificado.

Page 13: Base de Datos Distribuidas

ObjetivosdelaBDD4.‐ Independencia de ubicación. 

• Conocida también como transparencia de ubicación.

Los usuarios no tienen que saber dónde están almacenados físicamente los datos, sino que deben ser capaces de comportarse como si todos los datos estuvieran almacenados en su propio sitio local.

Esto simplifica los programas de los usuarios. En particular, permite que los datos emigren de un sitio a otro sin invalidar ninguno de estos programas o actividades. 

Page 14: Base de Datos Distribuidas

ObjetivosdelaBDD5.‐ Independencia de fragmentación. 

• Un sistema soporta la fragmentación de datos cuando puede ser dividida en o partes o fragmentos, para efectos de almacenamiento físico.

La fragmentación es necesaria por razones de rendimiento: los datos pueden estar almacenados en la ubicación donde son usados más frecuentemente para que la mayoría de las operaciones sean locales y se reduzca el tráfico en la red.

Los usuarios deben comportarse como si los datos en realidad estuvieran sin fragmentación alguna. 

Page 15: Base de Datos Distribuidas

ObjetivosdelaBDD6.‐ Independencia de replicación. 

• El sistema soporta replicación de datos cuando un fragmento puede ser representado por muchas copias distintas, o réplicas, guardadas en muchos sitios distintos.

Las réplicas son necesarias por dos razones principales:1. Significan un mejor rendimiento (las aplicaciones pueden operar 

sobre las copias locales en lugar de tener que comunicarse con sitios remotos)

2. Pueden significar una mejor disponibilidad (un objeto replicado permanece disponible para su procesamiento, mientras esté disponible al menos una copia).

Por supuesto, la principal desventaja de las réplicas es que al actualizarlas es necesario actualizar todas: el problema de la propagación de la actualización.

Page 16: Base de Datos Distribuidas

ObjetivosdelaBDD7.‐ Procesamiento de consultas distribuidas. 

• La optimización es importante en un sistema distribuido que en uno centralizado, incluso mucho más.

El punto básico es que en una consulta que involucra a varios sitios, habrá muchas formas posibles de mover los datos en el sistema para satisfacer la solicitud, y es crucialmente importante que se encuentre una estrategia eficiente.

SELECT CLI.NOMBRE, CLI.DIR, ORD.ORDEN, ORD.FECHAFROM CLIENTES@LP CLI, ORDENES@MEX ORD

WHERE CLI.ID=ORD.ID

Page 17: Base de Datos Distribuidas

ObjetivosdelaBDD8.‐ Administración de transacciones distribuidas. 

• Existen dos aspectos principales en la administración de transacciones: control de recuperación y control de la concurrencia.

Ambos aspectos requieren un tratamiento amplio en el ambiente distribuido.

Ya que una sola transacción puede involucrar la ejecución de código en muchos sitios. 

Page 18: Base de Datos Distribuidas

ObjetivosdelaBDD8.‐ Administración de transacciones distribuidas. 

• Puede involucrar actualizaciones en muchos sitios y se debe de cuidar que la transacción no caiga en un bloqueo mortal (basado en el bloqueo).

• Para el control de la recuperación, es necesario asegurarse que una transacción dada sea atómica en el ambiente distribuido, el sistema debe por lo tanto asegurarse de que la transacción sea confirmada o deshecha (se puede utilizar el protocolo de confirmación de dos fases).

Page 19: Base de Datos Distribuidas

ObjetivosdelaBDD

9.‐ Independencia de hardware. • Soporte para un gran número de máquinas diferentes. Poder integrar todos los datos de todos estos sistemas y presentar al usuario una “imagen del sistema único”.

Page 20: Base de Datos Distribuidas

ObjetivosdelaBDD

10.‐ Independencia de sistema operativo. • Obviamente es necesario no sólo tener la posibilidad de ejecutar el mismo DBMS en diferentes plataformas de hardware, sino también ejecutarlo en diferentes plataformas de sistema operativo

Page 21: Base de Datos Distribuidas

ObjetivosdelaBDD

11.‐ Independencia de red.• Si el sistema va a tener la posibilidad de soportar muchos sitios distintos es obviamente necesario tener la posibilidad de soportar también una variedad de redes de comunicación distintas.

Page 22: Base de Datos Distribuidas

ObjetivosdelaBDD12.‐ Independencia de DBMS.

• Lo que se necesita es que todos los ejemplares de DBMS en sitios diferentes soporten la misma interfaz.

Aunque no tienen que ser necesariamente copias del mismo software DBMS.

En otras palabras, sería posible que el sistema distribuido fuera heterogéneo, al menos en cierto grado.

Sería muy bueno si diferentes DBMS pudieran participar de alguna forma en un sistema distribuido.

Page 23: Base de Datos Distribuidas

PropiedadACIDEs un conjunto de características o propiedades que garantizan que las transacciones en una base de datos son fiables.

• Atomicidad• Es la propiedad que asegura que la operación se ha realizado o no, y por lo tanto ante un fallo del sistema no puede quedar a medias.

• Consistencia• Integridad. Es la propiedad que asegura que sólo se empieza aquello que se puede acabar. Por lo tanto se ejecutan aquellas operaciones que no van a romper las reglas y directrices de integridad de la base de datos. La propiedad de consistencia sostiene que cualquier transacción llevará a la base de datos desde un estado válido a otro también válido.

Page 24: Base de Datos Distribuidas

PropiedadACID• Aislamiento

• Es la propiedad que asegura que una operación no puede afectar a otras. Esto asegura que la realización de dos transacciones sobre la misma información sean independientes y no generen ningún tipo de error.

• Durabilidad• Es la propiedad que asegura que una vez realizada la operación, ésta persistirá y no se podrá deshacer aunque falle el sistema.

Page 25: Base de Datos Distribuidas

Basedistribuidaparticionada• Es una base de datos que se divide en tres partes, donde cada una de almacena en lugares diferentes.

A B

C

ABC

Base de datos globalSitio A Sitio B

Sitio C

Page 26: Base de Datos Distribuidas

Basemultiplicadaydistribuida• Las bases de datos se duplican con la finalidad de reducir costos de comunicación y aumentar el desempeño del sistema, eliminando la necesidad de la transmisión de datos en diferentes ubicaciones.

A+B+C

ABC

Base de datos globalSitio A Sitio B

Sitio C

A+B+C

A+B+C

Page 27: Base de Datos Distribuidas

Distribucióncombinandoreplicasyparticiones• Es empleada con mayor frecuencia.• Se guardan los datos donde son usados con mas frecuencia.• Se utiliza la fragmentación, protegiendo la transparencia de la ubicación y transparencia de la replica.

A+B+C

ABC

Base de datos globalSitio A Sitio B

Sitio C

A+B

C

Page 28: Base de Datos Distribuidas

Actividad• Creación de una base de datos federada “distribuida” homogénea en MySQL• FEDERATED. 

• Es un motor que accede a datos en tablas de bases de datos remotas en lugar de tablas locales en MySQL.

1. Contar con dos servidores en ejecución, en la misma máquina o en distintas.

2. Crea el  usuario de la BD remota.3. Crear una tabla en el servidor remoto que quiera acceder con 

la tabla FEDERATED . CREATE TABLE test_table (id     int(20) NOT NULL auto_increment,name   varchar(32) NOT NULL default '',other  int(20) NOT NULL default '0',PRIMARY KEY  (id),KEY name (name),KEY other_key (other)

)ENGINE=MyISAMDEFAULT CHARSET=latin1;

Page 29: Base de Datos Distribuidas

3. Crear una tabla FEDERATED en el servidor local para acceder a la tabla remota.

CREATE TABLE federated_table (id     int(20) NOT NULL auto_increment,name   varchar(32) NOT NULL default '',other  int(20) NOT NULL default '0',PRIMARY KEY  (id),KEY name (name),KEY other_key (other)

)ENGINE=FEDERATEDDEFAULT CHARSET=latin1CONNECTION='mysql://root@remote_host:9306/federated/test_table';

Page 30: Base de Datos Distribuidas

4. Insertar  4 registros  en la tabla “test_table”5. Consultarlos : SELECT * FROM test_table de la maquina 16. Consultarlos : SELECT * FROM federated_table de la maquina 27. Verificar que estén ambos equipos los registros.