primaryKeyとは? わかりやすく解説

Weblio 辞書 > コンピュータ > IT用語辞典 > primaryKeyの意味・解説 

主キー

読み方しゅきー
別名:プライマリキー
【英】primary key

主キーとは、関係データベースの表において、行を一意識別するために選択された列である。

関係データベースではデータ2次元の表として取扱い、この表の縦方向を列、横方向を行と呼ぶ。縦方向の列を他の列と区別するのに用いられるものが列名であるように、主キーを用いて横方向の行を他の行と一意区別する

主キーは一つ上の列から構成され重複する値を持つことはできない。従って、主キーを設定しておくことによって、主キーの列が重複した値を持つことを避けることが可能となる。たとえば、会社において従業員識別するために従業員コード用いられるとした場合従業員コードを主キーと定義することにより従業員コード誤って多重利用されることを防ぐことができる。

データベースのほかの用語一覧
リレーショナルデータベース:  リレーショナルデータベース  参照整合性  正規化  主キー  第一正規形  第三正規形  第二正規形

主キー

(primaryKey から転送)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/11/06 13:33 UTC 版)

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

関係データベース管理システム(RDBMS)やミドルウェア、アプリケーションなどでレコードの識別子が必要な場合、主キーがそのために使われることが多い。ただ、そうしなければならない必然性はなく、他の候補キーを使っても良い。したがって、主キーの理論上の意義は大きくないが、実務上は、そのわかりやすさなどから広く使われている概念である。 ただし、主キーにはNULLの存在が許されないが、候補キーには許されるという差があるとする立場もある(レコードの追加、更新時の制約として主キーを考える場合、一意性制約NOT NULL制約を加えたものが主キー制約であると考えることができる)。

関係に存在する候補キーが一つであるときは、その候補キーが当然に主キーとなる。

なお、主キーでない候補キーは代理キー(alternate key)という。

主キーと代理キーの例

  • 生徒名簿(生徒番号, 生徒名, クラス)という関係の場合、生徒番号が主キーになり得る。同姓同名を考慮すると、生徒番号は唯一の候補キーであるから、代理キーはない。
  • 町村(町村ID, 町村名, 郡名, 都道府県名)という関係の場合、町村ID と {都道府県名, 郡名, 町村名} が候補キーであり、いずれかが主キーになり得る。例えば、町村ID を主キーにした場合、{都道府県名, 郡名, 町村名} は代理キーとなる。

主キーの選択

候補キーが複数あるとき、組を識別するという機能においてそれらの間に差異はないから、主キーにどれを選んでも論理的には問題がない。しかし実用上は、以下のような指針に従って選択するのがよい。

  • 主キーは検索のキーとして利用されたり、他の関係に参照のために格納されたりする確率が高いため、できる限りデータ量の小さい方がよい。よって、複合キーはあまり適さない。データ量が多いキーしかない場合は、人工キー(後述)を設けることがある。
  • 主キーは検索のキーとして利用されるほか、電話や書面で伝達されることも多いので[要出典]、簡潔に間違いなく伝達できる形式であるのが望ましい。一定の桁数のアルファベットや数字からなる主キーは、この点でも優れている。
  • 主キーはその関係の外部(他の関係や、外部システム、ユーザなど)で識別子として利用される確率が高いため、不変 (immutable) であるべきである。つまり、更新がかからない項目がよい。例えば、他の関係で主キーを使用していた場合、主キーを更新すると他の関係の値(外部キー)も同時に更新しなければならなくなる。また、外部システムなどに所在するデータについては、このような更新が不可能なことがありうる。なお、人工キーは通常、それ自体に意味を持たないため、不変であるから、この問題も避けることができる。

主キーの設定

関係(テーブル)作成の際に、以下のようにSQLステートメントを記述して主キーを設定する。

 1. テーブル制約として定義する方法:

CREATE TABLE テーブル名 (
      列名1 列1データ型,
      列名2 列2データ型,
      …,
      CONSTRAINT キー名 PRIMARY KEY(列名1)
);

 2. 列制約として定義する方法:

CREATE TABLE テーブル名 (
      列名1 列1データ型 CONSTRAINT キー名 PRIMARY KEY,
      列名2 列2データ型,
      …
);

 3. 複数の列に対して主キーを設定する方法:

CREATE TABLE テーブル名 (
      列名1 列1データ型,
      列名2 列2データ型,
      …,
      CONSTRAINT キー名 PRIMARY KEY(列名1,列名2・・)
);

 4. ALTER TABLE ステートメントを使うこともできる。

人工キーと自然キー

連番(順序・シーケンスとも呼ばれる)のように、一意性を確保するためだけにシステム内部で生成され、利用者が関知しない情報を格納する属性からなる主キーを人工キー、人為キー (artificial key) ないし別名キー (alias key)、代替キー (surrogate key) などといい、逆に、システム外部から格納すべきものとして与えられる情報を格納する属性からなる主キーを自然キー (natural key) ということがある。

利用者が関知しないという点について、エドガー・F・コッドによる定義では、人工キーの値が、利用者に提示されたり、利用者の発行する問い合わせのキーとなったりしないことが要求されている。しかし一般には、単に利用者の意向と無関係にシステムが生成するものを広く人工キーと呼ぶことも多い。

設計された関係の属性に候補キーがない場合には、人工キーを付け加えざるを得ないが(前述の生徒名簿関係に生徒番号がなかった場合を考えよ)、そうでない場合にも人工キーを付け加えるべきか、そのようなことは避けて自然キーを使うべきかについては議論がある。自然キーには、関係に余計な属性を付け加える必要がないという利点があるが、複合キーになりがちであるし、外部の状況が変化すれば変更も必要となるから、前述の指針からみると望ましくない選択となることがありうる。人工キーの利点・欠点はその逆である。実際には、これらの得失のバランスは、場合により異なるから、ケース・バイ・ケースで判断すべきであろう。

関連項目


「primary key」の例文・使い方・用例・文例

Weblio日本語例文用例辞書はプログラムで機械的に例文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「primaryKey」の関連用語

primaryKeyのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



primaryKeyのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
IT用語辞典バイナリIT用語辞典バイナリ
Copyright © 2005-2025 Weblio 辞書 IT用語辞典バイナリさくいん。 この記事は、IT用語辞典バイナリの【主キー】の記事を利用しております。
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアの主キー (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
Tanaka Corpusのコンテンツは、特に明示されている場合を除いて、次のライセンスに従います:
 Creative Commons Attribution (CC-BY) 2.0 France.
この対訳データはCreative Commons Attribution 3.0 Unportedでライセンスされています。
浜島書店 Catch a Wave
Copyright © 1995-2025 Hamajima Shoten, Publishers. All rights reserved.
株式会社ベネッセコーポレーション株式会社ベネッセコーポレーション
Copyright © Benesse Holdings, Inc. All rights reserved.
研究社研究社
Copyright (c) 1995-2025 Kenkyusha Co., Ltd. All rights reserved.
日本語WordNet日本語WordNet
日本語ワードネット1.1版 (C) 情報通信研究機構, 2009-2010 License All rights reserved.
WordNet 3.0 Copyright 2006 by Princeton University. All rights reserved. License
日外アソシエーツ株式会社日外アソシエーツ株式会社
Copyright (C) 1994- Nichigai Associates, Inc., All rights reserved.
「斎藤和英大辞典」斎藤秀三郎著、日外アソシエーツ辞書編集部編
EDRDGEDRDG
This page uses the JMdict dictionary files. These files are the property of the Electronic Dictionary Research and Development Group, and are used in conformance with the Group's licence.

©2025 GRAS Group, Inc.RSS