Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
SISTEMAS DE BASES DE
Tema 1 DATOS DISTRIBUIDAS
INTRODUCCIÓN
1.1. Conceptos de
base de datos 1
distribuidas.
1.2. Diseño de base
de datos 3
distribuidas.
1.3. Procesamiento
de operaciones de
22
actualización
distribuidas.
1.4. Procesamiento
de consultas 23
distribuidas.
1.5. Manejo de
29
transacciones.
TÓPICOS DE BASES DE DATOS
Tema 1 - Sistemas de Bases de Datos Distribuidas
Cada sitio es un sistema de base de datos en sí mismo. Los sitios han convenido
en trabajar juntos (si es necesario) con fin de que un usuario de cualquier sitio
pueda obtener acceso a los datos de cualquier punto de la red tal como si todos
los datos estuvieran almacenados en el sitio propio del usuario.
Esto es por lo tanto útil para ver las características típicas de BDD. Los rasgos
que caracterizan los BD tradicionales se aproximan al control centralizado,
independencia de datos, reducción de redundancia, estructuras físicas complejas
para acceso eficiente, integridad, recuperación control de concurrencia,
privacidad y seguridad.
1
TÓPICOS DE BASES DE DATOS
Tema 1 - Sistemas de Bases de Datos Distribuidas
Independencia con respecto a la localización: No debe de ser necesario
que los usuarios sepan dónde están almacenados físicamente los datos, sino
que más el usuario lo debe de ver como si solo existiera un sitio local.
Independencia con respecto a la fragmentación: La fragmentación es
deseable por razones de desempeño, los datos, pueden almacenarse en la
localidad donde se utilizan con mayor frecuencia de manera que la mayor
parte de las operaciones sean sólo locales y se reduzca el tráfico en la red.
Independencia de réplica: Si una relación dada (es decir, un fragmento
dado de una relación) se puede presentar en el nivel físico mediante varias
copias almacenadas o réplicas, en muchos sitios distintos
2
TÓPICOS DE BASES DE DATOS
Tema 1 - Sistemas de Bases de Datos Distribuidas
La decisión de donde colocar a las aplicaciones tiene que ver tanto con el
software del SMBDD como con las aplicaciones que se van a ejecutar sobre la
base de datos.
3
TÓPICOS DE BASES DE DATOS
Tema 1 - Sistemas de Bases de Datos Distribuidas
La independencia de datos es la inmunidad de las aplicaciones de usuario
a los cambios en la definición y/u organización de los datos y viceversa. La
independencia de datos se puede dar en dos aspectos: lógica y física.
4
TÓPICOS DE BASES DE DATOS
Tema 1 - Sistemas de Bases de Datos Distribuidas
las respuestas a consultas fragmentadas para obtener una sola respuesta a
una consulta global. El acceso a una base de datos distribuida debe hacerse
en forma transparente.
Ejemplo:
5
TÓPICOS DE BASES DE DATOS
Tema 1 - Sistemas de Bases de Datos Distribuidas
G
6
TÓPICOS DE BASES DE DATOS
Tema 1 - Sistemas de Bases de Datos Distribuidas
SELECT ENOMBRE, SALARIO FROM E, G, S
WHERE JORNADA > 12 ANDE.ENO = G.ENO ANDE.TILE = S.TITLE
7
TÓPICOS DE BASES DE DATOS
Tema 1 - Sistemas de Bases de Datos Distribuidas
En el primer nivel se soporta la transparencia de red. En el segundo nivel
se permite la transparencia de replicación de datos. En el tercer nivel se
permite la transparencia de la fragmentación. Finalmente, en el último nivel
se permite la transparencia de acceso (por medio de lenguaje de
manipulación de datos).
El problema de diseño
8
TÓPICOS DE BASES DE DATOS
Tema 1 - Sistemas de Bases de Datos Distribuidas
En el diseño de la distribución de los datos, se deben de tomar en cuenta
los siguientes objetivos:
9
TÓPICOS DE BASES DE DATOS
Tema 1 - Sistemas de Bases de Datos Distribuidas
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.
10
TÓPICOS DE BASES DE DATOS
Tema 1 - Sistemas de Bases de Datos Distribuidas
El problema de fragmentación
El grado de fragmentación.
11
TÓPICOS DE BASES DE DATOS
Tema 1 - Sistemas de Bases de Datos Distribuidas
Ejemplo.
Ejemplo.
12
TÓPICOS DE BASES DE DATOS
Tema 1 - Sistemas de Bases de Datos Distribuidas
13
TÓPICOS DE BASES DE DATOS
Tema 1 - Sistemas de Bases de Datos Distribuidas
Requerimientos de información
1. Fragmentación horizontal
2. Fragmentación vertical
3. Fragmentación híbrida
14
TÓPICOS DE BASES DE DATOS
Tema 1 - Sistemas de Bases de Datos Distribuidas
Ejemplo.
Fragmentación vertical
Ejemplo.
15
TÓPICOS DE BASES DE DATOS
Tema 1 - Sistemas de Bases de Datos Distribuidas
una fragmentación vertical de esta relación puede ser definida como:
EMP = EMP1 (JN empnum) EMP2 porque empnum es una clave de EMP
Fragmentación híbrida
Ejemplo.
Las siguientes son para obtener una fragmentación mixta, aplicando la vertical
seguida de a horizontal:
16
TÓPICOS DE BASES DE DATOS
Tema 1 - Sistemas de Bases de Datos Distribuidas
EMP1 = Sldepnum <= 10 PJempnum, name, mgrnum, depnum (EMP)
EMP2 = SL 10 < depnum <= 20 PJempnum, name, mgrnum, depnum
(EMP)
EMP3 = SL depnum > 20 PJempnum, name, mgrnum, depnum (EMP)
EMP4 = PJ empnum, name, sal, tax (EMP)
DEP1 = SL depnum <= 10 (DEP)
DEP2 = SL 10 < depnum <= 20 (DEP)
DEP3 = SL depnum > 20 (DEP)
SUPPLIER1 = SL city == "SF" (SUPPLIER)
SUPPLIER2 = SL city == "LA" (SUPPLIER)
SUPPLY1 = SUPPLYSJsnum == snumSUPPLIER1
SUPPLY2 = SUPPLYSJsnum == snumSUPPLIER2
Fragmentación horizontal
17
TÓPICOS DE BASES DE DATOS
Tema 1 - Sistemas de Bases de Datos Distribuidas
Dada una relación R(A1 , A2, ..., An), donde Ai es un atributo definido sobre el
dominio Di, un predicado simple pj definido en R tiene la forma pj: Ai q Valor
donde q Î { =, <, 1 , £ , >, 3 } y Valor Î Di. Para la relación R se define un
conjunto de predicados simples como Pr = { p1, p2 , ..., pm }.
Ejemplo.
JNOMBRE = "Mantenimiento"
PRESUPUESO < 200000
Rj = sFj (R), 1 £ j £ w
18
TÓPICOS DE BASES DE DATOS
Tema 1 - Sistemas de Bases de Datos Distribuidas
Es necesario desarrollar un algoritmo que tome como entrada una relación R y
el conjunto de predicados simples Pr y proporcione como resultado el conjunto
de fragmentos de R = { R1, R2, ..., Rm } el cual obedece las reglas de
fragmentación. Un aspecto importante del conjunto de predicados es que debe
ser completo y minimal.
FRAGMENTACION VERTICAL
Nos concentraremos aquí al estudio del enfoque divisional ya que, por un lado,
su aplicación es más natural al enfoque de diseño "top-down". Además, el
enfoque divisional genera fragmentos que no se traslapan mientras que el
agrupamiento típicamente resulta en fragmentos traslapados. Por supuesto, la
no traslapación no incluye a las llaves primarias.
19
TÓPICOS DE BASES DE DATOS
Tema 1 - Sistemas de Bases de Datos Distribuidas
Como en el caso de la fragmentación horizontal, es necesario proporcionar
información para poder realizar una adecuada fragmentación vertical. Ya que
el particionamiento vertical coloca en un fragmento aquellos atributos que se
acceden juntos, se presenta la necesidad de una medida que relacione la afinidad
de los atributos, la cual indica qué tan relacionados están los atributos. Esta
medida se obtiene por datos primitivos.
FRAGMENTACION HIBRIDA
Fragmentación híbrida.
20
TÓPICOS DE BASES DE DATOS
Tema 1 - Sistemas de Bases de Datos Distribuidas
En la Figura siguiente, se muestra el árbol de reconstrucción de la fragmentación
híbrida de J. Inicialmente se aplica una fragmentación horizontal y
posteriormente una fragmentación vertical.
ASIGNAMIENTO DE FRAGMENTOS
El problema de asignamiento
21
TÓPICOS DE BASES DE DATOS
Tema 1 - Sistemas de Bases de Datos Distribuidas
En cualquier problema de optimización existen restricciones que se deben
satisfacer. El caso de distribución de fragmentos, las restricciones se
establecen sobre las capacidades de almacenamiento y procesamiento de
cada nodo en la red.
Requerimientos de información
Información sobre cada nodo de la red. Las medidas utilizadas son el costo
unitario de almacenamiento de datos en un nodo y el costo unitario de
procesamiento de datos en un nodo.
22
TÓPICOS DE BASES DE DATOS
Tema 1 - Sistemas de Bases de Datos Distribuidas
Procesamiento de consultas.
23
TÓPICOS DE BASES DE DATOS
Tema 1 - Sistemas de Bases de Datos Distribuidas
La consulta de bajo nivel implementa de hecho la estrategia de ejecución para
la consulta. La transformación debe ser correcta y eficiente. Es correcta si la
consulta de bajo nivel tiene la misma semántica que la consulta original, esto
es, si ambas consultas producen el mismo resultado.
Ejemplo 4.1.
Considere el siguiente subconjunto del esquema de la base de datos de
ingeniería que se presentó en el apartado 1.1
SELECT ENOMBRE
FROM E, G
WHERE E.ENO = G.ENO AND RESPONSABLE = "ADMINISTRADOR"
24
TÓPICOS DE BASES DE DATOS
Tema 1 - Sistemas de Bases de Datos Distribuidas
Como es intuitivamente obvio, la segunda estrategia que evita calcular el
producto cartesiano entre E y G, consume mucho menos recursos que la primera
y, por lo tanto, es mejor.
Ejemplo.
25
TÓPICOS DE BASES DE DATOS
Tema 1 - Sistemas de Bases de Datos Distribuidas
26
TÓPICOS DE BASES DE DATOS
Tema 1 - Sistemas de Bases de Datos Distribuidas
Así, el problema de optimización de consultas es minimizar una función de
costo tal que
27
TÓPICOS DE BASES DE DATOS
Tema 1 - Sistemas de Bases de Datos Distribuidas
Descomposición de consultas
Localización de Datos
28
TÓPICOS DE BASES DE DATOS
Tema 1 - Sistemas de Bases de Datos Distribuidas
El trabajo de la última capa se efectúa en todos los nodos con fragmentos
involucrados en la consulta. Cada subconsulta que se ejecuta en un nodo,
llamada consulta local, es optimizada usando el esquema local del nodo.
Hasta este momento, se pueden eligen los algoritmos para realizar las
operaciones relacionales. La optimización local utiliza los algoritmos de
sistemas centralizados.
Hasta este momento, las primitivas básicas de acceso que se han considerado
son las consultas (queries). Sin embargo, no se ha discutido qué pasa cuando,
por ejemplo, dos consultas tratan de actualizar el mismo elemento de datos, o
si ocurre una falla del sistema durante la ejecución de una consulta. Dada la
naturaleza de una consulta, de lectura o actualización, a veces no se puede
simplemente reactivar la ejecución de una consulta, puesto que algunos datos
pueden haber sido modificados antes la falla. El no tomar en cuenta esos factores
puede conducir a que la información en la base de datos contenga datos
incorrectos.
29
TÓPICOS DE BASES DE DATOS
Tema 1 - Sistemas de Bases de Datos Distribuidas
Ejemplo.
UPDATE J
SET BUDGET = BUDGET*1.1
WHERE JNAME = "CAD/CAM"
Begin_transaction ACTUALIZA_PRESUPUESTO
begin
UPDATE J
SET BUDGET = BUDGET*1.1
WHERE JNAME = "CAD/CAM"
End.
Ejemplo.
30
TÓPICOS DE BASES DE DATOS
Tema 1 - Sistemas de Bases de Datos Distribuidas
FC( FNO, DATE, CNAME, SPECIAL )
Begin_transaction Reservación
begin
input( flight_no, date, customer_name );
EXEC SQL UPDATE FLIGHT
SET STSOLD = STSOLD + 1
WHERE FNO = flight_no
AND DATE = date
EXEC SQL INSERT
INTO FC( FNAME, DATE, CNAME, SPECIAL )
VALUES (flight_no, date, customer_name, null )
output("reservación terminada");
end.
Ejemplo.
Begin_transaction Reservación
begin
input( flight_no, date, customer_name );
EXEC SQL SELECT STSOLD, CAP
INTO temp1, temp2
FROM FLIGHT
WHERE FNO = flight_no AND DATE = date
if temp1 = temp2 then
output( "no hay asientos libres" )
31
TÓPICOS DE BASES DE DATOS
Tema 1 - Sistemas de Bases de Datos Distribuidas
Abort
else
EXEC SQL UPDATE FLIGHT
SET STSOLD = STSOLD + 1
WHERE FNO = flight_no AND DATE = date
EXEC SQL INSERT
INTO FC( FNAME, DATE, CNAME, SPECIAL )
VALUES (flight_no, date, customer_name, null )
Commit
output("reservación terminada");
endif
end.
Caracterización de transacciones
Ejemplo.
1. Si = OSi U {Ni}
32
TÓPICOS DE BASES DE DATOS
Tema 1 - Sistemas de Bases de Datos Distribuidas
2. Para cualesquiera dos operaciones, Oij , Oik Î OSi , si Oij = R(x) y Oik
= W(x) para cualquier elemento de datos x, entonces, ó Oij < i Oik ó
Oik < i Oi
3. " Oij Î OSi , Oij < i Ni
Ejemplo.
Read( x )
Read( y )
x ¬ x + y
Write( x )
Commit
33
TÓPICOS DE BASES DE DATOS
Tema 1 - Sistemas de Bases de Datos Distribuidas
presencia de abortos debido a errores de entrada, sobrecarga del sistema
o interbloqueos se le llama recuperación de transacciones. La actividad
de asegurar la atomicidad en presencia de caídas del sistema se le llama
recuperación de caídas.
2. Consistencia. La consistencia de una transacción es simplemente su
correctitud. En otras palabras, una transacción es un programa correcto
que lleva la base de datos de un estado consistente a otro con la misma
característica. Debido a esto, las transacciones no violan las restricciones
de integridad de una base de datos.
3. Aislamiento. Una transacción en ejecución no puede revelar sus
resultados a otras transacciones concurrentes antes de su commit. Más
aún, si varias transacciones se ejecutan concurrentemente, los resultados
deben ser los mismos que si ellas se hubieran ejecutado de manera
secuencial (seriabilidad).
4. Durabilidad. Es la propiedad de las transacciones que asegura que
una vez que una transacción hace su commit, sus resultados son
permanentes y no pueden ser borrados de la base de datos. Por lo tanto,
los DBMS aseguran que los resultados de una transacción sobrevivirán
a fallas del sistema. Esta propiedad motiva el aspecto de recuperación
de bases de datos, el cual trata sobre como recuperar la base de datos
a un estado consistente en donde todas las acciones que han hecho un
commit queden reflejadas.
Tipos de Transacciones
34
TÓPICOS DE BASES DE DATOS
Tema 1 - Sistemas de Bases de Datos Distribuidas
heterogéneas sobre los datos.
2. Tiempo de duración. Tomando en cuenta el tiempo que transcurre
desde que se inicia una transacción hasta que se realiza un commit o
se aborta, las transacciones pueden ser de tipo batch o en línea. Estas
se pueden diferencias también como transacciones de corta y larga vida.
Las transacciones en línea se caracterizan por tiempos de respuesta muy
cortos y por accesar un porción relativamente pequeña de la base de
datos. Por otro lado, las transacciones de tipo batch toman tiempos
relativamente largos y accesan grandes porciones de la base de datos.
3. Estructura. Considerando la estructura que puede tener una
transacción se examinan dos aspectos: si una transacción puede contener
a su vez subtransacciones o el orden de las acciones de lectura y
escritura dentro de una transacción.
Estructura de transacciones
Begin_transaction Reservación
...
end.
Por ejemplo;
Begin_transaction Reservación
...
Begin_transaction Vuelo
...
end. {Vuelo}
...
Begin_transaction Hotel
...
end.
...
end.
35
TÓPICOS DE BASES DE DATOS
Tema 1 - Sistemas de Bases de Datos Distribuidas
Más aún, el commit de una subtransacción es condicional al commit de su padre,
en otras palabras, si el padre de una o varias transacciones aborta, las
subtransacciones hijas también serán abortadas.
36
TÓPICOS DE BASES DE DATOS
Tema 1 - Sistemas de Bases de Datos Distribuidas
Incorporación del manejador de transacciones a la arquitectura de un SMBD
1. Begin_transaction.
2. Read.
3. Write.
4. Commit.
5. Abort.
37
TÓPICOS DE BASES DE DATOS
Tema 1 - Sistemas de Bases de Datos Distribuidas
En la Figura se presenta la arquitectura requerida para la ejecución
centralizada de transacciones.
CONTROL DE CONCURRENCIA
38
TÓPICOS DE BASES DE DATOS
Tema 1 - Sistemas de Bases de Datos Distribuidas
El control de concurrencia distribuido de una DDBMS asegura que la
consistencia de la base de datos se mantiene en un ambiente distribuido
multiusuario.
39
TÓPICOS DE BASES DE DATOS
Tema 1 - Sistemas de Bases de Datos Distribuidas
40
TÓPICOS DE BASES DE DATOS
Tema 1 - Sistemas de Bases de Datos Distribuidas
41