Markus Mühlich: Tabelle normalisieren oder nicht?

Beitrag lesen

Guten Morgen, :-)

Wo ist der Vorteil, anstelle des Stadtnamens wiederholt sich hier in Tabelle 3 immer die StadtID.

Redundanz heißt/ist das Zauberwort. Sich wiederholende Stadtnamen und Stadtteile blähen eine Datenbank unnötig auf, erhöhen die Gefahr von Ikonsistenz und vermindern die Performance.

Zudem ist der Wartungsaufwand deutlich geringer.

Tabelle:

ID
stadtteil
stadt

zum Beispiel:

Köln hat schätzungweise 30 Stadtteile. Bei Deiner Tabelle würdest Du daher den Namen Köln ca. 30 mal eingeben müssen. Für die anderen Großstädte wiederholt sich diese Prozedur. Neben viel Arbeit, stellt diese Variante natürlich eine hohe Gefahr für Tippfehler (Köln,Kölm,Kölln usw.) dar.

Vernünftige Abfragen und Auswertungen sind auch nicht mehr möglich. Ändert sich ein Stadtname, müsstest Du wiederum jeden Datensatz anpacken und ändern (mit den o.g. Nachteilen).

Für Stadtteile ist der Arbeitsaufwand noch höher, da sich wahrscheinlich sehr häufig gleiche Stadtteilnamen in unertschiedlichen Städten wiederfinden werden.

Kurz, eine vernünftige Planung und Architektur einer relationalen Datenbank erspart später erhöhten Wartungsaufwand, steigert die Performance, verhindert Redundanzen (obwohl diese in seltenen Fällen sogar erwünscht sind) und Inkosistenzen.

Dieses Verhalten steigert unproportinal stark zum Anwachsen Deiner Datensätze.

Viele Grüße aus Köln
Markus