Funktionale Abhängigkeiten gelten für die gesamte Datenbank oder für eine bestimmte Beziehung?

8

Ich bin neu bei dbms. Ich habe ein Vorlesungsvideo über funktionale Abhängigkeiten gesehen. Aber ich bin ein bisschen verwirrt darüber, ob die funktionale Abhängigkeit eine Einschränkung für die gesamte Datenbank oder für ein bestimmtes Schema darstellt.

Saravanan
quelle

Antworten:

9

Eine funktionale Abhängigkeit ist genau das, was der Begriff impliziert - die Ausgabe der Funktion wird immer durch die Eingabe bestimmt. Wenn wir zum Beispiel eine Funktion f () haben und die Variable x bereitstellen und immer die Ausgabe y erhalten , dann ist y funktional von x abhängig . Sie können sich dies wie eine einfache Grafikfunktion vorstellen. 2x + 1 = y Fügen Sie einige Beispielwerte in die Funktion ein, die wir erhalten:

X    Y
------
1    3
2    5
3    7

und so weiter. Wir wissen also, dass es für jeden Wert von x einen Wert von y gibt, der immer der Wert von y für dieses x ist.

Codd passte dies an die Datenverwaltung an, um zu bestimmen, ob der Wert eines Datenelements immer zu einem bekannten Wert eines zweiten Datenelements führt, als wäre es die Eingabe und Ausgabe einer Funktion. Wenn wir beispielsweise feststellen, dass jedem Mitarbeiter eines kleinen Unternehmens eine Mitarbeiternummer zugewiesen wird und wir eine einfache Liste von Mitarbeiternummern und -namen erstellen, stellen wir fest, dass der Name funktional von dieser Mitarbeiternummer abhängt . Jedes Mal, wenn wir zum Beispiel die Nummer 7 des Mitarbeiters sehen, sehen wir den Namen "Jim Brown". Dies stellt in der Datenbank den Satz dar, der in der realen Welt wahr ist - nämlich, dass Mitarbeiter Nummer 7 die Person mit dem Namen "Jim Brown" ist, auf die wir verweisen und sagen können, "das ist er".

Die funktionale Abhängigkeit kann als eindeutige Einschränkung implementiert werden, da zwischen der Eingabe in die Funktion und der erwarteten Ausgabe eine Eins-zu-Eins-Beziehung besteht. Wenn wir im Algebra-Beispiel 2 in die Gleichung 2x + 1 einfügen, erhalten wir immer 5. Wenn wir dieses Beispiel im obigen Beispiel auf die Datenverwaltung anwenden, müssen wir jedes Mal, wenn wir die Mitarbeiternummer 7 haben, nur einen Namen und haben andere Eigenschaften, die damit einhergehen. Wir können Mitarbeiter Nummer 7 nicht mehr mit "Jim Brown" und "Bob Jones" verknüpfen, als wir sagen könnten, dass das Einstecken von 7 in 2x + 1 15 und 25 ergeben kann.

Funktionale Abhängigkeiten werden per Definition implementiert, wenn für jede Tabelle eine eindeutige Einschränkung festgelegt wird, die jeden Satz von Datenelementen identifiziert, die eine Eins-zu-Eins-Beziehung zu einem anderen Satz von Datenelementen haben und deren Werte immer mit diesem ersten Satz variieren. Die Notation lautet normalerweise:

A,B ---> C

Dies bedeutet, dass der Wert von A und B den Wert von C bestimmt. Vielleicht ist A die Mitarbeiternummer und B die abhängige Nummer und C der Name des abhängigen. In diesem Sinne gelten sie für jede Tabelle in jedem Schema in jeder Datenbank.

Einige gute Referenzen zur relationalen Theorie sind Fabian Pascals Practical Database Foundation Series und Chris Dates Buch Relational Theory for Computer Professionals .

Todd Everett
quelle