In einer Datenbank können verschiedene Arten von Beziehung definiert werden. Betrachten Sie zum Beispiel die möglichen Relationen zwischen Mitarbeitern (Employees) und Abteilungen (Departments). Ein Mitarbeiter kann in nur einer Abteilung arbeiten. Eine solche Relation ist einwertig für den Mitarbeiter. Auf der anderen Seite kann eine Abteilung mehrere Mitarbeiter haben. Diese Relation ist mehrwertig für die Abteilungen. Die Relation zwischen Mitarbeiter (einwertig) und Abteilungen (mehrwertig) ist eine Eins-zu-viele-Beziehung. In diesem Abschnitt werden die folgenden Arten von Beziehungen behandelt:
Zur Definition von Tabellen für die einzelnen Eins-zu-viele- und Viele-zu-eins-Beziehungen empfiehlt sich folgende Methode:
Im folgenden Beispiel ist die Viele-Seite der ersten und zweiten Relation
"Employees" (Mitarbeiter), so daß eine Tabelle für die Mitarbeiter (Tabelle
EMPLOYEE) definiert wird.
Tabelle 5. Viele-zu-eins-Beziehungen
Entität | Beziehung | Entität |
---|---|---|
Mitarbeiter | sind zugeordnet zu | Abteilungen |
Mitarbeiter | arbeiten als | Jobbezeichnung |
Abteilungen | berichten an | (Verwaltungs-) Abteilungen |
In der dritten Relation ist die Entität "Departments" (Abteilungen) auf der Viele-Seite, so daß eine Tabelle DEPARTMENT definiert wird.
Die folgenden Tabellen veranschaulichen, wie diese Relationen dargestellt werden:
Die Tabelle EMPLOYEE:
EMPNO | WORKDEPT | JOB |
---|---|---|
000010 | A00 | President |
000020 | B01 | Manager |
000120 | A00 | Clerk |
000130 | C01 | Analyst |
000030 | C01 | Manager |
000140 | C01 | Analyst |
000170 | D11 | Designer |
Die Tabelle DEPARTMENT:
DEPTNO | ADMRDEPT |
---|---|
C01 | A00 |
D01 | A00 |
D11 | D01 |
Eine Relation, die in beiden Richtungen mehrwertig ist, wird als eine Viele-zu-viele-Beziehung bezeichnet. Ein Mitarbeiter (Employee) kann an mehr als einem Projekt arbeiten, und ein Projekt kann mehr als einen Mitarbeiter beschäftigen. Auf die Fragen "Woran arbeitet Dolores Quintana?" und "Wer arbeitet an Projekt IF1000?" gibt es jeweils mehrere Antworten. Eine Viele-zu-viele-Beziehung kann in einer Tabelle mit einer Spalte für jede Entität (Mitarbeiter "EMPNO" und Projekt "PROJNO") wie im folgenden Beispiel dargestellt werden.
Die folgende Abbildung zeigt, wie eine Viele-zu-viele-Beziehung (ein Mitarbeiter kann an vielen Projekten arbeiten, und ein Projekt kann viele Mitarbeiter beschäftigen) in einer Tabelle dargestellt werden kann:
Die Tabelle EMP_ACT (Mitarbeitertätigkeiten):
EMPNO | PROJNO |
---|---|
000030 | IF1000 |
000030 | IF2000 |
000130 | IF1000 |
000140 | IF2000 |
000250 | AD3112 |
Eins-zu-eins-Beziehungen sind in beide Richtungen einwertig. Ein Manager leitet eine Abteilung. Eine Abteilung hat nur einen Manager. Auf die Fragen "Wer ist der Manager der Abteilung C01?" und "Welche Abteilung wird von Sally Kwan geleitet?" gibt es jeweils nur eine Antwort. Die Beziehung kann entweder der Tabelle DEPARTMENT oder der Tabelle EMPLOYEE zugeordnet werden. Da alle Abteilungen Manager haben, aber nicht alle Mitarbeiter Manager sind, ist die logische Konsequenz, die Manager der Tabelle DEPARTMENT wie im folgenden Beispiel zuzuordnen.
Die folgende Abbildung zeigt, wie eine Eins-zu-eins-Beziehung in einer Tabelle dargestellt wird:
Die Tabelle DEPARTMENT:
DEPTNO | MGRNO |
---|---|
A00 | 000010 |
B01 | 000020 |
D11 | 000060 |