平成22年秋期試験問題 午前問32
問32解説へ
次の表定義において,"在庫" 表の製品番号に定義された参照制約によって拒否される可能性のある操作はどれか。ここで,実線は主キーを,破線は外部キーを表す。
在庫(在庫管理番号, 製品番号, 在庫量)
製品(製品番号, 製品名, 型, 単価)
在庫(在庫管理番号, 製品番号, 在庫量)
製品(製品番号, 製品名, 型, 単価)
- "在庫"表の行削除
- "在庫"表の表削除
- "在庫"表への行追加
- "製品"表への行追加
広告
解説
参照制約とは、関係データベースにおける整合性制約の一つで「ある表で参照しようとしている値が、参照先の表で候補キーとして存在しなければならない」というものです。
本問の関係では、"在庫"表の"製造番号"列の値が、"製品"表の主キー("製造番号"列)の値として存在しなければならないという制約になります。これは、"製品"表に存在しない製品を、"在庫"表で指定することができないことを意味しています。
参照制約では、行の追加と削除の際に注意が必要になります。外部キーを持つ行を追加する場合に、その外部キーの値は参照先の表で主キーの値として存在するものでなければなりません。また、別表から主キーの値を参照されている行は削除することができません。
選択肢のうち、参照制約によって拒否される可能性ある操作は、「ウ」の「"在庫"表への行追加」です。具体的には、"在庫"表に行を追加する際に、"製品番号"列の値として"製品"表に存在しない製品番号を指定すると、参照制約問題が発生して操作が拒否されます。
本問の関係では、"在庫"表の"製造番号"列の値が、"製品"表の主キー("製造番号"列)の値として存在しなければならないという制約になります。これは、"製品"表に存在しない製品を、"在庫"表で指定することができないことを意味しています。
参照制約では、行の追加と削除の際に注意が必要になります。外部キーを持つ行を追加する場合に、その外部キーの値は参照先の表で主キーの値として存在するものでなければなりません。また、別表から主キーの値を参照されている行は削除することができません。
選択肢のうち、参照制約によって拒否される可能性ある操作は、「ウ」の「"在庫"表への行追加」です。具体的には、"在庫"表に行を追加する際に、"製品番号"列の値として"製品"表に存在しない製品番号を指定すると、参照制約問題が発生して操作が拒否されます。
広告