DBMS - Codd's 12 Rules

Hallo, angehende Datenbankenthusiasten! Heute tauchen wir ein in die faszinierende Welt der Datenbankmanagementsysteme (DBMS) und erkunden die legendären 12 Regeln von Codd. Diese Regeln, formuliert vom Vater der relationellen Datenbanken, Dr. Edgar F. Codd, sind wie die Zehn Gebote der Datenbankwelt. Sie sind nicht nur Regeln; sie sind die leitenden Prinzipien, die unsere Gedanken und die Gestaltung moderner Datenbanken prägen.

DBMS - Codd

Als Ihr freundlicher Nachbarschafts-EDV-Lehrer werde ich diese Regeln so erklären, dass selbst diejenigen von Ihnen, die noch nie eine Zeile Code geschrieben haben, sie verstehen können. Also holen Sie sich eine Tasse Kaffee, machen Sie es sich bequem und lassen Sie uns gemeinsam diese aufregende Reise antreten!

Regel 1: Informationsregel

Stellen Sie sich vor, Sie organisieren Ihr Bücherregal. Die Informationsregel ist so, als würde man sagen: "Alles auf diesem Regal muss ein Buch sein." In der Datenbankwelt besagt diese Regel, dass alle Informationen in einer Datenbank auf nur eine Weise dargestellt werden müssen - als Werte in Tabellen.

Schauen wir uns ein einfaches Beispiel an:

CREATE TABLE Students (
StudentID INT PRIMARY KEY,
FirstName VARCHAR(50),
LastName VARCHAR(50),
Age INT
);

In diesem Beispiel erstellen wir eine Tabelle namens "Students". Jede Information über einen Schüler (sein ID, Vorname, Nachname und Alter) wird als Spalte in dieser Tabelle dargestellt. Das ist das Wesen der Informationsregel - alle Daten werden in Tabellen gespeichert.

Regel 2: Regel der garantierten Zugänglichkeit

Diese Regel ist so, als hätten Sie eine Bibliothekskarte, die Ihnen Zugang zu jedem Buch in der Bibliothek gewährt. In Datenbankterminologie bedeutet dies, dass jede Datenzeile über den Tabellennamen, den Primärschlüssel und den Spaltennamen zugänglich sein sollte.

Zum Beispiel, wenn wir das Alter eines Schülers mit ID 1 finden möchten, könnten wir folgendes verwenden:

SELECT Age FROM Students WHERE StudentID = 1;

Diese Abfrage gewährleistet den Zugang zu der spezifischen Information, die wir benötigen, gemäß Regel 2.

Regel 3: Systematische Behandlung von NULL-Werten

NULL-Werte sind wie die Rätselbücher in unserer Bibliothek - sie repräsentieren unbekannte oder nicht anwendbare Informationen. Diese Regel stellt sicher, dass NULL-Werte konsistent in allen Operationen behandelt werden.

Zum Beispiel, wenn wir einen neuen Schüler ohne Kenntnis seines Alters einfügen:

INSERT INTO Students (StudentID, FirstName, LastName, Age)
VALUES (2, 'Jane', 'Doe', NULL);

Die Datenbank behandelt diesen NULL-Wert systematisch und ermöglicht Operationen wie:

SELECT * FROM Students WHERE Age IS NULL;

Regel 4: Aktives Online-Katalog

Denken Sie daran wie das digitale Katalogsystem einer Bibliothek. Die Datenbank muss einen eingebauten "Katalog" haben, in dem Informationen über alle Tabellen, Spalten, Indizes und mehr gespeichert werden. In den meisten modernen DBMS wird dies oft als "Datenwörterbuch" oder "Systemkatalog" bezeichnet.

Wir können diesen Katalog abfragen. Zum Beispiel in SQL Server:

SELECT * FROM INFORMATION_SCHEMA.TABLES;

Diese Abfrage gibt uns Informationen über alle Tabellen in unserer Datenbank und zeigt den aktiven Online-Katalog in Aktion.

Regel 5: Regel der umfassenden Datenunterlanguage

Diese Regel ist so, als würde unsere Bibliothek eine universelle Sprache für das Finden, Lesen und Organisieren von Büchern haben. In Datenbankterminologie bedeutet dies, dass es eine umfassende Sprache für alle Datenbankoperationen geben sollte.

SQL (Structured Query Language) ist das gebräuchlichste Beispiel dafür. Es ermöglicht uns alles von der Erstellung von Tabellen bis hin zur Abfrage von Daten:

-- Tabelle erstellen
CREATE TABLE Books (
BookID INT PRIMARY KEY,
Title VARCHAR(100),
Author VARCHAR(50)
);

-- Daten einfügen
INSERT INTO Books (BookID, Title, Author)
VALUES (1, 'Database Design 101', 'E. F. Codd');

-- Daten abfragen
SELECT * FROM Books WHERE Author = 'E. F. Codd';

Regel 6: Regel der Aktualisierung von Ansichten

Ansichten sind wie maßgeschneiderte Bücherregale in unserer Bibliothek. Diese Regel besagt, dass man, wenn man eine Ansicht sehen kann, sie auch aktualisieren sollte (mit einigen Einschränkungen).

Hier ist ein Beispiel für die Erstellung und Aktualisierung einer Ansicht:

-- Ansicht erstellen
CREATE VIEW TeenageStudents AS
SELECT * FROM Students WHERE Age BETWEEN 13 AND 19;

-- Über die Ansicht aktualisieren
UPDATE TeenageStudents
SET Age = 18
WHERE StudentID = 1;

