Alice の備忘録

大人の学習帳

平成29年度春期 DB試験 午前2で私が間違えた3問

データベーススペシャリスト試験受けました。
午後1が時間内に全然解き終えられなかったので落ちたと思います。
次は午前1免除の有効期限が切れるので、次は朝一からぶっ続けかと思うとつらいです。

午前問題は回答がすぐ公開される( 公式の解答例 )ので答え合わせしました。
午前2については某ドットコムをやりこんでいたので、ひょっとしてひょっとしたら全問正解かも……なんて考えたりしましたが、自信のなかった問題はやはり間違えていました。

そんな間違えた問題3問についてメモです。

※ 問題文は上記のリンクからも飛べるIPAの公開情報から引用しています。

1:H29春 午前2 問8

問題文

“社員"表から、部署コードごとの主任の人数と一般社員の人数を求める SQL文とするために、a に入る字句はどれか。ここで、実線の下線は主キーを表す。

社員(社員コード, 部署コード, 社員名, 役職)
※社員コードに下線

SQL 文〕
SELECT 部署コード,
COUNT(CASE WHEN 役職 = ‘主任’ [ a ] END) AS 主任の人数,
COUNT(CASE WHEN 役職 = ‘一般社員’ [ a ] END) AS 主任の人数
FROM 社員 GROUP BY 部署コード

〔結果の例〕
部署コード 主任の人数 一般社員の人数
—————————————————————–
AA01   2 5
AA02   1 3
BB01   0 1

ア THEN 1 ELSE -1
イ THEN 1 ELSE 0
ウ THEN 1 ELSE NULL
エ THEN NULL ELSE 1

答え

コメント

イを選んで間違えました。
もし役職が「主任」か「一般社員」に一致しなければ人数をカウント(加算)しなくてよいので ELSE 0 かと思ったのですが、COUNT 関数はその列の値が NULL 以外のレコード数をカウントするので、0が返ってきたとしても+1としてカウントされてしまうのでした……。
なので正解は ELSE NULL のウでした。

2:H29春 午前2 問9

問題文

SQLが提供する3値理論において,A に 5,B に 4,C に NULL を代入したとき,次の理論式の評価結果はどれか。

( A > C ) or ( B > A ) or ( C = A )

ア Φ(空)
イ false(偽)
ウ true(真)
エ unknown(不定)

答え

コメント

NULL が入った時にどうなるか覚えていなくて、イを選んで間違えました。
そもそも3値論理の3値が、true と false の2つの真理値のほかに unknown を追加したものなので、問題文の「3値論理」がちゃんと目に入っていれば推測できたかもです。
3値論理では以下のような優先順位があります。

  • ANDの場合:false > unknown > true
  • ORの場合 :true > unknown > false

例)

  • trun AND unknown → unknown
  • true OR unknown → unknown
  • false AND unknown → false
  • false OR unknown → unknown

これより問題文の論理式を考えると次の通り unknown となるのでした。
unknown or false or unknown → unknown

3:H29春 午前2 問22

問題文

メモリアクセスの信頼性を高めるための方式で,データ誤りの自動訂正が可能なものはどれか。

ア ECC
イ RSA
ウ チェックサム
エ パリティ

答え

コメント

「メモリアクセス」、「信頼性」、「データ誤り」というキーワードを見た瞬間、いままでに過去問でよくみたことがある「パリティ」をあまり考えずに選択してしまい間違えました。

ECC ( Error Correction Code ) は日本語だと誤り訂正符号。字の通り、データ誤りを検出して訂正することができます。
しかしパリティは誤りを検出することはできても、どこが誤ったかまではわからないため、訂正することができません。これはチェックサムも同様です。
なお、RSA公開鍵暗号の話なのでデータ誤りの自動訂正とは別の話です。

おまけ:勉強に使った本

DBについてはそんなに詳しくなく偶にSQLをちょこっと書くぐらいだったので、まるまる過去問本ではなく、解説+演習タイプの一から勉強できそうな本を探していました。
そこで、口コミとか全く見ずに書店に行っておすすめされていた 「 データベーススペシャリスト「専門知識+午後問題」の重点対策」( アイテック)を買ったのですが、これが自分には合わず失敗でした。
概念についての用語とかもさっぱりだったので、解説を読みこなすのにとても時間がかかってなかなか進まなかったので途中で断念しました。
ある程度理解している方なら問題なくスラスラ読みこなせるのかと思います……。

結局、自分でも読めそうな本をもう一度探して「 データベーススペシャリスト 合格教本」( 技術評論社)を買いました。
こちらは自分にもあっていたようでとても読みやすく、各用語の意味もしっかり理解していくことができました。
たまに解答説明の図の文字の間違い(コピペ修正漏れ?)なども少しありましたが、自分で気づけるかつ理解を妨げるレベルではなかったのでそんなに気にならなかったです。


本によって記載のレベル感が結構違ったので、合わないなと思ったらもったいないと我慢せずに、すぐに切り替えることも重要だと思いました。