DATA
CZAS
IMIENINY
FAZA KSIĘŻYCA
STAFLOTA ⊕ SEKTOR ALFA · BITEDU STATION

Normalizacja to sposób uporządkowania bazy danych, żeby:

Można powiedzieć, że normalizacja to „sprzątanie” bazy danych – rozdzielamy dane na mniejsze, dobrze zorganizowane tabele i łączymy je relacjami.


Dlaczego to ważne?

Wyobraź sobie tabelę uczniów:

ID_uczniaImięNazwiskoKlasaWychowawcaSala
1JanKowalski2ANowak12
2OlaWiśniewska2ANowak12
3PiotrMalinowski2BKowalczyk14

Problem:

Po normalizacji rozbijamy to na osobne tabele:

UCZNIOWIE

ID_uczniaImięNazwiskoID_klasy
1JanKowalski1
2OlaWiśniewska1
3PiotrMalinowski2

KLASY

ID_klasyNazwaWychowawcaSala
12ANowak16
22BKowalczyk14

Teraz zmiana sali dla klasy 2A to tylko jedna poprawka w tabeli KLASY.


Zasady normalizacji

Normalizacja składa się z tzw. form normalnych (NF) – to kolejne etapy porządkowania bazy.

1. Pierwsza forma normalna (1NF)

Źle:

IDImięPrzedmioty
1Janmatematyka, fizyka, informatyka

Dobrze (po 1NF):

IDImięPrzedmiot
1Janmatematyka
1Janfizyka
1Janinformatyka

2. Druga forma normalna (2NF)

Źle:

Tabela OCENY (klucz = [ID_ucznia, ID_przedmiotu])

ID_uczniaID_przedmiotuOcenaImię ucznia
154Jan

„Imię ucznia” nie zależy od całego klucza (ID_ucznia + ID_przedmiotu), tylko od ID_ucznia.

Dobrze:

Osobna tabela UCZNIOWIE z imionami, a tabela OCENY przechowuje tylko ID i ocenę.


3. Trzecia forma normalna (3NF)

Źle:

ID_uczniaKlasaWychowawca
12ANowak

„Wychowawca” nie zależy od ucznia, tylko od klasy.

Dobrze:


Podsumowanie

Normalizacja to proces dzielenia danych na logiczne tabele i łączenia ich relacjami, żeby:

Formy normalizacji (najważniejsze do INF.03):

Film2 (youtube – kanał nieinformatyk)

Zadanie – Normalizacja bazy danych

W pewnej szkole prowadzona jest taka tabela:

ID_uczniaImięNazwiskoKlasaSalaWychowawca
1JanKowalski2A12Nowak
2OlaWiśniewska2A12Nowak
3PiotrMalinowski2B14Kowalczyk
4AnnaZielińska2B14Kowalczyk

Polecenia dla ucznia:

  1. Wskaż, jakie problemy występują w tej tabeli (redundancja, spójność danych).
  2. Podziel dane na dwie tabele zgodnie z zasadami normalizacji (3NF):
    • tabela UCZNIOWIE,
    • tabela KLASY.
  3. Zapisz przykładowe rekordy do obu tabel po normalizacji.
  4. Napisz zapytanie SQL, które wyświetli listę uczniów wraz z ich wychowawcą.

***

ODP