Created
September 13, 2017 20:40
-
-
Save eloisamec/251001b6439f8e966d34221e6084c676 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
1. Apresente a árvore de consulta otimizada para a expressão abaixo. Considere todos os dados de eleições da República do Brasil (desde 1892) cadastrados no banco consultado, 98% do número de doações a campanhas feitas por pessoas que não os próprios candidatos, 2% do número de doações com valor superior a 10.000, 1,5% das candidaturas em 2016 e 14% de pessoas rés. Considere ainda cada registro de Pessoa ocupando 256 bytes e índice primário por id<X> para cada tabela <X>, além de índice auxiliar por cada chave estrangeira, D.valor, C.ano e P.dtNasc. | |
SELECT P.*, SUM(D.valor) AS total, | |
COUNT (DISTINCT Cand.*) AS nroCands | |
FROM Pessoa AS P, Doacao AS D, Campanha AS C, Pessoa AS Cand | |
WHERE P.idP = D.idDoador AND D.idC = C.idC AND | |
C.idCand = Cand.idP AND P.idP = Cand.idP AND | |
D.valor > 10.000 AND C.ano > 2015 AND Cand.reu = ‘TRUE’ | |
GROUP BY P.* HAVING total > 100.000 | |
ORDER BY total, nroCands DESC; | |
2. Sejam 128 milhões de pessoas cadastradas, idP com 8 bytes, ponteiro para bloco com 7 bytes, ponteiro para registro com 8 bytes e registros de tamanho fixo. Quantos blocos de 1 Kbyte ocupa a tabela Pessoa da questão anterior? Quantos blocos ocupa o índice primário de Pessoa (por idP) implementado como uma B+-Tree com ocupação mínima de 50% de cada bloco (nodo)? Qual a sua profundidade de tal árvore? Mostre sucintamente sua solução. | |
3. Apresente a árvore de consulta relacional otimizada para a expressão em SQL abaixo. Considere dados históricos do Brasil desde 1892, CC.nome sendo chave candidata, incidência de tornados menor que 1% do número de catástrofes, cerca de 2% do número de investimentos em “prevenção de danos” e cerca de 5.3% dos municípios brasileiros com M.UF = 'SC'. Considere também a existência de índices primários em todas as tabelas, além de índices auxiliares por todas as chaves estrangeiras, C.data, CC.nome, F.tipo e M.UF. Indique algoritmos eficientes para executar operadores da estratégia proposta, em termos do número de tuplas em cada tabela (|I|, |F|, |M|, |C|, |CC|) e nos resultados de cada algoritmo. | |
SELECT M.nome, SUM (C.prejuizos) AS tp, SUM(I.valor) AS ti, tp / ti AS ip | |
FROM Investimento AS I, FinalidadeI AS F, Municipio AS M, Catastrofe AS C, ClasseC AS CC | |
WHERE I.idM = M.idM AND I.idF = F.idF AND F.idCC = CC.idCC AND M.idM = C.idM AND C.idCC = CC.idCC AND | |
C.data > '28/04/1914' AND CC.nome = “tornado” AND I.data < C.data AND F.tipo = 'prevenir danos' AND M.UF = 'SC' | |
GROUP BY M.nome HAVING ip > 0.1 ORDER BY ip DESCENDING ; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment