Datenbank Normalisierung?
Hallo, in folgendem Bild ist der Übergang zur zweiten Normalform in die dritte zu sehen. Aber warum macht man den PLZ erst dann zu einem Primärschlüssel?
Wenn ich auf dem Weg von der ersten zur zweiten NF sehe, dass das abhängig voneinander ist, dann ändere ich es sofort und nicht erst in der dritten.
Kann mir das jemand erklären?
4 Antworten
Die PLZ wird nicht zum Primärschlüssel, da es möglich ist, dass eine PLZ für mehrere Orte bzw Ortsteile verwendet wird.
Bei einem Primärschlüssel dürfte es aber nur 1 Ort geben dem die PLZ zugeordnet wird.
Das passiert auch wenn kleine Orte einmal zu einem größeren Ort zusammengefasst wurden und ggf. später wieder getrennt werden in die Ortsteile.
Wenn ich eine Datenbank konzipiere, dann ist die von vorneherein normalisiert. Mit gesundem Menschenverstand und Gefühl für Daten braucht man das alles gar nicht. Außerdem kann eine Datenbank weit mehr als das bisschen, was die Schulbeispiele im Informatikunterricht hergeben.
Vermutlich geht das im Unterricht nicht anders. Das ist so ähnlich wie die Grammatik mit der Sprache. Irgendwie braucht man die Grammatik, aber jedes Kind lernt das Sprechen ohne. Und das obendrein noch schneller als ein Erwachsener in der Schule beim Lernen einer Fremdsprache.
Die Datenbanktechnik ist eigentlich recht simpel. Man braucht ein Gefühl für Daten, man muss wissen, warum es Datentypen gibt, etwas boolsche Logik und das Prinzip des Relationalen. Mit 20 % des Befehlsumfanges von SQL kann man schon ganz nette Aufgaben lösen. Die restlichen 80 % werden für Sonderfälle gebraucht. Das Wichtigste beim Konzipieren einer Datenbankanwendung ist die genaue Kenntnis der Aufgabe, des Betriebsablaufes. Der Auftraggeber hat meistens nur eine nebulöse Ahnung von seinem eigenen Laden und hat nur vage Vorstellungen von dem, was er eigentlich will.
1.Normalform , Atomisierung
Erstmal teilt man alle Daten in einzelne Felder . z.b. Name in Name und Vorname ,
Straße in Straße und Nr .
2.Normalform
Dann geht es um die funktionale Abhängigkeiten . Zweite Normalform ist wenn die 1. Normalform vorhanden ist und alle nicht Schlüsselattribute von allen ganzen Schlüsseln abhängig ist.
Also Kunde hat Wohnsitz in Straße
3.Normalform
2.Normalform muss vorliegen und nun werden nicht Schlüsselattribut aus ihrer transitiven Abhängigkeit gelöst wurden
Transitiv ist also wenn der Ort transitiv abhängig ist vom Namen oder Straße aber eigentlich nur von PLZ abhängig ist . Bzw Ort nun Primärschlüssel Kunde hat.
Die 3.Normalform macht es Monothematisch . Also nur auf dem Zusammenhang der nötig ist . PLZ , Ort .
Jetzt könnte man denken das auch Straße dazu gehört , das ist aber nicht so in Großstäten hat man in der gleichen Straße je nach Hausnummer eine bestimmte PLZ.
Die 3. Normalform trennt also alle Abhängigkeiten in seine monothematischen Komponenten
Theoretisch kann man das noch auch Normalform 4 und 5 bringen . Ist aber pratisch unpraktisch :)
Die erste Tabelle zeigt, dass jede Spalte atomare Werte enthält (1. NF) und die Kriterien der zweiten Normalform erfüllt sind, da der Schlüssel nicht zusammengesetzt ist. Somit ist sie in der zweiten Normalform.
In der Praxis kannst du die zweite Normalform überspringen und gleich alles so ändern, dass es in der dritten vorliegt.
Zur PLZ: Umgekehrt haben manchmal auch mehrere kleine Gemeinden dieselbe Postleitzahl. Ob die sich auch mit ihren Straßennamen aufeinander abstimmen, weiß ich nicht.