Datenbanken

Beziehungen von Tabellen

In der Regel besteht eine relationale Datenbank nicht nur aus einer Tabelle, sondern aus mehreren. Die einzelnen Tabellen dürfen nicht isoliert betrachtet werden. Zwischen den Tabellen können Beziehungen bestehen. Die Anzahl der möglichen Beziehungen ist begrenzt und ergibt sich aus der Kombination der möglichen Assoziationstypen.

Assoziation:

Ein Assoziation bestimmt, wieviele Datensätze einer Tabelle 2 zu einem Datensatz der Tabelle 1 gehören können. Es gibt vier verschiedene Assoziationstypen:

Assoziationstyp

Abkürzung

Datensatzanzahl in Tabelle 2

einfache Assoziation

1

genau ein Datensatz (1)

konditionelle Assoziation

c

kein oder genau ein Datensatz (0/1)

multiple Assoziation

m

mindesten ein Datensatz (>=1)

Multipel-konditionelle Assoziation

mc

beliebig viele Datensätze (>=0)



Einfache Assoziation (=1):

Es sind zwei Tabellen vorhanden. In der ersten Tabelle sind allgemeine und in der zweiten speziellen Personaldaten gespeichert. In beiden Tabellen muß genau ein Datensatz pro Person vorhanden sein.




Konditionelle Assoziation (=c):

Es sind zwei Tabellen vorhanden. In der ersten Tabelle sind sind allgemeine Personaldaten und in der zweiten Tabelle spezielle Personaldaten gespeichert. In der zweiten Tabelle gibt es in Abhängigkeit davon, ob eine Person einen Paß besitzt, keinen oder genau einen Datensatz.




Multiple Assoziation (=m):

Es sind zwei Tabellen vorhanden. In der ersten Tabelle sind allgemeine Personaldaten und in der zweiten Tabelle die Anschriften der Haupt- und Nebenwohnsitze der Personen gespeichert. Pro Person muß in der Tabelle Adressen mindestens ein Datensatz vorhanden sein. Herr Müller und Herr Pfau sind jeweils mit 2 Datensätzen vorhanden, da beide über Nebenwohnsitze verfügen.




Multiple-konditionale Assoziation (=mc):

Es sind zwei Tabellen vorhanden. In der ersten Tabelle sind allgemeine Personaldaten und in der zweiten Tabelle die Vornamen der Kinder gespeichert. Da Personen beliebig viele Kinder besitzen können, gibt es pro Mensch keinen, einen Datensatz oder mehrere Datensätze.




Assoziation und Gegenassoziation (=Beziehung):

Jede Assoziatiation (Tabelle1 zu Tabelle 2) bestitzt auch eine Gegenassoziation (Tabelle 2 zu Tabelle 1). Kombiniert man diese zwei Assoziationen miteinander, so erhält man eine Beziehung. Ausgehend von den vier verschiedenen Assoziationstypen gibt es max. 16 verschiedene Beziehungstypen, welche nachfolgend dargestellt sind:


Für die obigen Beispiele lassen sich die Beziehungen folgenderweise darstellen:




Um Beziehungen zwischen den Tabellen herstellen zu können, müssen die Begriffe Identifikationsschlüssel und Fremdschlüssel bekannt sein.

Identifikationsschlüssel (Primärschlüssel):

Jeder Datensatz einer Tabelle muß eindeutig identifizierbar sein. Dies kann durch ein Feld oder eine Kombination von Feldern gewährleistet werden. Bei der Tabelle Personal bietet sich z.B: die Personalnummer (PNR) als eindeutiger Identifikationsschlüssel an.

Der Identifikationsschlüssel muß folgende Kriterien erfüllen:

    Der Identifikationsschlüssel muß eindeutig sein.

    Jeder neue Datensatz erhält sofort den entsprechenden Wert des Identifikationsschlüssels.

Fremdschlüssel:

Ein Fremdschlüssel in einer Tabelle 2 ist ein Feld oder eine Feldkombination, welche(s) in einer Tabelle 1 den Identifikationsschlüssel bildet.

Der Fremdschlüssel muß folgende Kriterien erfüllen:

    Der Fremdschlüssel in Tabelle 2 kann nur diejenigen Feldinhalte annehmen, welche bereits im Identifikationsschlüssel der Tabelle 1 existieren.

    Der Fremdschlüssel darf somit nicht leer sein.

    Der Feldname von Identifikationsschlüssel und Fremdschlüssel muß nicht identisch sein.

In Tabelle 1 (Personal) wurde als Identifikationsschlüssel die Personalnummer (PNR) vergeben. Um eine Beziehung herstellen zu können, braucht man in Tabelle 2 einen Fremdschlüssel mit entsprechenden Feldinhalten. In den obigen Beispielen sind es wiederum die Personalnummern.

Erforderliche Umwandlung in hierarchische Beziehungen :

Es sind 2 Tabellen vorhanden. In der ersten Tabelle sind allgemeine Personaldaten und die Nummer des Dienstwagens gespeichert. Die zweite Tabelle beinhaltet Autodaten und die Personalnummer des jeweiligen Fahrzeugnutzers.


Jede Person hat kein oder genau einen Dienstwagen. Zu jedem Auto gehört kein oder genau ein Fahrzeugnutzer.


Es handelt sich um eine c-c-Beziehung !

Identifikationsschlüssel und Fremdschlüssel werden wie folgt vergeben:

Tabelle

Identifikationsschlüssel

Fremdschlüssel

Personal

PNR (Personalnummer)

ANR (Autonummer)

Auto

ANR (Autonummer)

PNR (Personalnummer)



Wenn man die Feldinhalte betrachtet, ist erkennbar, daß einige Feldwerte nicht belegt sind. Sie haben einen Nullwert. Das widerspricht der Definition des Fremdschlüssels, wo es heißt:

Konditionelle und netzwerkförmige Beziehungen sind im relationalen Datenbankmodell nicht erlaubt und müssen daher in hierarchische Beziehungen umgewandelt werden !


Es wird eine neue Tabelle Fahrzeugnutzer erstellt und somit eine c-c Beziehung in zwei 1-c Beziehungen umgewandelt.

Die Tabellen haben nun folgende Feldinhalte: