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:
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 | 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 |