Regel 7: Regel für High-Level-Einfügen, Aktualisieren und Löschen

Diese Regel stellt sicher, dass wir Sets von Daten auf einmal ändern können, anstatt Datensatz für Datensatz. Es ist so, als könnten Sie ganze Regale von Büchern auf einmal bewegen, anstatt Buch für Buch.

Zum Beispiel:

-- Mehrere Datensätze einfügen
INSERT INTO Students (StudentID, FirstName, LastName, Age)
VALUES
(3, 'Alice', 'Johnson', 20),
(4, 'Bob', 'Smith', 22),
(5, 'Charlie', 'Brown', 19);

-- Mehrere Datensätze aktualisieren
UPDATE Students
SET Age = Age + 1
WHERE Age < 20;

-- Mehrere Datensätze löschen
DELETE FROM Students
WHERE Age > 25;

Regel 8: Regel der physischen Datenunabhängigkeit

Diese Regel dreht sich darum, die physische Speicherung von Daten von der Art und Weise, wie wir mit ihr interagieren, zu trennen. Es ist so, als würde man sich nicht darum kümmern, ob ein Buch Hardcover oder Paperback ist - man kann es trotzdem auf die gleiche Weise lesen.

In der Praxis bedeutet dies, dass das Ändern der physischen Speicherung (wie das Umsteigen von HDD auf SSD) keine Änderungen an der Anwendungscode erfordern sollte.

Regel 9: Regel der logischen Datenunabhängigkeit

Ähnlich wie Regel 8, aber auf logischer Ebene. Es bedeutet, dass wir die logische Struktur (wie das Hinzufügen einer neuen Spalte) ändern sollten, ohne bestehende Anwendungen zu beeinflussen.

Zum Beispiel, wenn wir eine neue Spalte zu unserer Students-Tabelle hinzufügen:

ALTER TABLE Students
ADD Email VARCHAR(100);

Bestehende Anwendungen, die die Students-Tabelle abfragen, sollten ohne Änderungen weiterarbeiten.

Regel 10: Regel der Integritätsunabhängigkeit

Diese Regel stellt sicher, dass Integritäts Constraints (wie "Alter muss positiv sein") in der Datenbank und nicht in der Anwendung definiert sind. Es ist so, als hätten die Regeln für die Buchkategorisierung durch das Bibliothekssystem und nicht durch einzelne Bibliothekare durchgesetzt werden.

Beispiel:

CREATE TABLE Students (
StudentID INT PRIMARY KEY,
FirstName VARCHAR(50) NOT NULL,
LastName VARCHAR(50) NOT NULL,
Age INT CHECK (Age > 0 AND Age < 120)
);

Hier werden die Constraints auf Ebene der Datenbank definiert, was Integritätsunabhängigkeit gewährleistet.

Regel 11: Regel der Verteilungsunabhängigkeit

Diese Regel besagt, dass die Datenbank auf die gleiche Weise funktioniert, egal ob sie über mehrere Standorte verteilt ist oder nicht. Es ist so, als könnte man Bücher von verschiedenen Bibliotheksfilialen nahtlos zugreifen.

Während es für diese Regel keinen einfachen Codebeispiel gibt, implementieren moderne verteilte Datenbanken dieses Prinzip im Hintergrund.

Regel 12: Regel der Nichtrückbildung

Die letzte Regel betrifft Sicherheit und Konsistenz. Sie besagt, dass wenn die Datenbank eine Möglichkeit hat, Datensätze zuzugreifen (wie SQL), es keine Möglichkeit geben sollte, direkt auf die Daten zuzugreifen. Es ist so, als würde man sicherstellen, dass alle Buchausleihen durch das Bibliothekssystem erfolgen, ohne Hintertürzugang.

Dies wird typischerweise auf Ebene des Datenbankystems und nicht durch von Benutzern geschriebenen Code gehandhabt.

Um alle diese Regeln in einer praktischen Tabelle zusammenzufassen:

Regel Beschreibung
1 Informationsregel
2 Regel der garantierten Zugänglichkeit
3 Systematische Behandlung von NULL-Werten
4 Aktives Online-Katalog
5 Regel der umfassenden Datenunterlanguage
6 Regel der Aktualisierung von Ansichten
7 Regel für High-Level-Einfügen, Aktualisieren und Löschen
8 Regel der physischen Datenunabhängigkeit
9 Regel der logischen Datenunabhängigkeit
10 Regel der Integritätsunabhängigkeit
11 Regel der Verteilungsunabhängigkeit
12 Regel der Nichtrückbildung

Und das war's, Leute! Codd's 12 Regeln in einer Nussschale. Bedenken Sie, dass diese Regeln im Jahr 1985 formuliert wurden und obwohl nicht alle modernen Datenbanken streng an jede Regel halten, bilden sie dennoch die theoretische Grundlage der relationellen Datenbankysteme.

Da wir das Thema abschließen, hoffe ich, dass diese Reise durch Codd's Regeln für Sie so aufschlussreich war wie für mich jedes Mal, wenn ich sie unterrichte. Diese Prinzipien haben die Welt der Datenbanken, die wir heute kennen, geprägt, und das Verständnis dieser Prinzipien ist Ihr erster Schritt, um ein Datenbankexperte zu werden. Bleiben Sie neugierig, weiter zu üben, und wer weiß? Vielleicht formulieren Sie eines Tages die nächste bahnbrechende Reihe von Datenbankprinzipien!

Credits: Image by storyset