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

外部キー

索引 外部キー

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

18 関係: 参照整合性定義域 (データベース)実体関連モデル主キーデータ完全性データ辞書CA ERwin Data ModelerDELETE (SQL)ER/Studio関係の正規化関係モデル関係データベースFKIndexed Sequential Access MethodInnoDBPKPostgreSQLTRUNCATE (SQL)

参照整合性

Aerosmith" と呼ばれるアーティストが '''artist_id''' が "4" で存在していたが、このアーティストがアーティスト関係変数から削除されてしまったのである。しかし、アルバム "Eat the Rich" はこのアーティストを参照している。参照整合性が強制適用されれば、このようなことは起こり得ず未然に防がれる。 参照整合性 (さんしょうせいごうせい、英: referential integrity) は、コンピュータの関係データベースの関係モデルにおいて2つの関連しあった関係変数 (表、テーブル) の間の一貫性 (データ完全性) をいう。 参照整合性は、多くの場合、主キーもしくは主キー以外の候補キーと、外部キーの、組み合わせにより、強制適用される。 参照整合性が強制適用されると、外部キーが宣言された関係変数の外部キーを構成する属性 (列、カラム) の値は、その関係変数の親となる関係変数の主キーの値もしくは主キー以外の候補キーの値として存在しなければならない。 例えば、別の関係変数の外部キーにより参照されている組 (タプル、行) を削除することは、参照整合性を破壊してしまうことになるため、関係データベース管理システム (RDBMS) は参照整合性を保つべく通常は削除の実行を阻止する。 例外として、参照している外部キーを含む組を連鎖して削除することを伴って、削除を実行できる場合があり、この場合は参照整合性が保たれる。 外部キーにより参照されている組を削除することができるかどうかは、データ定義言語 (DDL) による参照整合性制約の定義により定義される。.

新しい!!: 外部キーと参照整合性 · 続きを見る »

定義域 (データベース)

定義域(ていぎいき、ドメイン、domain)は、データ管理およびデータモデリング、データベース設計の文脈では、あるデータ要素が値としてとる可能性のある一意な値すべてから構成される、名前つきの有限集合をいう。 データ型と同じ意味と考えてよい。 現在は単に型(タイプ、type)と略されることも多い。 定義域の境界を決定する規則は、数え上げ(列挙)リストで定義されるデータ型と同じくらいに簡潔である可能性もある。 例として、関係データベース(リレーショナルデータベース)で人物についての情報を収める関係(リレーション、テーブル、表)を考える。 この関係では、一人の人物につき一つの組(タプル、行)が対応する。 組は、0以上の属性の集合からなるデータ構造である。 この関係は、ジェンダーという属性(列、カラム)をもつ。 属性は、属性名と定義域の名称のペアである。 属性は、その定義域に適合するなんらかの属性値をもつ。 このジェンダー属性は、2つのコード値のうち一つをもつことができる。 すなわち、"F" を女性 (Female) に、"M" を男性 (Male) に、それぞれ対応するコード値とするのである。 NULL については、ジェンダーが不明であるか、ジェンダーをあてはめられない場合に使う。 あるいは特別なコード値として "U" を不明な (Unknown) 場合に使う。 このように、ジェンダー属性の定義域は (あるいは )となる。 定義域のほかの例としては、 で定義される色の定義域や、整数型や文字列型などが考えられるであろう。 この項目で説明している定義域の定義は、ある領域としての定義域の概念である。 ここでいう領域とは、数学における関数の定義における独立変数という値の集合という、概念である。 関係データベースのデータベース言語 SQL では、CREATE DOMAIN 構文で定義域を定義することができる。 CREATE DOMAIN PHONE_NUMBER AS CHAR(20).

新しい!!: 外部キーと定義域 (データベース) · 続きを見る »

実体関連モデル

チェンの記法を使った実体関連図の例 実体関連モデル(じったいかんれんモデル、Entity-relationship Model, ERM)は、概念的データモデルの高レベルな記述を可能とするモデルの一種である。また、実体関連モデルによって具体的なシステムのデータモデルを図で表現したものを実体関連図(Entity-relationship Diagram, ERD)あるいはER図と呼ぶ。本項ではピーター・チェンの1975年の論文で提唱された技法を中心に解説する for entity–relationship modeling.

新しい!!: 外部キーと実体関連モデル · 続きを見る »

主キー

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

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

データ完全性

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

新しい!!: 外部キーとデータ完全性 · 続きを見る »

データ辞書

データ辞書(データじしょ、)は、IBM Dictionary of Computing の定義によれば、「意味、他のデータとの関係、起源、用途、フォーマットなどのデータに関する情報を集中的に保管したもの」である。データベースやデータベース管理システム (DBMS) に密接に関連しており、以下のような意味で使われる。.

新しい!!: 外部キーとデータ辞書 · 続きを見る »

CA ERwin Data Modeler

erwin Data Modeler (ERwin, アーウィン) は、情報システム開発のデータモデリング (データ要件分析、データベース設計など) を行うためのCAが開発・販売しているCASEツールである。 開発対象となる情報システムには、トランザクション処理システムで処理されるデータベースおよびデータマートが含まれる。 erwin のデータモデリングエンジンは、IDEF1Xの方法と記法 (実体関連図、ER図の一種) に基づいている。 IDEF1Xに加えて現在では、インフォメーションエンジニアリングの記法もサポートしている。 日本では、富士通エンジニアリングテクノロジーズが販売・サポートを行っている。 日本CAによると現在、全世界で1万社以上、10万人以上の利用者に使われており、日本国内では10000ライセンス以上の導入実績がある。 世界各地にERwinユーザ会があり、日本にもが存在する。.

新しい!!: 外部キーとCA ERwin Data Modeler · 続きを見る »

DELETE (SQL)

DELETE(デリート)ステートメントは、1つもしくは複数のレコードを削除する、SQLにおけるデータ操作言語 (DML)ステートメントの1つである。すべてのレコードを一括削除するかまたは、条件式を満たす一部のレコードだけを削除することができる。.

新しい!!: 外部キーとDELETE (SQL) · 続きを見る »

ER/Studio

ER/Studio(イーアール スタジオ)とは、データアーキテクチャの設計およびデータベース設計 (データモデリング) を支援するCASEツールであり、エンバカデロ・テクノロジーズが開発・販売している。 ER/Studioは、さまざまな関係データベース管理システム (RDBMS) と連携して使うことができる。 データアーキテクト、データモデラー、データベース管理者 (DBA、データベースアドミニストレータ) 、ビジネスアナリストなどの人々が、データベースの設計・文書の作成と管理をするために、またデータ資産を再利用するために、使っている。 ER/Studioは、CA ERwin Data Modeler 、ModelRight 、PowerDesigner 、Toad Data Modeler などのソフトウェアと似たソフトウェアである。 ER/Studio はエンバカデロ・テクノロジーズ本社のある欧米で開発・販売され、欧米を初めとした英語圏の先進諸国を中心とした市場でシェアがある。そのため、操作画面やヘルプは元々英語であるが、日本市場でもシェアがあるため、日本語版としてローカライズ(ソフトウェアの日本語化)が行われている。 日本では、日揮情報システム株式会社が販売・サポート・ローカライズ、ハンズオンセミナーを行っている。.

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

関係の正規化

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

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

関係モデル

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

新しい!!: 外部キーと関係モデル · 続きを見る »

関係データベース

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

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

FK

FK.

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

Indexed Sequential Access Method

Indexed Sequential Access Method(索引付き順次アクセス方式、さくいんつきじゅんじあくせすほうしき、一般にISAM)とは高速にアクセスが可能なデータの格納方法 (ファイル編成法) の一つである。IBMで開発され、今日では関係データベース管理システム (RDBMS、関係データベース) をはじめとするほとんど全てのデータベース管理システム (DBMS) でのデータの格納に用いられている。 ISAMを用いたシステムではデータは固定長のレコードとして格納される。当時の設計思想は磁気テープの記憶装置に高速で書き込むためにレコードを連続的に格納していくものだった。もう一つのデータとしてテーブルの内容へのポインタを格納したハッシュテーブルを索引として用いることで、全データを検索することなく目的のデータを取り出すことを可能とした。 ISAMの実現は他のデータへのポインタがレコード内に格納されていたナビゲーショナルデータベースからの脱却を実現した。ISAMによる主要な利点は索引のサイズが小さく、高速な検索が可能で、必要なデータのみに直接アクセス可能としたことにある。それに加えてデータの変更が行われた場合にも、該当するデータのみの変更で済ますことが可能であり、関連する他のデータまで波及して変更を加える必要がないことも利点となった。 関係データベースはテーブル同士のリンクを正常に維持するロジックが追加されるISAM方式と組み合わせての実装が行いやすい。代表的な例として、外部キーとして使われるフィールドの高速な検索のために索引が用いられる。 これは関連するデータへのポインタをレコードに直接格納する方法よりも遅い処理となるが、データの物理的な構成の変更があった場合でもリンクが正常に保たれるため、ポインタを書き換える必要がない。 ISAMはファイルへの直接の、順番に従ったアクセス方式であり,非常にわかりやすく実装も容易である。また、非常に高速なアクセス方式でもある。逆にISAMの欠点はそれぞれのクライアントマシンがアクセスしているファイルへの自身の接続状態を管理しなければならないことにある。これは一方で複数のデータの追加動作が衝突し、データが矛盾した状態に陥る可能性につながっている。一般的にこの問題はクライアントサーバモデルの導入によってサーバがクライアントの要求を直列化して扱うことによって解決されている。これは格納されたデータに対してクライアント側のレイヤーに存在しているSQLのトランザクション概念の基礎となっている。 IBMではISAMの代わりにVSAM (Virtual Storage Access Method; 仮想記憶アクセス方式)と呼ばれる技術を用いるようになった。 Category:データベース Category:データ構造 Category:OSのファイルシステム Category:IBM.

新しい!!: 外部キーとIndexed Sequential Access Method · 続きを見る »

InnoDB

InnoDB(イノデービー)はMySQLのためのデータベースエンジンであり、MySQL ABが配布している全てのバイナリに標準搭載されている。MySQLと使用できる他のデータベースエンジンに対する改良点として、PostgreSQLに似たACID互換のトランザクションに対応していることがある。また、外部キーもサポートしている。(これを宣言的参照整合性という) 2005年10月にInnobase社がオラクルに買収された後、InnoDBはオラクルの製品となった。このソフトウェアはデュアルライセンスであり、GNU General Public Licenseのもとで流通しているが、InnoDBをプロプライエタリ・ソフトウェアと融合させたい団体のために、ライセンスが販売されることもある。.

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

PK

PK.

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

PostgreSQL

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

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

TRUNCATE (SQL)

TRUNCATE または TRUNCATE TABLE ステートメントは、テーブルから全ての行を削除するSQLである。データベースが持つ整合性を維持する機構をスキップすることで高速な削除を実現している場合が多い。削除する行それぞれを記録するためのトランザクションログの出力を避けることで、効率的に全ての行を削除できる。 「TRUNCATE TABLE 表名」は「DELETE FROM 表名」とほぼ等価だが、以下の点で異なる。.

新しい!!: 外部キーとTRUNCATE (SQL) · 続きを見る »

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