データベーススペシャリスト試験に合格するまで

# TL;DR
令和5年度秋期でデータベーススペシャリスト試験に合格したので、そのプロセスをメモ。

※この勉強法の良し悪しというよりこんな風に考えて準備した人もいるんだなぁくらいで参考にしてください。どちらかというと自分用の備忘録。

# 前提
- 四大の情報系学部、院（修士）卒（データベースは数少ない可を取った単位=あまり得意ではなかった） 
    - ちなみに学生時代のデータベースの講義で使っていた教科書は[これ](https://www.saiensu.co.jp/search/?isbn=978-4-7819-1390-2&y=2017)の古いやつで、試験勉強中分からない箇所があったときたまに読み直しました
- 普段は.NET、C#をメインに書いています
- 資格はAZ-900, AZ-104, AZ-500, MS-500, DB-900, DP-300, PL-900, AWS Certified Solutions Architect - Professional, 応用情報技術者を取得済み（DP-XXXはデータベース系の資格ですが、Azureのデータサービスに関する資格なのでDBスペシャリストとはあまり関係ないです。NoSQLとかデータウェアハウスといった単語が知れるくらい?）
- 応用情報技術者に合格して得た[午前Ⅰ試験の免除権利](https://www.ipa.go.jp/shiken/about/koudo_menjo.html)があるうちに、何か試験を受けようと思ったのがきっかけ。データベーススペシャリストにしたのは[津崎さん](https://www.tbs.co.jp/NIGEHAJI_tbs/cast/index.html)が持っていたから

# データベーススペシャリスト試験について

DBスペシャリストは以下の四つの試験で構成されています。応用情報や他の高度試験を過去二年以内に合格している場合、午前Ⅰの免除があります（申し込み時に免除登録が必要）。

|        | 試験時間 | 出題形式 | 出題/回答数 | 
| ------ | -------- | -------- | ----------- | 
| 午前Ⅰ | 50分     | 4択      | 30/30       | 
| 午前Ⅱ | 40分     | 4択      | 25/25       | 
| 午後Ⅰ | 90分     | 記述     | 3/2         | 
| 午後Ⅱ | 120分    | 記述     | 2/1         | 

より詳細な内容は公式ページを参考にしてください。

https://www.ipa.go.jp/shiken/kubun/db.html

# 申し込み&下調べ（試験まで二か月半)
2023/07/23（試験の約二か月半前）に申し込んで取り組み始めました。
応用情報のときも本を一冊買って対策したので、今回も一冊とりあえず本屋に行っていくつか眺めて、<font color=red>**自分が読みやすいと思うもの**</font>を選びました。

https://book.impress.co.jp/books/1122101156

買ったときは気づいてませんでしたが、この本の購入特典で過去問と<font color=red>**解説**</font>がPDFで見られたので午後の勉強をするときは非常に役に立ちました。（公式にも[過去問と解答例](https://www.ipa.go.jp/shiken/mondai-kaiotu/2022r04.html)はありますが、解説はないので）

いくつか先人の合格体験記を読んでざっくりとした勉強スケジュールを立てました。具体的に一日の勉強時間とかは決めておらず、「この時期にはこのくらいの範囲まで着手しておきたいなぁ」という雰囲気でスケジュールを組んでいます。
- https://oguemon.com/blog/2021-12-17/
- https://qiita.com/shiva_it/items/b4661d479eb1dbfd3692
- https://www.seplus.jp/it-exam-guide/guide/exam_prep3_for_db_h31_spring/
- https://www.seplus.jp/it-exam-guide/guide/prep4pm1_db/
- https://www.seplus.jp/it-exam-guide/guide/prep4pm2_db/

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252806/d40f2e60-c5a1-b7e7-2ad2-38c26b41e298.png)

# 午前試験対策開始
スケジュールを立てたら早速午前の対策を始めます。と言っても買った本をとにかくさらっと何周も読むという感じです。あまり時間も取っていなかったのですが（平日の平均30分くらい？土日はもう少し真面目に）、時間は短くても継続して勉強していたのが良かったと思います。本も初めは１周読むのに３，４日かけましたが、慣れてくると１日に１周は読み直すくらいの気分で眺めていました。（そんなにしっかりは読んでいません。あくまで眺めていただけです）

本を２，３周読んだくらいから過去問道場で問題を解き始めたと思います。最初は５割も正解できていなかったと思いますが、これも理解ができていない場所を見つけるいい練習なのでとにかく隙間時間（電車移動や寝る前など）にちびちび解いていました。

https://www.db-siken.com/dbkakomon.php

あと早いうちにLINEのオープンチャットとFacebookのグループでDBスペシャリストの勉強グループに入って、一応質問できる場所は見つけておきました。そんなに多用はしませんでしたが、あるだけ安心です。

# 午後試験対策開始（試験まで一か月）
2023/09/10（試験の約一か月前）に午後試験の対策を始めました。
まずしたことは選択問題の選定です。ざっくり物理設計と論理設計の２題あり、午後Ⅰはもう一ついろんなテーマの問題が出ます。試験合格までを目標に置くとどちらかに絞る感じになるので、さらっと過去問を眺めてみて、どちらの方が自分にとって勉強しやすそうか決めます。私は論理設計を選択しました。

午後Ⅱは午後Ⅰの文量が多いver.みたいな情報を見かけたので「それなら最初から午後Ⅱの勉強をすればいいのでは？」と思い午後Ⅱの過去問から着手しました。しかし、さっぱり分からない上に１年分の問題を解くのにも解説を読んで理解するにも時間がかかりすぎるので早々に諦めて午後Ⅰから勉強をし直しました。

このとき、平成26年度くらいから出題傾向が変わっているという情報も見たので、<font color=red>**平成26年度以降の過去問**</font>しか解いていません。

そして、午後試験の過去問（特に論理設計？）を解き始めて早々に思うのが「E-R図描くのが面倒すぎる...」です。本番の試験では不完全なE-R図が解答用紙に描かれていて、必要な連関を描き足していくのですが、自分で過去問を解くときには初期状態の図がないためそれを準備するのがまず面倒だったのです。
探して、すべてではないですが以下のサイトにいくつかオリジナルの解答用紙が公開されていたのでそれを印刷して使わせていただきました。<font color=red>**解答用紙を準備**</font>して練習するのはかなり重要だと思います。

- https://zigen.cosmoconsulting.co.jp/it_exam/answer_pdf.htm
- https://www.itec.co.jp/learning_download#db02

また、この時期からは午前対策はほぼ過去問道場のみで、たまに「あれ、これってなんだっけ」という箇所を見つけたら参考書を読み返したり調べたりしていました。

# 試験二週間前
色々と心配性なので、この時期から持ち物系は準備し始めます。まず必要なものは顔写真と時計ですね。<font color=red>**時計もちゃんと準備しましょう**</font>。私が受験した会場も大学の教室でしたが時計はありませんでした。直前になってこれも絶対必要だと思ったものは<font color=red>**ものさし**</font>です。E-R図を描いたり、連関エンティティの主キー、外部キーの下線を引くのに多用します。

# 試験一週間前
最後一週間は毎日午後Ⅰか午後Ⅱの過去問を一年分はやるようにしていました。最終的に平成26年~令和4年の過去問をちょうど2周したくらいだったと思います。（もちろんこのとき自己採点もしますが、部分点のつけ方等は分からず解答とほぼ同じもののみ丸にしてました。その場合、いつも合格ライン点ギリギリくらいの出来でした）
また、時間ですが午後Ⅱはそこそこ余裕はある量ですが午後Ⅰが最後まで解ききるには時間がギリギリでした。なので初めの方の正規化や連関エンティティの問題をどこまで手際よく解けるかみたいなところを意識しながらやっていました。

午前対策でやっていた過去問道場は最終的に以下のような仕上がり。回答済みが350/375になっているのは令和5年分をやっていないからですね。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252806/f0a8d139-3a35-9155-a72b-1c55a3bd6ece.png)


# 試験日（2023/10/08）

当日は午前Ⅰ試験がない分、少しだけ時間に余裕をもって家を出ます。会場周辺は混んでいると思い、近所のコンビニでおにぎり２つと[ラムネ](https://www.morinaga.co.jp/products/detail.php?id=PRD2010-02-0001)を買い、水筒にコーヒーを入れて持参しました。このラムネは会場でも食べている人を何人か見ました。

試験本番、午前Ⅱは無心で解いていました。過去問で出たものはまず落とさないように。初見のものも落ち着いて、マークミスしないように。

午後Ⅰは一番時間が気がかりでした。が、答案用紙が最初に配られるときに回答欄の形から設問がいくつか分かったので心の準備をしてから解き始めることができました。

午後Ⅱは時間的には余裕はありましたが、題材が複雑になるので完答した後も時間いっぱいまで何度も見直しました。実際何度か回答を修正しました。


# 試験終了後
IPAの高度試験は結果発表までがっつり2か月以上空きます。その間に各種予備校やIPAから模範解答などが続々と発表されますが、結局正確な採点結果は当日まで分かりません。私は緊張に弱く2か月も気にしていたら心臓が持たないため一切見ませんでした。

# 結果（2023/12/21）

結果はこんな感じでありがたく合格しました。午後Ⅰが感覚よりも良かったなぁという印象で、同じ感想の人をネットでもちらほら見かけました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252806/2d9cc066-2d8e-8690-f649-e1c6f41aa09a.png)

で、ざっくりどんな難易度の回だったのかの参考に統計情報もセットで載せておきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252806/2831171a-b89a-ab72-122e-abf1d19a235d.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252806/a02f162f-fad7-631a-a8da-006b032581f3.png)

