Datenbankmodellierung - Vererbung

Ich hätte mal eine Frage zur Datenbankmodellierung, speziell zur Vererbung bei Entitätstypen. Die Frage ist etwas weiter unten, will zuerst beschreiben was ich meine.

Mal angenommen der folgende Fall liegt vor:
WATER(name,qual) - Supertyp
RIVER(length) - Subtyp
LAKE(depth,area) - Subtyp

Also, RIVER und LAKE werden von WATER abgeleitet. Wird das später in Tabellen umgesetzt, gibt es ja drei Möglichkeiten:

  1. Je eine Tabelle pro Entitätstyp. Die Subtypen erben nur den Primärschlüssel name von WATER:
    WATER(name,qual)
    RIVER(name,length)
    LAKE(name,depth,area)

  2. Je eine Tabelle pro Subtyp, keine für den Supertyp. Die Subtypen erben alle Attribute vom Supertyp:
    RIVER(name,qual,length)
    LAKE(name,qual,depth,area)

  3. Ledeglich eine Tabelle für den Supertyp, keine für die Subtypen. Supertyp nimmt alle Attribute der Subtypen auf. Je nachdem welcher Typ später gespeichert wird, bleiben die Zellen für die anderen Attribute leer:
    WATER(name,qual,length,depth,area)

Desweiteren gibt es ja im ER-Modell die Möglichkeit eine Vererbung inklusiv und exklusiv zu kennzeichnen:

 WATER WATER
 | |
 /\_\ /<u>X</u>\
 / \ / \
 RIVER LAKE RIVER LAKE
_(inklusiv)__(exklusiv)_

Bei exklusiven Vererbungen wird das oft durch ein X gekennzeichnet. Das bedeutet, dass ein WATER entweder ein RIVER oder ein LAKE ist.
Eine inklusive Vererbung bedeutet, dass ein WATER sowohl ein RIVER alsauch ein LAKE ist.

Jetzt die eigentliche Frage/Unverständnis:
Wenn ich eine Vererbung inklusiv bzw. exklusiv modelliere, kann ich diese dann in alle drei Tabellenformen umwandeln, oder hängt es davon ab, ob das inklusiv oder exklusiv modelliert wurde?
Und wann ist ein Supertyp sowohl vom Subtyp1 als auch vom Subtyp2?

Ich muss mich selbst korregieren, es gibt zwei Eigenschaften wie eine Vererbung im ER-Modell notiert werden kann:

  1. disjunkt (exklusiv) oder überlappend (inklusiv)
    = kann ein Element der Superklasse in höchstens einer
    Subklasse sein, ist die Spezialisierung disjunkt
  2. total oder partiell
    = muss ein Element der Superklasse in mindestens einer
    Subklasse sein, ist die Spezialisierung total

Da beide Eigenschaften voneinander unabhängig sind,
ergeben sich vier verschiedene Kombinationen:

 Uniangehöriger Mitarbeiter
 | |
 /\_\ /\_\
 / \ / \
 Student Nichtstudent Professor WM
_(disjunkt und total)__(disjunkt und partiell)_

 Uniangehöriger Uniangehöriger
 | |
 /\_\ /\_\
 / \ / \
 Student Mitarbeiter Student WM
_(überlappend und total)__(überlappend und partiell)_

Des Weiteren gibt es vier Optionen wie man das Modellierte als Tabellen darstellt. Die drei, die ich schon genannt habe und noch eine die etwas seltener eingesetzt wird und deshalb nicht so wichtig ist:

  1. Je eine Tabelle pro Entitätstyp. Die Subtypen erben nur den
    Primärschlüssel name von WATER:
    WATER(name,qual)
    RIVER(name,length)
    LAKE(name,depth,area)
  • eignet sich für disjunkt und überlappend
  • eignet sich für total und partiell
  1. Je eine Tabelle pro Subtyp, keine für den Supertyp. Die
    Subtypen erben alle Attribute vom Supertyp:
    RIVER(name,qual,length)
    LAKE(name,qual,depth,area)
  • nur geeignet für disjunkte und totale Spezialisierung
  1. Ledeglich eine Tabelle für den Supertyp, keine für die
    Subtypen. Supertyp nimmt alle Attribute der Subtypen auf. Je
    nachdem welcher Typ später gespeichert wird, bleiben die
    Zellen für die anderen Attribute leer:
    WATER(name,qual,length,depth,area)
  • nur geeignet für disjunkte Spezialisierung
  • eignet sich für total und partiell

Ich schließe daraus, dass die Art wie modelliert wurde, nicht darüber entscheidet wie es später in Tabellenform umgesetzt wird. Bei jeder der 4 Modellierungskombinationen kann die erste Tabellenumsetzungsoption verwendet werden.

Korrigiert mich bitte wenn ich falsch liege! Oder stimmt zu um das zu bestätigen^^
Habe das hier gefunden http://lionel.kr.hs-niederrhein.de/~dalitz/data/lehr… ab Seite 11

Moin, LuckyLuke,

Wenn ich eine Vererbung inklusiv bzw. exklusiv modelliere,
kann ich diese dann in alle drei Tabellenformen umwandeln,
oder hängt es davon ab, ob das inklusiv oder exklusiv
modelliert wurde?

die Umsetzung ins physische Modell ist immer unabhängig von der logischen Modellierung.

Und wann ist ein Supertyp sowohl vom Subtyp1 als auch vom
Subtyp2?

Mir hat sich nicht erschlossen, was Subtyp1 und was Subtyp2 ist.

Gruß Ralf

grundsätzlich ist das was du schreibst richtig,
auch wenn unser Prof Begriffe wie überlappend nicht mag, klingt nicht wissenschaftlich genug da muss im Zweifel immer ein „nicht disjunkt“ herhalten *rofl*

wenn du dich damit auseinandersetzen willst/must siehe:
http://web.f4.fhtw-berlin.de/morcinek/unterlagen/ERM…
ab Seite 19

oder die Toturials das meine *mich mit Datenbanken, Sql und PL/SQL usw. nervenden* Prof´s geschrieben haben, da findest du bestimmt was interessantes, vor allem bin ich erstaunt darüber wie viel mühe sie sich gegeben haben nicht zu wissenschaftlich zu klingen sondern verständlich *grins*