← Questões de Banco de Dados

Banco de Dados · FGV · 2023

Questão comentada de Banco de Dados

Considere o comando SQL a seguir. SELECT a.X, b.Y FROM T1 a, T2 b WHERE a.R = b.S Dado que essa consulta pode ser expressa usando as operações primitivas da Álgebra Relacional, a lista que contém as operações necessárias e suficientes para essa conversão é, em ordem alfabética:

Gabarito: D

Essa consulta SQL faz três coisas bem clássicas: junta as tabelas, filtra as linhas que casam e depois mostra só as colunas pedidas. Em álgebra relacional primitiva, isso vira exatamente Produto, Seleção e Projeção. Primeiro vem o produto cartesiano de T1 por T2, depois a seleção com a condição a.R = b.S, e por fim a projeção de a.X e b.Y. A lógica é simples: o SQL do tipo FROM T1 a, T2 b WHERE a.R = b.S já é o retrato de um join interno. Como o join pode ser expresso a partir das operações primitivas, você não precisa de operador de junção para resolver a questão. Basta combinar produto + seleção + projeção. Por isso o gabarito é a alternativa D. Em ordem alfabética, entre as operações necessárias e suficientes, aparecem Produto, Projeção e Seleção. É a fórmula básica da álgebra relacional para esse tipo de consulta: cruzar, filtrar e enxugar.

Continue treinando

Questões relacionadas