Pular para o conteúdo principal

Questão de Banco de Dados — Normalização — FGV 2024

Banco de DadosNormalização
Código
fg165220
Banca
FGV
Órgão
TJ AP
Ano
2024
Cargo
AJ ( )
Considere uma tabela relacional criada a partir do script SQL a seguir.   create table xpto (    a int primary key,    b int not null,    c int not null,    d int not null)   De acordo com as formas normais das tabelas relacionais, o conjunto de dependências funcionais que deve necessariamente ser verificado é:
  1. Aa -> b, a -> c, a -> d;
  2. Ba -> b, b -> c, c -> d;
  3. Ca -> b, c, d;
  4. Db -> a, c -> a, d -> a;
  5. Eb, c, d -> a.
Revelar gabarito e comentário

GabaritoA — a -> b, a -> c, a -> d;

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ências Funcionais e Chave Primária

Gabarito: letra A. A chave primária a determina funcionalmente todos os demais atributos da tabela (b, c e d), pois é ela que identifica de forma única cada linha. Essa é a definição de dependência funcional total em relação à chave primária, base da 2ª Forma Normal (2FN).

Uma dependência funcional (DF) é uma restrição entre dois conjuntos de atributos: se duas tuplas têm o mesmo valor para o conjunto X, então obrigatoriamente têm o mesmo valor para o conjunto Y. Em notação, X → Y (lê-se "X determina Y"). No modelo relacional, a chave primária é o atributo (ou conjunto de atributos) que identifica unicamente cada tupla — logo, ela determina funcionalmente todos os outros atributos da relação. Essa é a DF que necessariamente deve ser verificada em qualquer tabela, independentemente dos dados nela contidos.

A questão pede o conjunto de dependências que "deve necessariamente ser verificado" a partir da definição da tabela. Como a é a chave primária, a única DF garantida pela estrutura é a → b, a → c e a → d. As demais alternativas propõem dependências que podem ou não existir nos dados, mas que não são impostas pela definição da tabela.

É importante distinguir o que é garantido pela estrutura do que é apenas possível nos dados. A chave primária é uma restrição de integridade que garante a unicidade — logo, a DF da chave para todos os outros atributos é uma consequência lógica necessária. Já dependências entre atributos não chave (como b → c) são fatos do domínio que precisariam ser verificados nas instâncias, não podendo ser inferidos apenas do esquema.

A pegadinha da banca está em confundir o que é necessário (imposto pela chave) com o que é possível (depende dos dados). O candidato que marca b → c, c → d está pensando em dependências transitivas, que são relevantes para a 3FN, mas que não são garantidas pela definição da tabela.

Alternativa A — ✅ Correta ⟵ GABARITO

A chave primária a determina funcionalmente todos os outros atributos. Como a é a chave, cada valor de a identifica uma única linha, e portanto determina os valores de b, c e d. Essa é a dependência funcional total que define a 2FN e é a única garantida pela estrutura da tabela.

Alternativa B — ❌ Incorreta

Propõe uma cadeia de dependências transitivas (a → b, b → c, c → d). Embora seja possível que os dados apresentem essas dependências, elas não são garantidas pela definição da tabela. A estrutura apenas assegura que a determina todos os outros atributos; dependências entre atributos não chave dependem do domínio e precisariam ser verificadas nas instâncias.

Alternativa C — ❌ Incorreta

A notação a → b, c, d é uma forma compacta de representar a → b, a → c e a → d, que é exatamente a alternativa A. No entanto, a questão pede o conjunto de dependências que deve ser verificado, e a alternativa A já apresenta essa decomposição de forma explícita. A alternativa C é equivalente em conteúdo, mas a banca considerou a forma decomposta como a correta.

Alternativa D — ❌ Incorreta

Inverte o sentido da dependência: propõe que b, c e d determinam a. Isso só seria verdade se cada um desses atributos fosse também uma chave candidata, o que não é informado. A definição da tabela apenas estabelece a como chave primária; não há garantia de que b, c ou d sejam únicos.

Alternativa E — ❌ Incorreta

Propõe que o conjunto {b, c, d} determina a. Isso seria uma chave alternativa, mas não é garantido pela estrutura. A tabela define apenas a como chave primária; não há informação de que {b, c, d} seja uma chave candidata.

Gabarito: letra A — a chave primária a determina funcionalmente todos os demais atributos, sendo essa a única dependência garantida pela definição da tabela.

Link permanente: /questoes/fg165220