Was genau ist ein überlappender Kandidatenschlüssel?


8

Kann mir bitte jemand in einfachen Worten erklären, was ist overlapping candidate key? Was ist, overlappingwie der Name schon sagt?

Betrachten Sie die folgende Beziehung

R(L,M,N,O,P) 
{
    M -> O
    NO -> P
    P -> L
    L -> MN
}

Welche der oben genannten funktionalen Abhängigkeiten führt zu überlappenden Kandidatenschlüsseln in der obigen Beziehung?

Beschränken wir die Diskussion auf Abhängigkeiten, ich bin im Moment nicht an BCNF interessiert

Antworten:


9

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.


4

Ein Kandidatenschlüssel ist eine Reihe von Attributen, die einen minimalen Superschlüssel bilden. Zwei Kandidatenschlüssel, A und B, überlappen sich, wenn sie einige Attribute gemeinsam haben, dh: A ∩ B ist nicht leer. In Ihrem Fall würden MN und NO die Kandidatenschlüssel in R überlappen.

Aufgrund der Minimalitätsanforderung (Irreduzibilität) kann ein Kandidatenschlüssel niemals eine Teilmenge eines anderen in derselben Beziehung sein. Daraus folgt, dass für zwei unterschiedliche Kandidatenschlüssel einer zu überlappenden Beziehung beide aus mehr als einem Attribut bestehen müssen, dh: Für jedes Paar überlappender Kandidatenschlüssel muss A - (A ∩ B) nicht leer sein und B - (A ∩ B. ) darf nicht leer sein.


1

Die ersten drei FDs geben zusammen

MNOP -> L

MNOP ist also ein möglicher Kandidatenschlüssel, CK1.

In ähnlicher Weise ergeben die letzten drei FDs zusammen

NOPL -> M

NOPL ist also ein weiterer möglicher Kandidatenschlüssel, CK2.

CK1 und CK2 haben jedoch die Spalten NOP gemeinsam, sodass sie Kandidatenschlüssel überlappen .


1
NOPlat und MNOP sind super Tasten, der Kandidatenschlüssel möglich ist P, L, NOund NMein Superschlüssel qualifiziert als Kandidat Schlüssel nur dann , wenn hat keine minimale Teilmenge. Ihr Beispiel zu nehmen MNOPist ein Superschlüssel, da die minimale Teilmenge Pdarin alle anderen Attribute der Beziehung ableiten kann
Vikkyhacks

-1

So überprüfen Sie, ob eine Beziehung eine überlappende Kandidatenschlüsselabhängigkeit aufweist:

Überprüfen Sie, ob eine Abhängigkeit besteht, in der ein vollständiger Kandidatenschlüssel einen Teil des Kandidatenschlüssels bestimmt. Dann gilt die OCK-Abhängigkeit

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.