この記事は、mysql に関する関連知識を提供します。MySQL のスーパー キー、主キー、候補キーの違いを主に紹介します。非常に参考になります。皆様のお役に立てれば幸いです。 . 役に立ちます。

#推奨学習:
mysql ビデオ チュートリアル
スーパー キー、主キー、候補キーの違いについて
最近、MySQL の本を読んでいるときに次のような疑問に遭遇しました:
主キーの概念はすでにあり、主キーはすでにニーズを満たすことができるのに、なぜまだ必要なのでしょうか候補キーのようなものですか?候補キーの役割は何ですか?候補となるキー定義が与えられていますが、実際には何もいじりません。
もっと詳しく知りたいという気持ちでネットで検索したり、マスターの解説を見たりしたのですが、まだ少し混乱していたので、よりわかりやすく理解するためにここで整理したいと思います。
また、誤解がある場合は、誰かが私にいくつかのヒントを与えてくれることを願っています これが私の理解の一部です:
実際には、主キーとスーパー キーの方が優れています。たとえば、次のような表があります。

#表の書き方が少し荒いので、ちょっと見てみましょう。
スーパー キー
リレーションシップ内のタプルを一意に識別できる一連の属性は、リレーショナル スキーマのスーパー キーと呼ばれます。定義内の「属性セット」に注意してください。スーパー キーは、どの行であるかを決定できる限り、大きなセットにすることができます。つまり、「id」、「user」、「pwd」、「section」、「name」スーパーキーのセットはすべて OK です。
候補キー
冗長な属性を含まないスーパーキー。たとえば、上記のスーパーキーでは、「id」が単独でどの行であるかを判断できるため、候補となりえます。 、それ以外の他の 4 つも候補キーになり得ますが、この 5 つは冗長な列があるためまとめられており、候補キーではありません。 (各列に重複したコンテンツが含まれている可能性があるため、他の 4 つは候補キーになる可能性があります)
主キー
すべての候補キーの中から 1 つを見つけて主キーとして使用します。選択されたセットを一意に決定できることが保証できる限り、ID、または他の 4 つの組み合わせ、またはその他の選択肢。
要約すると、候補キーはスーパー キーのサブセットであり、主キーは候補キーのサブセットです。
実のところ、ここまで整理しても、候補キーの機能がまだわかりません。実際には、待合室のようなものかもしれません。車内には座席が 1 つだけ残っています。 , 待合室にはいくつかの主キーがあるので、座って次のように言います。「私たちは全員チケットを購入しており、全員がバスに乗る資格があります。あなたがバスに乗る人を選んだ人は、あなたと一緒にバスに乗ります。」 「それもそのはずだ。
スーパー キー、候補キー、主キーの概念と関係を理解する
基本概念
スーパー キー: 関係内のタプルを一意に識別するキー属性のセットは、リレーショナル スキーマのスーパーキー/キーと呼ばれます。 - 候補キー: 冗長な属性を含まないスーパーキーは候補キーと呼ばれます。つまり、その真のサブセットはスーパーキーではなくなります。
- 主キー: タプル識別子としてユーザが選択した候補キーを主キーと呼び、候補キーの一つです。
-
関係
候補キーはスーパーキーのサブセットであり、主キーは候補キーの 1 つです。
例として、
重複する名前がないことを前提として、属性セット (ID 番号、名前、性別、年齢) を考えてみましょう
a. スーパー キーは:
ID 番号、名前、(名前、性別)、(名前、性別、年齢) などです。- --ここで、スーパー キーは個人の属性グループ
-
b を一意に決定できます。b. スーパー キー
内の候補キーは ID 番号と名前が一意であり、したがって、これは候補キーです。- --ここで、候補キーは冗長属性のないスーパー キーであることがわかります。
-
c.主キーの選択
ユーザーは、好みに応じて主キーとして自分の名前または ID 番号を選択できます- --主キーは、選択された候補キーです# ##################まだ理解できませんか?
-
例:
SQL Server データベースには、次のような学生情報テーブルがありますが、このテーブルの候補キーとして使用できない属性のセットは、は ( ) ( 1 つ選択してください)
学籍名 性別 年齢 学科専攻
20020612 李恵南 20 コンピュータ ソフトウェア開発
20060613 張 明南 18 コンピュータ ソフトウェア開発
20060614 王暁宇 女性19 物理力学 20060615 Li Shuhua 女性 17 生物動物学
20060616 Zhao Jingnan 21 化学食品化学
20060617 Zhao Jing 女性 20 生物植物学
a) {学生 ID }
b) {学籍番号、名前}
c) {年齢、所属}
d) {名前、性別}e) {名前、専攻}
# # 推奨される学習:
mysql ビデオ チュートリアル
以上がMySQLにおけるスーパーキー、主キー、候補キーの違いの解析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。