3. Normalform
Hinweise zum Kapitel 3. NF
Dieses Thema ist nur mittelmäßig gelungen. Wir arbeiten das irgendwann mal um.
Aber das ist nicht so schlimm. Kündigen Sie den Schüler/innen an, dass Sie ihnen jetzt halt mal 15 Minuten frontal was reindrücken, was kompliziert wirkt, dass sie das aber automatisch richtig machen werden. (Machen sie auch!). Fürs schriftliche Abi ist das hier etwas dünn, aber wie gesagt, bald arbeiten wir das um.
Hä? Dritte was?
3. Normalform! Komm, ich erklär's dir! Das musst du unbedingt berücksichtigen, wenn du für Rousseau die Schuldatenbank baust!
Die 3. Normalform
Mehrmals das Gleiche. Also: redundant.
Unser Entwurf für die Datenbank sieht bisher so aus:
Hier müsste uns auffallen, dass wir überflüssige Informationen speichern! Wir speichern nämlich bei jedem Schüler einer Klasse das Klassenzimmer ab. Eigentlich müsste es doch reichen, für eine Klasse das Klassenzimmer ein einziges Mal zu speichern!
Eine Information, die wir mehrfach abspeichern, nennt man eine Redundanz. Redundanzen sollte man in Datenbanken vor allem deshalb vermeiden, weil sie die Datenbank anfällig für Fehler machen. Wenn du Zeit hast, google mal nach den Datenbank-Anomalien: Einfüge-Anomalie, Änderungs-Anomalie und Lösch-Anomalie.
Redundanzen beseitigt man so:
Wir teilen in mehrere Tabellen auf!
Schau dir mal die Klasse 12-1 an! Bei der speichern wir jedes Klassenzimmer jetzt nur ein einziges Mal. Also genau so, wie wir das haben wollen. Damit haben wir die Redundanzen beseitigt, denn es gibt keine doppelten Informationen mehr in der Datenbank.
Und wie hängen die Tabellen jetzt zusammen?
Möglicherweise ist dir aufgefallen, dass es eine gute und eine schlechte Nachricht gibt.
Die gute Nachricht: Wir haben keine Redundanzen mehr!
Die schlechte Nachricht: Man weiß jetzt gar nicht mehr, welcher Schüler in welcher Klasse ist, seit wir in zwei Tabellen aufgeteilt haben. Aber du weißt bestimmt, wie wir das lösen:
Fremdschlüssel: Wir merken uns was!
Das Problem lösen wir so: Wir merken uns beim Schüler, in welcher Klasse er ist. Logisch, nicht wahr?
Die klassenNr ist in der linken Tabelle ein Fremdschlüssel. Hier noch mal als Erinnerung, was ein Fremschlüssel war:
Fremdschlüssel: Definition
Ein Fremdschlüssel ist ein Attribut, das auf einen Primärschlüssel in einer anderen Tabelle verweist.
3. Normalform - Definition
Es genügt, wenn du dir Folgendes merkst:
Eine Datenbank, in der man nach jeder Information sortieren kann und die keine Redundanzen enthält, befindet sich in der sogenannten 3. Normalform!
Wenn du eine Datenbank baust, sollte die immer in der 3. Normalform sein. Dann ist alles super!
Na, das war doch ganz einfach! Jetzt schludere ich das kurz für die Rousseau hin und …
Denkst du wohl. Wenn du das für sie so ausdruckst, kriegt sie einen Schreikrampf. 😤
Wieso das denn? Ist doch perfekt!
Glaubst du, sie freut sich, wenn du wegen zwei Tabellen 500 Meter Papier ausspuckst, 🧻 auf dem tausend Namen stehen? Sie will doch nur das Modell, also die Struktur der Datenbank. Es reicht ihr, wenn sie weiß, welche Tabellen und welche Attribute und welche Primärschlüssel, capisce?
Aber du hast es doch eben auch so …
Die Tabellen mit den darin enthaltenen Daten habe ich nur hingemalt, damit sich ein Erbsenhirn 🧠 wie deines es ist sich das Ganze besser vorstellen kann. Aber es ist zu aufwändig, immer alle Daten hinzuschreiben.
(kleinlaut) Ja … Aber wie kann man es sonst machen?
Du machst einfach ein erweitertes Entity-Relationship-Modell (eERM).
Die Maulwurfstadt
Ein streng geheimes Projekt: In einem kleinen Dorf testet das Cyber-HQ eine neue Überwachungssoftware …