Conceptos generales de Fragmentación

Anuncio
FRAGMENTACION
Fragmentación
Fragmentación
es la descomposición o
partición de una tabla en pedazos llamados
fragmentos.
La fragmentación básicamente se puede hacer
de dos formas:
+ Fragmentación Horizontal. selecciona
registros completos de una relación
+ Fragmentación Vertical. selecciona
columnas completas de una relación
Reglas a Cumplir por Fragmentación
Condición de Completes.
Todos los datos de la relación global
deberán ser mapeados a algún fragmento.
Condición de Reconstrucción.
Deberá ser siempre posible reconstruir la
relación global a partir de sus fragmentos.
Condición de Conjuntos Disjuntos.
Es conveniente que los fragmentos sean
disjuntos.
Fragmentación Horizontal
Definir fragmentos horizontales se hace a
través del operador de selección del algebra
relacional operando sobre una relación global.
S
Ejemplo:
SNUM NOMBRE CD
S1
S2
S3
S4
S5
X
Y
Z
A
B
L
L
P
P
L
FH1
FH1= S WHERE CD=‘L’
FH2= S WHERE CD=‘P’
FH2
SNUM NOMBRE CD
S1
S2
S5
Una posible fragmentación Horizontal
de esta tabla sería la sig:
X
Y
B
L
L
L
SNUM NOMBRE CD
S3
S4
Z
A
P
P
Fragmentación Horizontal
Los predicados que nos permiten definir una
fragmentación de una relación son llamados la
calificación de la fragmentación. En el ejemplo
la calificación de la fragmetación hecha a S, son:
q1 : CD = ‘L’
q2 : CD = ‘P’
En general una fragmentación horizontal es
correcta, si cumple que:
El conjunto de calificaciones mapea todo el
dominio del atributo(s) bajo el cual se hace la
calificación.
Fragmentación Horizontal
Si siempre es posible reconstruir la tabla
global por medio del operador UNION del
algebra relaciónal:
R = F1 UNION F2 UNION …UNION Fn
Si todas las calificaciones de los fragmentos
son mutuamente exclusivas, es decir, si al
aplicar las calificaciones se producen
fragmentos que al intersectarlos generan un
conjunto vacio.
Φ = F1 INTERSECT F2 INTERSECT ..
INTESECT Fn
Fragmentación Horizontal Derivada
Este tipo de fragmentación particiona una tabla
en base a un atributo(s) que esta presente en
otra tabla(s).
Ejemplo:
SP
S# P#
DEPT# CANT
Fragmentar a SP de acuerdo a la ciudad del provedor.
Pero ciudad no esta en SP, como le hacemos ?
Debemos hacer un JOIN de SP y S y proceder a
realizar la fragmentación horizontal.
Fragmentación Horizontal Derivada
Los fragmentos se definirian de la sig. manera:
FDH1 = ((S JOIN SP) Where Cd = ‘L’)[SP.*]
FDH2 = ((S JOIN SP) Where Cd = ‘P’)[SP.*]
FDH1
S
SP
S#
S# P# DEPT# CANT
S1
S2
S3
S4
S5
S1
S1
S2
S2
S3
S4
S4
S4
P1
P3
P1
P2
P3
P4
P5
P6
D1
D1
D2
D2
D1
D2
D3
D1
100
100
50
200
100
50
100
50
S# P# DEPT# CANT
NOMBRE CD
X
Y
Z
A
B
L
L
P
P
L
S1
S1
S2
S2
P1
P3
P1
P2
D1
D1
D2
D2
100
100
50
200
S# P# DEPT# CANT
FDH2
S3
S4
S4
S4
P3
P4
P5
P6
D1
D2
D3
D1
100
50
100
50
Fragmentación Vertical
Definir fragmentos verticales se hace a través
del operador de proyección del algebra
relacional operando sobre una relación global.
Ejemplo: E
EMP# NOMBRE SALARIO IMPTO. #JEFE DEPT#
e1
e2
e3
e4
e5
X
Y
Z
A
B
1000
1500
500
4000
2000
100
300
20
1000
350
J1
J1
J2
J3
J2
D1
D1
D2
D3
D2
EMP# NOMBRE. #JEFE
DEPT#
EMP# SALARIO IMPTO
e1
e2
e3
e4
e5
D1
D1
D2
D3
D2
e1
e2
e3
e4
e5
X
Y
Z
A
B
J1
J1
J2
J3
J2
1000
1500
500
4000
2000
100
300
20
1000
350
Fragmentación Vertical
Una
característica
importante
de
la
fragmentación vertical, es que todos los
fragmentos deben incluir la llave primaria de la
relación global.
La razón es que si no incluímos la llave primaria
no es posible reconstruir la relación original.
Para reconstruir la relación original debemos
realizar un JOIN de todos los fragmentos.
R = F1 JOIN F2 JOIN … JOIN F3
En fragmentación vertical no se cumple que los
fragmentos sean disjuntos (la llave está repetida
en todos los fragmentos).
Fragmentación Híbrida
Consiste en aplicar las operaciones de
fragmentación vistas anteriormente de
manera recursiva, satisfaciendo las
condiciones de correctés cada vez que se
realiza la fragmentación.
La reconstrucción puede ser obtenida
aplicando las reglas de reconstrucción en
orden inverso.
De esta forma podemos fragmentar nuestra
tabla global en los pedazos que queramos y
como queramos.
Fragmentación Híbrida
Ejemplo: Considere la relación de empleado (E).
Una posible fragmentación híbrida sería:
E1 = Ex[Emp#, Nombre, #Jefe,Dept#] Where Dept# <10
E2 = Ex[Emp#, Nombre, #Jefe,Dept#] Where Dept# >=10
And Dept# <=20
E3 = Ex[Emp#, Nombre, #Jefe,Dept#] Where Dept# >20
E4 = E[Emp#, Salario, Impto]
Descargar