令和5年度 春期 システムアーキテクト試験 午後Ⅰ 問2 オンラインセミナー管理システムのファイル設計と設計変更

テクノロジデータベースシステム開発技術

この問題は2023(R5)春 システムアーキテクト 午後Iに出題されたものです。出題時点の法令・制度に基づく内容のため、現行の内容と一致しない場合があります。

本ページの問題文・選択肢は、原本の体裁を Web 表示用に正規化しています(改行・記号・数式・図表参照の調整)。設問の趣旨および正解に影響する変更は加えていません。

学習ガイド

無料オンラインセミナーの管理システムを、ファイル設計と変更要求から読み解く問題です。受講IDとセミナーIDを軸にファイル間の参照関係を描き、定員到達時の競合、再ログイン条件、アンケートURLの格納先を確認します。各指標の分母と分子も同じ関係から求めます。本文・表・図の根拠を行き来し、用語だけを暗記するのではなく、短い記述にも判断の理由を残して解答する手順を示します。

この記事で押さえる論点

  • 業務概要からセミナー担当ファイルの複合主キーを導き、重複判定に使うファイルと属性を特定できる
  • 申込確認画面の表示中に他者の申込が確定して定員に達する競合を説明できる
  • 接続フラグを使った再ログイン時のチェックと更新処理を記述する
  • 申込率・受講率・平均評価点の計算式を表1のファイル名と属性で組み立てる

問題本文

問2 セミナー管理システムに関する次の記述を読んで,設問に答えよ。

ソフトウェアパッケージの開発・販売を行っているC社では,全国主要都市で自社製品の説明会を開催していたが,新たに無料のオンラインセミナーを開催することになり,それをサポートするセミナー管理システム(以下,新システムという)をWebシステムとして開発することになった。

〔セミナー管理業務の概要〕

C社のセミナー管理業務の概要は次のとおりである。

(1) セミナー登録
企画担当者がセミナーを企画し,企画書を作成する。
セミナーは,企画担当者のほか,講演資料を作成して講演を行う講師担当者及びセミナーの運営を行う運営担当者で担当する。企画・講師・運営の三つの担当役割について,それぞれ複数名の担当者を設定でき,一人の担当者が複数の担当役割を兼務する場合もある。一つの担当役割に複数名を設定した場合は,その中でリーダーを一人設定する。
セミナーには,リソースのひっ迫を避けるために受講する人数について定員を設定している。
企画書には,セミナー名,セミナー内容,定員,開催日時,終了時刻及び企画・講師・運営の各担当者の担当者IDと担当者名が記載されている。
企画担当者は,作成した企画書を上長に提出し,承認を受けた後,実施予定セミナーとして登録する。

(2) 募集・申込み
企画担当者はセミナーの概要を募集画面に掲載して受講申込みを受け付ける。
受講を希望する者は申込入力画面からセミナーを選択し,氏名,会社名,部署名,役職名,メールアドレスなどの情報を入力して申込みを行う。
当該セミナーについて同一メールアドレスで申込みが重複しておらず,セミナーの定員に達していない場合は申込みを確定し,受講確定メールを受講申込者へ送付する。
申込みはセミナー開催の3日前に締め切る。

(3) 開催準備,開催案内
運営担当者はセミナー開催の 2 日前にオンラインルームを開設し,アクセス URL とアクセスキーを決定する。
運営担当者は受講申込者に開催案内メールを送信する。開催案内メールには,受講確定メールに記載した内容に加えて,アクセス URL 及びアクセスキーが記載されている。
企画担当者は,受講申込者に回答してもらうアンケートを作成する。

(4) 受講
受講申込者はセミナー開催当日に Web ブラウザからアクセス URL にアクセスし,オンラインルームにログインしてセミナーを受講する。
なお,受講申込者は多重ログインできない。

