# Guter Link zum Thema ER-Modell und Relationships gesucht



## MeThree (28. Jan 2009)

Hat leider nicht in den Titel gepasst. Ich will mein Verständnis für das ER-Modell schärfen.

Wann ist es eine one-to-one Beziehung
Wann ist es eine one-to-many Beziehung
Wann ist es eine many-to-many Beziehung

Das ist ein logisches Denkproblem beim Datenmodellentwurf in Visual Paradigm. Denn: Wo ist denn der Unterschied zwischen one-to-many oder many-to-many? Nicht klar, weil: "Gehe ich immer von EINEM Datensatz aus? Ach was...ich habe doch tausende User, und tausende Nachrichten, also many-to-many!" Oder geht die Betrachtungsweise hier nicht von den Daten aus, sondern von der nackten Entität an sich?

"Ein User hat viele Nachrichten, also many-to-many!" -> ist aber auch nicht ganz eindeutig / logisch, weil: Stimmt ja gar nicht. Es ist nicht ein User. "Tausende User haben viele Nachrichten". Es läuft immer auf many-to-many hinaus.

Hat jemand einen guten Link, wo an Hand von Beispielen erklärt wird, wann es was für ein Verbindungstyp ist und was für eine Kardinalität?

thx


----------



## musiKk (28. Jan 2009)

Das Simpelste ist wie so oft die Wikipedia.


----------



## MeThree (29. Jan 2009)

*plonk* ... hätte ich wohl drauf kommen können. Trotzdem: Wenn jemand noch bessere links kennt, immer her damit. Das Internet ist größer als Wikipedia.


----------



## Gelöschtes Mitglied 5909 (29. Jan 2009)

du gehst nicht von einem datensatz aus sondern von der beziehung.
Bei einer one2many hast du einen ganz normalen FK. Bei einer many2many beziehung braucht man (ohne redundanz zu erzeugen) eine extra tabelle

beispiel one2one

```
ID | Name     | FK          ID | Warenkorb_id
__________________          ____________
1  | "alice"  | 1           1  | "irgendwaseindeutigesundkryptisches"
2  | "foobar" | 2           2  | ""irgendwaseindeutigesundkryptisches2"
```

-> constraint FK unique
-> eher nicht gebräuchlich, stattdessen tabellen zusammenfassen
-> kann man verwenden wenn man logisch trennen will, oder sonstigen gründen

beispiel 2 one2one

IS-A Beziehung:

Tabelle Person

```
ID | Name
_________
1  | Egon
2  | Hugo
```

Tabelle Manager

```
ID | Gehalt
_________
1  | 3 Mio
```
Tabelle Administrator

```
ID | Rechte
_________
1  | r,w,x
2  | r,w,x
```
-> Egon ist ein Manager und auch Administrator
-> Hugo ist Administrator

-> vermeidung von redundanz
-> Nachbildung von Vererbung




beispiel one2many

```
ID | Name     | FK          ID | Land
__________________          ____________
1  | "alice"  | 1           1  | "Wunderland"
2  | "foobar" | 1
```

alice und foobar wohnen als im wunderland

-> Ein Land hat viele Bewohner


beispiel many2many


```
ID | Schauspieler     ID | Film                   Schauspieler_ID | Film_ID
_________________     _________                   _________________________
1  | "Bruce Willis"   1  | "Die hard"             1               | 1
2  | "Foobar"         2  | "Die hard 2"           2               | 1
                      3  | "alice im wunderland"  1               | 2
                                                  2               | 3
```

bruce willis hat in die hard, die hard 2 mitgemacht, aber nicht bei alice im wunderland
foobar hat bei die hard und alice im wunderland mitgemacht, aber nicht bei die hard 2
bei die hard spielten bruce willis und foobar mit
bei die hard 2 spielte bruce willis mit
bei alice im wunderland spielte foobar mit

-> Schauspieler können in mehreren Filmen mitgewirkt habe
-> jeder Film hat mehrere Schauspieler oder kann mehrere haben


----------



## MeThree (29. Jan 2009)

Danke für die ausführliche Erklärung! Habe ich nun kapiert. Bei Egon und Hugo ist wahrscheinlich was verwechselt worden, aber ich weis was du meinst.


----------



## Gelöschtes Mitglied 5909 (29. Jan 2009)

äh ja, war zu später stunde


----------

