Die Kardinalität einer Verknüpfung zwischen zwei Tabellen ist die numerische Beziehung zwischen den Zeilen der einen Tabelle und den Zeilen der anderen Tabelle. Gängige Kardinalitäten sind eins-zu-eins, eins-zu-viele und viele-zu-viele.
Betrachten wir zum Beispiel eine Datenbank mit elektronischen Krankenakten. Eine solche Datenbank könnte Tabellen wie die folgenden enthalten:
- Eine
doctor
-Tabelle mit Informationen über Ärzte. - Eine
patient
-Tabelle für medizinische Probanden, die sich in Behandlung befinden. - Eine
encounter
-Tabelle mit einem Eintrag für jeden Krankenhausbesuch.
Natürliche Beziehungen bestehen zwischen diesen Entitäten, z. B. eine Begegnung, an der mehrere Ärzte beteiligt sind. Es besteht eine Viele-zu-Viele-Beziehung zwischen Datensätzen in doctor
und Datensätzen in patient
, da Ärzte viele Patienten haben und Patienten viele Ärzte aufsuchen können. Es besteht eine Eins-zu-viele-Beziehung zwischen Datensätzen in patient
und Datensätzen in encounter
, weil Patienten viele Begegnungen haben können und jede Begegnung nur einen Patienten betrifft.
Eine “Eins-zu-eins”-Beziehung wird meist verwendet, um eine Tabelle in zwei Teile zu teilen, um Informationen übersichtlicher und verständlicher zu machen. Im Beispiel des Krankenhauses könnte eine solche Beziehung verwendet werden, um die individuellen beruflichen Informationen der Ärzte von den administrativen Details zu trennen.
Bei der Datenmodellierung werden Sammlungen von Datenelementen in “Datentabellen” gruppiert, die Gruppen von Datenfeldnamen enthalten, die “Datenbankattribute” genannt werden. Tabellen sind durch “Schlüsselfelder” miteinander verbunden. Ein “Primärschlüssel” ordnet ein Feld seiner “speziellen Auftragstabelle” zu. Zum Beispiel könnte das Feld “Nachname des Arztes” als Primärschlüssel der Tabelle “Arzt” zugewiesen werden, wobei alle Personen mit demselben Nachnamen alphabetisch nach den ersten drei Buchstaben ihres Vornamens geordnet werden. Eine Tabelle kann auch einen Fremdschlüssel haben, der angibt, dass das Feld mit dem Primärschlüssel einer anderen Tabelle verknüpft ist.
Ein komplexes Datenmodell kann Hunderte von zusammenhängenden Tabellen umfassen. Der Informatiker Edgar F. Codd entwickelte eine systematische Methode, um relationale Datenbanken zu zerlegen und zu organisieren. Codds Schritte zur Organisation von Datenbanktabellen und ihren Schlüsseln werden als Datenbanknormalisierung bezeichnet, die bestimmte versteckte Datenbankdesignfehler (Löschanomalien oder Aktualisierungsanomalien) vermeidet. In der Praxis führt der Prozess der Datenbanknormalisierung dazu, dass Tabellen in eine größere Anzahl kleinerer Tabellen zerlegt werden.
In der Praxis ist die Datenmodellierung von entscheidender Bedeutung, denn wenn die Datenmenge wächst, müssen durch Schlüssel verknüpfte Tabellen verwendet werden, um den programmierten Abruf von Daten zu beschleunigen. Wenn ein Datenmodell schlecht ausgearbeitet ist, führt selbst ein Computeranwendungssystem mit nur einer Million Datensätzen zu inakzeptablen Verzögerungen bei den Antwortzeiten für die Endbenutzer. Aus diesem Grund ist die Datenmodellierung ein wesentlicher Bestandteil der Fähigkeiten, die ein moderner Softwareentwickler benötigt.