ER-Modell Frage!

DaJazz

Grünschnabel
Hallo,
kann mir jemand bei einem ER-Diagramm helfen.
Ich möchte die Beziehung 2er Entities ("Zuordnung" und "Preise") in einem ER-Diagramm darstellen.
Meine Relationen dazu sind:

Zuordung(Kostenstelle, Unternehmen, Gruppe)
und
Preise(Unternehmen, Preis)

Das heisst also, ein Preis hängt von einem Unternehmen ab, das in der Tabelle "Zuordnung" existiert.
Und dort ist sozusagen "Unternehmen" der Schlüssel.

Nun eine Frage zu den Entities.
Ich habe "Preise" als schwaches Entity von "Zuordnung".
Geht das überhaupt, da ich in "Preise" nicht den Primärschlüssel von "Zuordnung" hab?
Welche Attribute stelle ich in einem ER-Diagramm dar?

Muss es so aussehen?

Entity: "Zuordnung"
Attribute: "Kostenstelle", "Unternehmen", "Gruppe"
|
1
|
bestimmt
|
1
|
Entity: "Preise"
Attribute: "Unternehmen", "Preis"


oder doch eher so:


Entity: "Zuordnung"
Attribute: "Kostenstelle", "Unternehmen", "Gruppe"
|
1
|
bestimmt
|
1
|
Entity: "Preise"
Attribute: "Preis"


-> denn teilweise läßt man ja gewisse Schlüssel weg bei der Darstellung.
Nur weiss ich halt nicht, wie es hier richtig ist.
Hoffe, es kann mir jemand helfen.
Viele Grüße
 
Eine Beschreibung der Anforderungen an das Modell wäre irgendwie hilfreich, aber ich versuchs mal so...

1. Ein E/R-Modell sollte man erstellen, bevor man ein relationales Modell daraus ableitet, nicht umgekehrt. "Reverse Engineeriing" führt meist zu sehr seltsamen E/R-Modellen.

2. Wenn Du Preise als schwache Entität modellierst (was ich jetzt nicht beurteilen kann, weil ich halt nichts über die Anforderungen weiß), dann muß die Kostenstelle in der Relation Preis als Schlüssel auftauchen. Bei der Umsetzung von schwachen Entitätstypen "erbt" die entsprechende Relation den Primärschlüssel des Entitätstyps, von dem sie abhängig ist.

3. In ein E/R-Modell gehören ALLE Attribute! Unternehmen ist aber kein Attribut der Entität Preis, sondern ein Fremdschlüssel. Der gehört NICHT in das E/R-Modell, da derartige Beziehungen über Beziehungstypen dargestellt werden müssen. Sprich: Die Entität Preis würde bei Deinem Modell lediglich das Attribut Preis besitzen und ist damit vollkommen überflüssig. Man könnte genauso gut ein Attribut Preis der Entität Zuordnung hinzufügen.


Beschreibe bitte mal, was genau Dein Modell darstellen soll, dann kann ich Dir auch konkret sagen, wie das Modell dazu aussehen muß. Das was Du modelliert hast, sieht jedenfalls nicht besonders glücklich aus...
 
Vaethischist hat gesagt.:
Eine Beschreibung der Anforderungen an das Modell wäre irgendwie hilfreich, aber ich versuchs mal so...

1. Ein E/R-Modell sollte man erstellen, bevor man ein relationales Modell daraus ableitet, nicht umgekehrt. "Reverse Engineeriing" führt meist zu sehr seltsamen E/R-Modellen.

2. Wenn Du Preise als schwache Entität modellierst (was ich jetzt nicht beurteilen kann, weil ich halt nichts über die Anforderungen weiß), dann muß die Kostenstelle in der Relation Preis als Schlüssel auftauchen. Bei der Umsetzung von schwachen Entitätstypen "erbt" die entsprechende Relation den Primärschlüssel des Entitätstyps, von dem sie abhängig ist.

3. In ein E/R-Modell gehören ALLE Attribute! Unternehmen ist aber kein Attribut der Entität Preis, sondern ein Fremdschlüssel. Der gehört NICHT in das E/R-Modell, da derartige Beziehungen über Beziehungstypen dargestellt werden müssen. Sprich: Die Entität Preis würde bei Deinem Modell lediglich das Attribut Preis besitzen und ist damit vollkommen überflüssig. Man könnte genauso gut ein Attribut Preis der Entität Zuordnung hinzufügen.


Beschreibe bitte mal, was genau Dein Modell darstellen soll, dann kann ich Dir auch konkret sagen, wie das Modell dazu aussehen muß. Das was Du modelliert hast, sieht jedenfalls nicht besonders glücklich aus...

Hi,
erstmal vielen Dank.

zu Punkt 1) -> ich weiss, ich weiss....nur muss ich hier meine Datenbankmodell etc. etwas dokumentieren, und da wollte ich halt ein ER-Modell erstellen

zu Punkt 2) Das ist so, dass ein Preis nur in dieser Preise-Tabelle bleiben soll, wenn es auch noch das Unternehmen in der Tabelle "Zuordnung" gibt. Deshalb hab ich es als schwaches Entity genommen. Ein Preis soll nun aber nicht von der Kostenstelle abhängen, sondern vom Unternehmen...Kostenstelle als Primärschlüssel in "Preise" ginge auch, aber das wäre zu viel Arbeit, die Preise einzutragen, da es jeweils nur einen Preis gibt für ein Unternehmen. Deshalb die Zuordnungstabelle.
Insgesamt geht es um eine Abrechnung.
Warum "Preis" nicht mit in die Zuordnungstabelle soll: Es gibt noch mehr Preistabellen für andere Abrechnungen, die aber alle die selbe Zuordnungstabelle benötigen.

