Questão de Banco de Dados — Consultas e Comandos em SQL — FUNDATEC 2023
Banco de Dados›Consultas e Comandos em SQL
Código
qa537508
Banca
FUNDATEC
Órgão
BRDE
Ano
2023
Cargo
Ana Sist ( )
Uma empresa de logística, que possui carros e bombas de combustível, deseja controlar o abastecimento de sua frota. Ela deseja poder gerenciar cada abastecimento realizado em um de seus veículos. O analista identificou os dados importantes, apresentados abaixo na forma de nome de atributo e sua semântica. Projetou então uma tabela ABASTECIMENTO, descrita abaixo em SQL padrão, que apresentou ao DBA.
Atributo
Descrição do significado
nbomb
número da bomba (imutável, identificador da bomba)
capac
capacidade do reservatório de uma dada bomba
data-hora
timestamp (data/hora) de um abastecimento
placa
placa de um veículo da frota (imutável, identificador do veículo)
descr
descrição de um veículo (marca/modelo) da frota
ano-fab
Ano de fabricação de um veículo da frota
litros
quantidade em litros de um abastecimento de um dado veículo em uma dada bomba
Create table ABASTECIMENTO
(nbomb int not null,
capac int not null,
data_hora timestamp not null,
placa char(7) not null,
descr varchar(50) not null,
ano_fab date not null,
litros int not null,
primary key (nbomb, data_hora));
A DBA analisou essa proposta e observou que não seguia as formas normais. Com base na descrição dos atributos acima, assinale com V, se a dependência funcional é responsável pelo fato da tabela não estar na terceira forma normal, ou com F, em caso contrário.
( ) nbomb, data-hora → capac
( ) nbomb, data-hora → placa
( ) nbomb, data-hora → ano-fab
A ordem correta de preenchimento dos parênteses, de cima para baixo, é:
AV – V – V.
BF – V – F.
CV – F – V.
DF – F – V.
EF – F – F.
Revelar gabarito e comentário▾
GabaritoC — V – F – V.
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”.
Normalização: dependências funcionais e a 3FN
Gabarito: letra C (V – F – V). A tabela ABASTECIMENTO viola a 3FN porque possui dependências funcionais transitivas: nbomb → capac e placa → descr, ano_fab. As dependências funcionais que têm a chave primária completa (nbomb, data_hora) como determinante — como nbomb, data_hora → placa — são permitidas e não causam violação da 3FN. A questão pede para identificar quais dependências listadas são responsáveis pela violação da 3FN, e a resposta correta é que apenas a primeira (nbomb, data_hora → capac) e a terceira (nbomb, data_hora → ano_fab) são, pois representam dependências transitivas.
A normalização é o processo de organizar os dados em tabelas para reduzir redundância e evitar anomalias de inserção, atualização e exclusão. A terceira forma normal (3FN) exige que a tabela esteja na 2FN e que não haja dependências funcionais transitivas, ou seja, nenhum atributo não-chave pode depender de outro atributo não-chave. Em outras palavras, todos os atributos não-chave devem depender diretamente da chave primária, e não de outros atributos não-chave.
Na tabela ABASTECIMENTO, a chave primária é (nbomb, data_hora). Vamos analisar as dependências:
A figura acima ilustra as dependências funcionais: a seta de nbomb para capac é uma dependência parcial (determinante é parte da chave), e as setas de placa para descr e ano_fab são dependências transitivas (atributo não-chave depende de outro não-chave). Essas são as violações que impedem a tabela de estar na 3FN.
Agora, vamos analisar cada dependência funcional listada na questão:
Item 1 — nbomb, data_hora → capac — ✅ Verdadeiro
Esta dependência funcional é responsável pela violação da 3FN. O determinante nbomb, data_hora é a chave primária completa, mas capac depende apenas de nbomb (dependência parcial). Como a tabela não está na 2FN (devido à dependência parcial), ela também não está na 3FN. Portanto, a afirmativa é verdadeira.
Item 2 — nbomb, data_hora → placa — ❌ Falso
Esta dependência funcional não é responsável pela violação da 3FN. O determinante nbomb, data_hora é a chave primária completa, e placa depende diretamente dela (dependência total). Isso é permitido na 3FN, pois não há dependência transitiva ou parcial envolvida. Portanto, a afirmativa é falsa.
Esta dependência funcional é responsável pela violação da 3FN. Embora o determinante seja a chave primária completa, ano_fab depende de placa (que é um atributo não-chave), configurando uma dependência transitiva. Isso viola a 3FN. Portanto, a afirmativa é verdadeira.
Conclusão: A sequência correta é V – F – V, correspondente à letra C.
NÃO CAIA NESSA!
A banca explora a confusão entre dependência parcial e transitiva. A primeira dependência (nbomb, data_hora → capac) é uma dependência parcial, pois capac depende apenas de nbomb (parte da chave). A terceira (nbomb, data_hora → ano_fab) é transitiva, pois ano_fab depende de placa (atributo não-chave). Ambas violam a 3FN, mas por razões diferentes. O candidato que não distingue esses conceitos pode marcar a alternativa errada.
PEGA ESSA DICA!
Para identificar violações da 3FN, verifique se algum atributo não-chave depende de outro atributo não-chave (dependência transitiva) ou de parte da chave (dependência parcial). Se houver, a tabela não está na 3FN. Lembre-se: a 3FN exige que todos os atributos não-chave dependam diretamente da chave primária completa.