4.1.6 Normalisierung von Relationen
Unter Normalisierung versteht man die systematische Untersuchung einer Relation mit dem Zweck, qualitativ hochwertige Relationen zu erhalten. Eine Relation ist dann normalisiert, wenn sie folgende Eigenschaften aufweist:
- Sie ist redundanzfrei.
- Sie verursacht keine Probleme bei der Datenpflege.
- Sie beschreibt einen Ausschnitt aus der Realität angemessen und richtig.
Unnormalisierte Relationen enthalten nichtatomare Attribute, d. h. die Attribute selbst besitzen eine gewisse Struktur z. B. eine Menge von Werten. Das Ziel des Normalisierungsprozesses besteht darin, die zur Datenintegrität notwendige Einheitlichkeit in den Entwurf der Datenbank zu bringen. Es ist schon beim Design einfacher Relationen notwendig sich über die Normalisierungsprinzipien im Klaren zu sein, um eine korrekte Implementierung des logischen Schemas zu ermöglichen. Um die Umwandlung der Relationen in die drei Normalformen zu verstehen, müssen wir zuerst das Konzept der Abhängigkeiten zwischen Attributen dieser Relationen einführen.
Funktionale Abhängigkeit
ID | Name |
---|---|
S1 | Meier |
S2 | Weber |
Das Attribut Name ist funktional abhängig vom Attribut ID (ID --> Name).
Identifikationsschlüssel
ID | Name | Vorname |
---|---|---|
S1 | Meier | Hans |
S2 | Weber | Ueli |
Das Attribut ID ist der Identifikationssschlüssel.
Volle funktionale Abhängigkeit
IDStudent | Name | IDProfessor | Note |
---|---|---|---|
S1 | Meier | P2 | 5 |
S2 | Weber | P1 | 6 |
Das Attribut „Note“ ist voll funktional abhängig von den Attributen „IDStudent“ und „IDProffesor“ („IDSt, IDProf ==> Note“).
Transitive Abhängigkeit
ID | Name | Konto_Nr | Bank_Clearing_Nr | Bank |
---|---|---|---|---|
L1 | Meier | 1234-5 | 836 | UBS |
L2 | Weber | 5432-1 | 835 | CS |
Die funktionale Abhängigkeit bezüglich „Bank_Clearing_Nr --> Bank“ ist eine transitive Abhängigkeit, da „Bank_Clearing_Nr“ nicht Primärschlüssel der Relation ist.
Erste Normalform
- 1. Normalform:
- Ein Relationenschema befindet sich in der 1. Normalform, wenn alle seine Attribute einfach und einwertig sind.
Zur Verwaltung der Studenten sei folgende Relation gegeben: Student(Vorname, Nachname,
Informatikkentnisse)
Im Attribut „Informatikkenntnisse“ können mehrere Werte
stehen.
Die Attribute „Vorname“ und „Nachname“ sind
einfach und einwertig.
Um die 1. Normalform zu erreichen, muss für jeden Wert eines mehrwertigen Attributes ein separates Tupel erzeugt werden.
Zweite Normalform
- 2. Normalform:
- Ein Relationenschema ist in der 2. Normalform, wenn es in der 1. Normalform ist und wenn jedes nicht zum Identifikationsschlüssel gehörige Attribut von diesem voll funktional abhängig ist.
Zur Verwaltung der Prüfungsnoten sei folgende Relation gegeben: Student(IDSt, StudentNachname, IDProf,
ProfessorNachname,Note)
Die Attribute IDSt und IDProf bilden den
Identifikationsschlüssel.
Alle Attribute sind einfach und einwertig.
Zudem ist bekannt, dass folgende funktionale
Abhängigkeiten existieren:
1. Das Attribut
„ProfessorNachname“ ist funktional abhängig vom Attribut „IDProf“ („IDProf
--> ProfessorNachname“)
2. Das Attribut
„StudentNachname“ ist funktional abhängig vom Attribut „IDSt“ („IDSt -->
StudentNachname“)
3. Das Attribut „Note“ ist voll
funktional abhängig von den Attributen „IDSt“ und „IDProf“ („IDSt, IDProf ==>
Note“)
Die obere Tabelle ist in der 1. Normalform, da alle Attribute einfach und einwertig sind. Wenn jedoch der Student 1 von der Schule abgeht und gelöscht wird, gehen auch alle Informationen über den Professor Schmid verloren. Das Attribut „Professor“ ist nämlich nicht voll funktional abhängig vom Identifikationsschlüssel „IDSt“. Um dieses Problem zu lösen, wird eine neue Relation „Professoren“ mit den Attributen „ProfID“ und „Professor“ geschaffen. Die Relation „Noten“ dient dazu, die beiden Relationen „Studenten“ und „Professoren“ zu verbinden und die Noten zu verwalten. In die Relation „Noten“ wird die ID des Professors und des Studenten eingefügt. Auf diese Weise können die drei Relationen miteinander verknüpft werden. Das Problem des Verlusts von Professoren-Informationen beim Löschen von Studenten ist damit behoben.
Dritte Normalform
- 3. Normalform:
- Ein Relationenschema befindet sich in der 3. Normalform, wenn es in der 2. Normalform ist und kein Attribut, das nicht zum Identifikationsschlüssel gehört, von diesem transitiv abhängt.
Zur Verwaltung der Bankverbindung von Lieferanten sei folgende Relation
gegeben: Lieferant(ID, Name, Konto_Nr, Bank_Clearing_Nr,
Bank)
Das Attribut ID ist Identifikationsschlüssel. Alle
Attribute sind einfach und einwertig.
Zudem ist bekannt,
dass folgende funktionale Abhängigkeiten existieren:
- Name, Konto_Nr, Bank_Clearing_Nr sind funktional abhängig von ID (ID --> Name, Konto_Nr, Bank_Clearing_Nr)
- Bank ist funktional abhängig von Bank_Clearing_Nr (Bank_Clearing_Nr --> Bank)
Vertiefen Sie ihr Wissen
Die nachstehende Tabelle ist bereits in der 1. Normalform. Sie enthält
pro Zeile und Spalte nur einen Eintrag. Ihre Aufgabe ist es, diese Relation so
zu normalisieren, dass sie am Ende in der 3. Normalform vorliegt.
Dokumentieren Sie Ihre Lösung in einer Word- oder PDF-Datei und
veröffentlichen Sie diese auf dem Diskussionsforum unter dem Thema
„Normalisierungsübung“. Schauen Sie sich die Lösungen Ihrer Mitstudierenden an
und kommentieren Sie diese gegebenenfalls. Wenn Sie Probleme oder Fragen haben,
können Sie diese ebenfalls im Diskussionsforum stellen und
diskutieren.
Die veröffentlichten Lösungen werden von einem Tutor
angeschaut und in einem allgemeinen Feedback kommentiert.
Relation zur Verwaltung der Noten von Studenten in den diversen
Fächern
UnitID | StudentID | Datum | TutorID | Fach | Raum | Note | Buch | TutEmail |
---|---|---|---|---|---|---|---|---|
U1 | St1 | 23.02.03 | Tut1 | GMT | 629 | 4.7 | Deumlich | tut1@fhbb.ch |
U2 | St1 | 18.11.02 | Tut3 | GIn | 631 | 5.1 | Zehnder | tut3@fhbb.ch |
U1 | St4 | 23.02.03 | Tut1 | GMT | 629 | 4.3 | Deumlich | tut1@fhbb.ch |
U5 | St2 | 05.05.03 | Tut3 | PhF | 632 | 4.9 | Dümmlers | tut3@fhbb.ch |
U4 | St2 | 04.07.03 | Tut5 | AVQ | 621 | 5.0 | SwissTopo | tut5@fhbb.ch |
Denken Sie nach...
- Betrachten Sie erneut das Beispiel der ersten Normalform. Ist die 1. Normalisierung ausreichend?
- Versuchen Sie den für das Beipiel der 3. Normalform die Zerlegung in
eine weitere Relation zu begründen.
Lösungshinweise