データベースの基礎【関数従属性】

今回は僕がデータベーススペシャリストの勉強をして、

特に重要だと感じた関数従属性についてまとめました。

データベーススペシャリストを目指している方にはもちろん、

普通のシステムエンジニアやプログラマーにも抑えておいて欲しい内容です。

この記事を書いている僕はシステムエンジニア6年目

普段はJavaでWebアプリを作ったりSQL書いたり・・・(DBAのような仕事は普段していないです)

応用情報技術者試験に合格(2回落ちましたが。。)し、データベースの分野が得意だったので、

独学でデータベーススペシャリストの勉強をして、昨年合格(これは1発合格)しました。

今回は、データベーススペシャリストの勉強を通じて、

データベーススペシャリストを目指す人はもちろん、

普通のシステムエンジニアやプログラマーの方にも抑えておいて欲しい関数従属性についてまとめてみました。

関数従属性

項目Xの値を決定すると、項目Yの値が一つに決定されるとき、

項目Yは項目Xに関数従属しているといいます。

これをX→Yと表記し、Xを決定項、Yを被決定項といいます。

上の図の例では、

社員に対して一意に振られている社員番号が決まれば、

社員の名前が決まるというケースを挙げています。

関数従属性の推論則

関数従属性には、次のような推論則が成立します。

(次の、X、Y、Z、及びWは、属性集合です)

反射律

YがXの部分集合ならば、X→Yが成立する。

上の図の例では、

会員番号の中に、部分集合として有料会員番号があることを表しています。

会員番号004が決まれば、有料会員番号004が決まります。

増加律

X→Yが成立するならば、{X, Z}→{Y, Z}が成立する。

上の図の例では、

社員番号が決まれば社員名が決まり、

社員番号と部署が決まれば、社員名と部署が決まることを表しています。

推移律

X→Yかつ、Y→Zが成立するならば、X→Zが成立する。

図の上の例では、

社員番号が決まれば部署IDが決まり、

部署IDが決まれば部署名が決まるという前提があり、

社員番号が決まれば部署名が決まることを表しています。

擬推移律

X→Yかつ、{W, Y}→Zが成立するならば、{W, X}→Zが成立する。推移律はWが空集合の場合である。

上の図の例では、

まず、売上IDが決まると店舗IDが決まり、(どこの店舗の売上かを管理)

店舗IDと商品IDから在庫数が決まる(ある店舗のある商品の在庫数を管理)という前提があり、

その場合、売上IDと商品IDから在庫数が決まるということを表しています。

合併律

X→YかつX→Zが成立するならば、X→{Y, Z}が成立する。

上の図の例では、

社員番号が決まれば、社員名、所属部署がそれぞれ決まる場合、

社員番号が決まれば社員名と所属部署が同時に決まることを表しています。

分解律

X→{Y, Z}が成立するならば、X→YかつX→Zが成立する。

上の図の例では、

社員番号が決まれば、社員名と所属部署が同時に決まる場合、

社員番号が決まれば社員名、所属部署がそれぞれ決まることを表しています。

おわりに

今回は関数従属性とは何か、

また、関数従属性の推論則について確認しました。

データベーススペシャリストの試験では、

正規化する時や、候補キーを抽出する時などの様々な場面で関数従属性は出てきます。

基本的で簡単な内容ですが、

きちんと内容を理解し、使えるようにしておきましょう。

2022/03/21追記

現場で必要なデータベース周りの知識に関するまとめ記事を作ったので

是非そちらも参照ください!!

現場で必要なデータベースの基礎知識まとめ|正規化、ACID特性、SQLチューニングなど

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください