1. Bases de datos
distribuidas
1.1. Introduccion
1.2. Definicion
1.3. Sistema de bases de datos distribuidos
1.4. Terminologia
1.5. Caracterisiticas
1.7. Otras capacidades de las BDD
1.8. Tipos de fallas en un Sistema manejador de bases de
datos
1.9. Ventajas
1.10. Desventajas
1.11. Estructura y arquitectura de un SBDD
2. Fragmentacion
2.1. Introduccion
2.2. Validez de la fragmentacion
2.3 Tipos de fragmentacion
2.3.1. Fragmentacion horizontal
2.3.2. Fragmentacion vertical
2.3.3 Fragmentacion hibrida
2.3.4. Porque usarla?
2.3.5. Responsables de la fragmentacion
2.3.7. Estrategia de fragmentacion
3. Replicacion
3.1 Introduccion
3.2. Tipos de replicacion
3.2.1 Basica
3.2.2. Avanzada
4. Transacciones
4.1 Introduccion
2.1. Propiedades de las transacciones
BASES DE DATOS DISTRIBUIDAS
Inicialmente la informacion
se almacenaba de manera centralizada, pero poco a poco se fueron combinando
las redes de comunicacion y las Bases de Datos, se originaron los gSistemas
Distribuidos de Comunicacionh, en donde los datos y el manejo de los mismos
se hacia a traves de muchos sitios ligados a traves de una red de comunicacion.
La tecnologia ha hecho posible que algunas facilidades inicialmente imaginadas
solo en suenos se conviertan en realidad. Por ejemplo, las transacciones en
linea que permite el sistema bancario actual. Los sistemas de computo distribuido
son ejemplos claros en donde las necesidades organizacionales se combinan
con la disponibilidad de nuevas Tecnologias para hacer realidad tales aplicaciones.
Es un conjunto de multiples bases de datos logicamente relacionadas las cuales se encuentran distribuidas entre diferentes sitios interconectados por una red de comunicaciones y no en una maquina aislada.
La informacion que constituye la base de datos esta almacenada en diferentes sitios en la red, y las aplicaciones que se ejecutan acceden datos en distintos sitios. En consecuencia, la llamada "base de datos distribuida" es en realidad una especie de objeto virtual, cuyas componentes se almacenan fisicamente en varias bases de datos "reales" distintas ubicadas en diferentes sitios. Un nuevo componente de software en cada sitio realiza las funciones de sociedad necesarias y es la combinacion de este nuevo componente y el SGDB ya existente lo que constituye el llamado "sistema de administracion de bases de datos distribuidas" (SGBDD)
SGBDD:
Permite el manejo de la BDD y hace esta distribucion transparente a todos
los usuarios.
Un sistema de
bases de datos distribuidos
Es un sistema en el cual multiples sitios de bases de datos estan ligados
por un sistema de comunicaciones de tal forma que, un usuario en cualquier
sitio puede acceder los datos en cualquier parte de la red. El principio fundamental
de una BDD es que debe gverseh igual que un sistema no distribuido.
1. Base de Datos Distribuida:
Es una base de datos ubicada en distintas localizaciones unidas todas ellas
a traves de una red
2. Sistema de Base de Datos Distribuida:
Es una coleccion de localidades, en cada una de las cuales opera un sistema
de base de datos local y que pueden participar en la ejecucion de transacciones
que acceden a datos de varias localidades.
3. Datos Locales:
Datos en un mismo sitio o localidad con su propia base de datos.
4. Datos Globales:
Datos que se mantienen en una base de datos cuya ubicacion es diferente para
al menos uno de los usuarios.
5. Enlace:
Canales de comunicacion entre dos sitios dela red y que proveen las capacidades
de transferencia de datos.
6. Sistema de Gestion de Base de Datos Distribuidios (SGBDD):
Es el software que gestiona el sistema de base de datos distribuidos. Algunos
SGBDD son:
System for Distributed Database ? Computer Corporation of America
Distributed INGRESS ? Relational Technology
R* ? IBM
7. Transaccion:
La ejecucion de un programa de usuario que interactua con el SGBDD.
8. Agente:
Un proceso que coopera para ejecutar una transaccion.
9. Transaccion Local:
Una transaccion que requiere un unico agente.
10 Transaccion Global:
Una transaccion que requiere varios agentes.
11. Red de Area Amplia (WAN):
Una red de computadoras en la que los sitios estan bastante dispersos geograficamente.
12. Red de Area Local (LAN):
Una red de computadoras en la que los sitios estan ubicados a corta distancia
uno de otro (por lo general menos de una milla).
13. Fragmentacion de Datos:
Particion de una relacion en un SBDD.
La caracteristica principal
que tienen las Bases de Datos Distribuidas son:
? Las computadoras de un sistema distribuido pueden variar en tamano y funcion
no comparten ni memoria ni discos.
? Los distintos nodos estan informados sobre los demas.
? Usualmente incluyen aplicaciones cliente / servidor.
? Cada punto de la red es una base de datos, la cual cuenta con autonomia
local.
? Cada computador que maneja una BD de una BDD se le denomina NODO.
? Habilidad para acceder datos ubicados en multiples sitios, localizados en
diferentes nodos de una red.
? Replicas.
? Fragmentacion.
? No dependencia de un sitio central.
? Transparencia de localizacion de datos.
? Manejo distribuido de transacciones
? Independencia con respecto a la red.
? Independencia del sistema operativo.
Ademas de contar con las
funciones de un SGBD Centralizado, debe contar con las siguientes capacidades:
? Tener acceso a sitios remotos y transmitir consultas y datos entre los diversos
sitios a traves de una red de comunicaciones
? Elaborar estrategias de ejecucion para consultas y transacciones que tienen
acceso a datos a mas de un sitio.
? Decidir a cual copia del elemento replicado se tendra acceso
? Mantener la consistencia de las copias de un elemento replicado.
? Recuperarse de caidas de sitios individuales y fallas en los enlaces de
comunicacion.
? Fallas de transacciones
El control de concurrencia y recuperacion de los datos se tornan mas complejos.
? Fallas del sistema.
La distribucion provoca un aumento en la complejidad del diseno al igual que
en la implementacion del sistema.
? Fallas del medio de almacenamiento.
? Fallas de comunicacion.
La probabilidad de violaciones de seguridad es creciente.
Para que las BDDR tengan mayor eficiencia en cuanto a desempeno se distribuyen los datos de acuerdo a los requerimientos de uso y las capacidades computacionales que disponen los diferentes usuarios, pero manteniendo la vision del sistema como un solo componente. Para esto se desarrollaron diferentes algoritmos de distribucion de datos y se implementaron las tecnicas de fragmentacion.
Resultados
1. El sistema debe operar como si solo existiera un sistema operativo
2. En un sistema distribuido se dan dos tipos de transacciones, las locales
y las globales.
3. Cada localidad puede procesar transacciones locales y tambien puede participar
en la ejecucion de transacciones
? Compartimiento de Datos
? Autonomia
? Disponibilidad
? Replicacion y fragmentacion de informacion
? Control de concurrencia
? Permite respaldos en linea
? Permite manejar un elevado volumen de datos
El principal inconveniente de los sistemas distribuidos de bases de datos es la complejidad anadida que es necesaria para garantizar la coordinacion apropiada entre los nodos. Esta creciente complejidad tiene varias facetas:
? Coste de desarrollo
del software
? Mayor probabilidad de errores
? Mayor sobrecarga del procesamiento
? Poca seguridad
COMPONENTES:
Un sistema de base de datos distribuidas se compone de un conjunto de sitios,
conectados entre si mediante algun tipo de red de comunicaciones. La interaccion
de estos componentes se da a traves de un administrador de bases de datos
distribuidas (SGBDD), el cual esta formado por transacciones y por los administradores
de las base de datos de todas las computadoras. En conclusion, cada sitio
tiene sus propias bases de datos erealesf locales, sus propios usuarios
locales, sus propios SGBD y programas para administracion de transacciones
y su propio administrador local de comunicacion de datos.
ARQUITECTURA
Los usuarios interactuan con el SGBDD ejecutando programas que se llaman transacciones.
Las transacciones en tales sistemas no estan ya restringidas a un solo proceso
controlado por un modulo de software, sino que pueden invocar un conjunto
de procesos cooperantes. Cada uno de esos procesos cooperantes en la transaccion
se llaman agentes. Una transaccion que requiere de solo un agente se llama
transaccion local. Una transaccion que requiere varios agentes se denomina
transaccion global. Un agente dado puede solo acceder a los datos controlados
por su software de gestion de datos local. Acceder a los datos de otro sitio
requiere de la cooperacion de los agentes de esos sitio.
Las transacciones acceden a los registros mediante operaciones read (lectura) y write (escritura). Una transaccion expide las ordenes read y write al SGBDD y ejecuta las entradas y salidas por el terminal.
Cada sitio participante
en el SGBDD tipicamente ejecuta uno o mas de los siguientes modulos de software:
Un administrador de transacciones (AT), Un administrador de datos (AD) y Un
planificador. Las transacciones se comunican con los ATs; los ATs con los
planificadores; los planificadores se comunican entre ellos y tambien con
los ADs y los ADs administran los datos. Cada transaccion comunica todas sus
lecturas y escrituras a un unico AT. Una transaccion tambien expide una operacion
begin (empezar) a su AT cuando empieza su ejecucion, y luego un end (terminar)
cuando esta finaliza. El AT comunica cada lectura y escritura al planificador.
El planificador controla la secuencia en el cual los ADs procesan las ordenes
de lectura y escritura y mantienen el control de concurrencia. Cuando el planificador
recibe una instruccion de lectura o escritura, el planificador puede:
? Procesar la instruccion inmediatamente
? Demorar el procesamiento guardando la instruccion para su accion posterior
? Rechazar la instruccion en el caso de un error de transmision
El AD ejecuta cada lectura y escritura que recibe. Para una lectura, el AD recorre su base de datos local y retorna el valor solicitado. Para una escritura, el AD modifica la base de datos local y retorna un reconocimiento al planificador, que lo envia de regreso al AT y este lo regresa a la transaccion.
DISENO
El diseno de un sistema de base de datos distribuida puede resultar una tarea
compleja. Se deben hacer consideraciones muy cuidadosas sobre los objetivos
y las estrategias que deben servir al diseno y paralelamente se deben tomar
decisiones sobre como hay que distribuir los datos entre los sitios de la
red.
? Transparencia de la Ubicacion
? Transparencia de Duplicacion
? Independencia de la Configuracion
? SGBDD no Homogeneos
? Duplicacion de Datos
? Particionamiento de la Base de Datos
? Fragmentacion de Datos
Es el Particionamiento de la informacion para distribuir cada parte a los diferentes sitios de la red. Permite controlar donde seran almacenados los datos a nivel de tablas.
Para que las BDDR tengan mayor eficiencia en cuanto a desempeno se distribuyen los datos de acuerdo a los requerimientos de uso y las capacidades computacionales que disponen los diferentes usuarios, pero manteniendo la vision del sistema como un solo componente. Para esto se desarrollaron diferentes algoritmos de distribucion de datos y se implementaron las tecnicas de fragmentacion.
Al realizar la fragmentacion
de una relacion se deben satisfacer las siguientes condiciones para garantizar
la validez de la misma:
? Condicion de completitud. La descomposicion de una relacion R en los fragmentos
R1, R2, ..., Rn es completa si y solamente si cada elemento de datos en R
se encuentra en algun de los Ri.
? Condicion de Reconstruccion. Si la relacion R se descompone en los fragmentos
R1, R2, ..., Rn, entonces debe existir algun operador relacional N (llaves
primarias)
? Condicion de Fragmentos Disjuntos. Si la relacion R se descompone en los
fragmentos R1, R2, ..., Rn, y el dato di esta en Rj, entonces, no debe estar
en ningun otro fragmento.
Tipos de fragmentacion
? Fragmentacion Horizontal: donde se distribuyen los registros de las tablas
de la base de datos entre diferentes nodos de la red.
? Fragmentacion Vertical: donde se distribuyen los atributos de acuerdo a
la frecuencia de su uso.
? Fragmentacion Hibrida: que incluye una o varias secuencias de aplicacion
de las fragmentaciones anteriormente mencionadas.
Consiste en particionar las tuplas de una relacion global en subconjuntos, donde cada subconjunto puede contener datos que tienen propiedades comunes y se puede definir expresando cada fragmento como una operacion de seleccion sobre la relacion global.
Ejemplo: supongamos que la relacion R es la relacion VUELO de la figura 6. Esta relacion puede dividirse en dos fragmentos que se definen formalmente como una SELECCION sobre la relacion R, asi:
ORIGEN DESTINO H. PARTID
H. LLEGA
Den SF 9 am 10 am
Den SLC 7 am 8 am
Den SF 1 pm 2 pm
Den SF 6 pm 7 pm
SF Den 8 am 11 am
SF Den 12 pm 3 pm
SF Den 5 pm 8 pm
SF SLC 9 am 11 pm
Origen Destino H. Partid
H. Llega
Den SF 9 am 10 am
Den SLC 7 am 8 am
Den SF 1 pm 2 pm
Den SF 6 pm 7 pm
Origen Destino H. Partid
H. Llega
SF Den 8 am 11 am
SF Den 12 pm 3 pm
SF Den 5 pm 8 pm
SF SLC 9 am 11 pm
La fragmentacion vertical es la subdivision de atributos en grupos. Los fragmentos se obtienen proyectando la relacion global sobre cada grupo. La fragmentacion es correcta si cada atributo se mapea en al menos un atributo del fragmento. La fragmentacion vertical requiere de la adicion de un atributo especial para identificar la tupla (AIT).
Ejemplo: Descompongamos la relacion VUELO en VUELO1 y VUELO2
Origen Destin H Part H.
Lle AIT
Den SF 9 am 10 am 1
Den SLC 7 am 8 am 2
Den SF 1 pm 2 pm 3
Den SF 6 pm 7 pm 4
SF Den 8 am 11 am 5
SF Den 12 pm 3 pm 6
SF Den 5 pm 8 pm 7
SF SLC 9 am 11 pm 8
Vuelo1: Vuelo2:
Orige H.Par AIT
Den 9 am 1
Den 7 am 2
Den 1pm 3
Den 6 pm 4
SF 8 am 5
SF 12pm 6
SF 5pm 7
SF 9 am 8
Dest H.lle AIT
SF 10am 1
SLC 8 am 2
SF 2pm 3
SF 7pm 4
Den 11am 5
Den 3pm 6
Den 8pm 7
SLC 11pm 8
Fragmentacion
hibrida (MIXTA)
Esta consiste en aplicar la fragmentacion vertical seguida de la fragmentacion
horizontal o viceversa.
Sea la relacion EMP( empno, name, sal, tax, mrgno, depno )
Fragmentacion mixta, aplicando
VH:
EMP1 = SL depno <= 10 PJempno, name, mgrno, depno EMP
EMP2 = SL 10 < depno <= 20 PJempno, name, mgrno, depno EMP
EMP3 = SL depno > 20 PJempno, name, mgrno, depno EMP
EMP4 = PJ empno, sal, tax EMP
La reconstruccion de la relacion EMP es definida por la siguiente expresion:
EMP = UN(EMP1, EMP2, EMP3)JNempno = empnoPJempno, sal, tax EMP4
Por que usar la
fragmentacion?
1. Sirve para mejorar el tiempo de respuesta de un usuario.
2. Mejorar la concurrencia (fragmentacion para operaciones localizadas)
3. Mejorar la disponibilidad (saltar fragmentos que se encuentran fuera de
linea)
4. Mejorar las operaciones de backup (reduce tiempo en estas operaciones)
Responsables de
la fragmentacion?
1. El administrador del SGBD
2. El administrador de la BD
Los cuales trabajan de manera colaborativa
Estrategia de
fragmentacion
Una estrategia de fragmentacion consiste en una distribucion de esquemas
y la asignacion de espacios de bases de datos donde residiran los fragmentos.
Para formular una estrategia, debemos tener en cuenta los siguientes pasos.
1. Decidir cual es la meta de la fragmentacion primaria. la meta de la fragmentacion dependera de lo largo o extenso de las aplicaciones que acceden a la tabla.
2 Decidir como la tabla
va a ser fragmentada. Se debera tomar las siguientes decisiones:
? Si fragmentar los datos de la tabla, el indice de la tabla o ambos. Esta
decision se basa en la meta de la fragmentacion primaria.
? Cual es la distribucion ideal de las filas o llaves de indices de la tabla.
? 3. Decidir un esquema de distribucion. Se debe primero escoger entre un round-robin "metodo de planificacion de procesos en un sistema operativo" y un esquema de distribucion basada en expresiones. Si se escoge la ultima, se debe entonces disenar las expresiones convenientes de fragmentacion.
? 4. Para completar la estrategia de fragmentacion se debe decidir un numero y una localizacion de los fragmentos.
Replicacion de
datos
? Proceso de copiado y mantenimiento de objetos en multiples bases de datos;
replicacion puede mejorar el desempeno de la base de datos porque alterna
las opciones de acceso a datos que existen.
Existen dos tipos de replicacion:
Replicacion Basica.
Replicacion Avanzada.
? Se acceden a las copias en modo lectura, de esta forma las aplicaciones pueden copiar datos desde servidores locales haciendo que el trafico de la red sea mas rapido.
? Este tipo de replicacion se realiza mediante Snapshots.
? Las caracteristicas
de la replicacion avanzada extienden las capacidades de la replicacion basica
permitiendo a las aplicaciones actualizar las replicas de la tabla a lo largo
de un sistema de base de datos replicado.
? Todos los servidores que actuan en este tipo de replicacion deben asegurar
consistencia en las transacciones globales e integridad en los datos.
? Los ambientes de replicacion avanzada se soportan utilizando Replicacion
Multimaestro asi como Snapshot Sites.
Manejo de transacciones distribuidas
? Una transaccion es una coleccion de acciones que hacen transformaciones
consistentes de los estados de un sistema preservando la consistencia del
sistema.
? Lo que se persigue con el manejo de transacciones es por un lado tener una
transparencia adecuada de las acciones concurrentes a una base de datos y
por otro lado tener una transparencia adecuada en el manejo de las fallas
que se pueden presentar en una base de datos.
Propiedades de las transaciones
1 .-Atomicidad. Se refiere
al hecho de que una transaccion se trata como una unidad de operacion.
2.-Consistencia. La consistencia de una Transaccion es simplemente su correctitud.
3.-Aislamiento. Una transaccion en ejecucion no puede revelar sus resultados
a otras transacciones concurrentes antes de su commit.
4.-Durabilidad. Es la propiedad de las transacciones que asegura que una vez
que una transaccion hace su commit, sus resultados son permanentes y no pueden
ser borrados de la base de datos.
Un SBDD se clasifica como
homogeneo si cada lugar tiene el mismo SGBD, de otro modo se considera heterogeneo.
Se administran de forma separada y poseen una interconexion mas lenta que
los sistemas centralizados.
Un SBDD debe soportar
el que una consulta sea resuelta parcialmente en diferentes lugares y despues
integrarlos
Transacciones
Una transaccion es una coleccion de acciones que hacen transformaciones consistentes
de los estados de un sistema preservando la consistencia del sistema. Lo que
se persigue con el manejo de transacciones es por un lado tener una transparencia
adecuada de las acciones concurrentes a una base de datos y por otro lado
tener una transparencia adecuada en el manejo de las fallas que se pueden
presentar en una base de datos.
Confiabilidad
? La confiabilidad se puede ver como una medida con la cual un sistema conforma
su comportamiento a alguna especificacion. Tambien se puede interpretar como
la probabilidad de que un sistema no haya experimentado ninguna falla dentro
de un periodo de tiempo dado.
? Organizaciones con
estructura descentralizada
? El area industrial que maneje plantas multiples
? Aplicaciones de control y comando militar
? Lineas de transportacion aerea
? Cadenas hoteleras
? Servicios bancarios y financieros
? Supermercados y almacenes de cadena
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|