DBの正規化を学んでみた(その2:第四正規形・第五正規形編)

 こんにちは。ネットワークエンジニアの「だいまる」です。
 今回は、前回に引き続きデータベーススペシャリスト合格に向けて、勉強した第四正規形と第五正規形をアウトプットしたいと思います。

第四正規形

 はじめに、第四正規形の定義は以下の通りとなります。
(定義)
 ・X→→Yをリレーションの多値従属性とするとき、以下を満たす
  ①X→→Yは、自明な多値従属である
  ②XはRのスーパキー

 ここで「多値従属性」とは?となると思いますが、以下で説明したいと思います。

多値従属性

属性Xが決まったら、他の属性が独立的に決まる(X→→Y)※「→→」が多値従属性の式

多値従属性の例

 以下の図では、地方名(関東・東北・関西等)と都道府県名を基に説明しております。
 多値従属性とは、一言で言うと「1つの値を選んだ際にもう一方の値も同時に勝手にきまる従属性」のことです。
例えば、地方テーブルには、「神奈川」、「埼玉」、「千葉」、「宮城」の4県がありますが、地方名である「関東」を選択すると勝手に「神奈川」、「埼玉」、「千葉」が定まります。
このような関係性を多値従属性と呼びます。

第四正規形の具体例

 この部分では、第四正規形の具体例について説明したいと思います。
第四正規形は、先ほど説明した通り多値従属性1つの属性に対し成立している分には問題ないですが、X→→Y、Z→→Aといった関係が成立している場合は、正規化できていると言えません。

 例えば、下図では「地方名」、「県名」、「市町村」の3つの属性があります。このテーブルでは、「関東」→→「埼玉」、「千葉」となります。
しかし、「埼玉」→→「A」、「B」といった関係も成り立つため、正規化の条件を満たしておりません。

そこで、「地方名」と「県名」「県名」と「市町村」のテーブルに分割することで多値従属性は、それぞれ分割されることになるため、正規化されていることになります。

第五正規形

 最後に、第五正規形について説明したいと思います。
まず定義は、
(定義)
(X1, X2, ・・・, Xn)をリレーションの結合従属性とするとき、以下を満たす
 ①:(X1, X2, ・・・, Xn)は自明な結合従属性のとき
 ②:Xiはスーパーキー

 上記定義の中で出てきた「結合従属性」とは、分解したテーブルを元のテーブルに戻せる状態のことを言う。
 具体例は、以下の例を用いると「地方名」と「県名」、「県名」と「市町村」に分割した後、この2つのテーブルを結合すると元のテーブルに戻ります。
これが第五正規形かつ結合従属性です。

 これまで、第一正規形から第五正規形までまとめてきましたが、正直第五正規形に関しては、第四正規形と何が根本的に違うのかしっかり理解できていません。
理解したらこの記事を更新したいと思います。

最後に

 正規化を学んでいく上で、アプリケーション開発やシステム開発でデータベース設計・構築に携わったことがない身としては、ここまでしっかりやっているのか気になったところです。
今後は、実装も含めて勉強していきたいと思います。

この記事が気に入ったらサポートをしてみませんか?