社会人2年目でも受かるデータベーススペシャリスト試験の勉強法

令和4年度のデータベーススペシャリスト試験を受験して合格したので、どのように試験勉強したのかを共有します。
これから受験する誰かの役に立てば幸いです。

:::note warn
この記事で紹介する勉強法を実施すれば必ず受かるわけではないのでご了承ください。
また、サンプル数1(私のみ)ですので、紹介する勉強法方に全て従うのではなく、参考程度に留めて、自身の業務経験や確保出来る時間などに応じてカスタマイズするのでも良いと思います。
:::

## データベーススペシャリスト試験とは

[データベーススペシャリスト試験(通称DB)](https://www.jitec.ipa.go.jp/1_11seido/db.html)とは、IPAが主催する国家資格試験の一つで、データベースに関する専門的な知識が求められる高度試験です。

毎年10月に開催され、午前Ⅰ/Ⅱ(多肢選択式)、午後Ⅰ/Ⅱ(記述式)と4つの試験を1日かけて実施します。(ただし午前Ⅰ試験は条件を満たせば免除になります。)

全ての試験で60点以上取ることで合格となります。

私の得点は↓でした。(午前Ⅰは免除)

![result_of_exam.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2658776/de2ba5af-6965-0770-0b1e-30c2031ac72c.png)

## プロフィール

データベーススペシャリスト試験に合格した時の私の業務経歴と保有している資格です。

### 業務経歴

- 社会人2年目
- 日系SIer勤務
  - 入社~2年目の秋
    - GoとReact(TypeScript)を使った業務用のWebアプリケーション開発
      - DBはPostgreSQL(SQLで簡単なクエリを書いて実行する程度)
  - 2年目の秋~
    - PythonとMQを使ったシステム開発
      - DBはPostgreSQL(SQLで簡単なクエリを書いて実行する程度)

### 保有資格

- FE
- AP
- DB <- **new**
- LPIC-1
- CSD(スクラムデベロッパー)
- TOEIC800点

## 勉強方法

業務経歴のところに記載しましたが、私は業務でDB設計などDBをがっつり触るような経験がないためDBに関する基本的な知識を深めるところから勉強を進めていきました。普段から業務でDBをがっつり触っている方は過去問の対策だけで合格を狙えると思います。

### 学習スケジュール

試験勉強は試験の3ヶ月前くらいから取り組み始めました。
初めは、参考書やUdemyなどを用いて基礎知識を深めるための学習をして、その後過去問を使った試験対策をしました。スケジュール感は↓です。

```mermaid
gantt
dateFormat  YYYY-MM-DD
title 学習スケジュール

試験当日: milestone, 2022-10-09, 2022-10-09

section 基礎学習
参考書を使った基礎理解: active, 2022-07-01, 60d
SQLの学習: active, 2022-07-01, 15d

section 過去問学習
午前対策: active, 2022-08-01, 69d
午後対策: active, 2022-09-01, 38d
```

次にそれぞれどのように勉強をしていったのかを紹介していきます。

### 基礎学習

試験に合格するためだけが目的であるのであれば、正直この基礎学習はほとんどせずに、「ひたすら過去問を解く」でも問題ないですが、DBに関する基本的な知識がないのに試験に合格しても将来的に役に立たない飾りのような資格となってしまうので、私はここから始めました。

試験勉強として使った参考書は↓です。

- 書籍
  - **データベーススペシャリスト教科書**
    - この参考書は付録として、解説付きの過去問がダウンロードできるためマストで必要
    - <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2658776/5b054644-3107-8c97-5467-d7c640ab2357.jpeg" width="50%">
  - おうちで学べるデータベースのきほん
    - 本当に基礎から学ぶ人向け
    - <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2658776/ddc3e839-b5d5-5e7b-f9f7-e39996740808.jpeg" width="50%">
  - 達人に学ぶDB設計徹底指南書
    - 「データベーススペシャリスト教科書」でもDB設計について学びますが、もっとちゃんと学びたい人はこれも読んだ方が良い
    - 余裕があればやる
    - <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2658776/85ed83f1-83c0-77dd-c155-b370751be3da.jpeg" width="50%">
- Udemy
  - [【未経験者もこれ一本でOK】MySQLで学ぶ「SQL」「データベース基礎」講座【プログラミング初心者向け】](https://www.udemy.com/course/uz-sql-kiso/)
    - SQLをハンズオン形式で学べるためオススメ
    - 業務でがっつりSQLを使っている人はやらなくてOK

初めの1ヶ月で「データベーススペシャリスト教科書」を一周します。
勉強時間に余裕があれば他の教材もやりましょう。

1ヶ月で基礎知識がある程度ついたら実際に過去問を使って試験対策をしていきます。

### 午前対策

午前試験は比較的容易なので、あまり気張らなくて大丈夫です。
とは言え対策を全くしないと普通に落ちるので対策はします。

午後の試験に集中できるように午前Ⅰは免除となるようにした方が良いです。
午前Ⅱでウォーミングアップして午後に集中力のピークを持ってくるイメージです。

#### 午前Ⅰ

(午前試験は免除のためノウハウなし。)

#### 午前Ⅱ

午前Ⅱは4択問題の形式で40分25問です。
一見試験時間が短く感じますが、基本的に時間は余るので、時間は気にしなくて大丈夫です。

午前Ⅱの対策は単純です。
基本的に午前Ⅱ(IPAの試験全体的にですが...)は過去に出題された問題と同じような問題が出る傾向にあるのでひたすら過去問をすれば十分合格できます。

これまで基本情報技術者試験や応用情報技術者試験を受験したことがある方ならご存知だと思いますが、[過去問道場](https://www.db-siken.com/dbkakomon.php)という午後Ⅱの過去問をひたすらできる神サイトがあるのでこれを1日10問~20問解くことを2ヶ月間毎日します。問題数が350問くらいあるので、2ヶ月間で2週はするイメージです。

通勤時間などのちょっとした時間を使って問題を脳死でやりましょう。(間違えた問題はちゃんと解説を読み必要に応じて「データベーススペシャリスト教科書」で復習しましょう)

### 午後対策

午後試験は試験日の1ヶ月半くらい前には対策を開始しましょう。

午後の試験は午前の問題に比べて問題の難易度がぐっと上がるので時間内に問題を解く練習をしないと問題を解き切ることができないことがあります。

また、午後の試験対策は午後Ⅰ/Ⅱのどちらも過去問を解くことになります。
過去問を解く上で意識すべきことは

- 間違えた問題の解説をちゃんと読むこと
- 時間を測ること(ダラダラとかない)
  - 試験本番では「時間があれば解けた」というのが一番後悔しますから..
- 問題文は印刷したものを使う
  - 本番の環境に合わせましょう
  - 当日はB5の冊子(うろ覚えなので間違っていたらすみません..)なので、それに合わせて印刷する(B4 x 2枚を1枚にする x 両面印刷)

です。

では、それぞれの対策方法を紹介していきます。

#### 午後Ⅰ

午後Ⅰは用意された3問のから2問を選択する形式で、試験時間は90分です。
1問に45分使える計算になります。

勉強方法としては単純で「データベーススペシャリスト教科書」の特典として、解説付きの過去問がダウンロードできるので、過去問を過去5年分ダウンロードして、過去問をひたすら解くだけです。午後Ⅰは「出題範囲を絞って勉強する」というより、「どんな問題が来てもある程度解けるようになる」状態を目指して勉強します。なので、過去5年分 x 3問の計15問をちゃんと解きます。

1日1問解くようなペースで進めましょう。(本番までに2週できる計算)

#### 午後Ⅱ

午後Ⅱは用意された2問から1問を選択する形式で、試験時間は2時間もあります。
「1問で2時間」と聞くと恐怖で震えそうですが、ちゃんと過去問を解けば慣れます。

勉強方法としては、基本的に午後Ⅰと同じですが、1問で2時間かかるため、仕事がある日に2時間+解説を見る時間を確保するのは現実的にかなり辛いです。なので休みの日などを有効活用して取り組みます。
過去問は過去5年分やりますが、午後２はこれまでの傾向として、「概念設計の問題」と「その他(物理設計など)の問題」の2問で構成されるため、どちらかに絞って対策をするので良いです。私の場合は概念設計の問題に絞って対策をしました。

ただ、当日の問題の相性や試験難易度によっては概念設計以外を選ぶ方が得策と判断できる場合も想定されるため、「過去問3年分は2問とも解いて、残り2年は概念設計の問題のみ解く」という方針でいきます。

なので、過去問3年分 x 2問 + 残り2年分 x 1問の計8問を解きます。

1週間に2問解くペースで進めましょう。(本番までに6週あれば14問解ける計算になるので、「概念設計の問題を過去5年分 x 2 + それ他の問題を過去3年分」できる計算)

## まとめ

以上の勉強法方を実施して実際に合格しましたが、初めに書いたようにこの記事で紹介する勉強法をすれば必ず受かるわけではないので、自身の業務経験や確保出来る時間などに応じてうまく学習を進めましょう。

健闘を祈ります。