平成21年度 秋期 午前 問33
データベース
参照制約に関する問題
関係データベースにおいて,“注文”表から“商品”表へ参照制約が設定されている場合の記述のうち,適切なものはどれか。
- ア“商品”表のタプルが存在すれば,それに対応する“注文”表のタプルは存在する。
- イ“商品”表のタプルと“注文”表のタプルはそれぞれ独立に存在する。
- ウ“注文”表のタプルが消滅すれば,それに対応する“商品”表のタプルも消滅する。
- エ“注文”表のタプルが存在すれば,それに対応する“商品”表のタプルは存在する。
答えと解説を見る
✓ これが正解エ“注文”表のタプルが存在すれば,それに対応する“商品”表のタプルは存在する。
解説
引く側に値があれば、引かれる側にも値があるはずです。
二つの表の間に張る約束のうち、片方の列がもう片方の表の行を指し示す、という参照制約を扱う問いです。指し示す側に値が入っているのに、指し示された先に相手がいない、という状況を防ぐために置かれる決まりです。約束の向きは、指し示す側から指し示される側への一方向です。指し示す側に何かの値が入っているなら、その値と同じ値を持つ相手が、指し示される側の表にいることが必要で、いないままではその値は書き込めません。この向きを反対に読むと、指し示される側だけが単独で並んでいる状況は許されます。設問はこの向きに沿った記述はどれか、を問うています。
ほかの選択肢はなぜ違うのか
- ア“商品”表のタプルが存在すれば,それに対…:引かれる側の行があるなら、引く側にも対応する行があるはずだと述べています。この決まりの向きは、引く側から引かれる側への一方向で、引かれる側の存在から引く側の存在を要求する向きは含まれません。
- イ“商品”表のタプルと“注文”表のタプルは…:引く側と引かれる側の行は、それぞれ独立して置かれると述べています。独立して置かれるなら、引く側の値を、いない相手を指したまま書き込めてしまうため、この決まりを置いた意味が無くなります。
- ウ“注文”表のタプルが消滅すれば,それに対…:引く側の行が消えると、引かれる側の対応する行も消えると述べています。消える向きが反対で、この決まりが働く場面は、引かれる側が先に消えて残された引く側をどう扱うかを問う場面です。
この問題の用語
- 関係データベースデータを表の形で持ち、表どうしを結びつけて扱う、最も広く使われているデータベース。データの定義や操作にはSQLを使います。
出典:平成21年度 秋期 応用情報技術者試験 午前 問33
同じ用語が出る問題
- 令和7年度 秋期 午前 問28:ビューに関する記述(関係データベース)
- 令和7年度 春期 午前 問25:多重度に関する問題(関係データベース)
- 令和5年度 春期 午前 問30:参照制約に関する問題(関係データベース)
- 令和5年度 春期 午前 問26(関係データベース)
- 令和3年度 春期 午前 問28:NoSQLに関する問題(関係データベース)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)