【問題】
第1、第2、第3正規形とそれらの特徴a~cの組合せとして、適切なものはどれか。
a:どに非キー属性も、主キーの真部分集合に対して関係従属しない。
b:どの非キー属性も、推移的に関係従属しない。
c:繰り返し属性が存在しない。
第1正規形 ┃ 第2正規形 ┃ 第3正規形
ア a ┃ b ┃ c
イ a ┃ c ┃ b
ウ c ┃ a ┃ b
エ c ┃ b ┃ a
【解答】
「真部分集合」と「推移的関係従属」の意味が分かれば、実はそんなに難しいことを聞いている問題ではない。
「真部分集合」とは、部分集合のうち、全てを取り出すことを許容しないものをいうだけである。
具体的にいうと、A = {1,2,3}とあった時に、部分集合として{φ},{1},{2},{3},{1,2},{1,3},{2,3},{1,2,3}が挙げられるが、このうちの全てを取り出している{1,2,3}を取り出すことが出来ないものを「真部分集合」と呼ぶ。
つまり、A = {1,2,3}の場合、Aの真部分集合とは、{φ},{1},{2},{3},{1,2},{1,3},{2,3}を指し示すことになる。
つまり、問題文aが指し示している主キーとは、複合キーのことを言っており、この複合キーの一部に対して関係従属しないもの、は第×正規形か?と聞いていることになる。
この複合キーの一部の項目だけで、値が一意に定まる関係のことを部分関数従属と呼ぶ。そして、部分関数従属があるデータは第2正規形である(ここは暗記しなければならない)から、aは第2正規形となる。
さらに、繰り返し属性が存在しない形は第1正規形(これも暗記)であるから、cは第1正規形となる。
よって、解答はウとなる。
bの「どの非キー属性も、推移的に関数従属しない」のは、第3正規形の有名な特徴であるから暗記でも良い。しかし、推移的関係従属という言葉の意味は「単に非キー属性のうち、他の列を一意に決めることが出来る非キーは無いですよ」ということを言っているだけなので、嫌わずに理解した方が頭に入ると思う。
「真部分集合」というと難しく感じるが、この問題においては、別にざっくりと部分集合と読み替えても感覚的に解くことが出来るので、言葉に惑わされないようにしよう。