Die referentielle Integrität in Bäckerei Extra!

2023-12-18 – 18:37:25

„Referentielle Integrität“ ist in der Datenbank-Fachwelt das Zauberwort bzw. die Funktion, mit der sogenannte „Waisenkinder“ in den Dateien vermieden werden.

Beispiel gefällig? Gut. Sie legen den Kunden Nummer 17 an und erstellen für den dann einige Lieferscheine. Nachher lassen Sie eine Sammelrechnung über diese Lieferscheine drucken. Nun bedient jemand anderer das Programm, sieht den neuen Kunden 17 und findet, daß der da eigentlich nichts zu suchen hat und will den folgerichtig (für ihn) aus der Kundendatei löschen. Ätsch! Das Programm wird das nicht zulassen und mit einer Fehlermeldung reagieren! An diesem Kundensatz hängen ja nun diverse Lieferscheine und auch ein Rechnungseintrag. Wenn der Kunde gelöscht wäre – wem sollten diese Daten nun zugeordnet werden? Also gehts nicht. Programme, die solches zulassen, erlauben unzuordbaren „Datenmüll“ in den Dateien. Die nicht zugreifbaren Datensätze sind verwaist und können oft gar nicht gelöscht werden, behindern ordnungsgemäße Statistiken und Auswertungen, weil Datensätze aufscheinen, denen die Bezugspunkte fehlen. Der Lieferschein hat nun keine Kundenadresse (wer war das?), die Ausgangsrechnungs-Datensätze auch nicht.

Bäckerei Extra! hat ein striktes System der referentiellen Integrität im Hintergrund!
Dadurch, daß nur wirklich „freie“ Datensätze gelöscht werden können, wird auch sichergestellt, daß die Dateien in Bäckerei Extra! keinen „Datenmüll“ enthalten!

Beispiel: Um tatsächlich einen Kunden aus der Kundendatei löschen zu können, muß sichergestellt werden, daß für diesen Kunden keine Lieferscheine mehr in den Lieferscheindateien enthalten sind, daß für diesen Kunden keine Rechnungen in der der Ausgangsrechnungsdatei enthalten sind, daß keine Standard-Bestellungen für diesen Kunden mehr verspeichert sind. Erst wenn diese „sekundären“ Datensätze gelöscht wurden, kann auch der Kundendatensatz problemlos gelöscht werden. Gleiches gilt für die Artikeldatei. Erst wenn keine Lieferscheinzeile auf diesen Artikel verweist, wenn keine Zeile einer Standardbestellung auf diesen Artikel Bezug nimmt, erst dann ist das Löschen eines Artikels möglich!

Folgerung: Ein Kunde oder ein Artikel, den Sie nicht löschen können, hat mit Sicherheit noch Daten dranhängen! Bäckerei Extra! bietet Ihnen ja die Möglichkeit, max 999999 Kunden in der Kundendatei und ebenso viele Artikel in der Artikeldatei zu halten! Legen Sie also neue Kunden und neue Artikel auch mit neuer Nummer neu an! Begehen Sie bitte nicht die Unart, vorhandene, aber nicht mehr benötigte Kunden und Artikel zu überschreiben, also zu ändern. Diese „Sparsamkeit“ ist unnötig und bringt Ihnen nur Probleme. Wie sagt dann eine Statistik aus, die zur einen Hälfte die Erlöse aus „Osterhasen“ und zur anderen Hälfte die Erlöse aus „Kletzenbrot“ ausweist? Nur, weil Sie die Artikelnummer der Osterhasen für das Kletzenbrot weiterverwendet haben. Statistiken oder Listungen haben den Zweck, Ihre Kalkulation zu unterstützen. Welchen netto-netto-Durchschnitts-Erlös für das Kletzenbrot sollen Sie denn als Basis für die Kalkulation verwenden?