Skip to main content

Umieszczanie bazy danych w drugiej normalnej formie (2NF)

Suspense: Blue Eyes / You'll Never See Me Again / Hunting Trip (Może 2024)

Suspense: Blue Eyes / You'll Never See Me Again / Hunting Trip (Może 2024)
Anonim

Przyjrzeliśmy się kilku aspektom normalizacji tabeli bazy danych. Najpierw omówiliśmy podstawowe zasady normalizacji baz danych. Ostatni raz zbadaliśmy podstawowe wymagania ustanowione przez pierwszą normalną formę (1NF). Teraz kontynuujmy naszą podróż i zasłońmy zasady drugiej normalnej formy (2NF).

Ogólne wymagania 2NF

  • Usuń podzbiory danych, które dotyczą wielu wierszy tabeli i umieść je w osobnych tabelach.
  • Twórz relacje między tymi nowymi tabelami a ich poprzednikami za pomocą obcych kluczy.

Reguły te można podsumować w prostej instrukcji: 2NF podejmuje próbę zredukowania ilości nadmiarowych danych w tabeli poprzez wyodrębnienie jej, umieszczenie w nowej tabeli (tabelach) i utworzenie relacji między tymi tabelami.

Spójrzmy na przykład. Wyobraź sobie sklep internetowy, który utrzymuje informacje o klientach w bazie danych. Mogą mieć jedną tabelę o nazwie Klienci z następującymi elementami:

  • CustNum
  • Imię
  • Nazwisko
  • Adres
  • Miasto
  • Stan
  • zamek błyskawiczny

Krótkie spojrzenie na tę tabelę pokazuje niewielką ilość zbędnych danych. Przechowujemy wpisy "Sea Cliff, NY 11579" i "Miami, FL 33157" dwa razy. To może nie wydawać się zbyt dużym dodatkiem do pamięci w naszym prostym przykładzie, ale wyobraźmy sobie zmarnowaną przestrzeń, jeśli mamy tysiące rzędów w naszym stole. Dodatkowo, jeśli kod pocztowy do Sea Cliff miał ulec zmianie, musielibyśmy wprowadzić tę zmianę w wielu miejscach w bazie danych.

W strukturze bazy danych zgodnej z 2NF ta nadmiarowa informacja jest pobierana i przechowywana w osobnej tabeli. Nasza nowa tabela (nazwijmy ją ZIP) może mieć następujące pola:

  • zamek błyskawiczny
  • Miasto
  • Stan

Jeśli chcemy być super-wydajni, możemy nawet wypełnić tę tabelę z wyprzedzeniem - poczta udostępnia katalog wszystkich ważnych kodów pocztowych i ich relacji miasto / państwo. Z pewnością spotkałeś się z sytuacją, w której ten typ bazy danych został wykorzystany. Ktoś, kto odebrał zamówienie, najpierw zapytał Cię o kod pocztowy, a następnie znał miasto i stan, z którego dzwoniłeś. Ten rodzaj układu zmniejsza błąd operatora i zwiększa wydajność.

Po usunięciu powielonych danych z tabeli Klienci spełniliśmy pierwszą zasadę drugiej normalnej formy. Nadal musimy używać klucza obcego, aby powiązać dwie tabele. Wykorzystamy kod pocztowy (klucz podstawowy z tabeli ZIP), aby utworzyć tę relację. Oto nasza nowa tabela Klienci:

  • CustNum
  • Imię
  • Nazwisko
  • Adres
  • zamek błyskawiczny

Obecnie zminimalizowaliśmy ilość zbędnych informacji przechowywanych w bazie danych, a nasza struktura ma drugą normalną formę.