13

Click here to load reader

Beziehungen in Datenbanken

Embed Size (px)

DESCRIPTION

Beziehungen in Datenbanken modellieren Visualisierung und einfache Beispiele

Citation preview

Page 1: Beziehungen in Datenbanken

www.soprani.at

Datenmodellierung

Beziehungen

Page 2: Beziehungen in Datenbanken

www.soprani.at

1:1

Zu jedem Objekt der Klasse A gibt es genau ein Objekt der Klasse B.

Zu jedem Objekt der Klasse B gibt es genau ein Objekt der Klasse A.

AA BB

Von jedem Element der Menge A geht genau ein Pfeil aus.

Jedes Element der Menge B wird von genau einem Pfeil getroffen.

Page 3: Beziehungen in Datenbanken

www.soprani.at

Beispiele 1:1

• Jede Geburtsurkunde gehört genau einem Menschen. Jeder Mensch hat genau eine Geburtsurkunde.

• Jede verheiratete Frau hat genau einen Ehemann. Jeder verheiratete Mann hat genau eine Ehefrau.

• Jeder Artikel hat genau eine Artikelnummer. Zu jeder Artikelnummer gehört genau ein Artikel.

Page 4: Beziehungen in Datenbanken

www.soprani.at

Lösung 1:1

• Daten in einer Tabelle / Klasse zusammenfassen

• Ausnahme: Daten sind in unterschiedlichen Datenmodellen daheim (z.B. Mitarbeiter in Personal, Arbeitsplätze in Organisation)

Page 5: Beziehungen in Datenbanken

www.soprani.at

1:n

Zu jedem Objekt der Klasse A gibt es genau ein Objekt der Klasse B.

Zu jedem Objekt der Klasse B gibt es beliebig viele Objekte der Klasse A.

AA BB

Jedes Element der Menge B wird von 0 - n Pfeilen getroffen.

Von jedem Element der Menge A geht genau ein Pfeil aus.

Page 6: Beziehungen in Datenbanken

www.soprani.at

Beispiele 1:n• Jede Frau hat 0 bis n Kinder. Jedes Kind hat

genau eine Mutter.• Jeder Haftpflichtversicherungsvertrag

umfasst beliebig viele Fahrzeuge. Jedes Fahrzeug ist genau ein Mal haftpflichtversichert.

• Jeder Manager managt 0 bis n Abteilungen. Jede Abteilung hat genau eine Führungskraft.

• Jeder Schaden gehört zu genau einer Polizze. Zu einer Polizze werden 0 bis n Schäden angemeldet. (n:1)

Page 7: Beziehungen in Datenbanken

www.soprani.at

Mehr Beispiele 1:n• Kategorisierung, „Hilfstabellen“:

– Jeder Artikel gehört zu einer Kategorie. Jede Kategorie umfasst beliebig viele Artikel.

– Jeder Vertrag gehört zu genau einer Versicherungsart. Zu jeder Versicherungsart gehören beliebig viele Verträge.

– Jeder Mitarbeiter gehört zu genau einer Dienstart. Zu jeder Dienstart gehören beliebig viele Mitarbeiter.

• Jeder Mensch kann eine Sozialversicherungsnummer haben. Jede Soziaversicherungsnummer gehört zu genau einem Menschen. (Sonderfall 1:0..1)

Page 8: Beziehungen in Datenbanken

www.soprani.at

Lösung 1:n

• Erkennen: mehrfach vorkommende Inhalte• Zwei Tabellen / Klassen mit einer

Beziehung• Die Detailtabelle enthält einen Verweis auf

den Primärschlüssel der Basistabelle

ID_BasisFeldFeldFeld

BasistabelleDetailtabelle

ID_DetailFeldBasisFeld

1

8

Page 9: Beziehungen in Datenbanken

www.soprani.at

1 2007/01

2 2007/02

3 2007/03

4 2007/04

5 2007/05

6 2007/06

7 2007/07

8 2007/08

1 2007/01 1

2 2007/02 1

3 2007/03

4 2007/04

5 2007/05 1

6 2007/06

7 2007/07 1

8 2007/08

1 2007/01 1

2 2007/02 1

3 2007/03 2

4 2007/04 3

5 2007/05 1

6 2007/06 4

7 2007/07 1

8 2007/08 2

Datenansicht1 Armstark

2 Brausig

3 Chriek

4 Dolomit

Page 10: Beziehungen in Datenbanken

www.soprani.at

m:n

Zu jedem Objekt der Klasse A gibt es beliebig viele Objekte der Klasse B.

Zu jedem Objekt der Klasse B gibt es beliebig viele Objekte der Klasse A.

AA BB

Von jedem Element der Menge A gehen 0 – n Pfeile aus aus.

Jedes Element der Menge B wird von 0 - n Pfeilen getroffen.

Page 11: Beziehungen in Datenbanken

www.soprani.at

Beispiele m:n

• Jede Lehrkraft unterrichtet mehrere SchülerInnen. Jedes Kind lernt bei mehreren Lehrkräften.

• Jeder Mietwagen wird mehrmals vermietet. Jeder Kunde mietet beliebig oft einen Wagen.

• Jeder Vertrag beinhaltet mehrere Klauseln. Jede Klausel kann zu mehreren Verträgen gehören.

• Jeder Artikel scheint in 0 bis n Rechnungen auf. Jede Rechnung umfasst ein oder mehrere Artikel.

Page 12: Beziehungen in Datenbanken

www.soprani.at

Lösung m:n

• Drei Tabellen / Klassen mit zwei 1:n Beziehungen

• Primärschlüssel der „Zwischentabelle“ ist die Kombination aus beiden Verweisen

ID_BasisFeldFeldFeld

Basis Zwischen

BasisDetailFeld

ID_DetailFeldFeldFeld

Detail1

8

1

8

Page 13: Beziehungen in Datenbanken

www.soprani.at

1 Englisch1 Mathe1 Latein

1 Englisch1 Mathe1 Latein2 Englisch2 Latein3 Physik3 Chemie4 Englisch

1 1 Englisch1 Mathe1 Latein2 1 Englisch2 Latein3 Physik3 Chemie4 1 Englisch

1 1 Englisch1 2 Mathe1 4 Latein2 1 Englisch2 4 Latein3 2 Physik3 4 Chemie4 1 Englisch

Datenansicht

1 Anton

2 Berta

3 Cäsar

4 Dora

1 Fr. Müller

2 Fr. Halm

3 Hr. Klein

4 Hr. Winzig