1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

ERM / SQL rekursive Beziehung?

  • tiano
  • 3. Oktober 2008 um 12:01
  • Unerledigt
  • tiano
    2
    tiano
    Mitglied
    Punkte
    35
    Beiträge
    5
    • 3. Oktober 2008 um 12:01
    • #1

    Hallo,

    ich habe eine Frage zur Modellierung eines ERMs bzw. der Überführung ins Relationenmodell:

    Nehmen wir an es gibt die Entitätsmenge "Verkäufer" und die Menge "Käufer"
    die beide eine Spezialisierung (IS-A) von Benutzer sind und beide sich eindeutig durch den ebaynamen identifizieren lassen.

    Wenn man nun den Sachverhalt modellieren möchte dass ein Käufer einen Verkäufer bewertet, entspricht das dann einer rekursiven Beziehung?? Das Problem ist ja dass beide als Primärschlüssel "ebayname" haben.
    Die neue Tabelle "Bewertung" würde dann ja aus (ebayname:string, ebayname:string) bestehen.

    Vielen Dank!!

  • Spiderman
    2
    Spiderman
    Mitglied
    Punkte
    40
    Beiträge
    6
    • 3. Oktober 2008 um 14:55
    • #2

    1) So wie du den Sachverhalt schilderst (3 Entitäten Benutzer, Verkäufer, Käufer - IS A Beziehungen), würde ich sagen, dass es sich nicht um eine rekursive Beziehung handelt. (Hinweis: Eine rekursive Beziehung liegt dann vor, wenn eine Entität eine Referenz auf sich selbst hat - das trifft hier nicht zu)
    2) Da jeder Käufer beliebig viele Verkäufer bewerten kann und jeder Verkäufer von beliebig vielen Käufern bewerten werden kann, ist hier, wie du richtig erkannt hast, eine n:m Beziehung (sprich eine Zwischentabelle) erforderlich. Diese Zwischentabelle "Bewertung" hat, wie du richtig gesagt hast, den Primärschlüssel (ebayname, ebayname), wobei ein "ebayname" aus der Tabelle "Käufer" und der andere "ebayname" aus der Tabelle "Verkäufer" kommt.

    Einmal editiert, zuletzt von Spiderman (3. Oktober 2008 um 14:58)

  • tiano
    2
    tiano
    Mitglied
    Punkte
    35
    Beiträge
    5
    • 3. Oktober 2008 um 15:18
    • #3

    Hallo Spiderman,

    vielen Dank schon einmal für deine Antwort. Es kam mir nur so komisch vor, dass ein Primärschlüssel aus zweimal der gleichen Bezeichnung bestehen kann... Ich bereite mich gerade auf eine Klausur vor und habe schon einige ERMs durch aber in dieser Form ist mir das bisher noch nicht vorgekommen.

    Ein häufiges Beispiel ist ja die rekursive Beziehung zwischen "Teil" und der Relation "Struktur" --> selbst wenn hier jedes Teil eine eindeutige TeileNr bekommt, kann man die Relation Struktur nicht (TeilNr, TeilNr) nennen, sondern die beiden Schlüssel werden umbenannt in zB (OberteilNr, UnterteilNr)

    Ich dachte mir, vielleicht müsste man in meinem ebay Beispiel die Beziehung (K_ebayname, V_ebayname) nennen, war mir aber auch nicht sicher ob das so geht...

  • onu
    3
    onu
    Mitglied
    Punkte
    75
    Beiträge
    14
    • 3. Oktober 2008 um 16:42
    • #4

    vl hilft dir das ein wenig weiter:

    Käufer: {[ebayname:string]}
    Verkäufer: {[ebayname:string]}
    bewertet: {[käufername:string, verkäufername:string, bewertung:integer]}

    in "bewertet" sind das fremdschlüssel! (irgendwie ein sinnfreies beispiel da das meines erachtens (und ich bin da kein profi:) nur eine bewertung pro käufer/verkäufer-paar zulässt). uuund so wie ich das sehe deckt sich das mit deinem "Teil" & "Struktur"-beispiel. ausserdem denke ich nicht dass es ein problem darstellt in 2 relationen den gleichen namen zu verwenden. es wird halt unübersichtlicher wenn du da nicht aufpaßt (ausgewählt wird ohnehin mit: "SELECT v.foo FROM bar v")

    http://www-db.in.tum.de/research/publi…/EIS/index.html
    kann ich sehr empfehlen, da steht das alles ganz gut erklärt. va wenn du dann ohnehin mehr machen möchtest.

    Einmal editiert, zuletzt von onu (3. Oktober 2008 um 16:48) aus folgendem Grund: maybe hab ich da ein wenig ungenau gelesen, aber der link hilft dir vl :)

  • Maximilian Rupp 27. Dezember 2024 um 12:04

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Rechtliches

Impressum

Datenschutzerklärung