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 und ChipId 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ätzliche n: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 die AbteilungsID 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 habe

    Personal(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 und AbteilungId unabhängig voneinander sind?

    Ansonsten s.a. Datenbanknormalisierung, d.h. es müssen alle funktionale Abhängigkeiten bekannt sein.


Log in to reply