━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■第27回 第4正規化・第5正規化
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
前回、第3正規化までお話しましたが、正規化は第5まで存在します。
しかし、実際の業務では第3正規化までで終わりにすることが一般的です。
そこで今回、あえて第4、第5正規化を紹介することで、なぜ第3正規化まで
とすることが多いのか考えてみたいと思います。
ちなみに、第4正規化の前に「ボイスコッド正規化」というのがあるのです
が、ちょっと分かりにくいところがありますので、順番を変えて次回紹介し
ようと思います。
●第4・第5正規化の対象
いきなり核心に触れてしまいますが、第3正規形までのテーブルは、キー項
目が決まると非キー項目も決まる(関数従属)という性質があります。
この性質があるために、キーは分解できないのですが、第4・第5正規化はキ
ーの分解を行います。
一見矛盾している話のようですけれど、対照表(関連表)のようにキーのみ
の表では状況によって分解が可能になります。
この対照表、表Aと表Bの関連が他対他であるとき、キーの組み合わせを持
った表を作成することで、1対他と他対1の関連を作り出します。
例を、社員と趣味の関係で考えてみます。
ある社員の趣味が読書と映画鑑賞だとすると、複数の趣味が存在ということ
になりますし、読書が趣味の社員も相当多く居ると思われますので、他対他
の関係になります。
これを対照表にすると、以下のようになります。
-------------------
| 社員 | 趣味 |
+------+----------+
| 田中 | 読書 |
+------+----------+
| 田中 | 映画鑑賞 |
+------+----------+
| 鈴木 | 読書 |
+------+----------+
| 鈴木 | 競馬 |
+------+----------+
| 佐藤 | 映画鑑賞 |
-------------------
社員が決まると趣味の集合が決まりますね。
このように集合に対する従属性を多値従属性といいます。
●第4正規化
では、以下のような表ではどうでしょうか。
--------------------------
| 部署 | 社員 | 支給品 |
+------+------+----------+
| 総務 | 田中 | 鉛筆 |
+------+------+----------+
| 総務 | 田中 | ノート |
+------+------+----------+
| 総務 | 田中 | 消しゴム |
+------+------+----------+
| 総務 | 佐藤 | 鉛筆 |
+------+------+----------+
| 総務 | 佐藤 | ノート |
+------+------+----------+
| 総務 | 佐藤 | 消しゴム |
+------+------+----------+
| 営業 | 鈴木 | ノートPC |
+------+------+----------+
| 営業 | 鈴木 | 携帯電話 |
+------+------+----------+
| 営業 | 後藤 | ノートPC |
+------+------+----------+
| 営業 | 後藤 | 携帯電話 |
+------+------+----------+
| 営業 | 池田 | ノートPC |
+------+------+----------+
| 営業 | 池田 | 携帯電話 |
--------------------------
この表では、部署に対して社員の集合が決まるし、内線の集合も決まる性質
があります。
第4正規化では、このように多値従属性が複数存在するとき、それぞれの多
値従属性に注目して分割します。
--------------- -------------------
| 部署 | 社員 | | 部署 | 支給品 |
+------+------+ +------+----------+
| 総務 | 田中 | | 総務 | 鉛筆 |
+------+------+ +------+----------+
| 総務 | 佐藤 | | 総務 | ノート |
+------+------+ +------+----------+
| 営業 | 鈴木 | | 総務 | 消しゴム |
+------+------+ +------+----------+
| 営業 | 後藤 | | 営業 | ノートPC |
+------+------+ +------+----------+
| 営業 | 池田 | | 営業 | 携帯電話 |
--------------- -------------------
さて、第4正規化を行わない場合、社員・支給品を登録しないとデータの登
録が行えません。(キー項目にNULLは入れられません)
また、部署に所属する社員のデータすべてを削除すると、部署ごとの支給品
が分からなくなってしまいますね。
●第5正規化
第5正規化は、分解後の表を結合すると元の表に戻せるように分解します。
もっと分かりやすく言うと、全ての組み合わせを考慮して分解します。
上記の表を例にすると、
--------------- ------------------- -------------------
| 部署 | 社員 | | 部署 | 支給品 | | 社員 | 支給品 |
+------+------+ +------+----------+ +------+----------+
| 総務 | 田中 | | 総務 | 鉛筆 | | 田中 | 鉛筆 |
+------+------+ +------+----------+ +------+----------+
| 総務 | 佐藤 | | 総務 | ノート | | 田中 | ノート |
+------+------+ +------+----------+ +------+----------+
| 営業 | 鈴木 | | 総務 | 消しゴム | | 田中 | 消しゴム |
+------+------+ +------+----------+ +------+----------+
| 営業 | 後藤 | | 営業 | ノートPC | | 佐藤 | 鉛筆 |
+------+------+ +------+----------+ +------+----------+
| 営業 | 池田 | | 営業 | 携帯電話 | | 佐藤 | ノート |
--------------- ------------------- +------+----------+
| 佐藤 | 消しゴム |
+------+----------+
| 鈴木 | ノートPC |
+------+----------+
| 鈴木 | 携帯電話 |
+------+----------+
| 後藤 | ノートPC |
+------+----------+
| 後藤 | 携帯電話 |
+------+----------+
| 池田 | ノートPC |
+------+----------+
| 池田 | 携帯電話 |
-------------------
第5正規化を行わない場合、各項目がキーですので、全てのデータが揃って
からでないと登録ができません。
さて、なぜ第3正規化までで十分なのか分かりましたでしょうか。
まず1つ目の理由として、データが揃わないと登録できないという制限が発
生する事。
2つ目の理由として、2つの表の関連表であれば、そもそも正規化が不要だ
からということになります。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━