データベーススペシャリスト資格|2022年10月挑戦ログ 7月3日|DB基礎知識(関数従属)|SQL(確認ドリル)

高度IT・基礎知識

この記事は「データベーススペシャリスト資格に興味はあるが、どのようなものか?どう学ぶのか?」という方向けに、具体的な内容と私自身の挑戦ログをお伝えする。学び中の方や、これから学ぼうとされる方の参考になれば幸いだ。今回は知識およびSQL(確認ドリル)について書く。(SQLはGoogle Big Queryに準拠)

知識(関数従属)

基本的な考え方

  • 関数従属とは、ある属性Xの値を定めると、別の属性Yの値が一つに定まること。
  • 大事なのは「一つ」に定まること。数学における関数の定義とおなじ。(たとえば、y=2x+5のように、xの値を1と決めれば、yの値はぜったい7になるように)

具体例

  • たとえば、学生番号がA123と定めると、氏名は山田太郎さんの「一つ」に定まるなど。
  • 日本語では「氏名が、学生番号に、関数従属する」と書く。日本語で書くときは主語を間違えないように。
  • 図では「学生№→氏名」と書く。
  • なお、たとえば講義№が15と定めると、テキスト№が3,5,7と複数定まるようなケースは多値従属と言い、関数従属ではない。

部分関数従属

  • 部分関数従属の考え方は、数学的で難しい。
  • 日本語の説明を読んでも、数式を見てもますますわからない。
  • よってコツは、イメージ図と具体例で掴んでしまうこと。
  • たとえば以下のようなイメージ。正規化で言う第2正規形に係る部分。
  • なお、部分関数従属がないものを、完全関数従属と言う。

推移的関数従属

  • 比較的日本語で表現しやすい。X→Y→Zのような一連の流れ。
  • 上の図で言うと「{A,B,C}→D→E」や、「{B,C}→G→H」が該当する。
  • 正規化で言う第3正規形に係る部分。

候補キー

  • ある項目を定めた時、すべての項目が定まるような、ミニマムな組み合わせ。
  • 上の図で言うと、{A,B,C}が該当する。

9月22日復習時追記

  • 関数従属は、午前2では数問出題されるのみであり、対策済。
  • 午後については「基礎理論」として過去問ベースで確認しており、対策済。

問題054(SQL確認ドリル)

問題文

  • 「sales」テーブルから、商品ID(product_id)が「7」「9」「11」のいずれかで、
  • 販売個数(quantity)が「2」以上、かつ、
  • 値引き販売(is_properがfalseのもの)されているレコードを取得してください。
  • 結果テーブルは「order_id」の小さい順に並べ替え、全カラムを取得します。

whereのおさらい

  • whereと組み合わせる、良く使う記述はin,between,like。
  • 今回はinを用いて「7,9,11のいずれか」を指定。
  • 「販売個数が2個以上」は不等式、値引き販売は「is false」とbool値の絞りこみ条件を使用。
  • 具体的には以下のとおり。

考察

  • データベーススペシャリスト資格について。今回は関数従属について復習した。とくに部分関数従属など概念として難しいものは、図や具体例で理解することを心掛けたい。また、SQLの確認ドリルを解いた。お題は複合条件の絞り込みだ。
  • 考察。サラリーマン副業の強みは、本業での問題意識を副業で活かせることだと思う。たとえばITコンサルなら、本業で一つのプロジェクトに「もっとアドバイスしたい」と思っても、担当プロジェクトは複数あるため難しい。しかし副業であれば、その問題についてしっかり向きあうことができる。

考察のシンプル化と英訳(練習中)

  • main business’s problem awareness can become side business’s idea. I feel it’s strength of office worker’s side business.
  • (本業での問題意識が、副業のアイデアに成り得る。それはサラリーマン副業の強みだと思う)

参考資料

  • 集中演習 SQL入門/木田和廣/株式会社インプレス
  • 2022年度版 ALL IN ONE パーフェクトマスター データベーススペシャリスト/TAC
  • 大人の週末起業/藤井 孝一/株式会社インプレス

コメント

タイトルとURLをコピーしました