1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

Normalform - Hilfe bei Entwicklung

Dieses Thema im Forum "Datenmodellierung, Datenbank-Design" wurde erstellt von 42na95, 20 Februar 2011.

  1. 42na95

    42na95 Neuer Benutzer

    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. [​IMG]
    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:

  2. Charly

    Charly Datenbank-Guru

    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
     
  3. 42na95

    42na95 Neuer Benutzer

    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
     
  4. Charly

    Charly Datenbank-Guru

    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
     
  5. Charly

    Charly Datenbank-Guru

    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
     

Diese Seite empfehlen