Questão nº 64
Questão de Análise de Dados · FGV TCU 2021 (nº 64)
ATENÇÃO!
Para as duas questões a seguir, considere uma tabela relacional R, com atributos W, X, Y, Z, e o conjunto de dependências funcionais identificadas para esses atributos.
X → Y
X → Z
Z → X
Z → W
Com referência à tabela R, definida anteriormente, considere o esboço de um comando SQL para a criação da tabela.
create table R (
X int not null,
Y int not null,
W int not null,
Z int not null,
constraint …
)
De acordo com as dependências funcionais de R, e com a Forma Normal de Boyce-Codd, a definição correta das chaves (por meio de constraints) aplicáveis e necessárias para essa tabela deveria ser:
- A```
constraint c1 unique (X)
constraint c2 unique (Z)
``` (alternativa correta) - B`constraint c1 unique (X, Z)`
- C`constraint c1 unique (X, Y, W)`
- D`constraint c1 unique (X, Y, Z)`
- E```
constraint c1 unique (X)
constraint c2 unique (Y)
constraint c3 unique (Z)
```
Resposta comentada
Gabarito Alternativa A
Uma chave candidata é um conjunto mínimo de atributos que identifica de forma única cada linha em uma tabela. Um UNIQUE constraint (restrição de unicidade) em SQL é usado para garantir que todos os valores em uma coluna ou um grupo de colunas sejam únicos, servindo para identificar chaves candidatas.
Vamos analisar as dependências funcionais (DFs) dadas para a tabela R(W, X, Y, Z):
- X → Y
- X → Z
- Z → X
- Z → W
Para encontrar as chaves candidatas, precisamos encontrar os atributos que, sozinhos ou em conjunto, conseguem determinar todos os outros atributos da tabela.
-
Verificando X:
- X → Y (dado)
- X → Z (dado)
- Como X → Z e Z → W, por transitividade temos X → W.
- Portanto, X determina {X, Y, Z, W}.
- Como X é um único atributo, ele é minimal.
- Conclusão: X é uma chave candidata.
-
Verificando Z:
- Z → X (dado)
- Z → W (dado)
- Como Z → X e X → Y, por transitividade temos Z → Y.
- Portanto, Z determina {Z, X, W, Y}.
- Como Z é um único atributo, ele é minimal.
- Conclusão: Z é uma chave candidata.
Como tanto X quanto Z são chaves candidatas, para que a tabela esteja em uma forma normal adequada (como BCNF, que exige que todo determinante seja uma superchave, ou seja, contenha uma chave candidata), e para que o banco de dados enforce a unicidade dessas chaves, ambas precisam ter restrições de unicidade.
(A) Correta: constraint c1 unique (X) e constraint c2 unique (Z). Esta alternativa define corretamente que tanto X quanto Z são chaves candidatas e, portanto, devem ser únicos na tabela. Ambas as restrições são aplicáveis e necessárias para garantir a integridade dos dados de acordo com as dependências funcionais.
(B) Incorreta: constraint c1 unique (X, Z). Esta restrição indica que a combinação de X e Z é única. Embora seja verdade que (X, Z) é única (já que X sozinho é único e Z sozinho é único), esta restrição não captura o fato de que X sozinho é uma chave candidata e Z sozinho é outra chave candidata. A armadilha aqui é que, se X já é único e Z já é único, a combinação (X, Z) obviamente também será única, mas a restrição unique (X, Z) não expressa que X e Z são chaves candidatas individuais. A questão pede as chaves aplicáveis e necessárias, e as chaves são X e Z, não (X,Z) como uma única chave.
(C) Incorreta: constraint c1 unique (X, Y, W). Esta restrição não representa uma chave candidata. X sozinho já é uma chave candidata; adicionar Y e W a ela torna-a uma superchave, mas não uma chave candidata minimal. Além disso, ignora completamente Z como chave candidata.
(D) Incorreta: constraint c1 unique (X, Y, Z). Similar à alternativa C, esta restrição não representa uma chave candidata minimal. X sozinho já é uma chave candidata; adicionar Y e Z torna-a uma superchave, mas não uma chave candidata minimal.
(E) Incorreta: constraint c1 unique (X), constraint c2 unique (Y), constraint c3 unique (Z). Embora unique (X) e unique (Z) estejam corretas, unique (Y) está incorreta. Y não é uma chave candidata; X determina Y, mas Y não determina X nem qualquer outro atributo para ser uma chave. Portanto, Y pode ter valores duplicados.
Fonte: FGV TCU 2021 Auditor Federal de Controle Externo - Área Controle Externo (AUFC-CE) (Caderno Tipo 1). Reproduzida para fins de estudo.