DP-300(Azure Database Administrator Associate)受験対策

先日、無事にDP-300の試験に一発合格しましたので、忘れないうちに試験対策と勉強方法をまとめておきます。
下記内容は2023年7月現在の情報です。
今後試験内容が改訂されることもありますので、その点ご了承ください。


# はじめに
DP-300のQiita記事はほとんどないですね。
人気がないのか、DB管理なんてややこしいだけだから敬遠されているのか。
アプリケーションの開発ではなく、SQL Databaseの管理や運用の方に興味がある人向けの内容なので、この分野に興味がないとなかなか手がつけられないかも・・・とは思います。

受験前にネットで試験情報を探してみたのですが、ほとんど情報がなかったので今後受験される方のために記録しておきたいと思います。
この試験はSQL Serverや Azure SQLDatabaseといったAzureのRDB系のサービスの管理、運用方法についての理解度を問われる問題です。


# 試験範囲
- データ プラットフォーム リソースの計画と実装 20～25%
- 安全な環境を実装する 15～20%
- データベース リソースを監視、構成、最適化する 20～25%
- タスクの自動化を構成して管理する 15～20%
- 高可用性とディザスター リカバリー (HA/DR) の環境を計画して構成する 20～25%


# 試験形式
- 問題数 : 48問
- 時間 : 120分
- 合格点 : 700／1000点


# 回答形式
- 前半42問
-- 選択問題（はい／いいえ）※１問の中で複数問題あり
-- 複数選択問題（コンボボックス型／ラジオボタン型）
-- ドラッグアンドドロップ問題
- 後半6問
-- ケーススタディ2問

# 受験料
¥21103 JPY*
通常は上記料金なのですが、私はクラウドスキルチャレンジに登録して、受験料半額で受けました。

https://developer.microsoft.com/ja-jp/offers/30-days-to-learn-it

# 受験時のスペック
20年以上アプリケーション開発のSIerをやっています。
SQLServerはSQLServer2000を筆頭に現在まで各バージョンで開発や運用を繰り返してきて、SQLServerのMCP資格も保持しています。


# 受験までにやるべきこと
こちらの試験はVirtual Training Dayのコースがありませんので、コツコツ自分で勉強するのみです。
合格のためにやるべきことは下記１～３です。

## <strong>1. Microsoft Learnのラーニングパスで勉強</strong>
試験範囲に対応したラーニングパスをじっくり読んでください。ラーニングパスで不足している内容は、モジュールで補うようにしましょう。

https://learn.microsoft.com/ja-jp/certifications/azure-database-administrator-associate/

## <strong>2. 無料のプラクティス評価を受ける</strong>
MS Learnをひととおり読み終えたらプラクティス評価で問題を解いていきます。
一問一答形式でその場で回答がわかるので、間違った場合はMS Learnのドキュメントサイトに飛んで、間違った理由を確認して理解を深めるようにします。
おそらく1つ上のMS Learnの範囲だけだと全然勉強が足りてないと思いますので、こちらのプラクティス評価を時間をかけて取り組むと良いと思います。

https://learn.microsoft.com/ja-jp/certifications/exams/dp-300/practice/assessment?assessment-type=practice&assessmentId=58



## <strong>3. 過去問を解く(有料)</strong>
過去の試験対策と同様にUdemyのサイトで、「DP-300:Administering Relational Databases on Microsoft Azure」(英語版)を買いました。

https://www.udemy.com/course/dp-300administering-relational-databases-on-azure/


英語版なので、英語がわかる人はそのまま使って、英語が苦手な人は日本語訳しながら問題を解くと良いです。
この問題集をやるかやらないかで一発合格できるか差が出てくると思います。
実際の試験でも同じ問題やアレンジされた問題が50～60％出題されました。

ただ、英語版を無理やり日本語訳にするとやっぱりおかしなところは多々あります。
例えば下記のような問題↓
「ジャワ」はなんとなく分かりますけど、「ニシキヘビ」って何？？？ってなりますね(笑)

(元の問題)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2885406/4faf9f75-9ade-302d-6857-d7113e4d19f2.png)

(日本語訳)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2885406/0897e9c7-7b3f-a482-3ccd-5eeec54cd064.png)

# 試験範囲について
前述のとおり、MS Learnを一通り読んだだけではなかなか理解が進みません。
ポイントとしては、以下の内容を十分頭のなかに叩き込んで試験勉強を進めてください。
- Iaas＋VM環境でのSQLServer、SQLServerManeged Instance、Azure SQLDatabaseの違いを理解すること
- オンプレからマイグレーションサービスを使った移行方法を理解すること
- データのセキュリティ担保(透過的暗号化、データマスキング)
- クエリのチューニング方法(ライブクエリ統計、推定実行計画、実際の実行計画)
- パフォーマンス改善方法
- 災害対策時のデータの冗長性、可用性の実現方法


# 試験に関して
前半42問中、最後の3問は連続して同じ設問に対してケーススタディを問われる問題ですので、いったん答えると前にも後ろにも戻れません。
この点、注意が必要です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2885406/b1a7867e-fcb7-1613-243e-a965d1be0b0a.png)
この3問を除いた39問に関しては、回答後も再度見直し可能です。
そして、前半42問まで答えるといったん試験完了になり、次のケーススタディ(長文問題)に移ります。
ケーススタディに進むと、前半の回答はすべて確定になりますので、見直しもできません。ボタンをぽちっとする前に再度よく確認してください。

後半は、長文のケーススタディ問題が出題されます。
ケーススタディは2問出題されて、ケーススタディ１は５つの質問、ケーススタディ２は１つだけでした。
ケーススタディ問題がどういった形式で出題されるかは、Udemyの問題で対策するとわかりますので、ここでは割愛します。


# まとめ
試験自体は中級にしてはちょっと難しいかもしれませんが、ちゃんと勉強したら合格できます。
少し長くなってしまいましたが、これから受験予定の方のお役にたてると幸いです。