ロゴ
ユニオンペディア
コミュニケーション
Google Play で手に入れよう
新しい! あなたのAndroid™デバイスでユニオンペディアをダウンロードしてください!
ダウンロード
ブラウザよりも高速アクセス!
 

主キー

索引 主キー

主キー(しゅキー、英語:primary key)とは、関係データベースにおいて、組(レコード)の識別子として利用するのにもっとも好ましいものとして、関係(テーブル)毎にただ一つ設計者により選択・定義された候補キーをいう。つまり、関係に格納されたレコードを一意に識別するための属性(列、アトリビュート)またはその集合のうち、そのために通常利用されるべき特定の一つをいう。 関係データベース管理システム(RDBMS)やミドルウェア、アプリケーションなどでレコードの識別子が必要な場合、主キーがそのために使われることが多い。ただ、そうしなければならない必然性はなく、他の候補キーを使っても良い。したがって、主キーの理論上の意義は大きくないが、実務上は、そのわかりやすさなどから広く使われている概念である。 ただし、主キーにはNULLの存在が許されないが、候補キーには許されるという差があるとする立場もある(レコードの追加、更新時の制約として主キーを考える場合、一意性制約にNOT NULL制約を加えたものが主キー制約であると考えることができる)。 関係に存在する候補キーが一つであるときは、その候補キーが当然に主キーとなる。 なお、主キーでない候補キーは代理キー(alternate key)という。.

16 関係: 外部キー一意性制約代理キーミドルウェアエドガー・F・コッドスーパーキー候補キー表 (データベース)関係 (データベース)関係の正規化関係データベース関係データベース管理システム英語NOT NULL制約NullSQL

外部キー

外部キー(がいぶキー、英語:foreign key、FK)は、コンピュータの関係データベースの関係モデルの文脈において、2つの関係変数(表)の間の参照整合性制約をいう。 外部キーは、参照する側の関係変数で1つの属性(列、カラム)もしくは2つ以上の属性の集合を同定し、参照する側の関係変数は、参照される側の関係変数の1つの属性もしくは2つ以上の属性の集合を参照する。 参照する側の関係変数の属性の1つの組(タプル、行)の値は、参照される側の関係変数の組の値として出現しなければならない。 このため、参照する側の関係変数の組には、参照される側の関係変数に現れない値を、含むことはできない。 このような参照関係は、2つの情報の関連づけるために作成され、関係の正規化の本質的な部分をなしている。 参照する側の関係変数の複数の組が、参照される側の関係変数の同一の組を、参照することができる。 参照する側の関係変数と参照される側の関係変数が、同一の関係変数であっても良い。 すなわちこの場合は外部キーは自分自身の関係変数を参照する。 このような外部キーは、データベース言語標準 SQL:2003 では「自己参照」外部キーあるいは「再帰的」外部キーとして規定されている。 一つの関係変数には複数の外部キーを含むことができる。 そしてこのような外部キーのそれぞれが異なる関係変数を参照する。 各々の外部キーは関係データベース管理システム (RDBMS) によりそれぞれ別個に強制適用される。 このため、関係変数間の連鎖した関連を外部キーを使って定義することができる。 外部キー-主キーの関連を本来は設計の観点から存在していてはならない場合に存在していることや、外部キー-主キーの関連が本来は設計の観点から存在しているべきである場合に存在していないことは、関係データベースおよびデータモデリング、データベース設計についての多くの問題の原因となっていることが多い。.

新しい!!: 主キーと外部キー · 続きを見る »

一意性制約

一意性制約 (いちいせいせいやく、Unique Constraint)とは、データベースにおいてデータを追加、更新する際の制約の一つで、列あるいは列のグループに含まれるデータが、テーブル内のすべての行で一意(「他に同じデータがない」の意味)であることを要求する。なお、この一意性制約にNOT NULL制約を加えたものが主キー制約であると考えることもできる。.

新しい!!: 主キーと一意性制約 · 続きを見る »

代理キー

