平成30年度 秋期 午前 問28
データベース
正規化に関する問題
第 1,第 2,第 3 正規形とそれらの特徴 a 〜 c の組合せのうち,適切なものはどれか。
a:どの非キー属性も,主キーの真部分集合に対して関数従属しない。
b:どの非キー属性も,主キーに推移的に関数従属しない。
c:繰返し属性が存在しない。
- ア第 1 正規形 = a / 第 2 正規形 = b / 第 3 正規形 = c
- イ第 1 正規形 = a / 第 2 正規形 = c / 第 3 正規形 = b
- ウ第 1 正規形 = c / 第 2 正規形 = a / 第 3 正規形 = b
- エ第 1 正規形 = c / 第 2 正規形 = b / 第 3 正規形 = a
答えと解説を見る
✓ これが正解ウ第 1 正規形 = c / 第 2 正規形 = a / 第 3 正規形 = b
解説
繰返しなしが第1、部分従属なしが第2、推移なしが第3です。
三つの正規形と、三つの特徴の対応づけを選ぶ問いです。特徴の文をそれぞれ素の日本語に置き換えれば、順番がそのまま決まります。繰返し属性が存在しないという文は、一つのます目に値がいくつも入っていない、つまり表が平らになっている状態を指します。これが第1正規形です。どの非キー属性も主キーの真部分集合に対して関数従属しないという文は、主キーが複数の列からできているときに、その一部の列だけで値が決まってしまう列がない、という意味です。これを部分関数従属がない状態と呼び、第2正規形にあたります。どの非キー属性も主キーに推移的に関数従属しないという文は、主キーから別の列を経由して値が決まる列がない、という意味で、推移関数従属がない状態、すなわち第3正規形です。したがって第1が繰返しの文、第2が真部分集合の文、第3が推移の文という組合せが正解です。見分けの軸は二つあります。一つは、正規化が繰返しを外す、主キーの一部で決まる列を外す、非キー属性で決まる列を外す、という順に一段ずつ進むという点です。もう一つは、真部分集合という語と推移的という語のどちらが書かれているかという点です。小さな例で確かめます。受注番号と商品番号を主キーに持つ受注の表では、商品名は商品番号だけで決まるので第2正規形にするときに切り出し、顧客名は受注番号から顧客番号を経て決まるので第3正規形にするときに切り出します。
ほかの選択肢はなぜ違うのか
- ア第 1 正規形 = a / 第 2 正規…:真部分集合の文を第1に、推移の文を第2に、繰返しの文を第3に割り当てています。真部分集合と推移の文が一段ずつ前にずれ、表を平らにする作業を最後に回す形です。ます目が割れていない表では従属を論じられません。
- イ第 1 正規形 = a / 第 2 正規…:真部分集合の文を第1に置き、繰返しの文を第2に回しています。段の順序が崩れているうえ、主キーの一部で決まる列を外す作業を、表がまだ平らになっていない段階に持ってきてしまっており、手順として成り立ちません。
- エ第 1 正規形 = c / 第 2 正規…:繰返しの文を第1に置く点は正しいのですが、残りの二つが入れ替わっています。主キーの一部で決まる列を外す作業と、別の列を経由して決まる列を外す作業の順序が逆になっており、第2と第3が逆転しています。
出典:平成30年度 秋期 応用情報技術者試験 午前 問28(改変:原典の図表をテキストに書き起こした)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)