Anomalie
Anomalien führen dazu, dass Datenbanktabellen ein unerwünschtes Verhalten zeigen.
Häufig kann es durch Redundanz (=eine Information ist in der Datenbank mehrfach vorhanden) zu Anomalien kommen.
Beispiel
Die Anomalien werden anhand folgender Beispieltabelle aus dem Schulbereich erklärt.
Die (nicht normalisierte!) Tabelle Kursbelegung soll darstellen, welche Schüler welche Kurse belegt haben und welche Note sie dafür bekommen haben. Als Primärschlüssel dient die Kombination aus den Attributen schuelerid und Kurs.
Kursbelegung
schuelerid | name | vorname | kurs | note |
---|---|---|---|---|
37 | Stein | Max | IF-LK | 2 |
37 | Stein | Max | D-LK | 2 |
45 | Müller | Hanna | IF-LK | 1 |
45 | Müller | Hanna | M-LK | 3 |
Wie man sieht, sind die Informationen über Name und Vorname hier redundant.
Einfüge-Anomalie
Beim Einfügen von Daten in eine Datenbank spricht man von einer Einfüge-Anomalie, wenn eine neue Entität (=Zeile) nicht richtig in die Datenbank eingetragen werden kann, weil nicht zu allen Attributen (Spalten) Werte vorliegen. Es kann z.B. vorkommen, dass Angaben zum Zeitpunkt des Eintragens noch fehlen.
Beispiel:
In der Tabelle tritt eine Einfügeanomalie auf, wenn ein neuer Schüler eingefügt werden soll, dem aber noch kein Kurs zugewiesen wurde. Man kann ihn vorerst nicht einfügen, da der Kurs Teil des Primärschlüssels ist, aber der Kurs ist ja noch unbekannt!
Änderungs-Anomalie
Beim Ändern von Daten spricht man von einer Änderungs-Anomalie, wenn nicht alle redundanten Vorkommen eines Attributes zugleich geändert werden. Das kann zu Inkonsistenz führen.
Beispiel:
Max Stein heißt eigentlich Maximilian Stein und möchte auch auf Kurslisten so erscheinen. Durch ein technisches Versehen wird aber nur in der ersten Zeile der Name von Max auf Maximilian geändert, nicht aber in der zweiten Zeile. So hat jetzt der Schüler mit der schuelerid 37 in der Datenbank zwei verschiedene Vornamen: Max bzw. Maximilian. Die Datenbank ist damit also inkonsistent.
Lösch-Anomalie
Eine Lösch-Anomalie entsteht, wenn durch das Löschen eines Datensatzes mehr Informationen als erwünscht verloren gehen. Sie entsteht, wenn ein Datensatz mehrere unabhängige Informationen enthält. Durch das Löschen der einen Information wird dann auch die andere gelöscht, obwohl diese noch benötigt wird.
Beispiel:
Wenn der Schüler Max Stein die Schule verlässt und deswegen aus der Tabelle gelöscht wird, ist auch der Kurs D-LK verschwunden!
Vermeidung von Anomalien
Um Anomalien zu vermeiden, werden Datenbanken normalisiert.