1

候補キー、主キー、最小スーパーキーについて混乱があります。

定義により:

主キー:1つの属性のみであるため、最小のスーパーキーである必要があり、候補キーでもあります(最小のスーパーキーであるため)

最初の結論:キーが主キーである場合、それは候補キーと最小のスーパーキーでもあります

次の点は本当だと思いますが、よくわかりません。誰かが私と一緒に確認できますか?

  1. 最小限のスーパーキーである場合、それが主キーであるという意味ではありません。しかし、それは候補キーであることを意味します。

  2. 候補キーの場合、必ずしも最小キーである必要はなく、主キーである必要もありません。

結論:

  1. 主キー:1つの値のみ、行全体を識別できます。また、候補キーと最小限

  2. 最小スーパーキー:1つの値またはフィールドの組み合わせで行全体を識別できるため、候補キーですが、プライマリである必要はありません。しかし、いずれかのフィールドを削除すると、それはもはやキーではありません

  3. 候補キー:1つの値またはフィールドの組み合わせで行全体を識別できますが、最小またはプライマリである必要はありません。

4

3 に答える 3

1

簡単な答えはあなたが説明するよりもはるかに簡単です。キー(候補キーまたはキーまたはキーまたは代替キーとも呼ばれます)は、最小限のスーパーキーです。言い換えると、キーは、還元不可能なほど一意であり、決してnullにならないことが保証されている属性のセットです。キーは1つ以上の属性で構成され、場合によってはゼロ属性で構成される場合があります(ゼロ属性キーは比較的珍しく、あまり説明されていませんが、キーとしては引き続き役立ちます)。

より長い説明:

慣例により、また便宜上、関係ごとに1つのキーが通常「主」キーとして指定されます。これは、何らかの方法で特別な意味を持つと見なされることを意味します。特別な意味は何でもかまいません。通常、他の関係で外部キーとして参照されるキーか、その関係の「優先」識別子であるキーのいずれかです。

ただし、「主」キーは、選択しない限り(または、DBMSソフトウェアの制限によって強制されない限り)、基本的に他のキーと同じであることを理解することが重要です。したがって、原則として、常に1つの「主」キーを指定する必要がある絶対的な理由はありません。すべてのリレーションに少なくとも1つの候補キー(定義上は必須)があると仮定すると、それらのキーの1つ以上を「プライマリ」と呼ぶこともできます。ただし、主キーを1つだけ指定することは非常に強力な規則であり、SQLベースのDBMSの構文でサポートされている規則です。

歴史的な詳細の問題として、リレーショナルモデルの発明者であるEFCoddは、元々、主キーという用語を、1つだけではなく、関係のすべてのキーを意味するために使用していたことに注意してください。ただし、最近の使用法では、候補キーという用語は元々主キーと呼ばれていたものに使用されますが、「主」の指定は上記で説明した方法で使用されます。残念ながら、この点についてはかなりの混乱があり、「主」キーが他の候補キーと何らかの形で何らかの形で異なるという主張をよく目にします。

キーについてのヒュー・ダーウェンは次のとおりです。

relvarは複数のキーを持つことができますが、下線を引くために1つだけを選択し、その1つを主キーと呼びます。選択は任意であるため、プライマリの概念は論理的な観点からはそれほど重要ではありません。ただし、キーの一般的な概念は非常に重要です。候補キーという用語は、キーとまったく同じ意味です(つまり、候補の追加には実際の意味はありません。各キーを主キーとして指名される候補と見なしたため、Ted Coddによって提案されました)。

http://www.dcs.warwick.ac.uk/~hugh/M359/What-Is-a-Key.html

于 2012-09-24T20:34:40.227 に答える
1

ウィキペディアによると、候補キーはリレーションの最小限のスーパーキーであり、複数の属性で構成することができます。

リレーションに複数の候補キーがある場合があります。これらの候補キーのそれぞれが主キーになる可能性があります。これらの候補キーのそれぞれは、関係内の各タプルを一意かつ確実に識別します。

それらの(おそらくいくつかの)候補キーから、(いくつかの要件または他の要因に基づいて)主キーとして1つを選択します。

リレーションには主キーが1つしか存在できませんが、その主キーは複数の属性(テーブル列)で構成できます。

于 2012-09-23T18:30:07.850 に答える
1

ですから、あなたの質問から私が理解しているのは、DBMSで一般的に使用されている基本的な3つのキー(または4つ)について混乱しているということです。簡潔でわかりやすい言葉で説明してみます。

1)スーパーキー

テーブル内の各タプル(行)を一意に識別するために使用できる単一の属性または属性のセットは、スーパーキーと呼ばれます(多数のキーが存在する可能性があるため、多数のキーをスーパーキーと呼ぶことができると考えてください)。一意に識別できる属性の組み合わせ)-ただし、スーパーキー「UNIQUENESS」について1つだけ覚えておいてください。

2)候補キー(最小スーパーキー)

取得したすべてのスーパーキーから、すべての中で最も最小のキーを特定し始めます。これをさらに分解することはできず(属性の構成の観点から)、それらが分解されると、一意性が失われ、候補キーのカテゴリに分類されます。候補キー「UNIQUENESS」+「IRREDUCIBILITY」について1つ覚えておいてください。

3)主キー

残っているすべての候補キーから、テーブル内の任意の行を検索して主キーにするための最も最適な方法を選択します。他のすべての候補キーからどのキーを主キーにするかは、設計者が選択しますが、それでも、次のようないくつかのルールに従うことを好みます。

A)PKとして、テキストではなく数字を使用したキーを使用することをお勧めします。

B)データ所有者が制御できるキーを取得することをお勧めします。

C)長さが短いものをお勧めします。

d)そして、キーが存在する場合は、非複合キーを優先します。

これが概念を明確にするのに役立つことを願っています。

于 2017-09-04T19:01:10.603 に答える