As relações abaixo compõem uma base de dados em que atributo...

Próximas questões
Com base no mesmo assunto
Q287842 Banco de Dados
As relações abaixo compõem uma base de dados em que atributos sublinhados são identificadores e atributos em itálico são chaves estrangeiras.

Autor (CPFAutor, Nome, DataNascimento)

Obra (TituloObra, DataConclusao, CPFAutor, CodigoAssunto)

Editora (CNPJEditora, Nome, Local)

Publicacao (TituloObra, CNPJEditora, DataLancamento )

Assunto (CodigoAssunto, Descricao)

Que comando SQL apresenta como resultado a quantidade de publicações do assunto ‘Policial’ por editora?


Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: B

Tema central: A questão exige que você saiba realizar consultas SQL relacionando várias tabelas com joins e condições de filtro, além de agrupar e contar resultados. São competências essenciais para concursos na área de bancos de dados e estão de acordo com o padrão COBRAK e livros como "Fundamentos de Sistemas de Banco de Dados" (Elmasri & Navathe).

Resumo teórico: Para contar publicações de um determinado assunto por editora, é preciso:

  • Relacionar as tabelas Publicacao, Obra e Assunto pelos campos correspondentes (chaves estrangeiras).
  • Filtrar o Assunto desejado (‘Policial’).
  • Agrupar pelo identificador da editora (CNPJEditora).
  • Utilizar COUNT para obter a quantidade de publicações.

Justificativa da alternativa correta (B):

A alternativa B faz exatamente isso. Ela:

  • Relaciona as tabelas exigidas usando WHERE (forma ainda aceita e frequente em provas).
  • Filtra o resultado para assunto ‘Policial’.
  • Utiliza GROUP BY para separar por editora.
  • Utiliza COUNT(P.TituloObra) para contabilizar as obras de cada editora sobre o assunto.

Esta escrita está correta e apresenta a resposta esperada pela banca.

Análise das alternativas incorretas:

A – Não utiliza GROUP BY, então não agrupa corretamente os resultados por editora.

C – Não faz os joins necessários entre as tabelas; além disso, HAVING é usado sem GROUP BY e sem filtro adequado, o que pode gerar resultados errados ou erros de execução.

D – Usa SUM(P.TituloObra), porém TituloObra não é campo numérico, então não faz sentido somar; o correto é COUNT.

E – Usa LEFT OUTER JOIN sem filtrar o assunto, agrupando todas as editoras, inclusive aquelas que não possuem obras do assunto ‘Policial’.

Estratégias de interpretação:

  • Busque sempre os relacionamentos necessários (joins) para cruzar informações.
  • Atente para o uso correto de funções de agregação e GROUP BY.
  • Marque alternativas que filtram corretamente a condição pedida (aqui, assunto ‘Policial’).
  • Desconfie de uso indevido de funções como SUM em campos não numéricos.

Gostou do comentário? Deixe sua avaliação aqui embaixo!

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo