Vous êtes sur la page 1sur 27

Bases de Datos Distribuidas

UNIVERSIDAD TCNICA DE AMBATO MAESTRIA EN GESTIN DE BASE DE DATOS


Bases de Datos
Distribuidas
Renato Urvina
Bases de Datos Distribuidas
UNIVERSIDAD TCNICA DE AMBATO MAESTRIA EN GESTIN DE BASE DE DATOS
Conocer las tcnicas para
integrar o distribuir bases de
datos utilizando los
esquemas de replicacin,
tipos de fragmentacin,
tcnicas de localizacin y
asignacin de fragmentos y la
correcta actualizacin de las
bases de datos distribuidas,
adems manejar sistemas de
bases de datos mltiples.
OBJETIVO
Bases de Datos
Distribuidas
Bases de Datos Distribuidas
Estructuras de las bases de datos distribuidas
Las 12 reglas de un sistema de bases distribuidas
Consideraciones al distribuir la bases de datos
INTRODUCCIN A LAS BDD
Diseo de bases de datos distribuidas
Estrategia de diseo ascendente
Integracin de bases de datos
Estrategia de diseo descendente
DISEO DE BDD
Tipos de Fragmentacin
Implementacin de la fragmentacin en SGBD
FRAGMENTACIN
Tipos de Replicacin
Implementacin de la Replicacin en SGBD
REPLICACIN
UNIVERSIDAD TCNICA DE AMBATO MAESTRIA EN GESTIN DE BASE DE DATOS
Bases de Datos
Distribuidas
Bases de Datos Distribuidas
Asignacin
Localizacin
Procesamiento distribuido de consultas
Manejo de transacciones
Control de concurrencia
TRATAMIENTO DE LA INFORMACIN EN BDD
Bases Mltiples
Replicacin Oracle SQL Server
Implementacin
BASES DE DATOS HETEROGENEAS
Implementacin de un proyecto de BDD
Elaboracin de artculo final
PROYECTO FINAL
UNIVERSIDAD TCNICA DE AMBATO MAESTRIA EN GESTIN DE BASE DE DATOS
Bases de Datos
Distribuidas
Bases de Datos Distribuidas
UNIVERSIDAD TCNICA DE AMBATO MAESTRIA EN GESTIN DE BASE DE DATOS
Bases de Datos Distribuidas
UNIVERSIDAD TCNICA DE AMBATO MAESTRIA EN GESTIN DE BASE DE DATOS
Diseo de bases de datos distribuidas
Estrategia de diseo ascendente
Integracin de bases de datos
Estrategia de diseo descendente
DISEO DE BASES DE DATOS DISTRIBUIDAS
Bases de Datos Distribuidas
UNIVERSIDAD TCNICA DE AMBATO MAESTRIA EN GESTIN DE BASE DE DATOS
Diseo de Bases de Datos Distribuidas
Diseo de bases de datos distribuidas
INTRODUCCIN
El diseo de un sistema de base de datos distribuido
implica la toma de decisiones sobre la ubicacin de
los programas que accedern a la base de datos y
sobre los propios datos que constituyen esta ltima, a
lo largo de los diferentes puestos que configuren una
red de ordenadores.
Tradicionalmente se ha clasificado la organizacin de
los sistemas de bases de datos distribuidos sobre tres
dimensiones: el nivel de comparticin, las
caractersticas de acceso a los datos y el nivel de
conocimiento de esas caractersticas de acceso
Bases de Datos Distribuidas
UNIVERSIDAD TCNICA DE AMBATO MAESTRIA EN GESTIN DE BASE DE DATOS
Diseo de Bases de Datos Distribuidas
Diseo de bases de datos distribuidas
INTRODUCCIN
A la hora de abordar el diseo de una base de datos
distribuida podremos optar principalmente por dos
tipos de estrategias: la estrategia ascendente y la
estrategia descendente.
Hay que decidir en qu nodos deben residir los
datos y las aplicaciones que trabajan con los datos
Si existen ya las bases de datos, hay que
integrarlas para obtener el esquema global
Si no existen, hay que definir el esquema
conceptual global y fragmentar y asignar a los nodos
Bases de Datos Distribuidas
UNIVERSIDAD TCNICA DE AMBATO MAESTRIA EN GESTIN DE BASE DE DATOS
Diseo de Bases de Datos Distribuidas
Estrategias de Diseo de BDD
ESTRATEGIA DE DISEO ASCENDENTE
(bottom-up)
Esta estrategia suele ser utilizada para integrar
varias bases de datos existentes.
Se parte de los esquemas conceptuales locales
y se trabaja para llegar a conseguir el esquema
conceptual global.
Despus se pasa al diseo de distribucin.
BD1 BD2 BD3
Bases de Datos Distribuidas
UNIVERSIDAD TCNICA DE AMBATO MAESTRIA EN GESTIN DE BASE DE DATOS
Diseo de Bases de Datos Distribuidas
Estrategias de Diseo de BDD
ESTRATEGIA DE DISEO ASCENDENTE
(bottom-up)
INTEGRACIN
Una vez diseado el modelo de distribucin se
decide los componentes de integracin:
SGBDs locales y SGBD global
Mtodos de conexin de red
Tablas principales y Vistas materializadas
Tablas fragmentadas
Replicaciones
BD1
BD2
BD3
Bases de Datos Distribuidas
UNIVERSIDAD TCNICA DE AMBATO MAESTRIA EN GESTIN DE BASE DE DATOS
Diseo de Bases de Datos Distribuidas
Estrategias de Diseo de BDD
ESTRATEGIA DE DISEO DESCENDENTE
(top-down)
Este enfoque es ms apropiado para aplicaciones nuevas y para sistemas homogneos.
Inicia en el anlisis de requerimientos para definir el diseo conceptual y las vistas de
usuario.
A partir de ellas se define un esquema conceptual global y los esquemas externos
necesarios.
Se prosigue con el diseo de la fragmentacin de la base de datos, y de aqu se
contina con la localizacin de los fragmentos en los sitios, creando las imgenes
fsicas.
Esta aproximacin se completa ejecutando, en cada sitio, "el diseo fsico" de los
datos, que se localizan en ste.
Bases de Datos Distribuidas
UNIVERSIDAD TCNICA DE AMBATO MAESTRIA EN GESTIN DE BASE DE DATOS
Diseo de Bases de Datos Distribuidas
Estrategias de Diseo de BDD ESTRATEGIA DE DISEO
DESCENDENTE (top-down)
Bases de Datos Distribuidas
UNIVERSIDAD TCNICA DE AMBATO MAESTRIA EN GESTIN DE BASE DE DATOS
Tipos de Fragmentacin
Implementacin de la fragmentacin
en SGBD
Prctica
Tipos de Fragmentacin
Bases de Datos Distribuidas
UNIVERSIDAD TCNICA DE AMBATO MAESTRIA EN GESTIN DE BASE DE DATOS
Tipos de Fragmentacin
Fragmentacin
El contenido de una tabla puede separase en varios
fragmentos que contendrn suficiente informacin como
para poder reconstruir la tabla original en caso que sea
necesario.
Cada fragmento se encontrar en un nodo diferente.
La fragmentacin puede ser Horizontal o Vertical y se puede
aplicar sucesiva y alternativamente sobre la misma tabla.
Bases de Datos Distribuidas
UNIVERSIDAD TCNICA DE AMBATO MAESTRIA EN GESTIN DE BASE DE DATOS
Tipos de Fragmentacin
Fragmentacin
El diseo de una base de datos distribuida, cualquiera sea el
enfoque que se siga, debe responder satisfactoriamente las
siguientes preguntas:
Por qu hacer una fragmentacin de datos?
Cmo realizar la fragmentacin?
Qu tanto se debe fragmentar
Cmo probar la validez de una fragmentacin?
Cmo realizar el asignamientode fragmentos?
Cmo considerar los requerimientos de la informacin?
Bases de Datos Distribuidas
UNIVERSIDAD TCNICA DE AMBATO MAESTRIA EN GESTIN DE BASE DE DATOS
Tipos de Fragmentacin
Fragmentacin
Fragmentacin Horizontal: los fragmentos son subconjuntos
de una tabla y se definen a travs de una operacin de
seleccin. La tabla original se reconstruye en base a una
operacin de unin de los fragmentos componentes.
Fragmentacin Vertical: los fragmentos son subconjuntos de
los atributos con sus valores. Para poder recomponer la tabla
original, cada fragmento debe incluir la clave primaria de la
tabla.
Fragmentacin Mixta o hbrida: Mezcla las fragmentaciones
horizontal y vertical
Bases de Datos Distribuidas
UNIVERSIDAD TCNICA DE AMBATO MAESTRIA EN GESTIN DE BASE DE DATOS
Fragmentacin Horizontal
Fragmentacin
Bases de Datos Distribuidas
UNIVERSIDAD TCNICA DE AMBATO MAESTRIA EN GESTIN DE BASE DE DATOS
Fragmentacin
Fragmentacin
Bases de Datos Distribuidas
UNIVERSIDAD TCNICA DE AMBATO MAESTRIA EN GESTIN DE BASE DE DATOS
Fragmentacin Horizontal - Lista
Fragmentacin
Particionado List
Este tipo de particionado permite determinar el particionado
segn una lista de valores definidos sobre el valor de una
columna especifica.
CREATE TABLE sales_list (salesman_id NUMBER(5),
salesman_name VARCHAR2(30),
sales_state VARCHAR2(20),
sales_amount NUMBER(10),
sales_date DATE)
PARTITION BY LIST(sales_state)
(
PARTITION sales_west VALUES('California', 'Hawaii'),
PARTITION sales_east VALUES ('New York', 'Virginia', 'Florida'),
PARTITION sales_central VALUES('Texas', 'Illinois')
PARTITION sales_other VALUES(DEFAULT)
);
Este particionado tiene algunas limitaciones, como que
no soporta mltiples columnas en la clave de
particionado, los valores literales deben ser nicos en la
lista, permitiendo el uso del valor NULL.
El valor DEFAULT sirve para definir la particin donde
irn el resto de registros que no cumplen ninguna
condicin de las diferentes particiones.
Bases de Datos Distribuidas
UNIVERSIDAD TCNICA DE AMBATO MAESTRIA EN GESTIN DE BASE DE DATOS
Fragmentacin Horizontal - Rango
Fragmentacin
Particionado Range
Requiere que los registros estn identificados por un partition
key, el que determina la particin a la cual pertenecer el
registro.
CREATE TABLE sales
( prod_id NUMBER(6) , cust_id NUMBER,
time_id DATE, channel_id CHAR(1),
promo_id NUMBER(6) , quantity_soldNUMBER(3),
amount_sold NUMBER(10,2) )
PARTITION BY RANGE (time_id)
( PARTITION sales_q1_2006 VALUES LESS THAN (TO_DATE('01-
APR-2006','dd-MON-yyyy')) TABLESPACE tsa
, PARTITION sales_q2_2006 VALUES LESS THAN (TO_DATE('01-
JUL-2006','dd-MON-yyyy')) TABLESPACE tsb);
Este tipo de particionamiento esta mejor situado
cuando se tiene datos que tienen rango lgicos y
que pueden ser distribuidos por este. Ej. Mes del
Ao o un valor numrico.
Bases de Datos Distribuidas
UNIVERSIDAD TCNICA DE AMBATO MAESTRIA EN GESTIN DE BASE DE DATOS
Fragmentacin Horizontal Rango (2)
Fragmentacin
Particionado Range
Requiere que los registros estn identificados por un partitionkey,
el que determina la particin a la cual pertenecer el registro.
CREATE TABLE sales
( prod_id NUMBER(6) , cust_id NUMBER,
time_id DATE, channel_id CHAR(1),
promo_id NUMBER(6) , quantity_sold NUMBER(3),
amount_sold NUMBER(10,2) )
PARTITION BY RANGE (time_id)
( PARTITION sales_q1_2006 VALUES LESS THAN (TO_DATE('01-
APR-2006','dd-MON-yyyy')) TABLESPACE tsa
, PARTITION sales_q2_2006 VALUES LESS THAN (TO_DATE('01-JUL-
2006','dd-MON-yyyy')) TABLESPACE tsb
, PARTITION sales_q3_2006 VALUES LESS THAN (TO_DATE('01-OCT-
2006','dd-MON-yyyy')) TABLESPACE tsc
, PARTITION sales_q4_2006 VALUES LESS THAN (TO_DATE('01-JAN-
2007','dd-MON-yyyy')) TABLESPACE tsd );
Este tipo de particionamiento esta mejor situado
cuando se tiene datos que tienen rango lgicos y
que pueden ser distribuidos por este. Ej. Mes del
Ao o un valor numrico.
Bases de Datos Distribuidas
UNIVERSIDAD TCNICA DE AMBATO MAESTRIA EN GESTIN DE BASE DE DATOS
Fragmentacin Horizontal Rango (3)
Fragmentacin
CREATE TABLE employees (
id INT NOT NULL,
fname VARCHAR(50) NOT NULL,
lname VARCHAR(50) NOT NULL,
hired DATE NOT NULL
)
PARTITION BY RANGE( YEAR(hired) ) (
PARTITION p1 VALUES LESS THAN (1991),
PARTITION p2 VALUES LESS THAN (1996),
PARTITION p3 VALUES LESS THAN (2001),
PARTITION p4 VALUES LESS THAN (2005)
);
ALTER TABLE employees ADD PARTITION (
PARTITION p5 VALUES LESS THAN (2010),
PARTITION p6 VALUES LESS THAN MAXVALUE
);
Este tipo de particionamiento esta mejor situado
cuando se tiene datos que tienen rango lgicos y
que pueden ser distribuidos por este. Ej. Mes del
Ao o un valor numrico.
Bases de Datos Distribuidas
UNIVERSIDAD TCNICA DE AMBATO MAESTRIA EN GESTIN DE BASE DE DATOS
Fragmentacin Horizontal - Hash
Fragmentacin
Particionado Hash
La funcin hash devuelve un valor automtico que determina
a que particin ir el registro. Es una forma automtica de
balancear el particionado. Hay varias formas de construir
este particionado. En el ejemplo siguiente vemos una
definicin sin indicar los nombres de las particiones (solo el
nmero de particiones):
CREATE TABLE dept (deptno NUMBER, deptname
VARCHAR(32))
PARTITION BY HASH(deptno) PARTITIONS 16;
Es una opcin til cuando:
Cuando el mtodo de acceso a los datos y la
distribucin de los datos es desconocida.
Cuando las consultas realizan exploraciones
secuenciales y se tenga poca informacin de los
datos almacenados
Bases de Datos Distribuidas
UNIVERSIDAD TCNICA DE AMBATO MAESTRIA EN GESTIN DE BASE DE DATOS
Fragmentacin Horizontal - Hash
Fragmentacin
Es una opcin til cuando:
Cuando el mtodo de acceso a los datos y la
distribucin de los datos es desconocida.
Cuando las consultas realizan exploraciones
secuenciales y se tenga poca informacin de los
datos almacenados
Particionado Hash (2)
Igualmente, se pueden indicar los nombres de cada particion
individual o los tablespaces donde se localizaran cada una de
ellas:
CREATE TABLE dept (deptno NUMBER, deptname
VARCHAR(32))
STORAGE (INITIAL 10K)
PARTITION BY HASH(deptno)
(PARTITION p1 TABLESPACE ts1, PARTITION p2
TABLESPACE ts2,
PARTITION p3 TABLESPACE ts1, PARTITION p4
TABLESPACE ts3);
Bases de Datos Distribuidas
UNIVERSIDAD TCNICA DE AMBATO MAESTRIA EN GESTIN DE BASE DE DATOS
Fragmentacin Horizontal - Ejercicio
Fragmentacin
1. Crear 2 tablas con la siguiente estructura
*La tabla particionada, con una particin hash de 10
2. Llenar con 1 milln de registros y tomar los tiempos requeridos en cada caso
3. Realizar un update a toda la tabla sumando 10 al campo llave, y tomar los tiempos
requeridos en cada caso
4. Realizar un vaciado de la tabla, y tomar los tiempos requeridos en cada caso.
Tabla Particionada
LLAVE LONG
DATO VARCHAR(10)
Tabla Normal
LLAVE LONG
DATO VARCHAR(10)
Bases de Datos Distribuidas
UNIVERSIDAD TCNICA DE AMBATO MAESTRIA EN GESTIN DE BASE DE DATOS
Fragmentacin Horizontal - Ejercicio
Fragmentacin
Registrar los tiempos en una tabla.
Registros Insert (seg) Update (seg) Delete (seg)
Tabla Normal 1 milln
Tabla Particionada 1 milln
Bases de Datos Distribuidas
UNIVERSIDAD TCNICA DE AMBATO MAESTRIA EN GESTIN DE BASE DE DATOS
Fragmentacin Horizontal Ejercicio 2
Fragmentacin
Realizar el mismo ejercicio en los siguientes SGBD: MySQL, SQL Server, Firebird
Realizar un cuadro estadstico con los tiempos registrados
1 milln registros
Realizar el ejercicio con 5 y 10 millones de registros
Elaborar un Informe con los resultados y sus conclusiones respectivas.
(al menos 4 conclusiones personales)
SGBD Insercin Modificacin Borrado
Oracle 10 8 5
MySQL 11 7 6
Ms - SQL 12 12 8
Firebird 9 8 7
0
2
4
6
8
10
12
14
Oracle MySQL Ms - SQL Firebird
1 Milln registros
Insercin Modificacin Borrado