100%

Wahrung referenzieller Integrität

Lektion Progress

Wahrung referenzieller Integrität

Eine Datenbank kann schnell in einen inkonsistenten Zustand geraten. Im ungünstigsten Fall liegt eine nicht-normalisierte Datenbank vor, die starke Redundanzen aufweist.

Dabei können Anomalien im Datenbestand auftreten, die verschiedene Formen annehmen. Man spricht hier von Einfüge-, Lösch- und Änderungsanomalien. Tritt eine oder mehrerer dieser Anomalien auf, kann das zur Verfälschung oder Löschung von Informationen führen.

Beispiele:
Löschanomalie – In der Studententabelle wird neben dem Studenten auch die Fachrichtung vermerkt. Es wird keine zusätzliche Tabelle für die einzelnen Fachrichtungen erstellt. Löscht man nun alle Studenten aus einem Fachbereich wäre auch der Fachbereich an sich nicht mehr auffindbar und gelöscht.

Einfügeanomalie – Ein neuer Student soll erfasst werden mit dem Primärschlüssel der Matrikelnummer. Fehlt diese kann der Datensatz nicht eingetragen werden da sonst keine Eindeutigkeit sichergestellt werden kann.

Änderungsanomalie – Eine Bestellung wird nachträglich bearbeitet und die Bestellungen mitsamt der Kundeninformationen in einer Tabelle erfasst. Nun tritt ein Tippfehler auf und Herr Bauer bestellt zum 3. Mal, der Mitarbeiter trägt jedoch aus versehen Herr Baur ein. Somit scheint es als wäre die Bestellung von einem anderen Kunden erfolgt.

Spezifikation der referentiellen Aktionen für Fremdschlüssel (SQL92-Standard):
ON DELETE (ON UPDATE)
{NO ACTION | CASCADE | SET NULL | SET DEFAULT}

NO ACTION: Operation nur zugelassen, wenn keine zugehörigen Sätze vorhanden sind.
CASCADE: Operation kaskadiert zu betroffenen Sätzen.
SET NULL: Fremdschlüssel wird auf NULL gesetzt.
SET DEFAULT: Fremdschlüssel wird auf benutzerdefinierten Default-Wert gesetzt.