Relationale Datenbank: Normalform?



  • Hi,

    ich hab mal eine frage zu den Normalformen bei relationalen Datenbanken.

    Angenommen ihr habt CDs die wollt ihr in einer DB erfassen. Es gibt Alben mit einer und mit zwei CDs.

    ausgangssituation wäre das hier:
    Tab(CD_ID, ALBUM, TITELLISTE)

    001, Interpret - Album, cd1 Titel, cd2 Titel,...
    002, Interpret - Album, cd1 Titel,...

    1. NF:
    Tab(CD_ID, INTERPRET, ALBUM_NAME, CD_NR, TITEL_NR, TITEL_NAME)
    Primärschlüssel: CD_ID, CD_NR, TITEL_NR)

    001, Interpret, Album, cd1, Titel1
    001, Interpret, Album, cd1, Titel2
    ...
    001, Interpret, Album, cd2, Titel1
    001, Interpret, Album, cd2, Titel2
    ...
    002, Interpret, Album, cd1 Titel1
    002, Interpret, Album, cd1 Titel2
    ...

    2. NF:
    TAB_CD(CD_ID,INTERPRET,ALBUM_NAME)
    TAB_TITEL(CD_ID, CD_NR, TITEL_NR, TITEL_NAME)
    Primärschlüssel: CD_ID
    Fremdschlüssel: CD_NR, TITEL_NR

    TAB_CD
    001, Interpret, Album
    002, Interpret, Album

    TAB_TITEL
    001, cd1, Titel1
    001, cd1, Titel2
    ...
    001, cd2, Titel1
    001, cd2, Titel2
    ...
    002, cd1 Titel1
    002, cd1 Titel2
    ...

    Ist das soweit korrekt? und ist mir der 2.NF auch gleich die 3.NF erfüllt? Ich bin mir da nämlich nicht so sicher...

    mfg



  • ich nochmal ... also wenn ich das richtig verstanden habe ist die 3.NF eine form frei von transitiven abhängigkeiten ...

    in meinem beispiel wäre aber eine abhängigkeit gegeben durch die CD_NR oder?



  • also ich hab nochmal nachgedacht:

    Tab_CD(CD_ID, Interpret, Album_name)
    Tab_CD_NR(CD_ID, CD_NR)
    Tab_Titel(CD_NR, Titel_NR, Titel_name)

    so müßte wohl die 3.NF aussehen ... zumindestens wäre das in etwa so wie man das immer ließt wie eine dritte NF aussehen kann. andere Vorschläge? 🙂


Anmelden zum Antworten