PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kardinalitäten bei ER-Modellen


Senior Sanchez
2007-04-27, 17:27:53
Hi,

Wir modellieren gerade fleißig mithilfe von ER-Modellen, aber was mich immer wieder verwirrt ist die Kardinalität. Ich weiß was sie bedeutet und ich kenne auch den Sachverhalt, den ich ausdrücken möchte, aber ich tue mich manchmal sehr schwer, festzustellen, wie ich die Kardinalität dort genau aufschreiben muss.

Beispiel: Mehrere Tiere leben in einem Gehege.
Das wäre doch:

Tier [0,*]-------------- lebt in ---------------- [1,1] Gehege

Oder ist das falsch?

Gibts da irgendeine Eselsbrücke, sodass ich mir das leicht merken muss, wie ich die Kardinalitäten an Relationen genau lesen muss?

redfalcon
2007-04-27, 17:34:22
Das kommt auf die Notation an, die ihr verwendet (da gibts mehrere, siehe http://de.wikipedia.org/wiki/Bild:ERD_Darstellungen.png).

Dein Beispiel ist in UML-Notation und stimmt so. Nach der Min/Max Schreibweise müsste es aber z.B. genau andersherum sein.

Senior Sanchez
2007-04-27, 17:44:07
Ich empfinde das als total verwirrend.

Hast du da eine Eselsbrücke?

Wir benutzen ansich das Chen-Modell mit der Raute. Hat das Modell von sich aus schon Kardinalitäten? Wie müsste es dann sein?

Hardwaretoaster
2007-04-27, 18:07:04
Bei Chen müsste es doch sein:

[Tier] n ---------<lebt in>--------- 1 [Gehege]
oder?

Senior Sanchez
2007-04-27, 18:11:43
Bei Chen müsste es doch sein:

[Tier] n ---------<lebt in>--------- 1 [Gehege]
oder?

Wir hatten, es so, dass man auch Intervalle angeben kann. Gibt man nur eine Zahl an, so ist das die obere Schranke und das würde in deinem Fall bedeuten das 0 bis n Tiere in 0 bis 1 Gehege leben, was glaube nicht so ganz richtig ist. (Zumindest für Zootiere, weil jedes Zootier in einem und nur einem Gehege lebt)

Hardwaretoaster
2007-04-27, 18:29:03
Ok, ist ja auch nur DB-Wissen aus Sek. 2, was ich gerade für die Mündliche wiederhole.
Nichts für Ungut, die Schreibweise von euch ist dann wohl noch etwas differenzierter.

PH4Real
2007-04-27, 21:57:21
Wir hatten, es so, dass man auch Intervalle angeben kann. Gibt man nur eine Zahl an, so ist das die obere Schranke und das würde in deinem Fall bedeuten das 0 bis n Tiere in 0 bis 1 Gehege leben, was glaube nicht so ganz richtig ist. (Zumindest für Zootiere, weil jedes Zootier in einem und nur einem Gehege lebt)

Nene.. also ich kenne das so, dass Intervalle explizit angegeben werden müssen. Jedesmal [1;1] schreiben zu müssen wäre ja auch wirlich umständlich.

Aber abgesehen davon rennt vielleicht ein Zebra tagsüber in einem Sammelgehege rum und kommt abends ins Zebra-Gehege :tongue: ...

Senior Sanchez
2007-04-27, 22:26:38
Nene.. also ich kenne das so, dass Intervalle explizit angegeben werden müssen. Jedesmal [1;1] schreiben zu müssen wäre ja auch wirlich umständlich.

Aber abgesehen davon rennt vielleicht ein Zebra tagsüber in einem Sammelgehege rum und kommt abends ins Zebra-Gehege :tongue: ...

Wie alles in der Modellierung ist das mal wieder totale Auslegungssache wie ich wieder feststelle. Es gibt einfach keinen einheitlichen Satz von Regeln an den man sich verbindlich halten muss, so wie das aussieht.

Mit dem Gehege kann man das aber echt auf die Spitze treiben. Ich mache einfach ne [1,2] Kardinalität draus, sodass Knut dann auch in sein Außengehege darf.

Thomas(:
2007-04-28, 09:30:30
DAS ist richtig doof, vor allem weil man n:n bzw. 2:n Beziehungen nicht in einer relationalen Datenbank umsetzen kann (ohne Zwischenschritt). Entweder nur 1 Gehege, oder beliebig viele.

darph
2007-04-28, 09:53:44
Tier [0,*]-------------- lebt in ---------------- [1,1] Gehege

[Tier] n ---------<lebt in>--------- 1 [Gehege]
oder?
Meines Wissens in beides richtig. Oberes Beispiel verwendet Multiplizitäten (Bereiche mit unterer und oberer Schranke) bloß halt andersrum, in UML wäre es wieder richtig..., während das Zweite eben Kardinalitäten verwendet.

Ph03n!X
2007-04-28, 11:14:08
Chen benutzt Kardinalitäten und somit wäre n bei Tier und 1 bei Gehege richtig. Habe selber seit 3 Jahren Datenbanken und wir haben immer nach Chen gemacht

Senior Sanchez
2007-04-28, 11:51:34
Bei uns scheint aber ansich beides richtig zu sein. Nun gut, mir gehts ja auch mehr um die "Leserichtung", sprich wie ich die Kardinalitäten im allgemeinen dann dran schreibe. Gibts da nen guten Tipp? Weil bei mir verknoten sich da manchmal die Gehirnwindungen, weil ich dann feststelle, dass man das so oder so sehen kann.

P2oldi
2007-04-28, 12:49:39
wegen der Leserichtung haben wir immer drauf geachtet, daß man halt beide Seiten beachten muß.

Also
[Tier]n-----lebt in-----1[Gehege]
n Tiere leben in einem Gehege
in 1 Gehege leben n Tiere
außer wenn man PH4Real's Einwurf dazunimmt, daß das Zebra (also 1) tatsächlich in mehreren (also n) Gehegen wohnt. Dann wärs auch hier n:n

Gegenbeispiel:
[Mensch]n-----hat-----n[Adresse]
n Menschen haben 1 Adresse
n Adressen haben 1 Menschen

wenn man halt nur die Obvergrenzen angibt.
mit Intervallen wärs halt
[Mensch][1,n]-----hat-----[n,1][Adresse]

Senior Sanchez
2007-04-28, 14:11:17
Hmm.
Mal was anderes - wie drückt man Bedingungen aus?
Wir sollen ne Universität modellieren und da ist als Auflage, dass das wissenschaftliche Personal mindestens 21 Jahre alt sein muss.

PH4Real
2007-04-28, 16:34:31
Hmm.
Mal was anderes - wie drückt man Bedingungen aus?
Wir sollen ne Universität modellieren und da ist als Auflage, dass das wissenschaftliche Personal mindestens 21 Jahre alt sein muss.

Mittels Integritätsbedingung (http://www.postgresql.org/docs/7.4/interactive/ddl-constraints.html) direkt in der DB (das Beispiel bezieht sich auf PostgreSQL).

EDIT: Aber eigentlich sollte sowas entweder in der VL, Übung oder google stehen ;)...

Senior Sanchez
2007-04-28, 23:06:02
Mittels Integritätsbedingung (http://www.postgresql.org/docs/7.4/interactive/ddl-constraints.html) direkt in der DB (das Beispiel bezieht sich auf PostgreSQL).

EDIT: Aber eigentlich sollte sowas entweder in der VL, Übung oder google stehen ;)...

Tut es aber nicht ;) Bedingungen stehen nicht im Script, nirgendwo.

Mir gehts um die Darstellung von Bedingungen in ER-Diagrammen.

Senior Sanchez
2007-04-29, 13:30:03
Weiß das nun jemand wie man Beziehungen darstellt?