見出し画像

データベーススペシャリストになる

#CSE北海道 #エゾジニア の「らっと」です。

この記事は、
corp-engr 情シスSlack(コーポレートエンジニア x 情シス)#1 Advent Calendar 2021
初日の記事です(わーい)。

 今年ももう残すところ1か月とのことで。信じられないというかむしろ、今年をもう3か月ほど延長いただかないとつり合いが取れない気持ちで日々過ごしております。

 秋の情報処理試験にて、データベーススペシャリストを受験してきましたので、そこで得たノウハウなどを共有いたします。(合格発表は12/17です!)

0.データベーススペシャリストって?

 情報処理試験データベーススペシャリストは、情報系の皆様には言わずと知れた、情報系国家資格であり、地味に合格率が14%台という難関資格になっております。会場に到着するまでにおよそ30%が脱落し、試験中に残りの20%が脱落するという恐ろしい試験となっております(一部個人の感想が含まれています)

 本資格の取得はガッキーとの交際の必要条件となっており、地味目のメガネ男子SEのステータスとなっております。合格の暁にはカメラの前で恋ダンスを踊る権利が贈呈されます(要出典)

 データベーススペシャリストで問われるのは、データベースの設計、運用に関する知識と実務です。データベースを最も使うのは、業務システムになるので、(上記のようなやましい理由以外では、)業務システムを扱うSEが取得を目指す資格というイメージです。

1.受験するにあたって知っておいてもらいたい重要な3つのこと

 まず、最初に知っておいてもらいたい非常に重要なことは、「データベーススペシャリスト試験を受験するには、事前に受験を申し込まなくてはいけない」という事実です。 例年多くの人が、受験申込するのを忘れていた という理由で、 試験を受けることすらできず、 合格率の分母にすら入れないという実態があります。 申し込みは試験の2か月程度前に行われます。 申込期間中に確実に申込ができるよう、あらかじめ予定を入れておきましょう。

 2つ目に重要なことなのですが、「合格するためには、試験当日に試験会場に行き、試験を受ける必要があります」。 試験会場に行ってみると、ハンター試験かと思うほど試験の会場にたどり着けない人が多く、空席が目立ちます。(申込~会場到着までが0次試験と呼ばれています) なお、筆者は無勉状態であっても試験会場には行く事にしています。(「ああ勉強しておけばよかった」と強く思うことになる為) 試験当日に、やっぱいくのやめようかな、と思わないように、事前に試験会場の場所や交通手段を決めておくとよいです。

 3つ目に重要なことですが、「合格するためには、試験に向けて勉強をしておく必要があります」。 そもそも勉強をしなかった場合、かなり高い確率で試験会場に行く事はないでしょう。 合格するはずがないので。 合格する見込みがないのに会場に行くのは時間の無駄なので、行かなくても問題ないと筆者は思います。 ただ、午前Ⅰが免除でない方は、午前Ⅰだけでも受験をしておくとよいです。

 まとめますと、下記の3点がまず合格の大前提になりますので、ぜひ覚えておいてください。

①受験申込をする
②試験会場に行く
③勉強をする

2.受験当日の時間割

 まず、データベーススペシャリスト試験の時間割は下記のようになっています。

午前Ⅰ:一般的な情報系の知識についての4択問題
午前Ⅱ:デーベースについての4択問題20問+他分野の4択問題5問
午後Ⅰ:記述問題 3問から2問を選択して回答する
午後Ⅱ:記述問題 2問から1門を選択して回答する

 各パートにおいて、60%以上の得点をしていなければ合格できません。パートごとに順番に採点されていき、そのパートで60%未満であることが判明した瞬間に不合格が決定するようになっています。例えば午前Ⅱが60%未満の得点だった場合、午後は採点されません。

 なお、午前Ⅰに関しては、2年以内に受験して合格している(もしくは高度試験のいずれかに合格している)実績があれば、免除申請によって免除してもらうことが可能です。 現実問題、1日間戦うのは厳しいので、免除が受けられるのであれば、受けておいた方が良いです。

3.勉強を進めるにあたっての参考書選び

 使用する参考書は、筆者としては、「情報処理教科書 データベーススペシャリスト(著 三好 康之)」を推奨しておきます。 午前、午後の対策方法、午後の問題の分析が詳しく、オマケで過去問とその回答がダウンロードできます。1冊で全範囲がカバーできるのでコスパが良いです。

 ただ、本に書いてある内容だけでは不十分で、過去問も解いてやっと完全体になるイメージです。

4.午前の対策

 午前Ⅰと午前Ⅱについては、学習戦略は同じものを使えます。(おそらく高度試験共通で使えます) それは、

ひたすらに過去問をやる」 
そして、
過去問の回答がなぜそれになるか理解する
です。

 極端な話、合格だけが目的なら、答えを覚えてしまっても6割取れてしまったりします。

 特に午前Ⅱに関しては、問題のプールが大きくないようで、過去問と同じ問題が出る確率が高く(感覚的には類似問題も含めて半分くらい)、答えを覚えているだけで通過できてしまうことが多いです。 ただし、当然ながら初出題の問題もあるので、確実にパスするには、「過去問を学習し回答がなぜそれになるか理解する」という勉強法をやっておことを推奨します。

