Datenbanken
Anomalien
Bei Erstellungen von Datenbanken kann es zu Problemen kommen, wenn die Datenbank nicht normalisiert aufgebaut ist. Diese Probleme nennt an Anomalien. Es gibt drei Arten von Anomalien, die Update-Anomalie, die Insert-Anomalie und die Delete-Anomalie.
Update-Anomalie
Um die Update-Anomalie zu veranschaulichen, werfen wir zuerst einen Blick auf die folgende Tabelle:
Die gelb hinterlegten Zellen dienen zur Veranschaulichung des Problems: Es gibt zwei Ansprechpartner für die Adresse Hoher Wall 12. Auf den ersten Blick ist diese Tatsache völlig unkritisch, da wir weiterhin alle benötigten Informationen aus der Tabelle bekommen können. Problematisch wird es dann, wenn die ABC GmbH beschließt ihren Sitz zu verlegen. Nun müsste die Anschrift für dieses Unternehmen in zwei verschiedenen Zeilen geändert werden. Bei einer Tabelle mit drei Zeilen ist das keine große Sache, aber stellt euch eine Tabelle mit 3.000 oder gar 300.000 Zeilen vor. Es muss also durch Mensch oder Maschine dafür gesorgt werden, dass alle betroffenen Zeilen aktualisiert werden. Auch muss darauf geachtet werden, dass keine Fehler in einer der Zeilen gemacht wird. Wird nur eine Zeile falsch aktualisiert, kann dies schwere Folgefehler für ein Unternehmen haben. Dies Problem, also die Tatsache, dass man mehrere Zeilen aktualisieren muss und darauf achten muss keine Fehler zu machen, nennt man die Update-Anomalie.
Um diese Anomalie zu umgehen, sollte für den Namen und die Anschrift aller Unternehmen eine eigene Tabelle angelegt werden. Das ganze würde wie folgt aussehen:
Nun befinden sich alle relevanten Daten der ABC GmbH in einer Tabelle. Schauen wir uns nun die Tabelle mit der Ansprechpartner in den Unternehmen an, sehen wir statt des Namens und der Anschrift des Unternehmens nun eine Spalte mit der Bezeichnung Firmen-Id. Diese Spalte enthält einen Verweis auf die Spalte Firmen-Id in der Tabelle der Unternehmen. Wenn wir herausfinden sollen, für welches Unternehmen Ralf Schulte der Ansprechpartner ist, dann sehen wir uns die Firmen-Id an und sichen nach dem ensprechenden Eintrag in der Spalte Firmen-Id in der Unternehmenstabelle. Auf diese Weise haben wir eine Beziehung zwischen den beiden getrennten Tabellen hergestellt. Solche Beziehungen werden auch Relationen genannt, woher auch der Name relationale Datenbanken stammt.
Diese Aufteilung erlaubt es, die Anschrift für die ABC GmbH zu ändern, ohne für jeden Ansprechpartner eine eigene Zeile ändern zu müssen. In diesem Fall genügt es, eine einzige Zeile für beliebig viele Ansprechpartner innerhalb eines Unternehmens zu aktualisieren. Somit ist die Update-Anomalie umgangen.
Delete Anomalie
Um die Delete-Anomalie zu veranschaulichen, werfen wir zuerst einen Blick auf die folgende Tabelle:
Die gelb hinterlegten Zellen dienen zur Veranschaulichung des Problems: Wenn wir in der dritten Zeile die Informationen zu Frau Haber löschen wollen, sieht das nach einer recht einfachen Aufgabe aus. Wenn wir diese Zeile entfernen, haben wir jedoch ein Problem. Was ist, wenn jemand mit Hilfe der Datenbank einen Bericht über alle Firmenkontakte des letzten Jahres erstellen möchte? Wenn wir bei dieser Aufteilung der Tabelle Informationen zu Frau Haber löschen, löschen wir auch alle Daten der IT-AG. Dieses Problem wird als Delete-Anomalie bezeichnet. Wenn wir die Daten jedoch so wie im letzten Abschnitt (siehe normalisierte Tabellen unter Punkt Update Anomalie) getrennt auf zwei Tabellen verteilen, kann man beruhigt die Kontaktperson Eva Haber löschen, ohne Informationen überdie IT-AG zu verlieren.
Insert Anomalie
Um die Insert-Anomalie zu veranschaulichen, werfen wir zuerst einen Blick auf die folgende Tabelle:
Die gelb hinterlegten Zellen dienen zur Veranschaulichung des Problems: Man sieht leicht, dass diese Tabelle für die Daten der Kontaktpersonen gedacht ist, nicht unbedingt, für die Daten der Unternehmen. Wenn man nun eine weitere Firma in die Datenbank aufnehmen wollen, aber noch keine Kontaktperson im Unternehmen haben, müsste man warten, bis man einen Kontakt hat, damit alle Spalten der Zeile sinnvoll gefüllt werden können. Dies nennt man die Insert-Anomalie. Sie ist in der Praxis eine unsinnige Einschränkung und kann ebenfalls durch mehrere Tabellen umgangen werden.
Das Problem der Inkonsistenz
Wem das Wort Inkonsistenz etwas sagt, wird dies schnell in der Delete- und Insert-Anomalie entdecken. Löscht man Frau Haber, so gibt es in der Kontaktpersonentabelle keine Kontaktperson die eine Beziehung zu der IT-AG aufweist. Somit ist die IT-AG inkonsistent. Gleiches tritt auf wenn wir eine neue Firma in die Unternehmenstabelle eintragen ohne eine Kontaktperson zu kennen. Die neue Firma ist dann automatisch inkonsistent, da sie keine Beziehung zu einer Kontaktperson hat.