Verstoß gegen 3.NF - ja oder nein
Von: , Frage gestellt am Mo, 31. Jul 2006
Hi!
Wir diskutieren gerade eine neue Struktur einer Datentabelle und können uns nicht darauf einigen, ob bei der Struktur ein Verstoß gegen die 3.NF vorliegt oder nicht.
Satzstruktur:
ID
Bezeichnung
Typ
ID_Besitz
Stufe
ID_Ort
Anm.: ID_Besitz und ID_Ort sind Foreign Keys, die auf zwei andere Tabellen zeigen.
Das Problem der Diskussion:
Die Felder "ID_Besitz", "Stufe" und "ID_Ort" sind nur dann gefüllt, wenn "Typ" einen bestimmten Wert annimmt. Anderenfalls müssen diese drei Felder auf NULL stehen.
Beispiel:
In "Typ" steht "O"
-> ID_Besitz enthält einen numerischen Wert, den dem Schlüssel eines Eintrages in einer anderen Tabelle entspricht,
-> "Stufe" enthält einen Wert von 1 bis 5,
-> "ID_Ort" enthält einen numerischen Wert, den dem Schlüssel eines Eintrages in einer anderen Tabelle entspricht,
In "Typ" steht "F"
-> "ID_Besitz" muss NULL sein
-> "Stufe" muss NULL sein
-> "ID_Ort" muss NULL sein
Stand der Diskussion:
Einige sagen, die Tabelle darf so aussehen.
Andere sagen, die Datensätze für "Typ" = "F" müssen in eine eigene Tabelle ausgelagert werden, da die Attribute "ID_Besitz", "Stufe" und "ID_Ort" für diese Datensätze überflüssig sind.
Was sagen die Datenbank-Fachleute hier dazu? Daten in zwei Tabellen trennen oder die Daten gemischt halten? Wird die 3.NF verletzt?
Grüße
Heinrich
