Considere uma tabela relacional T, com atributos A, B, C, D,...
Considere uma tabela relacional T, com atributos A, B, C, D, E, na qual as seguintes dependências funcionais se verificam:
A → B
B → C
C → D
D → E
E → A
Para que essa tabela esteja normalizada até a forma Boyce-Codd,
Comentários
Veja os comentários dos nossos alunos
Complementando o comentário da colega Géssica:
Para a tabela chegar à FN de Boyce Codd, deve antes estar na 3 FN. Toda campo que determinar outro, deverá ser uma SUPER-CHAVE.
A dúvida aqui recai entre A ou D. Diz a A que:
T deve possuir apenas um identificador, composto pela justaposição dos atributos A, B, C, D e E.
Seguind esta definição, a tabela ficaria assim: T(A,B,C,D,E). aqui, obrigatoriamente eu teria uma chave primaria composta pelos 5 atributos da tabela. Tais atributos não sao, necessariamente, candidatos.
Diz a "D" que:
T deve possuir cinco identificadores, cada um composto por um dos atributos A, B, C, D e E individualmente.
Seguindo esta definição, a tabela ficaria assim: T(A,B,C,D,E) ou T(A,B,C,D,E) ou T(A,B,C,D,E) etc, sendo que cada um desses atributos, necessariamente, são atributos candidatos a chave.
Por que isso é necessário? Porque repare que, se A->B, que B->C e etc, necessariamente cada um destes é candidato a ser chave primária da relação, que é o que diz a FN BC: "Uma tabela está na forma normal Boyce-Codd (BCNF) quando todo determinante existente é chave candidata".
Para que a tabela T esteja normalizada até a forma Boyce-Codd (3FN), é necessário que ela atenda às seguintes condições:
Todos os atributos da tabela devem depender funcionalmente apenas da chave primária;
Não deve haver dependências funcionais transitivas entre os atributos não chave.
Na tabela T, a chave primária não foi especificada, mas podemos inferir que o conjunto de atributos {A, B, C, D, E} forma uma chave candidata, pois todos os atributos estão envolvidos em dependências funcionais. Assim, a dependência funcional A → B indica que B é funcionalmente dependente de A, que, por sua vez, faz parte da chave candidata. O mesmo se aplica às outras dependências funcionais: B → C, C → D, D → E e E → A.
No entanto, a dependência funcional E → A implica que a tabela T não está normalizada até a forma Boyce-Codd, pois há uma dependência funcional circular entre A e E, o que significa que A e E são funcionalmente dependentes um do outro e não de uma chave candidata. Para normalizar a tabela, a dependência funcional circular deve ser eliminada.
Uma possível solução seria dividir a tabela T em duas tabelas: uma tabela T1, com os atributos {A, B, C, D, E}, e uma tabela T2, com os atributos {E, F}. A tabela T1 teria a chave primária {A, B, C, D, E}, e as dependências funcionais A → B, B → C, C → D e D → E seriam mantidas. A tabela T2 teria a chave primária {E}, e a dependência funcional E → A seria representada por meio de uma chave estrangeira que referencia a tabela T1.
Dessa forma, a tabela T estaria normalizada até a forma Boyce-Codd, pois todos os atributos são funcionalmente dependentes apenas da chave primária e não há dependências funcionais transitivas.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo