SAシステムアーキテクト試験 午後Ⅰ
平成24年度秋期 システムアーキテクト 午後Ⅰ 問3
事例を読んで設問の答えを考えてから、解説のポイントとIPA公式の解答例・採点講評で確認しましょう。
問題



解き方のヒントを見る
業務上の前提を意識して考える
設計を検討するときは、判断の土台となる業務上の前提に目を向けましょう。示されている条件と、自分の経験から補っている想定を区別すると、先入観に左右されずに、検討の根拠を整理しやすくなります。
この問題で問われていること
この分野では、慣れた業務のイメージをそのまま当てはめず、与えられた条件を判断の前提として扱うことが大切です。考えを進める際は、その判断がどの条件に基づくのかを、自分の言葉で確かめてみましょう。
視点
前提とは、検討の出発点として置く条件です。明示された内容と自分が補った想定を分けておくと、考えの根拠を振り返りやすくなります。
確認ポイント
- 判断の根拠となる条件を確認したか
- 自分の経験による想定を加えていないか
- 判断の前提を自分の言葉で説明できるか
正解と解説を見る
解説
本問は、セミナ運営の課題をデータベース設計と処理設計に落とし込む問題です。重複予約の防止、会議室の交換、来場・入室情報による空席判断、セミナごとの重要顧客管理を、本文の業務条件から導きます。
問題の全体像
D社の従来システムでは、セミナの申込みと来場は把握できても、各セッションを実際に受講したかは記録できませんでした。また、予約の偏りによる満席や、空席待ちの入室判断にも課題があります。新システムでは、ICカードで入室を記録し、予約状況に応じた会議室変更や重要顧客の来場・入室通知を実現します。公式の出題趣旨では、業務要件からシステム要件を設定し、処理・データベースを設計する能力と、追加要件に応じて設計を変更する能力を問うとしています。本文の条件を、キー、関連、属性、処理のそれぞれに対応させることが中心です。
設問1(1)
着目する条件は「同一時限に開催されるセッションを複数予約することはできない」です。主キーをセミナ番号・申込ID・時限にすると、同じセミナの同じ申込者について、同一時限の受講セッションを二つ登録できません。セッションIDが異なっても主キーが重複するため、データベース側で重複予約を防げます。一方、セッションIDを主キーに含める方法では、同一時限の別セッションをキーの重複だけでは検出できません。公式解答例では、このチェックをデータベースの一意制約で実現できることを理由としています。40字以内では「同一時限の複数予約をデータベースの一意制約で防げるから。」と要点をまとめられます。
設問1(2)
公式解答例の5か所は、顧客●―○→顧客招待、顧客招待○―○受講申込、受講申込●―●→受講セッション、セミナ●―●→セッション、セッション●―○→受講セッションです。顧客1件には招待が0件以上対応し、招待1件は必ず顧客1件に対応します。招待と申込みは双方とも0件又は1件です。招待されても申し込まない場合があり、顧客以外の申込みもあるためです。また、同一顧客は同じセミナに複数回申し込めないので、招待1件に申込みが複数対応することはありません。受講申込1件には、1〜5個の予約に対応する受講セッションが必ず存在し、各受講セッションは受講申込1件に対応します。セミナ1件には複数のセッションが必ず存在し、各セッションはセミナ1件に対応します。セッションには予約がまだない場合があるため、受講セッションは0件以上ですが、各受講セッションは必ずセッション1件に対応します。採点講評では、関連を導くにはシステム要件の理解が必要だと指摘しています。キーの形だけでなく、データが存在しない場合も本文から判断します。
設問1(3)
公式解答例では、a=定員、b=多い、c=予約人数、d=少ない、e=会議室IDです。対象は同じセミナ・同じ時限のセッションなので、同時に使用する会議室の割当てを交換する処理です。まず、当該セッションより定員の多い会議室を使っているセッションを選び、次に、その中から当該セッションより予約人数が少ないものを選びます。さらに、予約人数÷定員の倍率が最も低いセッションを選びます。最後に交換するのは、セッション自体や予約人数ではなく、割当て先を表す会議室IDです。各空欄を埋めた文章が、予約希望の多いセッションを大きな会議室へ移すという要件につながることを確認します。
設問2
新システムの要件(4)には、予約人数、定員、予約者の来場情報、予約者の入室情報、現在入室している人数の五つが挙げられています。設問で既に示された予約人数と定員を除くと、残る三つが解答対象です。図1では、来場情報を受講申込の「来場日時」、入室情報を受講セッションの「入室日時」、現在の人数をセッションの「入室人数」で表します。公式解答例もこの三つを挙げています。各30字以内では、①「当該セッションの受講者のセミナへの来場日時」、②「当該セッションの受講者の入室日時」、③「当該セッションの入室人数」とまとめられます。来場済みでもまだ入室していない予約者と、既に入室した予約者を区別し、全体の入室人数と併せて判断します。採点講評では、属性名だけを書く解答が多かったとされています。どの受講者・セッションの情報なのかまで示すことが必要です。
設問3(1)
公式解答例で追加先とされているエンティティタイプは「顧客招待」です。本文では、重要顧客を「セミナの開催場所と内容によって」選定し、表2では招待したい顧客を選ぶ際に重要顧客の区分を付けています。つまり、重要顧客区分は顧客に固定された属性ではなく、特定のセミナへの招待について決まる属性です。顧客招待の主キーはセミナ番号・顧客IDなので、その単位で区分を保持できます。理由は35字以内で「重要顧客はセミナの開催場所と内容によって招待時に選定されるから。」とまとめられます。採点講評では、その情報がどの時点で何に対して付与されるかを理解する必要があるとしています。
設問3(2)
公式解答例では、f=受講票、g=申込ID、h=受講申込、i=顧客ID、j=受講カードです。セミナ受付では持参された受講票を使い、セッション入室ではICカードリーダで受講カードを使うため、fとjは読み取る媒体が異なります。どちらにも申込IDが記載・記録されているので、その申込IDから受講申込を参照して顧客IDを求めます。続いて、その顧客IDと当該セミナのセミナ番号で顧客招待の重要顧客区分を参照し、該当する場合に営業担当へ通知します。申込IDはセミナ単位で一意なので、参照時には当該セミナを特定した上で扱うことも押さえます。
設問3(3)
現状の課題(3)と、新システムでセッションの受講を記録する要件を対応させます。従来は、予約したセッションやセミナへの来場は把握できても、実際にどのセッションを受講したかは分かりませんでした。新システムでは受講カードによって受講者の入室を記録するため、実際の受講セッションをフォロー営業の情報として渡せます。公式解答例では「受講者がどのセッションを受講したかという情報」としています。25字以内では「受講者が実際に受講したセッションの情報」と要点をまとめられます。予約内容と実際の受講結果を区別することが解答の中心です。
学習のポイント
業務制約から主キーと関連の多重度・必須性を導き、情報の対象、記録時点、保持する単位を具体的に説明する練習が重要です。
出典:独立行政法人 情報処理推進機構(IPA)平成24年度秋期 システムアーキテクト試験 午後Ⅰ 問3(公式資料:問題冊子(PDF) / 解答例 / 採点講評)
関連する過去問一覧
IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針