(5) アンケート
セミナー終了後,運営担当者から受講申込者にアンケート URL が記載されたアンケートメールを送信する。受講申込者はアンケート URL にアクセスし,受講 ID,氏名及び受講の有無を入力し,個別の設問に回答する。また,受講した者(以下,受講者という)はセミナーの評価点を 10 点満点の数字で入力し,受講しなかった者は受講しなかった理由を入力する。入力したアンケートの回答は変更できない。

(6) 集計・分析
企画担当者はアンケートの回答について,集計・分析を行った結果を上長に報告する。また,担当者の業務負荷確認のために,1 か月ごとに担当したセミナーの数と担当役割を集計して上長に報告する。

〔新システムの概要〕

情報システム部の D 課長は,業務の概要を基に新システムの設計を行った。

(1) セミナー登録
セミナーの企画書を登録する機能。企画担当者が企画書の内容を入力すると,セミナー,セミナー担当の各ファイルにレコードを作成する。この時,セミナーに一意のセミナー ID を付与する。セミナー担当に登録する担当者 ID は別システムで事前に付与されている。

(2) 募集・申込み
受講を希望する者からの申込みを受け付け,申込みの重複及び定員超過を判定し,受講を確定させる機能。申込判定がOKのときは申込確認画面を表示し,確定ボタンが押されたら受講を確定する。申込確認画面で,取消ボタンが押されたら申込入力画面に戻る。
受講確定時に受講IDを発行し,受講申込ファイルにレコードを作成する。受講IDは,英数字8桁から成る一意のIDである。
受講確定後,受講ID,セミナーID,セミナー名,開催日時,終了時刻及びセミナー内容を記載した受講確定メールを受講申込者へ送付する。

(3) 開催準備,開催案内
開設したオンラインルームのアクセスURLとアクセスキーをオンラインルームファイルに登録し,受講申込者に開催案内メールを送信する機能,及びセミナー終了後に回答してもらうアンケート画面を作成する機能。開催案内メールには,受講確定メールに記載した内容に加えて,アクセスURL及びアクセスキーを記載する。

(4) 受講
受講を受け付ける機能。受講申込者はアクセスURLにアクセスし,開催案内メールにある受講ID及びアクセスキーを転記してオンラインルームにログインし,セミナーを受講する。ログイン時に受講ID及びアクセスキーのチェックを行い,受講ファイルにレコードを作成する。この時,受講受付日時に現在日時を設定する。

(5) アンケート
対象者にアンケートメールを送信する機能,及びアンケート画面から入力された回答を基にアンケートファイルにレコードを作成する機能。

(6) 集計・分析
アンケートの回答の集計・分析,及び担当者の担当役割とセミナー数を集計する機能。

D課長は,上記の概要を基に新システムのデータ設計を行い,主要なファイルを表1のように設計した。

表1 新システムの主要なファイル
図の説明テキスト

表1 新システムの主要なファイル

ファイル名 主な属性(下線は主キーを示す。)
セミナー セミナーID, セミナー名, セミナー内容, 開催日時, 終了時刻, 定員, アンケートURL
セミナー担当 セミナーID, 担当役割, 担当者ID, リーダーフラグ 1)
受講申込 受講ID, セミナーID, 氏名, 会社名, 部署名, 役職名, メールアドレス, 申込日時
オンラインルーム セミナーID, アクセスURL, アクセスキー
受講 受講ID, 受講受付日時
アンケート 受講ID, 受講有無 2), 評価点 3), 受講しなかった理由, 個別設問回答内容, 回答日時

注記 セミナー担当ファイルについては,全ての属性を記載しているが,主キーの下線は省略している。
注1) 担当役割に複数の担当者が設定されたとき,その中のリーダーの担当者のリーダーフラグに"1"を,それ以外の担当者のリーダーフラグに"0"を設定している。
注2) 受講者に"有",受講しなかった者に"無"を設定している。
注3) 受講者の評価点は1から10の整数であり,受講しなかった者の評価点は0を設定する。

また,新システムにおける募集・申込みの処理について,表2のように設計した。

表2 新システムにおける募集・申込みの処理
図の説明テキスト

表2 新システムにおける募集・申込みの処理

