Codds 12 Regeln
Dr. Edgar F. Codd hat nach seinen umfangreichen Forschungen zum relationalen Modell von Datenbanksystemen zwölf eigene Regeln aufgestellt, denen eine Datenbank nach seinen Angaben gehorchen muss, um als echte relationale Datenbank angesehen zu werden.
Diese Regeln können auf jedes Datenbanksystem angewendet werden, das gespeicherte Daten nur mit seinen relationalen Funktionen verwaltet. Dies ist eine Grundregel, die als Grundlage für alle anderen Regeln dient.
Regel 1: Informationsregel
Die in einer Datenbank gespeicherten Daten, möglicherweise Benutzerdaten oder Metadaten, müssen ein Wert einer Tabellenzelle sein. Alles in einer Datenbank muss in einem Tabellenformat gespeichert werden.
Regel 2: Garantierte Zugriffsregel
Es ist garantiert, dass auf jedes einzelne Datenelement (Wert) mit einer Kombination aus Tabellenname, Primärschlüssel (Zeilenwert) und Attributname (Spaltenwert) logisch zugegriffen werden kann. Für den Zugriff auf Daten können keine anderen Mittel wie Zeiger verwendet werden.
Regel 3: Systematische Behandlung von NULL-Werten
Die NULL-Werte in einer Datenbank müssen systematisch und einheitlich behandelt werden. Dies ist eine sehr wichtige Regel, da ein NULL wie folgt interpretiert werden kann: Daten fehlen, Daten sind nicht bekannt oder Daten sind nicht anwendbar.
Regel 4: Aktiver Online-Katalog
Die Strukturbeschreibung der gesamten Datenbank muss in einem Online-Katalog gespeichert werden, der als bezeichnet wird data dictionary, auf die autorisierte Benutzer zugreifen können. Benutzer können dieselbe Abfragesprache verwenden, um auf den Katalog zuzugreifen, mit dem sie auf die Datenbank selbst zugreifen.
Regel 5: Umfassende Daten-Subsprache-Regel
Auf eine Datenbank kann nur mit einer Sprache mit linearer Syntax zugegriffen werden, die Datendefinitions-, Datenmanipulations- und Transaktionsverwaltungsvorgänge unterstützt. Diese Sprache kann direkt oder mittels einer Anwendung verwendet werden. Wenn die Datenbank den Zugriff auf Daten ohne Hilfe dieser Sprache ermöglicht, wird dies als Verstoß angesehen.
Regel 6: Aktualisierungsregel anzeigen
Alle Ansichten einer Datenbank, die theoretisch aktualisiert werden können, müssen auch vom System aktualisiert werden können.
Regel 7: Regel zum Einfügen, Aktualisieren und Löschen auf hoher Ebene
Eine Datenbank muss das Einfügen, Aktualisieren und Löschen auf hoher Ebene unterstützen. Dies darf nicht auf eine einzelne Zeile beschränkt sein, dh es müssen auch Vereinigungs-, Schnitt- und Minusoperationen unterstützt werden, um Datensätze zu erhalten.
Regel 8: Unabhängigkeit von physischen Daten
Die in einer Datenbank gespeicherten Daten müssen unabhängig von den Anwendungen sein, die auf die Datenbank zugreifen. Änderungen in der physischen Struktur einer Datenbank dürfen keine Auswirkungen darauf haben, wie externe Anwendungen auf die Daten zugreifen.
Regel 9: Unabhängigkeit von logischen Daten
Die logischen Daten in einer Datenbank müssen unabhängig von der Ansicht des Benutzers (Anwendung) sein. Änderungen an logischen Daten dürfen sich nicht auf die Anwendungen auswirken, die sie verwenden. Wenn beispielsweise zwei Tabellen zusammengeführt oder eine in zwei verschiedene Tabellen aufgeteilt wird, sollte dies keine Auswirkungen oder Änderungen auf die Benutzeranwendung haben. Dies ist eine der am schwierigsten anzuwendenden Regeln.
Regel 10: Integrität Unabhängigkeit
Eine Datenbank muss unabhängig von der Anwendung sein, die sie verwendet. Alle Integritätsbeschränkungen können unabhängig voneinander geändert werden, ohne dass Änderungen an der Anwendung erforderlich sind. Diese Regel macht eine Datenbank unabhängig von der Front-End-Anwendung und ihrer Schnittstelle.
Regel 11: Vertriebsunabhängigkeit
Der Endbenutzer darf nicht sehen können, dass die Daten auf verschiedene Standorte verteilt sind. Benutzer sollten immer den Eindruck haben, dass sich die Daten nur an einem Standort befinden. Diese Regel wurde als Grundlage für verteilte Datenbanksysteme angesehen.
Regel 12: Nicht-Subversion-Regel
Wenn ein System über eine Schnittstelle verfügt, die Zugriff auf Datensätze auf niedriger Ebene bietet, darf die Schnittstelle das System nicht untergraben und Sicherheits- und Integritätsbeschränkungen umgehen können.