Super- und Subtypen
Die bei MS Access mitgelieferte Nordwind-Datenbank hat zwei Entitäten mit ähnlichen Eigenschaften und Attributen, aber mit unterschiedlichen Bedeutungen. Diese sind Kunde und Lieferant. Entitäten sind dann vom selben Typ, wenn sie die selben Eigenschaften und Beziehungen zu anderen Entitäten besitzen. Im genannten Beispiel unterscheiden sich die Entitäten in ihren Beziehungen zu anderen Entitäten. Während ein Lieferant Produkte liefert (also eine Beziehung zur Entität Produkte aufweist), bestellt ein Kunde Produkte (weist eine Beziehung zur Entität Bestellungen auf).
Um diesen Sachverhalt zu modellieren, werden sogenannte Supertypen und Subtypen eingeführt. Ein Supertyp enthält alle gemeinsamen Eigenschaft einer Entität, ein Subtyp die speziellen Beziehungen und speziellen Eigenschaften einer Entität.
In unserem Beispiel würde der Supertyp die Felder Name, Adresse, Postleitzahl, Stadt,.. enthalten, der Subtyp Lieferbedingungen, Rabatte,...und die unterschiedlichen Beziehungen (zu den Entitäten Bestelldetails, Artikel,.. ).
Wenn Kunden nicht zugleich Lieferanten sein können, dann sind die Subtyp-Entitäten disjunkt. Wenn manche Kunden auch Lieferanten sein können, dann sind sie nicht-disjunkt. Wenn alle Kunden Lieferanten sind und umgekehrt, dann macht eine Unterteilung in Subtypen-Entitäten keinen Sinn.
Anhand dieser Informationen sind drei Modellierungssituationen möglich:
- Supertyp-Lösung
- Subtyp-Lösung
- Supertyp-Subtyp-Lösung
In der ersten Lösung wird nur eine Tabelle verwendet, wobei alle Datensätze die selben Eigenschaften und Attribute besitzen. Nur eine einzige Tabelle wäre notwendig, die in unserem Beispiel Kontakte heißen könnte.
Die zweite Lösung teilt sich in zwei separate Tabellen Kunde und Lieferant.
Die dritte Lösung wiederum benötigt drei Tabellen, eine Tabelle Kontakte als Supertyp-Entität und zwei Tabellen Kunde und Lieferant als Subtyp-Entität.
cool, gell *ggg*
Die bei MS Access mitgelieferte Nordwind-Datenbank hat zwei Entitäten mit ähnlichen Eigenschaften und Attributen, aber mit unterschiedlichen Bedeutungen. Diese sind Kunde und Lieferant. Entitäten sind dann vom selben Typ, wenn sie die selben Eigenschaften und Beziehungen zu anderen Entitäten besitzen. Im genannten Beispiel unterscheiden sich die Entitäten in ihren Beziehungen zu anderen Entitäten. Während ein Lieferant Produkte liefert (also eine Beziehung zur Entität Produkte aufweist), bestellt ein Kunde Produkte (weist eine Beziehung zur Entität Bestellungen auf).
Um diesen Sachverhalt zu modellieren, werden sogenannte Supertypen und Subtypen eingeführt. Ein Supertyp enthält alle gemeinsamen Eigenschaft einer Entität, ein Subtyp die speziellen Beziehungen und speziellen Eigenschaften einer Entität.
In unserem Beispiel würde der Supertyp die Felder Name, Adresse, Postleitzahl, Stadt,.. enthalten, der Subtyp Lieferbedingungen, Rabatte,...und die unterschiedlichen Beziehungen (zu den Entitäten Bestelldetails, Artikel,.. ).
Wenn Kunden nicht zugleich Lieferanten sein können, dann sind die Subtyp-Entitäten disjunkt. Wenn manche Kunden auch Lieferanten sein können, dann sind sie nicht-disjunkt. Wenn alle Kunden Lieferanten sind und umgekehrt, dann macht eine Unterteilung in Subtypen-Entitäten keinen Sinn.
Anhand dieser Informationen sind drei Modellierungssituationen möglich:
- Supertyp-Lösung
- Subtyp-Lösung
- Supertyp-Subtyp-Lösung
In der ersten Lösung wird nur eine Tabelle verwendet, wobei alle Datensätze die selben Eigenschaften und Attribute besitzen. Nur eine einzige Tabelle wäre notwendig, die in unserem Beispiel Kontakte heißen könnte.
Die zweite Lösung teilt sich in zwei separate Tabellen Kunde und Lieferant.
Die dritte Lösung wiederum benötigt drei Tabellen, eine Tabelle Kontakte als Supertyp-Entität und zwei Tabellen Kunde und Lieferant als Subtyp-Entität.
cool, gell *ggg*