7種類のDBMSのキーの説明
公開: 2021-03-12目次
DBMSのキーは何ですか?
DBMSのキーは、リレーション(またはテーブル)内のタプル(または行)を一意に識別するのに役立つ属性または属性のセットです。 キーは、リレーショナルデータベースのさまざまなテーブルと列の間の関係を確立するためにも使用されます。 キー内の個々の値は、キー値と呼ばれます。
このブログでは、DBMSのキーと属性のクロージャーについて知っておく必要のあるすべてをカバーしています。 任意の関係のキーを見つけます(テーブル)。 DBMSのキーに関するいくつかの重要なGATEの質問については、記事の最後まで固執してください。
なぜキーが必要なのですか?
キーは、さまざまな種類の整合性制約の定義で使用されます。 データベース内のテーブルは、特定のリレーションのレコードまたはイベントのコレクションを表します。 現在、そのようなレコードは何千も存在する可能性があり、そのうちのいくつかは重複している可能性があります。
各レコードを個別に一意に識別する方法が必要です。つまり、重複がないようにする必要があります。 キーを使用すると、この煩わしさから解放されます。
工学部で勉強している各学生のデータベースの実際の例を見てみましょう。
生徒のどの属性がそれぞれを一意に識別すると思いますか? 名前、部門、年、セクションを使用して学生を参照できます。 または、学生の大学のロール番号のみを言及することができ、そこから他のすべての詳細を取得できます。
キーは、複数の属性(または複数の列)の組み合わせ、または単一の属性のいずれかです。 これの主な動機は、各レコードに一意のIDを与えることです。
また読む: DBMSとRDBMS
DBMSのキーの種類
DBMSには、大きく7種類のキーがあります。
- 主キー
- 候補キー
- スーパーキー
- 外部キー
- コンポジットキー
- 代替キー
- ユニークキー
それぞれを別々に見てみましょう。
1.主キー
主キーは、テーブルの列またはそのテーブルに存在するすべてのレコードを一意に識別するのに役立つ列のセットです。 テーブルには主キーを1つだけ含めることができます。 また、主キーは、どの行に対しても同じ値を繰り返すことはできません。 主キーのすべての値は、繰り返さずに異なっている必要があります。
列または列のセットに設定されたPRIMARYKEY(PK)制約は、それらがNULL値または重複を持つことを許可しません。 1つのテーブルに含めることができる主キー制約は1つだけです。 主キーの値は、それを参照する外部キー(以下で説明)によって変更することはできません。
2.スーパーキー
スーパーキーは、テーブル内の行を一意に識別するのに役立つすべてのキーのセットです。 これは、テーブルの他の列を一意に識別できるよりも、テーブルのすべての列がすべてスーパーキーと見なされることを意味します。
スーパーキーは、候補キーのスーパーセットです(以下で説明します)。 テーブルの主キーは、テーブルのID属性となるスーパーキーセットから選択されます。
3.候補キー
候補キーは、テーブルの行を一意に識別する属性です。 テーブルの主キーは、候補キーの1つから選択されます。 したがって、候補キーは、上記で説明した主キーと同じプロパティを持ちます。 テーブルには複数の候補キーが存在する可能性があります。
4.代替キー
上記のように、テーブルには主キーに対して複数の選択肢があります。 ただし、選択できるのは1つだけです。 したがって、主キーにならなかったすべてのキーは代替キーと呼ばれます。
5.外部キー
外部キーは、2つのテーブル間の関係を確立するために使用されます。 外部キーは、参照テーブルの主キーと一致するように、列または列のセットの各値を必要とします。 外部キーは、データと参照整合性を維持するのに役立ちます。
6.複合キー
複合キーは、テーブル内の各タプルを一意に識別するのに役立つ2つ以上の属性のセットです。 セット内の属性は、個別に検討した場合、一意でない場合があります。 ただし、すべてをまとめると、一意性が保証されます。
7.一意のキー
一意キーは、テーブル内の各レコードを一意に識別する列または列のセットです。 このキーでは、すべての値が一意である必要があります。 一意キーは主キーとは異なり、null値を1つしか持てませんが、主キーはnull値を持てません。
機能従属性
DBMSのさまざまな種類のキーがわかったので、データベースからテーブルを指定したときにそれらを識別する方法を見てみましょう。 このために、関数従属性の概念を使用します。
関数従属性(FD)は、2つの属性セット間の制約です。 この制約は、t1 [X] = t2 [X]の場合、rの任意の2つのタプルt1とt2に適用され、t1 [Y] =t2[Y]になります。 これは、タプルのXコンポーネントの値が、コンポーネントYの値を一意に決定することを意味します。
FDはX? Y(これは「Yは機能的にXに依存している」と解釈されます)。 左側は行列式と呼ばれ、右側は行列式と呼ばれます。
属性セットの閉鎖
クロージャーは、特定のFDのセットから派生したすべての可能なFDのセットです。 FDの完全なセットとも呼ばれます。 Fを使用して関係RのFDのセットを提供する場合、Fによって暗示されるFDのセットのクロージャはF+で示されます。
ここで、特定のFDのセットに関する属性のセットのクロージャを定義します。 これは、関係のスーパーキーを識別し、FDが特定のFDのセットから推測できるかどうか、またはFDが冗長であるかどうかを確認するのに役立ちます。 リレーションの機能依存性のセットを見つけたら、次のステップはそのリレーション(テーブル)のスーパーキーを見つけることです。
次に、属性のセットのクロージャを見つけて、任意のテーブルの属性(または属性のセット)がそのテーブルのキーであるかどうかを判断します。 属性Xに機能的に依存する属性のセットは、Xの属性クロージャーと呼ばれ、X+として表すことができます。
以下は、F+を決定するために必要ないくつかのルールです。
- 再帰性: XがYのスーパーセットであるか、YがXのサブセットである場合、X? Y。
- 増強: Xの場合? Y、次にXZ? YZ。 またはZ⊆W、およびXの場合? Y、次にXW? YZ。
- 推移性: Xの場合? YとY? Z、次にX? Z。
- ユニオン: Xの場合? YとX? Z、次にX? YZ。
- 分解: Xの場合? YZ、次にX? YとX? Z。
- 疑似推移性: Xの場合? YとYW? Z、次にXW? Z。
属性クロージャを使用して候補キーとスーパーキーを見つける方法は?
- 属性セットの属性クロージャにリレーションのすべての属性が含まれている場合、属性セットはリレーションのスーパーキーになります。
- この属性セットのサブセットがすべての関係属性を機能的に決定できない場合、そのセットが候補キーになります。
属性クロージャのアプリケーションを確認するために、以前に尋ねられたGATEのいくつかの質問について説明しましょう。
GATE 2014
関係スキームR={E、F、G、H、I、J、K、L、M、N}と関数従属性のセット{{E、F}? {G}、{F}? {I、J}、{E、H}? {K、L}、K? {M}、L? Rの{N}。Rの鍵は何ですか?
(A) {E、F}
(B) {E、F、H}
(C) {E、F、H、K、L}
(D) {E}
アプローチ:提供されたすべてのオプションの属性クロージャを確認します。 閉包によって関係R全体が得られる集合が正解になります。
A:{E、F} +={EFGIJ} ≠R
B:{E、F、H} + = {EFGHIJKLMN} = R
C:{E、F、H、K、L} + = {EFGHIJKLMN} = R
D:{E} +={E} ≠R
オプションBとCの両方で、関係スキーム全体が得られます。 ただし、候補キーは最小のスーパーキーである必要があるため、正解となる最小のオプションを選択します。
答え: B
GATE 2013
リレーションRには8つの属性ABCDEFGHがあります。 Rのフィールドには、アトミック値のみが含まれます。 F = {CH? G、A? BC、B? CFH、E? A、F? EG}は機能従属性(FD)のセットであるため、F+はまさにRを保持するFDのセットです。
関係Rにはいくつの候補キーがありますか?
(A) 3
(B) 4
(C) 5
(D) 6
アプローチ:質問で与えられた各関数従属性のLHSを取得し、それらの属性クロージャを見つけます。
CH + = G
A + = ABCEFGH
B + = ABCEFGH
E + = ABCEFGH
F + = ABCEFGH
したがって、A、B、E、Fのクロージャには、属性Dを除くすべての関係があることがわかります。したがって、合計4つの候補キーAD、BD、ED、およびFDがあります。
回答:B
世界のトップ大学からオンラインでソフトウェアコースを学びましょう。 エグゼクティブPGプログラム、高度な証明書プログラム、または修士プログラムを取得して、キャリアを早急に進めましょう。
結論
キーと機能の依存関係は、データベースの設計において非常に重要な役割を果たします。 これらの概念は、データベース設計の良い点と悪い点の違いを見つけるのにも役立ちます。 冗長性を取り除き、データベースを効率的にする最後のプロセスは正規化です。これは、この記事で説明したすべての概念を使用します。
フルスタック開発の詳細に興味がある場合は、upGrad&IIIT-Bのフルスタックソフトウェア開発のエグゼクティブPGプログラムをチェックしてください。これは、働く専門家向けに設計されており、500時間以上の厳格なトレーニング、9以上のプロジェクトを提供します。および割り当て、IIIT-B卒業生のステータス、実践的な実践的なキャップストーンプロジェクト、およびトップ企業との雇用支援。
DBMSのさまざまな種類のキーは何ですか?
データベースで使用されるキーにはいくつかの種類があります。 主キーは、テーブル内の特定の行を識別するために使用されます。 一意のキーは、特定のテーブルにエントリが1つだけであることを確認するために使用されます。 外部キーは、あるテーブルのエントリを別のテーブルにリンクするために使用されます。 複合キーは、テーブル内のいくつかの列のコレクションであり、すべて一緒に行を識別するために使用されます。 これらのキーは、テーブルの行の特定の列を正確かつ一意に識別するのに役立ちます。 したがって、ユースケースに従って、正確な列をキーとして使用することが非常に重要です。
DBMSの外部キーとは何ですか?
外部キーは、あるテーブルの行を別のテーブルの行にリンクするために使用される列または列のセットです。 データの不整合を防ぐために使用されます。 DBMSでは、外部キーは単一の列または列のセット(論理列)を使用して実装され、DBMSはこれらの列の値が参照される列の値(主キー)と一致することを確認します。 たとえば、テーブルAとテーブルBの両方に列Aという列があるとします。テーブルAの列AはテーブルBの列Aを参照していると言えます。これは、外部キー値がを指す矢印として想像できます。ターゲットテーブル。
DBMSの複合キーとは何ですか?
複合キーはスーパーキーです。 これは、1つ以上の列の組み合わせです。 これにより、異なる列の組み合わせから単一のキーを作成できます。 複合識別子、複合キー、または複合キーとも呼ばれます。 つまり、行を一意に識別できる単一の列がない場合は、一連の列を使用してテーブル内の一意の行を識別することができます。 このような場合、使用するすべての列のセットが複合キーと見なされます。 したがって、主キーの列が複数あることは当然のことながら、複合キーに名前が変更されています。