Co to jest normalizacja? Przykład bazy danych 1NF, 2NF, 3NF, BCNF

Spisie treści:

Anonim

Co to jest normalizacja?

Normalizacja to technika projektowania baz danych, która zmniejsza nadmiarowość danych i eliminuje niepożądane cechy, takie jak anomalie wstawiania, aktualizacji i usuwania. Reguły normalizacji dzielą większe tabele na mniejsze i łączą je za pomocą relacji. Celem normalizacji w SQL jest wyeliminowanie zbędnych (powtarzających się) danych i zapewnienie ich logicznego przechowywania.

Twórca modelu relacyjnego Edgar Codd zaproponował teorię normalizacji danych wraz z wprowadzeniem Pierwszej Formy Normalnej i kontynuował rozszerzanie teorii o Drugą i Trzecią Formę Normalną. Później dołączył do Raymonda F. Boyce'a, aby rozwinąć teorię formy normalnej Boyce-Codda.

Formy normalne bazy danych

Oto lista form normalnych

  • 1NF (pierwsza normalna forma)
  • 2NF (druga normalna forma)
  • 3NF (trzecia postać normalna)
  • BCNF (postać normalna Boyce-Codda)
  • 4NF (czwarta normalna forma)
  • 5NF (piąta normalna forma)
  • 6NF (szósta normalna forma)

Teoria normalizacji danych w serwerze SQL jest nadal rozwijana. Na przykład są dyskusje nawet na szóstej normalnej formie. Jednak w większości zastosowań praktycznych, normalizacja osiąga swój najlepszy w 3 rd Normal Form . Ewolucję teorii normalizacji SQL zilustrowano poniżej:

Formy normalne bazy danych

Normalizacja bazy danych z przykładami

Przykład normalizacji bazy danych można łatwo zrozumieć za pomocą studium przypadku. Załóżmy, że biblioteka wideo utrzymuje bazę danych wypożyczonych filmów. Bez jakiejkolwiek normalizacji w bazie danych wszystkie informacje są przechowywane w jednej tabeli, jak pokazano poniżej. Rozumiemy normalizację w bazie danych na przykładzie tabel:

Tutaj widać, że kolumna Wypożyczone filmy zawiera wiele wartości. Teraz przejdźmy do 1-szych form normalnych:

Zasady 1NF (First Normal Form)

  • Każda komórka tabeli powinna zawierać jedną wartość.
  • Każdy rekord musi być niepowtarzalny.

Powyższa tabela w 1NF-

Przykład 1NF

Zanim przejdziemy dalej, zrozummy kilka rzeczy -

Co to jest KLUCZ?

KEY to wartość używana do jednoznacznej identyfikacji rekordu w tabeli. KEY może być pojedynczą kolumną lub kombinacją wielu kolumn

Uwaga: Kolumny w tabeli, które NIE są używane do jednoznacznego identyfikowania rekordu, nazywane są kolumnami niekluczowymi.

Co to jest klucz podstawowy?

Podstawowa to pojedyncza wartość kolumny używana do jednoznacznego identyfikowania rekordu bazy danych.

Posiada następujące atrybuty

  • Klucz podstawowy nie może mieć wartości NULL
  • Wartość klucza podstawowego musi być unikalna
  • Rzadko należy zmieniać wartości klucza podstawowego
  • Klucz podstawowy musi otrzymać wartość, gdy wstawiany jest nowy rekord.

Co to jest klucz złożony?

Klucz złożony to klucz podstawowy składający się z wielu kolumn służących do jednoznacznej identyfikacji rekordu

W naszej bazie danych mamy dwie osoby o tym samym nazwisku Robert Phil, ale mieszkają w różnych miejscach.

W związku z tym, aby jednoznacznie zidentyfikować rekord, wymagamy zarówno pełnego imienia i nazwiska, jak i adresu. To jest klucz złożony.

Przejdźmy do drugiej postaci normalnej 2NF

Reguły 2NF (Second Normal Form)

  • Zasada 1 - Bądź w 1NF
  • Reguła 2 - klucz podstawowy pojedynczej kolumny

Oczywiste jest, że nie możemy iść do przodu, aby nasz prostą bazę danych w 2 nd formie Normalizacji chyba że partycje powyżej tabeli.

Podzieliliśmy naszą tabelę 1NF na dwie tabele, a mianowicie. Tabela 1 i Tabela 2. Tabela 1 zawiera informacje o członkach. Tabela 2 zawiera informacje o wypożyczonych filmach.

Wprowadziliśmy nową kolumnę o nazwie Membership_id, która jest kluczem podstawowym dla tabeli 1. Rekordy można jednoznacznie zidentyfikować w tabeli 1 za pomocą identyfikatora członkostwa

Baza danych - klucz obcy

