OSS-DB Exam Silver受験記

オープンソース系DBの資格として2011年7月(頃?)に誕生した資格にチャレンジしてみました。
オープンソースと言いつつも、中身は完全にPostgreSQL一色です。

覚えてるうちにざっと傾向を列記していきます。

成績

・受験日:2012年2月20日(月)
・正解率(合格ライン):70%(64%)
・結果(受験回数):合格(1回目)

・セクションごとの正解率
 一般知識:90%
 運用管理:64%
 開発/SQL:66%

試験勉強

勉強期間は正味1ヶ月ほど。
翔泳社のOSS教科書(緑のカバーのやつ)のみを使い、1日1章ずつ読み、1周半しました。
最後の模擬試験問題は学習最終日(試験前日)に1度だけ行い、その時の正解率は68%でした。
私は少々勉強不足でしたが、これ1冊だけで十分合格できると思います。

以降はOSS教科書の章に沿って、出題の傾向を説明していきます。

第1章 オープンソースデータベースの一般的特徴

ライセンスやコミュニティ、サポートについて、バージョニング等満遍なく出ました。
6,7問程度でしょうか。
覚えておけばいいだけのサービス問題ですので得点源にしましょう。

上記以外でわからなければ・・・・

PostgreSQLは完全無料で利用できる。
・開発元は無保証であり、サポートの義務もない。

ということを念頭に置いておけばそれなりに答えられると思います。

第2章 リレーショナルデータベースの基礎知識

PostgreSQLに限らず、DBに関する知識が要求されます。
論理データモデルのそれぞれの特徴や正規形、主キーや候補キーなどの用語と意味を知っておけば取れる問題です。
3,4問程度出ました。

第3章 インストール

インストール、アンインストール方法については出題されませんでしたが、
インストール後のデータベースクラスタの作成、テンプレートデータベースについては結構出ました。

2つのテンプレートデータベースの特徴をよく把握することと、
データベースクラスタ生成時のオプションについて理解しておくべきです。

エンコードに関してはサーバとクライアントで違うこと。
ロケールについても設定しなかった場合どうなるのかなど細かいことが問われました。

第4章 標準付属ツール

機械的に覚えるのはきついですが、コマンドとそのオプションについて、細かいところまで問われます。
PostgreSQLの起動と終了の挙動(処理が完了するまで待つとか、処理中に接続してくるユーザはどうなるかだの)についておさえておきましょう。
また、シャットダウンモードについて問う問題も出ました。

データベースユーザと権限については必ず覚えておく必要があります。
あとはpsqlとメタコマンドについての出題もされました。

第5章 設定ファイル

主にpostgresql.confとpg_hba.confの設定を覚えましょう。
再起動が必要な設定、リロードのみでよい設定、スーパーユーザ権限が必要な設定についてそれぞれ覚えておいた方がよいです。

私は細かい設定項目についてはまるで覚えてませんでした。
細かい設定項目については2問程度出ましたが、全部落としたと感じました。
経験がないとここは非常に覚えるのがつらいところ。
設定の全てを覚えていなくても2,3問落とす程度なので、思い切って捨ててもいいのかなと思いました。

第6章 バックアップとリストア

ここは頻出です。
バックアップ時のフォーマットオプションと、各フォーマットオプションを設定した時のリストア方法を完璧に覚えておきましょう。
また、COPYと\copyの違いやPITR等問題にしやすい要素は揃ってます。
バックアップ&リストアする際にデータベースクラスタを落としておく必要があるのかないのか、
その辺までしっかり確認しておきましょう。

第7章 基本的な運用管理

ANAKYZEとVACUUMの仕組みと使用中の状況、効果について把握しておきましょう。
また、情報スキーマやシステムカタログについても出題されました。
それぞれ項目数は少ないですが、万遍なく出題された印象です。

3章〜7章で出題数の半数を占めていました。

第8章 SQLとオブジェクト/第9章 組み込み関数と演算子

ほとんど同じなのでまとめちゃいます。

単純なSQLは出ず、集約関数を用いたものや、日付型の使い方を尋ねるもの、
また、文法について誤っているものを探させるものが出題されました。

開発に携わらない人はしっかりSQLを学習する必要があります。
出題数は5問程度でした。
結構デカイと思います。

また、SQLとその特徴についての問題が多い半面プロシージャに関する問題は1問か2問でした。

第10章 トランザクション

ロックに関する問題が1問、分離性に関する問題が1問、BEGIN・COMMIT・ROLLBACK等に関する問題が2問程度で
あまり印象にはないです。

ちょこっと勉強する程度でもいいかもしれません。

総評

いくつか受験レポートを読みましたが、少し勉強しただけで80%取れたという人がほとんどだったので、
気楽な気持ちで受けましたが、勉強不足も手伝ってかそこまで簡単でもない印象でした。

教科書の内容が隅々までオールラウンドに出題されましたが、それ以外の知らない用語には出くわしませんでした。
OSS教科書1冊のみで十分だと思います。

また、勉強するなら、まず簡単に10問取ることが期待できる、1章2章を熟読し、
学習時間の大半は3章〜7章に当てるべきだと思います。
その中でも、特に4章と6章。
8章、9章は普段開発に携わる人は間違いなく知識があるor少し読めば理解できる程度でしょう。
10章はあまり出ない印象でしたが、試験は満遍なく出るので、頭に入れておく必要はあります。

何はともあれ、OSS-DB、特にPostgreSQLの基礎知識レベルを問う問題であることは間違いないでしょう。