Questão de Banco de Dados — Normalização — FGV 2024
- Código
- fg165220
- Banca
- FGV
- Órgão
- TJ AP
- Ano
- 2024
- Cargo
- AJ ( )
- Aa -> b, a -> c, a -> d;
- Ba -> b, b -> c, c -> d;
- Ca -> b, c, d;
- Db -> a, c -> a, d -> a;
- Eb, c, d -> a.
GabaritoA — a -> b, a -> c, a -> d;
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.
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.
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.
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.
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.
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