“従業員”表と“職歴”表の間で、“従業員”表からある従業員の行を削除するSQL操作を行う場合に、“職歴”表に削除する従業員の行が存在しないことを要求する整合性制約はどれか。
ア | 一意性制約 |
イ | 参照制約 |
ウ | 定義域制約 |
エ | 表検査制約 |
答え イ
【解説】
ア | 一意性制約は、追加、更新する際、列あるいは列のグループに含まれるデータが、テーブル内のすべての行で一意でなければならないで、“従業員”表に従業員を追加するとき同じデータを追加できないようにすることです。 |
イ | 参照制約は、複数のテーブルを利用して他のテーブルの値を参照する場合、参照するタプルが必ず存在しなければならないで、“従業員”表から従業員を削除するときに、“職歴”にその従業員の行が存在しないようにすることです。 |
ウ | 定義域制約は、属性の値が原子値(これ以上細分化できない単純な値)でなければならないで、“従業員”表の生年月日として“年月日”ではなく“年”、“月”、“日”にすることです。 |
エ | 表検査制約は、データ挿入又は更新時に条件を満たさないデータの場合は操作を抑止しなければならないで、“従業員”表に従業員を追加するとき生年月日のデータとして“-1”や“A”などといったデータ入力を防止することです。 |
【キーワード】
・整合性制約