Springe zum Inhalt

Funktionale Anhängigkeiten im relationalen Schemaentwurf

Beim Datenbankentwurf spielt die funktionale Abhängigkeit von Attributen eine zentrale Rolle, da sie als wichtigstes Konzept im Entwurf eines relationalen Schemas gilt. Genauer gesagt werden funktionale Abhängigkeiten eingesetzt um die Normalformen für ein Relationenschema herzuleiten. Im folgenden Artikel möchte ich also die funktionale Abhängigkeit in diesem Kontext beleuchten. Dabei werde ich eine formale Definition für den Begriff der funktionalen Abhängigkeit erarbeiten und an Beispielen veranschaulichen. Dieser Artikel sollte damit die Grundlage für die Herleitung der Normalformen im relationalen Datenbankschema bilden.

Definition funktionaler Abhängigkeiten von Attributen in Relationenschemata

Schnelle Erkenntnis:

Die funktionale Abhängigkeit ist eine Eigenschaft der Semantik, also der Bedeutung, der Attribute. Eine funktionale Abhängikeit eines Atrributes A von einem Attribut B (‚B bestimmt A‘ oder ‚B → A‘) liegt dann vor, wenn die Wertausprägung von A  zu jeder Zeit von der Wertausprägung von B abhängt. Also bestimmt der aktuelle Wert des Attributes B welchen Wert A annimmt. Kurz gesagt bedeutet dies, dass zwei Tupel (Datensätze, Zeilen in einer Tabelle), welche den gleichen Wert im Attribut B tragen, müssen auch den gleichen Wert im Attribut A tragen müssen.

Veranschaulicht könnte man die Ausweisnummer einer Person betrachten die eindeutig den Namen der Person bestimmt. Es gilt also Ausweisnummer→Name.

B→A und A→B sind gesondert zu betrachten. D.h. wenn B→A gilt impliziert dies keine Aussage darüber ob zusätzlich auch A→B gilt

Man kann in diesem Fall eine Funktion F definieren die aus dem Wertebereich von B in den Wertebereich von A abbildet: F:W(B)    W(A)

Allgemeiner lässt sich für Mengen von Attributen formulieren: Es sei die Gesamtrelation R={A1, A2, …, An} gegeben. R wird an dieser Stelle lediglich als eine einzige Tabelle/Relation betrachtet, obwohl die Attributmenge R in Wirklichkeit von mehreren unterschiedlichen Relationenschemata gebildet werden kann, weil dies von Nutzen für die Ausarbeitung der Theorie ist.

Ausserdem seien die zwei Attributmengen X={X1, X2, …, Xn} und Y={Y1, Y2, …, Yn} gegeben. X und Y sind beide Teilmengen von R.

Wenn nun eine funktionale Abhängigkeit zwischen den Attributmengen X und Y vorliegt sodass gilt X→Y, so hat dies eine Einschränkung (Constraint) zur Folge. Diese Einschränkung verlangt, dass zwei Tupel die beide den gleichen Wert für X tragen auch den gleichen Wert für Y tragen müssen, da ja der Wert von X den Wert von Y bestimmt.

Als Datenbankdesigner wendet man die Kenntnis der Semantik, also der Bedeutung der Attribute an um alle funktionalen Abhängigkeiten zu spezifizieren. Das Ziel ist es alle möglichen Zustände r(R) des Relationenschema R, auch Extension genannt, zu berücksichtigen. Entsprechend sind alle Zustände r(R) die die spezifizierten Einschränkungen erfüllen legale Zustände der Extension von R. Jedoch ist die funktionale Abhängigkeit eine Eigenschaft des Relationenschema R selbst (Intension) und kann demnach auch nicht automatisch von einer Extension abgeleitet werden. Sie wird, wie bereits erwähnt, mit Hilfe der Kenntnis der Semantik der Attribute spezifiziert. Findet sich in der Extension auch nur ein Zustand der eine Abhängigkeit nicht erfüllt so ist sie ungütig bzw. widerlegt.

Volle und partielle funktionale Abhängigkeit

Gegeben seien zwei Mengen von Attributen X={A1, A2, …, An) und Y={B1, B2, …, Bn) die beide Teil des Relationenschemas R sind.

Eine partielle Abhängigkeit ist gegeben, wenn X→Y gilt und es eine echte Untermenge X‘ von X gibt für die gilt X’→Y

Eine volle funktionale Abhängigkeit ist dann gegeben wenn X→Y gilt und es keine echte Untermenge X‘ von X gibt für die X’→Y gilt

Transitive funktionale Abhängigkeit

Es seien die Attributmengen X, Y und Z gegeben. Die Transitivitätsregel (eine von sechs Inferenzregeln – hier behandle ich nur das wichtigste) besagt formal, dass gilt: Wenn {X→Y, Y→Z}  dann gilt auch X→Z

Dabei müssen die Attributmengen X, Y und Z nicht disjunkt sein. Sie können also durchaus gemeinsame Elemente besitzen.

Veröffentlicht inDatenbankenDatenmodellierungTechnik und Technologie

Sei der Erste der einen Kommentar abgibt

Schreibe einen Kommentar