TIN0036 – Bancos de Dados Distribuídos e Data

Propaganda
TIN0036 – Bancos de Dados Distribuídos e Data Warehousing
PRIMEIRA LISTA DE EXERCÍCIOS
Individual
GABARITO
1. Dada a relação EMP, sejam
p1: TITLE < “Programmer” e p2: TITLE > “Programmer”
dois predicados simples. Assuma que cadeias de caracteres tenham uma ordem alfabética.
a) Faça uma fragmentação horizontal de EMP em relação a {p1, p2}
A relação EMP será fragmentada em duas relações EMP1 (com TITLE < “Programmer”) e
EMP2 (com TITLE > “Programmer”). (mostrar o conteúdo das relações)
b) Explique se e por que a fragmentação resultante {EMP1, EMP2} atende às regras
de corretude da fragmentação.
Como nem EMP1 nem EMP2 contém tuplas com TITLE = “Programmer”, a fragmentação
resultante não é correta porque
b1) não atende à propriedade de completude, isto é, há itens de EMP que não aparece em
nenhum dos fragmentos;
b2) não atende à propriedade de reconstrução, pois EMP ≠ EMP1 ∪ EMP2
c) Modifique os predicados {p1, p2} de modo que eles particionem EMP obedecendo
às regras de corretude da fragmentação. Para tal, componha os predicados minterm
a partir dos predicados simples modificados, deduza as correspondentes
implicações e realize a fragmentação horizontal de EMP baseada nos predicados
minterm. Finalmente, demonstre que o resultado possui as propriedades de
completeza, reconstrução e disjunção.
Os predicados deveriam ser, por exemplo,
p1: TITLE < “Programmer” e p2: TITLE ≥ “Programmer”
Pr = {p1, p2} seria um conjunto de predicados simples completo e mínimo (Pr’ = Pr)
Os predicados minterm seriam os próprios predicados simples, uma vez que m1 = NOT (m2).
A fragmentação horizontal baseada nos predicados minterm incluiria todas as tuplas da
relação original e atenderia às regras de corretude da fragmentação:
- completeza: (Pr’ = Pr) é completo e mínimo
- reconstrução: EMP = EMP1 ∪ EMP2
- disjunção: os predicados minterm são mutuamente exclusivos
(mostrar o conteúdo das relações)
2. Dada a relação de alocações ASG, suponha que há duas aplicações que a acessam. A
primeira, executada de cinco sites, tenta encontrar a duração (DUR) das alocações de
empregados, dados os seus números (ENO). A segunda aplicação é executada de dois
sites onde os empregados com uma duração de alocação de menos de 20 meses são
gerenciados em um site, enquanto aqueles com duração mais longa são gerenciados
num outro site. Obtenha a fragmentação horizontal primária de ASG usando a
informação acima.
A primeira aplicação é irrelevante para a fragmentação horizontal, uma vez que não envolve
predicados simples. Portanto, a fragmentação será baseada apenas nos predicados simples da
segunda aplicação
p1: DUR < 20 e p2: DUR ≥ 20
que formam um conjunto completo e mínimo, a exemplo do exercício anterior, resultando em
fragmentos ASG1 e ASG2, que atendem às regras de corretude da fragmentação.
(mostrar o conteúdo das relações)
3. No exemplo apresentado em aula, a relação PAY havia sido fragmentada com relação
aos predicados p1: SAL < 30000 e p2: SAL >= 30000, obtendo-se {PAY1, PAY2}..
Em seguida, foi realizada a fragmentação horizontal derivada em EMP, resultando nos
fragmentos derivados {EMP1, EMP2}. Suponha que uma aplicação execute a seguinte
consulta em cada site onde os empregados são gerenciados:
SELECT
FROM
WHERE
RESP, DUR
ASG, EMPi
ASG.ENO = EMPi.ENO
onde i = 1 ou i = 2, dependendo de qual site a consulta é originada. Realize, passo a
passo, a fragmentação horizontal derivada de ASG com base na fragmentação de
EMP, apresentando as regras de corretude da fragmentação.
Aqui, há um link L entre EMP e ASG, onde owner(L) = EMP e member(L) = ASG
EMP1
ENO
ENAME
TITLE
E3
E4
E7
A. Lee
J. Miller
R. Davis
Mech. Eng.
Programmer
Mech. Eng.
EMP2
ENO
ENAME
TITLE
E1
E2
E5
E6
E8
J. Doe
M. Smith
B. Casey
L. Chu
J. Jones
Elect. Eng.
Syst. Anal.
Syst. Anal.
Elect. Eng.
Syst. Anal.
A fragmentação derivada de ASG é definida por
ASG1 = ASG semijoin EMP1
ASG2 = ASG semijoin EMP2
(mostrar o conteúdo das relações)
A fragmentação é CORRETA, uma vez que:
- a integridade referencial entre ASG1 e EMP1 e entre ASG2 e EMP2 é preservada;
- A relação ASG pode ser totalmente reconstruída através da operação de união dos
fragmentos ASG = ASG1 ∪ ASG2
- e a propriedade de disjunção é obedecida.
4. Seja Q = {q1, q2, q3, q4, q5} um conjunto de aplicações, A = {A1, A2, A3, A4, A5} um
conjunto de atributos e S = {S1, S2, S3} um conjunto de sites. As matrizes abaixo
descrevem, respectivamente, os valores de uso dos atributos nas consultas e as
freqüências de acesso a aplicações nos sites. Assuma que o número de acessos a
atributos por execução de cada aplicação em cada site seja igual 1, e que A1 seja o
atributo chave. Use os algoritmos de fragmentação vertical para obter uma
fragmentação do conjunto de atributos em A.
A1
0
1
1
0
1
A2
1
1
0
0
1
A3
1
1
0
1
1
S1
q1 10
q2 5
q3 0
q4 0
q5 0
S2
20
0
35
10
15
S3
0
10
5
0
0
q1
q2
q3
q4
q5
A4
0
0
1
0
0
A5
1
1
1
0
0
Resposta:
Matriz de afinidade de atributos (AA)
A1
A2
A3
A4
A5
A1
70
30
30
40
55
A2
30
60
60
0
45
A3
30
60
70
0
45
A4
40
0
0
40
40
A5
55
45
45
40
85
Agrupamento após aplicação do algoritmo Bond Energy (BEA)
A4
A1
A5
A3
A2
A4
40
40
40
0
0
A1
40
70
55
30
30
A5
40
55
85
45
45
A3
0
30
45
70
60
A2
0
30
45
60
60
Portanto, a fragmentação resultante consiste de dois fragmentos verticais R1 e R2 da relação
original R com os seguintes atributos:
R1 {A1, A4, A5} e R2 {A1, A2, A3}
5. Refaça o exercício sobre alocação usando os métodos “Best Fit Site” e “All Benefitial
Sites”, usando as seguintes características das aplicações.
Transa
ção
Site(s)
Frequência
Acessos a tabelas (Leituras,
Escritas)
T1
S1,S2
2
4 em R1 (3L, 1E)
2 em R2 (2L)
T2
S2,S3
2
2 em R1 (2L)
4 em R3 (3L, 1E)
T3
S3,S4,S5
1
4 em R2 (3L, 1E)
2 em R3 (2L)
BEST FIT SITE
TABELA
R1
R2
R3
Site
S1
S2
S3
S4
S5
S1
S2
S3
S4
S5
S1
S2
S3
S4
S5
T1(F)
3L,1E( 2 )
3L,1E( 2 )
0
0
0
2L(2)
2L(2)
0
0
0
0
0
0
0
0
T2(F)
0
2L(2)
2L(2)
0
0
0
0
0
0
0
0
3L,1E( 2 )
3L,1E( 2 )
0
0
T3(F)
0
0
0
0
0
0
0
3L,1E(1)
3L,1E(1)
3L,1E(1)
0
0
2L(1)
2L(1)
2L(1)
Total Ref Locais
8
12 (alocado)
4
0
0
4
4
4
4
4
0
8
10 (alocado)
2
2
OBS: R2 poderia ser alocado em S4 ou S5 (explicar por que não em S1, S2 ou S3)
TABELA
R1
R2
R3
Site
S1
S2
S3
S4
S5
S1
S2
S3
S4
S5
S1
S2
S3
S4
S5
Custo (ms)
1500
1500
2400
2400
2400
2100
2100
1600
1600
1600
4400
2700
2700
4400
4400
Benefício (ms)
2400
4000
1600
0
0
2000
2000
1500
1500
1500
0
4800
6400
1600
1600
As relações estão alocadas nos sites respectivos em vermelho, onde o benefício é maior do
que o custo.
Obs: Há um problema na alocação de R2, pois em nenhum site o benefício é maior do que o
custo. Um critério seria alocar R2 no(s) site(s) onde o “prejuízo” for menor, mas neste caso,
todos os “prejuízos” são iguais a 100. Qualquer solução estaria correta (desde que R2 seja
alocado em pelo menos um site) mas o mais adequado seria alocar em S4 e S5 (por que?)
Download