データベースの学習に大切な,”関数”という考え方
高校までは数学は得意だったのですが,大学ではちょっと苦手意識があった,わく☆すた,美月です。
なので,実はあんまり,数学の学術書とかを読むのは,好きではありません。一応理学部なので,読めと言われれば読めますが,そこまではやりたくないかなぁ,というのが本音です。
でも,データベースなんかは,深く勉強しようと思うと,とたんに数学っぽくなります。正規化の理論って,ホントに数学の理論なんだなぁ,って改めて思います。
ですので,データベーススペシャリストの勉強をする場合には,大学レベルまで学ぶ必要はないですが,数学的な考え方は知っておいた方がいいのかな,とは改めて感じてます。
そんなこんなで,今日はちょっと役に立つ小ネタ,ってことで,「関数」の話です。
データベースの勉強をしてると,「関数従属性」っていう言葉がよく出てきます。
この「関数」という言葉は,昔中学校ぐらいで習った「関数」と,ほぼ同じ意味です。つまり,y=f(x) みたいな感じで,xが決まればyが決まる,ある変数の値が決まれば別の変数の値が決まる,というものです。
なので,データベースの関数従属性というのは,ある属性(または属性の組)が決まったら,別の属性(または属性の組)が決まることをいいます。{商品番号}→{商品名}みたいに,商品番号が1つ決まれば,対応する商品名が1つ決まる,というものです。
なので,関数従属性を考える時には,「これが決まったら,他の属性が”一つに決まる”かな?」というのを考えるのがコツになります。
理論的には,ただそれだけです。
とはいえ,データベーススペシャリストの試験だと,「1つに決まりそう」と見えて実は決まらなかったり,「これだけで決まるわけない」と思っていたものが実はそれで良かったりするから,難しくなってきます。
昨日のセミナーでも,「受講者IDが決まればパスワードは一意に決まるに決まってるじゃん」と思いがちなんだけど,実はそうではない,という過去問を取り扱いました。
いかに先入観をなくして,純粋に論理的に”関数”としての性質を考えられるか,が合否のカギを握ってきます。
このあたりは,やっぱりデータベースは数学と似てる感じです。最初に目に映るものに惑わされないで,しっかり本質を見る,そういったことが大切になるのかな,と感じています。
最後に,関数つながりで面白い歌を紹介します。
その名も,「私の心の中の関数 -My excel story-」。エクセルの歌ですが,結構楽しいです。
自分の心の中に,すっきりと本質だけをフィルタで取り出せる”関数”を持てるように,楽しく学習していきましょう。