Grundlagen der Programmierung: Datenbanken

Denormalisierung

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Teilweise werden einzelne Normalformen bewusst aus Gründen der Zweckmäßigkeit innerhalb einer Datenbank ignoriert. Dies sollte jedoch ausschließlich in Ausnahmefällen passieren.

Transkript

Wir sollten unser Datenbank Design immer auf die erste, zweite und dritte Normalform bringen. Es sind aber noch mehr Kriterien vorhanden. Es gibt auch eine vierte, fünfte und sechste Normalform und es gibt sogar eine sogenannte Boyce-Codd-Normalform. Im geschäftlichen Umfeld erwartet man üblicherweise, dass eine Datenbank in der dritten Normalform vorliegt, und sicherlich dürfte das auch für ein Training, wie dieses hier, genügen. Nun werden Sie aber in der Praxis viele Tabellen vorfinden, die die Normalisierungsregeln absichtlich verletzen. Bei anderen scheint es so zu sein, doch sie verletzen die Regeln nicht tatsächlich. Hier ein Beispiel dazu. Nehmen wir eine "Employee" Tabelle für Mitarbeiter, in der ich eine E-Mail-Adresse und eine Telefonnummer speichere. Was passiert nun, wenn ich eine weitere E-Mail Adresse hinzufügen möchte, eine andere Telefonnummer. Technisch lässt sich dies als Verletzung der ersten Normalform beschreiben. Es ist eine Wiederholungsgruppe. In der Praxis kann es aber durchaus zweckmäßig sein, eine E-Mail und E-Mail Zweit-Spalte zuzulassen, oder vielleicht eine Home-Phone und Mobile-Phone Spalte, anstatt alles in mehrere Tabellen aufzuteilen. Diese Vorgehensweise bezeichnet man als Denormalisierung. Man ist sich dessen bewusst, dass etwas in eine andere Tabelle ausgelagert, etwas normalisiert werden könnte. Man könnte die offiziellen Regeln auch befolgen, doch aus Gründen der Zweckmäßigkeit und oder der Leistung macht man das einfach nicht. Wenn man allerdings in diesem Fall eine flexible Anzahl von Email Adressen, oder eine fexible Anzahl von Telefonnummern unterstützen muss, oder zusätzliche Daten damit zu verknüpfen sind, dann sollten Sie auf jeden Fall zusätzliche Tabellen auch tatsächlich erstellen. Doch eine Differenzierung ist hier wichtig. Bei der Normalisierung geht es darum, die Qualität der Daten zu gewährleisten und Redundanz zu verringern. Doch das ist nicht in erster Linie eine Performance Entscheidung, und da Normalisierung oftmals das Aufteilen der Daten auf mehrere Tabellen verlangt, kann die Performance gelegentlich darunter sogar leiden. Nur manchmal entscheidet man sich zur Performance-Verbesserung eben für eine Denormalisierung. Ein Beispiel, dass wir ein Problem der Normalisierung, beziehungsweise Denormalisierung aussehen mag, was aber eigentlich gar keins darstellt, ist eine Tabelle voller Adressinformationen. Die Situation kann ein bisschen irreführend sein. Nehmen wir eine Tabelle, wie diese. Die Postleitzahl, ZIP-Code, wird hier als letzte Spalte gespeichert. Theoretisch könnte ich die Stadt oder den Staat allein aus der Postleitzahl ermitteln. Wenn ich sie in ihre eigene Tabelle ausgelagert hätte. Unter dem technischen Aspekt habe ich die Nicht-Schlüsselfelder "City" und "State", die von einem anderen Nicht-Schlüsselfeld, dem ZIP-Code, abhängig sind und sich allein über diesen ZIP-Code herausfinden ließen. Wenn ich eine derartige Tabelle normalisieren würde, wäre das eine ziemlich übertriebene Aktion. Das führt später zu umständlichen Operationen, wenn ich die Daten lesen oder bearbeiten will. Manchmal wählen Sie eine Normalisierung oder manchmal eine Denormalisierung. Doch tun Sie dies bitte bewusst und nicht irgendwie aufs Geratewohl hinaus. Prinzipiell sind es die drei Schritte, die wir durchlaufen sollten. Erste Normalform, zweite Normalform und die dritte Normalform. Bei der ersten Normalform beseitigen wir Wiederholungswerte und Wiederholungsgruppen. Bei der zweite Normalform dürfen keine Werte nur auf einen Teil eines zusammengesetzten Schlüssels basieren, und schließlich ist bei der dritten Normalform sicherzustellen, dass keiner ihrer Nicht-Schlüsselwerte auf einem anderen Nicht-Schlüsselwert basiert, oder von diesen bestimmt wird. Wenn Sie mit Ihrem Datenbankentwurf diese drei Schritte durchlaufen, wird sich die Qualität Ihrer Daten erheblich verbessern.

Grundlagen der Programmierung: Datenbanken

Fangen Sie ganz von vorne an und erfahren Sie alles über die Grundlagen zu Datenbanken und deren Einsatzzwecke, um danach eigene Lösungen und Anwendungen zu entwickeln.

3 Std. 6 min (39 Videos)
Empfehlenswert
Anonym
Super Training, gut zusammenstellter Einstieg, angenehmer Trainer. Würde mich über ein entsprechendes Aufbautraining freuen. Weiter so! :-)

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!