DBデータベーススペシャリスト試験 午後Ⅰ
平成27年度春期 データベーススペシャリスト 午後Ⅰ 問2
事例を読んで設問の答えを考えてから、解説のポイントとIPA公式の解答例・採点講評で確認しましょう。
問題



解き方のヒントを見る
概念と集計の対応を見直す視点
概念設計から関係スキーマ、さらに集計処理へ読み進めるときは、各段階で表している対象と情報の粒度が保たれているかを一貫して確認しましょう。表現の違いに惑わされず、意味の対応を丁寧に追うことが大切です。
この問題で問われていること
一つの情報がどの対象に属し、どの単位でまとめられているかに注目し、設計上の表現と集計時の扱いが同じ意味を保っているかを確認しましょう。特定の答えではなく、対応関係の一貫性に絞って考えます。
視点
概念上の対象、データの持ち方、集計結果を順に対応づけ、名称だけで判断せず、対象・関係・粒度のつながりを追って整理する。
確認ポイント
- 対象同士の関係を、どの単位の情報として捉えているか確認する。
- 設計上の情報が、後段の処理でどの粒度に対応するか確認する。
- 集計前後で、対象の意味や対応関係が変わっていないか確認する。
正解と解説を見る
解説
本問は、案件管理業務の要件を概念データモデルと関係スキーマに反映し、外部キー、履歴、サブタイプ、集計SQLの対応を説明する問題です。
問題の全体像
D社の案件管理では、部・社員・顧客・案件・案件詳細・受注を管理する。設問1は業務要件から外部キーと概念データモデルの関係を補い、設問2はそのスキーマを使って顧客グループ、案件状態、工事部別の集計SQLを完成させる。出題の中心は、担当関係、サブタイプ、変更履歴の記録主体、案件と案件詳細の登録契機を正確に読み取ることです。
設問1(1)(a)
営業部社員は一つの顧客グループを担当し、顧客グループ側には複数の営業部社員が担当する場合がある。したがって、営業部社員に顧客グループを特定する外部キーを置く。公式解答例では、aは顧客グループコードです。
設問1(1)(b)
一つの顧客グループを担当できる営業部は一つだけなので、顧客グループ側に担当営業部を示す外部キーを持たせる。公式解答例では、bは担当営業部コードです。
設問1(1)(c)
案件の分割では、分割前の案件を記録する必要があるため、案件自身を参照する外部キーが必要になる。公式解答例では、cは分割元案件番号です。
設問1(1)(d)
案件の統合では、統合後に対応する案件を記録する必要があるため、案件自身を参照する外部キーが必要になる。公式解答例では、dは統合先案件番号です。cとdは図中の順序を入れ替えてもよいとされている。
設問1(1)(e)
案件変更履歴には、変更を実施した社員を記録する。社員番号で社員を特定するため、公式解答例ではeは社員番号です。
設問1(1)(f)
案件詳細変更履歴についても、変更を実施した社員を記録する。したがって、公式解答例ではfも社員番号です。
設問1(1)(g)
受注は案件状態が受注になった案件を案件単位で記録し、対応する案件番号を持つ。公式解答例では、gは案件番号です。
設問1(1)(h)
受注明細は担当工事部ごとに記録するため、工事部を特定する外部キーが必要です。公式解答例では、hは担当工事部コードです。
設問1(2)
公式解答例の完成図で必要となる関係は、部と社員、社員と工事部社員・営業部社員、部と営業部・工事部のサブタイプ関係、営業部と顧客グループ、営業部社員と顧客グループ、顧客グループと顧客、顧客と案件、営業部と案件、案件状態と案件、案件と案件詳細、工事部と案件詳細、案件と案件変更履歴、営業部社員と案件変更履歴、案件詳細と案件詳細変更履歴、社員と案件詳細変更履歴、案件と受注、受注と受注明細、工事部と受注明細です。案件変更履歴は案件を変更する営業部社員に結び付け、案件詳細変更履歴は営業部社員又は工事部社員が変更できるため社員スーパタイプに結び付ける。
設問2(1)(ア)
①は顧客グループ名ごとに集計するため、顧客グループ表の顧客グループ名をSELECTし、GROUP BYにも指定する。公式解答例では、アは顧客グループ名です。
設問2(1)(イ)
①は案件状態名ごとにも集計するため、案件状態表の案件状態名をSELECTし、GROUP BYにも指定する。公式解答例では、イは案件状態名です。
設問2(1)(ウ)
①では受注見込額と無効フラグを持つ案件を基準にするため、公式解答例ではウは案件です。
設問2(1)(エ)
案件の顧客番号から顧客グループをたどるため、顧客表を結合する必要がある。公式解答例ではエは顧客です。
設問2(1)(オ)
顧客グループ名を取得するため、顧客表から顧客グループ表を結合する。公式解答例ではオは顧客グループです。
設問2(1)(カ)
案件状態名を取得するため、案件の案件状態コードから案件状態表を結合する。公式解答例ではカは案件状態です。
設問2(1)(キ)
案件と顧客を結合する条件は、案件が保持する顧客番号と顧客表の顧客番号の一致です。公式解答例ではキは顧客番号です。
設問2(1)(ク)
顧客と顧客グループを結合する条件は、顧客グループコードの一致です。公式解答例ではクは顧客グループコードです。
設問2(1)(ケ)
案件と案件状態を結合する条件は、案件状態コードの一致です。公式解答例ではケは案件状態コードです。
設問2(1)(コ)
②は顧客グループ名、案件状態名、工事部名ごとに集計するため、部表から部名を取得する。公式解答例ではコは部名です。
設問2(1)(サ)
②では案件詳細の売上見込額と無効フラグを利用し、案件と案件詳細を案件番号で結合する。公式解答例ではサは案件詳細です。
設問2(1)(シ)
案件詳細の担当工事部コードから部を結合し、部名を取得する。公式解答例ではシは部です。
設問2(2)
45字以内では、案件と案件詳細の登録契機が異なる点を押さえる。案件を担当する工事部が未決定なら案件詳細は記録されず、案件だけが存在する場合があるため、①には含まれても②には含まれない金額が生じる。公式解答例と採点講評では、案件詳細未登録の可能性と両者の記録契機の違いが示されている。
学習のポイント
業務上の担当者・所属・記録契機を、関係とSQLの結合条件へ変換する力を養う。
出典:独立行政法人 情報処理推進機構(IPA)平成27年度春期 データベーススペシャリスト試験 午後Ⅰ 問2(公式資料:問題冊子(PDF) / 解答例 / 採点講評)
関連する過去問一覧
IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針