Previous: 第二正規形
Up: データベースの論理設計
Next: 第三正規形
Previous Page: 第二正規形
Next Page: 第三正規形
「第一正規形」への変形は、テーブル中の各セルには単一の値しか認められないという 原理に基づいた、トリビアルな、しかし、不可欠なものであった。
「第二正規形」への変換は、それとは異なる原理に基づいているが、それは、これ以降 の、いわゆる「高次の正規化」全てに共通するものである。
その原理とは、「ある種のテーブルは、適当な項目を持つように複数のテーブルに分割 しても情報は失われない。すなわち、ジョインによって、それらのテーブルを結合すれ ば、元のテーブルは、正確に再現される。」というものである。
もちろん全てのテーブルが、こうした原理で分割可能な訳ではない。明らかに、二項目 からなるテーブルは、それ以上に分割不能であるし、次の例のように、ジョインを行え ば、以前には無かった情報を含む行が出現するような例を構成できる。にもかかわら ず、「分割?結合」を通じて情報が保たれる、こうしたテーブルのクラスが、実践的に は、非常に重要な意味を持っているのである。
コネクション・トラップの例
(0) 科目 教員 教科書 ----------------- ----- -------------------------- UNIX概論 丸山 プロフェッショナルUNIX システム管理論 丸山 スーパーユーザーの為のUNIX UNIX概論 植田 スーパーユーザーの為のUNIX
上のテーブルを次の3つのテーブルに分割する
(1) 科目 教員 ----------------- ----- * UNIX概論 丸山 システム管理論 丸山 UNIX概論 植田(2) 科目 教科書 ----------------- -------------------------- UNIX概論 プロフェッショナルUNIX * システム管理論 スーパーユーザーの為のUNIX UNIX概論 スーパーユーザーの為のUNIX
(3) 教員 教科書 ----- -------------------------- 丸山 プロフェッショナルUNIX * 丸山 スーパーユーザーの為のUNIX 植田 スーパーユーザーの為のUNIX
(1) (2) (3) のジョインを取ると
(4) 科目 教員 教科書 ----------------- ----- -------------------------- UNIX概論 丸山 プロフェッショナルUNIX システム管理論 丸山 スーパーユーザーの為のUNIX UNIX概論 植田 スーパーユーザーの為のUNIX *** UNIX概論 丸山 スーパーユーザーの為のUNIX
この最後の行は、元のテーブルに含まれてはいなかったものである。
テーブルについてのどの様な条件が、こうした情報を保った「分割?結合」を可能に
するかについては、後にその、必要十分条件が与えられるだろう。
ここでは、次のことを示そうと思う。
Row = R(A,B,C) で、A ---> B かつ A ---> C ならば、分割 R1(A,B) , R2(A,C)は、 ジョインによって元のテーブルRを再現する。
R1.A = R2.A なる条件を満たすジョインによって、( R1.A=R2.A , R1.B , R2.C )なる 三つ組が作られるが、R1,R2 が R の分割であることから、( R1.A , R1.B ) ( R2.A , R2.C )は、( R.A , R.B ) ( R.A , R.B ) に一対一に対応する。これと、A ---> B , A ---> C から、先の三つ組は、( R.A , R.B , R.C ) に一対一に対応することが 分かる。
maruyama@wakhok.ac.jp