Normalisierung
-
Ich habe folgendes Beispiel vorliegen, das in 3NF überführt werden soll.
Personal(ID [PK], Personalnummer, Vorname, Nachname, AbteilungsID, Abteilung, SchlüsselID).
Die Relation sollte sich in 2NF befinden, da alle Werte atomar sind und kein zusammengesetzter PK vorliegt.
Wenn ich der Regel "transitive Abhängikeiten auslagern" folge, erhalte ich eine Relation
Personal(ID [PK], Personalnummer [FK], AbteilungsID [FK], ChipID)
Hier können imo aber Löschanomalien auftreten, da die ChipID nur in dieser Tabelle vorliegt.
Habe ich einen Denkfehler drin, oder die 3NF falsch durchgeführt?
PS:
Das Design der Tabelle ist mit Absicht so schlecht, da es eben eine Übungsaufgabe sein soll.
-
Sind
SchlüsselId
undChipId
ein und dasselbe - und was stellen sie dar?
Wie viele Schlüssel soll eine Person denn besitzen können? Wenn es mehrere sein sollen, dann benötigst du eine zusätzlichen:m
-Tabelle - ansonsten bei max. einem Schlüssel reicht es so (evtl. als NULL deklariert).Ich sehe an der Tabelle ersteinmal nur
Abteilung
als auszulagernde Spalte (da diese ja eindeutig über dieAbteilungsID
definiert wird bzw. werden kann).
-
Sry, ChipID und SchlüsselID sind das selbe.
Mir geht es rein um den Vorgang der Normalisierung - ohne irgendwelche Kenntnisse über die Modellierung zu haben.
Wenn ich eine solche Tabelle gegeben habePersonal(ID [PK], Personalnummer, Vorname, Nachname, AbteilungsID, Abteilung, ChipID)
wie kann ich ohne Kenntnis der Domäne die 3NF bilden und wie sieht diese aus?
-
Ohne Kenntnis der Domäne (und damit der Bedeutung der Spalten) geht das nicht. Woher willst du sonst wissen, ob z.B.
Vorname
,Nachname
undAbteilungId
unabhängig voneinander sind?Ansonsten s.a. Datenbanknormalisierung, d.h. es müssen alle funktionale Abhängigkeiten bekannt sein.