処理名 処理概要
申込入力 申込入力画面から,セミナーID,氏名,会社名,部署名,役職名及びメールアドレスを受け付ける。
申込判定(重複) 当該セミナーIDで,aファイルを検索し,入力されたbと同じbが存在すればエラーとし,エラーメッセージを表示して処理を終了する。
申込判定(定員) 当該セミナーIDで,受講申込ファイル及びセミナーファイルを検索し,受講申込ファイルのレコード件数がセミナーファイルの定員以上のときは,定員超過でエラーとし,エラーメッセージを表示して処理を終了する。申込判定がOKのときは申込確認画面を表示する。
申込確認 申込確認画面の確定ボタンが押されたときは,受講IDを発行して受講申込ファイルにレコードを作成するとともに受講確定メールを送信する。取消ボタンが押されたときは,申込入力画面に戻る。

〔指摘及び追加要望〕

D課長が設計内容を上長に説明したところ,次のような指摘及び追加要望が出された。

  • 申込確認処理について,今のままでは確定ボタンを押した際に定員を超過する可能性がある。定員超過の際は,エラーとするよう変更してほしい。
  • 今のログイン方式では,通信障害などで接続が切れた場合に再接続ができなくなる。接続が切れたことを検知した場合には,当該受講IDで再ログインができるようにしてほしい。
  • アンケートURLにアクセスした際に,入力画面で受講ID及び氏名を入力させるのではなく,あらかじめ受講ID及び氏名を埋め込んだページを開いて回答させるようにしたいので,個別のアンケートURLを送信してほしい。
  • 開催したセミナーの申込率,受講率及び平均評価点の三つの項目を一覧表示する機能を追加してほしい。ここで,申込率は定員に対する受講申込者数の割合,受講率は受講申込者数に対する受講者数の割合,平均評価点はアンケートに回答した受講者の評価点の平均点を示す。

〔新システムの設計変更〕

D課長は指摘及び追加要望を受け,次のような設計変更を行った。

  • 申込確認画面で確定ボタンが押されたときに再度申込判定の処理を行うようにし,エラーになった場合はエラーメッセージを表示して処理を終了する。また,確定ボタンを押してもエラーとなることがある旨を申込確認画面に表示する。
  • 受講ファイルに,接続フラグという属性を追加し,初期値として“1”を設定する。別途,接続が切れたことを検知した際に接続フラグに“0”を設定するようにする。その上で,再接続する際のログイン時の受講IDに関するチェック及び受講ファイルの更新処理を新たに追加する
  • セミナー終了後に受講申込者に送信するアンケートURLを,受講IDごとの個別のURLに変更する。これに伴って,表1中のある属性を別のファイルに移す
  • セミナーファイルに,申込率,受講率及び平均評価点の属性を追加する。申込率,受講率及び平均評価点は,セミナーID及びセミナーIDから検索した受講IDを用いて表1の各ファイルを検索し,その結果を用いて,それぞれ,表3に示す計算式で求める。ただし,各計算式の除数が 0 のときは項目の値を 0 とする。
表3 各項目の計算式
図の説明テキスト

表3 各項目の計算式

項目 計算式
申込率 (%) 受講申込ファイルのレコード件数 ÷ c × 100
受講率 (%) d ÷ e × 100
平均評価点 (点) f ÷ アンケートファイルで受講有無が “有” のレコード件数

設問と解答・解説

設問1

〔新システムの概要〕について答えよ。

(1)

セミナー担当ファイルに主キーを設定する場合,主キーとするものを表1中の属性を用いて全て答えよ。

模範解答

セミナーID,担当役割,担当者ID

採点基準(配点 4点)

正確性(内容)(4点)

  • 4: 3つの属性をすべて正しく解答している
  • 2: 2つ以上の属性を正しく解答している
  • 0: 正解の属性が含まれていない、または不正解

解説

セミナー管理システムのデータモデリングに関する設問です。

あるセミナーに対して誰がどのような役割を担当するかを管理する セミナー担当ファイル において、レコードを一意に特定するための主キーを検討します。

