09.04.2002


Wichtig ist das Kennenlernen von Primärschlüsseln. Es gibt sprechende und nichtsprechende Schlüssel. Nicht sprechende sind solche, die durch eine einfache Zählung generiert werden. Sprechende Schlüssel beinhalten wichtige Informationen; Beispiele hierfür sind Personalausweisnummern. Weiterhin beinhaltet ein relationales Datenbankmodell Regeln, wie sie von Codd, einem Datenbanktheoretiker erstellt wurden.
  1. Ein relationales DBMS muss Datenbanken allein aufgrund seiner relationalen Fähigkeiten verwalten können
  2. Informationsregel: Alle Informationen in einer relatoinalen Datenbank (inklusive Tabellen- und Feldnamen) ist ausdrücklich als Wert in Tabellen repräsentiert.
  3. Garantierter Zugriff: Durch eine Benutzung einer Kombination von Tabellennamen, Primärschlüsselwert und Spaltennamen kann garantiert auf jeden Wert einer relationalen Datenbank zugegriffen werden.
  4. Systematische Unterstützung fehlender Informationen: in einem voll relationalen System werden unabhängig vom Datentyp Indikatoren unterstützt, die auf einer logischen Ebene fehlende Informationen repräsentieren (NULL-Werte).
  5. Aktiver relationaler Katalog online: Die Beschreibung der Datenbank und ihrer Inhalte (Metadaten) ist auf der logischen Ebene als Tabellen vorhanden und kann deshalb durch Benutzung der Datenbanksprache abgefragt werden.
  6. Umfassende Datenuntersprache: Zumindest eine unterstüzte Sprache muss eine wohldefinierte Syntax in Form von Zeichenketten haben und umfassend sein. D.h. Unterstützung von Datendefinition, Viewdefinition, Datenmanipulation, Integritätsregeln,Autorisierung, Transaktionspakete (commit, rollback).
    Sowohl bei hierarchischen als auch bei Netzwerkdatenbanken existiert keine allumfassende Sprache. Bei beiden Modellen kann der Anwender nur über 3-GL-Programme auf die Daten zugreifen. Dies macht den Einstieg in ein Datenbanksystem unnötig kompliziert.
    Die Sprache SQL deckt alle 6 Sprachebenen ab.
  7. Datenänderung durch Views: alle Views, in denen theoretisch Tupel eingefügt, gelöscht und verändert werden dürfen, können durch das System aktualisiert werden.
  8. Einfügen, Ändern, Löschen auf Set-Ebene: das DBMS unterstützt nicht nur das Gewinnen von Datensätzen auf Set-Ebene, sondern auch Einfügen, Ändern und Löschen von Datensatzgruppen.
  9. Physische Datenunabhängigkeit: Anwendungsprogramme und Anwenderoberflächen bleiben unbeeinträchtigt, wenn Veränderungen an der Speicherstruktur oder der Zugriffsmethode vorgenommen werden.
  10. Logische Datenunabhängigkeit: Anwendungsprogramme bleiben logisch unbeeinträchtigt von informationserhaltenden Verauml;nderungen an der Tabellenstruktur, soweit es theoretisch möglich ist.
  11. Integritätsunabhängigkeit: Anwendungsprogramme bleiben logisch unbeeinträchtigt, wenn verteilte Datenerhaltung eingeführt wird, oder wenn Daten wieder zusammengeführt werden.
  12. Verteilungsunabhängigkeit: Anwendungsprogramme bleiben logisch unbeeinträchtigt, wenn verteilte Datenhaltung eingeführt wird, oder wenn Daten wieder zusammengeführt werden.
  13. Unterwanderungsverbot: Es muss unmöglich sein, die Integritätsregeln, die in der Datenbanksprache formuliert wurden, durch eine Low-Level-Sprache (ein Datensatz im Zugriff) zu verletzen oder zu umgehen.
Später hat Codd weitere ca. 300 Regeln erstellt, aber darauf müssen wir nicht weiter eingehen.

Man kann auf Anhieb ein paar Normalformen definieren:

0.NF:
In einer in der 0. NF befindlichen Tabelle sind in den einzelnen Feldern Mehrfachwerte zulässig. Jede Tabelle ist in der 0. Normalform.

1.NF:
In einer in der 1. NF befindlichen Tabelle sind nur einfache, atomare Werte zulässig. Beispielsweise stehen in einer Zelle "2,3". "Meier" verweist auf die Beiden. Trennt man das auf in zwei Zeilen (Meier, 2 / Meier,3), befindet sich die Tabelle in der 1. Normalform.

2.NF:
Eine Tabelle befindet sich in der 2.NF, wenn sie sich in der 1. NF befindet. Ferner sind alle Felder, die nicht zum Schlüssel gehören, abhängig vom Gesamtschlüssel, nicht aber von Schlüsselteilen. Beispielsweise habe ich eine Tabelle namens Kunden, und eine weitere namens Artikel. Dazwischen steht eine n:m-Beziehung. Deswegen kommt eine Zwischentabelle hin. In der dritten Tabelle darf also keine Postleitzahl, oder kein Artikelname stehen, weil sie nur von einem Teil der Schlüssel abhängig sind.

3.NF:
Eine Tabelle befindet sich in der 3.NF, wenn sie sich in der 2. NF befindet. Ferner bestehen keine Abhängigkeiten zwischen Feldern, die nicht zum Schlüssel gehören. Beispielsweise steht in einer Tabelle Einzelpreis und Anzahl. Keines der beiden Felder ist ein Schlüssel. Die errechnete Summe darf nicht in der Tabelle stehen.

Diesbezüglich kann man feststellen, dass Zellen, die abhängige Daten aus anderen Zellen enthalten, nicht gespeichert werden müssen.

Eine Relation zwischen Tabellen beruht auf Beziehungen zwischen einzelnen Feldern dieser Tabellen. Es gibt drei unterschiedliche Relationen:


1:1 Beziehung:
In einer 1:1 Beziehung ist genau ein Datensatz einer Tabelle mit genau einem Datensatz einer anderen Tabelle verknüpft. Meistens wird man aber diese Datensätze zu einer einzigen Tabelle zusammenfassen.

1:n Beziehung
In einer 1:n Beziehung wird genau einem Datensatz aus einer Tabelle mehrere Datensätze aus anderen Tabellen zugeordnet. So kann zum Beispiel ein Schüler mehrere Fächer belegen.

n:m Beziehung
In einer n:m Beziehung werden mehreren Datensätzen einer Tabelle mehrere Datensätze aus einer anderen Tabelle zugeordnet. Hier tritt das erste Problem auf: Kein Datenbankmanagementsystem (DBMS) kann auf einfache Art und Weise mit n:m Beziehungen umgehen. Hierfür kann man sich mit Zwischentabellen verhelfen, welche wieder eine 1:n Beziehung zu den anderen Tabellen enthält.