Unterschied Ober/ Unterklasse und Kategorie

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 Ober/ Unterklasse und Kategorie
Kann jemand kurz zusammenfassen, was ich wann nehme?

Ich hatte mir das so gedacht:

Person kann ich unterteilen in Mitarbeiter und Kunde. Das mache ich mit Ober/ Unterklasse, weil ich mit Mitarbeiter und Kunde weiter arbeiten will.

Wenn ich Personen und Firmen habe, die jeweils Besitzer sein können und ich mit Besitzer weiter arbeiten will, nehme ich Besitzer.

Ich habe aber das Gefühl, dass das noch nicht so ganz rund ist.


Die Betonung sollte hier auf „können Besitzer sein“ liegen.
Bei einer Generalisierung/Spezialisierung sind die Subklassen IMMER Mitglied der Superklasse.
Bei einer Kategorie sind nur Teile der Subklassen tatsächlich Mitglied der Oberklasse.

Also so hab ich den Unterschied verstanden.


… das und bei Generalisierung / Spezialisierung haben die Subklassen genau einen gemeinsamen Primärschlüssel, bei Kategorien haben beide Oberklassen meist verschiedene. Das war zumindest einer der Kriterien, wann und ob eine Kategorie als Spezialisierung / Generalisierung dargestellt werden kann (siehe auch Musterlösung Übung EER).


@educs

Das ist eine Spezialisierung: Prozess der Definition von Unterklassen ausgehend von einer Oberklasse

Das ist dann eine Generalisierung: Prozess der Definition von Oberklassen ausgehend von mehreren Unterklassen mit gemeinsamen Attributen

Ich nehme an deine Aussage bezieht sich auf die Elemente der Klassen?
Dann würde ich das so nicht unterschreiben.

Bei Generalisierung i.A. ja, aber auch nur unmittelbar nach der Erstellung der Oberklasse, also sprich es wurden keine neuen Datensätze hinzugefügt, die nicht ganz der Semantik entsprechen, nach der die Generalisierung durchgeführt wurde.

Bei der Spezialisierung kann es auch gut sein, dass man mit den Unterklassen nicht alle Elemente der Oberklasse abdeckt.


Dann darf man solche Elemente nicht einfügen, weil wenn du ans Mapping denkst haben die ja auch den Primärschlüssel und die Attribute der Oberklasse im Sinne der Vererbung.
Bei einer Kategorie hingegen erhalten die Subklassen nur einen SurrogatFK der die als Mitglied der Kategorie ausweist.

Aber ich lass mich gern eines besseren belehren.


So wie ich das verstanden hab ist der EINZIGE technische Unterschied zwischen Vererbung und Kategorisierung der gemeinsame/unterschiedliche Primärschlüssel, alles andere ist reininterpretierte Semantik.


Ok, da habe ich wohl was durcheinandergebracht, also hab wahrscheinlich gemeint, dass ein Element der Oberklasse nicht immer zu einer Unterklasse gehören muss.
Andersrum muss ein Element einer Unterklasse bei Spezialisierung/Generalisierung aber immer zur Oberklasse gehören.

Immerhin hab ich durch das Überlegen hier den Erkenntnisgewinn gehabt, dass der Unterschied zur Kategorie darin liegt, dass die Generalisierung eine Vereinigung ist, bei der alle Elemente der verinigten Mengen enthalten sind, während bei die Kategorie auch nur eine Teilmenge der Verinigungsmenge sein kann.

Lieg ich hier wenigstens richtig?^^


Bei Konzeptioneller Modellierung gehts aber halt leider nicht um die technische Implementierung… :smiley: