Relationen

Einführung | Relationen

CD und Lieder getrennt
cd2b

 

 

Als ER-Modell:

cd2c

Zwischen der Entität CD und der Entität LIED besteht eine 1:n Beziehung. Das bedeutet, dass jede CD mehrere (n) Lieder enthalten kann, aber jedes LIED nur auf einer (1) CD enthalten ist.

Nun wird für jede Entität eine Tabelle erstellt, die Attribute werden wieder als Spalten eingefügt.

Tabelle CD
albumtitel
interpret
dauer
liedanzahl
Piece By Piece
Katie Melua
50
12
Playing The Angel
Depeche Mode
48
12
Back to Bedlam
James Blunt
39
10
u.s.w.
     
 
Tabelle LIED (es sind nur die ersten 6 Lieder eingefügt)
liedtitel
lieddauer
Shy Boy
2:50
Nine Million Bicycles
3:45
Piece By Piece
4:01
Halfway Up The Hindu Kush
3:35
Blues In The Night
3:59
Spider's Web
4:16
A Pain That I'm Used To
2:55
John The Revelator
3:23
Suffer Well
4:11
The Sinner In Me
2:59
Precious
3:42
Macro
3:36
High
4:03
Youre Beautiful
2:36
Wisemen
4:07
Goodbye My Lover
3:22
Tears And Rain
3:50
Out Of My Mind
3:28

Soweit so gut, keine redundanten Informationen in den Tabellen. Allerdings ist die Information verlorengegangen, welcher Interpret welchem Lied zuzuordnen ist. Genau hier kommt die Relation ins Spiel, die wir noch in die Tabellen übertragen müssen, d.h. wir müssen die Tabellen miteinander in Beziehung setzen.

 

Primärschlüssel / Fremdschlüssel

Wir müssen entweder jedem Interpret seine Lieder zuordnen. Wir hätten dann wieder viele redundante Informationen in die CD Tabelle einzutragen. Oder jedem Lied muss beigefügt werden, von welchem Interpreten es ist. Dies geschieht über einen Primärschlüssel aus der CD Tabelle, der als Fremdschlüssel in die LIED Tabelle eingefügt wird.

Primärschlüssel:
Ein aus einem oder mehreren Attributen zusammengesetztes Merkmal, dass jede Instanz (jeden Eintrag) in eine Tabelle eindeutig kennzeichnet. Es kann ein Zähler in die Tabelle als Primärschlüssel als zusätzliches Attribut eingefügt werden. Primärschlüssel werden oft unterstrichen.

Fremdschlüssel:
Wird als Attribut in eine Tabelle eingefügt, um eine Relation zu erzeugen.

 

In unser Modell umgesetz, ergibt sich folgendes Schema.

cd2d

Tabelle CD
cd-id
albumtitel
interpret
dauer
liedanzahl
1
Piece By Piece
Katie Melua
50
12
2
Playing The Angel
Depeche Mode
48
12
3
Back to Bedlam
James Blunt
39
10
4
u.s.w.
     
 
Tabelle LIED (es sind nur die ersten 6 Lieder eingefügt)
liedtitel
cd-id
lieddauer
Shy Boy
1
2:50
Nine Million Bicycles
1
3:45
Piece By Piece
1
4:01
Halfway Up The Hindu Kush
1
3:35
Blues In The Night
1
3:59
Spider's Web
1
4:16
A Pain That I'm Used To
2
2:55
John The Revelator
2
3:23
Suffer Well
2
4:11
The Sinner In Me
2
2:59
Precious
2
3:42
Macro
2
3:36
High
3
4:03
Youre Beautiful
3
2:36
Wisemen
3
4:07
Goodbye My Lover
3
3:22
Tears And Rain
3
3:50
Out Of My Mind
3
3:28

Nun können folgende Fragen beantwortet werden:

  • Wie viel CD sind von James Blunt
  • Welche CDs haben mehr als 11 Titel
  • Welche CDs dauern länger als 49 Minuten und haben mehr als 10 Titel
  • Von wem sind die CDs, die weniger als 11 Titel haben, oder kürzer sind als 40 minuten
  • Welche Titel sind von James Blunt
  • Welche Titel sind länger als 3:50 Minuten und von wem sind diese?
  • Welche Titel beginnen mit W oder S und auf welcher CD sind sie?
  • u.s.w.

Jetzt haben wir unter unseren Voraussetzungen nur noch ein Problem. Sollten mehrere CDs von einem Interpreten stammen, müssen redundante Informationen in die CD Tabelle eingetragen werden.

 

Aufgabe:

Löst das Problem.

 

zurück

Home