web-dev-qa-db-ja.com

RDBMSのキーの種類は何ですか?

RDBMSのキーの種類は何ですか?回答に例を含めてください。

29
sikender

here および here から:(タイトルをグーグルで検索した後)

  • 代替キー-代替キーは、プライマリキーとして選択されていない候補キーです。
  • 候補キー-候補キーは、そのテーブルの各レコードを一意に識別するためにそのテーブルの主キーフィールドとして機能できるフィールドまたはフィールドの組み合わせです。
  • 複合キー-複合キー(複合キーまたは連結キーとも呼ばれます)は、2つ以上の属性で構成されるキーです。
  • 主キー-主キーは、テーブル内の一意の行を識別するために使用できる値です。属性がそれに関連付けられています。主キーの例は、社会保障番号(特定の人に関連付けられている)またはISBN(特定の本に関連付けられている)です。データのリレーショナルモデルでは、プライマリキーは、リレーション内のタプルを一意に識別する主な方法として選択された候補キーです。
  • スーパーキー-リレーショナルモデルでは、リレーション変数(relvar)の属性のセットとしてスーパーキーが定義され、その変数に割り当てられたすべてのリレーションには、このセットの属性。同様に、スーパーキーは、relvarのすべての属性が機能的に依存するrelvarの属性のセットとして定義することもできます。
  • 外部キー-外部キー(FK)は、ある(通常は異なる)テーブル内の別のデータベースレコードのキーを形成するキーフィールドまたはフィールドグループを指すデータベースレコード内のフィールドまたはフィールドグループです。通常、1つのテーブルの外部キーは、別のテーブルのプライマリキー(PK)を参照します。このようにして、情報を一緒にリンクするために参照を行うことができ、データベースの正規化の重要な部分です。
21
Ólafur Waage

(I)スーパーキー –レコードを一意に識別するために使用される属性または属性の組み合わせは、スーパーキーと呼ばれます。テーブルには多くのスーパーキーを含めることができます。

例えば。スーパーキーの

  1. ID
  2. ID、名前
  3. ID、住所
  4. ID、Department_ID
  5. ID、給与
  6. 名前、住所
  7. 名前、住所、Department_ID

したがって、レコードを一意に識別できる任意の組み合わせがスーパーキーになります。

(II)候補キー –最小限のスーパーキーまたは既約スーパーキーとして定義できます。言い換えると、レコードを一意に識別する属性または属性の組み合わせですが、適切なサブセットではレコードを一意に識別できません。

例えば。候補キーの

  1. ID
  2. 名前、住所

上記のテーブルの場合、テーブルのレコードを一意に識別するために使用される候補キー(つまり、既約スーパーキー)は2つだけです。 IDキーはレコードを一意に識別でき、同様に名前と住所の組み合わせでレコードを一意に識別できますが、名前も住所もレコードを一意に識別するために使用することはできません。同じ家。

(III)プライマリキー –テーブル内の各行を一意に識別するためにデータベース設計者が使用する候補キーは、プライマリキーと呼ばれます。主キーは、テーブルの1つ以上の属性で構成できます。

例えば。の主キー-データベース設計者は、候補キーのいずれかを主キーとして使用できます。この場合、候補キーとして「ID」と「名前、住所」があります。他のキーは複数の属性の組み合わせであるため、「ID」キーを主キーと見なします。

(IV)外部キー –外部キーは、別のテーブルの候補キー(通常は主キー)を指す1つのベーステーブル内の属性または属性の組み合わせです。外部キーの目的は、データの参照整合性を確保することです。つまり、データベースに表示されるはずの値のみが許可されます。

例えば。外部キーの–別のテーブル、つまり、Department_IDを主キーとする属性「Department_ID」、「Department_Name」、「Manager_ID」、「Location_ID」を持つDepartmentテーブルがあるとします。 Employeesテーブル(従属テーブルまたは子テーブル)のDepartment_ID属性は、Departmentsテーブル(参照または親テーブル)のDepartment_ID属性を参照できるため、外部キーとして定義できます。外部キーの値は、親テーブルまたはNULL。

(V)複合キー –複数の属性を使用して主キーを作成する場合、その主キーは複合キー(複合キーまたは連結キーとも呼ばれます)と呼ばれます。

例えば。複合キーの場合、「名前、住所」を主キーとして使用した場合、それは複合キーになります。

(VI)代替キー –代替キーは、主キーを除く任意の候補キーにすることができます。

例えば。代替キーの「名前、住所」は、プライマリキーではない唯一の他の候補キーであるためです。

(VII)セカンダリキー –スーパーキーでもないが、レコードの識別に使用できる(一意ではない)属性は、セカンダリキーと呼ばれます。

例えば。セカンダリキーは、レコードを識別できますが、一意ではない可能性があるため、名前、住所、給与、Department_IDなどにすることができます。

82
Shuaib

ラファーは サロゲートキー を忘れました:

データベース内の代理キーは、モデル化された世界のエンティティまたはデータベース内のオブジェクトの一意の識別子です。代理キーは、アプリケーションデータから派生したものではありません。

9
Juha Syrjälä

一意のキーも存在します。 PRIMARY KEYとUNIQUE KEYの主な違いは、UNIQUE KEYがNULL値をとることがありますが、PRIMARY KEYは決してNULL値をとらないことです。また、UNIQUE KEYが複数ある場合、テーブルにはPRIMARY KEYが1つしか存在できません。

6

