Kapitel 4 - Codd's Regeln der Relationalität
|
Inhalt
|
- 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
|
|
|
|
|
|
|