ホームページ  >  記事  >  データベース  >  MySQLにおけるスーパーキー、主キー、候補キーの違いの解析

MySQLにおけるスーパーキー、主キー、候補キーの違いの解析

WBOY
WBOY転載
2022-08-01 15:08:321875ブラウズ

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

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 サイトの他の関連記事を参照してください。

声明:
この記事はjb51.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。