Ich beschreibe kurz ein Beispiel:
Also es geht um die Abrechnung eines Softwareprodukts (nur eins!) für bestimmte Nutzer.
Und zwar hat jeder Nutzer eine Kostenstelle und eine NutzerID. Ich beshreibe hier nur die wichtigen Attribute...In einer anderen Tabelle SoftwareX stehen nun die NutzerIDs der jenigen Nutzer, die die SoftwareX halt benutzen (der Sinn ist jetzt mal egal). Nun existieren Preise für diese Software je Unternehmen. Um aber das Unternehmen zu bekommen, brauch ich die Zuordnungstabelle, die jeder Kostenstelle ein Unternehmen zuordnet.
Also habe ich folgende Tabellen/Relationen:
SoftwareX(NutzerID)
Nutzer(NutzerID, Kostenstelle)
Zuordnung(Kostenstelle, Unternehmen)
Preise(Unternehmen, Preis)

Hab mal verschiedene ER-Modelle erstellt:
Grafiken
Variante 4 ist irgendwie die beste, dann müsste ich aber meine Tabellen ändern.
Wäre auch eine der anderen 3 richtig?
Grüße!
 
Zuletzt bearbeitet:
Bevor ich anfange, ein E/R-Modell als ASCII-Artwork (hab keinen Webspace) zu basteln, frage ich lieber nochmal nach, ob ich Deine Beschreibung richtig verstanden habe. :-)

(Ist auch gleich ein Beispiel, wie man solche E/R-Modelle verbal veschreiben kann, also das, was ich eigentlich von Dir haben wollte) Die Dinge, wo ich nix genaues weiß, sind mit einem (?) versehen, was aber nicht heißt, das ich das andere richtig verstanden habe. ;)

Wir haben Nutzer, Unternehmen, Kostenstellen und Software.

Jeder Nutzer gehört zu GENAU EINEM Unternehmen und wird mit einer NutzerID eindeutig identifiziert.

Jeder Nutzer gehört zu GENAU EINER Kostenstelle.

Jeder Nutzer verwendet EINE ODER MEHRERE Arten von Software.

Ein Unternehmen hat EINE ODER MEHRERE Kostenstelle(n). (?)

Das Unternehmen bietet GENAU EINE Software an. (?)


Alles andere (die Zusatzinfos zu den Entitäten) sind trivial bzw. von Dir nicht spezifiziert.


Also wenn das da oben alles so sein sollte, ist Dein E/R-Modell nicht wirklich gut. Schreibe bitte mal in diesem Stil auf, was GENAU Du modellieren willst.
 
Hi,
schon mal vielen Dank für Deine Hilfe.
Ich schreib am besten gleich immer unter Deinen Text.

Wir haben Nutzer, Unternehmen, Kostenstellen und Software.
-> genau, und hier geht es nur um ein Softwareprodukt, im Beispiel

SoftwareX genannt. Für andere Softwareprodukte gibt es auch eine

Abrechnung und eine extra Preistabelle, wo es dann einen

zusammengesetzten Schlüssel gibt. Aber darum soll es jetzt mal nicht

gehen.


Jeder Nutzer gehört zu GENAU EINEM Unternehmen und wird mit einer

NutzerID eindeutig identifiziert.
-> ja richtig, und die Zuordnung erfolgt über die Kostenstelle

Jeder Nutzer gehört zu GENAU EINER Kostenstelle.
-> ja

Jeder Nutzer verwendet EINE ODER MEHRERE Arten von Software.
-> in diesem Fall verwendet er entweder die SoftwareX oder nicht. In

der Tabelle SoftwareX werden die NutzerIDs der Nutzer gespeichert,

die die Software nutzen.

Ein Unternehmen hat EINE ODER MEHRERE Kostenstelle(n). (?)
-> ja

Das Unternehmen bietet GENAU EINE Software an. (?)
-> naja nicht direkt. es gibt für jedes Unternehmen einen Preis für

die Software, aber es kann auch ein Unternehmen dabei sein, wo mal

kein Nutzer abgerechnet wird, weil dort keiner die Software nutzt.

Ich hoffe, jetzt ist es noch etwas klarer.
Ich schreib dann alles nochmal so auf, wie Du:

SoftwareX wird von genau einem Nutzer verwendet.
Ein Nutzer nutzt entweder die SoftwareX oder auch nicht (0 oder 1 Lizenz).
Ein Nutzer hat genau eine Kostenstelle und so eine Zugehörigkeit zu einem Unternehmen.
Ein Unternehmen kann mehrere Kostenstelle haben, aber mindestens eine.
Eine Kostenstelle kann zu mehreren Nutzern gehören.
Das Unternehmen bestimmt den Preis (genau einen).
Der Preis wird von genau einem Unternehmen bestimmt.
Gibt es ein Unternehmen nicht mehr, wird auch der entsprechende Preis aus der Preise-Tabelle gelöscht.

Schon mal vielen Dank für Deine Hilfe,
Viele Grüße
 
Zurück