Wyjaśnienie postaci normalnych

0

Chciałbym dopytać o postacie normalne, a dokładniej doprecyzować definicje jednocześcnie poprosić o pomoc w wyjaśnieniu. Korzystam z kilku źródeł i w każdym autorzy inaczej tłumaczą postacie normalne, co finalnie doprowadza mnie do małego zakłopotania :) Dużo chyba również jest niedopowiedzeń i sam nie wiem jak to w końcu jest. Najbardziej zależy mi na wyjaśnieniu 2NF, 3NF i o ile to możliwe to również BCNF oraz 4NF.

Moje rozumowanie odnośnie 1NF (to akurat wydaje się w pełni zrozumiałe):

  • tabela przechowuje dane w sposób atomowy
  • każda kolumna przechowuje 1 informację (brak kolekcji)
  • tabela posiada klucz główny

Z 2NF robi się trudniej czytając poniższe wyjaśnienia:

Tabela jest zgodna z 2PN, jeżeli znajduje się w pierwszej postaci normalnej i wartości jej wszystkich niekluczowych kolumn zależą od całego klucza podstawowego). W praktyce oznacza to, że jeśli klucz podstawowy tabeli jest prosty (założony na pojedynczej kolumnie), a nie złożony (założony na kilku kolumnach), i tabela jest w 1PN, to spełnia ona też automatycznie wymogi drugiej postaci normalnej.

Tabela jest w 2PN, jeżeli jest w 1PN i żaden atrybut niekluczowy nie jest częściowo zależny od klucza.

Tabela jest w 2NF, jeśli jest w 1NF i wszystkie jej kolumny wchodzą w skład klucza głównego LUB jeśli jej klucz główny jest pojedynczą kolumną.

Druga postać normalna mówi, że tabela przechowuje dane dotyczące tylko konkretnej klasy obiektów.

No i mam problem z określeniem co tak naprawdę oznacza 2NF, bo według mnie:

  • tabela jest w 1NF
  • każdy niekluczowy atrybut zależy od klucza głównego
  • tabela przechowuje dane dotyczące tylko konkretnej klasy obiektów, czyli np. tabela użytkowników nie zawiera informacji o produktach

Definicja 3NF:

Doprowadzenie tabeli do trzeciej postaci normalnej polega na znalezieniu i usunięciu przechodnich zależności pomiędzy atrybutami (tabela jest zgodna z 3PN, jeżeli jest już w drugiej postaci normalnej i wartości jej kolumn nie są zależne od niekluczowych atrybutów).

Kolumna informacyjna nie należąca do klucza nie zależy od innej kolumny informacyjnej.

Według mnie 3NF:

  • tabela jest w 2NF
  • każdy niekluczowy atrybut nie jest zależny od innych niekluczowych atrybutów (brak przechodnich zależności funkcjonalnych)

Doprezycowanie odnośnie przechodniej zależności funkcjonalnej:

  • przechodnia zależność funkcjonalna oznacza, że dowolny niekluczowy atrybut jest powiązany z innym niekluczowym atrybutem
  • atrybut jest funkcjonalnie zależny od innego atrybutu, gdy zmiana w innym atrybucie powoduje konieczność zmiany w pierwszym atrybucie

Funkcjonalnie, czy funkcyjnie - które słowo lepiej pasuje?

Definicja BCNF:

Kolejną, czasami nazwaną postacią trzecią i pół, postacią normalną jest postać Boyce’a-Codda (BCNF). Jej formalna definicja brzmi następująco: tabela jest zgodna z BCNF, jeżeli jest już w trzeciej postaci normalnej i dla każdej nietrywialnej zależności
między podzbiorami jej atrybutów zbiór będący wyznacznikiem jest jej zbiorem identyfikującym.

Definicja 4NF:

W definicji czwartej postaci normalnej termin „zależność funkcyjna” jest zastąpiony terminem „zależność wielowartościowa” (tabela jest zgodna z 4PN, jeżeli jest już w postaci Boyce’a-Codda i nie występują w niej zależności wielowartościowe).

Tutaj wysiadłem :)

Jeśli ktoś mógłby wyjaśnić temat to zapraszam, bo zapewne nie jest to trudne w zrozumieniu, a ludzie niepotrzebnie komplikują pewne rzeczy. Mocno teoretyczny temat, ale może ktoś pomoże.

0

Jezeli bardzo CI na tym zalezy to zajrzyj to literatury napisanej przez osoby ktore te postacie wymyslily tj Codda i calej reszty.
Tylko pytanie do czego Ci to potrzebne? W praktyce stosuje sie rozne poziomy dekompozycji pod konkretne rozwiazanie. Nikt nie normalizuje baz dla ideologii.
Bo jezeli chcesz zostac prowadzacym na uczelni to popytaj w katerze...

1 użytkowników online, w tym zalogowanych: 0, gości: 1