表の中から一つを探す時どこにあるのかわからない時がある。
そんな時にデータベース上には一つ一つを識別できる情報が含まれている。
それを主キー
という。
また表と表を関連付ける関係データベースで他の表を参照するときに他の表の主キーを参照する。
参照される主キーを外部キー
という。
主キーは行を特定する鍵のこと
各行を識別するために使う列を主キー
という。
主キーの条件は
- 表の中で内容が重複しないこと
- 内容が空ではないこと
一意性制約
主キーの値あは、重複がなく、ヌル(空値)は認められない。列中の値が重複しない性質のこと
複合キー
一つの列では一意にならないけど複数の列を組み合わせ
れば一意になる場合がある。
このように複数列を組み合わされる主キーを複合キー
という。
例 一つ家を特定するためには県と市町村と番地とアパート名等を書かなければ一意にならない。
外部キーは表と表をつなぐ鍵のこと
他の表と主キーを参照する列を外部キー
という。
他の表の主キーと対応させることによって紐づけることができる。
気づき
主キーと外部キーはプログラミングでも使われる。
改めて知れて良かった。
問題を解いた時の気づき
参照一貫性とは?
-
最初から最後まで矛盾がない状態
であること。同じ態度を持続すること。
参照一貫性とは参照するための関係を持続する事
です。
出典 https://teratail.com/questions/171032 -
参照整合性 (さんしょうせいごうせい、英: referential integrity) は、コンピュータの関係データベースの
関係モデルにおいて2つの関連しあった関係変数 (表、テーブル) の間の一貫性 (データ完全性)
をいう。 参照整合性は、多くの場合、主キーもしくは主キー以外の候補キーと、外部キーの、組み合わせにより、強制適用される
。 参照整合性が強制適用されると、外部キーが宣言された関係変数の外部キーを構成する属性 (列、カラム) の値は、その関係変数の親となる関係変数の主キーの値もしくは主キー以外の候補キーの値として存在しなければならない
。
出典 https://ja.wikipedia.org/wiki/%E5%8F%82%E7%85%A7%E6%95%B4%E5%90%88%E6%80%A7
候補キー
候補キーとは、リレーショナルデータベース(RDB)のテーブル内で、すべてのレコード(組/行)を一意に識別することができる項目(列/カラム)の組み合わせ
。この中から一つが「主キー」(primary key)に選ばれる。
すべてのレコードで値が異なることが保証されるような列や、値の組み合わせに重複が無い複数の列が該当する。例えば、通し番号や識別番号(ID)のように、データの性質上、重複しないことが明らかな列は単体で候補キーとなる
ことができる。
また、例えば、全社の各支店の課を一件ずつ登録した「課名」テーブルで「支店名」と「課名」は単体ではどちらもレコード間で重複しうるが、両者の組み合わせ(○○支店××課)は一意である。このような複数の列の複合をキーとすることもできる。
複合キーの場合、厳密には「いずれか一つが欠けても一意にならなくなる列の組み合わせ」のみ候補キーとなる
ことができる。このような性質を「既約」であると言う
。例えば、支店名と課名の他に「課長名」を加えても一意だが、これが無くても一意であることは変わらないため候補キーに加えることはできない。
候補キーのうち一つが、実際にレコードの識別に用いられる主キーとして設定される。主キーに選ばれなかった候補キーのことを「代替キー」(alternate key)
ということがある(「代替キー」という用語はサロゲートキーを指す場合もある)。候補キーに「値無し」(NULL値)を許容するかは諸説あるが、主キーにNULLは許容されないため、「主キーの候補である」とする立場では許容されないとなる
。
出典 https://e-words.jp/w/%E5%80%99%E8%A3%9C%E3%82%AD%E3%83%BC.html#:~:text=%E5%80%99%E8%A3%9C%E3%82%AD%E3%83%BC%20%E3%80%90candidate%20key%E3%80%91,primary%20key%EF%BC%89%E3%81%AB%E9%81%B8%E3%81%B0%E3%82%8C%E3%82%8B%E3%80%82
気づき
主キー、外部キー、複合キー、候補キーなど色々キーがあることがわかった。
主キーと外部キーしか知らなかった。
こうして調べることで他の複合キーや候補キーについて知ることができた。
良かった。
出典 キタミ式イラストIT塾 基本情報技術者 令和03年