W tabeli 2 Membership_ID jest kluczem obcym

Klucz obcy odwołuje się do klucza podstawowego innej tabeli! Pomaga połączyć tabele

  • Klucz obcy może mieć inną nazwę niż klucz podstawowy
  • Zapewnia, że ​​wiersze w jednej tabeli mają odpowiadające sobie wiersze w innej
  • W przeciwieństwie do klucza podstawowego nie muszą być unikalne. Najczęściej tak nie jest
  • Klucze obce mogą mieć wartość null, mimo że klucze podstawowe nie mogą

Dlaczego potrzebujesz klucza obcego?

Załóżmy, że nowicjusz wstawia rekord w tabeli B, taki jak

Będziesz mógł wstawiać tylko wartości do swojego klucza obcego, które istnieją w unikalnym kluczu w tabeli nadrzędnej. Pomaga to w referencyjnej integralności.

Powyższy problem można rozwiązać deklarując identyfikator członkostwa z Tabeli2 jako klucz obcy identyfikatora członkostwa z Tabeli1

Teraz, jeśli ktoś spróbuje wstawić wartość w polu identyfikatora członkostwa, która nie istnieje w tabeli nadrzędnej, zostanie wyświetlony błąd!

Co to są przechodnie zależności funkcjonalne?

Przechodnia zależność funkcjonalna występuje, gdy zmiana kolumny niebędącej kluczem może spowodować zmianę dowolnej innej kolumny niebędącej kluczem

Rozważ tabelę 1. Zmiana kolumny bez klucza Pełne imię może zmienić zwrot grzecznościowy.

Przejdźmy do 3NF

Reguły 3NF (trzecia normalna forma)

  • Zasada 1 - Bądź w 2NF
  • Reguła 2 - nie ma przechodnich zależności funkcjonalnych

Aby przenieść naszą tabelę 2NF do 3NF, musimy ponownie podzielić naszą tabelę.

Przykład 3NF

Poniżej przykład 3NF w bazie danych SQL:

Ponownie podzieliliśmy nasze tabele i utworzyliśmy nową tabelę, w której są przechowywane zwroty grzecznościowe.

Nie ma przechodnich zależności funkcjonalnych, dlatego nasza tabela znajduje się w 3NF

W Tabeli 3 Identyfikator powitania jest kluczem podstawowym, aw Tabeli 1 Identyfikator powitania jest obcy w stosunku do klucza podstawowego w Tabeli 3

Teraz nasz mały przykład znajduje się na poziomie, którego nie można dalej rozłożyć, aby osiągnąć wyższe normalne formy normalizacji. W rzeczywistości jest już w wyższych formach normalizacji. W przypadku złożonych baz danych zwykle potrzebne są oddzielne wysiłki w celu przejścia na kolejne poziomy normalizacji danych. Jednak w dalszej części omówimy pokrótce kolejne poziomy normalizacji.

BCNF (postać normalna Boyce-Codda)

Nawet jeśli baza danych ma trzecią normalną formę, nadal wystąpiłyby anomalie, gdyby miała więcej niż jeden klucz kandydata .

Czasami BCNF jest również określany jako 3.5 Normalna Forma.

Zasady 4NF (czwarta normalna forma)

Jeśli żadna instancja tabeli bazy danych nie zawiera dwóch lub więcej niezależnych i wielowartościowych danych opisujących odpowiednią jednostkę, to ma ona czwartą normalną postać.

Zasady 5NF (piąta normalna forma)

Stół jest w 5 th Normal Form tylko wtedy, gdy jest w 4NF i nie może być rozłożona na dowolnej liczbie mniejszych tabel bez utraty danych.

Proponowana 6NF (szósta normalna forma)

6 th postać normalna nie jest znormalizowany, ale jednak to jest omawiane przez specjalistów baz danych przez pewien czas. Miejmy nadzieję, że w najbliższej przyszłości będziemy mieli jasną i ustandaryzowaną definicję szóstej formy normalnej…

To wszystko do normalizacji SQL !!!

Podsumowanie

  • Projektowanie bazy danych ma kluczowe znaczenie dla pomyślnego wdrożenia systemu zarządzania bazą danych, który spełnia wymagania systemu przedsiębiorstwa w zakresie danych.
  • Proces normalizacji w DBMS pomaga tworzyć systemy baz danych, które są opłacalne i mają lepsze modele bezpieczeństwa.
  • Zależności funkcjonalne są bardzo ważnym elementem procesu normalizacji danych
  • Większość systemów baz danych to znormalizowane bazy danych do trzeciej postaci normalnej.
  • Klucz podstawowy, który jednoznacznie identyfikuje, jest zapisany w tabeli i nie może mieć wartości null
  • Klucz obcy pomaga połączyć tabelę i odwołuje się do klucza podstawowego