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?)