Alle Tabs der Lerneinheit (Erklärung · FD-Explorer · Praxis-Übung · Klausur-Quiz) als durchgehender Text. Ideal zum Wiederholen vor der Klausur, und für Suchmaschinen wie Google, Bing und KI-Suche (ChatGPT, Perplexity).
Diese Lerneinheit wurde für typische Bachelor-Klausuren konzipiert. So prüfen wir · Fehler entdeckt? Melde ihn uns oder markiere die fragliche Stelle direkt im Text oben.
Alle Tabs der Lerneinheit (Erklärung · FD-Explorer · Praxis-Übung · Klausur-Quiz) als durchgehender Text. Ideal zum Wiederholen vor der Klausur, und für Suchmaschinen wie Google, Bing und KI-Suche (ChatGPT, Perplexity).
"Wenn ich die Matrikelnummer kenne, weiß ich automatisch den Namen." Genau das ist eine funktionale Abhängigkeit. Sie ist das wichtigste Werkzeug der relationalen Datenbank-Theorie — ohne FDs keine Normalformen, keine Schlüsselkandidaten, keine sauberen Tabellen. Klausur-Pflicht in allen 12 WInf-DB-Klausuren.
Wir gehen das Konzept Schritt für Schritt durch: was FDs sind, wie du sie liest, wie du Hüllen berechnest und damit Schlüsselkandidaten findest. Am Ende ein interaktiver FD-Explorer für eigene Beispiele.
Klausur-Tipp: Wenn du in einer Klausur-Aufgabe alle Schlüsselkandidaten finden sollst, fang mit den Attributen an, die nie rechts in einer FD stehen — die müssen im Schlüssel sein. Dann fügst du minimale Erweiterungen hinzu bis die Hülle alle Attribute umfasst.
Anmelden, um den Fortschritt zu speichern.
Nächster Schritt
Aktives Abrufen festigt Wissen schneller als nochmal lesen.
"Wenn ich die Matrikelnummer kenne, weiß ich automatisch den Namen." Genau das ist eine funktionale Abhängigkeit. Sie ist das wichtigste Werkzeug der relationalen Datenbank-Theorie — ohne FDs keine Normalformen, keine Schlüsselkandidaten, keine sauberen Tabellen. Klausur-Pflicht in allen 12 WInf-DB-Klausuren.
Wir gehen das Konzept Schritt für Schritt durch: was FDs sind, wie du sie liest, wie du Hüllen berechnest und damit Schlüsselkandidaten findest. Am Ende ein interaktiver FD-Explorer für eigene Beispiele.
A → B heißt: "Wenn ich den Wert von A kenne, ist der Wert von B eindeutig bestimmt."
Lies das Pfeil-Zeichen als "bestimmt" oder "legt fest":
MatrNr → Name — "MatrNr bestimmt Name"ISBN → Titel — "ISBN bestimmt Titel"KursID → KursName, DozNr — "KursID bestimmt KursName UND DozNr"A und B können eine Spalte oder mehrere sein. Mehrere Spalten links heißt: "ich brauche alle Spalten links, um B zu bestimmen". Klassisch:
(MatrNr, KursID) → Note — du brauchst beides (Studi + Kurs), um die Note zu kennen.Schau diese Mini-Tabelle:
| MatrNr | Name | KursID | KursName | Note |
|---|---|---|---|---|
| 1001 | Müller | DB1 | Datenbanken | 2,3 |
| 1001 | Müller | INF | Informatik | 1,7 |
| 1002 | Schulz | DB1 | Datenbanken | 2,7 |
| 1003 | Klein | DB1 | Datenbanken | 3,3 |
Welche FDs gelten?
Klausur-Trick: Eine FD ist eine Aussage über die Realität, nicht über den aktuellen Tabellenstand. Frage immer: "kann es jemals zwei Zeilen geben mit gleichem A aber verschiedenen B?" Wenn ja, ist es keine FD.
A → A, oder (A, B) → A — die rechte Seite ist Teil der linken. Hilft nicht beim Normalisieren.A → B wenn B nicht in A enthalten ist. Das sind die interessanten.Wenn du eine Menge von FDs hast, kannst du daraus neue FDs ableiten. Die drei Regeln dazu heißen Armstrong-Axiome:
- Reflexivität: wenn
B ⊆ A, dannA → B. (Triviale FDs.)- Verstärkung: wenn
A → B, dannA,C → B,C. (Mehr links → mehr rechts geht.)- Transitivität: wenn
A → BundB → C, dannA → C. (Der Klassiker.)
Plus drei nützliche Folge-Regeln:
A → B und A → C ⟹ A → B,CA → B,C ⟹ A → B und A → CA → B und B,C → D ⟹ A,C → DIn Klausuraufgaben musst du oft beweisen, ob eine FD aus einer FD-Menge ableitbar ist. Das machst du nicht mit den Axiomen direkt — sondern mit der Hüllen-Berechnung.
Hülle
A⁺von A = die Menge aller Attribute, die du aus A über die FDs ableiten kannst.
Algorithmus (Klausur-Pflichtwissen):
Start: result = {A}
Wiederhole bis sich nichts mehr ändert:
Für jede FD X → Y in F:
Wenn X ⊆ result, dann result := result ∪ Y
Rückgabe: result
Beispiel. Tabelle hat Attribute \A, B, C, D, E\ und FDs:
A → BB → CC, D → EBerechne A⁺ (was kannst du aus A alles ableiten?):
| Schritt | result | wendet FD an | neue Attribute |
|---|---|---|---|
| Start | {A} | – | – |
| 1 | {A, B} | A → B | +B |
| 2 | {A, B, C} | B → C | +C |
| 3 | {A, B, C} | (C, D → E gilt nicht, weil D fehlt) | – |
| Stop | {A, B, C} | – | – |
→ A⁺ = \A, B, C\. Aus A kannst du A, B, C ableiten — aber nicht D oder E.
Berechne (A, D)⁺:
| Schritt | result | wendet FD an |
|---|---|---|
| Start | {A, D} | – |
| 1 | {A, B, D} | A → B |
| 2 | {A, B, C, D} | B → C |
| 3 | {A, B, C, D, E} | C, D → E (jetzt sind C und D drin) |
| Stop | alles | – |
→ (A, D)⁺ = \A, B, C, D, E\. Mit A und D zusammen kannst du alles ableiten — das macht (A, D) zum Superschlüssel.
Superschlüssel: Attribut-Menge
KmitK⁺ =alle Attribute der Relation. Schlüsselkandidat: minimaler Superschlüssel — wenn du ein Attribut wegnimmst, ist es kein Superschlüssel mehr.
Algorithmus (Klausur-Standard):
Im obigen Beispiel: (A, D) ist Superschlüssel. Ist es minimal?
A⁺ = \A, B, C\ — kein Superschlüssel (E, D fehlen)D⁺ = \D\ — kein SuperschlüsselAlso ist (A, D) minimal = Schlüsselkandidat.
Faustregel: Attribute, die in keiner rechten Seite einer FD auftauchen, müssen im Schlüsselkandidaten sein. Im Beispiel taucht D in keiner rechten Seite auf → D ist zwingend im Schlüssel.
Probier eigene FD-Mengen aus und berechne Hüllen Schritt für Schritt:
Interaktive Visualisierung
Interaktive Komponente: probiere sie im Topic-Player oben aus.
- FD lesen als Plain German: "
A → B" → "wenn A, dann eindeutig B". Wenn du es so aussprechen kannst, ist es eine FD.- Hülle-Algorithmus auswendig: Start mit gegebener Menge, iteriere über alle FDs, füge rechte Seite hinzu wenn linke Seite enthalten ist, bis nichts Neues mehr.
- Schlüssel-Trick: Attribute die nie rechts in einer FD stehen, sind immer im Schlüsselkandidaten. Start damit, dann prüf ob Hülle bereits alles ist.
- Ableitbarkeits-Frage ("Gilt
A → Ein dieser FD-Menge?") → berechneA⁺. WennE ∈ A⁺, dann ja.- Triviale FDs ignorieren.
A → A,(A, B) → Asind immer wahr und helfen beim Normalisieren nichts. Konzentriere dich auf nicht-triviale.
1. Aktueller Tabellenstand ≠ FD. Wenn aktuell zufällig jede Stadt eine eindeutige PLZ hat, gilt nicht automatisch "Stadt → PLZ" als FD. FDs sind Aussagen über die Semantik der Daten, nicht den Schnappschuss.
2. Verkehrte Pfeil-Richtung. A → B heißt "A bestimmt B", nicht "B bestimmt A". MatrNr → Name ja, Name → MatrNr nein (mehrere Müller-s möglich).
3. Hülle vs. äquivalenter FD-Set. Die Hülle ist eine Menge von Attributen. Manche Klausuren fragen nach der kanonischen Hülle oder minimalen Überdeckung einer FD-Menge — das sind andere Konzepte. Achte auf die genaue Frage.
4. Schlüsselkandidaten sind nicht unique. Eine Relation kann mehrere Schlüsselkandidaten haben. Bei der BCNF-Frage musst du alle finden, nicht nur den ersten.
5. Vereinigung der linken Seite ≠ einzelne FDs. A → B und C → D ergibt nicht automatisch (A, C) → (B, D). Du kannst nur durch Verstärkung erweitern: A → B ergibt (A, C) → (B, C), aber D bekommst du nur über die zweite FD.
Wähle ein Beispiel und experimentiere mit Hüllen-Berechnung + Schlüsselkandidaten-Suche. Die FDs sind als Pfeile visualisiert; klick eine Attribut-Menge an, um ihre Hülle Schritt für Schritt zu sehen.
Probier:
A vs. (A, D) — siehst sofort warum ein Attribut allein nicht reicht.(MatrNr, KursID)).Interaktive Visualisierung
Interaktive Komponente: probiere sie im Topic-Player oben aus.
Klausur-Tipp: Wenn du in einer Klausur-Aufgabe alle Schlüsselkandidaten finden sollst, fang mit den Attributen an, die nie rechts in einer FD stehen — die müssen im Schlüssel sein. Dann fügst du minimale Erweiterungen hinzu bis die Hülle alle Attribute umfasst.
Vier Aufgaben-Typen: FD-Erkennung, Hüllen-Berechnung, Schlüssel-Identifikation, Armstrong-Regel-Anwendung.
Klausurfragen mit Lösungen (6)
Antwort: Wenn ich A kenne, ist B eindeutig festgelegt
Erklärung: A → B = 'A bestimmt B eindeutig'. Das heißt: zu jedem A-Wert gibt es genau einen B-Wert. NICHT umgekehrt (das wäre B → A) und NICHT Gleichheit.
Antwort: Studi mit gleicher MatrNr haben immer denselben Namen
Erklärung: Klassische FD-Aussage: gleiche linke Seite (MatrNr) → gleiche rechte Seite (Name). Zwei Zeilen mit MatrNr 1001 müssen beide 'Müller' haben. Das heißt nicht, dass jeder Name unique ist (zwei Studi können beide 'Müller' heißen).
Antwort: (A, B) → A
Erklärung: Triviale FD: rechte Seite ist Teilmenge der linken. (A, B) → A: A steht schon links. Auch MatrNr → MatrNr wäre trivial, aber MatrNr → (MatrNr, Name) ist nicht-trivial (Name ist neu).
Antwort: 4
Erklärung: Start {A}. A→B: {A,B}. A→D: {A,B,D}. B→C: {A,B,C,D}. Stop. A⁺ = {A,B,C,D} = alle 4 Attribute. Daraus folgt: A ist ein Superschlüssel von R.
Typ: Zahlen-Eingabe
Richtige Antworten: A → C (Transitivität); A → B,C (Transitivität + Vereinigung); A,D → B,D (Verstärkung); A,B → C (Verstärkung von B → C, aber A war schon implizit)
Erklärung: Ableitbar: A→C (Transitivität A→B + B→C), A→B,C (Transitivität + Vereinigung A→B, A→C), A,D→B,D (Verstärkung A→B mit D), A,B→C (Verstärkung B→C mit A links). NICHT ableitbar: Inversionen — eine FD geht nicht zwingend in beide Richtungen.
Typ: Multi-Select
Zuordnungen:
Erklärung: Die drei Armstrong-Axiome (Reflexivität, Verstärkung, Transitivität) sind das Minimum. Vereinigung, Zerlegung, Pseudo-Transitivität sind Folge-Regeln aus den dreien — bequem zum Anwenden in Klausuren.
Typ: Zuordnung
Klausurfragen mit Lösungen (6)
Antwort: 5
Erklärung: Start {A,C}. A→B: {A,B,C}. C→D: {A,B,C,D}. B,D→E (beide drin): {A,B,C,D,E}. Stop. (A,C)⁺ = alle 5 Attribute. → (A,C) ist Superschlüssel. Ist es minimal? A⁺={A,B} kein SS, C⁺={C,D} kein SS → (A,C) ist Schlüsselkandidat.
Typ: Zahlen-Eingabe
Antwort: B
Erklärung: A allein bestimmt B, C, D — ist Superschlüssel. (A,B), (A,B,C) erweitern A und sind ebenfalls Superschlüssel (aber nicht minimal). B allein hat Hülle B⁺ = {B} — keine FD startet mit nur B, also kein Superschlüssel.
Antwort: Falsch
Erklärung: FALSCH. FDs sind gerichtet. MatrNr → Name ja, aber Name → MatrNr nein (mehrere Müller-s können verschiedene MatrNr haben). Eine FD gilt nur in EINE Richtung, sofern nicht beide Richtungen explizit gegeben sind.
Typ: Wahr/Falsch
Antwort: Genau 4 (jedes einzelne Attribut)
Erklärung: Wegen des Zyklus A→B→C→D→A bestimmt JEDES Attribut alle anderen. A⁺=B⁺=C⁺=D⁺={A,B,C,D}. Damit ist jedes einzelne Attribut ein Superschlüssel UND minimal → 4 Schlüsselkandidaten. Klausur-Spezialfall bei FD-Zyklen.
Richtige Reihenfolge:
Erklärung: Standard-Hüllen-Algorithmus. Wichtig: die Schleife läuft mehrere Durchgänge, weil neu hinzugefügte Attribute weitere FDs aktivieren können. Stop, wenn ein vollständiger Durchgang keine neuen Attribute mehr ergibt.
Typ: Reihenfolge
Lösungen pro Lücke:
Erklärung: Klausur-Pflichtwissen: triviale FD = rechte Seite Teilmenge der linken. Verstärkung erweitert links und rechts gleichzeitig. Transitivität verkettet zwei FDs zu einer dritten. Die drei Axiome (Reflexivität, Verstärkung, Transitivität) bilden ein vollständiges Beweis-System für FDs.
Typ: Lückentext