Questão de Banco de Dados — Normalização — Avança SP 2023
Banco de Dados›Normalização
Código
qa538435
Banca
Avança SP
Órgão
CM Embu-Guaçu
Ano
2023
Cargo
ATI ( )
Na teoria dos bancos de dados, o que é a "dependência transitiva" e como ela se relaciona com a normalização?
AA dependência transitiva ocorre quando uma coluna é determinada por outra coluna através de uma cadeia de dependências funcionais. Isso está relacionado ao processo de normalização, onde a dependência transitiva precisa ser eliminada para alcançar formas normais superiores.
BA dependência transitiva refere-se à capacidade de uma tabela se relacionar com várias outras tabelas, formando uma rede complexa de dependências. Isso é contrário ao objetivo da normalização, que busca simplificar a estrutura do banco de dados.
CA dependência transitiva é um conceito utilizado na modelagem de banco de dados distribuídos, onde os dados são armazenados em locais diferentes. Isso não tem relação direta com o processo de normalização.
DA dependência transitiva ocorre quando uma tabela é dividida em várias tabelas menores durante o processo de normalização. Isso é parte do objetivo da normalização, que visa aumentar a complexidade das tabelas.
EA dependência transitiva refere-se à dependência entre chaves primárias e chaves estrangeiras em uma única tabela. Isso não tem influência na normalização.
Revelar gabarito e comentário▾
GabaritoA — A dependência transitiva ocorre quando uma coluna é determinada por outra coluna através de uma cadeia de dependências funcionais. Isso está relacionado ao processo de normalização, onde a dependência transitiva precisa ser eliminada para alcançar formas normais superiores.
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”.
Dependência transitiva e normalização
Gabarito: letra A. A dependência transitiva ocorre quando um atributo não chave depende de outro atributo não chave, que por sua vez depende da chave primária — formando uma cadeia de dependências funcionais (X → Y e Y → Z, logo X → Z). Essa estrutura viola a Terceira Forma Normal (3FN), e o processo de normalização busca eliminá-la, decompondo a tabela para que cada atributo não chave dependa apenas da chave primária.
A normalização é o processo de organizar os dados em um banco de dados relacional para reduzir a redundância e evitar anomalias de inserção, exclusão e atualização. Ela se baseia nas dependências funcionais entre os atributos e nas chaves primárias, aplicando uma série de formas normais — cada uma com uma regra mais forte que a anterior. A dependência transitiva é o conceito central da 3FN: uma tabela está na 3FN se estiver na 2FN e não possuir dependências transitivas entre atributos não chave.
Para entender a dependência transitiva, é preciso primeiro dominar a dependência funcional. Dizemos que um atributo B depende funcionalmente de A (A → B) quando, para cada valor de A, existe exatamente um valor de B — ou seja, o valor de A determina o valor de B. Por exemplo, em uma tabela de funcionários, o CPF determina o nome (CPF → NOME). A dependência transitiva surge quando há uma cadeia: A → B e B → C, o que implica A → C, mas C não depende diretamente da chave primária A — depende de B, que é um atributo não chave.
Um exemplo clássico: uma tabela de pedidos com as colunas ID_PEDIDO (chave primária), ID_CLIENTE e NOME_CLIENTE. Aqui, ID_PEDIDO → ID_CLIENTE e ID_CLIENTE → NOME_CLIENTE, logo ID_PEDIDO → NOME_CLIENTE. O NOME_CLIENTE depende transitivamente da chave primária através do ID_CLIENTE. Isso gera redundância (o nome do cliente se repete em cada pedido) e anomalias (se o cliente mudar de nome, é preciso atualizar todos os pedidos). Para eliminar essa dependência transitiva, decompõe-se a tabela em duas: uma com os dados do pedido (ID_PEDIDO, ID_CLIENTE) e outra com os dados do cliente (ID_CLIENTE, NOME_CLIENTE).
A pegadinha que a banca explora neste tema é confundir dependência transitiva com outros conceitos, como relacionamentos entre tabelas, dependência parcial (que viola a 2FN) ou chaves estrangeiras. A dependência transitiva é uma propriedade interna de uma única tabela, não uma relação entre tabelas. Guarde a fronteira: dependência parcial = atributo não chave depende de parte da chave composta (viola 2FN); dependência transitiva = atributo não chave depende de outro atributo não chave (viola 3FN). É exatamente nessa distinção que as alternativas se dividem.
Critério
Dependência transitiva (viola 3FN)
Dependência parcial (viola 2FN)
Definição
Atributo não chave depende de outro atributo não chave, que depende da chave primária (X → Y e Y → Z)
Atributo não chave depende de apenas parte de uma chave primária composta
Exemplo
ID_PEDIDO → ID_CLIENTE → NOME_CLIENTE
(ID_PEDIDO, ID_PRODUTO) → NOME_PRODUTO (depende só de ID_PRODUTO)
Forma normal violada
3FN
2FN
Solução na normalização
Decompor em tabelas separadas (ex.: pedidos e clientes)
Decompor removendo o atributo que depende de parte da chave
Relação com chaves
Envolve apenas atributos não chave na cadeia
Envolve parte da chave composta
Alternativa A — ✅ Correta ⟵ GABARITO
A alternativa define corretamente a dependência transitiva como uma cadeia de dependências funcionais e a relaciona à normalização, afirmando que ela precisa ser eliminada para alcançar formas normais superiores. Isso está tecnicamente correto: a 3FN exige a eliminação de dependências transitivas, e a decomposição de tabelas é o mecanismo para isso. A alternativa espelha exatamente o conceito e sua aplicação prática.
Alternativa B — ❌ Incorreta
A alternativa descreve a capacidade de uma tabela se relacionar com várias outras, formando uma rede complexa — isso é uma característica do modelo relacional em geral, não da dependência transitiva. Além disso, afirma que isso é contrário ao objetivo da normalização, o que é um equívoco: a normalização não busca simplificar a estrutura eliminando relacionamentos, mas sim reduzir redundância e anomalias. A dependência transitiva é um conceito interno a uma tabela, não uma relação entre tabelas.
Alternativa C — ❌ Incorreta
A alternativa associa a dependência transitiva a bancos de dados distribuídos, o que é um erro conceitual. A dependência transitiva é um conceito da teoria relacional, aplicável a qualquer banco de dados relacional, independentemente de distribuição. Além disso, afirma que não tem relação com a normalização, quando na verdade é um dos principais problemas que a 3FN resolve.
Alternativa D — ❌ Incorreta
A alternativa confunde a dependência transitiva com o processo de decomposição de tabelas. A decomposição é uma consequência da normalização, não a definição de dependência transitiva. Além disso, afirma que a normalização visa aumentar a complexidade das tabelas, o que é o oposto do objetivo real: reduzir redundância e anomalias, simplificando a estrutura lógica.
Alternativa E — ❌ Incorreta
A alternativa descreve a dependência entre chaves primárias e chaves estrangeiras, que é um mecanismo de relacionamento entre tabelas, não a dependência transitiva. Além disso, afirma que isso não tem influência na normalização, o que é falso: as chaves estrangeiras são fundamentais para a integridade referencial, mas a dependência transitiva é um conceito distinto, que trata de dependências funcionais entre atributos de uma mesma tabela.
PEGA ESSA DICA!
Para identificar dependência transitiva na prova, procure por uma cadeia do tipo A → B e B → C, onde B não é chave. Se a tabela tem chave composta, verifique também se há dependência parcial (atributo não chave dependendo de parte da chave) — isso viola a 2FN. Monte uma tabela mental: 1FN = valores atômicos; 2FN = sem dependência parcial; 3FN = sem dependência transitiva. Essa sequência é a espinha dorsal da normalização.