Pular para o conteúdo principal

Questão de Banco de Dados — Álgebra Relacional — FGV 2023

Banco de DadosÁlgebra Relacional
Código
fg161116
Banca
FGV
Órgão
ALEMA
Ano
2023
Cargo
TecGes Admin ( )

As regras de transformação gerais para operações da álgebra relacional são amplamente utilizadas pelos SGBDs relacionais para otimizações de consultas SQL.

 

Considerando duas relações, R e S, analise as afirmativas a seguir:

 

I. σC (R θ S) ≡ (σC (R) θ (σC (S)).

 

II. πLista 1(π Lista 2(...(π Lista n (R))...)) ≡ π Lista 1 (R).

 

III. σC1 AND C2 AND... Cn (R) ≡ σC1( σC2(...( σ Cn (R))...)).

 

Está correto o que se afirma em

  1. AI e II, apenas.
  2. BI, apenas.
  3. CII e III, apenas.
  4. DI e III, apenas.
  5. EI, II e III.
Revelar gabarito e comentário

GabaritoE — I, II e III.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Álgebra Relacional: Regras de Transformação e Otimização de Consultas

Gabarito: letra E. As três afirmativas estão corretas: a seleção comuta com o produto cartesiano (I), a projeção em cascata equivale à projeção final (II) e a seleção com conjunção de condições pode ser decomposta em seleções sucessivas (III). Essas são regras clássicas de equivalência usadas pelos otimizadores de consulta dos SGBDs relacionais.

A álgebra relacional é uma linguagem formal de consulta composta por operações que recebem uma ou duas relações (tabelas) como entrada e produzem uma nova relação como saída. Essa propriedade, chamada de fechamento, é o que permite aninhar expressões e, consequentemente, aplicar as regras de transformação que a questão cobra. As operações básicas incluem seleção (σ), projeção (π), produto cartesiano (×), união (∪), diferença (−), renomeação (ρ), junção (⋈), interseção (∩) e divisão (÷).

As regras de equivalência são fundamentais para a otimização de consultas: o otimizador do SGBD reescreve a consulta em uma forma equivalente, porém mais eficiente, antes de executá-la. Por exemplo, aplicar a seleção o mais cedo possível reduz o número de tuplas processadas nas operações seguintes, diminuindo o custo de E/S e de processamento.

Vamos analisar cada afirmativa em detalhes.

Afirmativas CorretasAfirmativas Incorretas300LEVELsoulevel.com.br
Regras de Transformação — só Afirmativas Corretas: 3; só Afirmativas Incorretas: 0; Afirmativas Corretas∩Afirmativas Incorretas: 0

Item I — ✅ Correto

A afirmativa I afirma que σC (R θ S) ≡ (σC (R) θ (σC (S)), onde θ representa um operador binário como produto cartesiano (×), junção (⋈) ou união (∪). Essa equivalência é válida quando a condição C se refere apenas a atributos de R ou de S, e não a atributos de ambas as relações simultaneamente. Nesse caso, a seleção pode ser empurrada para dentro da operação binária, filtrando cada relação antes de combiná-las. Isso é uma das regras mais importantes de otimização, pois reduz drasticamente o tamanho das relações intermediárias.

Item II — ✅ Correto

A afirmativa II afirma que πLista1(πLista2(...(πListan(R))...)) ≡ πLista1(R). Isso é verdadeiro porque a projeção remove atributos, e aplicar várias projeções em sequência é equivalente a aplicar apenas a projeção final, desde que a lista de atributos da projeção mais externa (Lista1) seja um subconjunto das listas internas. Em outras palavras, projeções em cascata podem ser colapsadas em uma única projeção com a lista final de atributos desejados. Essa regra também é usada pelos otimizadores para simplificar expressões.

Item III — ✅ Correto

A afirmativa III afirma que σC1 AND C2 AND... Cn (R) ≡ σC1(σC2(...(σCn(R))...)). Isso é verdadeiro porque a seleção é uma operação que filtra tuplas com base em um predicado, e a conjunção de condições pode ser decomposta em seleções sucessivas, cada uma aplicando uma condição. A ordem das seleções não altera o resultado final, pois todas as condições são independentes. Essa regra permite que o otimizador escolha a ordem mais eficiente de aplicar as condições, por exemplo, aplicando primeiro as condições mais seletivas.

Conclusão: As três afirmativas estão corretas, portanto a alternativa correta é a letra E.

Gabarito: letra E

Link permanente: /questoes/fg161116