|   Normalisierung?Das Thema Normalisierung bereitet vielen Teilnehmern Schwierigkeiten. Deshalb habe ich versucht verschiedene Erklärungsmodelle/Beispiele aufzunehmen.alternative Erklärungsansatz für die erste und zweite Normalform (Ursprungsversion)
 
 Weshalb Normalisieren wir?Überführung komplexer Beziehungen innerhalb von Tabellen in einfache Beziehungen
durch Aufteilung der Attribute einer Tabelle auf mehrere Tabellen.Ziel
sind stabile und flexible Datenstrukturen.
 
   D.h.: Komplexe Tabellen sollen durch eine Aufteilung in mehrere Tabellen entflechtet werden.
 So das dabei stabile und flexible Strukturen entstehen und keine Anomalien
mehr auftreten
 (siehe  Was sind Datenbanken? - Probleme)
 Die Normalisierung erfolgt in mehreren Stufen:
 
  Jede Stufe beinhaltete die vorangegangene d.h. ist eine DB in der 3 NF so ist sie auch automatisch in der 2NF,1Nf,0NF... Nullte Normalform 
   Erster Normalform (1NF) 
   Zweite Normalform (2NF) 
   Dritte Normalform (3NF) 
   Boyce-Codd Normalform (BCNF) 
   Vierte Normalform (4NF) 
   Fünfte Normalform (5NF)  
 Relevant für uns sind nur die ersten vier (bis zur 3NF)
 Was benötigen wir zum 
Normalisieren?
 Schlüssel, Regeln, Gehirnschmalz   
Folgendes Beispiel ( nach Helmut Jarosch " Datenbankentwurf") :
Informationssystem über Kinofilme (z.B. IMDB)
 Anforderungen:
Konkret: Datenbank einer ProduktionsfirmaIn einer Datenbank sollen Informationen zu Filmen gespeichert werden.
 Dabei ist es von Interesse von wem und in welchem Studio ein Film gedreht wurde.
 Um den Regisseur bezahlen zu können ist seine Kontonummer erforderlich.
 Weiterhin sollen alle am Film beteiligten Schauspieler mit ihrer momentanen Adresse gespeichert werden.
 
 Nullte Normalform Alle Ausprägungen aus der realen Welt (Der Film) werden abstrahiert und in Felder zerlegt (Name_des_Films) in einer Tabelle abgebildet.Dabei werden alle Felder entfernt die errechnet werden können.
 
 z.B. Würde die Kosten des Films sowie die Laufzeit gespeichert werden bräuchten wir kein Feld in dem die Kosten pro Filmminute gespeichert sind da dies errechnet werden kann
 Erste Normalform  DefinitionEine Relation ist in der Ersten Normalform, wenn jeder Attributwert atomar ist. ErklärungEin Attributwert ist atomar, wenn er nicht aus mehreren Werten zusammengesetzt ist. (Hilfe: Sobald Werte in einem Feld getrennt werden müssen, verstösst man gegen die 1NF!)z.B. Namen der Schauspieler ist nicht Atomar, da in diesem Feld bei mehr als einem Mitwirkenden Schauspieler mehrere Namen gespeichert werden müssten. Ebenso verhält es sich mit den Adressen der Schauspieler...
 Abhilfe:
Attribute mit Nicht-atomaren-Attributwerten werden in mehrere Attribute
aufgeteilt.
 Diese Gruppe von Attributen wird aus der Tabelle entfernt und in einer eigenen Tabelle untergebracht.
 z.B. Namen der Schauspieler und Adressen der Schauspieler werden in eine extra Tabelle transferiert. Da es zu einem Film mehrere Schauspieler geben kann. Zu jedem Schauspieler gehört jedoch nur eine Adresse. Deshalb wird dies mit in die Schauspielertabelle transferiert
 Zweite Normalform  DefinitionEine Relation ist in der Zweiten Normalform, wenn sie in der Ersten Normalform ist und jedes 
Nicht-Schlüsselattribut von jedem Schlüsselkandidaten vollständig funktional 
abhängig ist.  Achtung 
 
  Besteht der Primärschlüssel (pk) nur aus einem einzigen 
  Attribut (also kein zusammengesetzter Schlüssel), so ist ein Datensatz in Erster 
  Normalform bereits automatisch in Zweiter Normalform.   ErklärungEin Attribut das kein Schlüssel ist darf nicht nur von einem Teil des Primärschlüssels voll funktional abhängig sein sondern muss von beiden abhängen.
D.h. Sobald ein Attribut nur von einem Teil des Schlüssels vollständig abhängig ist verstößt dies gegen die zweite Normalform.
 z.B. Kontonummer des Regisseurs ist nicht vom kompletten Primary Key (Name des Films und Name des Regisseurs) abhängig sondern nur vom Regisseur selbst also vom Namen des Regisseurs..
 Abhilfe: Datenfelder, die von 
einem zusammengesetzten Primarschlüssel nicht vollständig 
funktional abhängig sind, werden in weiteren Tabellen untergebracht. Der Teil 
des Schlüsselkandidaten, von dem ein ausgelagertes Datenfeld funktional abhängig 
ist, wird Primärschlüssel der neuen Tabelle.
 z.B. Der Regisseur wird als eigene Tabelle angelegt mit dem Primär Schlüssel Name des Regisseurs und dem Attribut Kontonummer das nun voll funktional vom PK abhängig istAls Ergebnis erhalten wird die drei 
folgenden Tabellen.
 
 BegrifflichkeitenBeziehungDarunter versteht man die Beziehungen von Tabellen untereinander.
   
 
 |