touch /tmp/output

サーバ関連の事とか、書けたらプログラミングの事とか

データベーススペシャリスト(H27年度) 勉強まとめ1(正規化理論)

データベーススペシャリストの勉強を始めたのでメモがてらまとめていきます。

正規化とは

◇正規化の目的

正規化の目的は更新時異状を排除するため

更新時異状とは?

データベースのデータが更新によって本来の状態とは違った状態になる

  1. タプル挿入時異状
  2. タプル更新(修正)時異状
  3. タプル削除時異状

◇正規化を行わない場合

更新を行わない場合は正規化の必要はない

  1. データの更新を行わない場合
  2. データの履歴を残す場合
    • 古いデータの履歴を残すなど
  3. 高速化が必要な場合
    • 正規化を行うとパフォーマンスが落ちるのであえてしない
    • その代わり更新時異状対策は別途アプリなどで行う

第1正規化

属性がすべて単一値を取ること

第2正規化

  • 関係Rは第1正規化されている
  • 関係Rのすべての非キー属性はRの各候補キーに完全関数従属している

第3正規化

  • 関係Rは第2正規化されている
  • 関係Rのすべての非キー属性はRのいかなる候補キーにも推移的に関数従属しない

ボイスコッド正規形

X→YをRの関数従属性とするとき 1. X→Yは自明な関数従属性であるか、またいは 2. XはRのスーパーキーである

第4正規化

X→→YをRの多値従属性とするとき 1. X→→Yは自明な多値従属性であるか、または 2. XはRのスーパーキーである

細かいところは後ほどまとめる。 以下、参考した書籍

徹底攻略 データベーススペシャリスト教科書 平成27年度 (ITプロ/ITエンジニアのための徹底攻略 Tettei Kouryak)

徹底攻略 データベーススペシャリスト教科書 平成27年度 (ITプロ/ITエンジニアのための徹底攻略 Tettei Kouryak)