「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

自然キー

pointこの用語のポイント

pointデータベースのキーだよ

pointデータを一意に識別するための項目だよ

point項目自体にも意味があるよ(主キーじゃなくても必要だよ)

スポンサーリンク

簡単に書くよ

自然キー(読:シゼンキー 英:natural key)とは

「ナチュラルキー」のこと。
用語の中身としては

主キー(データの出席番号として使われる項目、データを一意に特定するための項目)の分類のひとつ
であり

すでにある項目を「よし!この項目を主キーとして使おう!」と決めて設定した主キーのこと
です。
言い方を変えると

(主キー用にわざわざ用意した項目ではなく)それ自体が意味を持つ項目を使った主キーのこと
です。


image piyo

詳しく書くよ

順番に見ていきましょう。
まずは予備知識として

データベース
テーブル
キー
レコード
一意
主キー


について結構ガッツリ説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。

データベースは「データを入れておく箱」です。

自然キー

ただし「データベース」という用語は、実際には もう少し複雑な概念です。
データを入れておく箱そのものは「テーブル」と言います。

自然キー2

とりあえず

データベースの話において、実際にデータを入れておく箱がテーブル

と覚えてください。

キーは「データベース(のテーブル)において何かのカギになりそうな項目」です。

自然キー3

データベース(のテーブル)は表形式のイメージで表現されるのが一般的です。

自然キー4

この表において、何か特別な意味を持たされた項目を「キー」や「キー項目」と呼びます。

自然キー5

レコードは行列で表現される表の「行」です。

自然キー6

ただし、今回は「データベースに入っているデータ(行)」と解釈してください。

繰り返しになりますが、データベース(のテーブル)は表形式のイメージで表現されるのが一般的です。
例えば以下のような形です。

名前性別年齢
ピヨ太成人済み
ピヨ子永遠の17歳
ピヨ太ママ心は乙女


この表には、ピヨ太君、ピヨ子さん、ピヨ太ママの3人分のデータが入っています。
名前と性別と年齢のセットで1行です。

この表におけるそれぞれの行、名前と性別と年齢のセットがレコードです。

さて、ここで考えてみてください。

1行には1人分のデータが入っています。
1行で1件のデータです。

そのため、データベース(のテーブル)にしまったデータそのものを指して「レコード」と表現する場合も あります。

例えば、データベース(のテーブル)にデータを入れることを指して「レコードを作る」と言ったりします。
あるいは「2件以上のデータ」を意図して「複数レコード」と表現する場合も あります。

基本的には「行」の意味ですけどね。
「データ1件」を意図する場合もあるのです。
一応、頭の片隅にでも置いておいてあげてください。

自然キー7

一意の意味は「重複しないよ~」です。
すべてのデータがオンリーワンだったら「一意である」と言えます。

自然キー8

主キーは「データを一意に識別するために使われる項目」です。

「一意に識別」とか書いてあると難しそうに見えますが、恐れる必要は ありません。
データの出席番号みたいなイメージです。

自然キー9

出席番号は生徒を特定するために使う番号です。
例えば、ピヨ太君の出席番号が「男子1番」でした。
ピヨ子さんは「女子2番」です。

自然キー10

おっと、大変です。
ピヨ太ママ先生から「男子1番!今すぐ職員室に来なさい!」と呼び出しが ありました。

自然キー11

出席番号が「男子1番」の生徒はピヨ太君ですよね。
出席番号を見れば、どの生徒を指しているか分かります。

自然キー12

それと同じです。
「主キーの値が○○なデータ!」と言えば「あっ、このデータ(行、レコード)だな」と判断できるのです。

自然キー13

項目を主キーとして使うには

1.中身が空ではない
2.中身が一意である


の条件を満たしている必要があります。

これも出席番号をイメージすると分かりやすいと思います。

出席番号が空だったら困りますよね。
「出席番号:(空)」なのか「出席番号:(未割当)」なのか判断できません。
だから

1.中身が空ではない

という条件があります。

自然キー14

また、同じ出席番号の人が2人以上いたら困りますよね。
「出席番号○○番の人!」と呼ばれたときに、どっちが呼ばれたか判断できません。
だから

2.中身が一意である

という条件があります。

自然キー15

以上を踏まえて、本題に入ります。

主キーを設定するときは

1.すでにある項目を主キーとして使う
2.主キー専用として使う項目を新たに追加する


のどちらかにするのが普通です。

例えば、テーブルの中身が以下の内容だったとしましょう。
書いてある内容はピヨピヨカンパニーの社員名簿です。

社員番号名前趣味
1ピヨ太昼寝
2ピヨ子おやつ
3ピヨ太ママ内緒


これらの項目のうち「社員番号」は主キーとして使う条件を満たしています。
「使えるなら使えば良いじゃない」と考えて「社員番号」に対して「主キーとして使いますよ」設定をするのが

1.すでにある項目を主キーとして使う

です。

社員番号【主キー】名前趣味
1ピヨ太昼寝
2ピヨ子おやつ
3ピヨ太ママ内緒


自然キー16

それに対して、新しく主キー用の項目「ID」を追加し、追加した「ID」に対して「主キーとして使いますよ」設定をするのが

2.主キー専用として使う項目を新たに追加する

です。

社員番号名前趣味ID【主キー】
1ピヨ太昼寝1
2ピヨ子おやつ2
3ピヨ太ママ内緒3


自然キー17

この2つのやり方のうち

「1.すでにある項目を主キーとして使う」やり方で作った主キー

が「自然キー」です。

自然キー18

自然キーは「ナチュラルキー」と表現されることも あります。
……というか、個人的には「ナチュラルキー」という呼び方の方が馴染みがあります。

自然キー19

あと、ついでなので書いておくと

「2.主キー専用として使う項目を新たに追加する」やり方で作った主キー

は「人工キー」や「サロゲートキー」などと呼ばれます。

自然キー20

気が向いたら、併せて覚えてあげてください。

自然キー(ナチュラルキー):すでにある項目を使った主キー
人工キー(サロゲートキー):主キー専用項目を追加して作った主キー


です。


image piyo2

一言でまとめるよ

まぁ「自然キー」って単語が出てきたら「すでにある項目を主キー(データの出席番号として使われる項目、データを一意に特定するための項目)にした主キーなんだな~」と お考えください。

一番上に戻るよ
スポンサーリンク
書籍画像038
書籍画像015

おまけ

■訳してみるよ

「自然」は日本語ですね。
「key(キー)」の意味は「鍵」とか「重要な」とかです。
何となく くっつけると

自然の鍵

となります。


■検索してみる?




書籍画像
わわわ説明術コラム
宣伝だよ
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本【Audible】
エンジニア育成現場の「失敗」集めてみた。 42の失敗事例で学ぶマネジメントのうまい進めかた
実践サイバーセキュリティ入門講座 現場に残された痕跡からハッカーの攻撃を暴け