Normalisierung auf Beispiel anwenden

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Normalisierung auf Beispiel anwenden

    Tabelle Modell
    • ID (PK)
    • Modellname
    • Hersteller_ID (FK)

    Dabei ist der Modellname aber auch eindeutig (jeder Modellname genau 1 Hersteller, 1 Hersteller n Modelle), könnte also auch Schlüssel sein.


    Ist dadurch eine Normalform, ich vermute die 3., verletzt? Denn aus Modellname könnte man ja funktional Hersteller_ID ableiten.
    Modellname als PK möchte ich allerdings aus diversen Gründen (Speicher, Inkonsistenz) nicht, denn denn die ID dient als FK in anderen Tabellen.

    Oder müsste es so sein:
    Tabelle Modell
    • ID (PK)
    • Hersteller_ID (FK)

    Tabelle connect_Modellname_ID
    • Modell_ID (PK, FK)
    • Modellname
    Zuletzt geändert von einermeiner; 11.03.2012, 19:30.

  • #2
    Verletzung Normalisierung

    Naja, Normalisierungsregeln sind schön und gut. Aber letztlich kommt es immer auch darauf an, was man mit der Datenbank-Struktur abbilden will/soll.
    Gerade aus Performanz-Überlegungen werden nicht selten gerade die höheren Normalisierungen oft denormalisiert. Solange Du Dir dessen bewusst bist, was Du warum machst, ist das eine bewusste Design-Entscheidung und kann dann entsprechend gegen die Thesen geprüft werden, d.h. bringt es mir wirklich die Ersparnis, die ich gedacht habe oder ist die Normalisierung doch besser.

    In Deinem konkreten Fall wäre Modellname als ganzes ja auch kein korrekter FK in anderen Tabellen, da die HerstellerId erst aus dem Modellnamen berechnet werden müsste (wie auch immer). Daher ist Dein Ansatz in meinen Augen korrekt.
    Zuletzt geändert von Woerni; 11.03.2012, 19:05.

    Kommentar

    Lädt...
    X