DBデータベーススペシャリスト試験 午前Ⅱ

平成22年度春期 データベーススペシャリスト 午前Ⅱ 問9

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

問題

次の表を,第3正規形まで正規化を行った場合,幾つの表に分割されるか。ここで,顧客の1回の注文に対して1枚の受注伝票が作られ,顧客は1回の注文で一つ以上の商品を注文できるものとする。
受注番号,顧客情報,受注日,商品情報,受注数,受注金額を格納した10行の受注表。
受注番号,顧客情報,受注日,商品情報,受注数,受注金額を格納した10行の受注表。

選択肢

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

依存関係から表構造を点検する視点

属性どうしの依存関係を手がかりに、どの情報が他の情報を決める立場にあるかを整理し、分解の妥当性や重複・更新上の不都合を段階的に確認していく。各段階では、表の構造と依存関係が同じ観点で説明できるかを意識する。

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

今回の検討では、属性間の依存関係が表の構造とどのように対応しているかという一点に集中し、候補ごとに、分解後も意味が保たれるか、同じ情報の重複や更新時の不整合が生じないかを確認する。

視点

関数従属と正規形を考えるときは、属性間の関係を個別に暗記するより、表が表している事実の単位と、同じ情報が現れる場所を整理する。依存関係・分解・更新時の整合性を同じ流れで眺めると、構造上の論点を捉えやすい。

確認ポイント

  • 属性間で、どの情報が別の情報に影響する立場かを整理する
  • 分解前後で、同じ事実を重ねて管理していないかを見直す
  • 追加・変更・削除の場面で、情報の整合性を保ちにくくなる箇所がないかを確認する
正解と解説を見る

正解

ウ

解説

注文情報、顧客情報、商品情報、注文ごとの商品明細を、それぞれの決定関係に基づいて分離すると、第3正規形では4表になります。

理由

受注番号から受注日や顧客コードが決まり、顧客コードから顧客名が決まります。また、商品コードから商品名や単価が決まり、受注番号と商品コードの組合せで受注数などの明細情報が決まります。これらを分離すると、顧客表、商品表、受注表、受注明細表の4表になります。

比較

受注表には1回の注文を表す情報、受注明細表には注文された商品ごとの情報を置きます。顧客名や商品名・単価を注文明細へ重複して持たせないことで、主キー以外の属性への従属を分離し、第3正規形の構成になります。

選択肢ア

これは不正解だよ。2表だけでは、顧客に固有の顧客名、商品に固有の商品名や単価、注文ごとの明細を、それぞれの従属関係に沿って分離できません。注文と明細だけにまとめると、顧客情報または商品情報の重複が残り、第3正規形までの分解になりません。

選択肢イ

これは不正解だよ。3表に分けるだけでは、受注単位の情報、顧客情報、商品情報、商品ごとの明細情報をすべて独立した従属関係として扱えません。特に注文と商品を結び付ける明細を受注表や商品表へ吸収すると、複合キーに従属する属性の整理が不十分になります。

選択肢ウ(正解)

これは正解だよ。顧客コードに従属する顧客情報、商品コードに従属する商品情報、受注番号に従属する注文情報、受注番号と商品コードの組合せに従属する明細情報を分離すると、顧客表・商品表・受注表・受注明細表の4表になります。

選択肢エ

これは不正解だよ。5表にすると、顧客、商品、受注、受注明細の基本的な従属関係に対して、さらに不要な分割が生じます。提示された属性では、第3正規形に必要な分離はこの4種類で整理でき、単価や受注数などを別表に独立させる根拠はありません。

学習のポイント

第3正規形における部分関数従属と推移関数従属の分離

出典:独立行政法人 情報処理推進機構(IPA)平成22年度春期 データベーススペシャリスト試験 午前Ⅱ 問9(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

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