セミナーを特定する セミナーID 、担当者を特定する 担当者ID 、さらにその役割を示す 担当役割 の3つの属性を組み合わせることで、複合主キーとして一意性を担保できます。

高得点のポイント

  • セミナーIDを正しく解答すること

  • 担当役割を正しく解答すること

  • 担当者IDを正しく解答すること

(2)

表2中の a に入れる適切な字句を答えよ。

模範解答

受講申込

採点基準(配点 4点)

正確性(内容)(4点)

  • 4: 「受講申込」と正しく解答している
  • 2: 軽微な誤字脱字があるが意図は伝わる
  • 0: 不正解

解説

業務プロセスとそれに伴うデータファイルの対応関係を読み取る設問です。

オンラインセミナーへの参加手続きを行うプロセスにおいては、参加者の申込情報を管理する 受講申込 ファイルにデータが記録・参照されます。

高得点のポイント

  • 指定された表1中から対象となる適切な語句を抜き出せていること

(3)

表2中の b に入れる適切な字句を答えよ。

模範解答

メールアドレス

採点基準(配点 4点)

正確性(内容)(4点)

  • 4: 「メールアドレス」と正しく解答している
  • 2: 軽微な誤字脱字があるが意図は伝わる
  • 0: 不正解

解説

受講案内の送付や連絡に必要な属性を特定する設問です。

オンラインセミナーの受講URLや事前準備の案内を送付するためには、連絡手段となる メールアドレス の情報が不可欠となります。

高得点のポイント

  • 対象となる連絡先の属性名として適切な語句を解答していること

設問2

〔指摘及び追加要望〕について,申込確認処理で,確定ボタンを押した際に定員を超過するのはどのような場合か。40字以内で答えよ。

模範解答

申込確認画面が表示されている間に他者の申込みが確定されて定員に達した場合

採点基準(配点 4点)

知識・理解度(内容)(2点)

  • 2: 他者の申込み確定と定員到達の2つの要素を過不足なく説明できている
  • 1: 他者の申込み確定には触れているが、定員到達への言及がない(またはその逆)
  • 0: 要因が全く説明できていない、または無関係な記述

論理性(構造)(2点)

  • 2: 文脈が自然であり、事象の因果関係が論理的に伝わる
  • 1: やや不自然な表現があるが、因果関係は読み取れる
  • 0: 文脈が破綻しており意味が通じない

解説

Webシステムにおける 排他制御 と申込タイミングの競合に関する理解を問う設問です。

利用者が申込確認画面を開いた時点では定員に空きがあったとしても、確定ボタンを押すまでの間に 他者が申込みを完了させてしまう 可能性があります。

この結果として、確定時に初めて 定員に達した(超過した) ことが判明する事態が生じます。

高得点のポイント

  • 他者の申込みが先に確定されることに言及しているか

  • その結果として定員を超過(または達する)ことに言及しているか

設問2の正答率は平均的であったが,先に他者が申込みを確定した場合とだけ解答し,その結果として定員に達することについては全く触れていない受験者が多かった。どのような場合に定員を超過することがあるのかを考えて,正答を導き出してほしい。

設問3

〔新システムの設計変更〕について答えよ。

(1)

本文中の下線①について,受講IDに関するチェックの内容を40字以内で答えよ。

模範解答

当該受講IDの受講ファイルの接続フラグが“0”のときはエラーとしない。

採点基準(配点 4点)

知識・理解度(内容)(2点)

  • 2: 接続フラグが“0”であることと、その場合にエラーにしないことの両方が明記されている
  • 1: 接続フラグへの言及はあるが判定値が誤っている、またはエラー例外処理の記述が不十分
  • 0: チェック対象や判定内容が不適切である

論理性(構造)(2点)

  • 2: 条件と結果の構成で論理的に正しく記述されている
  • 1: やや不自然な表現があるが、仕様の意図は伝わる
  • 0: 文脈が破綻しており意味が通じない

解説

