Zalecane, 2019

Wybór Redakcji

Różnica między 3NF a BCNF

Normalizacja to metoda, która usuwa nadmiarowość z relacji, minimalizując w ten sposób anomalie wstawiania, usuwania i aktualizacji, które pogarszają wydajność baz danych. W tym artykule rozróżniamy dwie wyższe formy normalne, tj. 3NF i BCNF. Podstawowa różnica między 3NF i BCNF polega na tym, że 3NF eliminuje przejściową zależność od relacji i tabelę w BCNF, trywialna zależność funkcyjna X-> Y w relacji musi utrzymywać, tylko jeśli X jest super kluczem.

Omówmy różnice między 3NF i BCNF za pomocą tabeli porównawczej pokazanej poniżej.

Wykres porównania

Podstawa do porównania3NFBCNF
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ładBezstratny 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.

Obserwując zależności funkcjonalne, możemy wywnioskować, że AB jest kluczem kandydującym dla relacji R, ponieważ za pomocą klucza AB możemy przeszukać wartość dla wszystkich atrybutów w relacji R. Tak więc A, B staje się pierwszymi atrybutami, ponieważ razem tworzą klucz kandydujący. Atrybuty C, D, E, F stają się atrybutami niepęgowymi, ponieważ żaden z nich nie jest częścią klucza kandydującego.

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.

Teraz tablice R1 i R2 są w 3NF, ponieważ nie ma żadnych zależności częściowych i przechodnich. Relacja R1 (A, B, C, D, E) ma kandydujący klucz AB, podczas gdy relacja R2 (D, E) ma D jako jej kandydujący klucz.

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.

Obserwując relację R, możemy powiedzieć, że A i BFkandydującymi kluczami relacji R, ponieważ same mogą przeszukiwać wartość dla wszystkich atrybutów w relacji R. Zatem A, B, Fpierwszymi atrybutami, podczas gdy C i D to atrybuty inne niż pierwszorzędne . W obecnych funkcjonalnych zależnościach nie zaobserwowano zależności przejściowej. Stąd tabela R jest w 3NF.

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.

Teraz tabele R1 i R2 znajdują się w BCNF. Relacja R1 ma dwa kandydujące klucze A i B, trywialna zależność funkcyjna R1 tj. A-> BCD i B -> ACD, przytrzymaj dla BCNF jako A i B są super kluczami dla relacji. Relacja R2 ma D jako swój kandydujący klucz, a zależność funkcjonalna D -> F obowiązuje również dla BCNF, ponieważ D jest Super Key.

Kluczowe różnice między 3NF a BCNF

  1. 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.
  2. 3NF można uzyskać bez poświęcania zależności relacji. Jednak zależność może nie zostać zachowana podczas uzyskiwania BCNF.
  3. 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.

Top