Druga postać normalna

Druga postać normalna ( 2NF ) to postać normalna używana w normalizacji baz danych . 2NF został pierwotnie zdefiniowany przez EF Codda w 1971 roku.

Relacja jest w drugiej postaci normalnej, jeśli spełnia dwa warunki:

  1. Jest w pierwszej postaci normalnej .
  2. Nie ma żadnego atrybutu innego niż główny , który jest funkcjonalnie zależny od jakiegokolwiek właściwego podzbioru jakiegokolwiek kandydującego klucza relacji (tzn. nie ma częściowych zależności). Atrybut inny niż główny relacji to atrybut, który nie jest częścią żadnego kandydującego klucza relacji.

Mówiąc prościej, relacja jest w 2NF, jeśli jest w 1NF, a każdy nie-prime atrybut relacji jest zależny od całości każdego klucza kandydującego. Zauważ, że nie nakłada żadnych ograniczeń na zależność atrybutów non-prime od non-prime. To jest adresowane w trzeciej postaci normalnej .

Aby uczynić relację 1NF relacją 2NF, usuń funkcjonalnie zależne atrybuty z częściowych zależności pierwszej relacji w postaci normalnej i umieść te funkcjonalnie zależne atrybuty w osobnej tabeli z częścią klucza podstawowego oryginalnej relacji, która funkcjonalnie określała te funkcjonalnie zależne atrybuty .

2NF i klucze kandydujące

Funkcjonalna zależność od części dowolnego klucza kandydującego jest naruszeniem 2NF. Oprócz klucza podstawowego relacja może zawierać inne klucze kandydujące; konieczne jest ustalenie, że żadne atrybuty inne niż pierwsze nie są częściowo zależne od któregokolwiek z tych kluczy kandydujących.

Następująca relacja nie spełnia 2NF, ponieważ:

  • {Kraj producenta} jest funkcjonalnie zależny od {Producenta}.
  • {Kraj producenta} nie jest częścią klucza kandydującego, więc nie jest atrybutem głównym. (Zakłada się, że dwóch producentów w tym samym kraju może wyprodukować szczoteczkę do zębów o tej samej nazwie modelu, więc {Kraj producenta, Model} nie jest kluczem kandydującym, mimo że w bieżącej tabeli para jednoznacznie identyfikuje wiersze.)
  • {Producent} jest właściwym podzbiorem klucza kandydującego {Producent, Model}.

Ponieważ {Kraj producenta} jest atrybutem innym niż główny, funkcjonalnie zależnym od części klucza kandydującego, relacja narusza 2NF.

Modele szczoteczek elektrycznych
Producent Model Kraj producenta
Forte X-Prime Włochy
Forte Bardzo czyste Włochy
Dent-o-Fresh EZbrush USA
szczotkarz superszczotka USA
Kobayashiego ST-60 Japonia
Hoch mistrz zębów Niemcy
Hoch X-Prime Niemcy

Relacja nie jest w 2NF. {Producent, Model} jest kluczem kandydującym, a kraj producenta jest zależny od odpowiedniego jego podzbioru: Producent. Aby projekt był zgodny z 2NF, konieczne są dwie zależności:

Producenci elektrycznych szczoteczek do zębów
Producent Kraj producenta
Forte Włochy
Dent-o-Fresh USA
szczotkarz USA
Kobayashiego Japonia
Hoch Niemcy
Modele szczoteczek elektrycznych
Producent Model
Forte X-Prime
Forte Bardzo czyste
Dent-o-Fresh EZbrush
szczotkarz superszczotka
Kobayashiego ST-60
Hoch mistrz zębów
Hoch X-Prime

Zobacz też

Dalsza lektura

  • Porady Litta: Normalizacja
  •   Data, CJ ; Lorentzos, N.; Darwen, H. (2002). Dane czasowe i model relacyjny (wyd. 1). Morgana Kaufmanna. ISBN 1-55860-855-9 . {{ cite book }} : CS1 maint: stan adresu URL ( link )
  •   Data, CJ (2004). Wprowadzenie do systemów baz danych (wyd. 8). Boston: Addison-Wesley. ISBN 978-0-321-19784-9 .
  • Kent, W. (1983). „Prosty przewodnik po pięciu formach normalnych w teorii relacyjnej bazy danych” . Komunikaty ACM . 26 : 120–125.

Linki zewnętrzne