base de datos distribuidas

Post on 11-Aug-2015

22 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

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)

ObjetivosdeunSD• Transparencia de localización 

• Transparencia de Fragmentación

• Transparencia de replicación

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).

Ventajas

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

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.

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.

• ¿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.)

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. 

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.

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

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.

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. 

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. 

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.

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

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. 

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).

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”.

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

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.

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.

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.

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.

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

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

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

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;

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';

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.

top related