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

一意性制約

索引 一意性制約

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

20 関係: 外部キー実体完全性属性 (データベース)主キー代理キー式インデックスデータ完全性データベース管理システム候補キー索引 (データベース)関係 (データベース)関係モデル関係データベース関係データベース管理システムINSERT (SQL)PostgreSQLSQLUPDATE (SQL)正面性文字列結合

外部キー

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

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

実体完全性

実体完全性(じったいかんぜんせい、英語:entity integrity)とは、コンピュータの関係データベース (関係モデル) において、任意の関係(表)についてどの組 (行) も重複することはなく、主キーを構成するどの属性 (列) もnullを許さないことを、保証する特性である。実体完全性は、関係データベースの一貫性(データ完全性)を保証するために必要な特性の一つでもある。.

新しい!!: 一意性制約と実体完全性 · 続きを見る »

属性 (データベース)

属性(ぞくせい、)は、関係モデル (リレーショナルモデル) においては、属性名と定義域の名称のペア (属性名と定義域名から構成されるコンポーネント) である。 定義域は、データ型と同じ意味と考えてよい。属性は、その定義域に適合するなんらかの値をもつ。この値を属性値 (attribute value) という。属性値は、スカラ値もしくはより複雑な構造をもつ値である。関係データベースのデータベース言語 SQL では、属性とほぼ同じ意味で列 (カラム、column) という用語が使われている。 組 (タプル、行) は、ある特定の属性の順序づけられていない集合とそれぞれの属性値から、構成される。 関係 (リレーション、表、テーブル) の見出しは、順序づけられていない属性の集合から、構成される。.

新しい!!: 一意性制約と属性 (データベース) · 続きを見る »

主キー

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

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

代理キー

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

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

式インデックス

式インデックス (英: expression index) または 関数インデックス は関係データベース管理システムで用いられるインデックスの中で、列の組み合わせの代わりに任意の式の結果をキーとするものを指す。式インデックスを使うと、テーブルに格納された実際のデータとは異なるキーでの検索が可能になる。 式インデックスの一般的な使用例として、大文字小文字を区別しない検索または一意性制約がある。例えば、ユーザ名を大文字小文字を区別せずに検索を行い、かつ入力されたユーザ名の大文字小文字を保持したい場合が挙げられる。この場合、小文字に変換して格納するだけは要件を満たせない。一意性制約のための UNIQUE INDEX は、大文字もしくは小文字に変換後のユーザ名 (user_name) に対して定義できる: CREATE UNIQUE INDEX idx_user_name_lower ON user_table(lower(user_name)); 検索クエリは WHERE句に lower(user_name) を指定することで、 このインデックスを使うことができる: SELECT user_id FROM user_table WHERE lower(user_name).

新しい!!: 一意性制約と式インデックス · 続きを見る »

データ完全性

データ完全性(データかんぜんせい、Data integrity)は、情報処理や電気通信の分野で使われる用語であり、データが全て揃っていて欠損や不整合がないことを保証することを意味する。データインテグリティとも。すなわち、各種操作(転送、格納、検索)が行われる際にデータがひとまとめで扱われ、目的とする操作に対して期待されるデータ品質を維持する。簡単に言えば、データ完全性とは、データが一貫していて正しく、アクセス可能であることを保証するものである。.

新しい!!: 一意性制約とデータ完全性 · 続きを見る »

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

right データベース管理システム(データベースかんりシステム、DBMS; )とは、コンピュータのデータベースを構築するために必要なデータベース運用、管理のためのシステム、およびそのソフトウェアのことである。データベースマネジメントシステムとも呼ばれる。.

新しい!!: 一意性制約とデータベース管理システム · 続きを見る »

候補キー

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

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

索引 (データベース)

データベースの分野において、索引(さくいん)またはインデックス (index) は、表への処理を高速化するためのデータ構造である。 索引は表の中の1個以上の列を対象に作成され、ランダムな参照処理や一定の順序でのレコードへのアクセスの効率を高めることができる。 索引には表の中のキー列のみが含まれるが、表にはキー列以外のデータも含むため、一般に、索引が占めるディスク容量は対象となる表よりも少ない。 そのため、全体をメモリ上に保持しきれないほど大きな表であっても、その索引であればメモリに保持できる可能性がある。 索引は一意性制約を実現するためにも使用される。 ユニーク索引では重複したエントリが登録されるのを禁止するため、その索引の対象である表でも一意性が保障される。.

新しい!!: 一意性制約と索引 (データベース) · 続きを見る »

関係 (データベース)

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

新しい!!: 一意性制約と関係 (データベース) · 続きを見る »

関係モデル

関係モデル(かんけいモデル、リレーショナルモデル、relational model)はエドガー・F・コッドが集合論と述語論理に基づいて考案したデータベースモデルであり、関係データベース(リレーショナルデータベース)の基礎となっている。.

新しい!!: 一意性制約と関係モデル · 続きを見る »

関係データベース

関係データベース(かんけいデータベース、リレーショナルデータベース、英: 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 と呼んで良いのかどうかについては、後述のとおり、議論の対象となっている。.

新しい!!: 一意性制約と関係データベース管理システム · 続きを見る »

INSERT (SQL)

INSERT(インサート)ステートメントは、行を追加する、コンピュータのデータベース言語 SQL におけるデータ操作言語(DML)ステートメントの1つである。1度に1行を追加するだけではなく、問い合わせの結果としての複数行を追加することもできる。なお、ユーザーはそのテーブル(関係)に対してINSERT権限を持っている必要がある。また、WHERE句で指定したテーブル全てに対してSELECT権限を持っている必要がある。.

新しい!!: 一意性制約とINSERT (SQL) · 続きを見る »

PostgreSQL

PostgreSQL(ぽすとぐれすきゅーえる: )はオープンソースのオブジェクト関係データベース管理システム (ORDBMS) である。その名称は Ingres の後継を意味する「Post-Ingres」に由来している。「Postgres」や「ポスグレ」と呼ばれることも多い。.

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

SQL

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

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

UPDATE (SQL)

UPDATEステートメントは、SQL におけるデータ操作言語 (DML) のステートメントの1つで、テーブル内の1つもしくは複数のレコードのデータを更新する。WHERE句が省略されている場合はすべてのレコードが、指定されている場合はその条件式を満たす一部のレコードだけが、一括して更新される。.

新しい!!: 一意性制約とUPDATE (SQL) · 続きを見る »

正面性

正面性.

新しい!!: 一意性制約と正面性 · 続きを見る »

文字列結合

プログラミングにおいて、文字列結合(もじれつけつごう)または文字列連結(もじれつれんけつ)(string concatenation)とは、ある文字列の後ろに別の文字列をつなげて1つの文字列にする処理のことである。例えば、「ABCDE」という文字列と「12345」という文字列を結合すると「ABCDE12345」という1つの文字列になる。.

新しい!!: 一意性制約と文字列結合 · 続きを見る »

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