Skip to main content

Umieszczanie bazy danych w pierwszej normalnej formie

Microsoft Access szkolenie normalizacja baz danych #7 (Może 2024)

Microsoft Access szkolenie normalizacja baz danych #7 (Może 2024)
Anonim

Pierwsza normalna forma (1NF) określa podstawowe zasady dla zorganizowanej bazy danych:

  • Wyeliminuj powtarzające się kolumny z tej samej tabeli.
  • Twórz oddzielne tabele dla każdej grupy powiązanych danych i identyfikuj każdy wiersz za pomocą unikalnej kolumny (klucz podstawowy).

Co oznaczają te zasady przy kontakcie z praktycznym projektem bazy danych? To całkiem proste.

Wyeliminuj kopiowanie

Pierwsza zasada mówi, że nie wolno powielać danych w tym samym wierszu tabeli. W środowisku bazy danych pojęcie to określa się mianem atomowości tabeli. Tabele zgodne z tą zasadą są uważane za atomowe. Przeanalizujmy tę zasadę za pomocą klasycznego przykładu: tabeli w bazie danych zasobów ludzkich, która przechowuje relację menedżer-podwładny. Na potrzeby naszego przykładu narzucimy regułę biznesową, że każdy menedżer może mieć jednego lub więcej podwładnych, podczas gdy każdy podwładny może mieć tylko jednego menedżera.

Intuicyjnie, tworząc listę lub arkusz kalkulacyjny do śledzenia tych informacji, możemy utworzyć tabelę z następującymi polami:

  • Menedżer
  • Podrzędny1
  • Subordinate2
  • Subordinate3
  • Podrzędny4

Pamiętaj jednak o pierwszej zasadzie narzuconej przez 1NF: Wyeliminuj powtarzające się kolumny z tej samej tabeli. Oczywiście kolumny Subordinate1-Subordinate4 są duplikatywne. Poświęć chwilę i zastanów się nad problemami wynikającymi z tego scenariusza. Jeśli menedżer ma tylko jednego podwładnego, kolumny Subordinate2-Subordinate4 to po prostu zmarnowane miejsce do przechowywania (cenny towar z bazy danych). Co więcej, wyobraź sobie przypadek, w którym menedżer ma już 4 podwładnych - co się stanie, jeśli przyjmie innego pracownika? Cała struktura tabeli wymagałaby modyfikacji.

W tym momencie drugi jasny pomysł zwykle pojawia się w przypadku nowicjuszy baz danych: nie chcemy mieć więcej niż jednej kolumny i chcemy pozwolić na elastyczne przechowywanie danych. Spróbujmy czegoś takiego:

  • Menedżer
  • Podwładni

A pole Subordinates będzie zawierać wiele wpisów w postaci "Mary, Bill, Joe."

To rozwiązanie jest bliższe, ale również nie spełnia wymagań. Kolumna podwładnych wciąż jest powielana i nie jest atomowa. Co się dzieje, gdy musimy dodać lub usunąć podwładnego? Musimy przeczytać i napisać całą zawartość tabeli. To nie jest wielka sprawa w tej sytuacji, ale co, jeśli jeden menedżer ma sto pracowników? Ponadto komplikuje proces wybierania danych z bazy danych w przyszłych zapytaniach.

Oto tabela, która spełnia pierwszą regułę 1NF:

  • Menedżer
  • Podrzędny

W takim przypadku każdy podwładny ma jeden wpis, ale menedżerowie mogą mieć wiele wpisów.

Zidentyfikuj klucz podstawowy

A co z drugą zasadą: identyfikuj każdy wiersz za pomocą unikalnej kolumny lub zestawu kolumn (klucz podstawowy). Możesz przyjrzeć się powyższej tabeli i zasugerować użycie podrzędnej kolumny jako klucza podstawowego. W rzeczywistości kolumna podrzędna jest dobrym kandydatem do klucza podstawowego, ponieważ nasze reguły biznesowe określały, że każdy podwładny może mieć tylko jednego menedżera. Jednak dane, które wybieramy do przechowywania w naszej tabeli, są mniej niż idealnym rozwiązaniem. Co się stanie, jeśli zatrudnimy innego pracownika o imieniu Jim? Jak przechowujemy jego relację menedżer-podwładny w bazie danych?

Najlepiej używać naprawdę unikalnego identyfikatora (takiego jak identyfikator pracownika) jako klucza głównego. Nasz stół finałowy będzie wyglądał tak:

  • Identyfikator menedżera
  • Identyfikator podrzędny

Teraz nasz stół jest w pierwszej normalnej formie! Poza tym istnieją opcje umieszczania twojej bazy danych w drugiej normalnej formie, a także trzeciej normalnej formie, jeśli jesteś podekscytowany jeszcze większą organizacją.