Unterschied zwischen IS_A-Beziehung und Vererbung im EER-Modell

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Unterschied zwischen IS_A-Beziehung und Vererbung im EER-Modell
Hallo zusammen,

inwiefern besteht ein Unterschied zwischen einer IS_A-Beziehung und der Nutzung von z.B. disjunkter/ überlappender Vererbung? Ich dachte immer, dass man beides alternativ verwenden könnte, aber das ist anscheinend nicht so. Wann genau verwende ich was?
Ich habe die Vermutung, dass bei der IS_A-Beziehung eine eigene Beziehung modelliert wird, welche von z.B. 2 Entitäten Auto und Fahrzeug abhängt. Bei der Verwendung von der (disjunkter/ überlappender) Vererbung im EER (also diese Striche mit der Rundung) existiert wahrscheinlich ein Objekt der Oberklasse Fahrzeug und zusätzlich ein Objekt der Unterklasse Auto? Ich verstehe dieses Konstrukt nicht wirklich. Könnt ihr mir bitte etwas helfen?

Vielen Dank!


Hallo froschigon,

die IS_A Beziehung ist ein Konstrukt das wir nur verwendet haben, weil wir die Möglichkeiten der EER Modellierung noch nicht hatten. Wie du schon festgestellt hast sind an einer IS_A Beziehung 2 Entities beteiligt. Aber gerade im Beispiel Auto IS_A Fahrzeug wollen wir das nicht. Das an dieser Beziehung beteiligte Entity Fahrzeug und Auto sind in der Realität das gleiche Objekt. Wir wollen keine 2 Entities dafür haben. Aus diesem Grund ist die IS_A Beziehung streng genommen nicht korrekt und wir haben dann das EER Konstrukt kennengelernt.

Das Schöne an der EER Modellierung ist nun das wir in diesem Sachverhalt nur noch ein Entity brauchen, dass in der Unterklasse Auto und in der Oberklasse Fahrzeug enthalten ist.
Eine IS_A Beziehung ist immer eine 1:1 Beziehung und hat eine totale Teilnahme auf der Seite der „Unterklasse“. (In diesem Fall Auto). Eine äquivalente Umsetzung in EER ohne diesem Schönheitsfehler wäre eben so: Autos —C-- Fahrzeuge (siehe Folien zu EER-Modellierung, VL3).

Nope. Also wenn wir uns ein Entity der Extension von Auto rauspicken, ist auch genau das gleiche Entity in der Menge der Oberklasse Fahrzeug enthalten. Das sind keine 2 Entitys wie bei der IS_A Beziehung. Das ist genau 1 Entity. Dieses repräsentiert genau 1 Objekt in der Realität. Also genau so wie wir das wollen :slight_smile:

Gruß
tenma


Das ER-Modell (Ohne Erweiterung) ist gar nicht darauf ausgelegt, Vererbung/Kategorien visuell darzustellen, was auch der Grund für die Erweiterung ist.
Was bietet denn Kategorie/Vererbung genau?

  • Ich kann darstellen, das Unterklassen zu Oberklassen gehören und ihnen eigene Schlüssel geben, aber sicherstellen, das sie den Primärschlüssel der Oberklasse beinhalten.
  • Ich kann darstellen, das hierbei auch die Beziehungstypen mit übergeben werden.
  • Ich kann sogar etwas über die Menge an Entities sagen, die in einer Vererbung bzw. Kategorie vorkommen durch Einsatz von partiell/total. Ich kann überlappend und disjunkt darstellen, ich kann partielle und totale Kategorien darstellen.
  • Ich kann darstellen, das es sich prinzipiell um gleiche Objekte handelt, die sich aber in Einzelheiten unterscheiden. (z.B: Primärschlüssel: Auto: KFZ-Kennzeichen, Fahrzeug: Modell)

Punkt 1 kannst du nicht durch einen Beziehungstyp darstellen. Denn wenn ein Entitytyp einen Schlüssel hat, dann hat es diesen Schlüssel. Auch ein schwacher Entitytyp hat nicht den Schlüssel des Entitytyps, von dem es abhängt. Du könntest auf den Gedanken kommen, das die Beziehung ein Attribut hat. Du kannst aber - im Gegensatz zu einem echten Primärschlüssel - nicht sicherstellen, das dieses auch einen Wert enthält! Und Primärschlüssel sind für Beziehungstypen nicht erlaubt.

Punkt 2 kannst du auch nicht durch eine Beziehungstyp repräsentieren. Denn das wäre ein Beziehungstyp, der das Verhältnis des Entitytyps zu anderen Beziehungstypen beschreibt, somit selbst kein Beziehungstyp mehr (Beziehungstypen bestehen zwischen Entitytypen, nicht hingegen zwischen Beziehungstypen!)

Punkt 3 ist auch nicht möglich. Du kannst etwa nichts Partielles darstellen durch eine Beziehung. Du kannst auch nicht differenzieren zwischen disjunkt/überlappend.

Punkt 4 ist auch nicht möglich. Siehe Antwort von Tenma.


Vielen Dank euch beiden für die ausführlichen Antworten!