Anomalie: Unterschied zwischen den Versionen
| (2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 9: | Zeile 9: | ||
Redundanz, Inkonsistenz, Einfügeanomalie, Löschanomalie, Änderungsanomlie | Redundanz, Inkonsistenz, Einfügeanomalie, Löschanomalie, Änderungsanomlie | ||
==Erklärung der Fachbegriffe== | |||
* '''Redundanz''': <br/>Daten sollten möglichst nicht mehrfach gespeichert werden. Ein gutes Schema organisiert Informationen so, dass jedes Faktum nur einmal vorkommt. Das spart Speicher und erleichtert Pflege. | |||
* '''Inkonsistenz''': <br/>Wenn redundante Daten vorhanden sind, kann es passieren, dass sie unterschiedlich aktualisiert werden. Je nachdem, wie man die Datenbank abfragt, erhält man dann unterschiedliche Informationen.<br/>Das ist für die Datenbank viel schlimmer als inkorrekte Daten: Die fallen sofort auf und können einfach korrigiert werden. | |||
* '''Anomalien''': <br/>Schlechte Schemata führen zu sogenannten Einfüge-, Änderungs- oder Löschanomalien. Dadurch kann man Daten nicht sinnvoll speichern, ändern oder löschen, ohne unbeabsichtigte Nebenwirkungen zu erzeugen. <br/>Das wird unten im Beispiel gezeigt. | |||
=Gutes Datenbankschema= | =Gutes Datenbankschema= | ||
| Zeile 55: | Zeile 60: | ||
|} | |} | ||
Wie man sieht, sind die Informationen über Name und Vorname hier '''redundant'''. | Wie man sieht, sind die Informationen über Name und Vorname hier '''redundant''' gespeichert. <br/> | ||
(Dass die schuelerId und der Kurs als Teile des Primärschlüssels mehrfach vorkommen, ist technisch bedingt und keine Redundanz.) | |||
= Einfüge-Anomalie = | = Einfüge-Anomalie = | ||
| Zeile 73: | Zeile 79: | ||
'''Beispiel:''' | '''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'''. | Max Stein heißt eigentlich Maximilian Stein und möchte auch auf Kurslisten so erscheinen. <br/> | ||
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.<br/> | |||
So hat jetzt der Schüler mit der schuelerid 37 in der Datenbank zwei verschiedene Vornamen: Max bzw. Maximilian.<br/> | |||
Die Datenbank ist damit also '''inkonsistent'''. | |||
= Lösch-Anomalie = | = Lösch-Anomalie = | ||
Aktuelle Version vom 5. Mai 2026, 13:55 Uhr
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.
Fachbegriffe
Redundanz, Inkonsistenz, Einfügeanomalie, Löschanomalie, Änderungsanomlie
Erklärung der Fachbegriffe
- Redundanz:
Daten sollten möglichst nicht mehrfach gespeichert werden. Ein gutes Schema organisiert Informationen so, dass jedes Faktum nur einmal vorkommt. Das spart Speicher und erleichtert Pflege. - Inkonsistenz:
Wenn redundante Daten vorhanden sind, kann es passieren, dass sie unterschiedlich aktualisiert werden. Je nachdem, wie man die Datenbank abfragt, erhält man dann unterschiedliche Informationen.
Das ist für die Datenbank viel schlimmer als inkorrekte Daten: Die fallen sofort auf und können einfach korrigiert werden. - Anomalien:
Schlechte Schemata führen zu sogenannten Einfüge-, Änderungs- oder Löschanomalien. Dadurch kann man Daten nicht sinnvoll speichern, ändern oder löschen, ohne unbeabsichtigte Nebenwirkungen zu erzeugen.
Das wird unten im Beispiel gezeigt.
Gutes Datenbankschema
Für ein gutes Datenbankschema sind folgende Kriterien wichtig:
- möglichst keine Redundanzen
- Vermeidung von Inkonsistenzen
- Verhinderung von Anomalien.
Anomalien
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 gespeichert.
(Dass die schuelerId und der Kurs als Teile des Primärschlüssels mehrfach vorkommen, ist technisch bedingt und keine Redundanz.)
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.