Bacharelado em Ciência da Computação – UFU Disciplina GBC053 – Gerência de Banco de Dados Profa. Sandra de Amo Exercícios – AULA 17 Exercício 1: Considere duas relações R(A,C,D) e S(B,E,F) e a consulta SQL SELECT * FROM R, S WHERE R.A = S.B (Trata-se portanto de se fazer a junção das tabelas R e S pela condição de junção R.A = S.B) O custo da consulta é calculado em termos de I/O, ignorando-se o custo de gravar o resultado em disco. R contém 10.000 tuplas e 10 tuplas por página S contém 2000 tuplas e 10 tuplas por página O atributo B de S é sua chave primária As relações estão armazenadas como arquivos sequenciais (heap files) Nenhuma destas relações tem qualquer índice. Tem-se 52 páginas disponíveis no buffer. Pergunta-se: 1. Qual o custo desta consulta usando Nested Loops Join orientado à página ? Qual o número mínimo de páginas que é necessário ter disponível no buffer para que este custo permaneça inalterado ? 2. Qual o custo desta consulta usando BNL ? Qual o número mínimo de páginas que é necessário ter disponível no buffer para que este custo permaneça inalterado ? 3. Supondo que se construa um índice hash agrupado na relação S, com chave no attributo B, qual seria o custo da consulta ? 4. Supondo que se construa um índice agrupado B-tree na relação S, com chave no attributo B, qual seria o custo da consulta ? 5. Seria interessante ter um índice na relação R com chave em A, ao invés do indice na relação S com chave em B? 6. Qual o custo de se ordenar os elementos de S pelo atributo B ? 7. Qual o custo de se ordenar os elementos de R pelo atributo A ? Exercício 2: Calcule os custos das seguintes variantes do algoritmo BNL: Para cada R-page faça Para cada bloco de (B-2) páginas in memory de S-page faça se ri = sj então insere <r,s> em Result Retorna Result Para cada bloco de (B-2) páginas in memory de S-page faça Para cada R-page faça se ri = sj então insere <r,s> em Result Retorna Result Exercício 3 Calcule o custo da seguinte variante do algoritmo BNL: Utilizar (B-2)/2 páginas para alocar um bloco de R e (B-2)/2 páginas para alocar um bloco da relação interna S. Calcular o custo neste caso. Onde há melhora de performance em relação ao método onde 1 única página em memória é alocada para a relação S e B-2 páginas para a relação R ?