Doppelt gespeichert — Redundanz
- Redundanz:dieselbe Information steht mehrfach in der Datenbank, z. B. der Raum einer AG in jeder Anmeldung.
- Inkonsistenz:redundante Kopien widersprechen sich, weil nur ein Teil geändert wurde.
- Änderungsanomalie:eine Änderung muss in vielen Zeilen erfolgen; wird eine vergessen, ist die Datenbank inkonsistent.
- Einfügeanomalie:eine neue Information lässt sich nicht speichern, weil andere Angaben fehlen — z. B. eine AG ohne Teilnehmer.
- Löschanomalie:beim Löschen eines Datensatzes geht ungewollt weitere Information verloren.
Redundanz führt zu Anomalien beim Einfügen, Ändern und Löschen — Ursache: Informationen über zwei verschiedene Dinge stehen in einer Tabelle.
Zerlegen statt wiederholen
- Grundsatz:jede Tatsache nur einmal speichern — je Tabelle ein Objekttyp (Schüler, AG, …).
- Abspalten:Attribute, die nur von einem anderen Attribut abhängen, wandern mit diesem in eine eigene Tabelle.
- Verbindung:das gemeinsame Attribut wird Primärschlüssel der neuen Tabelle und bleibt als Fremdschlüssel zurück.
- Verlustfrei:setzt man die Teiltabellen wieder zusammen, entstehen genau die alten Datensätze — keine fehlen, keine kommen hinzu.
- Gewollte Wiederholung:Fremdschlüsselwerte wie
Robotikdürfen mehrfach vorkommen; sie sind nur Verweise.
Klicke die Spaltennamen unter der Zeichnung an: Jeder Klick schickt die Spalte nach links (bleibt), nach rechts (neue Tabelle) oder in beide Tabellen (Verbindung). Finde eine Zerlegung, bei der alle drei Anomalie-Checks grün werden.
Halte fest: Leitung und Raum hängen nur von der AG ab. Wandern sie mit der AG als Schlüssel in eine eigene Tabelle, steht jede Tatsache genau einmal da — und die Spalte AG bleibt als Fremdschlüssel die Verbindung.
Herleitung:
AG(AG, Leitung, Raum)
AG(AG, Leitung, Raum)
Teilnahme(SchülerNr, AG)
Zerlegung: je Objekttyp eine Tabelle; verbunden über Fremdschlüssel, die auf den Primärschlüssel der abgespaltenen Tabelle zeigen.
Allgemeine Hinweise
Gleicher Wert ist nicht gleich Redundanz
Steht 10a in vielen Zeilen, ist das keine Redundanz — jeder Schüler hat seine Klasse. Redundant ist eine Tatsache erst, wenn sie dieselbe Aussage wiederholt.
Nicht die Verbindung wegzerlegen
Fehlt das gemeinsame Attribut in einer Teiltabelle, lässt sich nicht mehr sagen, wer in welcher AG ist. Die Zerlegung ist dann verlustbehaftet.
Die Anomalie-Probe
Frage bei jeder Tabelle: Kann ich etwas Neues allein eintragen? Muss ich für eine Änderung mehrere Zeilen anfassen? Verliere ich beim Löschen etwas anderes?
