Funktionale Abhängigkeiten
In diesem Beitrag geht es um die Funktionalen Abhängigkeiten von Tupeln. Funktionale Abhängigkeit bedeutet, das ein Attribut ein anderes bestimmt. Dies können entweder mehrere Attribute zusammen sein oder einzelne Attribute.
Wir sehen uns dazu einmal folgendes Beispiel an
Matr_nr | Name | Semester | Fachrichtung |
0125466 | Johannes | 5 | CVD |
5354788 | Melanie | 3 | SMK |
4568765 | Laura | 7 | CVD |
456876 | Max | 1 | SMK |
Die funktionale Abhängigkeiten dieser Tabelle wären folgende:
Matr_nr -> {Name, Semester, Fachrichtung} weil „Matr_nr“ der Primärschlüssel ist und somit eindeutig auf die Attribute schließt.
Andere funktionale Abhängigkeiten gibt es in dieser Tabelle nicht, da wir z.B. nicht von der Kombination aller 3 Attribute auf den Primärschlüssel schließen könnten und auch sonst nicht mit dem Namen z.B. auf das Semester schließen könnten etc.
Es gibt höchstens noch folgende Abhängigkeiten, die aber nicht minimal sind.
{Matr_nr, Name} -> {Semester, Fachrichtung}
{Matr_nr, Semester} -> {Name, Fachrichtung}
Diese Abhängigkeiten sind aber alle nicht minimal. Beim ersten könnte man z.B. den Namen raus streichen und würde das selbe Ergebnis erzielen können. Beim zweiten könnte man das Semester raus streichen und könnte trotzdem allein mit der Matrikelnummer auf den Namen und die Fachrichtung schließen. Das liegt daran, das die Matrikelnummer der Primärschlüssel ist und somit schon minimal ist und eindeutig damit auf einen Datensatz schließen kann.
Es gibt außerdem noch Vollfunktionale Abhängigkeiten. Dies ist der Fall, wenn man mehrere Attribute braucht, um eindeutig auf ein Attribut schließen zu können. Dazu folgendes Beispiel.
Kennnummer |
Atikelnummer |
Artikelbezeichnung |
12334 | 4245 | Drucker |
12334 | 4456 | PC |
12333 | 4245 | Drucker |
Wir hätten hier folgende Abhängigkeit:
{Kennummer, Artikelnummer} -> {Artikelbezeichnung}
In diesem Beispiel kann man z.B. nicht alleinig mit der Kennnummer oder der Artikelnummer den Artikel herausfinden. Wir brauchen die Kennummer und die Artikelnummer immer in Kombination um den Artikel herausfinden zu können.
Zu guter letzt gibt es noch die Transitive Abhängigkeit.
Kennnummer |
Artikelnummer |
Artikelbezeichnung |
Lieferort |
12334 | 4245 | Drucker | Hamburg |
12334 | 4456 | PC | Berlin |
12333 | 4245 | Drucker | Dortmund |
In diesem Fall wäre, wie im letzten Beispiel, {Kennummer, Artikelnummer} -> {Artikelbezeichnung}. Dadurch ist der Lieferort transitiv Abhängig von der Kennnummer und der Artikelnummer.