代理キー(だいりキー、alternate key)は、コンピュータの関係データベースの関係モデルにおいて、関係の候補キーのうち主キーとして選ばれなかったキーをいう。 例えば、関係データベースで社員関係変数 (社員テーブル) があり、社員関係変数は「社員番号」「社会保障番号」などの属性をもつとする。 この場合、「社員番号」と「社会保障番号」はともにある社員の一意識別子となる。 このため「社員番号」もしくは「社会保障番号」はいずれも主キーとして使うことができる。 したがって、「社員番号」および「社会保障番号」の2つはともに候補キーである。 例えば、「社会保障番号」を主キーとして選んだ場合、「社員番号」は代理キーとなる。 なお、自然キーと対比される代替キー (サロゲートキー、surrogate key) が代理キーと呼ばれている場合もある(自然キーおよび代替キーについては、主キーの項を参照)。.

新しい!!: 主キーと代理キー · 続きを見る »

ミドルウェア

ミドルウェア(Middleware)は、コンピュータの分野で、コンピュータの基本的な制御を行うオペレーティングシステム(OS)と、各業務処理を行うアプリケーションソフトウェアとの中間に入るソフトウェアのこと。 通常はオペレーティングシステムの機能の拡張、あるいはアプリケーションソフトウェアの汎用的(共通的)な機能を集めたものである。アプリケーションソフトウェアはミドルウェアに要求を出すと、ミドルウェアがオペレーティングシステムに必要な要求を出し、結果をアプリケーションソフトウェアに返す。あるいはミドルウェア自体が各アプリケーションソフトウェアの起動・停止・監視などを含めた制御を行う。 代表的なミドルウェアには、データベース管理システム(DBMS)やトランザクションモニターなどがある。.

新しい!!: 主キーとミドルウェア · 続きを見る »

エドガー・F・コッド

ドガー・フランク・コッド(Edgar Frank "Ted" Codd, 1923年8月23日 - 2003年4月18日)は、イングランド生まれの計算機科学者。関係データベースの理論的基盤であるデータベース管理の関係モデルを発明した。他にも計算機科学に数々の貢献をしているが、関係モデルはデータ管理の一般理論として大きな影響を与え、彼にとっては人生最大の業績と言われている。.

新しい!!: 主キーとエドガー・F・コッド · 続きを見る »

スーパーキー

データベース分野におけるスーパーキーは、関係 (データベース)関係(表)の組(タプル、行)を一意に特定できる属性(列)、または属性の集合のことをいう。 スーパーキーは、対象となる関係の全ての属性が関数従属している属性の集合と定義することもできる。 候補キー・主キーとの違いは、一意に識別できるすべての組み合わせを表している点にある。つまり、候補キーに余計な属性を付け加えて冗長にしたものは候補キーではないが、依然としてスーパーキーではあるという差がある。スーパーキーが既約である場合、すなわち冗長性が無い場合、そのスーパーキーは候補キーでもある。 例えば、市町村(市町村ID, 市町村名, 都道府県名)という関係の場合、市町村ID、、、、 がスーパーキーである。 関係の全ての属性からなる集合は、その関係が基底関係であろうと導出関係(ビュー)であろうと、常にスーパーキーである。 Category:データベース Category:データモデリング.

新しい!!: 主キーとスーパーキー · 続きを見る »

候補キー

候補キー(こうほキー、英語:candidate key)は、コンピュータの関係データベースの関係モデルにおいて、スーパーキーのうち、既約 (irreducible) の形のものをいう。 既約とは、ここでは、それを構成する属性(列)のどれか一つでも欠ければ一意性が確保できなくなること、つまり冗長な属性を含まないことをいう。極小 (minimal) ともいう。 要するに、組(行)の識別のために必要な、属性またはその集合が候補キーである。候補キーは、組の「アドレス」あるいは「識別子」だと考えることもできる。 候補キーという名は、それが主キーとして選ばれる候補であるところから由来する。 1つの関係(表)には、関係というものの定義上、少なくとも1つ候補キーが存在する。1つの関係に候補キーが2つ以上存在することもある。 例えば、市町村(市町村ID, 市町村名, 都道府県名)という関係の場合、市町村ID と が候補キーである。なお、市町村名には多少の重複があるため(府中市など)、市町村名は単独では候補キーにならない。 NULLを許容する候補キーというものを認めるかについては諸説ある。一部の人々は、主キーには認められないが候補キーには認められると、考えている。別の人々は、主キーには認められないし候補キーにも認められないと、考えている。主キーには認められないが候補キーには認められるという考えについては、候補キーのうちの任意に選ばれた一つが主キーであるとする定義とは矛盾する。 なお、SQLの方言における CREATE UNIQUE INDEX 文で指定される一意性制約は、厳密には候補キーとは別の概念であるから、一意性制約にNULLを許すことができるものがあることは、ここでの議論に必ずしも影響しない。.

