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