大阪市中央区 システムソフトウェア開発会社

営業時間:平日09:15〜18:15
MENU

ORACLEMASTER 備忘録8(3/10)

著者:伊関星児
公開日:2020/09/23
最終更新日:2020/09/23
カテゴリー:技術情報
タグ:

ORACLEMASTER 備忘録8(2/10)

 

 

続き

 

 

データの整合性

Oracleでは、表の1つ以上の列に「整合性制約」を定義できる。整合性制約とは、“列に格納されるデータを制限するルール”。整合性制約を正しく定義することで、表内のデータを常に正しい状態にすることができる。例えば、NULL値が入ってはいけない例がある場合、その列に“NOT NULL制約”を定義しておけば、その列にNULL値が格納されるのを防ぐ。

列にデータを挿入/更新する際に、ユーザーが使用するアプリケーション側でチェックすることも可能だが、整合性を利用すれば、アプリケーション側で特別なコードを書くことなく、格納されるデータを制限できる。Oracleには次の整合性がある。

 

データベースにおける整合性制約

NOT NULL:NOT NULL:値が“NULL”になることを禁止する。

 

一意キー:UNIQUE:複数の行で、同じ列の組み合わせで同じ値を持つことを禁止する。ただし、値がNULLになることは“許可される”。一つの表に複数設定できる。

 

主キー:PRIMARY KEY:“NOT NULLと一意キーが組み合わさるのと同じ動作になる”。主キーの値は重複することはなく、必ず値が存在しなければならない。主キー制約は、一つの表に“最大1つ”設定できる。

“複合主キー”(複数の列の組合せで主キーとする)の場合は、主キー列の組合せで、複数の行の値が同じにならないように、また各列の値がNULLにならないようにする。

 

外部キー:FOREIGN KEY:複数の表に関連付けるための“共通する列”。表の各行について、外部キーの列の値が親キー(参照先の列)の値に一致することが要求される。“参照整合性制約”とも呼ばれる。

 

チェック:CHECK:データベースの値が“指定された条件”を満たすようにする。例えば、給与の値は100000以上、性別の値は男女どちらかにしたい場合など。

 

※Oracleでは、列に対して主キー制約や一意キー制約を作成すると、暗黙的に“一意索引”が作成される。

 

※外部キー制約において、外部キー制約で参照する表を「親表」、参照先の列を「親キー列」という。また、外部キー制約が定義されている表を「子表」という。外部キー制約は主キー制約、一意キー制約が定義されている列しか参照できない。

 

表の作成

表を作成すると、表の定義情報はSYSTEM表領域にあるデータディクショナリに格納される。表にデータを挿入すると、表セグメントに対する一つ目のエクステントが、指定した表領域に割り当てられる。

    上に戻る