R2 午後Ⅰ 問3 設問1 (3) j, k, l

cybershotさん  
(No.1)
テーブルの検査制約をSQL文で記入する設問について質問です。
会員区分='A'(個人会員)について、年代に関する制約の想定解答は "年代 IS NOT NULL" となっていますが、"年代 BETWEEN 1 AND 7" ではだめでしょうか?

"年代"列のデータ型はSMALLINTで指定されており小数値の登録はできないため、このような解答でも正解として認められる気がします。

ご存知の方いらっしゃいましたら、ご教授のほどよろしくお願いいたします。
2023.09.23 20:29
GinSanaさん 
DB シルバーマイスター
(No.2)
P23の表4で参照制約でP20の図1の年代へ参照が張られているので、検査制約で同じことをしてもしょうがないです。
2023.09.23 21:23
daizさん 
(No.3)
※公式の採点講評は必ず読みましょう。

・元のテーブルの制約で値をチェックしてない。
・本文に「統合に伴うテーブルの定義(列名,データ型,制約など)の変更は必要最小限とする。」とある。
このことからBetween句では減点ではなく0点と思われます。リアルでは好きにしたらいいんですが…。
2023.09.23 22:03
GinSanaさん 
DB シルバーマイスター
(No.4)
ちなみに、採点講評では
設問 1(3)では,見直し後の“会員”テーブルの年代は外部キーであり,取り得る列値が限定されているにも
かかわらず,IN 述語又は BETWEEN 述語を検査制約に追加する解答が散見された。一方,性別は外部キーで
はないので,取り得る列値を限定する IN 述語を検査制約に定義する必要がある。参照制約の外部キーである
かどうかによって検査制約の定義に違いが出ることを理解してほしい。
とあるので、これ以降は気をつけて本文を確認してください。
2023.09.23 22:36
cybershotさん  
(No.5)
ご回答ありがとうございます。
採点講評が公開されているんですね・・・
以後、チェックするよう心掛けます。

"年代"列は参照制約により参照先テーブルで取りうる値を制限されていることが頭から抜け落ちていました。。。
2023.09.24 01:23

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。

その他のスレッド


Pagetop