Logo Wissenstransfer Gerhard at CichnaDotCom

>> Wissensdatenbank / Datenmodellierung und Datenbanksysteme

Grundlagen relationaler Datenbanken

Datensätze in der Datenbank löschen

Löschen von Datensätzen in relationalen Datenbanken

Im Gegensatz zum Suchen in einer Datenbank, was die in ihr gespeicherte Information nicht verändert, ist das Löschen von Datensätzen eine kritische Operation. Insbesondere bei Datensätzen, die über mehrere Relationen verteilt sind, muss sichergestellt werden, dass auch nach dem Löschen alle übrigen Datensätze fachlich konsistent und vollständig gespeichert sind. Für das Löschen von Daten lassen sich folgende Schritte identifizieren:

  1. Auswählen der Relationen (Tabellen) in der Datenbank, in denen die zu löschenden Objekte abgelegt sind. Das schließt ebenso alle Tabellen ein, die ggf. die gesuchte Information nicht direkt enthalten, jedoch zur Identifikation der konkreten Datensätze benötigt werden. Beziehungstabellen sind dafür ein typisches Beispiel.
  2. Identifikation der zu löschenden Datensätze anhand der in der Löschanfrage formulierten Kriterien.
  3. Sicherstellen, dass es nach dem Löschen der Objekte aus der Datenbank keine Fremdschlüssel gibt, die nicht aufgelöst werden können (referentielle Integrität).

Beispiel
Gegeben ist der in den Tabellen KUNDE, ADRESSE und RECHNUNGSADRESSE dargestellte Datenbestand. Löschen Sie die Kundin Silke Bauer aus dem Datenbestand und alle darüber hinaus nicht von anderen Kundendatensätze benötigten Adressdaten.

Schritt 1: KUNDE und ADRESSE sowie alle Beziehungstabellen sind relevante Relationen, die beim Löschen berücksichtigt werden müssen.

Schritt 2: Ermitteln der KUNDEID von Fr. Bauer, dann Ermitteln und Entfernen aller Datensätze in den Beziehungstabellen, deren Wert in KUNDEID mit der KUNDEID von Fr. Bauer übereinstimmt. Entfernen des Datensatzes der Kundin Fr. Bauer in der Tabelle KUNDE. Entfernen aller Datensätze in ADRESSE, die nicht mehr in einer Beziehungstabelle verwendet werden. Das betrifft die Adressen 5 und 6 in der Tabelle ADRESSE, während die Adresse 4 nicht gelöscht werden darf, da sie auch von anderen Kunden verwendet werden.

Schritt 3: Sicherstellen, dass nach dem Entfernen aller Daten alle Fremdschlüssel in den Beziehungstabellen auf einen gültigen Datensatz referenzieren. Außerdem gibt es in der Tabelle der Rechnungsadressen, unabhängig vom Löschen der Kundin Silke Bauer, den Eintrag (3; 098483), zu dem es keinen passenden Eintrag in der Kundendatei gibt. D. h., dieser Datensatz muss ebenfalls gelöscht werden.

Die zu löschenden Zellen sind in den Tabellen fett markiert.

KUNDE
KUNDEID KUNDENNR ANREDE NAME VORNAME EMAIL ADRESSEID
094904 00100 Herr Schwarz David david.schwarz@hkf-online.de 2
112536 00300 Frau Bauer Silke silke334@byom.de 3
348902 00700 Frau Wagner Lisa lisa-wagner@posteo.de 7

ADRESSE
ADRESSEID STRASSE HAUSNUMMER PLZ ORT LAND KUNDEID
2 Berliner Str. 55b 60311 Frankfurt Deutschland 094904
3 Marienstr. 25 10117 Berlin Deutschland 094904
4 Alte Str. 49 53123 Bonn Deutschland 112536
5 Salzburger Straße 27 93047 Regensburg Deutschland 112536
6 Bahnhofstr. 5 69115 Heidelberg Deutschland 112536
7 Domstr. 18 20095 Hamburg Deutschland 348902
8 Stuttgarter Straße 73 01189 Dresden Deutschland 348902

RECHNUNGSADRESSE
ADRESSEID KUNDEID
2 094904
3 098483
2 112536
4 094904
7 348902