Werner: ERM - Mehrwertige Attribute

Hallo

Beim Entity-Relationship-Model gibts die sogenannten "Mehrwertigen Attribute", welche mit einer doppelten Ellipse dargestellt werden. Mir ist allerdings nicht ganz klar, wofür man diese benötigt und wie man sie tatsächlich beim Datenbankentwurf umsetzt. Das Attribut "Ort" einer Geschäftsabteilung, welche auf verschiedene Orten verteilt ist, soll offenbar ein mehrwertiges Attribut sein. Bisher hätte ich das wie folgt in der DB modelliert:

Neue Tabelle ORT(ID_ORT, NAME_ORT) z.B. für ORT(1, München) und dann eine Tabelle ABTEILUNG_ORT(ID_ABTEILUNG, ID_ORT) erstellen.

Gemäss den Regeln setzt man aber offenbar die mehrwertigen Attribute wie folgt um:

ABTEILUNG_ORT(ID_ABTEILUNG, ORT) wobei die beiden Attribute zusammen einen Primärschlüssel bilden.

Warum macht man das so, bzw. was ist bei meiner Umsetzung falsch?

Gruss Werner

  1. Hi,

    also deine Umsetzung ist nicht wirklcih falsch, sie ist nur schon einen Schritt weiter. Wenn man ein ERM in ein Relationenschema übersetzt geht das ja Schrittweise, du hast quasi schon eine Art Normalisierung vorgenommen, so dass der Ortsname nicht mehrfach gespeichert wird. Zugegeben, solange ein Ort nur einen Namen hat ist der Vorteil eher zweifelhaft, bis auf etwas Speicherplatz vielleicht.
    Es gibt in modernen Datenbanken theoretisch noch eine weitere Möglichkeit solche mehrwertigen Attribute zu speichern, aber das wird dann echt abgefahren. Mit den neueren SQL-Standards kann man in ein Attribut ein Objekt oder eine Menge von Werten reinspeichern, damit kann man das dann sogar 1:1 umsetzen. Aber meine persönliche Meinung: schwarze Magie, ich hab's noch nicht im Einsatz gesehen, obwohl es geht. Bin mir aber sicher, dass es irgendwer nutzt...

    MfG
    Rouven

    --
    -------------------
    ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(
    1. Hallo

      also deine Umsetzung ist nicht wirklcih falsch, sie ist nur schon einen Schritt weiter. Wenn man ein ERM in ein Relationenschema übersetzt geht das ja Schrittweise, du hast quasi schon eine Art Normalisierung vorgenommen, so dass der Ortsname nicht mehrfach gespeichert wird.

      Das bedeutet also, dass noch keine Normalisierung vorliegt wenn das ERM mit den bekannten Regeln auf die DB abgebildet wird?

      Gruss Werner

      1. Hmh,

        also ich geb dir das nicht schriftlich als Prüfungsantwort, aber meines Wissens nach nein. Nur weil ich aus einer n:m-Beziehung eine Kreuz-Relation aufgestellt habe, in der die PrimaryKeys drin sind, ist die noch lange nicht fertig, weil die Abhängigkeiten in den jeweiligen Entities noch gar nicht betrachtet wurden...

        MfG
        Rouven

        --
        -------------------
        ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(