BLACK WEEKS DO -60%     |        + dodatkowe -10% z kodem: CODE10 (ważny od 150 zł)     |  

15 godz. 31 min. 51 sek.
close
Cart icon
User menu icon
User icon
Skontaktuj się z nami:
+48 888-916-333
Lightbulb icon
Jak to działa?
FAQ icon
FAQ
Contact icon
Kontakt
Terms of service icon
Regulamin zakupów
Privacy policy icon
Polityka prywatności
Normalizacja bazy danych i trzy postacie normalne

Normalizacja bazy danych i trzy postacie normalne

Ten artykuł jest zwięzłym wprowadzeniem do tematu normalizacji. Skupia się on na tzw. trzech postaciach normalnych, których znajomość jest kluczowa do zrozumienia tematu. Każda z trzech postaci normalnych zostanie omówiona z użyciem prostych przykładów. Zakładamy, że odbiorca ma podstawowe umiejętności w zakresie relacyjnych baz danych.

Pierwsza postać normalna (1NF)

1 Postać Normalna (1NF) to pierwszy poziom normalizacji danych, który zakłada, że każda komórka musi przechowywać pojedynczą, atomową wartość, a nie zestaw wartości lub struktur danych.

Spójrzmy na poniższą tabelę:

Zdjęcie wstawki do artykułu

W tym przypadku kolumna roduct_name zawiera zestaw produktów, a kolumna product_price zawiera zestaw cen. Nie spełnia to wymagań 1NF, ponieważ komórki nie zawierają pojedynczych wartości.

Po normalizacji 1NF dane zostają podzielone na oddzielne wiersze - każdy wiersz zawiera pojedynczy produkt i jego cenę. Wtedy tabela może wyglądać następująco:

Zdjęcie wstawki do artykułu

Teraz każdy wiersz zawiera pojedynczy produkt i jego cenę, co spełnia warunki 1NF.

Druga postać normalna (2NF)

2 Postać Normalna (2NF) to drugi poziom normalizacji danych, który spełnia 1NF oraz zakłada, że każda kolumna w tabeli musi zależeć od klucza głównego.

Spójrzmy na poniższą tabelę orders:

Zdjęcie wstawki do artykułu

Powyższa tabela spełnia 1NF, ale nie spełnia 2NF. Mamy tutaj zbyt wiele informacji. Dane klienta oraz produktu zależą od identyfikatora zamówienia. Dane są zbyt powiązane. Powinniśmy oddzielić dane klienta i produktu od zamówienia. Spójrz, w jaki sposób możemy to zrobić.

Tabela z danymi klienta:

Zdjęcie wstawki do artykułu

Tabela produktów:

Zdjęcie wstawki do artykułu

Tabela zamówień:

Zdjęcie wstawki do artykułu

Od teraz wszystkie dane niepowiązane z zamówieniami zostały przeniesione do innych tabel. Tabela zamówienia zawiera jedynie klucze obce (dowiązania) do tabel customers i products.

Trzecia postać normalna (3NF)

3 Postać Normalna (3NF) to trzeci poziom normalizacji danych, który spełnia 2NF oraz zakłada, że niekluczowa kolumna nie może zależeć od innej niekluczowej kolumny.

Przeanalizujmy tabelę produktów:

Zdjęcie wstawki do artykułu

W przypadku trzeciej postaci normalnej (3NF) każda kolumna niekluczowa musi zależeć tylko od klucza głównego, a nie od innych niekluczowych kolumn. W tabeli products cena i rozmiar pizzy są kolumnami niekluczowymi, a cena jest zależna od rozmiaru, co jest niezgodne z trzecią postacią normalną (3NF). Aby spełnić tę zasadę, można utworzyć osobną tabelę product_sizes, gdzie cena byłaby związana tylko z rozmiarem produktu.

Postaramy się w taki sposób przekształcić dane, aby spełnić 3NF.

W pierwszej kolejności uzależnimy cenę od rozmiaru, ale w oddzielnej tabeli product_sizes:

Zdjęcie wstawki do artykułu

W następnym kroku przebudujemy tabelę produktów:

Zdjęcie wstawki do artykułu

Teraz tabela products zawiera klucz obcy size, który odnosi się do tabeli product_sizes, co umożliwia zarządzanie cenami w zależności od rozmiaru pizzy, a jednocześnie zachowuje strukturę produktów w tabeli products.

Podsumowanie

Artykuł powinien ci zapewnić zrozumienie podstawowych zasad dotyczących trzech postaci normalnych. Pełnią one bardzo ważną rolę w procesie projektowania wydajnej i spójnej bazy danych.