Questão nº 60
Questão de Tecnologia da Informação · FGV STN 2024 (nº 60)
Com referência à normalização de bancos de dados, considere uma tabela relacional T, com colunas A, B, C, D, E, na qual as dependências funcionais identificadas são exibidas a seguir.
```
A -> B
B -> A
A -> C
B -> D
B -> E
D -> B
```
O comando SQL utilizado na criação dessa tabela é exibido a seguir.
```sql
create table T (
A int not null unique,
B int not null unique,
C int not null unique,
D int not null unique,
E 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.
- AA, B, C, D -> E
- BC -> D (alternativa correta)
- CC -> E
- DE -> A
- EE -> A, B, C D
Resposta comentada
Gabarito Alternativa B
A Forma Normal Boyce-Codd (FNBC) é um nível de normalização que garante que toda dependência funcional não trivial em uma tabela seja causada por uma superchave. Uma superchave é um conjunto de colunas que identifica unicamente uma linha. Em termos simples, para estar em FNBC, qualquer coisa que determine outra coluna (uma dependência funcional) deve ser determinada por um conjunto de colunas que já seja uma chave candidata (a menor superchave possível) ou uma superchave.
- (A) Incorreta: A dependência é trivial, pois o lado esquerdo () é uma superchave (já que e são únicos e determinam todas as outras colunas, e e também são únicos). Dependências triviais não violam a FNBC.
- (B) Correta: A dependência viola a FNBC porque não é uma superchave da tabela . Para que a tabela estivesse em FNBC, precisaríamos garantir que qualquer dependência funcional não trivial fosse determinada por uma superchave. A dependência implica que determina . No entanto, sozinho não determina todas as outras colunas (), portanto, não é uma superchave. A adição de como uma dependência funcional adicional (e não uma consequência das existentes) é o que a questão pede para atingir a FNBC, pois a estrutura atual não garante que determine de forma que seja uma superchave.
- (C) Incorreta: A dependência também violaria a FNBC pelo mesmo motivo de , pois não é uma superchave. No entanto, a questão pede a dependência adicional necessária. A dependência é a que, quando considerada junto com as outras, revela a violação que precisa ser tratada para atingir a FNBC.
- (D) Incorreta: A dependência violaria a FNBC porque não é uma superchave. Contudo, a dependência já existe e é único, o que implica que não pode determinar de forma independente das dependências já presentes que tornam uma chave.
- E) Incorreta: A dependência é uma dependência parcial, pois o lado esquerdo () não é uma superchave. No entanto, a questão pede a dependência adicional necessária para a FNBC. A dependência é a que, quando adicionada ao conjunto de dependências existentes, revela uma violação específica da FNBC que precisa ser resolvida. A armadilha aqui é que não é uma superchave, mas a dependência é a que, dado o contexto das outras dependências e a estrutura da tabela, é a mais relevante para a questão de atingir a FNBC.
Fonte: FGV STN 2024 Auditor Federal de Finanças e Controle - Tecnologia da Informação (Transformação Digital) (Caderno Tipo 1). Reproduzida para fins de estudo.