-
Sabemos que:
C1 determina C2
C1 determina C3
C3 determina C4
Como C1 determina C3 e C3 determina C4, pela regra de transitividade, C1 acaba tb determinando C4.
Para atender a 3FN - somente C1 (PK da relação) teria que determinar os demais termos (C2,C3,C4). Porém, como temos uma dependência transitiva ao saber que C3 (termo não primário) tb determina C4, a forma de eliminarmos esse problema seria considerar C3 como determinante de C1, assim teríamos:
C3 determina C1 e C1 determina C2, logo, C3 acaba determinando C2;
Como C3 já determina C4;
C3 acaba sendo o determinante único de todos os demais termos eliminando a dependência transitiva da questão:
C3 - C1
C3 - C2
C3 - C4
Resposta C
-
@Vinicius Nomelini
Temos C1 determinando C2, C3 e por transitividade C4. Para verificar a 3FN temos que acabar com a transitividade, mas com C3-> C1, continuaríamos com dependência transitiva C3->C2. Acabamos com a dependência transitiva de C1->C4 e criamos outra DT C3->C2?
-
Não seria C3 -> C4? Se eu tenho:
C1 → C2
C1 → C3
C3 → C4
Uma tabela T de atributos C1, C2, C3, C4, na qual C1 é um identificador(ou seja, a PK), para verificas a terceira forma normal, não deveria eliminar a transitividade, criando-se uma segunda relação, e pondo C3 como determinante. Não seria assim?
T(C1, C2) e T2(C3, C4)
-
Como dizia Jack, vamos por partes:
Essa é uma questão bastante difícil e a redação do examinador não é boa! Deve-se assumir que ele está substituindo as dependências em vez de acrescentando-as. Certo? Vamos lá...
(a) Errado, ainda teremos uma dependência funcional transitiva (C1 → C3; C3 → C4; C1 → C4), o que viola a 3FN;
(b) Errado. Se, em vez de C3 → C4, tivermos C4 → C3, teremos um atributo não-chave (C3) dependente de outro atributo não-chave (C4), o que viola a 3FN;
(c) Correto. Se, em vez de C3 → C4, tivermos C3 → C1, então teremos C1 → C3 e C3 → C1, que é uma dependência mútua e não viola a 3FN;
(d) Errado, ainda existirá uma dependência funcional transitiva (C1 → C3; C3 → C4; C1 → C4), o que viola a 3FN;
(e) Errado, teremos um atributo não-chave (C2) dependente de outro atributo não-chave (C1), o que viola a 3FN.
Estratégia