主キーとは

こんにちは。伊川(@naonaoke)です。

今回は、ACCESSの主キーの説明をします。

主キー(しゅキー、英語:primary key)とは、関係データベースにおいて、組(レコード)の識別子として利用するのにもっとも好ましいものとして、関係(テーブル)毎にただ一つ設計者により選択・定義された候補キーをいう。
つまり、関係に格納されたレコードを一意に識別するための属性(列、アトリビュート)またはその集合のうち、そのために通常利用されるべき特定の一つをいう。

なんのこっちゃっていう話ですよね。なので、伊川なりの説明をします。

主キーは、このように、鍵のマークがつきます。

このブログはこんな人にお勧めです

・ACCESSの主キーを、いまいち理解できていない人
・ACCESSの主キーを設定できない人

ACCESSを理解するには、主キーの理解が必要不可欠

なぜ、主キーの設定ができないのか?

主キーが設定できない可能性は2つです。

・主キーに設定したい値が、重複している。

・主キーに設定したい値が空白になっている。

これしかありません。

主キーが設定できない原因と対策

通常は、Excelから、ACCESSへデータを移行します。

この時に、主キーが設定できないという現象が発生します。

データを継ぎ足してコピペをしていくとこのようなエラーが表示されます。


Excelのように毎日触っているものならまだしも、

最近操作をしようと思ったACCESSから、いきなり嫌われたような感じですよね。

そして、主キーは結局設定できず、ACCESSを諦めてしまうことになります。

エラーの意味

ACCESSはこう言っています。

「主キーに設定したくても、重複した値がるから、設定できません」


また、主キーが空白の場合は、このようなエラーになります。



なぜ、重複の値、空白の値につきて、主キーは設定できないのか?


上の図をみてください。

中央に記載しいてる、12345という数字をACCESSでいうところの、主キーとします。

この主キーは、住民台帳、社保台帳、納税台帳、マイナンバーを、主キーはですべて管理できます。

つまり、役所のデータベースをすべて、マイナンバー(主キー)で管理できるからです。

最近では、預金口座を作るときも、マイナンバーの提示が要求される場合があります。

そうなりますと、公的機関だけではなく、民間企業のデータベースも、マイナンバーで管理できます。

こんな便利なことはないと思います。

では、こんなケースではどうでしょうか?

Aさんの悩み
Aさんは、一人暮らしで86歳お母さんの家に週に3回、訪問をして、様子を確認しています。
しかし、最近、お母さんの体調が悪く、もっとお母さんの面倒を見たいのですが、仕事が忙しく、なかなか実家に帰れません。なにかいい方法はないか?

これは、主キーとデータベースを連携するとこで簡単に解決します。

電力会社のデータベースとマイナンバーのデータベースを連結させます。

解決策
毎朝9時30分までに電気ポットに電源が入らなければ、Aさんのスマホへ連絡がいく。

このような設定にしておけば、何かあるときに、Aさんはすぐにお母さんの側へ駆けつけることができます。

人間を番号で管理するには、いくつの問題はあるでしょう。

しかし、このような、一人暮らしの老人の状況をある程度管理できることや、

ほぼ、脱税は不可能になると思います。

スポンサーリンク

この問題から導けること

主キーの重複登録はできない

主キーが重複登録されると、人を特定できません。

12345というマイナンバーが、伊川直助を特定するはずが、Aさんのお母さんにも、12345というマイナンバーが登録されたとしたら、データベースを作成する意味がありません。

私が、不測の事態で、倒れたた場合、Aさんのスマホにも、おかあさんに不測の事態があったという連絡が行くからです。

※これは、マイナンバーを例にしているので、人の特定としています。

主キーは空白登録をゆるさない

伊川直助に、空白の主キーを割振ることはしません。

できなくはないでしょうが、意味がありません。

なぜならば、伊川直助のために、プログラム作成が難しくなるからです。

プログラムを作成するときに、空白を考えないということは、ものすごく楽なことのです。

だから、必ず、データ型(普通は、数値型)を決めて、そして、空白値を登録させないのです。

まとめ

現在、国民は、なんらかのデータベースに必ず登録されています。

例えば、免許証は、身元照会で必ず使うデータベースです。

ACCESSでつまずいた時は、身近なデータベースを例に考えてみてください。

きっと、みなさんの疑問を解決するヒントがあると思います。

※動画では、ACCESSの初期設定も解説していますが、ここでは、割愛させていただきます。

また今回のブログにサンプルファイルはありません。

 

スポンサーリンク

Twitterでフォローしよう

おすすめの記事