tbee's page
   home  work  myself  mixed  guestbook  
   
      INHALT MySQL Relationale Datenbanken - Normalisierung

Wer mir was gutes tun will kauft �ber diesen Link bei Amazon ein !

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:

  • Nullte Normalform
  • Erster Normalform (1NF)
  • Zweite Normalform (2NF)
  • Dritte Normalform (3NF)
  • Boyce-Codd Normalform (BCNF)
  • Vierte Normalform (4NF)
  • F�nfte Normalform (5NF)
Jede Stufe beinhaltete die vorangegangene d.h. ist eine DB in der 3 NF so ist sie auch automatisch in der 2NF,1Nf,0NF...

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 Produktionsfirma
In 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
Film NullteNormalform

Erste Normalform

Definition

Eine Relation ist in der Ersten Normalform, wenn jeder Attributwert atomar ist.

Erkl�rung

Ein 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
Film Erste Normalform

Zweite Normalform

Definition

Eine 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�rung

Ein 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 ist
    Als Ergebnis erhalten wird die drei folgenden Tabellen.
Film Zweite Normalform

Begrifflichkeiten

Beziehung
Darunter versteht man die Beziehungen von Tabellen untereinander.
  • 1:1 (sprich: eins zu eins)
    Ein Element in der einen Tabelle hat genau ein entsprechendes Element in der anderen
    (Macht nur dann Sinn wenn Datenfelder ausgelagert sollen um sie z. B: mit anderen Berechtigungen zu versehen (Lohndaten, Passw�rter))
  • 1:0 (sprich: eins zu 0)
    Ein Element muss kein entsprechendes Element in der anderen Tabelle haben ...
    (z. B. Optionale Werte in einem Formular in einer extra Tabelle diese h�ngt immer an einem DS wenn �berhaupt ein Eintrag vorhanden ist)
  • 1:n (sprich: eins zu n)
    Ein Element kann viele Eintr�ge haben
    (z.B. Schauspieler spielen viele in einem Film mit/ Ein Regisseur dreht viele Filme)
  • n:m (sprich: n zu m)
    Mehrfach vorkommende Elemente auf beiden Seiten
    Nicht nur viele Schauspieler spielen nur in einem Film mit sondern Schauspieler spielen auch in vielen Filmen mit.

    m:n Beziehungen lassen sich nur �ber eine sogenannte Kreuztabelle in Relationalen Datenbanken realisieren!

 
Was ist ein Schl�ssel? Datenbank Tool f�r MySQL PhpMyAdmin


 

Druckerversion     [valid html 4.01]      [english]
style: blauer Stylegelber Styleroter Stylegruener StyleStandard Style
© 2001 by  tbee / Impressum last update at: 01.01. 1970 01:01:00
url: www.tbee.de