StartseiteDatenbankenMySQL

Integritätsregeln

27. JULI 2011
von Jörg
Datenbanken - MySQL

Generell muss ein relationales Datenmodell folgende Integritätsregeln erfüllen:

  • Benutzerdefinierte Integrität
  • Entitäts-Integrität
  • Referenzielle Integrität

Erfüllt eine Datenbank, kurzzeitig oder auch auf längere Zeit, diese Integritätsregeln nicht, dann entspricht sie nicht den Anforderungen einer relationalen Datenbank.

Es ist Aufgabe des DBMS (und nicht des Anwendungsprogramms), dafür zu sorgen, dass die Integritätsregeln zu jeder Zeit erfüllt sind.

Benutzerdefinierte Integrität

Definition:

Unter der benutzerdefinierten Integrität versteht man die Einhaltung spezifischer Bedingungen und Regeln für eine Relation.

Beispiel:
Mitarbeiter:
Mitarbeiter-NrNameWohnortAbt-Name
111BergerIngolstadtMotoren
112HuberEichstättGetriebe
113MeierGredingGetriebe
114SchmittIngolstadtMotoren

Eine benutzerdefinierte Integritäts-Regel könnte lauten: „Überprüfe beim Einfügen jedes neuen Mitarbeiters, dass der Abteilungsname “Motoren“ oder “Getriebe“ lautet“.

Zur benutzerdefinierten Integrität zählt auch das Vorbelegen von Attributen mit Standardwerten, falls beim Einfügen bzw. Ändern von Elementen in dieser Spalte kein expliziter Datenwert angegeben ist. Beispiel: Defaultwerte, z.B. leeres Datum: 00.00.0000.

Entitäts-Integrität

Mit der Entitäts-Integrität wird sichergestellt, dass jedes Tupel (jede Entität) in einer Relation einen eindeutigen Schlüssel besitzt. Da NULL-Werte nicht eindeutig sind, sind solche Tupel nur dann durch den Primärschlüssel eindeutig adressierbar, wenn dieser keinen NULL-Wert enthält.

Definition:

Wenn ein Attribut zum Primärschlüssel einer Relation gehört, dann darf dieses Attribut zu keinem Zeitpunkt einen NULL-Wert enthalten.

Beispiel:
Artikel:
Art-NrBezeichnungArtHerstellername
1276ZIP-DriveLaufwerkIOMega
NULLCRW 2240LaufwerkYamaha
1292Centronics KabelKabelCentronics

Die Tabelle Artikel verletzt die Entitäts-Integrität, da der Primärschlüssel Art-Nr einen NULLWert enthält.

Referenzielle Integrität

Die referenzielle Integrität stellt die logische Beziehung zwischen Primär- und Fremdschlüssel mehrerer Relationen sicher.

Definition:

Jeder Wert eines Fremdschlüssels muss als Schlüsselwert in der referenzierten Tabelle existieren.
Wenn in einer Tabelle ein Fremdschlüssel vorhanden ist, dann muss der Fremdschlüsselwert auch als Primärschlüsselwert in der korrespondierenden Tabelle auftauchen.

Beispiel:
Die Relation Artikel enthält den Fremdschlüssel "Lief-Nr", der auf Tabelle Lieferanten verweist. Zu jedem Wert des Fremdschlüssels "Lief-Nr" existiert eine korrespondierende Entität in Lieferanten, die referenzielle Integrität der beiden Tabellen ist somit sichergestellt.

Artikel:
Art-NrArt-BezeichnungArtLief-Nr
1CRW 2240 4-fach SpeedLaufwerk3416
2HP Laser JetDrucker3418
1CRW 2280 8-fach SpeedLaufwerk3416
4HP Laser Jet 4000N PCL 6Drucker3418
Lieferanten:
Lieferanten-NrName
3421IOMega
3416Yamaha
3418Hewlett Packard
3427NEC

Beispiel:
Wir betrachten die beiden Tabellen aus dem letzten Beispiel noch einmal. Allerdings enthält die Tabelle Lieferanten keine Entität zu dem Primärschlüssel 3418. Damit ist die referenzielle Integrität nicht gegeben, da der Wert 3418 als Fremdschlüssel in der Tabelle Artikel vorhanden ist:

Artikel:
Art-NrArt-BezeichnungArtLief-Nr
1CRW 2240 4-fach SpeedLaufwerk3416
2HP Laser JetDrucker3418
1CRW 2280 8-fach SpeedLaufwerk3416
4HP Laser Jet 4000N PCL 6Drucker3418
Lieferanten:
Lieferanten-NrName
3421IOMega
3416Yamaha
3427NEC

Bemerkung:
Da sich die Inhalte von Datenbanken im Laufe der Zeit ändern, muss das DBMS zu jedem Zeitpunkt dafür sorgen, dass die Integritätsbedingungen sichergestellt sind. Folgende Datenbankoperationen können den Inhalt einer Datenbank ändern und damit die Integritätsbedingungen verletzen:

  • Einfügen neuer Entitäten
  • Ändern bestehender Entitäten
  • Löschen von Entitäten

Hinterlasse einen Kommentar

Ein Frosch der sich an der Seite festhält