SQL Entity Relationship Modell - mehrere Relationships zwischen zwei Entitytypen

HansHansen123

Cadet 2nd Year
Registriert
Juli 2015
Beiträge
17
Hallo zusammen,

ich befasse mich aktuell mit dem Bereich des Entity Relationship Modells.

Im Zuge einer Übungsaufgabe werden mir (unter anderem) zwei Entitytypen 'Organisationseinheit' sowie 'Mitarbeiter' vorgegeben.
Zum einen soll jeder Mitarbeiter mindestens einer sowie n-beliebig vielen Organisationseinheiten zugeordnet sein - soweit kein Problem, eine simple Relationship also.

Nun heißt es aber weiter, dass ebenfalls ein Mitarbeiter eine Organisationseinheit in leitender Kapazität zugeordnet sein kann (kann heißt hier, dass die leitende Position auch unbesetzt sein kann - also eine Kardinalität von (0,1)).

Nun zu meiner Frage, wie modelliere ich diesen Sachverhalt korrekt in einem ERM ?

Kann ich zwischen Organisationseinheit sowie Mitarbeiter mehrere Relationships aufstellen - also hier z.B. 'Zuordnung' sowie 'Leitung', oder sollte ich evt. einen neuen Entitytyp 'leitender Mitarbeiter' erstellen und diesen mit der 'Organisationseinheit' in eine Relationship stellen - für einen Denkanstoß bzw. Lösungsansatz wäre ich sehr dankbar ! :-)

Gruß,
HansHansen123
 
Was ist den eine Beziehung? Eine Bezeichnung wer wen kennt! Da ist keine Logik dahinter, für deine Leitungsmitarbeiter brauchst du also entweder eine weitere Entität oder eine Eigenschaft der Entität Mitarbeiter die das in der späteren Logik erfüllt.
 
Wie würdest du dann folgende Situation Abbildungen:
Person A arbeitet bei Abteilung X und leitet zusätzlich Abteilung Y?

Das führt entweder zur Redundanz und Inkonsistenz:
Person A ist in 2 Tabellen und was passiert nun bei einem Update (z.B. beim Namen)

Oder es lässt sich, falls du ein zusätzliches Attribut einführst, das die 'Leitende Position' darstellt,
nicht mehr eindeutig sagen welche Abteilung die Person leitet.

Kurz gesagt: Ich würde eine zusätzliche Relation verwenden :)
 
Spotaner Denkanstoß: du könntest der Relationship selber eine neuen Eigenschaft hinzufügen, entweder "Leiter" als Boolean oder eine generische Tätigkeitsbeschreibung.

Komplexe Beziehung werden ja selbst als Tabelle realisiert. Insbesondere auch dann, wenn Zeiträume erfasst werden sollen, zB war von xx bis yy in Abteilung zz als Leiter. Oder wenn es Richtung mn geht, zB bei abenteuerlichen Projekt-Orgas...
 
Der Mitarbeiter braucht theoretisch nur noch ein Attribut wie istLeiter.
Das Attribut kannst du aber weder der Orga noch dem Mitarbeiter zuweisen, da die Leiter Position nur Sinn macht wenn du einen Mitarbeiter und eine Orga hast.

Aber bei dir ist doch Mitarbeiter und Orga eine N:M Beziehung (Ein Mitarbeiter hat mehrere Orga, eine Orga hat mehrere Mitarbeiter), d.h. du hast eine 3te Tabelle wo die Schlüssel beider drin stehen. Im ER gibt es noch diese Rauten Dinger zwischen den Tabellen, denen du das Attribut zuweisen kannst. Dieses landet dann ebenfalls in der 3ten Tabelle. Hast also in der 3ten 3 Spalten mit MitarbeiterID, OrgaID und istLeiter - diese Kombo identifiziert eindeutig.

Siehe hier bei Figure 11 http://wofford-ecs.org/dataandvisualization/ermodel/material.htm
 
Zuletzt bearbeitet von einem Moderator:
Danke für die vielen Antworten, mittlerweile habe ich auch die Musterlösung zu sehen bekommen, dort wurden tatsächlich zwei Relationships zwischen Mitarbeiter sowie Organisationseinheit gebildet - Zuordnung und Leitung.

Da es sich in dieser Aufgabe ausschließlich um das ERM-Modell gedreht hat (sprich Relationschemata sowie konkrete SQL-Implementierung noch nicht gefragt wurden), wären Attribute in Form von 'istLeiter' wohl nicht ausreichend gewesen, um die gewünschte Kardinalität zwischen Organisationseinheit sowie dem (Leitenden-)Mitarbeiter darzustellen.

Das Thema kann als erledigt betrachtet werden :-).
 
Zurück
Oben