0 Daumen
1,1k Aufrufe

Das folgende Relationenschema umfasst Musikfans mit den an unterschiedlichen Locations besuchten Konzerten von Musikern.

LocationFanMusiker
JuBeZHugoZöllner
JuBeZImkeZöllner
TollhausHugoZaz


Ist die Zerlegung verlustfrei in:

besucht := Π_{Location, Fan}

ist_Fan_von: := Π_{Fan, Musiker}

Avatar von

1 Antwort

+1 Daumen
 
Beste Antwort

Es geht ja hier um die Normalisierung. Momentan befinden wir uns in der 1. Normalform, das heißt, pro Feld ist immer nur ein Datenwert gespeichert, der nicht zerteilt werden kann. Wir wollen nun in die 2. Normalform oder besser in die 3.

Aber Achtung:

Dadurch, dass wir Ort und Musiker und Fan aufteilen gehen Daten verloren. Weil:

Der Musiker kann an mehreren Orten spielen, der Fan kann mehrere Orte und Musiker besuchen und weder Ort, noch Fan können als Fremdschlüssel eindeutig identifizieren, wo welcher Musiker besucht wurde.

Angenommen :

Karl, Ludwigsburg, ABBA

Tom, Ludwigsburg, Queen

Wenn du jetzt Ludwigsburg als Primärschlüssel und Fremdschlüssel setzt, weißt du nicht, ob Karl nun ABBA oder Queen besucht hat.

Die Relation kann somit nicht sinnvoll aufgeteilt werden, ohne dass Daten verloren gehen.


Grüße

Felix

Avatar von

Was du machen kannst, um die Relationen verlustfrei aufzuteilen ist, ein neues Attribut einzuführen. Z. B. Datum, ID, etc.

Dann hast du zwar 2 Relationen, aber eine Relation mit 2 Attrbuten, und eine mit 3. (Z. B. r1{Fan, Datum}, r2{Datum, Ort, Musiker}

Perfekt! Vielen Dank! Schönen Tag noch. :)

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community