この記事は「データベーススペシャリスト資格に興味はあるが、どのようなものか?どう学ぶのか?」という方向けに、具体的な内容と私自身の挑戦ログをお伝えする。学び中の方や、これから学ぼうとされる方の参考になれば幸いだ。今回は知識および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
- 大人の週末起業/藤井 孝一/株式会社インプレス
コメント