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
1995年02月10日 (金) 00時49分16秒 JST