この記事は「データベーススペシャリスト資格に興味はあるが、どのようなものか?どう学ぶのか?」という方向けに、具体的な内容と私自身の挑戦ログをお伝えする。学び中の方や、これから学ぼうとされる方の参考になれば幸いだ。今回は知識およびSQL(確認ドリル)について書く。(SQLはGoogle Big Queryに準拠)
また、考察においてキャリアコンサルタント資格の挑戦ログについても記述する。
DB学習方針(一部再掲)
対策MUSTのもの
- 午前2対策、TAC講義動画全て視聴⇒完了
- 午前2対策、TACテキストの問題全て完答⇒3ラリー目まで完了(直前見直し要)
- 午前2対策、過去5年分の過去問ベースで完答⇒1ラリー目完了、ほぼ全問正解(直前見直し要)
- 午後対策、TAC講義動画全て視聴⇒完了
- 午後1対策、”物理+SQL”問題につき、解き方を把握しておく⇒現在着手中⇒直前にもう一度解く(無理なら頭の中で解く)は必要。定着のため
- 午後1・午後2対策、論理設計問題につき、時間内に答えを埋める訓練⇒約7つの過去問につき2ラリー目まで完了。1日1回の実技演習として3ラリー目実施中
- 全般対策、TAC実力テストおよび公開模試の提出⇒提出済、返却待ち(模試は返却あり)
- 全般対策、R3を午前・午後通しで解いて最終仕上げ⇒未着手
対策BETTERのもの
- 午前2対策、三好先生の本ベースでも問題を解いておくことで、より幅広く対応⇒未着手
- 午後対策、過去問パターンや業務基本パターン(三好先生テキスト)の記憶⇒未着手
今後の大まかな計画
- 午後1″物理・SQL”を1日1問「解き方把握」する(上記MUST№5)
- 1日1回論理設計実技は続ける(上記MUST№6)
- 残りの時間で、R3(MUST№8)を行う。(返却され次第、TAC実力テストや公開模試振り返り研究。公開模試は動画もあり(MUST№7)
- 夜寝る前などスキマ時間かつスマホ・PC利用できないときは、本ベースの学習(BETTER№1,2)
回答プロセス考察(NEW)
- 共通の回答プロセスとして、「本文・設問・RDBMS仕様・パズル要素」の4点と認識。
- まず「本文」とは、本文中で設問について記載している箇所を探すこと。大抵設問1から順に本文も綺麗に並んでいるので、特定しやすい。
- 次に「設問」とは、設問そのものであり、「〇〇について答えよ」となってる部分。「xxのとき」など前提・制約が課されていることが多く、これが回答を絞り込む情報に成り得る。
- 次に「RDBMS仕様」とは、設問に関わりのある仕様の記載箇所を探すこと。記載の内容は毎回ほぼ同様で、少しづつ特色があるので、過去問を解きながら慣れるのがベターか。ここの記載はヒントであり制約でもある点に注意。
- 最後に「パズル要素」とは、穴埋めで既に埋まっている箇所もヒントに、残りを推測して埋めていく作業。実はかなりこれで解ける部分も大きい。
- いずれにせよ上記の作業で、答えは一意に特定できるはずなので、それを意識しておくこと。
DB学習ログ
午後1″物理設計”
- 今回はH28 問2のバックアップに関する問題を確認。
- 手持ちの知識と、本文や表の読み取りである程度は回答できた。
- ただし、甘く見て5割程度の正答率。
- 類似する問題が出たら6割以上は取れるよう、主要ポイントを抑える。
- まず、バックアップは「何かあったときに、せめてそこまで戻せるように」するためのものであること。よって実務的には、日中のオンライン処理が全て終わった後に更新したテーブルのバックアップを取り、その後夜間バッチでは各プログラム稼働前に、更新対象テーブルのバックアップを取るのが一般的。
- そして、何か問題が起きた場合、バックアップを用いてテーブルを復元し、ロールフォワードやプログラム再実行により元の状態に戻す。
- 次に、差分バックアップは更新に向き、増分バックアップは追加に向くこと。
- 最後に、データ異常発生のポイントとして、障害が発生したテーブルを利用するプログラムのみ再処理し、それ以外は何もしない、というショートカットも取り得ること。
1日1回論理設計実技
- H31 PM2 問2のうちトランザクション部分の論理設計を実施。
- 時間内に回答は完了し、すべて正解。
- なお、トランザクション部分の論理設計の穴埋めにおいては、通常トランザクションの属性を入れることが殆ど。ただし、稀にマスタの属性を埋める場合もある。その場合は問題文にこれ見よがしに記載されていることが多いので、迷ったら書くというのも有効か。
- 解き方のプロセスや、細かい注意点(下線の有無や列名の記載)にも慣れてきた感覚あり。
(1日のうち)残りの時間でやったこと
- 午前2対策について、三好先生の本ベースでSQLの知識を読み、問題を解いた。
問題131(SQL確認ドリル)
問題文
- customersテーブルから、2019年12月31日時点での年齢(age)ごとに顧客数(users)を求めてください。
- 結果テーブルは男性に絞り込み、顧客が多い順にトップ3を表示してください。
with, datetime_diffおさらい
- まず、”年齢ごとに”とあるのでgroup byを用いると考える。
- ただし、customersテーブルでは誕生日しか管理していない。よって年齢はdatetime_diff関数で求めることになる。
- また、男性に絞り込みということで、whereを使う。これらをまとめて記述すると煩雑になるので…
- 一旦、”男性のみの、各ユーザの年齢”を持つ仮想テーブルを作ることにする。
- そのあと、当該仮想テーブルについて”年齢ごとユーザ数”を求める。
- 具体的には以下のとおり。
考察
- データベーススペシャリスト資格について。午後1(物理設計、論理設計)問題を実際に解き体得した。また、SQLの確認ドリル(customersテーブルから、男性につき年齢ごと顧客数トップ3を求める)を解いた。
- キャリアコンサルタント資格について、「環境への働きかけ」に関する知識の一部を学んだ。先行きが不明な現代において、大事な人を守り自分らしく生きるために、キャリア形成スキルは大事と考える。そのスキルに私自身の経験と知識を加え、企業や社会に貢献できたなら何よりだと思う。
考察のシンプル化と英訳(練習中)
- I believe that the own life building skills are important. especially in modern times.
- (私は自分の人生を築くスキルが重要だと考えます。特に現代では)
参考資料
- 集中演習 SQL入門/木田和廣/株式会社インプレス
- 2022年度版 ALL IN ONE パーフェクトマスター データベーススペシャリスト/TAC
コメント