新しい!!: 主キーと候補キー · 続きを見る »

表 (データベース)

関係データベースやフラットファイルデータベースにおける表またはテーブルとは、データ要素(値)の集合を垂直な列と水平の行のモデルで構成したものである。表には所定の個数の列があるが、行数は不定である。各行は特定の列の値で識別され、それを候補キーと呼ぶ。 表は関係と同じ意味でも使われる。ただし、表は多重集合がありうるが、関係モデルにおける関係は重複を許さない点が異なる。実際のデータ行の他に、表にはその表や特定の列での値に関する制約のような何らかのメタ情報が対応しているのが一般的である。 表内のデータはデータベースに物理的に格納されている必要はない。ビューも一種の表だが、そのデータはクエリ時に計算で求められる。また、別のデータベース内の表へのポインタとして機能するニックネームもある。.

新しい!!: 主キーと表 (データベース) · 続きを見る »

関係 (データベース)

関係 (relation) を含む関係モデルの概念関係(かんけい、リレーション、)とは関係モデル(リレーショナルモデル)において、一つの見出しと0以上の同じ型の組 (タプル、行) の順序づけられていない集合からなるデータ構造のことである。 値としての関係を関係値 (relation value) といい、関係値を値としてもつ変数を関係変数 (relvar, relation variable) という。 関係データベースのデータベース言語であるSQL では、関係変数とほぼ同じ意味で'''表''' ('''テーブル''') という用語が使われている。文脈によって、関係変数を関係と呼ぶこともあり、また関係値を関係と呼ぶこともある。 その他、データベースにおける関係には以下のことが言える。.

新しい!!: 主キーと関係 (データベース) · 続きを見る »

関係の正規化

関係の正規化(かんけいのせいきか)は、関係データベース (リレーショナル・データベース) において、正規形と呼ばれる形式に関係(リレーション)を準拠させることにより、データの一貫性の維持と効率的なデータアクセスを可能にする関係設計を導くための方法である。正規形には様々なものが存在するが、いずれにせよ、正規化を行うことにより、データの冗長性と不整合が起きる機会を減らすことができる。 多くの関係データベース管理システム (RDBMS) は、論理的なデータベース設計とデータを格納する物理的な実装方法とが十分に分離されていないので、完全に正規化されたデータベースへのクエリ(検索質問)はパフォーマンスが良くないことがある。このような場合、パフォーマンスを向上させるためにデータの一貫性の低下と引き換えにあえて非正規化されることもある。.

新しい!!: 主キーと関係の正規化 · 続きを見る »

関係データベース

関係データベース(かんけいデータベース、リレーショナルデータベース、英: relational database)は関係モデル(リレーショナルデータモデル、後述)にもとづいて設計、開発されるデータベースである。関係データベースを管理するデータベース管理システム (DBMS) を関係データベース管理システム (RDBMS) と呼ぶ。 Oracle Database、Microsoft SQL Server、MySQL、PostgreSQL、DB2、FileMaker、H2 Database などがRDBMSである関係データベースに含まれないデータベースは、NoSQL などを参照。 。.

新しい!!: 主キーと関係データベース · 続きを見る »

関係データベース管理システム

