2

Gday хлопцы,3NF против НФБК: Пример

Ok, так что у меня класс базы данных и у меня есть этот пример, который заставляет меня думать, что я на самом деле не в полной мере понять разницу между двумя NFs ..

Я знаю, что

отношение, R, находится в 3НФ, если для любого нетривиального FD (Х-> А) удовлетворяют R по крайней мере одно из следующих условий:

(a) X является суперключем для R, или

(б) является ключевым атрибутом для R

и

Отношение, R, в BCNF тогда и только тогда для любого нетривиального FD (Х-> А) удовлетворенный на R следующее условие истинно:

(а) Х представляет собой суперключ для R

Вот пример:

R = (А, В, С, D) F = {AB-> С, AB-> D, C> A, D-> B} 1. Является ли R в 3NF, почему? Если это не так, разложить его на 3NF

Sol: 
Yes. Find all the Candidate Keys: 
AB, BC, CD, AD 
Check all FDs in F for 3NF condition 

Ну, Не C-> причиной нарушения? C не является супер-ключом, а его нетривиальным, то же самое для D-> B?

Но его не BCNF:

  1. Является ли R в НФБК, почему? Если это не так, разложите его в BCNF Нет. Потому что для C-> A C не является суперключем. Аналогично для D-> B R1 = {C, D} , R2 = {A, C}, R3 = {B, D}
+0

возможным дубликатом [Что таким разница между 3NF и BCNF?] (http://stackoverflow.com/questions/19749913/what-is-the-difference-between-3nf-and-bcnf) –

+0

@MostyMostacho Ну, я прочитал это и еще 3 темы , но все же .. – geekybedouin

+0

@MostyMostacho Я не могу комментировать там, и мне нужно спросить о чем-то в вашем более раннем ответе. – geekybedouin

ответ

4

Ну, Не С-> а вызвать нарушение ? C не является супер-ключом и его нетривиальным ...

а как насчет этого второго условия для 3NF? Является ли атрибут в каком-либо ключе в R?

(Подсказка: цель таких упражнений отчасти также, чтобы показать вам, почему 3NF не очень полезной нормальная форма, и случаи, когда различие между 3NF и вопросами BCNF)

Смежные вопросы