Considere uma tabela relacional T, com atributos A, B, C, D,...

Próximas questões
Com base no mesmo assunto
Q914452 Banco de Dados

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,

Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Para resolver essa questão, precisamos entender o conceito de formas normais, especificamente a Forma Normal de Boyce-Codd (BCNF). Esta forma normal é uma etapa de melhoria no processo de normalização em bancos de dados relacionais, que visa eliminar redundâncias e melhorar a consistência dos dados.

A questão apresenta uma tabela relacional T com os atributos A, B, C, D, e E, e um conjunto de dependências funcionais que formam um ciclo:

  • A → B
  • B → C
  • C → D
  • D → E
  • E → A

Para que uma tabela esteja na BCNF, toda dependência funcional não trivial deve ter um superkey como antecedente. Um superkey é um conjunto de atributos que pode identificar exclusivamente uma tupla na tabela.

Alternativa Correta: D

A alternativa D afirma que "T deve possuir cinco identificadores, cada um composto por um dos atributos A, B, C, D e E individualmente". Isso está correto porque, devido ao ciclo de dependências funcionais, qualquer um dos atributos pode determinar todos os outros. Portanto, cada atributo individualmente é um superkey.

Explicando as Alternativas Incorretas:

Alternativa A: "T deve possuir apenas um identificador, composto pela justaposição dos atributos A, B, C, D e E." Esta alternativa está incorreta porque, na BCNF, cada atributo individual pode ser uma chave devido ao ciclo, tornando desnecessária a combinação de todos os atributos.

Alternativa B: "T deve possuir apenas um identificador, composto pela justaposição dos atributos A e E." Essa afirmação é incorreta pelo mesmo motivo, já que qualquer atributo pode ser um superkey individualmente.

Alternativa C: "T deve possuir três identificadores, cada um composto por um dos atributos A, D e E individualmente." Embora A, D e E possam ser superkeys, a exclusão de B e C está errada, pois eles também podem ser superkeys.

Alternativa E: "Nenhum identificador poderá ser estabelecido para T." Essa alternativa está errada porque, como discutido, cada atributo é capaz de ser um superkey devido à natureza do ciclo de dependências.

Com estas explicações, você deve compreender por que a alternativa D é a única correta. Na prática, entender a BCNF ajuda a criar bancos de dados mais eficientes e livres de redundâncias desnecessárias.

Gostou do comentário? Deixe sua avaliação aqui embaixo!

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

"Uma tabela está na forma normal Boyce-Codd (BCNF) quando todo determinante existente é chave candidata".

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