Bootstrap

O banco de dados de um sistema de controlebancário implementado por meio de um SGBD relacionalpossui

Felipe

- Enem

O banco de dados de um sistema de controlebancário implementado por meio de um SGBD relacionalpossui a relação Cliente, com as informaçõesapresentadas a seguir, em que a chave primária darelação é grifada. Cliente(nroCliente, nome, endereco, data_nascimento, renda, idade)Para essa relação, foram criados dois índicessecundários: IndiceIdade, para o atributo idade, eIndiceRenda, para o atributo renda. Existe um tipo deserviço nesse banco cujo alvo são tanto os clientes quepossuem menos de 40 anos de idade quanto aqueles quepossuem renda mensal superior a 30.000 reais. Pararecuperar esses clientes, a seguinte expressão deconsulta em SQL foi utilizada:SELECT nome, enderecoFROM ClienteWHERE idade < 40 OR renda > 30000;Com o aumento do número de clientes dessebanco, essa consulta passou a apresentar problemas dedesempenho. Verificou-se, então, que o otimizador deconsultas não considerava os índices existentes paraidade e renda, e a consulta era realizada mediantevarredura seqüencial na relação Cliente, tornando essaconsulta onerosa. O plano de execução da consulta, usado pelo otimizador, é apresentado na árvore deconsulta abaixo, na qual B e F representam as operaçõesde projeção e de seleção, respectivamente. Para que o otimizador de consultas passasse autilizar os índices, a solução encontrada foi elaborar aconsulta em dois blocos separados — um que recupera osclientes com idade inferior a 40 anos, e outro querecupera os clientes com renda mensal superior a 30.000reais — para, então, juntar as tuplas das duas relaçõesgeradas. Considerando a situação apresentada, faça o que se pedea seguir. A Escreva o código de uma consulta em SQL quecorresponda à solução proposta. B Desenhe a árvore de consulta para essa solução.

#ENADE


O banco de dados de um sistema de controlebancário implementado por meio de um SGBD relacionalpossui

1 Resposta

Gustastrada

Podemos afirmar que na alternativa a) teremos que tratar da técnica de otimização que consiste em substituir disjunções (OR) entre colunas indexadas por UNION e para b) πnome, endereço "U".

Vamos aos dados/resoluções:  

Para a)temos:  

SELECT nome,endereco  

FROM Cliente

WHERE idade < 40  

UNION

SELECT nome, endereco

FROM Cliente

WHERE renda > 3000;

Para b) veremos que  πnome, endereço "U" se "dividindo" para  Ωidade < 40 ; Ωrenda > 3000 no caso em específico para cada cliente.

espero ter ajudado nos estudos, bom dia :)

Mais perguntas de Enem