Pular para o conteúdo principal

Questão de Banco de Dados — Modelagem e Mapeamento ER-relacional — FUNDATEC 2024

Banco de DadosModelagem 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:

Imagem associada para resolução da questão

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.


  1. ATodas as assertivas estão corretas.
  2. BTodas as assertivas estão incorretas.
  3. CApenas a assertiva III está correta.
  4. DApenas as assertivas I e II estão corretas.
  5. 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 tabelas Regiao 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 tabelas Regiao 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.

Gabarito: letra E

Link permanente: /questoes/qa630706