Previous: 第一正規形
Up: データベースの論理設計
Next: 情報を保つテーブルの分割と結合
Previous Page: 第一正規形
Next Page: 情報を保つテーブルの分割と結合

第二正規形

では、どの様な点で、より正規化されたのかを、もう少し詳しく見てみよう。 まず、元のテーブルの主キーはどの項目群かを考えてみよう。ちょっと見ると、 (学生番号、履修科目)と(氏名、履修科目)という二つの主キーの候補があるよう に思えるが、よくみると「山田太郎」という同姓同名の人物がいることがわかる。 (「山田太郎」、「OA」)という指定では、OAの点数が72点の行と86点の行の 一意の指定は出来ないので、(氏名、履修科目)は、主キーたりえない。結局、もとの テーブルの主キーは、(学生番号、履修科目)ということになる。

問題は、主キー以外の項目と主キーとの関係である。項目「氏名」、項目「所属」、 項目「点数」は、いずれも主キー(学生番号、履修科目)によって一意に決定される が、その決定のされ方は異なっている。項目「点数」にとっては、主キーを構成する どの項目が欠けても点数の一意の指定が出来なくなるのだが、項目「氏名」と項目 「所属」の一意の指定にとっては、テーブルの主キー全体が必要ではなく、その一部 「学生番号」だけがあれば十分である。要するに、正規化以前の元のテーブルでは、 テーブルの主キーが、その項目にとっては、強い意味での主キーではないような項目が 存在していたのである。

テーブルの中に、主キー全体を必要とせず、主キーの一部だけで一意に指定可能な項目 が存在するなら、その部分を別のテーブルとして独立させることが出来る。こうした 操作を「第二正規化」と呼ぶ。 テーブルが、「第二正規形」であるとは、キー項目以外の項目が主キー全体に従属する ことであり、別の言い方をすれば、主キーが、キー項目以外の項目にとって、強い意味 で主キーであることである。

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