SSブログ
データベース ブログトップ

正規化 [データベース]

DBのモデリングをする際には避けて通れない概念です。ここを曖昧にモデリングをすると、データの追加更新異常やデータ不整合の原因になったりするので、後々、痛すぎるしっぺ返しを喰らうことになります。
逆に、データベーススペシャリストを受験するつもりであれば、正規化とER図を完璧に押さえておけば、かなり合格に近付けます。管理人はSQLとDB設計を完全に切捨て、正規化とモデリングの勉強だけで合格しました。
実務では、否応なしに基本的なSQL知識などが求められるので、試験に合格した後も継続的な周辺知識の勉強が必要になります。

関数従属


ある値(x)が決まると、他方の値(y)も関数的に決まる関係であるとき、yはxに関数従属している。といいます。
キー属性と非キー属性の関係が関数従属になります。後述の正規化に於ける前提知識となるので、データの制約や構造を見て、ノータイムで見つけ出せるぐらいの感覚があると、正規化の作業がグッと楽になります。

第一正規化


全ての属性が単一値をとる状態のことを、第一正規化と呼びます。
配列や表のような構造を持つ属性が一つでもあれば、第一正規化の条件を満たせていません。

第二正規化


第一正規化を満たし、かつ、部分関数従属が存在しない場合に、第二正規化と呼びます。
部分関数従属とは、複合キーの一部のキー属性に対して、関数従属する属性が存在している状態のことです。

第三正規化


第二正規化を満たし、かつ、推移的関数従属が存在しない場合に、第三正規化と呼びます。
推移的関数従属とは、ある非キー属性が、別の非キー属性に関数従属している状態のことです。

余談


データベーススペシャリストの午後問題では、ほぼ100%の確率で(選択する問題にもよりますが)正規化に関する問題が出題されます。傾向としてはテーブル定義や関数従属図を見て、どこまで正規化されているか?その判断基準は?といったものになります。またその逆で、正規化済みのテーブル構造を見て、関数従属図を完成させる問題や、関数従属図からテーブル属性を求めさせる問題もあります。
どの種類の問題にしろ、正規化に関する知識が完璧に近ければ、大きな得点源になるので、しっかり勉強しておきましょう。

★正規化の根拠を聞かれたら...
どこまで根拠
第一正規化全ての属性が単一値をとっているから
第二正規化全ての属性がキー属性の一部に部分関数従属していないから
第三正規化全ての属性が非キー属性に推移的関数従属していないから





リレーショナルデータベース入門―データモデル・SQL・管理システム (Information&Computing)

リレーショナルデータベース入門―データモデル・SQL・管理システム (Information&Computing)

  • 作者: 増永 良文
  • 出版社/メーカー: サイエンス社
  • 発売日: 2003/03
  • メディア: 単行本



データベース ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。