Gabarito disponível
● CONTRIBUINTE(CPF_CNPJ, Nome_RazaoSocial, Endereco, InscricaoEstadual);
● TRIBUTO(CodigoTributo, NomeTributo, AliquotaBase);
● LANCAMENTO_FISCAL(IDLancamento, DataVencimento, ValorDevido, CPF_CNPJ, CodigoTributo).
Um agente fazendário de TI da referida secretaria deseja obter, em álgebra relacional, o nome e o valor devido de todos os contribuintes que possuem lançamentos fiscais referentes ao tributo denominado ICMS. Para tal fim, serão utilizadas as operações de seleção (σ), projeção (π) e junção (⋈). Sabe-se que a aplicação precoce de seleções é uma forma de otimização da consulta.
A partir das informações da situação precedente e considerando que a ordem de execução das operações está indicada explicitamente pelos parênteses, assinale a opção que representa corretamente a expressão, em álgebra relacional, cujo resultado será o desejado pelo agente fazendário.
Resolução comentada
Seleção precoce sobre TRIBUTO antes das junções, projetando ao final nome e valor devido.
Para otimizar, a seleção σ NomeTributo='ICMS' deve ser aplicada o mais cedo possível, diretamente sobre TRIBUTO, reduzindo o tamanho da relação antes das junções. A projeção de Nome_RazaoSocial e ValorDevido vem por último, pois depende dos atributos de CONTRIBUINTE e LANCAMENTO_FISCAL. A alternativa E faz exatamente isso, com a ordem indicada pelos parênteses.
Análise das alternativas
A) A seleção é aplicada só depois das junções, sem otimização precoce. B) e C) A projeção ocorre antes da seleção e elimina NomeTributo, de modo que a seleção não tem como ser aplicada (e as duas são idênticas). D) Usa a seleção precoce, mas junta TRIBUTO com LANCAMENTO_FISCAL e depois com CONTRIBUINTE; embora o resultado seja equivalente, o gabarito oficial considera correta a E, que segue a ordem de execução explicitada com os parênteses.
Referência: Álgebra relacional: otimização de consultas (seleção antecipada); Elmasri & Navathe; Silberschatz.
Resolução comentada do VaiConcursos.