phpbar.de logo

Mailinglisten-Archive

Re: Normalformen
Archiv Mailingliste mysql-de

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Normalformen



Heiko Romahn schrieb am Sonntag, den  5. September 1999:
> > Ich probier's mal ... :-)
> 
> kennst Du auch die mehr theoretischen 4 und 5? Die habe ich
> naehmlich noch nirgends gefunden. Bisher immer nur einen Hinweis
> darauf, dass es sie wohl auch gibt. :-)

Und sogar noch mehr!

Knapp nach der 3NF gibt's noch die Boyce-Codd-Normalform (BCNF),
dann die 4NF, die sich mit mehrwertigen Abhängigkeiten beschäftigt,
die 5NF (auch PJNF = Projection-Join-Normalform genannt) und am
Ende noch die Domain-Key-Normalform (DKNF).

Die Hierarchie ist
  DKNF ==> 5NF ==> 4NF ==> BCNF ==> 3NF ==> 2NF ==> 1NF


Wenn's auch Englisch sein darf, habe ich hier zwei Links, die auch die
höheren Normalformen recht gut erklären:

- Overview of Normalization
  <URL: http://www.gslis.utexas.edu/~l384k11w/normover.html >

- Steps in Normalization
  <URL: http://www.gslis.utexas.edu/~l384k11w/normstep.html >


Oder eine sehr gute Zusammenfassung aus Sascha Webers Diplomarbeit
<URL: http://www.wiwi.uni-frankfurt.de/~sascha/diprtf.html >:
----------------------------------------------------------------------
2.2.2. Das Normalisierungskonzept 

Unter Normalisierung versteht man das Zerlegen von Relationen derart,
daß die erhaltenen Relationen am Ende sämtlich den
Normalisierungsregeln entsprechen.[7]

Es gibt die Normalformen 1-3 (1NF-3NF), die aus Codds
Originaldefinition von 1972 hervorgegangen sind. Boyce und Codd
definierten 1974 eine Boyce-Codd-Normalform (BCNF). R. Fagin fügte
diesen 1977 eine vierte und 1979 eine fünfte hinzu.[8]

Die Normalformen bauen hierarchisch aufeinander auf, d.h. befindet
sich ein Relationenschema im Zustand einer Normalform, so schließt
dies alle in der Hierarchie vorausgehenden Normalformen ein.


Abb. 2: Normalformen Quelle: Date, C. J.: An Introduction to Database
Systems, Volume I, 4. Aufl., Reading 1986, S.363


Die Normalformen im einzelnen:[9]

1NF: Eine Relation befindet sich in der ersten Normalform, wenn alle
Attributwerte atomar sind.

2NF: Eine Relation befindet sich in der zweiten Normalform, wenn sie
sich in der ersten Normalform befindet und jedes Nicht-Schlüssel-
Attribut voll funktional abhängig vom (zusammengesetzten)
Gesamtschlüssel, nicht aber von einzelnen Attributen des
zusammengesetzten Schlüssels ist. Die zweite Normalform ist demnach
nur verletzbar, wenn der Primärschlüssel zusammengesetzt ist.

3NF: Eine Relation befindet sich in der dritten Normalform, wenn sie
sich in der zweiten Normalform befindet und keine funktionalen
Abhängigkeiten zwischen Nicht-Schlüssel-Attributen bestehen,
d.h. Attribute, die nicht zum Primärschlüssel gehören, müssen direkt
und dürfen nicht indirekt (transitiv) von ihm abhängig sein.

BCNF: Eine Relation befindet sich in der Boyce-Codd-Normalform, wenn
sie sich in der dritten Normalform befindet und jede Determinante ein
Schlüsselkandidat ist.

4NF: Eine Relation befindet sich in der vierten Normalform, wenn sie
sich in der dritten bzw. Boyce-Codd-Normalform befindet und sie keine
paarweise auftretenden mehrwertigen Abhängigkeiten enthält.

In einer Relation R(S,A,B,C) ist Attribut C mehrwertig abhängig vom
Attribut A, falls zu einem Wert von A für jede Kombination dieses
Wertes mit einem Wert von B eine identische Menge von C-Werten
existieren kann.

5NF: Eine Relation befindet sich in der fünften Normalform, wenn sie
sich in der vierten Normalform befindet und sie nicht durch eine
Verschmelzung von Relationen, die weniger Attribute und
unterschiedliche Schlüssel aufweisen, rekonstruiert werden kann.

Durch den Normalisierungsprozeß wird die Erhaltung der Integrität der
Datenbank erleichtert, Redundanzarmut gefördert und die Lesbarkeit der
Relationen erleichtert. Eine genauere Betrachtung dieser Aspekte
erfolgt im weiteren Verlauf dieser Arbeit.
----------------------------------------------------------------------


Ciao,
  Martin
-- 
Martin Ramsch <m.ramsch_(at)_computer.org> <URL: http://home.pages.de/~ramsch/ >
PGP KeyID=0xE8EF4F75 FiPr=52 44 5E F3 B0 B1 38 26  E4 EC 80 58 7B 31 3A D7

---
*** Abmelden von dieser Mailingliste funktioniert per E-Mail
*** an mysql-de-request_(at)_lists.4t2.com mit Betreff/Subject: unsubscribe


Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive