見出し画像

データベーススペシャリスト試験の勉強法と試験体験記


初めに


こんにちは。株式会社SHIFT アプリケーション開発テクノロジーグループのさとうです。

令和6年度秋期のデータベーススペシャリスト試験を受験し、初挑戦で合格することができました。 今回は試験について振り返りながら、試験の勉強法について共有したいと思います。

次回のデータベーススペシャリスト試験を受験される方にとって参考になれば嬉しいです。

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


IPA(情報処理推進機構)のHP に定められている本試験の対象者は次の通りです。

高度IT人材として確立した専門分野をもち、データベースに関係する固有技術を活用し、最適な情報システム基盤の企画・要件定義・開発・運用・保守において中心的な役割を果たすとともに、固有技術の専門家として、情報システムの企画・要件定義・開発・運用・保守への技術支援を行う者

試験は以下の4部で構成されており、9:30〜16:30までの長丁場となっています。

  • 午前Ⅰ ( 9:30〜10:30)

  • 午前Ⅱ (10:50〜11:30)

  • 午後Ⅰ (12:30〜14:00)

  • 午後Ⅱ (14:30〜16:30)

私自身について


普段はプログラムを書いておりますが、データベースの論理設計を行うこともあります。

データベースの論理設計を任せてもらった最初の頃は、基本的な正規化の理論もいまいち理解できておらず、レビューで指摘を頂くことが多かったです。 そんな状況を改善したく、データベーススペシャリストの勉強を始めました。

また、他の高度試験ではプロジェクトマネージャとシステムアーキテクトに合格しています。 もし良ければ過去に作成した記事もご覧ください。

学習期間


学習期間としては約5ヶ月設けました。 私は大体試験勉強には2〜3ヶ月設けるのですが、今回データベースに対する知識が足りていないと判断したため、いつも以上に勉強することにしました。

平日は1日1時間、休日は2日合わせて3時間、1週間で約8時間勉強することを心掛け、最終的には約160時間ほど勉強することができました。

対策


学習に利用した本

今回は試験勉強に加えて業務にも役立てられるよう以下の書籍を読んで勉強しました。どれも大変役立ったため、もし気になる方がいれば手に取ってみてください。

データベースの論理設計について基本的なところから理解することができました。特に正規化理論については詳細に書かれており、理解しやすかったです。後続のアンチパターンの解説書に比べて数は少なかったですが、アンチパターンについても記載されており、大変勉強になりました。 論理設計を学びたい初学者にとっては読むべき1冊だと思います。

また、私が読んだ本は第1版でしたが、最近はクラウドに対応した第2版が出版されたようです。

データベースのアンチパターンについて現場のエピソードを用いてわかりやすく解説されていました。ただ最初は自分の知識不足のため、トランザクション分離レベルやキャッシュなど理解できない箇所もあり、理解できない箇所は何度も読むことで何とか理解することができました。

データベースのアンチパターンについて、数多く紹介されており、過去のプロジェクトで経験した設計が実はアンチパターンであると気づくことができました。

ただアンチパターンとされていた内容(例えばファントムファイル)が現在の開発ではスタンダードとなっている箇所があり、若干内容が古いですがそれでも読むべき1冊だと思いました。

ネットに補足が多いため、適宜本だけでは理解できなかった箇所を補いながら進めることができます。

SQLの基本的な構文からウィンドウ関数といった応用的な構文まで理解することができました。個人的には基本的な内容は理解できていたため、応用的な構文だけ参考になりました。

データベーススペシャリスト試験対策の鉄板書であり、データベースの基本的な内容を理解している方であれば、試験対策としてはこの1冊で事足りると思います。

午前Ⅰ・午前Ⅱ

選択式の問題が出題され、60点以上が合格になります。

私の場合、午前Ⅰは免除で受験することができたため、午前Ⅱのみデータベーススペシャリスト ドットコム でお世話になりました。 4ヶ月前に1周して、1週間前に再度1周して対策しました。

ただ、午後Ⅰ、午後Ⅱの方が優先度が高いため、そんなに時間をかけるべきではないと思います。

午後Ⅰ

問1〜問3の中から2問選択し、60点以上が合格になります。

私は情報処理教科書 データベーススペシャリスト 2024年版 を利用して過去問を解き、問題に慣れました。 テキストには過去問題から14問が重要問題として設定されており、それらを2周ほど解きました。

解いた結果、私は物理設計の問題が苦手で、論理設計は時間を掛ければ解けますが、時間が足りなくなることが多く、SQLは比較的点数が取れることがわかりました。

そのため、午後Ⅰでは、問1(データベース設計)と問2または問3(SQLの問題が多くある方)の問題を解くことにしました。

また午後Ⅰを解答する上で以下のことに気を付けていました。

  • データベース設計を選択する場合、必ず時間が足りなくなるため、「できるだけ速く」を意識して、ケアレスミスや多少の読み落としを恐れることなく、速く解くことを心がける。

  • 次の可能性が高いので、文章を読む際には気を付ける。

    • 「~で識別し」という表現は、“主キー”になる。

    • 「~をもつ」という表現は、必要な属性になる。

    • 「フラグで分類し」という表現は、共存的サブタイプをもつことになる。

    • 「区分で区別し」という表現は、排他的サブタイプを持つことになる。

  • 「エンティティタイプ名、関係名、属性名は、それぞれ意味を識別できる適切な名称とすること。」と明記されているため、原則「被ってはいけない」。そのため、属性名等は被らないようにする。

午後Ⅱ

問1・問2の中から1問選択し、60点以上が合格になります。 問1は物理設計、SQLが問われ、問2はデータベース設計、概念データモデルと関係スキーマの完成が問われます。

こちらも情報処理教科書 データベーススペシャリスト 2024年版 を利用して過去問を解きました。 私は物理設計の問題が苦手だったため、問2を選択し、3年分の問題を2周して対策しました。 問題を解きましたが、午後Ⅰと比べて時間には余裕があった印象がありました。

難しかった点は6〜8ページにもわたる文章を読み、その中から適切なリレーションや属性を制限時間内に探すことが難しかったです。

また午後Ⅱを解答する上で以下のことに気を付けていました。

  • 概念データモデルと関係スキーマは同じタイミングで更新する。

    • 別々のタイミングで更新すると、見返す手間が増え、どのモデルがスキーマに対応しているかわからなくなり、時間が足りなくなるため。

  • 文章を読みながら確認した概念データモデルのリレーションはチェックをつけて確認済みであることを示す。

    • このリレーションは文章中にあったかをチェックしないと、何度も文章を見直す必要があるため。

試験当日


試験会場は前回のシステムアーキテクト試験を受験した会場であり、初めての会場ではなかったため、気持ちに余裕をもって臨むことができました。 初めての会場では、向かう道中、お昼ご飯を買う場所、時計があるかなど色々と気にする必要があるためです。

最初は午前Ⅱからだったのですが、余裕を持って解答することができました。確実に正解している問題が6割以上あったため、特に心配せずに午後Ⅰに臨めました。

お昼休憩後の午後Ⅰは、問3は物理設計に関する問題であったため、問1と問2を選択することにしました。

最初に問1から解いていたのですが、本来45分で解く必要があったにもかかわらず、55分もかかってしまいました。そうすると問2は残り35分で解く必要があり、とても急いで問題文に関する文章を読み、問題を解きました。

ただ問題文に関する文章への理解も曖昧なまま問題を解くので、よくわからず問題を解いていました。 そんな中デッドロックに関する問題があり、解答を導き出せず悩みながら問題文に関する文章を確認していると、急に答えがひらめき何とか解答を導き出すことができました。このひらめきのおかげで一応全ての問題の答えを埋めることができました。

最後の午後Ⅱの問2は例年通り概念データモデルと関係スキーマを完成させる問題が出題されたので、問2を選択しました。 解いている最中、気を付けるべき点は特にないかなと思ったのですが、今年は番号は「#」、年月日は「YMD」などと記載するよう指示されており、そこを注意するようにしました。こちらは120分の制限時間内に解き切ることができ、安堵しました。

余談ですが、この日は応援していた日本ハムファイターズと千葉ロッテマリーンズのクライマックスシリーズがありました。試験後すぐに見たのですが、万波選手が9回裏に起死回生の同点ソロを打ち、淺間選手がサヨナラタイムリーを打つ劇的勝利をおさめたため、私自身の試験結果も良い結果になってくれると信じていました。

感想


午後Ⅰの問1で大幅に時間を費やしてしまったのは後悔していますが、それ以外は特に問題なく終えることができました。

また、今まで受験した他の論文試験とは異なり、午後Ⅱは明確な解答があるため、解答速報をチェックしましたが、会社によって解答が全く異なっており、試験対策を行なっている会社でも解答が分かれるくらい難しい試験だと改めて実感しました。

正直なところ午後Ⅰに対する自信が全くなかったのですが、合格発表日に確認すると午後Ⅰ、午後Ⅱともに70点以上を取り、何とか合格することができ、とても嬉しかったです。

今回の試験を通じて、データベースの物理・論理設計、SQLに関する基本的な学びを得ることができ、それを仕事に活かせるようになったことが何より良かったです。 勉強を始める前はデータベースの論理設計やSQLについて指摘を多くもらっていたのが、勉強をした後はデータベース設計のアンチパターンを避け、ウィンドウ関数を利用してより効率的なSQLを書くなど、より指摘を少なくすることができました。正直データベースはまだまだわからないことばかりなので、これからももっと勉強してデータベースに関する知識を深耕させていきたいです。

また難易度については、私自身あまりデータベースに関する知識がない状態で勉強を始めたので個人的にはプロジェクトマネージャ試験やシステムアーキテクトよりも難しい印象がありました。

もし次に高度試験を受ける機会があれば、サービスやシステムの運用について全くわかっていないので、ITサービスマネージャの勉強をしてみたいと思います。

以上が私の試験体験記です。参考にしていただければ嬉しいです。


執筆者プロフィール:さとう
アプリケーション開発テクノロジーグループ所属の開発エンジニアです。

SHIFTへのお問合せはお気軽に

SHIFTについて(コーポレートサイト)
https://www.shiftinc.jp/

SHIFTのサービスについて(サービスサイト)
https://service.shiftinc.jp/

SHIFTの導入事例
https://service.shiftinc.jp/case/

お役立ち資料はこちら
https://service.shiftinc.jp/resources/

SHIFTの採用情報はこちら
https://recruit.shiftinc.jp/career/

PHOTO:UnsplashGery Wibowo