Binäre Beziehungstypen
[ Oblig. 1:1 | Teiloblig. 1:1 | Nichtoblig. 1:1 | Oblig. 1:N | Nichtoblig. 1:N | Nichtoblig. N:M ]
| Typ 1: Obligatorische 1:1-Beziehung |
|---|
| ERM |
|---|
Grad: 1 : 1
Verbindlichkeit: obligatorisch ("muss") für beide Seiten
Jeder Vertreter verkauft immer nur genau einen Artikel. Jeder Artikel wird von genau einem Vertreter verkauft.
| CDM |
|---|
Welche der folgenden Optionen im RM/PDM gewählt wird, hängt von der Semantik, aber auch der Anzahl der Attribute (und damit späteren Performanzfragen) ab.
| RM - Variante 1 |
|---|

| PDM - Variante 1 |
|---|
Hinweis: Im PDM muss eine Tabelle gelöscht und alle Attribute der gelöschten Tabelle müssen übertragen werden.
| SQL - Variante 1 |
|---|
( VNr CHAR(3) NOT NULL PRIMARY KEY,
Name VARCHAR(20),
ANr CHAR(5) NOT NULL UNIQUE,
Bezeichnung VARCHAR(50),
Kaufdatum DATE
);
| RM - Variante 2 |
|---|

| PDM - Variante 2 |
|---|
Hinweis: Im PDM muss eine der beiden Fremdschlüsselbeziehungen gelöscht werden.
| SQL - Variante 2 |
|---|
( ANr CHAR(5) NOT NULL PRIMARY KEY,
Bezeichnung VARCHAR(50)
);
CREATE TABLE Vertreter
( VNr CHAR(3) NOT NULL PRIMARY KEY,
Name VARCHAR(20),
Kaufdatum DATE,
ANr CHAR(5) NOT NULL UNIQUE,
FOREIGN KEY (ANr) REFERENCES Artikel (ANr)
ON DELETE CASCADE
);
| Typ 2: Teilobligatorische 1:1-Beziehung |
|---|
| ERM |
|---|
Grad: 1 : 1
Verbindlichkeit: obligatorisch ("muss") nur für eine Seite (Vertreter)
Jeder Vertreter verkauft genau einen Artikel. Ein Artikel darf von höchstens einem bestimmten Vertreter verkauft werden, aber nicht jeder Artikel muss von einem Vertreter verkauft werden.
| CDM - Variante 1 |
|---|
| RM |
|---|

| PDM - Variante 1 |
|---|
Hinweis: Im PDM muss eine der beiden Fremdschlüsselbeziehungen gelöscht werden.
| CDM - Variante 2 |
|---|
Hinweis: Korrekt wäre die Modellierung einer dominanten Rolle im CDM.
| PDM - Variante 2 |
|---|
| SQL |
|---|
( ANr CHAR(5) NOT NULL PRIMARY KEY,
Bezeichnung VARCHAR(50)
);
CREATE TABLE Vertreter
( VNr CHAR(3) NOT NULL PRIMARY KEY,
Name VARCHAR(20),
Kaufdatum DATE,
ANr CHAR(5) NOT NULL UNIQUE,
FOREIGN KEY (ANr) REFERENCES Artikel (ANr)
ON DELETE RESTRICT
);
| Typ 3: Nichtobligatorische 1:1-Beziehung |
|---|
| ERM |
|---|
Grad: 1:1
Verbindlichkeit: nichtobligatorisch ("kann") für beide Seiten
Jeder Vertreter kann maximal einen Artikel verkaufen. Jeder Artikel kann von maximal einem Vertretern verkauft werden.
| CDM |
|---|
Es sind verschiedene Ableitungen, abhängig von der Semantik, möglich.
| RM |
|---|

| PDM |
|---|
Hinweis: Um das vorgeschlagene Ergebnis zu erhalten, ...
... müssten
a) Rollennamen festgelegt werden und
b) eine N:M-Beziehung modelliert werden.
| CDM |
|---|
Letzteres widerspricht dem geforderten Grad der Beziehung. D.h., eine beidseitig nichtobligatorische 1:1-Beziehung muss im PDM neu modelliert bzw. in SQL angepasst werden!
| SQL |
|---|
( VNr CHAR(3) NOT NULL PRIMARY KEY,
Name VARCHAR(20),
Kaufdatum DATE
);
CREATE TABLE Artikel
( ANr CHAR(5) NOT NULL PRIMARY KEY,
Bezeichnung VARCHAR(50)
);
CREATE TABLE Verkauft
( VNr CHAR(3) NOT NULL UNIQUE,
ANr CHAR(5) NOT NULL UNIQUE,
FOREIGN KEY (VNr) REFERENCES Artikel (VNr)
ON DELETE RESTRICT,
FOREIGN KEY (ANr) REFERENCES Artikel (ANr)
ON DELETE RESTRICT,
PRIMARY KEY (VNr, ANr)
);
NOT NULL und UNIQUE für VNr und ANr in Verkauft sind nicht zwingend nötig, da dies durch die Primärschlüsseleigenschaft schon sichergestellt ist.
| Typ 4: Obligatorische 1:N-Beziehung |
|---|
| ERM |
|---|
Grad: 1 : N
Verbindlichkeit: obligatorisch ("muss") für die N-Seite (Vertrag)
Jeder Vertreter kann mehrere Verträge abschließen. Ein Vertrag muss aber immer von genau einem Vertreter abgeschlossen werden.
| CDM |
|---|

| RM |
|---|

| PDM |
|---|

| SQL |
|---|
( VNr CHAR(3) NOT NULL PRIMARY KEY,
Name VARCHAR(20),
Kaufdatum DATE
);
CREATE TABLE Vertrag
( VertrNr CHAR(3) NOT NULL PRIMARY KEY,
VNr CHAR(3) NOT NULL,
KundNr CHAR(4),
FOREIGN KEY (VNr) REFERENCES Vertreter (VNr)
ON DELETE RESTRICT
);
| Typ 5: Nichtobligatorische 1:N-Beziehung |
|---|
| ERM |
|---|
Grad: 1 : N
Verbindlichkeit: nichtobligatorisch ("kann") für die N-Seite (Kunde)
Jeder Vertreter kann mehrere Kunden beliefert. Jeder Kunde kann nur genau von einem Vertreter beliefert werden. Ein Kunde muss aber nicht beliefert werden.
| CDM |
|---|

| RM |
|---|

| PDM |
|---|
Hinweis: Um das korrekte Ergebnis zu erhalten, ...
... müsste das konzeptuelle Modell wie folgt erstellt werden:
| CDM |
|---|
Dies widerspricht den geforderten Beziehungsgraden. D.h., die nichtobligatorische 1:N-Beziehung muss im PDM neu modelliert bzw. in SQL angepasst werden!
| SQL |
|---|
( VNr CHAR(3) NOT NULL PRIMARY KEY,
Name VARCHAR(20),
Kaufdatum DATE
);
CREATE TABLE Kunde
( KNr CHAR(4) NOT NULL PRIMARY KEY,
Name VARCHAR(20)
);
CREATE TABLE Beliefert
( VNr CHAR(3) NOT NULL,
KNr CHAR(5) NOT NULL UNIQUE,
FOREIGN KEY (VNr) REFERENCES Vertreter (VNr)
ON DELETE RESTRICT,
FOREIGN KEY (KNr) REFERENCES Kunde (KNr)
ON DELETE RESTRICT,
PRIMARY KEY (VNr, KNr)
);
| Typ 6: N:M-Beziehung |
|---|
| ERM |
|---|
Grad: N : M
Verbindlichkeit: ohne Bedeutung, im Beispielfall nichtobligatorisch
Jeder Vertreter kann mehrere Artikel verkaufen. Jeder Artikel kann von mehreren Vertretern verkauft werden.
| CDM |
|---|

| RM |
|---|

| PDM |
|---|

| SQL |
|---|
( VNr CHAR(3) NOT NULL PRIMARY KEY,
Name VARCHAR(20),
Kaufdatum DATE
);
CREATE TABLE Artikel
( ANr CHAR(5) NOT NULL PRIMARY KEY,
Bezeichnung VARCHAR(50)
);
CREATE TABLE Verkauft
( VNr CHAR(3) NOT NULL,
ANr CHAR(4) NOT NULL,
FOREIGN KEY (VNr) REFERENCES Vertreter (VNr)
ON DELETE RESTRICT,
FOREIGN KEY (ANr) REFERENCES Artikel (ANr)
ON DELETE RESTRICT,
PRIMARY KEY (VNr, ANr)
);