にしのクエスト2

情報処理技術者試験と資格学校講師の日常

f:id:koharuwest:20191106221322p:plain

まいにち基本 平成31年春午後問題解説 問3その2

続きなので、その1も見てくだしゃい。

f:id:koharuwest:20190831114239p:plain


午後の問題を少しずつ解説していく連載です。
・赤字は「私ならここに線を引くなぁ」という場所。
・青字は私が考えたことや注釈などです。
皆さんも一緒に問題を読みながら、解答の方法をトレ
ースしてみていただけたら、幸いです。

 

問3


設問2
次の記述中の( )に入れる正しい答えを、解答群の
中から選べ。


D中学校では、転入生を受け入れる場合、転出元の中
学校から受領した定期健康診断の結果の情報をデータ
ベースに登録する。健診結果表には、受診者IDと年
度に( d )制約を設定し、受診者IDに受診者情
報表の受診者IDへの( e )制約を設定している。

この制約に従うと、転入生の定期健康診断の結果の情
報の健診結果表への登録は、受診者情報表に転入生の
情報を登録した後に行う必要がある。

f:id:koharuwest:20190921231412p:plain


 

設問3
次の記述中の( )に入れる正しい答えを、解答群の
中から選べ。

図2に示す身長階級表を作成し、これに対応させて、
2019年度の男子生徒の定期健康診断データを基に、
図3に示す身長度数分布表を作成したところ、「人数
が相違している」との指摘があった。

f:id:koharuwest:20190921231534p:plain


図3に示す身長度数分布表の作成は、次の(1)~
(3)の手順で行った。

(1)
図2に示す身長階級表をデータベースに作成した。
(2)
新たなSQL文を作成した。

(3)で作成したSQL文の実行結果を用いて、図3
に示す身長度数分布表を作成した。


調査の結果、(2)で作成したSQL文に誤りがある
ことが分かった。(2)で作成したSQL文は、次の
とおりである。このSQL文は、対象とした全生徒を
必ずいずれかの身長区分に分類して集計するために、
身長階級表からは全レコードを、測定結果ビューから
はON句に指定した結合条件に一致するレコードを抽
出している。

f:id:koharuwest:20190921231623p:plain
図1を見ると、2019年度は男子全学年での最大身
長が180.1cmであり、190cm以上の生徒は
存在しないが、図3の身長度数分布表では、190c
m以上の人数が1となっている。この原因は、(2)
で作成したSQL文では( f )とすべき箇所をC
OUNT(*)としていることにある。その結果、測
定結果ビューと身長階級表を結合した結果において、
NULLとなっているレコードもカウントしているか
である。

 

f:id:koharuwest:20190921232028p:plain

 


設問1

f:id:koharuwest:20190921231823p:plain

こんな風に書いてあるので、主キーでしょう。エ。


赤字にさせてもらいましたが、このような制約を
参照制約と言います。なのでウです。


ようするに、全部数えてしまってるので空行もカ
ウントしてしまうわけです。全部数えないように
するには、身長を直接カウントするしかありません。
正解はアです。


(次回に続く!)