🛢️

データベーススペシャリストを取ったときの記録

2023/12/26に公開

はじめに

新卒1年目も3/4が終わろうとしているおそらく犬です。

表題の通り令和5年度のデータベーススペシャリストに1発で合格できたのでポエムを書こうと思います。

参考程度の著者の情報です。

  • 情報系学士卒
    • 資格取得前のデータベースの知識は大学の講義程度
  • 応用情報を学士の間に取得済み

対象読者

  • データベーススペシャリストを受けようと思っている人
  • (DB設計が形式的に出来るようになりたい人)

前置き: 受験のきっかけ

まず建前と本音を書きます。

建前: アプリケーションの開発にDBが使われており、DBに対しての知見を深めるために受験しました。

本音: 既存のDBの設計に絶望したので二度と同じ悲劇を繰り返さないために取らねばなりませんでした。

新卒でIT業界に入り、IT業界には希望と共に絶望が多くあることを知りました。DBの設計もまた、絶望感を生み出すのには十分すぎるものです。当時はこんな記事が流行っていましたが、自分が見た絶望的なDB設計もこれと同じかあるいはそれ以上でした。

https://qiita.com/k-hasegawa0321/items/51bb4d519ac9b304a595

DBは後からの修正がアプリケーションより難しく、またパフォーマンスやデータの整合性を意識した設計が求められます。なので1度失敗するとやり直しが利かないケースが往々にしてあります。

そんなこんなで自分は8月頃に決意しました。この世から絶望感を味わう人間を1人でも減らすため、データベーススペシャリストの資格を取得せねばならぬと。

試験対策

勉強方法

勉強方法はかなりシンプルで

ということをしました。かけた時間は60-70時間程度だったと思います。後述しますがこれは運が良かっただけでもっと時間をかけた方がいいです。

まず参考書ですが、正直これは何でもいいと思います。Amazonで上の方に出てくるものであればぶっちゃけなんでもいいのではないでしょうか。

次に午前についてですが、これも言うことは本当になくてひたすら道場を回してください。本当にただそれだけです。

最後に午後ですが、これは午後1と午後2の両方で明確な対策をした方がいいです。午後の対策については深掘りして説明します。

午後の概要/傾向

まず午後の問題形式ですが、以下のような感じになっています。

  • 午後1
    • 大問3問中、2問を選択
    • 90分
  • 午後2
    • 大問2問中、1問を選択
    • 120分

内容は年によって違いますが、最近の年度では

  • 午後1
    • DB設計
    • 物理設計
    • SQL
  • 午後2
    • DB設計&運用
    • 物理設計

に大きく分けることが出来ると感じています。

午後選択の戦略

午後問題は戦略が大事です。

午後1は3問中2問が選択なのでどれか1つの分野は捨てることが出来ます。SQLは午後2の2分野のどちらでも聞かれるかもしれないので、個人的にはSQLは必ず選択して、残りはDB設計と物理設計の得意な方を選択するのがいいと思います。

午後2は午後1でSQL以外で選択した方を解くのがいいのではないでしょうか。

自分は最初の1,2年は午後1も午後2も全部解いてみて、そこから先は得意な方に絞って解いていました。午後1はSQL&DB設計、午後2はDB設計&運用を選択するつもりで勉強し、物理設計は一切やならいという勉強方法でした。

後はとにかく慣れる

午後1,午後2共に問題文自体が長いので慣れておかないと間に合わなくなると思います。自分は文章を読むのがとにかく遅いので慣れることが必要でした。

慣れるためにはとにかく過去問しかないのですが、個人的には以下の方法でやることをおすすめします。

  • (なるべく)印刷して解く
  • 時間を計測して解く
  • 解き方を確立する
  • お決まりのフレーズ/表記を覚える

印刷して解くのは割と大事だと思います。問題を解いている途中、何度も問題文と図の書いてある部分を往復するので物理的に紙でそれを実践するとなれることが出来ると思います。

時間を計測して解くことは自分の解く速度を把握したり、時間いっぱいまであきらめずに解くためにやりました。

解き方を確立するというのは主にDB設計の話ですが、自分はこの動画の要領でDB設計を解くとかなりスムーズに進められました。

https://www.youtube.com/watch?v=-sTd2JkpeuM

問題文中の主キー、サブクラス等に記号やマークを付けたり、設問を一度すべて読んでから問題文を読むあるいは問題文を読みながら設問を解く、など自分の解き方を確立するのがいいと思います。

お決まりのフレーズ/表記を覚えるというのも、これもDB設計の話ですがたいていの場合においてER図の表記の方法や、主キー制約を匂わす表現などが毎年一緒です。覚えておくと時短になります。

当日

午前1,2は普通に解いて、午後1,2はDB設計とSQLを選択するつもりでいました。

ですが令和5年度はなんと午後1がDB設計x2,物理設計、午後2がDB設計,物理設計でした。特に午後2に関してはDB設計も関係スキーマとER図を書く設問しかありませんでした。解答用紙を見た時点で半分笑いましたが、当初の予定どおりDB設計を主軸に午後を選択しました。

SQLは正直自分はあまり得意ではなかったのでこれは嬉しい誤算でしたが、今年は異常だったのでSQLがもし出ていたら自分は落ちていたかもしれません。もう少しSQLに時間を割くべきでした。

乾燥した感想ですが

正直DB設計だけでデータベーススペシャリストを取れてしまった感があります。SQLがなくDB設計だけで午後全部やれてしまった試験だったからか、令和5年度のデータベーススペシャリストの合格率も過去1番の合格率です。運が良かったとしか言いようがありません。

今後データベーススペシャリストを受ける人の参考になれば幸いです。

最後に、DB設計はITのスキルの中でもかなり腐らないよりのスキルです。取って無駄になる資格ではないと思います。

もちろんこれだけでDBマスターかと言われればそうではなくデータベーススペシャリストは単なる入口であると思います。パフォーマンスチューニング等はデータベーススペシャリストでは学べないです。

今後はISUCONが面白そうなので今回得た知識を使って参加したいです。

記念写真v(´・ω・`)v

Discussion