「大人の教養・知識・気付き」を伸ばすブログ

一流の大人(ビジネスマン、政治家、リーダー…)として知っておきたい、教養・社会動向を意外なところから取り上げ学ぶことで“気付く力”を伸ばすブログです。現在、コンサルタントの雛になるべく、少しずつ勉強中です(※2024年12月10日改訂)。

MENU

データサイエンスとデータベース(05/X)

 データベースの理論的な部分を

を基に学んでいく。


power-of-awareness.com


今日のまとめ

  • 関数従属性X\rightarrow Yの左辺Xのどの真部分列X^{\prime}についてもX^{\prime}\nrightarrow Yであるとき、XYに完全関数従属であるという。
  • 関係スキーマは、すべての非キー属性が主キーに完全関数従属製するとき第2正規形であるという。

3. SQLと正規化

3.2 正規化

3.2.3 完全関数従属性と第2正規形

 関数従属性はいくつか重要な性質を持つ。
 1つ目に、関係スキーマの属性列A_Rの部分列X,Y,X^{\prime}に対して、


\begin{aligned}
&A_R\rightarrow Y\\
&\left(\left(X\rightarrow Y\right)\land\left(X\subset X^{\prime}\right)\right)\Rightarrow X^{\prime}\rightarrow Y
\end{aligned}

が成り立つ。ここでX\subset X^{\prime}XX^{\prime}の部分列であることを意味する。
 2つ目の性質から、ある関数従属性が成り立つならば、左辺の属性は任意に増やしてよいということが分かる。逆に言えば、属性の部分列Yに対して、1つ目の性質から必ずA_R\rightarrowYが成り立ち、もし部分列X\subset A_Rに対して関数従属性X\rightarrow Yが成り立つならば、左辺をA_RからXに縮小しても関数従属性が保存される(ただし左辺の縮小には限界がある。)。
 縮小していくと、非キー属性はすべて主キーに関数従属してしまい、関数従属性ではデータのまとまりを束ねられない。しかし非キー属性を右辺とするような関数従属性の中に左辺を更に削ることができる。



定義3.2 完全関数従属性 関数従属性X\rightarrow Yの左辺Xのどの真部分列X^{\prime}についてもX^{\prime}\nrightarrow Yであるとき、XYに完全関数従属であるという。

 完全関数従属性がデータの1つの内容を束ねると考えて、関係スキーマを分解すると、更新時異常が解消される。

 3つの完全関数従属性


\begin{aligned}
&学生名\Rightarrow 研究室名,学科名\\
&授業名\Rightarrow 開講時期\\
&学生名,授業名\Rightarrow 成績
\end{aligned}

によってテーブル

学生名
研究室名
学科名
授業名
開講時期
成績
太郎 知識情報学 知識科学 人工知能 2年前期
\mathrm{S}
太郎 知識情報学 知識科学 統計学 1年後期
\mathrm{A}
次郎 データ解析学 データ科学 人工知能 2年後期
\mathrm{C}
次郎 データ解析学 データ科学 統計学 1年後期
\mathrm{B}
次郎 データ解析学 データ科学 数理論理学 2年後期
\mathrm{A}
三郎 データ解析学 データ科学 統計学 1年後期
\mathrm{S}

を分解すると以下のようになる。

  • 学生
学生名
研究室名
学科名
太郎 知識情報学 知識科学
次郎 データ解析学 データ科学
三郎 データ解析学 データ科学
  • 授業
授業名
開講時期
人工知能 2年前期
統計学 1年後期
数理論理学 2年後期
  • 履修
学生名
授業名
成績
太郎 人工知能
\mathrm{S}
太郎 統計学
\mathrm{A}
次郎 人工知能
\mathrm{C}
次郎 統計学
\mathrm{B}
次郎 数理論理学
\mathrm{A}
三郎 統計学
\mathrm{S}
  • (1)挿入時異常の解消

     単位振替作業が終了していなくても、学生テーブルに「四郎」さんを挿入できる。
  • (2)削除時異常の解消

     「次郎」さんについて、履修科目のデータに影響を与えることなくテーブル「学生」から削除できる。
  • (3)修正時異常の解消

     「統計学」の開講時期変更は履修者の数に影響されず、テーブル「授業」の1か所のみ変更すればよい。


 1セル1データの条件を満たすテーブルを第1正規形といった。更に完全関数従属性による以下の条件を満たすテーブルを第2正規形と呼ぶ。


定義3.4 第2正規形 関係スキーマ第2正規形であるとは、すべての非キー属性が主キーに完全関数従属製するときである。

 関係スキーマに含まれる完全関数従属性をすべて洗い出して、第2正規形となるいくつかの関係スキーマに分解する作業を第2正規化と呼ぶ。

プライバシーポリシー お問い合わせ