Mit den möglichen Kandidatenschlüsseln, Vikkyhacks, haben Sie Recht. Überlappende Kandidatenschlüssel sind zusammengesetzte Kandidatenschlüssel (bestehen aus mehr als einem Attribut) mit mindestens einem gemeinsamen Attribut. Ihre überlappenden Kandidatenschlüssel sind also NM und NO (sie teilen sich N).
Zusätzliche Erklärung des oben Gesagten, ursprünglich in Kommentaren hinterlassen:
Alle überlappenden Kandidatenschlüssel sind Gruppen von (z. B. zwei oder mehr) Kandidatenschlüsseln. Das heißt, das erste Kriterium ist, dass Ihre Beziehung Rmehr als einen Kandidatenschlüssel haben muss (minimale Superschlüssel). Damit sich die Kandidatenschlüssel überlappen, muss jeder von ihnen (wieder zwei oder mehr) einige zusätzliche Bedingungen erfüllen. 1) Beide müssen zusammengesetzte Kandidatenschlüssel sein. Sie müssen aus mehr als einem Attribut bestehen, damit sich ein Schlüssel wie Anie überlappt, sondern sich ABmöglicherweise mit einem anderen Schlüssel überschneidet. 2) Die zusammengesetzten Schlüssel müssen ein Attribut gemeinsam haben. ABÜberlappungen mit ACund BDaber nicht CDoder EF.
Zusammenfassend: zwei oder mehr Sätze von Attributen, wobei 1) jeder Satz ein Kandidatenschlüssel (minimaler Superschlüssel) für die Beziehung ist, 2) jeder Satz ein zusammengesetzter Schlüssel ist (aus mehr als einem Attribut besteht) und 3) einer oder mehrere von Die Attribute der zusammengesetzten Schlüssel überschneiden sich mit einem Attribut eines anderen Schlüssels in der Gruppe. So können Sie ausschließen MNOPund NOPLauf der Grundlage , dass sie nicht minimal superkeys. Sie können ausschließen Pund Lauf der Grundlage , dass sie nicht zusammengesetzte Schlüssel (sie bestehen aus einem Attribut). Sie haben noch zwei Schlüssel NOund NM, die das Attribut gemeinsam haben N, damit Sie fertig sind.
Beispiel
Es kann auch hilfreich sein, ein Beispiel zu haben, mit dem Sie Ihren Kopf wirklich umwickeln können. Das einzige Mal, dass ich jemals gesehen habe, wo Sie überlappende Kandidatenschlüssel haben, ist, wenn Sie 1) zwei Attribute haben, die sich funktional bestimmen (z. B. eine Eins-zu-Eins-Beziehung zwischen Aund Bwo Ahat einen Bund Bhat einen A) und 2) diese Attribute sind Teil zusammengesetzter Kandidatenschlüssel.
In einem System Customerhat beispielsweise a eine CreditCardund a CreditCardgehört zu einer Customer. In der Tabelle "Vermietungen" identifizieren Sie ein eindeutiges Rentaldurch das EquipmentId, Dateund CustomerId. Der Einfachheit halber haben Sie auch CreditCardauf diesem Tisch gespeichert .
Dies bedeutet, dass die folgenden FDs gelten:
{CustomerId, EquipmentId, Date} -> {CreditCard}
{CustomerId} -> {CreditCard}
Da der Verein jedoch eins zu eins ist, gelten auch die folgenden FDs:
{CreditCard} -> {CustomerId}
{CreditCard, EquipmentId, Date} -> {CustomerId}
Da CustomerIdund CreditCardkann austauschbar verwendet werden, um Ihren Kunden eindeutig zu identifizieren.
Im obigen Szenario haben Sie überlappende Kandidatenschlüssel:
{CreditCard, EquipmentId, Date}
{CustomerId, EquipmentId, Date}
Sie überlappen sich, weil sie zusammengesetzte Schlüssel sind (sie bestehen aus mehr als einem Attribut) und weil mindestens eines ihrer Attribute gemeinsam genutzt wird (in diesem Fall teilen sie beide EquipmentIdund Date.
Sie sagten, dass Sie sich BCNFim Moment nicht darum kümmern , aber um dies vollständig nach Hause zu bringen, ist das obige Szenario der Grund, warum Sie gelegentlich einen Tisch sehen, der sich befindet, 3NFaber nicht BCNF. Die obige Tabelle ist in 3NF, aber nicht BCNF.
3NFerlaubt FDs, wobei 1) die FD trivial ist 2) die linke Seite der FD ein Kandidatenschlüssel ist oder 3) die rechte Seite der FD ein Schlüsselattribut ist (ein Attribut, das zum Erstellen eines Schlüssels verwendet wird). Da CreditCardund CustomerIdbeide Schlüsselattribute sind, erfüllen alle FDs entweder 2 oder 3.
BCNFist sehr ähnlich, erlaubt aber nur die Bedingungen 1 und 2, die von erlaubt sind 3NF. Da die dritte Bedingung , die durch nicht erlaubt ist BCNF, und beide CID -> CCund CC -> CID3 Gebrauchszustand, ist diese Tabelle nicht BCNF, aber es ist 3NF.
Aus praktischen Gründen ist der Fall ziemlich selten und diese Informationen sind pedantisch. Das Werbegeschenk, dass Ihr Tisch ein Problem hat, ist die Tatsache, dass CreditCard/CustomerIdPaare über Ihren Tisch wiederholt werden. Möglicherweise erkennen Sie auch, dass sich die Tabelle 2NFohne diese seltene Bedingung nicht einmal befinden würde , wenn die rechte Seite eines FD ein Schlüsselattribut sein könnte, da CreditCardeine teilweise Abhängigkeit vom Primärschlüssel besteht (dies hängt davon ab, CustomerIdaber nicht EquipmentIdoder Date.
P,L,NOundNMein Superschlüssel qualifiziert als Kandidat Schlüssel nur dann , wenn hat keine minimale Teilmenge. Ihr Beispiel zu nehmenMNOPist ein Superschlüssel, da die minimale TeilmengePdarin alle anderen Attribute der Beziehung ableiten kann