Anon - Bases de Datos Distribuidas (PDF)
Anon - Bases de Datos Distribuidas (PDF)
Anon - Bases de Datos Distribuidas (PDF)
DISTRIBUIDAS BY BELZEBU
ü Centralizada
ü Bicentral
ü Multicentro
ü Horizontal
ü Multinivel
4
Ejemplo 1
Surge una idea: Que las aplicaciones que accesen datos en más
de un área pueden hacerlo con Bases de Datos Globales o
Distribuidas. Por ejemplo, una transferencia de fondos
Ejemplo 2
Esta también puede ser una base de datos distribuida, sólo que
puede ser más rápida y confiable si los procesamientos son
distribuidos y hay una alta interacción entre los sitios.
Ejemplo 3
R1 R2 R3
A B C A B C B C D
a x a a x a x a x
b x b a z f z b x
a x d z c y
b y f x d w
y a z
SELECCIÓN
SLA=aR1
A B C
a x a
a x d
PROYECCIÓN
18
PJA,BR1
A B
a x
b x
b y
UNION
R1 UN R2
A B C
a x a
b x b
a x d
b y f
a z f
DIFERENCIA
Está formada por las tuplas de la primera relación (R1) que no se
encuentran en la segunda (R2).
R1 DF R2
A B C
b x b
a x d
b y f
PRODUCTO CARTESIANO
Produce una relación con todas los atributos de los dos relaciones,
donde cada tupla de la primera (R1) se combina con todas las
tuplas de la segunda (R2).
R1 CP R2
R1.A R1.B R1.C R2.A R2.B R2.C
a x a a x a
b x b a x a
a x d a x a
19
b y f a x a
a x a a z f
b x b a z f
a x d a z f
b y f a z f
JOIN
R1 JN R1.C=R3.C R3
R1.A R1.B R1.C R3.B R3.C R3.D
a x a x a x
a x a y a z
b x b z b x
a x d x d w
JOIN NATURAL
R1 NJN R3
A B C D
a x a x
a x d w
SEMIJOIN
R1 SJR1.C=R3.C R3
A B C
a x a
b x b
a x d
20
SEMIJOIN NATURAL
R1 NSJ R3
A B C
a x a
a x d
AGRUPAMIENTO
GBA,COUNT(B) R1
A COUNT(B)
a 2
b 2
EL MODELO OSI
Este modelo está formado por siete niveles, desde los más
dependientes de los dispositivos hasta los más independientes y
más inteligentes. Ellos son: Físico, Enlace, Red, Transporte, Sesión,
Presentación y Aplicación.
22
Entre los principales productos del nivel físico están las interfaces
seriales RS232, RS449 y X.21 y las interfaces I.430, I.431 de ISDN.
3. Administración y control.
4. Control de concurrencia y recuperación.
5. Seguridad.
Existen los DBMSs homogéneos, los cuales son sistemas que tienen
igual DBMS en cada sitio aunque los computadores y los sistemas
operacionales sean diferentes.
Por otro lado, los DBMSs heterogéneos son aquellos en los que se
tienen por lo menos dos DBMSs diferentes.
EJERCICIOS PROPUESTOS
d) Redundancia de datos
11. Una base de datos distribuida es aquella en que
a) Existe un control total de cuenta del DBA Global
b) La redundancia es mínima o no existe
c) El usuario percibe los datos como si estuvieran en un
solo sitio
d) Los clusters inter-tabla e intra-tabla se construyen
dependiendo de cómo están los datos en los sitios.
12. Desde el punto de vista organizacional, cuál es el mayor
impacto político de la descentralización:
a) La gerencia central pierde poder
b) Mayor aprovechamiento de los recursos existentes
c) Permite tener unas estructuras más flexibles
d) Fomenta la responsabilidad de los usuarios por sus datos
3
Niveles de Transparencia
de Distribución
30
Dos imágenes físicas pueden ser idénticas, o sea, una imagen física
es copia de la otra: Rk =Rj
CLIEN1 = SLCIUDAD=’Armenia’CLIENTE
CLIEN2 = SLCIUDAD=’Pereira’CLIENTE
33
La cualificación es la siguiente:
CLIENTE.CIUDAD = ’Armenia’
q2: PART_DESP.CNUM = CLIENTE.CNUM AND
CLIENTE.CIUDAD = ’Pereira’
FRAGMENTACIÓN VERTICAL
FRAGMENTACIÓN MIXTA
VEND1
VEND2 VEND4
VEND3
Esquema Global:
CLIENTE (CNUM, NOMBRE, CIUDAD)
PARTE (PNUM, NOMBRE)
PART_DESP (CNUM, PNUM, DNUM, CANT)
VEND (VNUM, NOMBRE, SAL, COMM, JEFE, DNUM)
DEPEND (DNUM, NOMDEP, ZONA)
Esquema de Fragmentación:
CLIEN1 = SLCIUDAD=’Armenia’CLIENTE
CLIEN2 = SLCIUDAD=’Pereira’CLIENTE
PD1 = PART_DESP SJ CNUM=CNUM CLIEN1
PD2 = PART_DESP SJ CNUM=CNUM CLIEN2
VEND1 = SL DNUM ≤ 5 PJ VNUM,NOMBRE,JEFE,DNUM VEND
VEND2 = SL 5 < DNUM ≤ 10 PJ VNUM,NOMBRE,JEFE,DNUM VEND
VEND3 = SL DNUM > 10 PJ VNUM,NOMBRE,JEFE,DNUM VEND
VEND4 = PJ VNUM,NOMBRE,SAL,COMM VEND
DEP1 = SL DNUM ≤ 5 DEPEND
DEP2 = SL 5 < DNUM ≤ 10 DEPEND
DEP3 = SL DNUM > 10 DEPEND
Read($cnum);
SELECT nombre INTO $nombre
FROM cliente
WHERE cnum=$cnum;
Write($nombre);
FROM clien2
WHERE cnum=$cnum;
End;
Write($nombre);
Read($cnum);
SELECT nombre INTO $nombre
FROM clien1 AT SITE 1
WHERE cnum=$cnum;
If not #found then begin
SELECT nombre INTO $nombre
FROM clien2 AT SITE 3 /* se puede usar SITE 2 */
WHERE cnum=$cnum;
End;
Write($nombre);
Read($vnum);
SELECT nomdep INTO $nomdep
FROM vend, depend
WHERE vend.dnum = depend.dnum
AND vend.vnum = $vnum;
Write($nomdep);
Read($vnum);
SELECT nomdep INTO $nomdep
FROM vend1, dep1
39
Read($vnum);
SELECT dnum INTO $dnum
FROM vend1 AT SITE 4
WHERE vnum = $vnum;
If #found then begin
SELECT nomdep INTO $nomdep
FROM dep1 AT SITE 1
WHERE dnum=$dnum;
End;
Else begin
SELECT dnum INTO $dnum
FROM vend2 AT SITE 5
WHERE vnum = $vnum;
If #found then begin
SELECT nomdep INTO $nomdep
FROM dep2 AT SITE 2
WHERE dnum=$dnum;
End;
Else begin
SELECT dnum INTO $dnum
FROM vend3 AT SITE 6
WHERE vnum = $vnum;
SELECT nomdep INTO $nomdep
FROM dep3 AT SITE 3
WHERE dnum=$dnum;
End;
End;
Write($nomdep);
40
V1 = SL DNUM ≤ 5 (EMP)
V2 = SL DNUM > 5 (EMP)
UPDATE vend
SET dnum=8
WHERE vnum=79;
El programa sería:
EJERCICIOS RESUELTOS
Global:
EMPLEADO(NUMEMP, NOMBRE, DEPTO, SALARIO)
PROGRAMADOR(NUMEMP, LENGUAJE)
Fragmentación:
EMPLEADO1 = SLDEPTO ≤20EMPLEADO
EMPLEADO2 = SLDEPTO>20EMPLEADO
PROGRAMADOR1 = PROGRAMADOR SJNUMEMP=NUMEMPEMPLEADO1
PROGRAMADOR2 = PROGRAMADOR SJNUMEMP=NUMEMPEMPLEADO2
Asignación:
EMPLEADO1 EN SITIOS 1,2
EMPLEADO2 EN SITIOS 3,4
PROGRAMADOR1 EN SITIOS 5,6
PROGRAMADOR2 EN SITIOS 7,8
UPDATE empleado
SET depto = 25
WHERE numemp = 147;
EJERCICIOS PROPUESTOS
Esquema Global:
Fragmentación:
PROFESOR1 = SLPROGRAMA=’biologia’PROFESOR
PROFESOR2 = SLPROGRAMA=’matematicas’PROFESOR
PROFESOR3 = SLPROGRAMA=’fisica’PROFESOR
POSGRADUADO1 = POSGRADUADO SJID=IDPROFESOR1
POSGRADUADO2 = POSGRADUADO SJID=IDPROFESOR2
POSGRADUADO3 = POSGRADUADO SJID=IDPROFESOR3
Diseño de Bases de
Datos Distribuidas
60
DEFINICIONES
En cambio si se tuviera:
p1: Ciudad=’Armenia’
p2: Ciudad=’Pereira’
Grafo Total à Es aquel que tiene todos los enlaces posibles entre
los fragmentos de R y los de S.
R11
R12 R2
R13
S1
S 21 S 22 S 23
Bij = Σf kjnki
k
EJERCICIOS RESUELTOS
Sean los fragmentos R1, R2 y R3. Sean las aplicaciones A1, A2 y A3,
las cuales residen en los sitios S1, S2 y S3 respectivamente. La
aplicación A1 se ejecuta 4 veces al día, la A2 1 vez y A3 2 veces;
además una actualización cuesta 2 veces una consulta. Dónde
deben quedar los fragmentos, usando replicación y adicional
sabiendo lo siguiente?
d) R1 en sitios = S1, S3
e) R2 en sitios = S1
f) R3 en sitios = S1, S3
EJERCICIOS PROPUESTOS
Descomposición de Consultas
Globales en Fragmentadas
71
1. SLF1(SLF2(R)) à SLF2(SLF1(R))
2. SLF1(PJA2(R)) à PJA2(SLF1(R))
3. PJA1(SLF2(R)) à SLF2(PJA1(R)) Attr(F2)⊆A1
4. PJA1(PJA2(R)) à PJA2(PJA1(R)) A1≡A2
5. R UN S à S UN R
6. R CP S à S CP R
7. R JN F S à S JN F R
DF y JN no son conmutativas
8. (R UN S) UN T à R UN (S UN T)
9. (R CP S) CP T à R CP (S CP T)
10. (R JN F1 S) JN F2 T à R JN F1 (S JN F2 T) Attr(F2) ⊆ Attr(S)∪Attr(T)
DF y SJ no son asociativas
11. PJA(R) à PJA1PJA2(R) A≡A1, A⊆ A2
12. SLF(R) à SLF1SLF2(R) F= F1 AND F2
13. SLF(R UN S) à SLFR(R) UN SLFS(S) FR=F, FS=F
14. SLF(R DF S) à SLFR(R) DF SLFS(S) FR=F
15. SLF(R CP S) à SLFR(R) CP SLFS(S)
∃ FR, FS: (F=FR AND FS), Attr(FR)⊆R, Attr(FS)⊆S
16. SLF(R JN FJ S) à SLFR(R) JN FJ SLFS(S)
∃ FR, FS: (F=FR AND FS), Attr(FR)⊆R, Attr(FS)⊆S
17. SLF(R SJFJ S) à SLFR(R) SJ FJ SLFS(S) FR=F, FS=True
18. PJA(R UN S) à PJAR(R) UN PJAS(S) AR=A, AS=A
19. PJA(R CP S) à PJAR(R) CP PJAS(S)
AR=A-Attr(S), AS=A-Attr(R)
20. PJA(R JN FJ S) à PJAR(R) JN FJ PJAS(S)
AR=A-Attr(S), AS=A-Attr(R), Attr(FJ)⊆A
21. PJA(R SJFJ S) à PJAR(R) SJFJ PJAS(S)
AR=A, AS=Attr(S)∩Attr(FJ)
PJ no es distributiva con respecto a DF
22. SLFR(R) UN SLFS(S) à SLF(R UN S) F=FR, F=FS
23. SLFR(R) DF SLFS(S) à SLF(R DF S) F=FR, F=FS
24. SLFR(R) CP SLFS(S) à SLF(R CP S) F=FR AND FS
25. SLFR(R) JN FJ SLFS(S) à SLF(R JN FJ S) F=FR AND FS
26. SLFR(R) SJFJ SLFS(S) à SLF(R SJFJ S) F=FR, FS=True
27. PJAR(R) UN PJAS(S) à PJA(R UN S)
A=AR, A=AS, Attrib(R)=Attrib(S)
28. PJAR(R) CP PJAS(S) à PJA(R CP S) A=AR∪AS
29. PJAR(R) JN FJ PJAS(S) à PJA(R JN FJ S) A=AR∪AS
30. PJAR(R) SJFJ PJAS(S) à PJA(R SJFJ S) A=AR
PJ no es factorizable sobre DF
31. (R' UN R'')JN FJ(S' UN S'') ↔ ((R'JN FJ S') UN (R'JN FJ S'') UN (R''JN FJS') UN
(R''JN FJS''))
73
1. R NJN R ↔ R
75
2. R UN R ↔ R
3. R DF R ↔ ∅
4. R NJN SLFR ↔ SLFR
5. R UN SLFR ↔ R
6. R DF SLFR ↔ SLNOT FR
7. (SLF1R) NJN (SLF2R)↔ SLF1 AND F2R
8. (SLF1R) UN (SLF2R)↔ SLF1 OR F2R
9. (SLF1R) DF (SLF2R)↔ SLF1 AND NOT F2R
Criterio 3: Empujar las selecciones hacia las hojas del árbol, y luego
aplicar el álgebra de relaciones cualificadas. Cuando el resultado
de una cualificación sea contradictorio, debe reemplazarse por la
relación vacía.
PJNOMBRE, SALVEND
80
GBAVG(cant) SLPNUM=’p14’part_desp
GBcnum,pnum,SUM(cant) part_desp
SLSUM(cant)>300GBcnum,pnum,SUM(cant) part_desp
GBG,AF (R1 UN R2) à (GBG,AF R1) UN (GBG,AF R2), ∀i,j Gi⊆Rj ó Gi∩Rj=∅
82
R1 R2
cnum pnum dnum cant cnum pnum dnum cant
C1 P14 25 10 C2 P14 8 5
C1 P14 28 2 C2 P14 9 10
C1 P27 25 10 C2 P29 4 6
ENV1 ENV2
prov prod cant ciudad prov prod cant ciudad
S1 P1 10 Bogotá S1 P1 5 Madrid
S1 P1 2 Pereira S1 P1 3 Cádiz
S2 P1 8 Bogotá S1 P2 10 Valencia
S2 P1 6 Cartagena S2 P1 1 Madrid
Ejercicio propuesto:
min(s)=min(min(s1),... min(sN))
max(s)=max(max(s1 ),... max(sN))
sum(s)=sum(sum(s1),... sum(sN))
count(s)= sum(count(s1 ),... count(sN))
84
GBAVG(cant) SLPNUM=’p14’part_desp à
GBSUM(cant),COUNT SLPNUM=’p14’PD1
GBSUM(cant),COUNT SLPNUM=’p14’PD2
SLDNUM=$P1 OR DNUM=$P2DEPEND
ü Operaciones de entrada-salida
ü Operaciones de CPU
ü Cantidad de transmisión de datos entre sitios
EJERCICIOS PROPUESTOS
Ejercicio 1
PACIENTE(PNUM,NOMBRE,DEPT,TRATAMIENTO)
CUIDADO(PNUM,DROGA,CANT)
PACIENTE1=SLDEPT=’CIRUGIA’(PACIENTE)
PACIENTE2=SLDEPT=’PEDIATRIA’(PACIENTE)
CUIDADO1=CUIDADOSJPNUM=PNUMPACIENTE1
CUIDADO2= CUIDADOSJPNUM=PNUM PACIENTE2
Ejercicio 2
VENDEDOR(CODV,NOMBRE,ZONA)
PRODUCTO(CODPROD,CODV,CANT,VALOR)
MEDICO(CODM,NOMBRE,ESPEC,TRATAMIENTO,ZONA)
CONSULTORIO(CNUM,CODM,NUMCITAS,HORAINI)
VENDEDOR1=SLZONA=’NORTE’(VENDEDOR)
VENDEDOR2=SLZONA=’SUR’(VENDEDOR)
PROD1=PRODUCTOSJCODV=CODV VENDEDOR1
PROD2=PRODUCTOSJCODV=CODV VENDEDOR2
MEDICO1=SLESPEC=’CARDIOLOGIA’(MEDICO)
MEDICO2=SLESPEC=’NEUROLOGIA’(MEDICO)
CONSULTORIO1=CONSULTORIOSJ CODM=CODM MEDICO1
CONSULTORIO2= CONSULTORIOSJCODM=CODM MEDICO2
b) MEDICO2:
__________________________________________________________
c) CONSULTORIO1:
________________________________________________________
d) VENDEDOR2:
__________________________________________________________
a) QUERY TRANSFORMADO:
________________________________________________
b) QUERY TRANSFORMADO:
________________________________________________
PJNOMBRE (SLZONA=’NORTE’(VENDEDOR) DF
(VENDEDOR NSJ(SL CODPROD=1538(PRODUCTO))))
c) QUERY TRANSFORMADO:
_________________________________________________
Listar los vendedores del norte que atienden sólo a los cardiólogos:
d) QUERY TRANSFORMADO:
_________________________________________________
6
Manejo de Transacciones
Distribuidas
90
Cuando hay una caída del sistema, hay recuperación a una caída
o crash recovery.
ü Eficiencia
ü Confiabilidad
ü Concurrencia
NIVEL GLOBAL
CON AGENTES
Agente_raíz:
Agente1:
Soporte de un DDMBS
1. Tipos de fallas
i) Fallas sin pérdida de información: Toda la información en
memoria está disponible para recuperación. Ejemplo: Un
rollback de una transacción por algún error.
ii) Fallas con pérdida de información volátil: La información
del disco no es afectada. Estas fallas ocurren con las
caídas del sistema.
iii) Fallas con pérdida de información no volátil: La
información del disco se pierde debido a fallas en los
medios de almacenamiento.
iv) Fallas con pérdida de almacenamiento estable: Son fallas
simultáneas de dispositivos de almacenamiento no volátil
que soportan almacenamiento estable. Estas tienen una
probabilidad muy baja de que ocurran.
• Identificador de transacción
• Identificador de fila
• Tipo de acción (insert, update, delete)
• Valor anterior
• Valor nuevo
• Información auxiliar (dirección del registro anterior y otra)
• Primitivas begin_transaction, commit, Rollback.
4. Procedimientos de recuperación.
i) Buscar y leer, en el archivo de Log, el último registro
checkpoint.
ii) Incluir en una lista Undo todas las transacciones en el
momento del checkpoint. Iniciar una lista Redo vacía.
iii) Recorrer el archivo de Log hasta el final haciendo lo
siguiente: Si hay Begin_transaction registrar en la lista
Undo. Si hay Commit registrar en la lista Redo.
iv) Recorrer las listas haciendo undo y redo.
PROTOCOLO 2-PHASE-COMMIT
1. Modos de bloqueo:
a. Bloqueo Compartido (S o Shared) donde un dato
puede ser accesado por varias transacciones.
b. Bloqueo Exclusivo (X o eXclusive) donde un dato puede
ser accesado por sólo una transacción.
1. begin_transaction
2. bloqueos
3. operaciones
4. commit
5. liberar bloqueos
Alternativas de solución:
T1 à S
T2 à X X X X X
A A A A A
T1 T1 T1
A A A A A
T1 T2 T3
A T1 T2
B
B C
C T3
A
La recuperación y el 2PL
Modelo de Procesos
Modelo de Servidores
Las transacciones usan los servicios del proceso servidor por medio
de mensajes.
Datagramas
EJERCICIOS RESUELTOS
Completar:
Abrazo Mortal_
EJERCICIOS PROPUESTOS
Coordina
d Partic3
Partic1
WAN
Partic4
Partic2
108
Tiempo T1 T2
a) lock_X(A1) lock_X(A2)
b) lock_X(A3) lock_X(A4)
c) lock_X(A2) lock_X(A1)
d) lock_X(A4) lock_X(A3)
Control de Concurrencia
Distribuida
110
S = Ri(x) Ri(y) W i(z) Rj(z) Rk (x) Rk (y) Rk (z), donde los subíndices
identifican la transacción, R una operación de lectura y W una de
escritura.
Equivalencia de Itinerarios
Itinerario Local
EJERCICIO PROPUESTO
Nivel de Aplicación
Este nivel está formado por las interfaces de usuario como por
ejemplo, los web browsers, las aplicaciones desarrolladas en Forms
o, inclusive, lectores de códigos de barras. La aplicación inicia la
solicitud en el lado del cliente. Estas pueden ser de conexión, de
consulta o de actualización.
Nivel de Presentación
Nivel de Sesión
Esquema Global:
CLIENTE (CNUM, NOMBRE, CIUDAD)
PART_DESP (CNUM, PNUM, DNUM, CANT)
Esquema de Fragmentación:
CLIEN1 = SLCIUDAD=’Armenia’CLIENTE
CLIEN2 = SLCIUDAD=’Pereira’CLIENTE
PD1 = PART_DESP SJ CNUM=CNUM CLIEN1
PD2 = PART_DESP SJ CNUM=CNUM CLIEN2
Esquema de Asignación:
Sitio 1, con los fragmentos CLIEN1 y PD1
Sitio 2, con los fragmentos CLIEN2 y PD2
Menus: Contiene los menús y los objetos de cada uno tales como
items, parámetros y unidades de programa.
El Editor de Presentación
131
La Paleta de Propiedades