Questão nº 66
Questão de Tecnologia da Informação · FGV TRF1 2024 (nº 66)
Na teoria do processo de normalização em bancos de dados relacionais, o conceito de chave é definido por “um conjunto de uma ou mais colunas, tal que não possa haver duas linhas, t1, t2, cujos valores presentes nessas colunas sejam idênticos em t1 e t2”.
Nesse contexto, considere uma tabela T, com colunas A, B, C e D, para as quais são válidas as seguintes dependências funcionais:
```
A -> B
B -> C
B -> D
C -> B
```
Supondo que, adicionalmente, a dependência funcional
```
C -> A
```
seja válida, é correto concluir que, obrigatoriamente, a tabela T deve ser:
- Adeclarada com duas chaves distintas;
- Bdeclarada com três chaves distintas; (alternativa correta)
- Cdeclarada com uma chave apenas;
- Dparticionada em duas tabelas;
- Eparticionada em três tabelas.
Resposta comentada
Gabarito Alternativa B
Uma chave em um banco de dados é um conjunto mínimo de uma ou mais colunas que identifica unicamente cada linha de uma tabela, garantindo que não existam duas linhas idênticas. As dependências funcionais são regras que indicam que o valor de uma ou mais colunas (determinante) determina o valor de outras colunas (dependente). Para encontrar as chaves, precisamos identificar quais atributos, ou conjuntos de atributos, podem determinar todos os outros atributos da tabela.
As dependências funcionais dadas são:
A -> BB -> CB -> DC -> BC -> A
Vamos calcular o fechamento transitivo (o conjunto de todos os atributos que podem ser determinados) para cada atributo individualmente:
-
Fechamento de A (A+):
- Começa com
A. - De
A -> B, adicionaB. Agora temos{A, B}. - De
B -> C, adicionaC. Agora temos{A, B, C}. - De
B -> D, adicionaD. Agora temos{A, B, C, D}. - Como
A+contém todos os atributos da tabela (A, B, C, D),Aé uma chave candidata. É mínima porque é um único atributo.
- Começa com
-
Fechamento de B (B+):
- Começa com
B. - De
B -> C, adicionaC. Agora temos{B, C}. - De
B -> D, adicionaD. Agora temos{B, C, D}. - De
C -> A, adicionaA. Agora temos{A, B, C, D}. - Como
B+contém todos os atributos da tabela (A, B, C, D),Bé uma chave candidata. É mínima porque é um único atributo.
- Começa com
-
Fechamento de C (C+):
- Começa com
C. - De
C -> B, adicionaB. Agora temos{B, C}. - De
C -> A, adicionaA. Agora temos{A, B, C}. - De
A -> B(já temos B), não adiciona nada novo. - De
B -> C(já temos C), não adiciona nada novo. - De
B -> D, adicionaD. Agora temos{A, B, C, D}. - Como
C+contém todos os atributos da tabela (A, B, C, D),Cé uma chave candidata. É mínima porque é um único atributo.
- Começa com
-
Fechamento de D (D+):
- Começa com
D. - Não há dependências funcionais que comecem com
Dou que permitam determinar outros atributos a partir deD. D+ = {D}. Como não contém todos os atributos,Dnão é uma chave.
- Começa com
Identificamos três chaves candidatas: A, B e C.
(A) Incorreta: A análise das dependências funcionais revela que existem três chaves candidatas, não apenas duas.
(B) Correta: Conforme demonstrado pelo cálculo do fechamento transitivo, os atributos A, B e C são, cada um, chaves candidatas, pois cada um deles pode determinar todos os outros atributos da tabela. Portanto, a tabela possui três chaves distintas.
(C) Incorreta: A tabela possui três chaves candidatas, não apenas uma.
(D) Incorreta: A opção de particionar a tabela (decomposição) está relacionada ao processo de normalização para atingir formas normais mais elevadas (como 3FN ou BCNF), que visa eliminar redundâncias e anomalias. A questão, no entanto, pede para identificar o número de chaves da tabela original, e não sobre a necessidade de decomposição. Armadilha da banca: Esta alternativa tenta desviar o foco para um conceito relacionado à normalização, mas que não responde diretamente à pergunta sobre o número de chaves da tabela dada.
(E) Incorreta: Semelhante à alternativa D, esta opção se refere à decomposição da tabela, que é um conceito diferente da identificação de chaves.
Fonte: FGV TRF1 2024 Analista Judiciário - Análise de Dados (Caderno Tipo 1). Reproduzida para fins de estudo.