Questão nº 40

Questão de Tecnologia da Informação · FGV STN 2024 (nº 40)

FGV2024Auditor Federal de Finanças e Controle - Tecnologia da Informação (Operação e Infraestrutura)Tecnologia da Informação
Gabarito: Bver comentário ↓

Com referência à normalização de bancos de dados, considere uma tabela relacional T, com colunas C, H, N, P, na qual as dependências funcionais identificadas são exibidas a seguir.

```
C -> H
C -> P
C -> N
P -> C
```

O comando SQL utilizado na criação dessa tabela é exibido a seguir.

```sql
create table T (
C int not null unique,
H int null unique,
P int null unique,
N int not null
)
```

Assinale a dependência funcional adicional necessária para que o esquema acima esteja de acordo com a forma normal Boyce-Codd.

Resposta comentada

Gabarito Alternativa B

Conceito-chave: A Forma Normal Boyce-Codd (FNBC) exige que toda dependência funcional (regra onde um conjunto de colunas determina outro) tenha como lado esquerdo uma superchave (coluna ou conjunto que identifica unicamente a linha). No seu exemplo, C e P são chaves candidatas (cada uma identifica a linha sozinha), mas a tabela atual tem uma coluna H que é unique e não é chave — isso viola a FNBC se H determinar algo.

  • (A) Incorreta: C, H, P -> N é redundante, pois C já determina N sozinho; adicionar isso não corrige a violação de H não ser chave.
  • (B) Correta: A tabela atual tem H como unique, mas sem dependência funcional saindo de H. Para que H seja uma superchave (e a tabela fique em FNBC), precisamos que H determine algo — e a única opção que torna H uma chave sem conflitar com as regras existentes é H -> P. Assim, H passa a ser chave candidata e toda dependência terá lado esquerdo superchave.
  • (C) Incorreta: N -> P faria de N uma chave, mas N é not null e não unique no SQL; além disso, isso criaria uma dependência transitiva desnecessária e não resolve o problema de H.
  • (D) Incorreta: N -> H também faria de N uma chave, mas o SQL não define N como unique; e isso não elimina a violação original (a dependência P -> C já é válida, mas H continua sem papel de chave).
  • (E) Incorreta: P, H -> C é redundante, pois P já determina C sozinho; adicionar isso não torna H uma chave, apenas cria uma dependência composta desnecessária.

Armadilha da banca (no distrator mais tentador, a letra A): O aluno vê que C já determina N e pensa que adicionar C, H, P -> N "completa" a chave primária composta. Mas isso é inútil: a FNBC não pede para "aumentar" chaves existentes, e sim para garantir que todo determinante seja chave. Como H é unique mas não determina nada, a única forma de sanar a violação é criar uma dependência que saia de H — exatamente o que a letra B faz.

Fonte: FGV STN 2024 Auditor Federal de Finanças e Controle - Tecnologia da Informação (Operação e Infraestrutura) (Caderno Tipo 1). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho