Min-Max-Notation
Die Min-Max-Notation (besser: (min,max)-Notation) ist eine Art, die Kardinalität einer Beziehung zwischen Entitätstypen in einem Entity-Relationship-Modell einzuschränken. Sie wurde eingeführt, weil die Chen-Notation, mit 1:1, 1:n und m:n, nur beschränkte Aussagen zu einer Beziehung erlaubt. Mit der (min,max)-Notation können sowohl Unter- als auch Obergrenzen präzise ausgedrückt werden.
Bei der (min,max)-Notation wird für jeden an einer Beziehung beteiligten Entitätstyp ein 2-Tupel mit einem Minimal- und einem Maximalwert angegeben. Diese Werte geben an, an wievielen Beziehungsausprägungen die Entitätausprägungen minimal und maximal teilnehmen dürfen.
Die (min,max)-Notation wurde 1974 durch Jean-Raymond Abrial eingeführt, im Rahmen eines semantischen Modells, dass mit dem von Chen konkurrierte (Data Semantics. In: IFIP Working Conference Data Base Management, 1974). Mittlerweile hat die Chen-Notation die (min,max)-Notation jedoch assimiliert, und man kann Sie konzeptionell losgelöst von der Abrail-Notation als Ergänzung zu Chen verwenden.
Definition
Für eine Beziehung zwischen zwei Entitätstypen X und Y hat der Entitätstyp X die Kardinalität (a,b), wenn jede Entität aus der Entitätsmenge X zu mindestens a und höchstens b verschiedenen Entitäten aus der Entitätsmenge Y in Beziehung steht, wobei und . Dabei bedeutet , dass die Kardinalität nach oben hin unbeschränkt ist.
Allgemein gilt, dass in einer n-ären Beziehung zwischen dem Entitätstyp und n-1 weiteren Entitätstypen dem Entitätstyp das Min-Max-Paar (a,b) zugeordnet wird, falls jede Entität aus der Entitätsmenge mit mindestens a und höchstens b n-1-Tupeln aus in Beziehung steht, d.h. falls es für jedes in der Ausprägung der Relation zwischen a und b Tupel gibt, in denen (an erster Stelle) vorkommt.
Unterschied zu Kardinalitätsangaben in UML
Bei der min..max Notation aus der UML (= "Multiplizität" einer "Assoziation") wird für jede an einer Assoziation beteiligten Klasse zwar ebenfalls ein 2-Tupel mit einem Minimal- und einem Maximalwert angegeben. Jedoch besagen diese Werte, wie viele Entitäten zweier verschiedener Typen minimal und maximal zueinander in Beziehung gebracht werden können.
Die Mulitiplizitätsangabe aus UML ist in seiner Semantik vergleichbar zur Chen-Notation (1:1, 1:n und m:n) und zur MC-Notation. Alle drei stehen im fundamentalen Gegensatz zur (min,max)-Notation. Die (min,max)-Notation zählt die Ausprägung von Beziehungen; die Kardinalitätsangabe (sprich MC-Notation, sprich Multiplizitätsangabe) zählt beteiligte Entitätausprägungen
Beides scheint nur vergleichbar. Und ist es auch bei binären Beziehungen. In N-ären Beziehungen ist die Semantik fundamental unterschiedlich.
Die (min,max)-Notation ist leider das am häufigsten falsch-verstandene Konzept im Rahmen von ER-Modellierung. Es ist falsch "(min,max)" mit "min..max" (= UML) auf oberflächlichem Niveau zu vergleichen. Es handelt sich um einen Expertenbegriff, der nicht von "jedermann" zu verstehen ist (ausser in der Form "Es geht um Beschränkung in der Anzahl.").
Zum tieferen Verständnis der (min,max)-Notation seien zwei Standardbücher zur Datenbankenmodellierung empfohlen (siehe unten):
- Elmasri und Navathe: Fundamentals of Database Systems , oder
- Kemper und Eickler: Datenbanksysteme
Es sei auch darauf aufmerksam gemacht, dass UML den "*" benutzt, wohingegen die (min,max)-Orginalnotation von Abrial ein "N" verwendet. Dies wird auch häufig durcheinander gebracht und sorgt daher zusätzlich für Verwirrung.
Vergleich zu anderen Notationen
Chen-Notation, MC-Notation, Multiplizitätsangaben der UML und (min,max)-Notation im Vergleich: Wir betrachten zunächst ein Beispiel mit zwei Entitätstypen, in dem wir ausdrücken wollen, dass es zu jeder Entität x aus der ersten Entitätsmenge beliebig viele Elemente aus der zweiten Entitätsmenge geben kann, die zu x in Relation stehen, und dass jedes Element y der zweiten Entitätsmenge zu genau einem Element der ersten Entitätsmenge in Relation stehen muss (d.h. für den zweiten Entitätstyp wird die vollständige Teilname/total participation an der Relation gefordert).
Chen-Notation: Entität 1 ←— 1:n —→ Entität 2 + "vollständige Teilnahme" der Entität 2 an der Beziehung
- Anmerkung: die Entität 2 ist also per Doppelstrich mit der Beziehung verbunden, der Doppelstrich sei als die "Chen-Seite" hinsichtlich der vollständigen Teilnahme dieses Beispiels bezeichnet
MC-Notation: Entität 1 ←— 1:mc —→ Entität 2
- Man beachte: die vollständige Teilnahme ist in Form von 1 auf Seite der Entität 1 repräsentiert, also der Chen-Gegenseite
Multiplizität: Klasse 1 ← 1..1 ——— 0..* → Klasse 2
- Man beachte: die vollständige Teilnahme in Form der "min=1"-Beschränkung ist auf der Seite der Klasse 1; also vergleichbar mit der MC-Notation, ebenfalls auf der Chen-Gegenseite
(min,max)-Notation: Entität 1 ← (0,N) ——— (1,1) → Entität 2
- Man beachte: die vollständige Teilnahme (in Form der "min=1"-Einschränkung) ist hier auf der Seite der Entität 2, also auf der Chen-Seite "wo man sie erwartet" (im Gegensatz zur max-Einschränkung...)
In diesem Beispiel zur vollständigen Teilnahme tritt, selbst schon bei binären Beziehungen, die fundamental andere Sichtweise von (min,max)-Notation auf der einen Seite und MC-Notation/Multiplizitäten auf der anderen zum Vorschein.
Gegenüberstellung von (min,max)-Notation, Chen-Notation, MC-Notation und Multiplizitäten:
(min,max) [Entity 1] | Multiplizität [UML, Entity 1] | Chen-Notation | MC-Notation | Multiplizität [UML, Entity 2] | (min,max) [Entity 2] |
---|---|---|---|---|---|
(0,1) | 0..1 | 1:1 | c:c | 0..1 | (0,1) |
(0,N) | 0..1 | 1:n | c:mc | 0..* | (0,1) |
(0,N) | 1..1 | 1:N + total participation | 1:mc | 0..* | (1,1) |
(0,N) | 0..* | m:n | mc:mc | 0..* | (0,N) |
(1,1) | 0..1 | total participation + 1:1 | c:1 | 1..1 | (0,1) |
(1,N) | 0..1 | total participation + 1:N | c:m | 1..* | (0,1) |
(1,1) | 1..1 | total part. + 1:1 + total part. | 1:1 | 1..1 | (1,1) |
(1,N) | 1..1 | total part. + 1:N + total part. | 1:m | 1..* | (1,1) |
(1,N) | 0..* | total participation + M:N | mc:m | 1..* | (0,N) |
(1,N) | 1..* | total part. + M:N + total part. | m:m | 1..* | (1,N) |
Die (min,max)-Notation gilt als kontra-intuitiv zu Chen bzgl. der (Max-)Kardinalität, weil die (min,max)-Notation Relationships zählt. Chen, MC und Multiplizitäten zählen Entities!
Anmerkung zur Min-Seite: bei der (min,max)-Notation ist das Kriterium zur "vollständigen Teilnahme" (also 0 oder 1 bezogen auf Min) korrekterweise auf der Chen-Seite, im Gegensatz zur kontra-intuitiven (Max-)Kardinalität. Diejenige Seite in der die "vollständige Teilnahme" bei der Multiplizitätsangabe und bei der MC-Notation zum tragen kommt ist bezgl. Chen jedoch kontra-intuitiv, im Gegensatz zur intuitiven (Max-)Kardinalität.
Literatur
- Alfons Kemper, André Eickler: Datenbanksysteme. Eine Einführung. Oldenbourg Wissenschaftsverlag GmbH, München 2006, ISBN 3-486-57690-9
- Ramez Elmasri, Shamkant B. Navathe: Fundamentals of database systems. Addison Wesley, ISBN 0-8053-1755-4