2009年8月5日水曜日

【DBiD】7 データベース設計理論 (その3)


** 7.2 関数従属性とボイスコッド正規化
- 2NF,3NF,BCNFは関数従属性(FD)の概念に基づいている。
- FDの定義。(原文まま引用)

A,Bを関係変数Rの見出しの部分集合であるとすれば、Rの
妥当な値であるすべての関係において、Aに同じ値を持
つ2つのタプルがBにも同じ値を持つ場合に限り、関係変
数Rは関数従属性A -> Bを満たす。
- Aがキー(見出しの部分集合)のとき、A'⊃Aとなる
A'(見出しの部分集合)を上位キーと呼ぶ。
- A'⊇AかつB⊇B'ならばA' -> B'も自動的に成り立つ。
- ここでAがキーならばA'は上位キーであり、キーと非
キーの関係とから、上位キーから任意の部分集合(of
見出し)へのFDが成立することがわかる。
- 見出し⊇A⊇BのときA->Bは常にFDである。これは必
ず成り立つので、自明なFDと呼ぶ。
- BCNFの定義 (原文の定義は曖昧なので私家版)

関係変数Rは、Rによって満たされるすべての非自明FD A
-> B において、AとなるのがRの上位キーのみである場合
に、そしてその場合のみに、BCNFである。

- BCNFでないものをBCNFにする(これをBCNF化と呼ぶ)、
ということは、なんらかのFDを排除する、ということ
である。FDを排除する、ということがどういうことか
という、BCNFにする過程で、ある関係がそれよりも属
性数の少い関係達に分解されることにより、FDが関係
達から消失し、そのかわりに、多重関係変数制約が発
生するということである。

- BCNF化する際には関係変数の分解が発生する。
- 分解処理の実体は、射影にすぎない。
- BCNF化の分解にあたっては、分解後の関係変数達を
結合すると、分解前の関係変数に戻るようにする。
このような分解の仕方を無損失な分解と呼ぶ。

- 1NF,2NF,3NFはBCNFに包含されている。またBCNFはFD
について包括的である。よって1NF,2NF,3NFは歴史的
なものと考えてよく、理論的にも実践的にもBCNFを
考えればよい。
- RVAを含めれば、あらゆる関係は少なくとも1NFであ
り、非正規形テーブルなどは存在しない。
- RVAを避けた方が賢明なのはベース関係についての教
訓であり、仮想関係や結果として返る関係については、
どんどん使えばよい。


こつこつ。

0 件のコメント: