豚吐露@wiki
問34回答
最終更新:
ohden
-
view
イ
【主キー】
primary key / プライマリキー
関係データベースの表において、行を一意に識別するために選択された列である。
関係データベースではデータを2次元の表として取扱い、この表の縦方向を列、横方向を行と呼ぶ。
縦方向の列を他の列と区別するのに用いられるものが列名であるように、主キーを用いて横方向の行を他の行と一意に区別する。
主キーは一つ以上の列から構成され、重複する値を持つことはできない。
従って、主キーを設定しておくことによって、主キーの列が重複した値を持つことを避けることが可能となる。
たとえば、会社において従業員を識別するために従業員コードが用いられるとした場合、従業員コードを主キーと定義することにより従業員コードが誤って多重利用されることを防ぐことができる。
primary key / プライマリキー
関係データベースの表において、行を一意に識別するために選択された列である。
関係データベースではデータを2次元の表として取扱い、この表の縦方向を列、横方向を行と呼ぶ。
縦方向の列を他の列と区別するのに用いられるものが列名であるように、主キーを用いて横方向の行を他の行と一意に区別する。
主キーは一つ以上の列から構成され、重複する値を持つことはできない。
従って、主キーを設定しておくことによって、主キーの列が重複した値を持つことを避けることが可能となる。
たとえば、会社において従業員を識別するために従業員コードが用いられるとした場合、従業員コードを主キーと定義することにより従業員コードが誤って多重利用されることを防ぐことができる。
【外部キー】
Foreign Key / フォーリンキー
リレーショナルデータベースの参照制約で指定される参照列のことである。
外部キーは、参照制約において定義され、他の列との値の依存関係を持つ。
例えば、FOREIGN KEY(A) REFERENCES TABLE1(B)と記述した場合、外部キー列Aの値は、TABLE1の列Bが持つ値に含まれるかNULL値でなければならない。
外部キーが参照する列は、主キー(Primary Key)か代理キー(Alternate Key)でなければならず、同一テーブル内の列でも、他のテーブルの列のどちらも指定可能である。
なお、同一テーブル内の列を参照することを自己参照と呼ぶ。
Foreign Key / フォーリンキー
リレーショナルデータベースの参照制約で指定される参照列のことである。
外部キーは、参照制約において定義され、他の列との値の依存関係を持つ。
例えば、FOREIGN KEY(A) REFERENCES TABLE1(B)と記述した場合、外部キー列Aの値は、TABLE1の列Bが持つ値に含まれるかNULL値でなければならない。
外部キーが参照する列は、主キー(Primary Key)か代理キー(Alternate Key)でなければならず、同一テーブル内の列でも、他のテーブルの列のどちらも指定可能である。
なお、同一テーブル内の列を参照することを自己参照と呼ぶ。

上図のようなtable構成だったとき、一般的に考えると、『注文』tableと『注文明細』tableは1対1の関係、『注文明細』tableと『商品』tableは多対1の関係となる。
この時、『注文』のレコードを削除するとする。
『注文』レコードと『注文明細』レコードは1対1の関係であるため、『注文』レコード削除時に、『注文明細』を参照する可能性は無いため、『注文明細』を削除する。
『商品』のレコードを削除するとする。
『商品』レコードは複数の『注文明細』レコードから参照される可能性があり、マスタ的なtableである。
削除対象のレコードを『注文明細』から参照していた場合、外部結合になっていないと、不都合が起きる。
よって、『商品』レコードの削除を許してはならない。
『注文』レコードと『注文明細』レコードは1対1の関係であるため、『注文』レコード削除時に、『注文明細』を参照する可能性は無いため、『注文明細』を削除する。
『商品』のレコードを削除するとする。
『商品』レコードは複数の『注文明細』レコードから参照される可能性があり、マスタ的なtableである。
削除対象のレコードを『注文明細』から参照していた場合、外部結合になっていないと、不都合が起きる。
よって、『商品』レコードの削除を許してはならない。
更新日: 2009年12月25日 (金) 01時42分59秒
添付ファイル