Questão nº 46

Questão de Tecnologia da Informação · FGV TJ-AP 2024 (nº 46)

FGV2024Analista Judiciário - TI - Banco de DadosTecnologia da Informação
Gabarito: Cver comentário ↓

Considere uma tabela relacional com atributos (colunas) A, B, C, D e E, na qual as dependências funcionais conhecidas são:

A -> B
A -> C
A -> D
D -> E

O comando de criação dessa tabela é mostrado a seguir.

```sql
create table X(A int, B int, C int, D int, E int,
constraint K1 unique (A),
constraint K2 unique (D)
)
```

De acordo com as formas normais Primeira, Segunda, Terceira e Boyce-Codd, a dependência funcional adicional necessária e suficiente para a validade desse esquema é:

Resposta comentada

Gabarito Alternativa C

Uma dependência funcional (DF) ocorre quando o valor de um ou mais atributos (o lado esquerdo da DF) determina unicamente o valor de outro(s) atributo(s) (o lado direito). Uma chave candidata é um atributo ou conjunto mínimo de atributos que identifica unicamente cada registro em uma tabela, o que significa que ele determina todos os outros atributos da tabela.

Análise das DFs existentes e das constraints UNIQUE:
As dependências funcionais dadas são: A -> B, A -> C, A -> D, D -> E.
As constraints UNIQUE indicam que A e D são chaves candidatas.

  1. constraint K1 unique (A) implica que A é uma chave candidata, ou seja, A deve determinar todos os outros atributos: A -> B, C, D, E.
    • Das DFs dadas: A -> B, A -> C, A -> D.
    • De A -> D e D -> E, podemos derivar A -> E por transitividade.
    • Portanto, A já é uma chave candidata com as DFs dadas.
  2. constraint K2 unique (D) implica que D é uma chave candidata, ou seja, D deve determinar todos os outros atributos: D -> A, B, C, E.
    • Das DFs dadas: D -> E.
    • Para que D seja uma chave candidata, precisamos que D -> A, D -> B e D -> C também sejam verdadeiras.
    • Atualmente, D -> A não é derivável das DFs dadas. Se D -> A fosse adicionada, então D -> B (via A -> B) e D -> C (via A -> C) também seriam deriváveis.

Portanto, a DF D -> A é a dependência funcional adicional necessária e suficiente para que D seja uma chave candidata, validando a constraint K2 unique (D).

  • (A) Incorreta: A -> E já é derivável das DFs dadas (A -> D e D -> E por transitividade), portanto não é uma dependência adicional necessária.
  • (B) Incorreta: A, D -> E é uma DF redundante, pois D -> E já é uma DF dada (o lado esquerdo D já determina E, então adicionar A não torna a DF mais "necessária").
  • (C) Correta: D -> A é a dependência funcional adicional necessária para que D seja uma chave candidata (conforme indicado pela constraint K2 unique (D)). Sem D -> A, D não pode determinar A (e, consequentemente, B e C via A) com base nas DFs iniciais. Com D -> A, D determina A, B, C e E, tornando-o uma chave candidata válida.
  • (D) Incorreta: D -> B, C, D não é a dependência mais fundamental. D -> D é trivial. D -> B, C seria derivável se D -> A fosse estabelecida. A questão pede a dependência adicional necessária e suficiente, e D -> A é a peça-chave que permite a derivação de D -> B e D -> C. Esta alternativa é mais abrangente do que o estritamente necessário e direto.
  • (E) Incorreta: E -> A não é implicada por nenhuma das constraints UNIQUE e não é necessária para validar as chaves A ou D. Adicioná-la introduziria uma nova chave candidata (E) que não é declarada no esquema.

Fonte: FGV TJ-AP 2024 Analista Judiciário - TI - Banco de Dados (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