はじめに
タイトルにある通り、2024年のデータベーススペシャリスト試験に合格しました。
試験勉強の際には、他の方のブログ等も参考にさせていただいたので、私も誰かの参考になればと思い合格までの道のりを書いてみました。
私の備忘録の役割も兼ねてます。
受験時のスキル感
すでに他の記事でも触れていますが、私は開発未経験の状態から2023年12月にWebエンジニアへキャリアチェンジしました。
受験時は2024年10月なので、エンジニアとして10ヶ月ほどのキャリア感です。
バックエンド開発(Ruby / Rails)がメインです。
開発の中でデータベースに関わる業務は以下のような感じでした。
- 開発のソースコードで SQL を書くことは基本的にない(Rails がやってくれるため)
- Rails が発行した SQL を確認することはよくある
- お客様からの問い合わせやバグの原因解明などで、データベースにアクセスしてデータを確認することはよくある
- select 文でデータを抽出して確認するなど
- update, delete などでデータを修正することは基本的にしてない(Railsのバリデーションなどを通したいため)
- 機能追加時にテーブルやカラム追加などはたくさんしてきた
- 第何正規化とか考えたことない
- ただし、大掛かりな設計?はしてないという感覚
- 主キーについてあまり考えたことがなかった(Rails が id 発行してくれるので)
- 複合ユニークとかはよく考える
ちなみに、転職前は2年ほどSIerっぽい事もしており、そこで基本情報技術者とかAWS資格とか取得済みでした。(開発はしてない)
データベーススペシャリストを取得しようと思ったきっかけ
正直なところデータベーススペシャリストという資格自体は持ってようが持ってなかろうが、どちらでも良いかなと思っています。
主な取得の同期は下記です。
- データベースに関するの汎用的な知識に触れておきたかった
- 現状の実務では触れないような知識にも触れておきたかった
- 目標かつ、カリキュラムが整っていると勉強しやすいので、資格取得を目指すことにした
要は、エンジニアとしてのキャリアスタートは遅い方だと思っているので、実務であまり触れないようなこと、知らないことを詰め込んで幅を広げておきたいといったところです。
結果
なんとか合格!!
手応え的にもギリギリ合格に滑り込んだかなー?といった感じでしたが、まさにギリでした笑
試験 | 得点 |
---|---|
午前1 | 78.20点 |
午前2 | 72.00点 |
午後1 | 73点 |
午後2 | 60点 |
対策に使用したもの
-
情報処理教科書 データベーススペシャリスト 2024年版
- ダウンロード特典で過去問(午後1、午後2)&解説22年分付き!
- 午前問題232問&解説付き!
- データベーススペシャリスト過去問道場
-
応用情報技術者過去問道場
- 午前1対策
対策の流れ
7月下旬〜8月中旬
【情報処理教科書 データベーススペシャリスト 2024年版】の【午前問題232問完全版】を解き切る。
問題解きながら参考書の該当箇所の確認。
8月下旬
令和5年の午後問題を全て解く。自分の苦手な分野や得点源になりそうな分野の把握。問題の形式の把握。
9月
過去問演習。午後1中心。
10月
午前2の解き直し & 午後1の解き直し。
対策の方針
ある程度メインの分野を決めておくと良い
論理設計(概念データモデル、関係スキーマ)か物理設計(データベース実装)、SQLに大別されます(多分)。
SQLは普通に勉強する必要があるように感じましたが、論理設計か物理設計かは選択問題次第ではどちらかに力を入れて勉強するのはありだと思います。
選択の軸は例えば下記の感じとか
- 問題のパターンが少なく対策しやすいと言われている論理設計を選ぶ
- 自分が苦手な分野を勉強したいため、その分野を選ぶ
- 勉強していて楽しい方、得意な方を選ぶ
- どちらもやる
私の場合は、物理設計解いてる方が楽しく感じたので、物理設計をメインにしました。
そのため、論理設計の午後問題はあまり解かなかったです。いつの日か論理設計中心で再度資格にチャレンジしても良いかもなと思いました。
午後1の対策でも午後2の対策になるのでは?
データベーススペシャリストの対策記事などを見ていると、午後2を中心に対策することをお勧めしている記事が多い気がしました。
午後2が一番難しいので、午後2が解けるレベルに到達すれば、午後1も解けるよねという理論です。それはその通りだと思います。
ただ、午後1で出ないような内容が午後2で出るという印象はあまりありませんでした。午後1で出た問題をしっかり理解していれば午後2も解ける気がしました。(あくまで個人の感想ですが)
また、午後2は試験時間が150分と長丁場で、過去問を解くのも一苦労です。朝とかに時間を作って勉強してたため、2.5時間を一気に確保するのは難しかったです。解説の確認等を含めるともっと時間がかかり、1日では終わらなくなってしまいます。
一方、午後1は実際の試験時間は90分で、過去問演習時は60分程度で一通り解き終えられます。(分からないことが多いので、少し考えて諦めて解説読むスタイルです)。
「午後1の対策でも午後2の対策になりそう」「午後1の方が私の勉強時間に合わせやすい」といった理由から、私は午後1を中心に対策しました。
ただ、もちろん、午後2の対策をしっかりした方が良いと思います!
私は土日にがっつり時間をとって午後2対策する予定でしたが、色々あって時間を取れず、平日の午後1対策のみで試験を迎える形になったという感じです。
「情報処理教科書 データベーススペシャリスト」めっちゃ良いです
試験に合格するためであれば、この参考書1冊で足りると思いました。
午前2試験や午後試験の解説(20年分くらい)がWebからPDFとしてダウンロードできますので、おすすめです。
自分は、午前2試験を解いて解説読んで、参考書の該当部分をさらに読む感じで進めていました。
もっと知見を深めていきたい場合は、「達人に学ぶDB設計徹底指南書」「達人に学ぶSQL徹底指南書」あたりをプラスアルファで読んでいくと良いのかなといった印象。
(私はまだやってないです。いつかしっかり勉強したい。)
午前1は前日以外対策しない
午前1は応用情報技術者試験の午前問題から出題されるようですが、正直範囲が膨大すぎて本気で対策しようとすると中々です。
目的はデータベースの教養的知識の勉強にあったので、午前1に時間をかけることはキッパリ諦めました。
私は、前日に応用情報技術者の過去問道場で問題数が多い分野に絞って対策しました(セキュリティ、ネットワーク、ソフトウェア、コンピュータ構成要素、システム構成要素)。
もちろん、午前1の対策はするに越したことはないですが、午前1の対策してからデータベーススペシャリストの対策という流れだけは辞めることをお勧めします。
試験を終えて
全体を通して
当然ですが、しっかり勉強すれば合格できると感じました。
問題のパターンが比較的固定されている印象で、対策しやすいと感じました。
データベースの知識を問われているよりも、要件や仕様を読み取る力を問われているような印象もあり、問題文長くて疲れました。
また、自分の場合は SQL にある程度耐性があったので、そんなに苦労しませんでしたが、全くの未経験だと結構大変だと思いました。
業務に活かせるか
あまり意識していなかった SQL の勉強になりました。普段の業務では直接 SQL は書きません。データ確認のために簡単な select 文を実行する程度です。insert / update / delete / create table / trigger / grant / ウィンドウ関数などはあまり意識して描かないので、勉強になったかなと思います。
また、排他制御、アクセス性能、区分化、など普段あまり考えられていない領域の知識を得られ他のは良かったです。
より業務に活かすという意味では、自分の場合は論理設計の方を中心に学習した方が良い気がしました。普段の業務では、すでにあるシステムにテーブルやカラムを追加する程度の設計しかしてないです。(携わったことがあるのも2-3プロダクト)そのため、要件や仕様を読み解きながら0からDBを設計する練習にはなるかなと思いました。(とはいえ、問題が最初からほぼ設計してくれちゃってますが)
今回力を入れなかった分野に関して
今回は論理設計の方に関しては、あまり勉強せずでした。
合格を優先する場合は、しっかりと対策する分野の方針を決めることが大切だと思います。
今回勉強しなかった論理設計に関しては、改めて勉強して、論理設計中心で再度試験を受けてみようかなと思いました(別に受ける必要はないのですが、モチベーションのため笑)。