Questão de Banco de Dados — Modelagem e Mapeamento ER-relacional — FUNDATEC 2024
Banco de Dados›Modelagem e Mapeamento ER-relacional
Código
qa630706
Banca
FUNDATEC
Órgão
CETENE
Ano
2024
Cargo
Tecno P ( )
Para responder a questão abaixo, considere o modelo entidade-relacionamento (ER) apresentado pela figura abaixo:
Figura 1 - Modelo entidade - realcionamento (ER)
Considerando o modelo ER apresentado pela Figura 1, analise a expressão SQL e as assertivas abaixo e assinale a alternativa correta.
select uni_descricao, reg_descricao
from Regiao R
inner join Unidade U on R.reg_id = U.reg_id
order by 1
I. Relaciona as entidades uni_descricao e reg_descricao.
II. Apresenta uni_descricao de cada Unidade, bem como reg_descricao de Regiao.
III. Ordena o resultado pela primeira coluna da cláusula select.
ATodas as assertivas estão corretas.
BTodas as assertivas estão incorretas.
CApenas a assertiva III está correta.
DApenas as assertivas I e II estão corretas.
EApenas as assertivas II e III estão corretas.
Revelar gabarito e comentário▾
GabaritoE — Apenas as assertivas II e III estão corretas.
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”.
Consulta SQL com JOIN e ORDER BY
Gabarito: letra E — corretas apenas as assertivas II e III. A consulta apresentada realiza um INNER JOIN entre as tabelas Regiao e Unidade, selecionando as colunas uni_descricao e reg_descricao, e ordena o resultado pela primeira coluna da lista de seleção. A assertiva I está incorreta porque a consulta não "relaciona as entidades uni_descricao e reg_descricao" — ela relaciona as tabelasRegiao e Unidade por meio da chave reg_id, e as colunas citadas são apenas os atributos selecionados para exibição.
O comando SELECT é a instrução fundamental da linguagem SQL para consultar dados. A cláusula FROM indica a tabela de origem, e o INNER JOIN combina registros de duas tabelas com base em uma condição de igualdade — aqui, R.reg_id = U.reg_id. Isso significa que apenas as linhas que possuem correspondência na chave reg_id em ambas as tabelas aparecem no resultado. A lista de colunas após o SELECT define quais atributos serão exibidos: uni_descricao (descrição da unidade) e reg_descricao (descrição da região).
A cláusula ORDER BY 1 é um atalho sintático que ordena o resultado pela primeira coluna da lista de seleção — neste caso, uni_descricao. Essa é uma forma válida e comum de ordenação, equivalente a escrever ORDER BY uni_descricao. A ordenação padrão é crescente (ASC), e a coluna de ordenação não precisa estar necessariamente na lista de seleção, embora aqui esteja.
A pegadinha da questão está na assertiva I: ela usa o termo "entidades" de forma imprecisa. No contexto do modelo relacional, a consulta opera sobre tabelas (relações), não sobre entidades do modelo conceitual. As entidades Regiao e Unidade do diagrama ER foram mapeadas para tabelas, e o JOIN relaciona essas tabelas pela chave estrangeira. A assertiva I confunde o nível conceitual (entidades) com o nível lógico (tabelas) e ainda troca o objeto do relacionamento: o JOIN não relaciona as colunas uni_descricao e reg_descricao, mas sim as tabelas por reg_id.
Guarde a distinção entre o que a consulta faz (relaciona tabelas por chave, seleciona colunas, ordena) e o que cada assertiva afirma — é exatamente nessa fronteira que as alternativas se dividem.
Assertiva I — ❌ Incorreta
A assertiva afirma que a consulta "relaciona as entidades uni_descricao e reg_descricao". Isso está errado por dois motivos: primeiro, uni_descricao e reg_descricao são colunas (atributos), não entidades; segundo, o INNER JOIN relaciona as tabelasRegiao e Unidade pela condição R.reg_id = U.reg_id, e não as colunas citadas. As colunas são apenas os campos selecionados para exibição no resultado.
Assertiva II — ✅ Correta
A assertiva afirma que a consulta "apresenta uni_descricao de cada Unidade, bem como reg_descricao de Regiao". Isso está correto: a lista de seleção select uni_descricao, reg_descricao exibe exatamente esses dois atributos, provenientes das tabelas Unidade e Regiao, respectivamente. O INNER JOIN garante que apenas as unidades que possuem região correspondente apareçam, mas a projeção das colunas é exatamente a descrita.
Assertiva III — ✅ Correta
A assertiva afirma que a consulta "ordena o resultado pela primeira coluna da cláusula select". Isso está correto: a cláusula order by 1 é uma referência posicional que ordena o resultado pela primeira coluna da lista de seleção, que é uni_descricao. É equivalente a escrever ORDER BY uni_descricao, e a ordenação padrão é crescente.
Conclusão: corretas apenas as assertivas II e III → portanto, a alternativa correta é a letra E.