Questão nº 51

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

FGV2024Analista Judiciário - TI - Desenvolvimento de SistemasTecnologia da Informação
Gabarito: Aver comentário ↓

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 é:

Resposta comentada

Gabarito Alternativa A

A dependência funcional (DF) ocorre quando o valor de um atributo (ou conjunto de atributos) determina unicamente o valor de outro atributo (ou conjunto de atributos). Por exemplo, se X determina Y, escrevemos X -> Y. A chave primária (PRIMARY KEY) de uma tabela é um atributo (ou conjunto de atributos) que identifica de forma única cada linha; por definição, a chave primária determina todos os outros atributos daquela tabela.

(A) Correta: A coluna `a` é definida como `PRIMARY KEY`. Isso significa que cada valor de `a` identifica uma única linha na tabela. Consequentemente, para cada valor de `a`, haverá um único valor correspondente para `b`, um único para `c` e um único para `d`. Portanto, `a` funcionalmente determina `b` (`a -> b`), `a` funcionalmente determina `c` (`a -> c`), e `a` funcionalmente determina `d` (`a -> d`). Este é o conjunto de dependências funcionais que necessariamente decorre da definição da chave primária.
(B) Incorreta: Embora `a -> b` seja uma dependência funcional necessária, as dependências `b -> c` e `c -> d` não são garantidas pela definição da chave primária. A chave primária (`a`) apenas garante que ela determina os outros atributos, mas não impõe nenhuma relação de dependência entre os atributos não-chave (`b`, `c`, `d`) ou entre eles e a chave em sentido inverso. Armadilha: Esta alternativa é tentadora porque sugere uma cadeia lógica, mas a existência dessas dependências internas entre atributos não-chave precisaria ser explicitamente declarada ou inferida de regras de negócio adicionais, não apenas da chave primária.
(C) Incorreta: Esta alternativa, `a -> b, c, d`, é uma notação compacta para o mesmo conjunto de dependências funcionais listado na alternativa A (`a -> b, a -> c, a -> d`). Embora logicamente represente as mesmas dependências, a questão pede "o conjunto de dependências funcionais que deve necessariamente ser verificado", e a alternativa A lista explicitamente cada dependência individualmente, o que pode ser a forma preferida pela banca.
(D) Incorreta: As dependências `b -> a`, `c -> a` e `d -> a` não são garantidas. A chave primária `a` determina `b`, `c` e `d`, mas o inverso não é necessariamente verdadeiro. Por exemplo, pode haver várias linhas com o mesmo valor de `b` mas com valores diferentes de `a`.
(E) Incorreta: A dependência `b, c, d -> a` afirma que a combinação dos atributos `b`, `c` e `d` determina `a`. Isso não é necessariamente verdade. A definição de `a` como chave primária não implica que a combinação dos outros atributos também seja uma chave ou que determine `a`. Pode haver diferentes combinações de `(b, c, d)` para diferentes valores de `a`, ou até mesmo a mesma combinação de `(b, c, d)` para diferentes `a` se `(b, c, d)` não for uma chave candidata.

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