ホームページ  >  記事  >  データベース  >  データベースにおけるスーパーキー、主キー、外部キーなどの定義と使い方を詳しく解説

データベースにおけるスーパーキー、主キー、外部キーなどの定義と使い方を詳しく解説

藏色散人
藏色散人オリジナル
2018-09-05 15:09:364594ブラウズ

この記事では主に、MySQL データベースにおけるスーパー キー、候補キー、主キー、主属性、および外部キーの具体的な定義と使用法を紹介します。以下の内容の詳細な説明については、PHP 中国語 Web サイトのMySQL ビデオ チュートリアル および MySQL マニュアル も参照してください。

まず、さまざまなキーの定義を見てみましょう:

スーパーキー: 関係内のタプルを一意に識別できる属性のセットは、リレーショナルパターンのスーパーキーと呼ばれます

候補キー: 冗長なスーパーキーは含まれません属性の主キーと呼ばれます。 リレーショナル スキーマ R1 に設定されている特定の属性が、R1 の主キーではない場合に、ユーザーがタプル識別子として選択した候補キー。が別のリレーションシップ R2 の主キーである場合、属性セットはリレーションシップ スキーマ R1 の外部キーになります。

例付きの詳細な説明:


次の 2 つのテーブルがあるとします:

学生(学号,姓名,性别,身份证号,教师编号)
教师(教师编号,姓名,工资)

スーパー キー:

スーパー キーの定義から、学生テーブル内の学生番号または ID 番号の任意の組み合わせがわかります。これはスーパーキーのテーブルです。例:(学籍番号)、(学籍番号、名前)、(IDカード番号、性別)など。

候補キー:

候補キーは、最小のスーパーキーです。つまり、候補キーの属性が削除されると、それはスーパーキーではなくなります。学生テーブルの候補キーは、(学生番号)、(ID カード番号) です。

主キー:

主キーは、人為的に指定された候補キーの 1 つです。たとえば、生徒テーブルでは通常「生徒番号」を主キーとして使用し、教師テーブルでは「教師」を主キーとして使用します。数値」が主キーとして使用されます。

外部キー:

学生テーブルの外部キーは比較的単純です。外部キーは主に 2 つのテーブル間の関係を記述するために使用されます。

主属性と主キー

厳密に言うと、主属性: 主キー列を指します。つまり、主キーは 1 つの列で構成されます。主キー定義: タプルを一意に識別できる属性または属性のセット。つまり、複数の列で構成できます。

ほとんどの教育例では、主キーは 1 つの列で構成されているため、単純に主属性と主キーに違いはないと言えます。

第一正規形 (1NF)


第一正規形は、データベース テーブルの各列が分割できない基本データ項目であることを意味します。同じ列に複数の値を含めることはできません。つまり、エンティティ内の属性は持つことができません。複数の値を使用したり、属性を繰り返したりすることはできません。これが第 1 正規形の基本概念です。

これはどういう意味ですか? たとえば、テーブルに「電話」フィールドがあり、その値に携帯電話番号と固定電話番号の両方が含まれている場合、これは最初のパラダイムの要件を満たしません。このとき、「電話」を「携帯電話」と「固定電話」に分割する必要があります。これが最初のパラダイムに準拠したデータテーブルになります。

概要: フィールドを分割することはできません。

第 2 正規形 (2NF)

第 2 正規形は、第 1 正規形に基づいて確立されます。つまり、第 2 正規形を満たすには、まず第 1 正規形を満たす必要があります。第 2 正規形では、データベース テーブル内の各インスタンスまたは行を一意に区別できる必要があります。差別化を実現するには、通常、各インスタンスの一意の ID を格納する列をテーブルに追加する必要があり、エンティティの属性が主キーに完全に依存する必要があります。テーブル シンボルが第 2 正規形に準拠していないかどうかを議論するための前提は、テーブルの主キーが複合主キーである場合、それが複合主キーでない場合、シンボルが準拠していないとは言えません。第 2 正規形を使用します。

概要: 部分的な依存は許可されません。つまり、テーブルに複合主キーがある場合、他の非主キー フィールドは主キーに完全に依存する必要があります。

第 3 正規形 (3NF)

第 3 正規形は、第 2 正規形に準拠する必要があります。つまり、他のデータ テーブルの非主キー フィールドがデータ テーブルに存在できないことを意味します。他のテーブルのフィールドである場合、そのテーブルの主キーである必要があります。

テーブルに 3 つのフィールド a b c、a—>b b—>c があるとします。 この場合、c と a は推移的な依存関係となり、第 3 正規形に準拠しません。そして、a が c を直接決定できるかどうかに関係なく、これは推移的な依存関係であるため、b と c だけが第 3 正規形に準拠するために a 以外の体に依存しません。

概要: 推移的な依存関係は存在できません。つまり、主キー以外のフィールドは主キーに依存する必要があり、他のフィールドに依存することはできません。

以上がデータベースにおけるスーパーキー、主キー、外部キーなどの定義と使い方を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。