簡単に説明できる人がいoverlapping candidate key
ますか?何でoverlapping
名前が示すように?
以下の関係を検討してください
R(L,M,N,O,P)
{
M -> O
NO -> P
P -> L
L -> MN
}
上記の機能の依存関係のどれが上記の関係で重複する候補キーをもたらしていますか?
ディスカッションを依存関係に制限しましょう。現時点ではBCNFには興味がありません。
簡単に説明できる人がいoverlapping candidate key
ますか?何でoverlapping
名前が示すように?
以下の関係を検討してください
R(L,M,N,O,P)
{
M -> O
NO -> P
P -> L
L -> MN
}
上記の機能の依存関係のどれが上記の関係で重複する候補キーをもたらしていますか?
ディスカッションを依存関係に制限しましょう。現時点ではBCNFには興味がありません。
回答:
可能性のある候補キーであるvikkyhacksを使用すれば、お金を稼ぐことができます。重複する候補キーは、少なくとも1つの共通の属性を持つ複合(複数の属性で構成される)候補キーです。したがって、重複する候補キーはNMとNOです(Nを共有します)。
上記の追加説明。最初はコメントに残されていました。
重複するすべての候補キーは、(たとえば2つ以上の)候補キーのグループです。つまり、最初の基準は、リレーションにR
複数の候補キー(最小のスーパーキー)が必要であることです。候補キーのいずれかが重複するためには、それらのそれぞれ(2つ以上)がいくつかの追加条件を満たす必要があります。1)それらは両方とも複合候補キーでなければなりません。これらは複数の属性で構成されている必要があるため、などのキーA
は重複することはありAB
ませんが、別のキーと重複する場合があります。2)複合キーは属性を共有する必要があります。AB
重複AC
してBD
ではなく、CD
かEF
。
要約すると、2つ以上の属性セットです。1)各セットはリレーションの候補キー(最小スーパーキー)、2)各セットは複合キー(複数の属性で構成)、3)1つ以上の属性複合キーの属性は、セット内の別のキーの属性と重複しています。したがって、それらを除外MNOP
しNOPL
て、それらが最小のスーパーキーではないことに基づいてください。それらを除外してP
、L
それらが複合キーではない(それらは1つの属性で構成される)ことができます。次の2つのキーと左だNO
し、NM
属性を共有し、N
あなたが終了しているので、。
また、実際に頭を包むことができる例があると役立つ場合もあります。あなたは1を持っているときに、候補キーが重複しているだろう場所私が今まで見てきただけです)互いに機能(例えば間で1対1の関係決定する2つの属性A
とB
どこA
1を持っているB
とB
1を持っているA
)と、2)これらの属性は複合候補キーの一部です。
たとえば、一部のシステムでは、a Customer
は1つを持ち、a は1つCreditCard
にCreditCard
属しCustomer
ます。RentalsテーブルでRental
はEquipmentId
、Date
とによってを一意に識別しますCustomerId
。便宜上、CreditCard
このテーブルにも格納しています。
つまり、次のFDが保持されます。
{CustomerId, EquipmentId, Date} -> {CreditCard}
{CustomerId} -> {CreditCard}
ただし、関連付けは1対1であるため、次のFDも保持されます。
{CreditCard} -> {CustomerId}
{CreditCard, EquipmentId, Date} -> {CustomerId}
以来CustomerId
とCreditCard
一意にあなたの顧客を識別するために互換的に使用することができます。
上記のシナリオでは、重複する候補キーがあります。
{CreditCard, EquipmentId, Date}
{CustomerId, EquipmentId, Date}
これらは、複合キー(複数の属性で構成されている)であり、少なくとも1つの属性が共有されている(この場合、両方EquipmentId
とを共有している)ため、重複していますDate
。
BCNF
現時点では気にしないとおっしゃっていましたが、この家を完全に持ち帰るために、上記のシナリオが、中にはあるが3NF
、ないテーブルが時々表示される理由ですBCNF
。上記の表はに3NF
ありますが、ありませんBCNF
。
3NF
1)FDが自明である2)FDの左側が候補キーである、または3)FDの右側がキー属性(任意のキーの作成に使用される属性)であるFDを許可します。以来CreditCard
とCustomerId
両方のキー属性、すべてのFDを満たす2または3のどちらかです。
BCNF
は非常に似ていますが、で許可されて3NF
いる条件1および2のみが許可されます。BCNF
、CID -> CC
およびCC -> CID
使用条件3の両方で3番目の条件が許可されていないため、このテーブルは許可されていませんBCNF
が、です3NF
。
実際の目的では、このケースはかなりまれであり、この情報は知識が豊富です。テーブルに問題があるということは、CreditCard/CustomerId
ペアがテーブル全体で繰り返されるという事実です。また、は主キーへの部分的な依存関係である2NF
ため、FDの右側がキー属性である可能性があるこのまれな条件がなければ、テーブルが存在しないことにも気付く場合がありCreditCard
ます(またはに依存しますCustomerId
が、には依存しませんEquipmentId
)Date
。
最初の3つのFDを組み合わせて
MNOP -> L
したがって、MNOPは1つの候補キー、CK1です。
同様に、最後の3つのFDを組み合わせて
NOPL -> M
したがって、NOPLはもう1つの候補キー、CK2です。
ただし、CK1とCK2には共通の列NOPがあり、候補キーと重複しています。
P
、L
、NO
、およびNM
候補キーとしてAスーパーキー格は、任意の最小限のサブセットを持っていない場合に限ります。あなたの例をとるMNOP
ことは、その中の最小限のサブセットP
がリレーションの他のすべての属性を導き出すことができるので、スーパーキーです