Minimale Kandidatenschlüssel ermitteln - Welche Variante ist richtig?

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Minimale Kandidatenschlüssel ermitteln - Welche Variante ist richtig?
Hallo zusammen,

aktuell müssen wir im Modul Grundl. der Datenbanken den minimalen Kanditdatenschlüssel einer Relation bestimmen.
U.a. hier im Forum habe ich einen Lösungsweg gefunden, mit dem man durch ausprobieren auf die Lösung kommt.
In einer PDF der TU München wird jedoch noch ein anderer Weg durch Bestimmung der Attributshülle gezeigt. Nun bin ich unsicher, welche Lösung nun richtig ist…
Wäre jemand so nett sich beide Lösungen (im Anhang) einmal anzuschauen und zu erklären, welcher Weg jetzt der Richtige ist ?

Vielen Dank & Gruß
WIstud2015

Attachment:
Kandidatenschluessel.JPG: https://fsi.cs.fau.de/unb-attachments/post_154217/Kandidatenschluessel.JPG


Hi WIstud2015,

keine Ahnung was das doppelte Unterstreichen von Attributen in deiner Aufgabe für eine Bedeutung hat. Falls das nicht weiter wichtig ist:

Zur Aufgabe selbst:
F kann durch keine Funktionale Abhängigkeit bestimmt werden.
A kann nur durch eine Funktionale Abhängigkeit bestimmt werden bei der A selbst auf der linken Seite steht. → A nur durch A bestimmbar

Daraus kannst du direkt folgern das A und F Teil eines jeden Superschlüssel und auch Schlüsselkandidaten sind.

Zu den Lösungsvorschlägen:
Vorschlag 1 ist definitv falsch. ABCF ist definitv kein minimaler Superschlüssel. C ist bestimmbar über diesen Weg: A->AE->C, wenn wir A haben brauchen wir kein C zusätzlich in unserem (minimalen) Schlüssel. Auch B als Teil des minimalen Schlüssels ist falsch: A->AE->B (auch bestimmbar über A)

Lösungsvorschlag 2 sollte demnach korrekt sein. AF wäre für mich ein minimaler Superschlüssel und damit auch Schlüsselkandidat

[color=gray]sorry für das leicht abweichende Wording. Bei uns gilt:
Superschlüssel: Attribut oder Attributkombination die ein Tupel eindeutig identifizieren
Schlüsselkandidat: minimaler Superschlüssel[/color]

Gruß
Tenma / Christian


Hi Tenma,

vielen Dank für die schnelle Antwort!

Das doppelte Unterstreichen hat keine Bedeutung, sondern kam durch die Rechtschreibprüfung von Word :wink:

Also das allgemeine Vorgehen bei solchen Aufgaben wäre :

  1. Prüfen, welche Attribute nicht durch funktionale Abhängigkeiten beschrieben werden
  2. Die Attributshülle der Attribute aus Schritt 1 bilden
  3. Attributshülle auf Vollständigkeit prüfen
  4. ggf. Attribute sinnvoll ergänzen, bis alle Attribute enthalten sind

Soweit richtig?

Gruß
WIstud2015


Ja denke so kann man vorgehen. Du musst eben nur bei deinem Schritt 4 darauf achten das du auch wirklich alle Schlüsselkandidaten identifizierst.

Man kann auch anders vorgehen (viel aufwändiger von Hand). Man identifiziert zuerst alle Superschlüssel und schaut sich dann im 2. Schritt an von welchem Superschlüssel keine echte Teilmenge ein weiterer Superschlüssel ist und markiert diese als Schlüsselkandidaten.
(Müsste ich für das Problem ein Programm schreiben würde ich das wohl auf diese Art machen.)