関係データベース管理システム(かんけいデータベースかんりシステム)、リレーショナルデータベースマネジメントシステム(relational database management system、略称:RDBMS)は、関係データベースの管理システムである。2007年の時点では、広く知られていてまた広く使われているデータベースのほとんどは関係データベースであったが、その後NoSQLが発展したため必ずしもそうとは言えなくなっている。 一定の人々は、関係モデルを煩雑であるなどとみなしているためか、RDBMSの簡単な定義として、「データを表の形式で永続化し、かつデータ間の関連もまた表の形式で永続化できるDBMS」と考えているようである。 関係データベースをオブジェクトデータベースと融合させたオブジェクト関係データベースなどといったものもある。その管理システムはオブジェクト関係データベース管理システムなどと呼ばれる (ORDBMS) 。 関係データベースの、標準の問い合わせ言語として SQL がある。 商用の RDBMS としては Oracle Database や IBM DB2 などが、オープンソースの RDBMS としては MySQL や PostgreSQL などが、広く知られている。ただし、これらの DBMS を 真のRDBMS と呼んで良いのかどうかについては、後述のとおり、議論の対象となっている。.

新しい!!: 主キーと関係データベース管理システム · 続きを見る »

英語

アメリカ英語とイギリス英語は特徴がある 英語(えいご、)は、イ・ヨーロッパ語族のゲルマン語派に属し、イギリス・イングランド地方を発祥とする言語である。.

新しい!!: 主キーと英語 · 続きを見る »

NOT NULL制約

NOT NULL制約(NOT NULLせいやく、Not Null Constraint)とは、データベースにおいてデータを追加、更新する際の、列に対する制約の一つで、その列に必ず意味のある値が設定されることを要求する。 例えば、「従業員」テーブルにおいて、従業員氏名の定義を EMPNAME VARCHAR(20) NOT NULL と指定すると、各行に従業員氏名が必ず設定されるようになる。 ここでNULLとは、値が未設定の状態をいう。.

新しい!!: 主キーとNOT NULL制約 · 続きを見る »

Null

Null(ヌル、ナル)は、何もない、という意味で、プログラミング言語などコンピュータ関係では、「何も示さないもの」を表すのに使われる。同様のものに、nil が使われることもある。他の名前のこともある。 本来 はドイツ語において数値の0(ゼロ)を意味する単語であり、ドイツ語における発音は である。一方、英語においては と発音される。実際の発音はを参照のこと。 日本においては原語に近い「ヌル」という発音が定着しているが、英語読みに近い「ナル」という発音で呼ばれる場合もある(専門書、国家試験など)。 プログラミング言語などにおいて、nullやnilといった予約語や定数名のものなどの意味がどういったものかは言語により、場合によっては実装ごとに違う。ポインタや参照のある言語では、ヌルポインタなどと呼ばれる何も指さない特別なポインタであることもあるし、Pythonのようにオブジェクトのこともある。古典的なLISPのように真理値の偽(の代表)や空リスト「()」を兼ねたもの(それらと同じもの)だったりすることもある。.

新しい!!: 主キーとNull · 続きを見る »

SQL

SQL(エスキューエルよりデジタル大辞泉、IT用語がわかる辞典を参照、シークェル、シーケルよりDBM用語辞典を参照)は、関係データベース管理システム (RDBMS) において、データの操作や定義を行うためのデータベース言語(問い合わせ言語)、ドメイン固有言語である。エドガー・F・コッドによって考案された関係データベースの関係モデルにおける演算体系である、関係代数と関係論理(関係計算)にある程度基づいている。 データベース言語の国際標準としてのSQLは何かの略語ではない。 SQLは、シークェル と読まれることもある。これは、SQLの元となったデータベース言語が、IBMが開発したRDBMSの実験実装であるSystem Rの操作言語「SEQUEL (Structured English Query Language)」であったことが由来である。 SQLに対しては、関係代数と関係論理に忠実に準拠していないとして批判する意見がある(The Third Manifesto - クリス・デイト、ヒュー・ダーウェン)。.

新しい!!: 主キーとSQL · 続きを見る »

出ていきます入ってきます
ヘイ!私たちは今、Facebook上です! »