Schlüsselbestimmung durch FDs
Ein Superschlüssel ist eine Attributmenge, die alle Attribute der Relation funktional bestimmt (seine Hülle umfasst alle Attribute der Relation). Ein Schlüssel (oder Schlüsselkandidat) ist ein minimaler Superschlüssel.
Lösungsschema: Schlüsselkandidaten finden
Um aus einem Schema und einer Menge von FDs alle Schlüsselkandidaten zu bestimmen:
- Attribute klassifizieren anhand ihres Vorkommens in den FDs:
- Nur links: Attribute, die ausschließlich auf der linken Seite von FDs vorkommen. Diese MÜSSEN in jedem Schlüsselkandidaten enthalten sein.
- Beide Seiten: Attribute, die links und rechts vorkommen. Diese KÖNNEN Teil eines Schlüsselkandidaten sein.
- Nur rechts: Attribute, die ausschließlich auf der rechten Seite vorkommen. Diese DÜRFEN NICHT Teil des Schlüssels sein (sie werden durch andere bestimmt).
- Gar nicht: Attribute, die in keiner FD stehen, MÜSSEN ebenfalls in jedem Schlüsselkandidaten enthalten sein.
- Kandidaten testen:
- Bilde die Hülle aus den "Nur links"-Attributen (und den "Gar nicht"-Attributen). Wenn die Hülle bereits alle Attribute der Relation umfasst, ist dies der einzige Schlüssel.
- Falls nicht: Kombiniere diesen Kern schrittweise mit Attributen aus der "Beide Seiten"-Kategorie, bis die Hülle alle Attribute abdeckt. Achte auf Minimalität.