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












解き方のヒントを見る
業務ルールと対応関係の読み取り
データベース設計の問題では、記述された業務のルールが、どのエンティティ同士をどの対応数で結び付けるかを読み取ることが出発点になります。一つの観点として、各ルールの記述とモデル・スキーマ上の表現が矛盾なく対応しているかを照合しましょう。
この問題で問われていること
問われているのは、業務の説明に含まれる一つひとつの条件を、エンティティ間の関連の多重度や参照の向きとして正しく解釈できるかどうかです。条件の主語と対象、その数量の表現に注目して読み進めることが求められます。
視点
概念データモデルでは、業務上のルールがエンティティ間の関連と多重度として表されます。関係スキーマやテーブル構造では、その関連が主キーと外部キーの配置として表れます。ルールの記述、モデル上の関連、スキーマ上のキー配置という三つの表現が、同じ意味を一貫して示しているかを確かめることが、この分野を学ぶ際の基本的な検討手順です。
確認ポイント
- 業務ルールの各記述について、何が何に対して「一つ」なのか「複数」なのかを、両方向から読み取れているか
- 読み取った対応数が、モデル上の関連やスキーマ上のキー配置とどう結び付くかを、自分の言葉で説明できるか
- 期間や時点などの条件で対応数が変わる記述がないかを確かめ、その条件をどこで表すべきかを考えたか
正解と解説を見る
解説
自動車ディーラA社の販促品と展示車を管理するデータベースの設計問題です。販促品には「定番品/キャンペーン品」と「単品/キット品」という二つの分類軸があり、サブタイプの切り出し、外部キーの置き場所、明細同士の1対多の関連、出荷時に設定する値の取得元を業務記述から読み取ります。さらに、車種区分とハイブリッドの分類観点の違い、予約なしの試乗に対応する主キーの変更、展示車配置計画と試乗予約の間の制約条件まで、要件の追加に合わせた見直しが問われます。
A社の販促品と展示車の管理を題材に、概念データモデル、外部キー、属性値の取得元、追加要件に応じたテーブル構造と制約条件を検討する。問題17頁では、多対多を使わず、識別可能なサブタイプへ適切に関連を配置し、第3正規形を満たすことを要求している。以下は添付原本に基づく学習用解説です。
設問1(1):アは定番品、イはキャンペーン品。販促品には定番品/キャンペーン品と、単品/キット品の二つの分類軸があるので、それぞれ別の切り口としてサブタイプを表します。販促品リストから定番品へ、キャンペーンからキャンペーン品へ、それぞれ1対多の関連を追加する。キット品構成を追加し、キット品と単品のそれぞれからキット品構成へ1対多で関連付ける。本部で袋詰めするキット品には仕入先を持たせず、既存の仕入先→販促品に×印を付け、仕入先→単品へ修正する。問題7~8頁、図2、解答例1頁及び講評1頁に基づく。
設問1(2):定番品×単品はY、定番品×キット品はN、キャンペーン品×単品はY、キャンペーン品×キット品はY。キット品そのものはキャンペーン品だけに存在する一方、その構成要素には定番品の単品も含められる。この二つを区別する。設問1(3):表6の参照対象に直接関連する外部キーは、見積の仕入先番号→仕入先、見積明細の販促品番号→キャンペーン品、定番品発注の仕入先番号→仕入先、定番品発注明細の販促品番号→定番品です。他の行は-となる。キャンペーン品発注やその明細は見積を経由して仕入先や品目をたどれる。表6は、他の全外部キーを列挙する表ではありません。
設問2(1):発注と入荷は分割入荷・まとめ入荷があるため、ヘッダ間では多対多になり得る。しかし問題10頁の7.(4)③では、複数の発注明細を一つの入荷明細へまとめないとされている。したがって発注明細→入荷明細は1対多です。関係「入荷明細」に複合外部キー(発注番号、発注明細番号)を追加し、発注明細の主キーを参照させる。図3及び解答例2頁の関連と対応する。
設問2(2):問題11頁の8.(2)により、定番品の出荷には店舗別定番品必要数量を、キャンペーン品の出荷には店舗別キャンペーン品割当数量を使う。a・bはそれぞれの店舗番号、dは店舗別キャンペーン品割当数量のキャンペーン番号、eは店舗別定番品必要数量の発注年月、g・hはそれぞれの販促品番号、iは必要数量、jは割当数量です。c・fは該当するサブタイプがその出荷区分では発生しないため-となる。定番品の発注数量には本部の予備数量等も含まれるので、店舗への出荷数量の取得元には使わない。
設問3(1):車種とハイブリッドかどうかは分類の観点が異なるため、ハイブリッド区分を独立した列にする。例えばハイブリッド車を1、それ以外を0で表せば、車種区分と組み合わせて検索できる。問題20頁の設問と解答例2頁の「列名」「値」の別欄に対応し、値の説明を25字以内とする。列名と値を連結した文字数へ一つの上限を適用しない。設問3(2):図5の試乗実績の主キー(車台番号、予約番号)を(車台番号、実績番号)へ変更し、(車台番号、予約番号)を試乗予約への複合外部キーとして保持する。予約なしの場合には予約番号をNULLにできる構造とし、予約ありの場合の参照関係を保つ。
設問3(3):問題20頁、解答例2頁及び講評1頁に基づき、配置計画を変更する場合と試乗予約を受け付ける場合の二つの観点で整合性を確保する。配置変更では、既存予約の試乗日時・店舗に当該試乗車が配置される状態を維持する。予約受付では、希望する試乗日時に当該店舗へ配置される車であることを確認する。「予約日」だけでは申込日と試乗日が区別できず、配置換えの実施日だけを制限しても試乗時の不在を防げない。試乗前の全ての移動を一律に禁止する必要はなく、予約済みの試乗を妨げる配置計画を防ぐことが要点です。各答案はそれぞれ35字以内に収める。
学習のポイント
直交する二つの分類軸によるサブタイプの設計、NULL を避けるリレーションシップの付け替え、明細単位での多対多の解消、主キーの変更と参照関係の維持、期間データ間の制約条件を重点的に練習しましょう。
出典:独立行政法人 情報処理推進機構(IPA)平成24年度春期 データベーススペシャリスト試験 午後Ⅱ 問1(公式資料:問題冊子(PDF) / 解答例 / 採点講評)
関連する過去問一覧
IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針