Michi: Klausuraufgaben zu Datenbanken

Hallo Forum,
ich habe morgen eine Klausur und hätte eine kleine zu Datenbanken.

1. Wir mussten ein Wirkstoff erstellen, welches mehrere Nebenwirkungen haben kann. Das habe ich einigermaßen realisiert mit der Zwischentabelle Nebenwirkungen, in der mehrere Wirkstoffe mit mehrere Nebenwirkungen stehen können.

Nun muss ich unten eine Tabelle Wechselwirkungen erstellen, in der Wirkstoffe untereinander in Wechselwirkung stehen können.

D.h., Wirkstoff 1, kann mit Wirkstoff 2, 3 und 4 in Wechselwirkungen stehen.
Wirkstoff 2 könnte mit Wirkstoff 1 und 4 in Wechselwirkung stehen.
Zu den Wechselwirkungen besteht auch ein Textfeld, in der die Wechselwirkung erklärt wird.

Meine Frage nun, wie ich den roten Bereich am besten realisiere?

Tabelle Wechselwirkungen:
Wirkstoff_ID (Fremdschlüssel von Wirkstoff_ID der Tabelle Wirkstoff)
Wechselstoff_ID (Auch Fremdschlüssel von Wirkstoff_ID der Tabelle Wirkstoff)

Dann von beiden oberen Spalten eine eigene Linie zu Wirkstoff_ID zur Tabelle Wirkstoff ziehen oder?)

2. Was versteht man unter beziehungsarm und beziehungsreich?

3. Das folgende habe ich auch garnicht kapiert:

Attr(R) ∩ Attr(S) = ∅   ---->  R |X| S =R ×S

Attr(R) = Attr(S)       ---->  R |X| S =R ∩S

Die erste Zeile ist klar. Man verbindet beide Relationen/Tabellen R und S miteinandern, bei denen es keine Attribute übereinstimmen, aber warum ist es das selbe wie, wenn man R und S im Verbund nimmt?

Die zweite Zeile. Das gleich dürfte auch Verbund bedeuten ne?
Das wäre das gleiche, wie man man R und S mit |X| verbindet oder mit dem U, welches im Kopf steht. Also "UND" bedeutet.

Wäre super, falls mir jemand helfen könnte.

Grüße
Michi

  1. Meine Frage nun, wie ich den roten Bereich am besten realisiere?

    Ich habe vergessen, das Bild zu verlinken:
    http://www.pic-upload.de/04.02.09/rs3s81.jpg

  2. Hello,

    ob wir syntaktisch über das selbe sprechen weiß ich nicht, aber ich sage dir mal meine Interpretation:

    Attr(R) ∩ Attr(S) = ∅   ---->  R |X| S =R ×S

    Wenn die Schnittmenge der Attribute aus R und S leer ist (d.h. es gibt keine Attribute, die sowohl in Menge R als auch und Menge S vorkommen - wichtig: Attribute, nicht Attributausprägungen), dann ist der Natural Join aus R und S das selbe wie das Kreuzprodukt aus R und S.
    Beispiel:
    Bestehe R aus den Attributen A, B und S aus C und D, dann sind folgendes mögliche Ausprägungen der Relationen R und S
    R  | A | B
    -----------
       | 1 | 2
       | 3 | 4

    S  | C | D
    ----------
       | W | X
       | Y | Z

    Der Natural Join dieser beiden ergibt:
    RxS | A | B | C | D
    --------------------
        | 1 | 2 | W | X
        | 1 | 2 | Y | Z
        | 3 | 4 | W | X
        | 3 | 4 | Y | Z

    Das ist so, weil es keine gemeinsamen Attribute gibt, über die eine Zusammenführung gemacht werden könnte.

    Attr(R) = Attr(S)       ---->  R |X| S =R ∩S

    Hier ist es umgekehrt: Wenn die Attribute von R mit den Attributen von S identisch sind, dann gilt für den Natural Join aus R und S, dass er alle Elemente enthält die sowohl in R als auch in S sind.
    R | A | B
    ---------
      | 1 | 2
      | 3 | 4
      | 5 | 6

    S | A | B
    ----------
      | 1 | 2
      | 3 | 4
      | 7 | 8

    Der Natural Join läuft auf der Basis R.A = S.A und R.B = S.B, damit:
    RxS | A | B
    ------------
        | 1 | 2
        | 3 | 4

    MfG
    Rouven

    --
    -------------------
    sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
    When the only tool you've got is a hammer, all problems start to look like nails.
    1. Hi Rouven,
      vielen Dank für die sehr ausführliche Hilfe. Hat mir sehr geholfen und ich habe es auch anhand der Beispiel gerafft.

      Dankeschön