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




解き方のヒントを見る
要件記述とモデルの対応を確かめる
設計の問題では、記述された業務ルールの一文一文が、どの実体や属性、関連の多重度に反映されるべきかを照らし合わせる姿勢が役立ちます。思い込みで補わず、記述に根拠がある事柄だけを手掛かりに整理してみましょう。
この問題で問われていること
確認したい観点は一つ、各業務記述が「何を識別し、何と何をどの程度結び付けるか」を読み取れているかです。識別の単位と結び付きの数の条件を記述から拾い、手元の整理と矛盾がないかを一つずつ確かめてください。
視点
データモデルの設計は、業務の言葉をデータの構造へ翻訳する作業です。翻訳の正しさは、元の記述のどの部分がその構造の根拠になっているかを説明できるかどうかで確かめられます。根拠を示せない構造は、一般常識や思い込みで補った可能性があります。逆に、記述にある条件がどこにも表現されていなければ、見落としがあるかもしれません。記述と構造を行き来しながら対応を確認する習慣を持つと、判断の揺れを減らせます。
確認ポイント
- その記述は、何を一意に区別する単位として扱っているかを読み取れているか
- 二つの対象の結び付きについて、数や任意性の条件が記述のどの語句から分かるかを示せるか
- 自分の整理のうち、記述に根拠がなく想像で補った部分が残っていないか
正解と解説を見る
解説
コピー機販売会社X社の販売管理データベースを題材にした問題です。設問1では、業務記述から外部キーとリレーションシップを補います。設問2では、商品を製品・設置サービス、単体製品・セット製品、本体製品・オプション製品の3階層にサブタイプ分割し、属性とリレーションシップを適切な階層に割り当てます。設問3では、受注明細単位の出荷指示を追加し、出荷指示の対象外となる受注明細内訳を特定します。
問題の全体像
X社はコピー機メーカの系列販売会社で、地域・顧客・設置事業所・組織(営業所とSC)・営業担当者・商品・見積・受注を扱う販売管理システムを設計しています。図1の概念データモデルと図2の関係スキーマは未完成で、業務の概要から属性とリレーションシップを補う必要があります。出題趣旨では、業務要件を分析する能力、リレーションシップと外部キーを適切に設定する能力、サブタイプを適切に分類する能力、要件の変化に合わせて設計を拡張する能力を問うとしています。採点講評によると、全体の正答率は高かった一方、受注明細が設置事業所を参照する外部キー、商品のサブタイプ分割、出荷指示の設計は正答率が低かったとされています。
設問1(1)(a)
業務の概要3(2)に「組織には営業所とSCがあり、組織区分で分類する」とあります。図1でも、組織は営業所とサービスセンタのスーパタイプです。サブタイプを見分ける区分属性はスーパタイプに置くため、公式解答例では組織の空欄aを「組織区分」としています。主キーでも外部キーでもないので、下線は付けません。
設問1(1)(b)
業務の概要3(4)に「地域ごとに担当SCを決めている」とあります。1つの地域には担当SCが1つ決まり、1つのSCは複数の地域を担当できるので、SCと地域は1対多です。このため、多側の地域に担当SCの主キーを持たせます。公式解答例ではbを「SC組織コード」とし、外部キーを示す破線の下線を付けています。設問の指示どおり、組織コードは営業所とSCを区別した名前で書きます。
設問1(1)(c)
業務の概要4(2)に「営業担当者はいずれか一つの営業所に所属する」とあります。営業所と営業担当者は1対多なので、営業担当者に所属先営業所の主キーを持たせます。公式解答例ではcを「営業所組織コード」とし、破線の下線を付けています。人事異動で所属が変わる場合も、この属性を更新すれば対応できます。
設問1(1)(d)
業務の概要3(3)に「顧客ごとに担当営業所を決めている」とあります。営業所と顧客は1対多なので、顧客に担当営業所の主キーを持たせます。公式解答例ではdを「営業所組織コード」とし、破線の下線を付けています。
設問1(1)(e)
業務の概要2(2)に「設置事業所は顧客コードと設置事業所コードで識別する」とあります。したがって、顧客コードは設置事業所の主キーの一部です。公式解答例ではeを「顧客コード」とし、実線の下線を付けています。この顧客コードは顧客を参照する役割も持ちます。ただし、図2の見積明細などと同じく、主キーの一部になる属性は実線の下線で表します。公式解答例の備考では、eとfは順不同です。
設問1(1)(f)
業務の概要2(2)に、設置事業所には「その住所を基にした地域コードを登録する」とあります。地域と設置事業所は1対多なので、公式解答例ではfを「地域コード」とし、破線の下線を付けています。この外部キーをたどれば、地域の担当SCが分かります。
設問1(1)(g)
業務の概要6(2)では、見積に登録する項目として、顧客コード、担当営業所の組織コード、営業担当者の社員番号が挙げられています。図2の見積にはこれらが未記入なので、g、h、iに入ります。公式解答例では、gを営業担当者を参照する「社員番号」とし、破線の下線を付けています。g、h、iは順不同です。
設問1(1)(h)
(g)と同じ業務の概要6(2)が根拠です。見積には担当営業所の組織コードも登録します。公式解答例ではhを「営業所組織コード」とし、破線の下線を付けています。見積は営業所と多対1の関係になります。
設問1(1)(i)
業務の概要6(2)では、見積に顧客コードも登録するとしています。公式解答例ではiを「顧客コード」とし、破線の下線を付けています。見積は、どの顧客からの依頼かを表すために顧客を参照します。
設問1(1)(j)
業務の概要7(1)(2)に、受注は見積りと同じ単位で登録し、該当する見積番号を登録するとあります。公式解答例ではjを「見積番号」とし、破線の下線を付けています。見積りと同じ単位で受注するので、見積と受注は1対1の対応になります。
設問1(1)(k)
受注明細にはすでに設置事業所コードが外部キーとしてあります。しかし、設置事業所の主キーは顧客コードと設置事業所コードの複合キーなので、設置事業所コードだけでは設置事業所を特定できません。公式解答例ではkを「顧客コード」とし、破線の下線を付けています。これにより、設置事業所コードと組み合わせた複合外部キーになります。採点講評でもこの属性は正答率が低く、受注の記述から読み取ってほしいと指摘されています。
設問1(2)
設問1(1)で補った外部キーに対応するリレーションシップを、図1に書き加えます。公式解答例で追加されているのは次のとおりです。営業所→営業担当者、営業所→顧客、サービスセンタ→地域、地域→設置事業所、顧客→設置事業所、営業担当者→見積、営業所→見積、顧客→見積の各1対多と、見積と受注の1対1です。組織コードは営業所やSCとして参照されるため、スーパタイプの組織ではなく、サブタイプの営業所・サービスセンタから線を引く点に注意します。受注明細から設置事業所への関連は、図1にすでに描かれています。
設問2(1)
業務の概要5の分類階層に沿って、属性を割り当てます。公式解答例では次のとおりです。
・商品:商品区分(製品と設置サービスを分類)
・製品:単体セット製品区分、設置サービス商品コード(設置サービスは製品ごとに決まり、単体製品にもセット製品にも適用される)
・設置サービス:標準設置時間
・単体製品:製品区分(本体製品とオプション製品を分類)、製品サイズ
・本体製品:シリーズコード
・オプション製品:オプション区分
・セット製品:セット製品本体製品商品コード(一つの本体製品を含む)
各区分属性は、それで分類されるサブタイプの一つ上の階層に置きます。すべての行が値を持つ最も狭いエンティティタイプに属性を置くことで、第3正規形を満たします。採点講評では正答率が低く、問題文の商品の記述を正確に読み取るよう求めています。
設問2(2)
公式解答例の図3では、太枠に次のエンティティタイプ名が入ります。左の枠は設置サービス、中段は単体製品とセット製品、下段はオプション製品と本体製品です。サブタイプの関係は、商品⊃{設置サービス、 製品}、製品⊃{単体製品、 セット製品}、単体製品⊃{オプション製品、 本体製品}です。補うリレーションシップは、設置サービス→製品(製品ごとに適用する設置サービスを参照)、本体製品→セット製品(セット製品に含まれる一つの本体製品)、セット製品→セット製品構成、オプション製品→セット製品構成です。いずれも参照先が限られるので、スーパタイプの商品ではなく、該当するサブタイプとの間に引くのがポイントです。採点講評では、この部分のリレーションシップの正答率が低く、スーパタイプとサブタイプを結ぶ線の表記ルールを守っていない解答も見られたとされています。
設問3(1)(関係スキーマ)
〔出荷指示の追加〕(2)に「出荷指示は出荷指示番号で識別し、出荷指示年月日を登録する」とあります。公式解答例の新しい関係は「出荷指示(出荷指示番号、 出荷指示年月日)」で、出荷指示番号に主キーの実線の下線を付けます。採点講評では、出荷指示の単位が受注明細単位であることを読み取るよう求めています。
設問3(1)(関係名)
〔出荷指示の追加〕(1)②に「受注明細をまとめて出荷指示を行う」とあります。1つの出荷指示に複数の受注明細が対応するので、出荷指示と受注明細は1対多です。外部キーは多側に置くので、公式解答例では属性を追加する関係を「受注明細」としています。
設問3(1)(属性名)
公式解答例では、受注明細に「出荷指示番号」を追加します。この属性は、出荷指示を参照する外部キーとして働きます。
設問3(2)①
業務の概要7(4)②によると、セット製品の受注明細内訳には、セット製品自体の行と、構成する単体製品に展開した行の両方が登録されます。実際に物流センタから出荷されるのは、展開された単体製品です。セット製品自体の行は出荷指示の対象になりません。公式解答例では「セット製品の場合」としています。15字以内に収めるには「セット製品(自体の内訳)の場合」を押さえれば足ります。
設問3(2)②
業務の概要5(2)に「設置サービスはX社のSCが提供する」とあります。〔出荷指示の追加〕(1)①では、出荷指示の対象を物流センタから出荷する製品に限っています。そのため、受注明細内訳に登録される設置サービスの行は出荷指示の対象外です。公式解答例では「設置サービスの場合」としています。採点講評でも、商品と受注の記述を正確に読み取るよう求めています。
学習のポイント
業務記述の「ごとに」「所属」「区分で分類」などの表現から、外部キーの向きとサブタイプ階層を正確に導けるようにしましょう。また、スーパタイプとサブタイプのどちらにリレーションシップを引くべきかを判断する練習が重要です。
出典:独立行政法人 情報処理推進機構(IPA)平成30年度春期 データベーススペシャリスト試験 午後Ⅰ 問1(公式資料:問題冊子(PDF) / 解答例 / 採点講評)
関連する過去問一覧
IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針