Was ist der Unterschied zwischen Integritätsbeschränkung und referenzieller Integrität? https://en.wikipedia.org/wiki/Referential_integrity


Antwort 1:

Wenn eine Tabelle Daten enthält, die auf eine andere in der Datenbank verweisen, wird die Genauigkeit dieser Verweise als referenzielle Integrität bezeichnet. Wenn Sie eine Tabelle mit dem Namen CLASSES haben, in der Zeilen mit gelehrten Klassen gespeichert sind, und eine zweite Tabelle mit dem Namen CLASS_ROSTERS mit Zeilen, die Daten zu Schülern enthalten, die in diesen Klassen eingeschrieben waren, bezieht sich CLASS_ROSTERS auf CLASSES. Sie sollten niemals einen Schülerdatensatz in CLASS_ROSTERS haben, für den in der Tabelle CLASSES kein übereinstimmender Klassendatensatz vorhanden ist. In diesem Fall ist die referenzielle Integrität zwischen den beiden Tabellen verloren gegangen.

Einer der Mechanismen zum Erzwingen der Integrität ist eine Fremdschlüsseleinschränkung. Dies ist ein Datenbankmechanismus, mit dem verhindert werden kann, dass Schülerdatensätze in CLASS_ROSTERS eingegeben werden, wenn in CLASSES kein übereinstimmender Klassendatensatz vorhanden ist. Eine Fremdschlüsseleinschränkung besteht aus mehreren Arten von Integritätseinschränkungen.

Andere Arten von Integritätsbeschränkungen umfassen Primärschlüsselbeschränkungen, eindeutige Schlüsselbeschränkungen und NICHT NULL-Beschränkungen. All dies sind Datenbankmechanismen zur Aufrechterhaltung der Datenintegrität. Ihre Aufgabe besteht darin, zu verhindern, dass Daten in die Datenbank eingefügt (oder geändert) werden, die gegen die im Datenmodell integrierten Regeln verstoßen.


Antwort 2:

In einfachen Worten.

Eine Integritätsbedingung ist spezifisch für die Datenelementinstanz, z. B. eine Typeinschränkung (muss eine Zahl sein) oder ein Wertebereich usw.

Bei der referenziellen Integrität geht es um die Beziehung dieser Datenelementinstanz zu anderen Daten. Dies wird am häufigsten bei Fremdschlüsseln beobachtet. Beispielsweise können Sie möglicherweise nicht zulassen, dass eine Rechnung für ein nicht vorhandenes Konto gebucht wird.