
Omówmy różnice między 3NF i BCNF za pomocą tabeli porównawczej pokazanej poniżej.
Wykres porównania
Podstawa do porównania | 3NF | BCNF |
---|---|---|
Pojęcie | Żaden atrybut inny niż główny nie może być przejściowo zależny od klucza Kandydata. | Dla każdej trywialnej zależności w relacji R powiedzmy X-> Y, X powinien być super kluczem relacji R. |
Zależność | 3NF można uzyskać bez poświęcania wszystkich zależności. | Zależności mogą nie zostać zachowane w BCNF. |
Rozkład | Bezstratny rozkład można uzyskać w 3NF. | Bezstratny rozkład trudno osiągnąć w BCNF. |
Definicja 3NF
Tabela lub relacja jest uważana za trzecią normalną formę tylko wtedy, gdy tabela jest już w 2NF i nie ma przejściowego zależnego atrybutu niepochodzącego od kandydującego klucza relacji.
Zanim przejdę do procesu normalizacji tabeli w 3NF, pozwól mi omówić klucz kandydujący. Klucz Kandydata to minimalny super klucz, czyli super klucz o minimalnych atrybutach, które mogą definiować wszystkie atrybuty relacji. Tak więc, w procesie normalizacji twojego stołu, najpierw rozpoznajesz klucz kandydata danej relacji. Atrybuty, które są częścią kandydującego klucza, są atrybutami pierwszorzędnymi, a atrybuty niebędące częścią klucza kandydującego są atrybutami innymi niż prime .
Teraz jeśli mamy relację R (A, B, C, D, E, F) i mamy następujące zależności funkcji dla relacji R.

Tabela ma wartość 2NF, ponieważ żaden atrybut inny niż główny nie jest częściowo zależny od klucza kandydującego
Ale zależność przechodnia jest obserwowana wśród zapewnionych zależności funkcjonalnych, ponieważ atrybut F nie jest bezpośrednio zależny od kandydującego klucza AB . Zamiast tego atrybut F jest przejściowo zależny od kandydującego klucza AB za pośrednictwem atrybutu D. Dopóki atrybut D ma jakąś wartość, możemy osiągnąć wartość atrybutu F z klucza kandydującego AB. W przypadku, gdy wartość atrybutu D jest równa NULL, nigdy nie możemy znaleźć / wyszukać wartości F za pomocą klucza kandydującego AB. Z tego powodu 3NF żąda usunięcia przejściowej zależności od relacji.
Tak więc, aby usunąć tę zależność przechodnia, musimy podzielić relację R. Podczas dzielenia relacji zawsze umieszczaj klucz kandydujący i wszystkie atrybuty, które zależą od tego kandydującego klucza w pierwszej relacji. W następnej podzielonej relacji umieścimy atrybut, który powoduje zależność przechodnią, a także atrybuty zależne od niego w drugiej relacji.

Definicja BCNF
BCNF jest uważany za silniejszy niż 3NF. Relacja R do BCNF musi być w 3NF . I wszędzie tam, gdzie nietrywialna zależność funkcjonalna A -> B zawiera w relacji R, wtedy A musi być super-kluczem relacji R. Jak wiemy, klucz Super jest kluczem, który ma pojedynczy atrybut lub zbiór atrybutów, który określa, cały atrybuty relacji.
Teraz przejdźmy do przykładu, aby lepiej zrozumieć BCNF. Załóżmy, że mamy relację R (A, B, C, D, F), które mają następujące zależności funkcjonalne.

Ale jedna funkcjonalna zależność, tj. D -> F, narusza definicję BCNF, zgodnie z którą, jeśli D -> F istnieje, wówczas D powinien być super kluczem, co nie ma miejsca w tym przypadku. Więc podzielimy relację R.

Kluczowe różnice między 3NF a BCNF
- 3NF stwierdza, że żaden atrybut inny niż główny nie może być przejściowo zależny od kandydującego klucza relacji. Z drugiej strony, BCNF stwierdza, że jeśli trywialna zależność funkcjonalna X -> Y istnieje dla relacji; wtedy X musi być super kluczem.
- 3NF można uzyskać bez poświęcania zależności relacji. Jednak zależność może nie zostać zachowana podczas uzyskiwania BCNF.
- 3NF można osiągnąć bez utraty jakichkolwiek informacji ze starej tabeli, natomiast podczas uzyskiwania BCNF możemy utracić pewne informacje ze starej tabeli.
Wniosek:
BCNF jest znacznie bardziej restrykcyjny niż 3NF, co pomaga w normalizacji tabeli. Relacja w 3NF pozostawia minimalną nadmiarowość, która jest dodatkowo usuwana przez BCNF.