Normalform - Hilfe bei Entwicklung

42na95

Neuer Benutzer
Beiträge
2
Hallo zusammen,
ich bin gerade dabei, eine Ernährungs-Datenbank zu entwickeln, die Vorgabe ist, sie soll in der 3. Normalform sein.
Ich wurschtel mich jetzt schon seit mehreren Stunden durch Foren und das Internet und werde einfach nicht schlau.
dig.gif

Kann mir einer helfen und mir sagen, in welcher Normalform sich mein Entwurf befindet (am besten bitte mit Begründung)?
Würde mich über eine baldige Hilfe sehr freuen.
Die Tabellenstruktur findet ihr hier angehangen.
Liebe Grüße,
Tanja
 

Anhänge

  • Tabellenstruktur.pdf
    7,2 KB · Aufrufe: 9
Werbung:
Hallo Tanja,

auf den ersten Blick (Jede Tabelle hat eine ID-Spalte) würde ich 2NF sagen.

Ohne ein paar Testdatensätze kann ich das allerdings nicht genau sagen. Ich gehe aber mal davon aus dass die Attributswerte Atomar sind.


Bei der Benutzer-Tabelle hast du auf jeden Fall Abhängigkeiten zwischen den Nicht-Schlüssel-Attributen. Laut 3NF dürfte das aber nicht sein.

Bei der Tabelle Nahrungsmittel könntest du mit der Spalte 'Name' auch Probleme mit der Abhängigkeit bekommen. Da bin ich mir aber nicht sicher.

Gruß Charly
 
Hallo Charly!
Danke für deine Antwort. Kannst du einem Laien vll auch erklären, warum da Probleme mit der Normalform bestehen? Also wo es zb in der Benutzr-Tabelle unstimmigkeiten gibt? Sind Fremdschlüssel das Problem?
Das würde mir sehr helfen.
LG Tanja
 
Hallo Tanja,

ich setzte mich mal dran und melde mich wieder.

Warum hast Du in der Tabelle Verzehr einen zusätzlichen Schlüssel (ID) eingetragen.
Würde es nicht auch mit Primärschlüssel = Tagebuch_ID + Nahrungsmittel_ID gehen?

Gruß Charly
 
Werbung:
Hallo Tanja,

kannst Du mit der 2NF leben oder brauchst Du die 3NF.

Um das Schema in die 3NF zu überführen musst Du alle Attribute, deren Werte mehr als einmal vorkommen können,
in eigene Relationen auslagern und mit Fremdschlüsseln verbinden (seeehr Praxisfremd)(Immer nochmal mit der 3NF-Definition gegenprüfen).
Normalerweise macht man das in der Praxis nur mit Attributen deren Werte sich häufig verändern und selten abgefragt werden.
Attribute, deren Werte sich so gut wie nie verändern und häufig abgefragt werden, lässt man der Einfachheit halber unverändert.
Natürlich ist das Schema dann nicht Perfekt. Ein perfektes Schema liegt allerdings nur in der 5NF vor und das will nun wirklich keiner haben.

Als Beispiel nehme ich mal 'Geschlecht' aus der Tabelle 'Benutzer'.
Das Attribut Geschlecht kann mehr als einmal den Wert M oder W annehmen. Damit fliegt es aus der Tabelle Benutzer raus und wird zum Fremdschlüssel.
Neue Tabelle = Geschlecht (Geschlecht_ID, Geschlecht). Geschlecht_ID wird zum Teil des Schlüssels in Benutzer. Hoffe das ist so richtig.
Wenn Du das bei allen Spalten prüfst wirst Du feststellen dass Du einen ganzen Haufen neuer Tabellen bekommst.

Gruß Charly
 
Zurück
Oben