Kapitel 4 - Codd's Regeln der Relationalität
- Wie werden relationale Datenbanken implementiert?
- Zwölf Regeln der Relationalität
- Worin unterscheiden sich Netzwerkdatenbanken?
|
Zwölf Regeln der Relationalität
Regel 1: Darstellung von Information
Alle Information in relationalen Datenbanken müssen logisch in Tabellen
dargestellt sein, insbesondere
- Daten
- Definitionen von Tabellen und Attributen
- Integritätsbedingungen und Beschreibung der Aktion bei Verletzung (siehe
Regel 10)
- Sicherheitsinformationen (z. B. Zugriffsrechte etc.)
Regel 2: Zugriff auf Daten
Jeder Wert einer relationalen Datenbank muß logisch durch eine Kombination von
Tabellenname, Primärschlüssel und Attributname (Spaltenname) auffindbar sein. Dies
bedeutet, daß in einer Tabelle an jedem Schnittpunkt einer Zeile mit einer Spalte
nur ein Wert stehen darf.
Beispiel:
Tabellenname: Angestellte ; Primärschlüssel: Angestellter = Meier;
Attributname: Gehalt = 5300
Regel 3: Systematische Behandlung von Nullwerten
Nullwerte stellen in Attributen, die nicht Teil eines Primärschlüssels sind,
fehlende Information dar und werden durchgängig gleich, insbesondere unabhängig vom
Datentyp des Attributes, behandelt.
Beispiel:
Man kann also nicht in numerischen Feldern bei fehlenden Daten das Feld
leerlassen, und bei Textfeldern das Zeichen -- einfügen. Fehlende Informationen
werden heute meist mit NULL bezeichnet.
Regel 4: Struktur einer Datenbank
Die Datenbankstruktur wird in derselben logischen Struktur wie die Daten
gespeichert, also in Tabellen. Dazu muß die Struktur aller Tabellen, die zu einer
Datenbank gehören, in einer Tabelle (dem Katalog) zugänglich sein. Diese Forderung
bedingt, daß sich eine Änderung im Katalog automatisch in einer geänderten
Datenbankstruktur auswirkt!
Regel 5: Die Abfragesprache
Ein relationales System enthält mindestens eine befehlsgesteuerte
Abfragesprache, die mindestens die folgenden Funktionen unterstützt:
- Datendefinition
- Definition von Views (logische Sichten der Datenbank, die der Benutzer aus
den Attributen der Basistabellen erstellt und mit den gewohnten Operatoren
manipulieren kann)
- Definition von Integritätsbedingungen
- Definition von Transaktionen (Eine Transaktion ist eine Folge von Befehlen,
die eine Datenbank von einem konsistenten Zustand in einen anderen überführen.
Eine Transaktion muß entweder vollständig durchgeführt oder, bei einem Abbruch,
vollständig zurückgesetzt werden)
- Definition von Berechtigungen
Regel 6: Aktualisieren von Views
Alle Views, die theoretisch aktualisiert werden können, können auch vom System
aktualisiert werden.
Beispiel:
Hat man zwei Spalten A und B mit Zahlen, so kann man sich eine weitere Spalte
definieren, die A*B enthält. Ändert man einen Wert in dieser Spalte, so kann daraus
nicht der Wert der Spalten A und B bestimmt werden, da im allgemeinen aus dem
Produkt zweier Zahlen diese zwei Zahlen nicht bestimmt werden können. Dieses View
kann also theoretisch nicht aktualisiert werden.
Problem:
Im allgemeinen kann nicht entschieden werden, ob ein View theoretisch aktualisiert
werden kann
Regel 7: Abfragen und Editieren ganzer Tabellen
Abfrage- und Editieroperationen müssen als Operanden ganze Tabellen und nicht
nur einzelne Sätze erlauben.
Regel 8: Physikalische Unabhängigkeit
Der Zugriff auf die Daten durch den Benutzer muß unabhängig davon sein, wie
die Daten gespeichert werden oder wie physikalisch auf sie zugegriffen wird. Dies
bedeutet, daß Anwendungen nur auf die logische Struktur des Systems zugreifen
dürfen.
Beispiel:
Die Daten dürfen auf einem Datenträger durchaus hierarchisch gespeichert sein.
Nur die logische Struktur der Datenbank muß relational sein. Ändert der
Datenbankverwalter die physikalische Struktur, darf der Anwender davon nichts
mitbekommen.
Regel 9: Logische Unabhängigkeit der Daten
Anwendungen und Zugriffe dürfen sich logisch nicht ändern, wenn Tabellen so
geändert werden, daß alle Informationen erhalten bleiben. (z. B. beim Aufspalten
einer Tabelle in zwei Tabellen)
Regel 10: Unabhängigkeit der Integrität
Alle Integritätsbedingungen müssen in der Abfragesprache definierbar sein und
in Tabellen dargestellt werden. Das System muß mindestens die folgenden
Integritätsbedingungen prüfen:
Vollständigkeitsintegrität (Entity Integrity, Existential Integrity)
Ein Primärschlüssel muß eindeutig sein und darf insbesondere keinen Nullwert
enthalten.
Beziehungsintegrität (Referentielle Integrität, Referential Integrity)
Zu jedem Fremdschlüsselwert existiert ein Primärschlüsselwert.
Beispiel: Zu jeder Personalnummer muß es auch einen Namen
eines Angestellten geben
Regel 11: Verteilung der Daten
Anwendungen für eine nicht-verteilte Datenbank dürfen sich beim Übergang zu
einer verteilten Datenbank logisch nicht ändern.
Beispiel: Wenn die oben beschriebenen Tabellen in einem
Netzwerk auf zwei verschiedenen Rechnern gespeichert sind, darf sich bei der
Anwendung nichts ändern, wenn die Tabellen irgendwann auf denselben Rechnern
gespeichert werden.
Regel 12: Unterlaufen der Abfragesprache
Unterstützt ein relationales Datenbanksystem neben der
High-Level-Abfragesprache eine Low-Level-Abfragesprache, so darf diese die
Integritätsbedingungen der High-Level-Sprache nicht unterlaufen.
Beispiel: Die Low-Level Abfragesprache darf z. B. nicht direkt
auf die physikalischen Eigenschaften der gespeicherten Daten zugreifen.
|
|
|
|
|
|
Kapitel 1
|
DBMS Konzept
|
|
Eigenschaften, Bestandteile, Ebenen...
|
|
Kapitel 2
|
DB Entwurf
|
|
Qualitätsmerkmale, funktionale Abhängigkeiten, ER...
|
|
Kapitel 3
|
Normalformen
|
|
Übersicht Normalformen, Anomalien...
|
|
Kapitel 4
|
Relationalität
|
|
Regeln und Vorgehensweisen...
|
|
Kapitel 5
|
Sprachen
|
|
relationale Sprachen, SQL, Query...
|
|
Kapitel 6
|
Datenorganisation
|
|
Tertiärspeicher, Adressierung, Indexe, ISAM...
|
|
Kapitel 7
|
Transaktionskonzept
|
|
Datenintegrität, Serialisierbarkeit, ACID...
|
|
Kapitel 8
|
Concurrency Control
|
|
Read-Write Modell, Schedules, Prinzip...
|
|
Kapitel 9
|
Scheduler & Recovery
|
|
2-Phasen-Sperren,Deadlocks,Recovery...
|
|
|
|
|
|
|
Quellen:
|
Gottfried Vossen
Datenbankmanagementsysteme
|
Heuer und Saake
Konzepte und Sprachen
|
Prof. Benn
Skript und Vorlesung
|
Relationale Datenbanken
Andreas Kelz
|
Word Wide Web
Verschiedenste Seiten
|
|
|
|
|