こんにちは!めっそそです。
12/22(木)にデータベーススペシャリスト試験の合格発表があったのですが、無事合格することができました!
実は去年も受験していたのですが、準備不足とそれ以上に右手を骨折していたので結果を見るまでもなく不合格…ということで、今年は雪辱を晴らすことができました!
ということで、備忘録がてらどのような対策をしていったのかをまとめました。これから受験される方の参考に少しでもなれば幸いです。
データベーススペシャリスト試験の概要
試験の概要については↓を参照してください。
誤解を恐れず乱暴にまとめると、DB設計とSQLに関する専門知識を問われる試験です。
試験時期は10月の第2日曜日になります。他のIPAの試験と同じですね。合格点も他の試験と同様、全試験区分で60点以上を取れば合格となります。
ちなみに、個人的には高度試験の中では比較的経験が問われにくくとっつきやすいこと、論文式の試験がないことから最初に受験する高度試験としておすすめです。
以下、私の行った対策をまとめていきます。ちなみに対策期間としては1年4ヶ月(うち4ヶ月ほどは勉強できず)、2回目の受験で合格でした。なお、物理設計は苦手意識が強かったため端から捨て、論理設計を中心に勉強しました。
2021年7月(1回目の受験インプット期)
応用情報技術者試験の合格を確認してから勉強を開始したため、7月からの勉強となりました。この時には試験の名前しか知らないレベルだったため、ひとまずテキストを買って読み通しました。買ったテキストは「情報処理教科書 データベーススペシャリスト」(通称:三好本)です。
過去問が豊富なこと、初学からでもとっつきやすそうなことから選択しましたが、今になって考えると情報が洗練されすぎていてわかった気になる部分が多かったかなと思います。後にあるとおり何度か読み返しています。
※余談ですが、この本にあるSQLの説明はかなり丁寧で下手なSQLの解説本より役に立ちます!試験が終わっても中々手放せず、何かあるとまずこの本を参考にしています。
最初は雰囲気を掴むこと、細かい部分の取りこぼしはある程度しょうがないことと割り切り、かなりサラッと流し読みをしました。この時点では例えば正規化について、その用語くらいしか身についてないと思います。
1週読み終わると、2週目で重要そうな部分(正規化、多重度、スーパータイプとサブタイプ等)を読み込みました。この時もとりあえず回そう、わからない部分は後で見返せばいいやくらいの気持ちでサラサラと読みました。実務でほとんど触っていない人間がいきなりインプットだけでこの辺を理解するのは至難の業です。
※ちなみに、職場で一年先に合格した先輩は↓のテキストを使っていたそうです。途中で見たのですが物理設計を中心に対策する場合はこちらのテキストの方が記載が充実しているかもしれません。
2021年8月〜2021年9月(1回目の受験アウトプット期)
一通りテキストを読んだ後は、過去問の演習を行いました。
この時は「最も難易度が高いのは午後Ⅱの試験だから午後Ⅱから対策をしよう」と意気込んで始めたのですが、失敗だったと思います。詳しい理由は後述しますが、「何が正解で何が間違っているのか、自分では判断のつかないまま赤で正答を書く」作業に心が折れました。
午後Ⅱの最大の難関は「ひたすらに長い要件定義ライクな文章を、どれだけ注意して読み続けられるか」になります。
理屈が頭ではわかっていても何に注意すべきか、ポイントはどこなのか、そもそも何が聞かれているのか…を、10ページ以上にわたる問題文からいきなり読み解いて解答に記載し、それより長い解説から吸収する作業は初学者にはきつかったです。多分この時期に身についたのは、精々「問題文の出そうなところには線を引こう」とかそのレベルだと思います。
それでもなんとか5年分くらい解いて、運がいい時にかろうじて6割超えたかな?くらいの得点を取れるようになりました。午後Ⅱの対策で手一杯だったため、午後Ⅰについては対策0でした。
1回目の受験
迎えた試験当日ですが、試験の10日ほど前に右手を骨折し7日前に手術をしたばかりだったので満身創痍にも程がある状態での受験となりました。
(ちなみに特別措置ができないかと相談したのですが、「直前に言われてもどうしようもない」とのことでした。骨折は計画的に、ということなのでしょうか??)
いざ試験を受けたところ、まず右手が使えない時点で図が描けないし字が書けない。これはある程度想定していたのですが、それ以上に時間が足りず午後Ⅰの問題が解けませんでした。
午後Ⅱで対策をしていたから大丈夫だろうとタカをくくっていたのですが、実は午後Ⅰの方が時間的制約が厳しいことをここで知りました。(体感的には1.3倍速くらいで解かないと足りない気がします。)
結果、午後Ⅰの時点で絶望的な気分になりつつ午後Ⅱを受けましたが、午後Ⅱも時間が足りず。右手が折れていたから仕方ないと自分に言い聞かせていましたが、折れてなくても多分変わらなかったと思います。案の定結果は不合格でした。
1回目を振り返ってみての反省
1回目の試験を受けて学んだこととして、①午後Ⅰの対策をしなければならない、②解答スピードを上げなければならない、③何が分かっていないのか分からない状態を脱しなくてはならない、がありました。
特に急務だったのが③です。今の自分に足りないものが何かを把握できていない状態だったので、とにかく自己分析に努めました。試験の結果がわかった後の状態としては、
- 主キーから外部キーに向かって矢印を引く
- 問題文に書いてる要素を関係スキーマに書く
- テーブルの中で一部分に従属するものは切り出す、これを正規化という
くらいの認識しかしていませんでした。
今考えるとよくその状態で試験を受けにいったものだと思います。そりゃ部分関数従属と推移的関数従属の違いも答えられないしどっちが先かなんかも分かる訳ないですね。
2022年3月〜4月(2回目の受験インプット期)
仕事がやや忙しくなり時間が空いたのですが、今回は時間をとって対策をしようということで3月から勉強を再開しました。前回同様まずはテキストを読んだ後、今回は午後Ⅱの解答を数年分眺めるところから始めました。
向こう10年分くらいをとにかく見て、「解答でよくある形は何か?」をまずは探しました。その中で気づいたのが「連関エンティティ」「スーパータイプとサブタイプ」に関する出題でした。だいたい関係データモデルを作成せよという問題では、これらが答えさせられます。
ということで、「連関エンティティ」「スーパータイプとサブタイプ」のみに注目しテキストを読み、問題を解くと徐々にこの部分が見つけられるようになりました。最低限ここに意識があるだけでも、かなり午後問題の見通しがよくなります。
また、非常に適当な覚え方をしていた正規化について学習し直しました。その際には「達人に学ぶDB設計」を副読本として読み進めました。
2022年5月〜9月(2回目の受験アウトプット期)
ある程度問われやすい部分、自分の苦手な部分を把握した上で過去問の演習に取り組んだのですが、過去問の演習に取り組むにあたり普通に解くのではなく、「制限時間の中で0から概念データモデルと関係スキーマを作成する」ということをしました。
実はこれが効果覿面で、問題文に対する注意力が上がる、より厳しい制限時間の中で解答を作成することでスピードが上がる、問題の要件に対する理解力が上がるため、模範解答や解説を自分の解答と比較しやすくなるという効果がありました。
午後Ⅰを10年分解いた後に午後Ⅱを10年分やったのですが、1年前に解いたことがあるとはいえ8割〜9割程度の正解率を安定して取ることができるようになりました。直前に解いた前年度の問題も、余裕で6割以上取ることができました。
ちなみに午前Ⅰについては応用情報技術者試験合格による免除があり、午前Ⅱの択一については3日前くらいからデータベーススペシャリストドットコムの過去問道場で10年分くらい解く対策をしました。
IPAの択一試験は同じ問題が出るので、それ以上の対策は不要だと思います。
2回目の受験
午前Ⅱについては10年分の演習の効果があり、かなり余裕をもって解き終わることができました。
午後Ⅰですが、感触としては例年より難化の傾向があり、下手するとちょっと危ないかな…というでした。しかし、一応自分の解答には自信を持つことができた状態でした。
午後Ⅱについてもやや難化していた気がしますが、おそらく初見だからだと思います。それでも午後Ⅱは貰った…!という感じでした。午後Ⅱ開始時点で脱走した人がちらほらいたので、やはり鬼門は午後Ⅰだったのかもしれません。
結果としては、午前Ⅱ80点、午後Ⅰ88点、午後Ⅱ83点で合格でした。おそらく午後Ⅰは難しすぎて下駄を履かされたのだと思います。
2回目を振り返ってみての反省
2回目の試験に関しては時間的余裕もかなりあったことから、万全に近い対策をすることができました。特に時間と労力がかかるものの効果が絶大な、「制限時間の中で0から概念データモデルと関係スキーマを作成する」作戦は大成功だったと思います。
その上で、改めて思うこととしては「午後Ⅱではなく午後Ⅰの対策からすべき」ということでした。
理由としては、
- 午後Ⅱは分量が多く、演習に時間がかかるが午後Ⅰは半分未満の時間で解くことができる。
(午後Ⅱ:120分で1問 午後Ⅰ:90分で2問→45分で1問) - 午後Ⅱは午後Ⅰより複雑になるため採点、正誤の確認が難しい。
- 午後Ⅱは解説も問題に比例して長大になるため、解説の途中で解説がわからなくなる。
- 午後Ⅱより午後Ⅰの方が時間的にキツい。
- 午後Ⅰにしかない形式の問題がある。
が挙げられます。最初は小規模な問題に同じだけ時間をかけて慣れていく方が良かったというのが自分の反省点です。正直、午後Ⅰがちゃんと解けるなら午後Ⅱは分量が多いだけなので解けます。
また、概念データモデルや関係スキーマを自分で作成するにしても最初は午後Ⅰくらいの分量から始める方が取りこぼしがなく、ちょうど良いと思います。
まとめ
データベーススペシャリスト試験ですが、終わってみるとインプットの分量が資格の難易度に対して少なく、お買い得な試験だったと思います。
また、論理設計のよい勉強になり、試験対策を通じてER図を読み解くのがかなり早くなりました。個人的に最も効果を感じている部分かもしれません。
決して手ぬるい試験ではありませんが、この試験の勉強をすることでDB設計、ひいては要件把握の非常に良い勉強になります。応用情報技術者試験に合格して次のステップを目指している方、設計スキルを高めたい方は是非挑戦してみてください。
コメント