- https://www.ipa.go.jp/news/2023/shiken/ex20231221.html
- https://www.ipa.go.jp/shiken/reports/toukei.html

良ければご参考になさってください。

<!--
# まとめ
注）以下は今回に限らずこれまでの経験を踏まえての個人的感想です。

<font color=red>X</font>：複数の参考書で勉強する
<font color=blue>O</font>：一冊の参考書で勉強する
・複数冊をしっかり有効活用できるほど時間を取れる方は少ないと思います

<font color=red>X</font>：とりあえず勉強開始
<font color=blue>O</font>：まずスケジュールを立てる
・学習の進度が遅れていないか途中で見返せるようにしておいた方がいいと思います。学習前は当然試験範囲の内容は分かっていないため、詳しい勉強の内容のスケジュールを立てるというよりは試験範囲の量を期間で区切るようなものがいいと思っています

<font color=red>X</font>：試験日前日にちょうど終わるスケジュール
<font color=blue>O</font>：途中に何回かバッファを設けたスケジュール
・予定通りに進まないのが人生です

<font color=red>X</font>：参考書を先頭から100%理解していきながら1周する
<font color=blue>O</font>：一冊を何周も読み直して理解を深める
・先頭から時間をかけて読み進めても、読み終わったころには先頭の内容を忘れていると思います

<font color=red>X</font>：参考書をしっかり読み込んでから問題着手
<font color=blue>O</font>：参考書を2周くらい眺めたら（試験範囲を一通り見たら）とりあえず問題着手
・早めに問題を解く練習をして慣れておくことが大事です。また、自分が分かっていない箇所がどこか見つけることができます。過去問で良い点を取るのが目的ではなく、本番で合格点を取ることが目的です

今回の学習時間はしっかり測ったわけではないですが、140時間前後だったかなぁと思います。
ただこの学習時間も試験に近づくにつれギアが上がる感じで増えていきました。
初めの頃は平日30分くらい、休日2時間くらい。そこから試験に近づくにつれギアが上がる感じで平日1時間、休日4時間、平日1時間半、休日6増えていきました。1h, 休日4.5h x 10週）。私の前提の部分も併せてご参考になさってください。

-->