この記事は「データベーススペシャリスト資格に興味はあるが、どのようなものか?どう学ぶのか?」という方向けに、具体的な内容と私自身の挑戦ログをお伝えする。学び中の方や、これから学ぼうとされる方の参考になれば幸いだ。今回は知識および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″物理設計”
- 今回はH24 問3のデータウェアハウスに関する問題を確認。
 - 手持ちの知識と、本文や表の読み取りである程度は回答できた。
 - ただし、甘く見て5割程度の正答率。
 - 類似する問題が出たら6割以上は取れるよう、主要ポイントを抑える。
 - まず、SQLの解き方はある程度パターン化しているので習得すること。
 - 次に、データウェアハウスとはいわばリレーショナルデータベース版のビッグデータであり、集計の際に分析軸(日、支部、商品)などを持ち、履歴管理のためサロゲートキー(たとえば商品を一意に識別する商品コードとは別に、連番の商品番号などを持つ。商品の変更があった場合は商品番号を追加する)を持つことが多いこと。
 - 最後に、分析軸の値の変更(支部間異動や商品変更)の場合、集計値がおかしくなることがあること。(たとえば支部別の年間集計を作るとき、年度途中で支部間異動があった場合、そのデータを付け替えるか再集計しなくてはいけない)
 - 設問はこれら前提知識を持ったうえで、設問に必要な個所を本文から丁寧に抽出していけばかなり簡単に回答できるものであった。
 
1日1回論理設計実技
- H31 PM2 問2のうち新規業務に係る問題の回答を実施。
 - 時間内に回答は完了し、すべて正解。
 - 解き方のプロセスや、細かい注意点(下線の有無や列名の記載)にも慣れてきた感覚あり。
 
(1日のうち)残りの時間でやったこと
- 午前2対策について、三好先生の本ベースでSQLの知識を読み、問題を解いた。
 
問題132(SQL確認ドリル)
問題文
- web_logテーブルからuser_id別のページビュー数を取得し、ページビュー数の多い順に3レコード取得してください。
 - 結果テーブルはuser_idとpageviewsの2カラムとします。
 - なお、一人のユーザーは、会員登録前にはブラウザを識別するcidしか持っておらず、会員登録後にuser_idが発行されます。
 - したがって、例えばcidとしてXYZを持つが、user_idを持っていないレコードを考えると、そのcid XYZが後日user_idとして123を持った場合、cidがXYZのpageviewsも、user_idが123のpageviewsとして合算します。
 - with句を使って回答してください。
 
with等を用いた結合のおさらい
- まず、説明を読むと「同一cidの複数レコードのうち、一部はuser_idがnull、一部はuser_idに値が入っている」ものがあり、「それについて、全てuser_idが埋まっていると仮定してカウントする」と読める。
 - そこで、「まずcidとuser_id(max_user_idと仮定)の値がセットになった表」をwith句で用意し、それを元テーブルと結合したうえで、max_user_idごとにカウントすれば良いとわかる。
 - 具体的には以下のとおり。
 

考察
- データベーススペシャリスト資格について。午後1(物理設計、論理設計)問題を実際に解き体得した。また、SQLの確認ドリル(web_logテーブルからuser_id別のPV数トップ3を求める)を解いた。
 - キャリアコンサルタント資格について、「環境への働きかけ」に関する知識の一部を学んだ。とくに組織内キャリアコンサルタントとしての役割は興味深い。私自身が本業を行うなかで、様々なニーズが見えているからだ。これからの学びや知識を活かし、対話しながら環境に働きかけしていきたい。
 
考察のシンプル化と英訳(練習中)
- I think there are many things career consultants can do to improve their own organization.
 - (キャリアコンサルタントが自分の組織を良くするためにできることは、たくさんあると思います)
 
参考資料
- 集中演習 SQL入門/木田和廣/株式会社インプレス
 - 2022年度版 ALL IN ONE パーフェクトマスター データベーススペシャリスト/TAC
 
  
  
  
  
コメント