Pular para o conteúdo principal

Questão de Banco de Dados — DataMart — FGV 2024

Banco de DadosDataMart
Código
fg075968
Banca
FGV
Órgão
AL-TO
Ano
2024
Nível
Superior
Cargo
Analista Legislativo - Desenvolvimento de Sistema
Para analisar as vendas dos vários livros correspondentes a vários autores em uma rede de livrarias, construiu-se um DataMart com uma nova tabela "FATO" que armazenará os preços dos livros, chamada #VendaLivro (LivroID, AutorID, PrecoVenda).Assinale a opção que descreve a ação correta para incluir esta nova tabela no banco de dados, considerando que já há dados nas tabelas #Livro e #Autor.
  1. ACREATE TABLE #VendaLivro (LivroID INT,AutorID INT,PrecoVenda DECIMAL(10, 2),FOREIGN KEY (AutorID) REFERENCES #Autor(AutorID) );
  2. BCREATE TABLE #VendaLivro (LivroID INT,PrecoVenda DECIMAL(10, 2),QuantidadeVendida INT,FOREIGN KEY (LivroID) REFERENCES #Autor(LivroID) );
  3. CCREATE TABLE #VendaLivro (LivroID INT,AutorID INT,PrecoVenda DECIMAL(10, 2),FOREIGN KEY (LivroID) REFERENCES #Livro(LivroID) ),FOREIGN KEY (AutorID) REFERENCES #Autor(AutorID) );
  4. DCREATE TABLE #VendaLivro (AutorID INT,PrecoVenda DECIMAL(10, 2),FOREIGN KEY (AutorID) REFERENCES #Autor(LivroID) );
  5. ECREATE TABLE #VendaLivro (PrecoVenda DECIMAL(10, 2),FOREIGN KEY (LivroID) REFERENCES #Livro(LivroID) ),FOREIGN KEY (AutorID) REFERENCES #Autor(AutorID) );
Revelar gabarito e comentário

GabaritoC — CREATE TABLE #VendaLivro ( LivroID INT, AutorID INT, PrecoVenda DECIMAL(10, 2), FOREIGN KEY (LivroID) REFERENCES #Livro(LivroID) ), FOREIGN KEY (AutorID) REFERENCES #Autor(AutorID) );

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”.

DataMart – Inclusão de tabela fato com chaves estrangeiras

Gabarito: letra C. A tabela fato #VendaLivro deve possuir chaves estrangeiras para as dimensões #Livro e #Autor; apenas a alternativa C declara ambas as colunas com as respectivas FKs na sintaxe correta.

Em um DataMart modelado em esquema estrela, a tabela fato centraliza as medidas (preço) e contém chaves estrangeiras para as tabelas dimensão (Livro e Autor). A integridade referencial exige que cada FK aponte para a coluna de chave primária (ou única) correspondente na tabela referenciada.

Critério

Alternativa A

Alternativa B

Alternativa C (Gabarito)

Alternativa D

Alternativa E

Coluna LivroID declarada

Sim

Sim

Sim

Não

Não

Coluna AutorID declarada

Sim

Não

Sim

Sim

Não

Coluna PrecoVenda declarada

Sim

Sim

Sim

Sim

Sim

FK para #Livro(LivroID)

Não

Não (referencia #Autor)

Sim

Não

Sim (mas coluna não declarada)

FK para #Autor(AutorID)

Sim

Não

Sim

Não (referencia #Autor(LivroID))

Sim (mas coluna não declarada)

Sintaxe válida

Sim

Não (coluna inexistente)

Sim

Não (coluna inexistente)

Não (colunas não declaradas)

Atende modelo estrela

Não (falta FK Livro)

Não

Sim

Não

Não

Alternativa A — ❌ Incorreta

Falta a FK para #Livro, necessária para vincular o livro vendido. Apenas a FK para #Autor é declarada, o que viola a integridade referencial da tabela fato.

Alternativa B — ❌ Incorreta

A FK FOREIGN KEY (LivroID) REFERENCES #Autor(LivroID) referencia a tabela #Autor em uma coluna que não existe – #Autor não possui LivroID. Além disso, falta a FK para #Livro e a coluna AutorID não foi declarada.

Alternativa C — ✅ Correta ⟵ GABARITO

Declara as colunas LivroID, AutorID, PrecoVenda e duas FKs: uma para #Livro(LivroID) e outra para #Autor(AutorID). A sintaxe está correta e atende ao modelo estrela.

Alternativa D — ❌ Incorreta

A FK FOREIGN KEY (AutorID) REFERENCES #Autor(LivroID) referencia a coluna errada – #Autor tem AutorID como PK, não LivroID. Também falta a coluna LivroID.

Alternativa E — ❌ Incorreta

As colunas LivroID e AutorID não foram declaradas na lista de colunas, mas as FKs as referenciam. A sintaxe é inválida porque a FK deve referenciar uma coluna existente na tabela.

PEGA ESSA DICA!

Sempre verifique se cada coluna da FK corresponde a uma coluna de chave primária (ou UNIQUE) na tabela referenciada, e que todas as colunas necessárias da tabela fato estão declaradas antes das constraints.

Gabarito: letra C.

Link permanente: /questoes/fg075968