システム障害時や一時的な通信切断に伴う 再接続処理 の要件変更についての設問です。

二重ログインを防止する既存のチェックを回避するため、受講ファイルの 接続フラグ の状態を確認します。

未接続であることを示す値である「0」が設定されている場合は、不正な二重ログインではなく再接続であるとみなし、エラーにしないという例外条件を明記する必要があります。

高得点のポイント

  • 受講ファイルの「接続フラグ」の状態を確認していること

  • フラグが“0”の場合はエラーにしないという判定ロジックが記述されていること

(2)

本文中の下線①について,受講ファイルの更新処理の内容を30字以内で答えよ。

模範解答

受講ファイルの接続フラグに“1”を設定して更新する。

採点基準(配点 4点)

知識・理解度(内容)(2点)

  • 2: 接続フラグに“1”を設定して更新する旨が正しく記述されている
  • 1: 更新対象のフラグまたは設定値のいずれかに不備がある
  • 0: 更新処理の内容が不適切である

論理性(構造)(2点)

  • 2: 処理手順として論理的かつ簡潔に表現されている
  • 1: やや不自然な表現があるが、処理の意図は伝わる
  • 0: 文脈が破綻しており意味が通じない

解説

再接続が許可された直後に実行すべき データの更新処理 を説明する設問です。

再接続後はログイン状態となるため、次回の二重ログインチェックが正しく働くように状態を記録する必要があります。

したがって、受講ファイルの 接続フラグ に接続中を示す“1”を設定し、レコードを更新する処理が求められます。

高得点のポイント

  • 更新対象が受講ファイルの「接続フラグ」であること

  • 設定すべき値が“1”であることが明示されていること

(3)

本文中の下線②について,どの属性を移すか。表1中の属性で答えよ。

模範解答

アンケートURL

採点基準(配点 5点)

正確性(内容)(5点)

  • 5: 「アンケートURL」と正しく解答している
  • 2: 軽微な誤字脱字があるが意図は伝わる
  • 0: 不正解

解説

追加要件に伴う データ項目の移行・再配置 についての理解を問う設問です。

セミナー受講後のアンケートへの誘導を適切に行うために、どの属性を別のファイルへ移動させるべきかを特定します。

システムアーキテクチャの変更に伴い、案内情報として扱われる アンケートURL を適切な管理単位に移管します。

高得点のポイント

  • 表1の属性の中から正確な名称を抜き出していること

(4)

本文中の下線②について,移す先のファイルを表1中のファイル名で答えよ。

模範解答

受講申込

採点基準(配点 5点)

正確性(内容)(5点)

  • 5: 「受講申込」と正しく解答している
  • 2: 軽微な誤字脱字があるが意図は伝わる
  • 0: 不正解

解説

前問で特定した属性の 移行先ファイル を答える設問です。

データ間の関連性やシステムの利用プロセスを考慮し、個別の申込情報に紐づく形でアンケートを管理するためには、受講申込 ファイルに属性を持たせることが適切です。

高得点のポイント

  • 表1中のファイル名の中から正確な名称を抜き出していること

(5)

表3中の c に入れる適切な字句を,表1中のファイル名と属性を用いて20字以内で答えよ。ここで,レコード件数が該当する場合は,表3の記載にならい,“のレコード件数”という形式で答えよ。

模範解答

セミナーファイルの定員

採点基準(配点 4点)

知識・理解度(内容)(2点)

  • 2: セミナーファイルの定員であることを正しく特定している
  • 1: ファイル名または属性名のいずれかに誤りがある
  • 0: ファイル名と属性名が共に誤っている

論理性(構造)(2点)

  • 2: 表1中のファイル名と属性を用いて適切に表現されている
  • 1: 記述形式にやや不自然な点があるが意図は伝わる
  • 0: 指定されたファイル名や属性を用いた構成になっていない

解説

統計情報の算出に用いる データソースと属性 を特定する設問です。

申込率や受講率などの指標を計算する際の分母や基準となる値は、そのセミナーが元々受け入れ可能な人数である 定員 です。

