tkmt log

旅行とか写真とかたまには自己研鑽とか

データベーススペシャリストの勉強法

f:id:s_tkmt:20170729090832j:plain

データベーススペシャリスト受かりました。自分が何をやってきたのかを振り返るために記録を残しておきます。「データベーススペシャリスト 勉強法」等で調べればその手のサイトはわんさか出て来ますが、ご参考になれば。

はじめに

社会人7年目。そろそろ高度情報処理技術者試験の資格の1つでも取っておきたいなぁという漠然とした思いから、受験を決めました。
うちの会社としても情報処理の資格は取るのを推奨していますし、同期でも高度資格を1つ2つ持っているのはそう珍しくない状態となっていたので、ちょっとした焦りもあったかもしれません。

ちなみに、高度資格についてはネットワークスペシャリストを取ろう!と過去に2回挑戦しているのですが、2回とも落ちました。(現場でインフラやっていない人間にはやっぱりキツい…。)

ちなみに業務としてはSQLであれこれデータ参照するのはほぼ日常的にやっていますが、テーブル設計やDB管理系の業務は未経験です。

計画

キッチリとした計画は立てていないですが、ざっと以下のような感じで進めました。

  • 2月下旬~3月中旬:通勤時間や移動時間を利用して、午前2の問題を大体解けるようにする。
  • 3月上旬~3月下旬:主に土日を利用して午後1,午後2の過去問を解いて問題の傾向やボリューム感を掴む。
  • 4月上旬~試験直前:基本的には午後の勉強中心。午後1,午後2について過去問自己採点で6割は超えている状態にする。午前2も軽く復習して、7~8割解ける状態にする。

試験までの間に、実家に帰省したり広島に旅行したりと、常に土日を勉強に割けていたわけではないですが、トータルで過去問は4~5回分くらい解きました。(記録をつけていなかったので、正しい回数は覚えていないです…。)平日でも早く帰れた日は午後1だけ解いたりするなど、そのあたりは自分のペースに合わせて勉強を進めました。

参考書

使った参考書は以下です。色んなサイトで紹介されていますね。

情報処理教科書 データベーススペシャリスト 2017年版

情報処理教科書 データベーススペシャリスト 2017年版

 

過去問の解説pdfが10年以上にわたってダウンロードができるため、午後問題を解いていくのに非常に有用です。他方、知識面に関する内容はこの本は薄いのですが、データベーススペシャリストそのものとして必要な知識はそこまで多くないため、この本の内容がしっかり理解していれば問題ないと思います。

なお、午前2については以下サイトのみで勉強しました。

情報処理技術者試験の勉強をやり直し −ITパスポート、情報セキュリティマネジメント、基本情報技術者、応用情報技術者、高度試験の過去問題の解説−

戦略

午前1は免除だったため、午前2、午後1,午後2について書きます。

午前2は全部4択なのと、一部は過去問からも出題されるため、とにかく過去問を解きまくって7~8割は確保できるようにしました。午前2は全部で25問。そのうち20問はDBに関する問題、5問はIT全般的な問題となっております。前者は本丸となるDB関連の問題なので、分からない問題は必ず腑に落ちるまで調べて理解するよう努めました。が、後者についてはどういう問題が出るかわからないので、過去問解いているときはあまり深追いせず、この箇所は半分くらい解けたらいいなくらいで勉強していました。

午後1,午後2について、参考書やその手のサイトでは「SQLは取るな!DB設計、概念データモデル設計を取るようにしろ!」というような記載が散見されますが、自分が過去問を解いた感覚としてはSQLも特別難しいという感じはしませんでした。(普段業務でSQL叩いている人であれば分かるレベルではないかと思います。結合、副問合せ、集合関数あたりが理解できていれば多分問題ない。)
特にここ最近の傾向としては、DB設計/概念データモデル設計の問題と見せかけて、SQLの問題も1~2問入れたりすることもあるようなので、ある程度の知識は持っておく必要はあると思います。
とは言え、あまりに過去問の傾向から大きく逸脱する問題や、その年だけ異様に難しすぎる問題は避けるようにして、過去問は解いていくことにしました。

経過

2月下旬~3月中旬:そろそろ勉強始めなきゃ、ということでまずは午前2の過去問を解いていくことから開始。元々持っている知識や、4択なので消去法でなんとなく分かる問題もあるため、多分この時点で6割いくかいかないかくらいの正答率だったと思います。あとは正規化だったり、トランザクション制御だったり、分散データベースといった分野をネットや本で調べて理解に努めました。

3月上旬~3月中旬:午後の過去問をちょくちょく解いていきました。この段階ではほとんど解けず、多分自力で解けているのは2~3割くらい。ただ、ここでの目的としては自力で問題を解くというより、答えを見ながら、問題文のどこをポイントとして見ていけばいいのか、そこからどう答えに結びつければいいのか、という勘所を掴むことに注力しました。

3月下旬~4月上旬:このあたりで大体どういう解き方をすればいいのか、という感覚がつかめてきたので、自力で解いてその感覚が正しいかを答え合わせしていく、という感じで進めていきました。おそらくこの時の自己採点としては5~6割くらいだったと思います。ちょっと合格には届かないくらいの点数でしたが、理解が間違っていて点数が取れなかった、というよりは問題文の読み落としで点数が取れていない、という状態だったため、あとはじっくり時間をかけて見直しもしていけば6割行けそうだな、という感覚がつかめました。

4月中旬~試験直前:大体午後問題の感覚はつかめたので、午前も思い出しがてら復習。午後問題は前日に最後の仕上げ。

当日

午前2は特に問題なし。7割は取れている感覚はありました。

午後1が案外鬼門でした。選択した問題の1つが過去問とちょっと傾向が異なっており、思いの外時間を撮られてしまいました。結果、もうひとつの選択問題の時間が足りず、3割くらい勘で埋めるという状態でした。正直6割いっているかいっていないか微妙でしたが、せっかくなのでここでは帰らず午後2に臨みました。

午後2はオーソドックスな問題だったと思います。それなりに難しいは難しかったですが、手応えはあったため、午後1さえ通っていれば受かると思いました。

結果

冒頭記載の通り、無事、合格しました。

ちなみに点数配分については記憶ベースですが、午前2は75%くらい、午後1は67%くらい、午後2は63%くらいだったはず・・・。
※1回確認した後、合格したことに安心しきってしまい、スクリーンショット撮るのを忘れて照会パスワードを捨ててしまいました・・・。

トータルの勉強時間は記憶ベースの概算ですが、午前問題:4~5時間、午後問題:5時間×4~5回分で20~25時間くらい?合計25~30時間くらいだと思います。これが多いか少ないかは何とも言えないですが、普段仕事でDB触る機会が多ければ特段難しい試験ではないかなと思いました。

次の情報処理技術者試験は秋に控えていますが、ちょっとプライベートで忙しくなりそうなので、来年の春に受けようと思います。受けるならPMかな~。受かるかなぁ・・・。