Abhängigkeiten
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:
- Attribut B eines Gegenstandstyps G ist von
Attribut A funktional abhängig, wenn zu jedem Wert von A höchstens ein Wert von
B
auftreten kann.
G.A --> G.B
Beispiel:
| ID |
Name |
| S1 |
Meier |
| S2 |
Weber |
Das Attribut Name ist funktional abhängig vom Attribut ID (ID --> Name).
- Identifikationsschlüssel:
- Ein Attribut A für das gilt: Jedes Attribut von G
ist von A funktional abhängig; kein Attribut von A ist von den übrigen A-Attributen
funktional abhängig.
G.A --> G.B
Beispiel:
| ID |
Name |
Vorname |
| S1 |
Meier |
Hans |
| S2 |
Weber |
Ueli |
Das Attribut ID ist Identifikationssschlüssel.
- Volle funktionale Abhängigkeit:
- A sei der Identifikationsschlüssel eines
Gegenstandstyps G, B Attribut; B ist genau dann von A voll funktional abhängig,
wenn B
von A funktional abhängig ist, aber nicht bereits von Teilen von A.
G.A ==> G.B
Beispiel:
| 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:
- A sei der Identifikationsschlüssel eines Gegenstandstyps
G, B und C sind weitere Attribute, alle untereinander verschieden/disjunkt; C ist
transitiv
abhängig von A wenn gilt:
G.A --> G.B ; G.B -->
G.C ; G.B -/-> G.A
Beispiel:
| 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.