Różnica między 3NF a BCNF

Autor: Laura McKinney
Data Utworzenia: 1 Kwiecień 2021
Data Aktualizacji: 13 Móc 2024
Anonim
Różnica między 3NF a BCNF - Technologia
Różnica między 3NF a BCNF - Technologia

Zawartość


Normalizacja to metoda, która usuwa nadmiar z relacji, minimalizując w ten sposób anomalie wstawiania, usuwania i aktualizacji, które obniżają wydajność baz danych. W tym artykule rozróżnimy dwie wyższe formy normalne, tj. 3NF i BCNF. Podstawowa różnica między 3NF i BCNF jest taka 3NF eliminuje zależność przechodnią od relacji i tabeli, która ma znajdować się w BCNF, trywialna zależność funkcjonalna X-> Y w relacji musi się utrzymywać, tylko jeśli X jest superkluczem.

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

  1. Wykres porównania
  2. Definicja
  3. Kluczowe różnice
  4. Wniosek

Wykres porównania

Podstawa do porównania3NFBCNF
PojęcieŻaden atrybut niepierwotny nie może być zależny tranzytowo od klucza Kandydata.Dla każdej trywialnej zależności w relacji R powiedz X-> Y, X powinno być superkluczem 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 osiągnąć w 3NF.Bezstratny rozkład jest trudny do osiągnięcia w BCNF.


Definicja 3NF

Tabela lub relacja są uważane za znajdujące się w Trzecia postać normalna tylko jeśli tabela jest już w 2NF i nie ma non-prime atrybut tranzytowo zależny od Klucz kandydata relacji.

Zanim przejdę do procesu normalizacji tabeli w 3NF, pozwól mi omówić klucz kandydata. ZA Klucz kandydata jest minimalny superklucz tzn. superklucz z minimalnymi atrybutami, które mogą definiować wszystkie atrybuty relacji. Tak więc, podczas normalizacji stołu, najpierw rozpoznajesz klucz kandydujący danej relacji. Oto atrybuty wchodzące w skład klucza kandydującego podstawowe atrybuty, a atrybuty, które nie są częścią klucza kandydującego, to atrybuty inne niż podstawowe.

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 dojść do wniosku AB jest kluczem kandydującym do relacji R, ponieważ za pomocą klucza AB możemy wyszukać wartość dla wszystkich atrybutów w relacji R. Tak A, B staje się podstawowe atrybuty gdy razem tworzą klucz kandydata. Atrybuty C, D, E, F. staje się non-prime atrybuty, ponieważ żaden z nich nie jest częścią klucza kandydującego.

Tabela znajduje się w 2NF, ponieważ żaden nie-główny atrybut jest częściowo zależny od klucza kandydującego

Jednak wśród podanych zależności funkcjonalnych jako atrybutu obserwuje się zależność przechodnią fa nie jest bezpośrednio zależny od klucza kandydata AB. Zamiast tego atrybut fa jest tranzytowo zależy od klucza kandydata AB poprzez atrybut re. Dopóki atrybut D ma pewną wartość, którą możemy osiągnąć do wartości atrybutu F, z klucza kandydującego AB. W przypadku, gdy wartość atrybutu D wynosi NULL, nigdy nie możemy znaleźć / przeszukać wartości F za pomocą klucza kandydującego AB. To jest powód, dla którego 3NF żąda usunięcia zależności przechodnie od relacji.

Tak więc, aby usunąć tę zależność przechodnią, musimy podzielić relację R. Podczas dzielenia relacji zawsze umieszczaj klucz kandydujący i wszystkie atrybuty, które zależą od tego klucza kandydującego w pierwszej relacji. W następnej relacji podzielonej umieścimy atrybut, który powoduje zależność przechodnią, a także atrybuty, które od niej zależą, w drugiej relacji.

Teraz tabele 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 klucz kandydujący AB podczas gdy związek R2 (D, E) ma re jako klucz kandydujący.

Definicja BCNF

BCNF jest uważany za silniejszy niż 3NF. Relacja R, aby być w BCNF musi być w 3NF. I gdziekolwiek nietrywialna zależność funkcjonalna A -> B trzyma się zatem w relacji R ZA musi być superkey relacji R. Jak wiemy, super klucz jest kluczem, który ma pojedynczy atrybut lub zestaw atrybutów, który określa całe atrybuty relacji.

Przejdźmy teraz do przykładu, aby lepiej zrozumieć BCNF. Załóżmy, że mamy związek R (A, B, C, D, F), które mają następujące zależności funkcjonalne.

Obserwując relację R, możemy to powiedzieć ZA i BFklucze kandydatów relacji R, ponieważ one same mogą wyszukiwać wartość dla wszystkich atrybutów w relacji R. Tak A, B, F.główny atrybuty, podczas gdy do i renon-prime atrybuty Nie zaobserwowano zależności przechodnie w zależnościach funkcjonalnych przedstawionych powyżej. Zatem tabela R znajduje się w 3NF.

Ale jedna zależność funkcjonalna, tj. D -> F narusza definicję BCNF, zgodnie z którą, jeśli istnieją D -> F. re powinno być super klucz w tym przypadku tak nie jest. Podzielimy więc relację R.

Teraz tabele R1 i R2 są w BCNF. Relacja R1 ma dwa kandydat klawiatura ZA i b, trywialna zależność funkcjonalna R1, tj. A-> BCD i B -> ACD, przytrzymaj dla BCNF, ponieważ A i B są superkluczami dla relacji. Relacja R2 ma re jak to Klucz kandydata a funkcjonalna zależność D -> F obowiązuje również dla BCNF, ponieważ D jest superkluczem.

  1. 3NF stwierdza, że ​​żaden atrybut niepierwotny nie może być tranzytowo zależny od klucza kandydata relacji. Z drugiej strony, BCNF stwierdza, że ​​jeśli istnieje relacja funkcjonalna X -> Y dla relacji; wtedy X musi być superkluczem.
  2. 3NF można uzyskać bez poświęcania zależności zależności. Jednak zależność może nie zostać zachowana podczas uzyskiwania BCNF.
  3. 3NF można osiągnąć bez utraty jakichkolwiek informacji ze starej tabeli, podczas gdy podczas uzyskiwania BCNF możemy stracić niektóre informacje ze starej tabeli.

Wniosek:

BCNF jest znacznie bardziej restrykcyjny niż 3NF, co pomaga bardziej normalizować tabelę. Relacja w 3NF ma minimalną nadmiarowość, która jest dalej usuwana przez BCNF.