SAシステムアーキテクト試験 午前Ⅰ

令和4年度春期 システムアーキテクト 午前Ⅰ 問8

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

第 1,第 2,第 3 正規形とリレーションの特徴 a,b,c の組合せのうち,適切なものはどれか。 a:どの非キー属性も,主キーの真部分集合に対して関数従属しない。 b:どの非キー属性も,主キーに推移的に関数従属しない。 c:繰返し属性が存在しない。
第1正規形、第2正規形、第3正規形の列見出しと、選択肢ア〜エに対応するa、b、cの割当てを示す表。
第1正規形、第2正規形、第3正規形の列見出しと、選択肢ア〜エに対応するa、b、cの割当てを示す表。

選択肢

  1. ア
    a b c
  2. イ
    a c b
  3. ウ
    c a b
  4. エ
    c b a
解き方のヒントを見る

正規形を見分けるための確認視点

正規形の問題では、表の構造だけで判断せず、属性どうしの依存関係と、同じ情報がどの単位で繰り返されるかを順に丁寧に、よく整理し、各選択肢が示す条件と照らし合わせます。

この問題で問われていること

一つの観点に絞り、値を決めるための関係が表の中でどのように表現されているかを確認してください。行や列の見た目ではなく、情報のまとまりと依存の向きを比較するのが手がかりです。

視点

まず、各項目が何を識別し、どの項目の値に影響するかを整理します。そのうえで、同じ事実が複数箇所に現れる可能性や、更新時に不整合が生じる構造がないかを、選択肢の説明と対応づけて考えます。

確認ポイント

  • 項目間の依存関係を、識別の単位に沿って整理する
  • 同じ事実が異なる場所に重複して表現されていないか確認する
  • 選択肢の条件が、表の見た目ではなく構造上の説明になっているか比べる
正解と解説を見る

正解

ウ

解説

第1正規形は繰返し属性をなくした状態、第2正規形は主キーの真部分集合への関数従属をなくした状態、第3正規形は非キー属性間を経由する推移的関数従属をなくした状態です。したがって、対応は第1正規形がc、第2正規形がa、第3正規形がbとなり、適切な組合せはウです。

理由

第1正規形では、1つの属性に同種の値を繰り返して格納する繰返し属性を認めません。第2正規形では、複合主キーの一部だけに非キー属性が依存する部分関数従属を排除します。第3正規形では、主キーから非キー属性へ別の非キー属性を経由して依存する推移的関数従属を排除します。

比較

問題文のcは繰返し属性が存在しないことなので第1正規形、aは主キーの真部分集合への関数従属がないことなので第2正規形、bは主キーへの推移的な関数従属がないことなので第3正規形を示します。この順序はウの「c a b」と一致します。

選択肢ア

これは不正解だよ。第1正規形にa、第2正規形にb、第3正規形にcを割り当てています。しかし、第1正規形が扱うのは繰返し属性の排除であり、第2正規形は主キーの真部分集合への関数従属、第3正規形は推移的関数従属を扱うため、三つの対応が段階と一致しません。

選択肢イ

これは不正解だよ。第1正規形にa、第2正規形にc、第3正規形にbを割り当てています。bの第3正規形への対応は適切ですが、第1正規形で問題となるのは繰返し属性であり、第2正規形で問題となるのは主キーの真部分集合への関数従属なので、前半の対応が誤っています。

選択肢ウ(正解)

これは正解だよ。第1正規形は繰返し属性が存在しない状態なのでc、第2正規形は非キー属性が主キーの真部分集合に関数従属しない状態なのでa、第3正規形は非キー属性が主キーに推移的に関数従属しない状態なのでbです。したがって組合せはc a bとなります。

選択肢エ

これは不正解だよ。第1正規形にcを割り当てる点は正しいものの、第2正規形をb、第3正規形をaとしています。推移的関数従属を排除するのは第3正規形であり、主キーの真部分集合への関数従属を排除するのは第2正規形なので、後半の順序が逆です。

学習のポイント

正規形ごとに除去対象となる属性構造と関数従属を対応付けて覚える。

出典:独立行政法人 情報処理推進機構(IPA)令和4年度春期 システムアーキテクト試験 午前Ⅰ 問8(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針