2008年10月8日水曜日

10月8日~データの冗長性~

 関係データベースの基本はやはり伝票の整理にあると思う。企業で伝票番号を用いない企業というのは実務ではかなりレアだろう。やはり手書きの伝票をパソコンに入力してそれから関係データベースの出番になるはずだ。第1正規形は伝票で考えれば「繰り返し」がないと定義されるが、それは同じ消費者が同じ日付で2種類の商品を購入したときに、伝票番号と商品番号を主キーにして繰り返しが発生しないようにする(通常手書きの帳簿でも繰り返しが生じないように書き込むようになっている)。
 次に主キーに従属するものをどんどん分離して別の表に分けていく。伝票番号と商品番号が決定していれば、商品番号に通常は商品名や単価は従属している。伝票番号にも通常、顧客名とその顧客番号は記載されているので、それを別の表にしてしまう。これが第2正規形だ。この第2正規形にすると、商品を廃品にした場合に別の商品名を商品番号に入れ替えればそのまま関係データベースを大幅に変更しなくて済むというメリットがでてくる。商品番号に従属する商品名や単価などがまさしく部分関数従属となるわけだ。
 さらに第三正規形で考えると、伝票番号・顧客番号・顧客名のうち顧客番号さえわかれば顧客名は別の表にして変更にそなえたほうがよい。そうして別の表にさらに分離して、主キー以外の項目の重複がなくなるとともに従属関係(推移的従属関係)がなくなる。いわば主キー項目以外に重複がないのが第3正規形で、一番環境の変化に強い関係データベース。データの冗長性をなくすとともに、現実の変化に対応しやすくなるというのがこの正規化のメリットなのだろう。伝票番号で考えていく…という発想はでも実務向けの考え方か…

0 件のコメント: