Previous: 関数従属
Up: データベースの論理設計
Next: 第二正規形
Previous Page: 関数従属
Next Page: 第二正規形

第一正規形

次のようなテーブルを考えてみよう。

学生番号      氏名        所属       履修科目    点数        
  ----------- ------------- ----------  ----------- ------
       0001     丸山不二夫   経営情報    UNIX     88
                                            C        53
                                           OA       30
       0002     山田太郎     経営情報    UNIX     92
                                            C        78
                                           OA       72
       0003     山田太郎     英文情報      OA       86
  ----------- ------------- ----------  ----------- ------

このテーブルは、普通のテーブルとしては問題ないが、リレーショナル・データ ベースのテーブルとしては、「テーブルの項目には複数の値を入れることは出来ない」 という条件を満たしていないので、不十分である。 このテーブルは、次のように書き直され(第一正規化)ねばならない。

学生番号      氏名        所属       履修科目    点数        
  ----------- ------------- ----------  ----------- ------
       0001     丸山不二夫   経営情報    UNIX     88
       0001     丸山不二夫   経営情報       C        53
       0001     丸山不二夫   経営情報      OA       30
       0002     山田太郎     経営情報    UNIX     92
       0002     山田太郎     経営情報       C        78
       0002     山田太郎     経営情報      OA       72
       0003     山田太郎     英文情報      OA       86
  ----------- ------------- ----------  ----------- ------

こうして得られたテーブルは、リレーショナル・データベースのテーブルの満たす べき最低限の要件は満たしているが、第一正規化以前のテーブルに比べて、冗長な 印象を与えるのは否めない。実は、この「冗長」という印象は、第一正規化のせいだけ ではない。

このテーブルでは、各人の所属と科目毎の成績が主に記録されているのだが、この二つ はもともと独立のものである。テーブルの中で、各人の成績毎に氏名や所属が冗長に 繰り返されるのは、そのためである。次の二つのテーブルが、もとのテーブルと等し い情報を持つことは明らかである。二つのテーブルを、「学生番号」についてジョイン をとれば、もとのテーブルが再現されるのもすぐ分かるであろう。 我々は、この二つのテーブルを元のテーブルのより「正規化」された形と考えることが できる。

学生番号      氏名        所属     	    学生番号    履修科目    点数 
  ----------- ------------- ---------- 	  -----------  ----------- ------
       0001     丸山不二夫   経営情報  	       0001     UNIX     88  
       0002     山田太郎     経営情報  	       0001        C        53  
       0003     山田太郎     英文情報 	       0001       OA       30  
  ----------- ------------- ---------- 	       0002     UNIX     92  
                                 	       0002        C        78  
                                 	       0002       OA       72  
                                 	       0003       OA       86  
                                	  -----------  ----------- ------

maruyama@wakhok.ac.jp
1995年02月10日 (金) 00時49分16秒 JST