5.午後Ⅰの対策

 午後に関しては、比較的出題のパターンが決まっているので、まずはその点を押さえておくとよいです。

 午後Ⅰ、この時間がデータベーススペシャリスト試験の最大の試練になります。 なぜかというと、2問という問題の量に対して、90分という試験時間が短く、ある程度試験問題に慣れていたとしても時間内に回答しきるのが難しいのです。

 午後Ⅰでは、選択できる3問のうち、論理設計の問題が必ず1つは出題されます(まれに2問出ることもあります)。それ以外は個別のテーマに沿った物理設計の問題が出題されます。

 筆者の午後Ⅰの回答戦略は下記です。

①論理設計を選択する
②SQLをマスターする
③デッドロックの問題は避ける

 ①論理設計を選択する について・・ 論理設計というのは、対象の業務に対して、業務要件を聞き取って、どのようなテーブル構成にすればよいかを検討する業務になります。

 論理設計は、文章の量が多く、回答に時間はかかってしまうのですが、出題パターンが決まっているため、対策が取りやすく、確実に点数を稼げます。 また、実は午後Ⅱでも論理設計の問題が出題されるため、まとめて対策できる部分もあり、コスパが良いです。

 論理設計については、概念スキーマを完成させる問題、正規化させる問題、候補キーを列挙させる問題、概念データモデルを完成させる問題、テーブルや項目の穴埋め、など前半部分はほぼほぼ同じような問題が出題されます。これらは過去問をやって、回答方法をマスターしておきましょう。

 論理設計の攻略する際は、テーブル構造を中心に情報を整理するのが良いです。 業務に関する記述、テーブル構造(関係スキーマ)、概念データモデルの3つを対応付けて回答していくことになりますが、筆者の場合はテーブル構造をベースにとらえるほうがわかりやすかったです。

 論理設計以外の問題についてですが、物理設計の問題が良く出題されるともいうのですが、結構バラバラのテーマについての出題が多いため、一概に何が出題されやすいとも言い難いのが現状です。

 ②SQLをマスターする について・・ 論理設計以外の問題の中でも、SQLに関する出題はかなりの確率で出題されます。SQLに関しては、文法をマスターしておく必要があります。distinct句、in句、between句などの決まり文句や、表の結合(join)などは一通り理解しておきましょう。

 もしお勤めの会社にデータベースがあるなら、日常業務でSQLを実行して調査する環境を作ることをお勧めします。実際に自分でSQLを発行するのが学習の近道だと考えます。 そのような環境がなくても、Microsoft Office製品をお持ちならAccessやExcelでDBを作成することもできますし、持っていなくてもMySQLやPostgreSQLなどフリーのDBMSでDBを構築することもできます。 とにかく、自分が意図した内容で検索ができる程度には使えるようになっているとよいです。

 ③デッドロックの問題は避ける・・ こちらは筆者の好みにはなりますが、デッドロックの問題をできるだけ避けるようにしてました。というのも、デッドロックを見抜くのに、考えている時間がかなりかかってしまい、出した結論も正解ではないということが結構あったからです。 無論全く対策が打てない代物ではなく、 デッドロックが発生するパターンを体系立てて整理していればわかるようにはなると思うのですが、 筆者は確実に点数を取るためにデッドロックの問題は選択しない戦略にしていました。

 午後Ⅰの論理設計以外の問題に関しても、過去問を通じて、解き方に慣れるという方向での対策が良いと思います。 論理設計はパターンが決まっているので、慣れてしまえばあとは時間との闘いになります。 それ以外の各論は、データ容量の計算、外部キーの設計など、テーマごとに過去問を通じて学習した内容を整理しておくことをお勧めします。

6.午後Ⅱの対策

 午後Ⅱに関しては、「論理設計」が必ずと言っていいほど出題されるため、論理設計を選択するという対策で臨みました。

 午後Ⅰと午後Ⅱの両方で「論理設計」が出題されて、本文の構成がほとんど同じなので、過去問で慣れていれば本文を読むことには苦労はしないと思います。

 午後Ⅱの出題は、午後Ⅰよりもさらに設計に寄った内容になっており、テーブルや項目の穴埋めから、新しいテーブルの追加、データベース構造の課題対応・修正となります。 答えるべき内容が難しくはなるものの、試験時間が長い為、比較的時間に余裕をもって回答をすることができます。 こちらも例年、似たような問題が出題されるので、過去問を中心に勉強し、解き方をマスターしておくことを勧めます。 午後Ⅱの後半では、データベース上の問題点を指摘させる問題も出てきます。 この問題は、だいたい主キー制約違反や外部キー制約違反が出題されやすいので、まずはそれらを理解していると回答がしやすいかと思います。 ※時間に余裕があるといっても、筆者が今年度受験した時は、午後Ⅱも最後10分も余らなかったです。

7.おわりに

 著者はデータベーススペシャリストを受験して、何度0次試験で脱落したか覚えておりませんが、今年は何とか取れていたいです。 皆さまの合格をお祈りしています。