この記事は「データベーススペシャリスト資格に興味はあるが、どのようなものか?どう学ぶのか?」という方向けに、具体的な内容と私自身の挑戦ログをお伝えする。学び中の方や、これから学ぼうとされる方の参考になれば幸いだ。今回は知識および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)
過去問研究時の考察
- 何回も繰り返し午後問題を解き、振り返り研究していると、頭の中にマスタとトランザクションのER図が思い浮かぶ。
- 例えばマスタに顧客・組織・サービスがあり、トランザクションの注文には顧客と組織が矢印で結ばれ、注文明細には注文とサービスが矢印で結ばれ、のように。
- すると、各エンティティ内の属性もアテがつき、業務の流れとともにどのエンティティのどの属性が更新されるのかイメージか湧くようになる。
- こうなると、本文を読むときに頭の中で「ER図とスキーマと状況説明」が結びついて理解できるようになる。これが短時間で正しく解くための入口だと実感。
- この力を養うには、過去問を解く際にいくつか意識することがあると思われる。
- ①まず、仕事の仮想体験だと思って読むこと(脳の最初の認知スイッチを入れるイメージ。自分ごととして捉えられるようになり、頭に入る。)
- ②次に、ER図とスキーマと状況説明を読み、頭のなかで組み立て読んでいくこと(立体的に頭を使うイメージ。業務説明を聞いて「はい」でなく、頭のなかでは「さてどう設計するか?」と考えている)
- なお、その際業務の直感的理解のため表は極めて有効。大まかに「何がしたいのか」読み取れると良い。
- ③最後に、設問については「おそらくこうだろう」という仮説を先に立て臨むこと(アウトプット思考)
- なぜなら、設問は「設計するなら当然意識すべき事例(または失敗を経て体に刻む事例)」であることが多く、答えを一から探すのではなく、いくつかある状況別事例集(頭の中の引き出し)のうちどれに該当するか探す、という工程になることをIPAは望んでいると思われるから)
- 要するに、「ここにこのヒントがあるから、答えをこう導く」の一歩手前。「そもそもこんなイメージのはず」という仮説思考まで追体験するため、過去問を自分ごととして捉えるのが大事ということ。
- そのために、過去問を解く際は「設問のパターン(基礎理論・トリガ・参照制約・SQL…など)」および「業務のパターン」の二重の意味でストックしておくと良い。
- 過去問のパズル要素だけでも面白いのに、業務の追体験ができて、さらに読解力も鍛えられて三重で面白い。いずれにせよ、楽しんでやりたい。
- (9月10日追記)ただし、論理設計のER図・スキーマ穴埋めはその作業自体に集中力を要するので、まずはその作業を自然とできるようになってからの、+αの内容であることに注意。(作業に慣れていないうちに、頭に業務イメージも構築しようとして、脳のキャパが追い付かなくなり、うっかりリレーション書き忘れたりしたため)
DB学習ログ
午後1″物理・SQL”
- 今回はH19問3のセキュリティと監査に関する問題を確認。
- 権限付与、監査、SQLについて設問パターンとしてストックできた。
- あらためて、「基礎知識+読解力+パズル要素」で解ける難易度であることは確認。
- ただし、制限時間内になるべく正しく回答するには、過去問による設問パターンと業務パターンを体に刻むことが必要であり、「少し考えて答えを読む⇒自分ごととして振り返る(上記参照)⇒時間を置いてもう一度解く」のプロセスが必要そうだ。
1日1回論理設計実技
- 今回はH27 PM1 問2を実施。時間内に全て回答は完了。
- 基本的には「論理設計のコツ」に沿って9割以上正解。SQLも含む問題だったがGROUP BYや結合の列名を入れるものであり初歩的であった。
- 1つ誤った箇所として、SQLにおいて「サブタイプはスーパタイプにまとめた」とある部分を理解できず、サブタイプの列名で答えたところ。同じ記述が来たら注意したい。
(1日のうち)残りの時間でやったこと
- 午前2対策、今回はH29 AM2を実施。時間内に全て回答は完了。
- 結論として1問のみ誤り。とはいえ油断せず、これら過去問は確実に解けるよう注意すること。
- なお、誤った問題は問9。3値理論に関する問題で、or条件のうち一つでもnullだと結果はunknownになるとのこと
問題124(SQL確認ドリル)
問題文
- salesとcustomersテーブルから、顧客別に販売した金額の合計を求めてください。
- 結果テーブルは、顧客の氏名(name)と販売金額の合計(sum_rev)の2カラムとします。
- sum_revの大きい順に3名の顧客に絞り込んでください。
inner joinのおさらい
- まず、salesテーブルとcustomersテーブルの2つを参照するため、joinを使うことを考える。
- 今回はinner joinで、両テーブルが共通して持つ”user_id”を接続に用いる。(on句を利用)
- そのうえで、「顧客別に」とのことなので、order byで”顧客氏名(name)”で束ねる。
- (なお、order byでuser_idを指定することも考えたが、結果テーブルの指定がnameであり、エラーになるため諦めた)
- そのうえで、select句でnameと、sum(revenue)を指定し、group byで金額合計の降順に並べ、limitで上位3つを出す。
- 具体的には以下のとおり。
考察
- データベーススペシャリスト資格について。午後1(論理設計および物理設計+SQL)実技をふまえ、今後意識すべきことを整理した。また、SQLの確認ドリル(salesとcustomersテーブルから、顧客別に販売した金額の合計を求める)を解いた。
- キャリアコンサルタント資格について、グループ・アプローチに関する知識の一部を学んだ。とくに「グループダイナミクス」の考え方は興味深い。守秘義務が守られ、批判的発言をしない安心・安全な場において、メンバー同士が相互交流するもので、私の職場では貴重なものだからだ。
考察のシンプル化と英訳(練習中)
- I think it’s easier to express myself in a psychologically safe place.
- (私は、心理的に安全な場所だと自分らしい発言がしやすいと思います)
参考資料
- 集中演習 SQL入門/木田和廣/株式会社インプレス
- 2022年度版 ALL IN ONE パーフェクトマスター データベーススペシャリスト/TAC
コメント