Oracle Databaseでは、データの整合性を確保するためのルールを適用できます。たとえば、従業員のデータを含む表では、従業員名列の値としてNULL
は受け入れられません。同様に、この表では同一のIDを持つ従業員が2人存在することはできません。
Oracle Databaseでは、表レベルおよび列レベルの両方で制約と呼ばれるデータの整合性規則を適用できます。制約に違反する行を挿入または更新を試行するSQL文はエラーになり、ロールバックされます。同様に、データが入力されている表に新しく制約を適用すると、既存の行が新しい制約に違反する場合、エラーになります。
主キー: 列(列の組合せ)は行の一意の識別子である必要があります。主キー列にNULL
値は指定できません。
一意キー: 2つの行が指定された列または列の組合せにおいて重複値を持たない場合必要になります。列のセットは一意キーになります。
チェック: 1つの列(または複数の列の組合せ)が表のすべての行の条件を満たすことを要求します。チェック制約はブール式である必要があります。行が挿入または更新されるたびに評価されます。チェック制約の例はSALARY > 0
です。
外部キー: 特定の列(または列の組合せ)では、子表にあるすべての列の値が親表に存在する必要があります。外部キーを含む表は依存表または子表と呼ばれます。外部キーを参照する表は親表と呼ばれます。外部キー制約の例として、従業員表の部門列には、親の部門表に存在する部門IDが含まれる必要があります。
制約が作成され、通常、異なるステータスで変更できます。オプションで有効または無効を選択すると、行が追加または変更されるときに制約をチェックするかどうかを決定できます。また、オプションで遅延、または即時を選択すると、制約の検証をトランザクションの最後に行うか、文の最後に行うかを決定できます。
関連項目:
制約の詳細は、『Oracle Database概要』を参照してください。