Normalformen?
Normalformen sind ein Prozess um eine Datenbank, so umstrukturiert werden, dass keine Redundanzen mehr vorhanden sind.
Erste Normalform
Um eine Datenbank in die erste Normalform zu bringen, müssen alle ihre werte atomisiert sein.
Diese Tabelle
| SchülerId | Name | KursId | Kurse | Noten | Ag | Mitgliederzahl | Rathauslevel | Gold/Sekunde |
|---|---|---|---|---|---|---|---|---|
| 1 | Richard Müller | 1,2 | Mathe, Englisch | 2; 1 | Basteln | 35 | 13 | 7000 |
| 2 | Max Muster | 3,4 | Kunst, Geschichte | 2; 1 | Chemie | 12 | 10 | 4000 |
| 3 | Jonas Kruse | 1,5 | Mathe, Sport | 4; 2 | Basteln | 25 | 12 | 6000 |
| 4 | Gustav Zuse | 6,7 | Religion, Biologie | 3; 1 | American Football | 3 | 13 | 7000 |
Wird in der ersten Normalform zu:
| SchülerId | Name | Vorname | KursId | Kurs | Noten | AG | Mitgliederzahl | Rathauslevel | Gold/Sekunde |
| 1 | Müller | Richard | 1 | Mathe | 2 | Basteln | 35 | 13 | 7000 |
| 1 | Müller | Richard | 2 | English | 1 | Basteln | 35 | 13 | 7000 |
| 2 | Muster | Max | 3 | Kunst | 2 | Chemie | 12 | 10 | 4000 |
| 2 | Muster | Max | 4 | Geschichte | 1 | Chemie | 12 | 10 | 4000 |
| 3 | Kruse | Jonas | 1 | Mathe | 4 | Basteln | 25 | 12 | 6000 |
| 3 | Kruse | Jonas | 5 | Sport | 2 | Basteln | 25 | 12 | 6000 |
| 4 | Zuse | Gustav | 6 | Religion | 3 | American Football | 3 | 13 | 7000 |
| 4 | Zuse | Gustav | 7 | Biologie | 1 | American Football | 3 | 13 | 7000 |
SchülerId → Name, Vorname, Rathauslevem, Gold/Sekunde
KursId → Kurs
(SchülerId, KursId) → Noten
Ag → Mitgliederzahl
Zweite Normalform
Wenn bei einer Tabelle in der 1NF der Primärschlussel aus nur einem Attribut besteht, liegt automatisch die 2NF vor
Um die 1NF in die 2NF zu bringen müssen die funktionalen Abhängigkeiten ermittelt werden und jeweil in eigene Tabellen gebracht werden.
| SchülerID | Name | Vorname | Rathauslevel | Gold/Sekunde |
| 1 | Müller | Richard | 13 | 7000 |
| 2 | Muster | Max | 10 | 4000 |
| 3 | Kruse | Jonas | 12 | 6000 |
| 4 | Zuse | Gustav | 13 | 7000 |
| KursID | Kurs | Schüler[pfeil] |
| 1 | Mathe | |
| 2 | English | |
| 3 | Kunst | |
| 4 | Geschichte | |
| 5 | Sport | |
| 6 | Religion | |
| 7 | Biologie |
| Noten | SchülerID [pfeil] | KURSID [pfeil] |
| 1 | 1 | 2 |
| 2 | 1 | 1 |
| 2 | 2 | 3 |
| 1 | 2 | 4 |
| 4 | 3 | 1 |
| 2 | 3 | 5 |
| 3 | 4 | 6 |
| 1 | 4 | 7 |
| AG | Mitgliederzahl |
| Basteln | 35 |
| Chemie | 12 |
| American Football | 3 |
Dritte Normalform
In der Schüler Tabelle liegt eine transitive Abhängigkeit vor:
SchülerId → Rathauslevel → Gold/Sekunde
Um in die dritte Normalform werden transitive Abhängigkeiten in eine separate Tabelle ausgelagert
| Rathaushauslvl | Gold/SEK |
| 13 | 7000 |
| 10 | 4000 |
| 12 | 60 |
| SchülerID | Name | Vorname | Rathauslevel |
| 1 | Müller | Richard | 13 |
| 2 | Muster | Max | 10 |
| 3 | Kruse | Jonas | 12 |
| 4 | Zuse | Gustav | 13 |