サロゲートキーもあります。1つの非プライム属性が別の非プライム属性に依存する場合に発生します。そのとき、テーブルを分割する主キーとしてどのキーを選択する必要はありません。その場合は、主キーの代わりに代理キーを使用してください。通常、このキーはシステム定義であり、常に数値を持ち、その値は多くの場合、新しい行に対して自動的に増分されます。例:ms acces =自動番号&my SQL = ID列&Oracle =シーケンス。

1
suresh subbu

部分キー:

これは、弱いエンティティを一意に識別でき、同じ所有者エンティティに関連する属性のセットです。 Discriminatorと呼ばれることもあります。

代替キー:

主キーを除くすべての候補キーは、代替キーと呼ばれます。

人工キー:

スタンドアロンまたは複合の明らかなキーが利用できない場合、最後の手段は、各レコードまたはオカレンスに一意の番号を割り当てることにより、単にキーを作成することです。そして、これは人工キーの開発として知られています。

複合キー:

コンストラクト内のオカレンスを一意に識別する単一のデータ要素がない場合、複数の要素を組み合わせてコンストラクトの一意の識別子を作成することは、複合キーの作成と呼ばれます。

自然キー:

構造内に格納されたデータ要素の1つが主キーとして利用される場合、それは自然キーと呼ばれます。

1
vjkatta

インターネットから読んでいる間、私が通常維持しているメモを共有し、それが誰かに役立つことを願っています

候補キーまたは利用可能なキー

候補キーは、テーブルの主キーの候補となるキーです。簡単な言葉で言えば、nullではなく、一意のレコードを持つ主キーのすべての要件を完全に満たすタイプのキーは、主キーの候補であることがわかります。したがって、キーのタイプは候補キーと呼ばれます。すべてのテーブルには少なくとも1つの候補キーが必要ですが、同時に複数の候補キーを持つことができます。

主キー

テーブルの主キーとして選択されるこのようなタイプの候補キーは、主キーと呼ばれます。主キーは、テーブルを識別するために使用されます。テーブルごとに1つの主キーのみがあります。 SQL Serverでは、テーブルの主キーを作成すると、その列にクラスター化インデックスが自動的に作成されます。

Foreign Key

外部キーは、2つのテーブル間の関係を定義するために使用されるキーです。 2つのテーブル間のリレーションシップを実装する場合は、外部キーの概念を使用します。参照整合性とも呼ばれます。テーブルごとに複数の外部キーを作成できます。外部キーは通常、1つのテーブルの主キーであり、最初のテーブルが2番目のテーブルとリレーションシップを持つ別のテーブルのフィールドとして表示されます。言い換えると、XがBのフィールドであるテーブルBにリンクする主キーXを持つテーブルAがある場合、XはBの外部キーになります。

代替キーまたはセカンダリ

テーブルに複数の候補キーがある場合、それらの候補キーから主キーを選択すると、残りの候補キーはそのテーブルの代替キーと呼ばれます。ここのように、代替キーの概念を理解するために非常に単純な例を取り上げることができます。 EmpIDとEmpMailの2つの列を持つEmployeeという名前のテーブルがあり、両方ともnull属性と一意の値を持たないとします。したがって、両方の列が候補キーとして扱われます。次に、EmpIDをそのテーブルの主キーとして作成し、EmpMailを代替キーと呼びます。

複合キー

複数の列にキーを作成する場合、そのキーは複合キーと呼ばれます。このように、この機能を理解するために例を挙げることができます。 SidとSrefNoの2つの列を持つテーブルStudentがあり、これら2つの列に主キーを作成します。このキーは複合キーと呼ばれます。

ナチュラルキー

自然キーは、ビジネスコンセプトに固有の1つ以上の既存のデータ属性です。 Customerテーブルには2つの候補キーがあり、この場合はCustomerNumberとSocialSecurityNumberです。リンク http://www.agiledata.org/essays/keys.html

代理キー

代理キーと呼ばれる新しい列を導入します。これはビジネス上の意味を持たないキーです。その例は、図1のアドレステーブルのAddressID列です。アドレスには、「簡単な」自然キーがありません。アドレステーブルのすべての列を使用して、それ自体のキーを形成する必要があるためです。問題のドメインに応じてStreetとZipCodeの組み合わせだけで逃げることができます)、したがって、この場合は代理キーを導入する方がはるかに優れたオプションです。リンク http://www.agiledata.org/essays/keys.html

一意のキー

一意のキーはスーパーキーです。つまり、データベース編成のリレーショナルモデルでは、その変数に割り当てられたすべてのリレーションで、2つの異なるタプル(行)が存在しないリレーション変数の属性のセットです。このセットの属性に同じ値があります

集計または複合キー

複数の列が結合されて一意のキーを形成する場合、結合された値を使用して各行にアクセスし、一意性を維持します。これらのキーは、集約キーまたは複合キーと呼ばれます。値は結合されず、データ型を使用して比較されます。

シンプルキー

1つの属性のみから作成された単純なキー。

スーパーキー

スーパーキーは、関係変数(relvar)の属性のセットとしてリレーショナルモデルで定義され、その変数に割り当てられたすべての関係には、属性の値が同じである2つの異なるタプル(行)がないことを保持しますこのセット。同様に、スーパーキーは、relvarのすべての属性が機能的に依存するrelvarの属性のセットとして定義することもできます。

部分キーまたは識別キー

これは、弱いエンティティを一意に識別することができ、同じ所有者エンティティに関連する属性のセットです。 Discriminatorと呼ばれることもあります。

0