定員はセミナー自体の基本情報であるため、セミナーファイル の属性として管理されています。

高得点のポイント

  • 対象ファイルとして「セミナーファイル」を選択できていること

  • 対象属性として「定員」を選択し、指定の記述形式に沿っていること

(6)

表3中の d に入れる適切な字句を,表1中のファイル名と属性を用いて20字以内で答えよ。ここで,レコード件数が該当する場合は,表3の記載にならい,“のレコード件数”という形式で答えよ。

模範解答

受講ファイルのレコード件数

採点基準(配点 4点)

知識・理解度(内容)(2点)

  • 2: 受講ファイルのレコード件数であることを正しく特定している
  • 1: ファイル名に誤りがあるがレコード件数の集計であることは理解している
  • 0: 全く異なる集計対象を記述している

論理性(構造)(2点)

  • 2: 指定された“のレコード件数”の形式で適切に記述されている
  • 1: 形式に軽微な逸脱があるが、意味は通じる
  • 0: 指定された形式に著しく違反している

解説

セミナーの実施状況を示す各種指標のうち、実際に受講した人数を算出するための集計対象を特定します。

受講者数は、受講の実績が記録される 受講ファイル に登録されたレコードの件数を集計することで求められます。

高得点のポイント

  • 対象ファイルとして「受講ファイル」を選択できていること

  • 指定された形式に従い「のレコード件数」という表現を用いていること

(7)

表3中の e に入れる適切な字句を,表1中のファイル名と属性を用いて20字以内で答えよ。ここで,レコード件数が該当する場合は,表3の記載にならい,“のレコード件数”という形式で答えよ。

模範解答

受講申込ファイルのレコード件数

採点基準(配点 4点)

知識・理解度(内容)(2点)

  • 2: 受講申込ファイルのレコード件数であることを正しく特定している
  • 1: ファイル名に誤りがあるがレコード件数の集計であることは理解している
  • 0: 全く異なる集計対象を記述している

論理性(構造)(2点)

  • 2: 指定された“のレコード件数”の形式で適切に記述されている
  • 1: 形式に軽微な逸脱があるが、意味は通じる
  • 0: 指定された形式に著しく違反している

解説

申込状況の集計において、総申込者数を導き出すためのデータソースを答える設問です。

申込者の総数は、受講申込ファイル に登録されたデータ行数を数えることで把握できます。

高得点のポイント

  • 対象ファイルとして「受講申込ファイル」を選択できていること

  • レコード件数の集計に関する指定形式に従っていること

(8)

表3中の f に入れる適切な字句を,表1中のファイル名と属性を用いて20字以内で答えよ。ここで,レコード件数が該当する場合は,表3の記載にならい,“のレコード件数”という形式で答えよ。

模範解答

アンケートファイルの評価点の合計

採点基準(配点 4点)

知識・理解度(内容)(2点)

  • 2: アンケートファイルの評価点の合計であることを正しく特定している
  • 1: ファイル名または属性名に誤りがあるが、集計の意図は伝わる
  • 0: ファイル名と属性名が共に誤っている

論理性(構造)(2点)

  • 2: ファイル名と属性を用いて集計値として適切に表現されている
  • 1: 表現にやや不自然な点があるが意味は伝わる
  • 0: 指定されたファイル名や属性を用いた構成になっていない

解説

セミナーの満足度や評価の平均を求めるための計算要素を特定する設問です。

平均評価点などの指標を算出する際の分子として、回答者全員の評価値を合算した値が必要です。これは アンケートファイル 内の 評価点 を合計することで得られます。

高得点のポイント

  • 対象ファイルとして「アンケートファイル」を選択できていること

  • 対象属性として「評価点」を用い、その「合計」であることを表現できていること

設問3(2)は,正答率が低かった。移す先のファイル名を誤って解答した受験者が散見された。設計変更前のデータ設計を把握した上で,追加要望を満たすことができる適切な移動先のファイルを導き出してほしい。