Normalformen verständnisfrage
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
album
attribut
auffrischung
aussehen
datum
dritte normalform
erinnerung
formulieren
formulierung
gewisse redundanz
interpret
lied
normalform
obige tabelle
positiven effekt
spalte
tabelle
url
verschiedene alben
wiederholen
- 
    
    Hey,
 
 ich hab ein Frage zu den 3 Normalformen, zur auffrischung =)
 
 ...das sind jetzt meine Formulierungen und wahrscheinlich fachlich nicht ganz korrekt xD
 
 Normalformen:
 Beispieltabelle:
 
 Die Tabelle ist nicht in der 1. Normalform da in einer Spalte der Tabelle mehrere Werte enthalten sind
 id | Album | Lieder
 1 | TestAlbum | Lied1, Lied2, Lied3
 2 | TestAlbum2 | Lied4, Lied5, Lied6
 
 So wäre die obige Tabelle in der 1. Normalform
 id | Album | Lieder
 1 | TestAlbum | Lied1
 2 | TestAlbum | Lied2
 3 | TestAlbum | Lied3
 4 | TestAlbum2 | Lied4
 5 | TestAlbum2 | Lied5
 6 | TestAlbum2 | Lied6
 
 2 Normalform
 id | idAlbum | Lieder
 1 | 1 | Lied1
 2 | 1 | Lied2
 3 | 2 | Lied4
 
 3 Normalform:
 idAlben | AlbenName
 1 | TestAlbum
 2 | TestAlbum2
 Die Dritte Normalform besagt das nur der Primärschlüssel
 (idAlben) und max. eine weitere spalte enthalten darf
 
 
 wobei ich jetzt mal davon ausgehe das die liednamen eindeutig sind!
 
 ...habe ich das so noch richtig in Erinnerung?
- 
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden! lima-city: Gratis werbefreier Webspace für deine eigene Homepage 
- 
    
    meiner Meinung nach schon, aber wo ist jetzt dein Problem?
- 
    
    ...ich hab das vor 3 Jahren mal gelernt und habs seit dem immer ausm Gefühl heraus gemacht, aber ich schreibe bald eine Prüfung darüber und muss das ganze dann auch formulieren können ;)
 
 
- 
    
    Erst mal ist es wichtig keine Daten zu wiederholen. Zum Beispiel können Künstler verschiedene Alben machen, auf dem verschiedene Lieder sind. Das würde dann so aussehen:
 
 - Kuenstler
 id | Name
 
 - Album
 id | KuenstlerID | Name
 
 - Lieder
 id | AlbumId | Name
 
 Anders würde das aussehen, wenn keine Alben sondern einfach CDs (also CDs auf denen Musik von verschiedenen Künstlern ist). Dann könnte man es so realisieren:
 
 - CDs
 id | Name
 
 - Kuenstler
 Id | Name
 
 - Lieder
 id | CDid | KuenstlerID | Name
- 
    
    Ich denke in diesem Fall wäre es sinnvoll bei "Lieder" wie schon weiter unten von trueweb vorgeschlagen die ID vom Künstler mit zu führen. Dann kann man ohne 3 Tabellen joinen zu müssen direkt die Titel des Künstlers abfragen und kann mit einem einfachen 2 Tabellen join auch den Albumstitel zurückgeben.
 Man hat dann zwar eine gewisse Redundanz, aber die ist in dem Fall zu vertreten. Schließlich hat sie einen positiven Effekt.
- 
    
    Hallo,
 
 in Prüfungen wollen die meist so Formulierungen wie im Wikipedia (jeweils der erste Satz bei den normalformen) http://de.wikipedia.org/wiki/Normalisierung_(Datenbank)
 
 Demzufolge stimmen deine Normalformen nicht ganz.
 
 1. Normalform: Jedes Attribut muß atomar sein (für sich alleine stehen)
 
 aid | Album | lid | Lieder
 1 | Album1 | 1 | Lied1
 1 | Album1 | 2 | Lied2
 1 | Album1 | 3 | Lied3
 2 | Album2 | 4 | Lied4
 2 | Album2 | 5 | Lied5
 2 | Album2 | 6 | Lied6
 
 d.h. aid und lid werden jeweils Schlüssel und der Primärschlüssel wäre (aid,lid)
 
 2. Normalform: Jedes Nicht-Schlüsselattribut genau von einem Schlüssel (funktional) abhängig ist
 
 Die Attribute Album und Lieder sind jetzt zwar von lid abhängig, aber nicht von aid - d.h. wir müssen in 2. NF umwandeln...
 
 Alben
 aid | Album
 1 | Album1
 2 | Album2
 
 Lieder
 aid | lid | Lieder
 1 | 1 | Lied1
 1 | 2 | Lied2
 1 | 3 | Lied3
 2 | 4 | Lied4
 2 | 5 | Lied5
 2 | 6 | Lied6
 
 3.Normalform: jedes Nichtschlüsselattribut von keinem Schlüsselkandidaten transitiv abhängt
 
 Hmm zwecks Datenmangel sind die Tabellen dann schon in der 3. Normalform 
 Allerdings wenn du in der Tabelle Album zum Bsp. noch Daten zum Interpreten oder so hättest, müsste man diese hier auslagern, weil die Daten zum Interpreten sich ja nicht bei jedem Album ändern - sondern wenn dann insgesamt.
 
 Alben Lieder Interpret
 aid | Album | Interpret
 1 | Album1 | i1
 2 | Album2 | i2
 3 | Album3 | i1
 
 Lieder
 aid | lid | Lieder
 1 | 1 | Lied1
 1 | 2 | Lied2
 1 | 3 | Lied3
 2 | 4 | Lied4
 2 | 5 | Lied5
 2 | 6 | Lied6
 
 Interpret
 iid | Name | Gründung
 i1 | Interp1 | 1980
 i2 | interp2 | 1967
 
 
 Hoffe das hilft ein wenig.
 Grüßle
 Beitrag zuletzt geändert: 25.5.2009 12:36:30 von scout
- 
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden! lima-city: Gratis werbefreier Webspace für deine eigene Homepage 
