HOME»データベーススペシャリスト平成28年春期»午前Ⅰ 問9
データベーススペシャリスト平成28年春期 午前Ⅰ 問9
問9
次の表において,"在庫" 表の製品番号に定義された参照制約によって拒否される可能性のある操作はどれか。ここで,実線の下線は主キーを,破線の下線は外部キーを表す。
在庫(在庫管理番号, 製品番号, 在庫量)
製品(製品番号, 製品名, 型, 単価)
在庫(在庫管理番号, 製品番号, 在庫量)
製品(製品番号, 製品名, 型, 単価)
- "在庫"表の行削除
- "在庫"表の表削除
- "在庫"表への行追加
- "製品"表への行追加
- [出典]
- 応用情報技術者
平成28年春期 問29と同題
分類
テクノロジ系 » データベース » データベース設計
正解
ウ
解説
参照制約(外部キー制約)とは、関係データベースにおける整合性制約のひとつで、「あるテーブルで利用しようとする値が、別のテーブルで候補キー(または主キー)として存在していなければならない」というルールです。
設問の例では、"在庫"表が参照元、"製品"表が参照先に当たります。このため、"在庫"表の製品番号の参照制約により、"在庫"表の"製品番号"列の値が、"製品"表の主キー("製品番号"列)の値として存在している必要があります。これは、"製品"表に存在しない製品を、"在庫"表に登録できないことを意味しています。
参照制約がある場合、行の追加と削除に制限が加えられます。具体的には、次の2つの場面が問題となります。
設問の例では、"在庫"表が参照元、"製品"表が参照先に当たります。このため、"在庫"表の製品番号の参照制約により、"在庫"表の"製品番号"列の値が、"製品"表の主キー("製品番号"列)の値として存在している必要があります。これは、"製品"表に存在しない製品を、"在庫"表に登録できないことを意味しています。
参照制約がある場合、行の追加と削除に制限が加えられます。具体的には、次の2つの場面が問題となります。
- 参照元表への行の追加
- 参照先の表に存在しない値を含む行が追加された場合、参照制約を満たせなくなる
- 参照先表の行の削除
- 別表から参照されている値を含む行が削除された場合、参照制約を満たせなくなる
- "在庫"表は参照する側の表なので、削除に関しては制限されません。
- "在庫"表は参照する側の表なので、削除に関しては制限されません。
- 正しい。"在庫"表の"製品番号"列の値は、"製品"表の"製品番号"列の値として存在していなければなりません。"在庫"表に行を追加する際、もし存在しない製品番号を指定すると、参照制約違反となるためデータベースはその追加操作を拒否します。
- "製品"表は参照される側の表なので、追加に関しては制限されません。