令和5年度 秋期 データベーススペシャリスト試験 午後II 問1 在庫管理業務の論理・物理データモデルとKPI算出
テクノロジデータベース
この問題は2023(R5)秋 データベーススペシャリスト 午後IIに出題されたものです。出題時点の法令・制度に基づく内容のため、現行の内容と一致しない場合があります。
本ページの問題文・選択肢は、原本の体裁を Web 表示用に正規化しています(改行・記号・数式・図表参照の調整)。設問の趣旨および正解に影響する変更は加えていません。
学習ガイド
生活用品メーカーD社の在庫管理システムを題材に、DX時代のKPI提供を支えるデータベース実装・運用を問う午後IIの問題です。マーケティングや経営分析に使う分析データを、意味を取り違えずに高い精度と鮮度で提供できるかが軸になります。設問では生産拠点と商品の間のリレーションシップに着目した業務ルールの記述も求められ、この記事では論理モデルの理解から物理設計、問合せ設計までを一続きの流れとして解きほぐします。
この記事で押さえる論点
- 生産拠点と商品のリレーションシップに着目して業務ルールを言語化する
- 論理データモデルを理解し物理データモデルへ設計する能力を身に付ける
- KPI算出のための問合せを精度と鮮度の要求から設計する
- データの意味・特性を業務の観点から説明する
出題情報
- 出題
- 2023(R5)秋 データベーススペシャリスト 午後II 問1
- 配点
- 100点満点
- 模範解答
- 公表(設問ごとに掲載)
出題趣旨・採点講評(IPA 公表)
DXへの取組では,KPIを設定し,その数値を見ながら継続的に活動することも多く,KPIの算出値には高い精度及び鮮度が要求される。データベーススペシャリストは,KPIとなる項目の意味を理解した上で,データベース技術を適切に活用して,利用者に情報を提供することが求められる。
本問では,生活用品メーカーの在庫管理業務を題材として,データベースの設計,実装,利用者サポートの分野において,①論理データモデルを理解する能力,②物理データモデルを設計する能力,③問合せを設計する能力,④データの意味,特性を説明する能力を問う。
問1では,生活用品メーカーの在庫管理システムを題材に,データベースの実装・運用について出題した。全体として正答率は平均的であった。
問題本文
問1 生活用品メーカーの在庫管理システムのデータベース実装・運用に関する次の記述を読んで,設問に答えよ。
D社は,日用品,園芸用品,電化製品などのホームセンター向け商品を製造販売しており,販売物流の拠点では自社で構築した在庫管理システムを使用している。データベーススペシャリストのEさんは,マーケティング,経営分析などに使用するデータ(以下,分析データという)の提供依頼を受けてその収集に着手した。
〔分析データの提供依頼〕
分析データ提供依頼の例を表1に示す。

図の説明テキスト
| 依頼番号 | 依頼内容 |
|---|---|
| 依頼1 | 商品の出荷量の傾向を把握するため,出荷数量を基にした Z チャートを作成して可視化したい。Z チャートは,物流拠点,商品,年月を指定して指定年月と指定年月の 11 か月前までを合わせた 12 か月を表示範囲とした,商品の月間出荷数量,累計出荷数量,移動累計出荷数量の三つの折れ線グラフである。累計出荷数量は,グラフの表示範囲の最初の年月から各年月までの月間出荷数量の累計である。移動累計出荷数量は,各年月と各年月の 11 か月前までを合わせた 12 か月の月間出荷数量を累計したものである。 |
| 依頼2 | 出庫作業における移動距離を短縮して効率化を図るため,出庫の頻度を識別できるヒートマップを作成して可視化したい。ヒートマップは,物流拠点の棚のレイアウト図上に,各棚の出庫頻度区分を色分けしたものである。出庫頻度区分は,指定した物流拠点及び期間において,棚別に集計した出庫回数が多い順に順位付けを行い,上位 20%を‘高’,上位 50%から‘高’を除いたものを‘中’,それ以外を‘低’としたものである。 |
| 依頼3 | 年月別の在庫回転率を時系列に抽出してほしい。在庫回転率は,数量,金額を基に算出し,算出の根拠となった数値も参照したい。また,月末前でもその時点で最新の情報を 1 日に複数回参照できるようにしてほしい。 |
〔在庫管理業務の概要〕
在庫管理業務の概念データモデルを図1に,主な属性の意味・制約を表2に示す。
在庫管理システムでは,図1の概念データモデル中のサブタイプをスーパータイプのエンティティタイプにまとめた上で,エンティティタイプをテーブルとして実装している。Eさんは,在庫管理業務への理解を深めるために,図1,表2を参照して,表3の業務ルール整理表を作成した。表3では,項番ごとに,いくつかのエンティティタイプを対象に,業務ルールを列記した①〜④が,概念データモデルに合致するか否かを判定し,合致する業務ルールの番号を全て記入している。

図の説明テキスト
図1 在庫管理業務の概念データモデル。以下のエンティティと属性、関係が示されている。
【エンティティと属性】
・拠点(拠点#, 拠点名) △サブタイプとして生産拠点、物流拠点がある。
・生産拠点(拠点#)
・物流拠点(拠点#)
・商品分類(商品分類C, 商品分類名)
・取引先(取引先#, 取引先名, 請求先区分, 出荷先区分) △サブタイプとして出荷先がある。
・商品(商品#, 商品名, 商品分類C, 拠点#)
・出荷先(取引先#, 住所, 連絡先, 請求先取引先#)
・棚(拠点#, 棚#)
・月締め(年月, 実施日)
・棚別在庫(拠点#, 棚#, 商品#, 在庫数量)
・倉庫内移動(拠点#, 移動#, 移動年月日, 商品#, 移動数量, 移動元棚#, 移動先棚#)
・在庫(拠点#, 商品#, 在庫数量, 引当済数量)
・繰越残高(年月, 拠点#, 商品#, 受入順, 残高数量, 単価)
・入荷(拠点#, 入荷#, 入荷年月日, 入荷区分, 生産拠点#, 登録TS)
・入庫(拠点#, 入庫#, 入庫年月日, 登録TS)
・出荷(拠点#, 出荷#, 取引先#, 依頼年月日, 出荷年月日, 状態C, 赤黒区分, 訂正元出荷#, 登録TS)
・出庫(拠点#, 出庫#, 出庫年月日, 出荷#, 登録TS)
・入荷明細(拠点#, 入荷#, 入荷明細#, 商品#, 入荷数量, 単価)
・入庫明細(拠点#, 入庫#, 入庫明細#, 入荷#, 入荷明細#, 棚#, 入庫数量)
・出荷明細(拠点#, 出荷#, 出荷明細#, 商品#, 出荷数量)
・出庫明細(拠点#, 出庫#, 出庫明細#, 商品#, 棚#, 出庫数量)
※各エンティティ間には1対多などのリレーションシップが線(白丸、黒丸、カラスの足跡など)で描かれている。
注記 属性名の"#"は番号,"C"はコード,"TS"はタイムスタンプを略した記号である。

図の説明テキスト
| 属性名 | 意味・制約 |
|---|---|
| 拠点#, 棚# | 拠点#は拠点を識別する番号,棚#は拠点内の棚を識別する番号 |
| 請求先区分, 出荷先区分 | 請求先区分は取引先が請求先か否か,出荷先区分は取引先が出荷先か否かの区分で,一つの取引先が両方に該当することもある。 |
| 単価 | 生産拠点で製造原価を基に定めた商品の原単価である。 |
| 状態C | 出荷の状態を ‘出荷依頼済’ ,‘出庫指示済’ ,‘出荷済’ ,‘納品済’ ,‘出荷依頼キャンセル済’ ,‘取消済’ ,‘訂正済’ などで区分する。 |
| 赤黒区分, 訂正元出荷# | 出荷の訂正は,赤黒処理によって行う。赤黒処理では,出荷数量を全てマイナスにした取消伝票(以下,赤伝という)及び訂正後の出荷数量を記した訂正伝票(以下,黒伝という)を作成する。赤黒区分は,赤伝,黒伝の区分であり,訂正元出荷#は,訂正の元になった出荷の出荷#である。赤伝及び黒伝の出荷数量,赤黒区分,訂正元出荷#,登録TS以外の属性には,訂正元と同じ値を設定する。 |
| 登録TS | 入荷,入庫,出荷,出庫の登録TSには,時刻印を設定する。 |

図の説明テキスト
| 項番 | エンティティタイプ名 | 業務ルール | 合致する業務ルール |
|---|---|---|---|
| 1 | 生産拠点, 商品, 商品分類 | ① a ② 一つの生産拠点では一つの商品だけを生産する。 ③ 商品はいずれか一つの商品分類に分類される。 ④ 商品分類は階層構造をもつ。 |
①,③ |
| 2 | 物流拠点, 商品, 在庫 | ① 在庫を記録するのは物流拠点だけである。 ② 全拠点を集計した商品別在庫の記録をもつ。 ③ 各拠点では全商品について在庫の記録を作成する。 ④ 拠点ごと商品ごとに在庫数量,引当済数量を記録する。 |
b |
| 3 | 商品, 棚, 棚別在庫 | ① 一つの棚に複数の商品を保管する。 ② 同じ商品を複数の棚に保管することがある。 ③ 同じ棚#を異なる拠点の棚に割り当てることがある。 ④ 各棚には保管する商品があらかじめ決まっている。 |
c |
| 4 | 取引先, 出荷先, 出荷 | ① 取引先に該当するのは出荷先だけである。 ② 請求先には出荷先が一つ決まっている。 ③ 出荷先には請求先が一つ決まっている。 ④ 請求先と出荷先とが同じになることはない。 |
d |
| 5 | 入荷, 入荷明細, 入庫, 入庫明細 | ① 入荷#ごとに一つの入庫#を記録する。 ② 入庫は入庫の実施単位に拠点#, 入庫#で識別する。 ③ 入荷した商品を入庫せずに出荷することもある。 ④ 入荷明細を棚に分けて入庫明細に記録する。 |
e |
| 6 | 出荷, 出荷明細, 出庫, 出庫明細 | ① 出庫は出荷と同じ単位で行う。 ② 出荷明細には出庫明細との対応を記録する。 ③ 出荷に対応する出庫を記録しない場合がある。 ④ 商品ごとの出庫数量は出荷数量と異なる場合がある。 |
f |
〔問合せの検討〕
Eさんは,依頼1に対応するために図2のZチャートの例を依頼元から入手し,Zチャートを作成するための問合せの内容を,表4に整理した。表4中のT1は月間出荷数量,T2は移動累計出荷数量,T3は累計出荷数量を求める問合せである。

図の説明テキスト
Zチャートの例を示す図。左側に折れ線グラフ、右側に凡例がある。グラフを囲む外枠がある。グラフの縦軸は0から7,000まで1,000刻み。横軸は年月(22-10から23-09)。凡例には「拠点#:33 商品#:445566」とあり、丸破線が「月間出荷数量」、四角実線が「移動累計出荷数量」、三角点線が「累計出荷数量」を示している。

図の説明テキスト
| 問合せ名 | 列名又は演算 | テーブル名又は問合せ名 | 選択又は結合の内容 |
|---|---|---|---|
| T1 | 年月=[出荷年月日の年月を抽出], 月間出荷数量=[年月でグループ化した各グループ内の出荷数量の合計] | 出荷, 出荷明細 | ① 出荷明細から指定した商品の行を選択 ② 出荷から指定した拠点, かつ, 出荷年月日の年月が, 指定年月の ア か月前の年月以上かつ指定年月以下の範囲の行を選択 ③ ①と②の結果行を拠点#, 出荷# それぞれが等しい条件で内結合 |
| T2 | 年月, 月間出荷数量, 移動累計出荷数量=[選択行を年月の昇順で順序付けし, 行ごとに現在の行を起点として, イ から ウ までの範囲にある各行の月間出荷数量の合計] | T1 | 全行を選択 |
| T3 | 年月, 月間出荷数量, 移動累計出荷数量, 累計出荷数量=[選択行を年月の昇順で順序付けし, 行ごとに現在の行を起点として, エ から オ までの範囲にある各行の月間出荷数量の合計] | T2 | 年月が, 指定年月の カ か月前の年月以上かつ指定年月以下の範囲の行を選択 |
注記1 行ごとに問合せを記述し問合せ名を付ける。問合せ名によって問合せ結果行を参照できる。
注記2 列名又は演算には,テーブルから射影する列名又は演算によって求まる項目を“項目名=[演算の内容]”の形式で記述する。
注記3 テーブル名又は問合せ名には,参照するテーブル名又は問合せ名を記入する。
注記4 選択又は結合の内容には,テーブル名又は問合せ名ごとの選択条件,結合の具体的な方法と結合条件を記入する。
依頼2について図3のSQL文の検討を行い,実装したSQL文を実行して図4のヒートマップの例を作成した。

図の説明テキスト
WITH S1 AS (
SELECT S.拠点#, SM.棚#
FROM 出庫 S
INNER JOIN 出庫明細 SM ON S.拠点# = SM.拠点# AND S.出庫# = SM.出庫#
WHERE S.拠点# = :hv1 AND S.出庫年月日 BETWEEN :hv2 AND :hv3
), S2 AS (
SELECT キ AS 出庫回数
FROM 棚 T
LEFT JOIN S1 ON S1.拠点# = T.拠点# AND S1.棚# = T.棚#
WHERE T.拠点# = :hv1
ク
), S3 AS (
SELECT 棚#, RANK() OVER ( ケ ) AS 出庫回数順位
FROM S2
)
SELECT 棚#,
CASE
WHEN (100 * コ OVER() ) <= 20 THEN '高'
WHEN (100 * コ OVER() ) <= 50 THEN '中'
ELSE '低'
END AS 出庫頻度区分
FROM S3
注記 ホスト変数 hv1〜hv3 には、指定された拠点#, 出庫年月日の開始日及び終了日がそれぞれ設定される。

図の説明テキスト
倉庫内の棚の配置と出庫頻度区分、作業の最短順路を示す図。
左側に入口、右側に出口が配置されている。
棚は複数のブロックに分かれて配置されており、各棚には3桁の番号(101〜108, 201〜208など)が振られている。
下部に凡例があり、棚の色分けについて以下の説明がある:
- 背景が黒い棚: 出庫頻度区分='高'
- 背景が灰色の棚: 出庫頻度区分='中'
- 背景が白い棚: 出庫頻度区分='低'
また、入口から出口へ向かう矢印(→)の列があり、「出庫作業の最短順路」と説明されている。
〔依頼3への対応〕
Eさんは,在庫回転率及びその根拠となる数値(以下,計数という)の算出方法を確認した上で,分析データを作成する仕組みを検討することにした。
- 計数の算出方法確認
在庫管理業務では,次のように,年月,拠点,商品ごとに計数を算出している。
・月締めを行う。月締めは対象月の翌月の第5営業日までに実施する。
・月締めまでの間は,前月分の出荷であっても訂正できる。
・月末時点の在庫を,先入先出法によって評価し,在庫金額を確定する。在庫金額算出に際して,商品有高表及び残高集計表を作成する。商品有高表の例を表5に,残高集計表の例を表6に示す。
(1) 商品有高表
・前月末時点の残高を繰り越して受入欄に記入する。残高は,入荷ごとに記録するので,複数入荷分の残高があれば入荷の古い順に繰り越す。
・受入,払出の都度,収支を反映した残高を記入する。例えば,表5中の行2の残高には行1の受入を反映した残高を転記し,行3の残高には行2の受入を反映した残高を記入している。
・当月中の入荷を受入欄に,出荷を払出欄に記入する。入荷の入荷年月日,出荷の出荷年月日を受払日付とし,受払日付順及び入出荷の登録順に記入する。
・出荷による払出は,入荷の古い順に残高を引き落とし,複数入荷分の残高を引き落とす場合は,残高ごとに行を分ける。入出荷による変更後の在庫を入荷の古い順に残高欄に記入する。
・赤伝は,受払日付に発生日ではなく,訂正元出荷と同じ受払日付でマイナスの払出を記入する。
・月末時点の残高を入荷の古い順に払出欄に記入して次月に繰り越す。
(2) 残高集計表
年月,拠点,商品ごとに,商品有高表を集計・計算して月初残高,当月受入,当月払出,月末残高,在庫回転率の数量,金額をそれぞれ次のように求める。
・月初残高は,前月繰越による受入の数量,金額を集計する。
・当月受入は,当月中の入荷による受入の数量,金額を集計する。
・月末残高は,次月繰越による払出の数量,金額を集計する。
・当月払出は,“月初残高 + 当月受入 - 月末残高”によって,数量,金額をそれぞれ求める。
・在庫回転率は,“当月払出 ÷ ((月初残高 + 月末残高) ÷ 2)”によって,数量,金額をそれぞれ求める。

図の説明テキスト
年月:2023-09 拠点#:33 商品#:112233 出力日:2023-10-02 単価, 金額の単位 円
| 行 | 受払日付 | 摘要区分 | 受入 数量 | 受入 単価 | 受入 金額 | 払出 数量 | 払出 単価 | 払出 金額 | 残高(在庫) 数量 | 残高(在庫) 単価 | 残高(在庫) 金額 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 09-01 | 前月繰越 | 100 | 80 | 8,000 | 100 | 80 | 8,000 | |||
| 2 | 09-01 | 前月繰越 | 300 | 85 | 25,500 | 100 | 80 | 8,000 | |||
| 3 | 300 | 85 | 25,500 | ||||||||
| 4 | 09-04 | 出荷 | 30 | 80 | 2,400 | 70 | 80 | 5,600 | |||
| 5 | 300 | 85 | 25,500 | ||||||||
| 6 | 09-07 | 出荷 | 70 | 80 | 5,600 | 300 | 85 | 25,500 | |||
| 7 | 40 | 85 | 3,400 | 260 | 85 | 22,100 | |||||
| 8 | 09-12 | 入荷 | 150 | 90 | 13,500 | 260 | 85 | 22,100 | |||
| 9 | 150 | 90 | 13,500 | ||||||||
| 10 | 09-17 | 出荷 | 50 | 85 | 4,250 | g | h | ||||
| 11 | 150 | 90 | 13,500 | ||||||||
| 12 | 09-17 | 赤伝 | ▲50 | 85 | ▲4,250 | i | j | ||||
| 13 | k | l | |||||||||
| 14 | 09-17 | 黒伝 | 260 | 85 | 22,100 | ||||||
| 15 | 40 | 90 | 3,600 | ||||||||
| 16 | 09-19 | 入荷 | 300 | 95 | 28,500 | 110 | 90 | 9,900 | |||
| 17 | 300 | 95 | 28,500 | ||||||||
| 18 | 09-24 | 出荷 | 60 | 90 | 5,400 | 50 | 90 | 4,500 | |||
| 19 | 300 | 95 | 28,500 | ||||||||
| 20 | 09-30 | 次月繰越 | 50 | 90 | 4,500 | 300 | 95 | 28,500 | |||
| 21 | 09-30 | 次月繰越 | 300 | 95 | 28,500 | 0 | — | 0 |
注記 網掛け部分は表示していない。“▲” は負数を表す。“—” は空値を表す。

図の説明テキスト
| 年月 | 拠点# | 商品# | 数量 月初残高 | 数量 当月受入 | 数量 当月払出 | 数量 月末残高 | 数量 在庫回転率 | 金額 月初残高 | 金額 当月受入 | 金額 当月払出 | 金額 月末残高 | 金額 在庫回転率 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2023-09 | 33 | 112233 | 400 | 450 | 500 | 350 | 1.33 | 33,500 | 42,000 | 42,500 | 33,000 | 1.28 |
| ︙ | ︙ | ︙ | ︙ | ︙ | ︙ | ︙ | ︙ | ︙ | ︙ | ︙ | ︙ | ︙ |
- 計数を格納するテーブル設計
Eさんは,鮮度の高い分析データを提供するために,商品有高表及び残高集計表の計数をテーブルに格納することにして図5のテーブルを設計した。
(1) “受払明細”テーブル
・商品有高表の受入,払出のどちらかに数量,単価,金額の記載のある行を格納する。
・受払#には,年月,拠点#,商品#ごとに,商品有高表中の受入又は払出の数量に記載のある行を対象に1から始まる連番を設定する。一つの出荷が複数の残高から払い出される場合には,払出の行を分け,それぞれに受払#を振る。
・摘要区分には,‘前月繰越’,‘出荷’,‘入荷’,‘赤伝’,‘黒伝’,‘次月繰越’のいずれかを設定する。
(2) “受払残高”テーブル
・受払明細ごとに,受払による収支を反映した後の残高数量を,基になる受入ごとに記録する。残高の基になった受入(前月繰越又は入荷)の受払#,単価を,受払残高の基受払#,単価に設定する。
(3) “残高集計”テーブル
・受払明細及び受払残高の対象行を“残高集計表”の作成要領に従って集計・計算して“残高集計”テーブルの行を作成する。

図の説明テキスト
テーブル構造の定義
受払明細 (年月(主キー), 拠点#(主キー), 商品#(主キー), 受払#(主キー), 受払年月日, 摘要区分, 数量, 単価)
受払残高 (年月(主キー), 拠点#(主キー), 商品#(主キー), 受払#(主キー), 基受払#(主キー), 残高数量, 単価)
残高集計 (年月(主キー), 拠点#(主キー), 商品#(主キー), 月初残高数量, 当月受入数量, 当月払出数量, 月末残高数量, 月初残高金額, 当月受入金額, 当月払出金額, 月末残高金額)
- 計数を格納する処理
Eさんは,入荷又は出荷の登録ごとに行う一連の更新処理(以下,入出荷処理という)に合わせて,図5中のテーブルに入出荷を反映した最新のデータを格納する処理(以下,計数格納処理という)を行うことを考えた。
(1) 計数格納処理の概要
① 入出荷の明細ごとに,“受払明細”テーブルに赤伝,黒伝を含む新規受払の行を作成する。赤伝,黒伝の発生時には,同じ年月,拠点#,商品#で,その受払よりも先の行を全て削除した上で,入出荷の明細から行を再作成する。これを洗替えという。
② ①によって変更が必要になる “受払残高” テーブルの行を全て削除した上で,再作成する。
③ 変更対象の計数を集計して “残高集計” テーブルの行を追加又は更新する。
④ 計数は,計数格納処理の開始時点で登録済の入出荷だけを反映した状態にする。
(2) 計数格納処理の処理方式検討
Eさんは,計数格納処理の実装に当たって,次の二つの処理方式案を検討し,表7の比較表を作成した。
案1: 入出荷処理と同期して行う方式。同一トランザクション内で入出荷処理及び計数格納処理を実行する。
案2: 入出荷処理と非同期に行う方式。入出荷処理で,登録された入出荷のキー値(拠点#,入荷#,出荷#)を連携用のワークテーブル(以下,連携WTという)に溜めておき,一定時間おきに計数格納処理を実行する。
・入出荷処理では,トランザクション内で一連の更新処理を行い,最後に連携WTに行を追加してトランザクションを終了する。
・計数格納処理では,実行ごとに次のように処理する。
(a) 連携WT全体をロックし,連携WTの全行を処理用のワークテーブル(以下,処理WTという)に追加後,連携WTの全行を削除してコミットする。
(b) 処理WT,入荷,入荷明細,出荷,及び出荷明細から必要な情報を取得し,年月,拠点#,商品#の同じ行ごとに,まとめて次のように処理する。
・赤伝,黒伝がなければ,登録TSの順に受払を作成する。
・赤伝,黒伝があれば,洗替えの起点となる行を1行選択し,その行に対応する受払を作成する。そして,起点となる行を基に,入荷,入荷明細,出荷,出荷明細から対象となる行を入荷年月日又は出荷年月日,登録TSの順に取得して洗替えを行う。
(c) 処理WTの全行を削除してコミットする。

図の説明テキスト
| 評価項目 | 案1 | 案2 |
|---|---|---|
| 分析データの鮮度 | 〇常に最新 | △一定時間ごとに最新 |
| 全体的な処理時間 | △入出荷処理の処理時間増加 | 〇変わらない |
| 計数格納処理エラーの影響 | △入出荷処理に影響あり | 〇入出荷処理に影響なし |
| 注記 “〇”は一方の案が他方の案よりも優れていることを,“△”は劣っていることを表す。 |
表7を基に,処理方式案を次のように判断した。
(1) 分析データの鮮度については,どちらの案でも依頼3の要件を満たす。
(2) 入出荷処理への影響について,表5において,2023-10-03に次のそれぞれの出荷の登録を仮定して,“受払明細”テーブルへの追加及び削除行数を調べることで,追加処理による遅延の大きさを推測した。
・09-26の出荷数量40の出荷明細を追加入力すると,次月繰越の2行を削除,出荷1行及び新たな次月繰越1行の2行を追加することになる。
・09-04の出荷を取り消す赤伝を追加すると,“受払明細”テーブルに合計で11行の削除,12行の追加を行うことになる。
案1では,特に出荷の赤伝,黒伝から受払を作成する場合に,追加処理による入出荷処理の遅延が大きくなる。案2では,①連携WTに溜まった入出荷情報をまとめて処理することで,計数格納処理における出荷の赤伝,黒伝の処理時間を案1より短縮できる。
(3) 案1では入出荷処理の性能及び計数格納処理エラーの業務への影響が大きいことから,案2を採用することにした。なお,導入に先立って,②計数格納処理が正しく動作することを検証することにした。
- 分析データの検証
Eさんは,計数格納処理を実行して得たデータを用いて,ある拠点,商品の過去12か月の在庫回転率を時系列に取得して表8を得た。一定の方法で,数量,金額それぞれの在庫回転率を母集団とする外れ値検定を行ったところ,2023-09の金額の在庫回転率だけが外れ値と判定された。外れ値は,業務上の要因によって生じる場合もあれば,入力ミスなどによって生じる異常値の場合もある。

図の説明テキスト
| 在庫回転率 | 2022年 10月 | 11月 | 12月 | 2023年 1月 | 2月 | 3月 | 4月 | 5月 | 6月 | 7月 | 8月 | 9月 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 数量 | 0.86 | 0.84 | 0.87 | 0.93 | 0.88 | 0.86 | 0.94 | 0.97 | 0.85 | 0.76 | 0.93 | 0.88 |
| 金額 | 0.84 | 0.83 | 0.86 | 0.96 | 0.88 | 0.86 | 0.94 | 0.97 | 0.88 | 0.80 | 0.93 | 0.18 |
表8について,Eさんは次のように推論した。
① 数量と金額の在庫回転率は,ほぼ同じ傾向で推移するが,材料費の値上がりなどに起因して,製造原価が上昇する傾向にあるとき,金額による在庫回転率は m する傾向がある。
② 2023-09の数量の在庫回転率は前月とほぼ同じ水準であるにもかかわらず,金額の在庫回転率が極端に低い値になっていることから,異常値であることが疑われる。
③ この推論を裏付けるには,“受払明細”テーブルから当該年月,拠点,商品の一致する行のうち,“摘要区分 = 'n'”の行の o に不正な値がないかどうかを調べればよい。
- 概念データモデルの変更
図5のテーブルをエンティティタイプ,列名を属性名として,概念データモデルに追加する。Eさんは,追加するエンティティタイプ間及び図1中のエンティティタイプとの間のリレーションシップについて,追加するエンティティタイプの外部キーと参照先のエンティティタイプを表9の形式で整理した。

図の説明テキスト
| 追加エンティティタイプ名 | 外部キーの属性名 | 参照先エンティティタイプ名 |
|---|---|---|
| 受払明細 | 年月, 拠点#, 商品# | 残高集計 |
| 受払残高 | 年月, 拠点#, 商品#, 受払# | 受払明細 |
| 残高集計 | ||
設問と解答・解説
設問1
〔在庫管理業務の概要〕について答えよ。
(1)
表3中の a に入れる適切な業務ルールを,エンティティタイプ“生産拠点”と“商品”との間のリレーションシップに着目して25字以内で答えよ。
模範解答
一つの商品は一つの生産拠点だけで生産する。
一つの生産拠点では複数の商品を生産する。
採点基準(配点 2点)
知識・理解度(内容)(1点)
- 1点: 生産拠点と商品の対応関係(一対多の関係)が正しく理解できている。
- 0点: 対応関係の理解が不十分である。
論理性(構造)(1点)
- 1点: 業務ルールとして簡潔かつ論理的に文章化されている。
- 0点: 文章の構造が不適切である。
解説
正解は 一つの商品は一つの生産拠点だけで生産する。 または 一つの生産拠点では複数の商品を生産する。 です。
本問では、論理データモデル におけるエンティティ間のリレーションシップを正確に読み解く能力が求められます。
正解の根拠
- 業務ルールを表すエンティティタイプ間の関係性を、スーパータイプとサブタイプの定義から特定します。
- 生産拠点と商品の間の多重度やオプショナリティに着目し、一対多または多対一の関係を文章化します。
高得点のポイント
- 生産拠点と商品の関係性が明確に記述されていること。
- 指定された25字以内という制限を満たし、簡潔に表現されていること。
(2)
表3中の b に入れる適切な番号(①〜④)を全て答えよ。
模範解答
選択肢①: ①
選択肢④: ④
配点 2点
解説
正解は ①、④ です。
本問では、データベースの実装および論理データモデルの理解度が問われます。
正解の根拠
- 表中の制約や関連から、該当する適切な業務ルールの組み合わせを特定します。
- 排他的ではないサブタイプに関する特徴を正しく理解しているかが鍵となります。
各選択肢の解説
- ①: 条件に合致する適切な関連付けであるため正解です。
- ②: スーパータイプとサブタイプの関係性において矛盾が生じるため誤りです。
- ③: 排他的な制約に関する理解が不足しているため誤りです。
- ④: 条件に合致する適切な関連付けであるため正解です。
(3)
表3中の c に入れる適切な番号(①〜④)を全て答えよ。
模範解答
選択肢②: ②
選択肢③: ③
配点 2点
解説
正解は ②、③ です。
本問は、論理データモデルの構造と制約を正確に読み取る能力を問うものです。
正解の根拠
- エンティティ間の関連やスーパータイプの定義に基づき、妥当な関連を示す番号を選択します。
各選択肢の解説
- ①: 関連の定義に矛盾が生じるため誤りです。
- ②: スーパータイプとの関係を満たすため正解です。
- ③: 排他的ではないサブタイプの特性に合致するため正解です。
- ④: 業務ルールとの整合性が取れないため誤りです。
(4)
表3中の d に入れる適切な番号(①〜④)を全て答えよ。
模範解答
選択肢③: ③
配点 2点
解説
正解は ③ です。
本問は、排他的ではないサブタイプのリレーションシップの特徴を深く理解しているかを問う問題です。
正解の根拠
- サブタイプ間で重複が許容される場合のモデリングルールに基づき、正しく実装できる選択肢を特定します。
各選択肢の解説
- ①: 重複を許容する要件を満たせないため誤りです。
- ②: 参照整合性制約に反するため誤りです。
- ③: 要件を正しく反映したモデリングであるため正解です。
- ④: 関連の多重度が要件と合致しないため誤りです。
(5)
表3中の e に入れる適切な番号(①〜④)を全て答えよ。
模範解答
選択肢②: ②
選択肢④: ④
配点 2点
解説
正解は ②、④ です。
本問は、在庫管理システムにおけるデータの意味と特性を理解し、適切にモデリングする力を問うものです。
正解の根拠
- 業務ルールに基づくエンティティの関連付けとして、適切な選択肢を絞り込みます。
各選択肢の解説
- ①: エンティティのカーディナリティに反するため誤りです。
- ②: 正しいリレーションシップを示すため正解です。
- ③: サブタイプの定義に合致しないため誤りです。
- ④: データの整合性を保つ関連付けであるため正解です。
(6)
表3中の f に入れる適切な番号(①〜④)を全て答えよ。
模範解答
選択肢①: ①
選択肢③: ③
選択肢④: ④
配点 2点
解説
正解は ①、③、④ です。
本問は、KPIの算出精度に影響するデータモデルの関連付けを総合的に判断する問題です。
正解の根拠
- 提示された業務ルール全てに合致するリレーションシップを漏れなく選択します。
各選択肢の解説
- ①: 業務ルールに沿った関連付けであり正解です。
- ②: データの一貫性を損なうため誤りです。
- ③: 排他的ではないサブタイプのルールに合致し正解です。
- ④: 業務要件を満たす適切な関連であり正解です。
設問1では,(2)dの正答率がやや低かった。スーパータイプと排他的ではないサブタイプとのリレーションシップの特徴をよく理解し,もう一歩踏み込んで考えてほしい。
設問2
〔問合せの検討〕について答えよ。
(1)
図2において,累計出荷数量のグラフは始点から終点への直線の形状,移動累計出荷数量のグラフは右肩下がりの形状となっている。この二つのグラフから読み取れる商品の出荷量の傾向のうち、累計出荷数量の傾向を30字以内で答えよ。
模範解答
直近1年は毎月の出荷数量の増減がない。
採点基準(配点 2点)
知識・理解度(内容)(1点)
- 1点: 出荷数量の増減がない(一定である)傾向を正しく読み取れている。
- 0点: 傾向を正しく読み取れていない。
論理性(構造)(1点)
- 1点: 期間(直近1年など)を含め、論理的かつ簡潔に表現できている。
- 0点: 表現が不明瞭である。
解説
正解は 直近1年は毎月の出荷数量の増減がない。 です。
本問は、グラフとして可視化されたKPIデータの形状から、出荷数量の傾向を読み解く能力を問うものです。
正解の根拠
- 直線の形状を示している累計出荷数量のグラフは、毎月の増加分(出荷数量)が一定であることを意味しています。
- したがって、直近の期間において出荷数量の増減がないと判断できます。
高得点のポイント
- 直近1年 またはそれに準ずる期間に言及していること。
- 毎月の出荷数量の増減がない ことを明確に表現していること。
(2)
図2において,累計出荷数量のグラフは始点から終点への直線の形状,移動累計出荷数量のグラフは右肩下がりの形状となっている。この二つのグラフから読み取れる商品の出荷量の傾向のうち、移動累計出荷数量の傾向を30字以内で答えよ。
模範解答
各月の出荷数量が前年同月比で全て減少している。
グラフ表示範囲の1年前の期間の出荷数量は減少傾向だった。
採点基準(配点 2点)
知識・理解度(内容)(1点)
- 1点: 出荷数量の減少傾向を正しく読み取れている。
- 0点: 傾向を正しく読み取れていない。
論理性(構造)(1点)
- 1点: 比較対象(前年同月比や1年前など)を含め、簡潔に記述できている。
- 0点: 表現が不明瞭である。
解説
正解は 各月の出荷数量が前年同月比で全て減少している。 などです。
本問は、移動累計出荷数量のグラフの形状から、データの持つ特性を正確に説明する能力を問うものです。
正解の根拠
- 右肩下がりの形状を示している移動累計出荷数量のグラフは、過去の一定期間と比較して出荷数量が継続的に減少していることを意味します。
- 特に、前年同月と比較した際の減少傾向に着目することが重要です。
高得点のポイント
- 前年同月比 などの比較対象に言及していること。
- 出荷数量が 減少している ことを明確に表現していること。
(3)
表4中の ア に入れる適切な数値を答えよ。
模範解答
22
配点 2点
解説
正解は 22 です。
本問では、SQLのウィンドウ関数などを利用して移動累計を算出する際に必要なデータの範囲を正しく設計する力が問われます。
正解の根拠
- 移動累計出荷数量のグラフを描画するには、最初の年月の11か月前の年月から指定年月までのデータが必要です。
- 全体の対象期間を考慮すると、 か月分の過去データ等、適切な期間の算出が求められます。
各選択肢の解説
- 22: グラフ表示に必要な集計期間を正しく算出した値です。
- 誤答の傾向: 11と答えるケースが多いですが、これは必要な期間の一部しか考慮していないため誤りです。
(4)
表4中の カ に入れる適切な数値を答えよ。
模範解答
11
配点 2点
解説
正解は 11 です。
本問は、移動累計の計算に必要となるウィンドウの範囲を正確に求める問題です。
正解の根拠
- 直近1年分(当月を含めて12か月分)のデータを集計するためには、現在の行から起算して過去11か月分を対象とする必要があります。
- よって、指定すべき期間は となります。
各選択肢の解説
- 11: 集計対象とする過去の月数として適切な値です。
- 誤答の傾向: 12と答えると当月を含めた期間指定として不整合が生じるため誤りです。
(5)
模範解答
11行前の行
採点基準(配点 4点)
正確性(内容)(4点)
- 4点: 完全に正答と一致している。
- 2点: 「n行前の行」を選択しているが、数値nが誤っている。
- 0点: 全く異なる字句を選択しているか、無回答。
解説
正解は 11行前の行 です。
本問は、ウィンドウ関数におけるフレーム指定の構文と論理構造を問うものです。
正解の根拠
- 移動累計を求めるため、現在の行を基準にして集計開始位置を指定する必要があります。
- 過去11か月分を含めるため、「行前の行」を指定することが必要最小限かつ適切です。
高得点のポイント
- 与えられた選択肢の「n」を正しく「11」に置き換えて記述していること。
(6)
模範解答
現在の行
採点基準(配点 4点)
正確性(内容)(4点)
- 4点: 完全に正答と一致している。
- 0点: 誤っている、または無回答。
解説
正解は 現在の行 です。
本問は、ウィンドウ関数の終端のフレーム指定を問うものです。
正解の根拠
- 過去からの累計を当月まで算出するためには、集計の終端を「現在の行」とする必要があります。
高得点のポイント
- 選択肢から適切に「現在の行」を選択していること。
(7)
模範解答
最初の行
採点基準(配点 4点)
正確性(内容)(4点)
- 4点: 完全に正答と一致している。
- 0点: 誤っている、または無回答。
解説
正解は 最初の行 です。
本問は、全体の累計を計算する際の開始フレームの指定を問うものです。
正解の根拠
- グラフの始点からの累計出荷数量を計算するためには、対象パーティション内の先頭から集計を始める必要があります。
- したがって、「最初の行」を指定します。
高得点のポイント
- 選択肢から適切に「最初の行」を選択していること。
(8)
模範解答
現在の行
採点基準(配点 4点)
正確性(内容)(4点)
- 4点: 完全に正答と一致している。
- 0点: 誤っている、または無回答。
解説
正解は 現在の行 です。
本問は、全体の累計計算における終端フレームの指定を問うものです。
正解の根拠
- 累計出荷数量は、初めから当月までの実績を加算して求めるため、終端は「現在の行」となります。
高得点のポイント
- 選択肢から適切に「現在の行」を選択していること。
(9)
図3中の キ に入れる適切な字句を答えよ。
模範解答
T.棚#, COUNT(S1.棚#)
採点基準(配点 4点)
正確性(内容)(4点)
- 4点: 完全に正答と一致している。
- 2点: 必要な列名や関数のいずれかが欠けている。
- 0点: 誤っている、または無回答。
解説
正解は T.棚#, COUNT(S1.棚#) です。
本問は、ヒートマップを作成するために必要な集計関数の適切な設計を問うものです。
正解の根拠
- 棚ごとの出庫回数を集計するため、SELECT句にグループ化のキーとなる棚番号と、集計対象の件数(COUNT)を指定する必要があります。
- テーブル別名を正しく活用して記述します。
高得点のポイント
- 棚番号とカウント関数の組み合わせが正しく記述されていること。
(10)
図3中の ク に入れる適切な字句を答えよ。
模範解答
GROUP BY T.棚#
採点基準(配点 4点)
正確性(内容)(4点)
- 4点: 完全に正答と一致している。
- 2点: GROUP BY句の指定はあるが、列名が不完全である。
- 0点: 誤っている、または無回答。
解説
正解は GROUP BY T.棚# です。
本問は、SQLにおけるデータのグループ化の理解を問うものです。
正解の根拠
- 前述の集計を行うためには、棚ごとにグループ化する
GROUP BY句が必要です。
高得点のポイント
- 正しい句とキー(
T.棚#)が記述されていること。
(11)
図3中の ケ に入れる適切な字句を答えよ。
模範解答
ORDER BY 出庫回数 DESC
採点基準(配点 4点)
正確性(内容)(4点)
- 4点: 完全に正答と一致している。
- 2点: ORDER BYの指定はあるが、DESCが抜けているなど不完全である。
- 0点: 誤っている、または無回答。
解説
正解は ORDER BY 出庫回数 DESC です。
本問は、順位付けを行うためのウィンドウ関数内のソート順指定を問うものです。
正解の根拠
- 出庫回数が多い順に順位を付けるため、
ORDER BY句で出庫回数を降順(DESC)に指定する必要があります。
高得点のポイント
- 降順を表す
DESCが正しく指定されていること。
(12)
図3中の コ に入れる適切な字句を答えよ。
模範解答
出庫回数順位 / COUNT(*)
採点基準(配点 4点)
正確性(内容)(4点)
- 4点: 論理的に正しい式が記述できている。
- 2点: 演算の一部に誤りがある。
- 0点: 誤っている、または無回答。
解説
正解は 出庫回数順位 / COUNT(*) などです。
本問は、全体の件数に対する相対的な位置(パーセンタイル等)を求める演算の記述を問うものです。
正解の根拠
- ヒートマップの色分けに用いるため、全体の棚数に対する自身の順位の割合を計算します。
- そのため、算出された順位を全体の件数で割る処理が必要です。
高得点のポイント
- 順位を全体の件数で割る論理が正しく表現されていること。
(13)
図4において,二つの棚に配置されている商品を相互に入れ替えて効率化を図る場合,最も効果が高いと考えられる,入替えを行う棚の棚#の組を答えよ。
模範解答
307と604の組
採点基準(配点 5点)
正確性(内容)(5点)
- 5点: 適切な棚の組を完全に正しく答えられている。
- 0点: 誤っている、または無回答。
解説
正解は 307と604の組 です。
本問は、配置最適化のためのデータ分析・可視化結果を読み解く能力を問うものです。
正解の根拠
- 図4の情報を基に、出庫回数が多く作業動線の長い棚(非効率)と、出庫回数が少なく作業動線の短い棚を相互に入れ替えることで、最も効率化の恩恵が得られます。
- 条件に合致する棚の組み合わせとして、307と604が最適となります。
高得点のポイント
- 適切な2つの棚番号が提示されていること。
(14)
(4)の対応を記録するために更新が必要となるテーブル名を二つ挙げ,それぞれ行の挿入,行の更新のうち,該当する操作を〇で囲んで示せ。1つ目のテーブル名と操作を答えよ。
模範解答
棚別在庫,行の更新
採点基準(配点 4点)
正確性(内容)(4点)
- 4点: テーブル名と操作の組み合わせが完全に正答と一致している。
- 2点: テーブル名のみ正しい。
- 0点: 誤っている、または無回答。
解説
正解は 棚別在庫,行の更新 です。
本問は、商品の配置換えに伴うデータベースの実装と更新処理の理解を問うものです。
正解の根拠
- 商品の棚位置が入れ替わるため、各棚に存在する商品の在庫情報を記録している「棚別在庫」テーブルの更新(行の更新)が必要となります。
高得点のポイント
- テーブル名「棚別在庫」と、適切な操作「行の更新」の組み合わせが正しく挙げられていること。
(15)
(4)の対応を記録するために更新が必要となるテーブル名を二つ挙げ,それぞれ行の挿入,行の更新のうち,該当する操作を〇で囲んで示せ。2つ目のテーブル名と操作を答えよ。
模範解答
倉庫内移動,行の挿入
採点基準(配点 4点)
正確性(内容)(4点)
- 4点: テーブル名と操作の組み合わせが完全に正答と一致している。
- 2点: テーブル名のみ正しい。
- 0点: 誤っている、または無回答。
解説
正解は 倉庫内移動,行の挿入 です。
本問は、在庫の移動履歴を正しく記録するための物理モデル設計を問うものです。
正解の根拠
- 倉庫内での商品の移動履歴を残すため、「倉庫内移動」テーブルへ新たな移動記録を追加(行の挿入)する必要があります。
高得点のポイント
- テーブル名「倉庫内移動」と、適切な操作「行の挿入」の組み合わせが正しく挙げられていること。
設問2では,(2)ア,(3)の正答率が低かった。(2)アでは,11と誤って解答した受験者が多かった。グラフの表示範囲の移動累計出荷数量のグラフを描くには,グラフの表示期間の最初の年月の11か月前の年月から指定年月までの計23か月分の月間出荷数量のデータが必要となる。グラフが表すデータの意味を正しく把握した上で設計に反映するよう心掛けてほしい。(3)では,集計,ソート,順位付けなどのヒートマップを作成する上で必要となる処理を正しく理解できていない解答が多かった。データをグラフなどで可視化する際にも役立つので,SQLの集計関数やウィンドウ関数の使い方を身に付けてほしい。
設問3
〔依頼3への対応〕について答えよ。
(1)
表5中の g に入れる適切な数値を答えよ。
模範解答
210
配点 2点
解説
正解は 210 です。
本問は、計数格納処理におけるバッチ処理と残高計算の正確性を問うものです。
正解の根拠
- 洗替え対象となるデータの集計条件に基づき、特定時点での受入数量または払出数量を正確に計算します。
- 各種入出荷履歴から集計すると、該当の値は となります。
各選択肢の解説
- 210: 入出荷履歴と残高の整合性が取れた正しい集計結果です。
- 誤答の傾向: 計数格納処理開始後に登録されたデータを含めてしまうと異なる数値になります。
(2)
表5中の h に入れる適切な数値を答えよ。
模範解答
85
配点 2点
解説
正解は 85 です。
本問は、残高集計処理の正しい計算ロジックを問う問題です。
正解の根拠
- 指定された商品と期間における入出庫の実績を集計し、現在の残高を導出します。
- 集計の結果、該当項目の値は となります。
各選択肢の解説
- 85: 正しい条件で導出された残高です。
- 誤答の傾向: 洗替えの起点を誤ると集計漏れや重複が発生し、誤った値となります。
(3)
表5中の i に入れる適切な数値を答えよ。
模範解答
260
配点 2点
解説
正解は 260 です。
本問は、残高集計表における特定時点の計数を算出する能力を問うものです。
正解の根拠
- 表5の条件に基づき、対象となる入出荷の数量を積算します。
- 正しい処理時点のデータのみを反映させると となります。
各選択肢の解説
- 260: 正しい条件で導出された数量です。
- 誤答の傾向: 処理対象外のトランザクションを含めてしまうと誤答となります。
(4)
表5中の j に入れる適切な数値を答えよ。
模範解答
85
配点 2点
解説
正解は 85 です。
本問は、残高集計表の整合性を担保するための計数処理の理解を問うものです。
正解の根拠
- 洗替え前の残高に対して、対象となる入出荷数量を加減算して残高を求めます。
- 計算結果は となります。
各選択肢の解説
- 85: 正しく計算された残高です。
(5)
表5中の k に入れる適切な数値を答えよ。
模範解答
150
配点 2点
解説
正解は 150 です。
本問は、データベースの計数格納処理において、処理中のデータ更新を適切に排除して計算する能力を問うものです。
正解の根拠
- 計数格納処理開始時点で確定しているデータのみを用いて集計を行います。
- 指定された条件に合致する数量の合計は となります。
各選択肢の解説
- 150: 洗替え処理の要件を満たした正しい集計値です。
(6)
表5中の l に入れる適切な数値を答えよ。
模範解答
90
配点 2点
解説
正解は 90 です。
本問は、残高集計において最終的な払出数量や残高を正確に算出する能力を問う問題です。
正解の根拠
- 処理対象期間内の払出数量を集計します。該当するデータの合計は となります。
各選択肢の解説
- 90: 正しい条件で導出された数量です。
(7)
本文中の下線①では,どのように処理を行うべきか。(a) 処理 WT に,同じ年月,拠点#,商品#の赤伝,黒伝が複数ある場合に,洗替えの起点となる行を選択する条件を,列名を含めて,35字以内で具体的に答えよ。
模範解答
入荷年月日又は出荷年月日,登録TSの昇順に並べた先頭の行であること
受払日付,登録順が最も古い入出荷であること
採点基準(配点 2点)
知識・理解度(内容)(1点)
- 1点: 時系列で最も古いデータ(先頭の行)を起点とするロジックが理解できている。
- 0点: 起点の特定方法が誤っている。
論理性(構造)(1点)
- 1点: 指定された列名を用いて、論理的な条件として簡潔に記述されている。
- 0点: 記述が不明瞭である。
解説
正解は 入荷年月日又は出荷年月日,登録TSの昇順に並べた先頭の行であること などです。
本問は、データ処理において洗替えの起点となる行を正確に特定するための条件指定の能力を問うものです。
正解の根拠
- 複数の赤伝・黒伝が存在する場合、処理の起点とするためには時系列で最も古いデータを取得する必要があります。
- そのため、日付(入荷年月日・出荷年月日)やタイムスタンプ(登録TS)の昇順で先頭の行を取得する条件を指定します。
高得点のポイント
- 列名(入荷年月日、出荷年月日、登録TS など)が明記されていること。
- 昇順で並べた先頭の行(最も古い行)を選択する旨が記載されていること。
(8)
本文中の下線①では,どのように処理を行うべきか。(b) (a)の洗替えの起点となる行を基に,洗替えの対象となる入荷,入荷明細,出荷,出荷明細を取得するときに,計数格納処理の開始時点で登録済の入出荷だけを反映した状態にするために指定する条件を,列名を含めて,35字以内で具体的に答えよ。ただし,入荷年月日又は出荷年月日が,起点となる行の入荷年月日又は出荷年月日よりも大きい条件を除く。
模範解答
登録TSが処理WT内で最大の登録TS以下であること
登録TSが計数格納処理の開始日時以前であること
拠点#,入荷#,出荷#が連携WTに存在しないこと
採点基準(配点 2点)
知識・理解度(内容)(1点)
- 1点: 処理開始後のデータを排除するためのタイムスタンプの条件が理解できている。
- 0点: タイムスタンプによる絞り込みの意図が反映されていない。
論理性(構造)(1点)
- 1点: 指定された列名を用いて、論理的な条件として簡潔に記述されている。
- 0点: 記述が不明瞭である。
解説
正解は 登録TSが処理WT内で最大の登録TS以下であること や 登録TSが計数格納処理の開始日時以前であること などです。
本問は、バッチ処理中のデータの不整合を防ぐため、トランザクション管理に基づく適切な抽出条件を定義する能力を問うものです。
正解の根拠
- 計数格納処理の開始後に登録されたデータ(未来のデータ)が計算に含まれると残高が狂うため、処理開始時点までのデータに絞り込む必要があります。
- これを実現するために、登録TS(タイムスタンプ)を基準とした上限の条件を指定します。
高得点のポイント
- 列名(登録TSなど)を明記していること。
- 計数格納処理開始時点や最大の登録TSを上限とする条件が明確であること。
(9)
本文中の下線②では,処理結果が正しいことをどのように確認したらよいか。確認方法の例を60字以内で具体的に答えよ。
模範解答
拠点#ごと,商品#ごとに入荷数量,出荷数量を集計した値が残高集計の当月受入数量,当月払出数量とそれぞれ一致する。
該当月の入荷明細,出荷明細の行に対応する受払明細の行を突合し,各々一行だけ対応する行が存在する。
該当月の入荷,入荷明細,出荷,出荷明細を基に作成した商品有高表及び残高集計表の計数が計数格納処理の結果と一致する。
採点基準(配点 2点)
知識・理解度(内容)(1点)
- 1点: 明細と集計値の突合による検証手法が正しく理解できている。
- 0点: 検証手法として不適切である(例:単なるテストケースの記述など)。
論理性(構造)(1点)
- 1点: 具体的な項目名を挙げ、突合方法が論理的に記述されている。
- 0点: 記述が不明瞭である。
解説
正解は 拠点#ごと,商品#ごとに入荷数量,出荷数量を集計した値が残高集計の当月受入数量,当月払出数量とそれぞれ一致する。 などです。
本問は、計数格納処理の実行結果の正確性を担保するための、データの突合・検証方法を具体的に提示する能力を問うものです。
正解の根拠
- 処理結果が正しいことを確認するには、明細データ(入荷数量・出荷数量)の集計値と、集計結果のデータ(残高集計表の受入・払出数量)が一致するかを確かめるのが一般的かつ確実です。
高得点のポイント
- 拠点#、商品#といった集計のキーに言及していること。
- 明細の集計値と集計表の数値が一致することの確認を明示していること。
(10)
本文中の m に入れる適切な字句を答えよ。
模範解答
下降
採点基準(配点 4点)
正確性(内容)(4点)
- 4点: 完全に正答と一致している。
- 0点: 誤っている、または無回答。
解説
正解は 下降 です。
本問は、データベースのデータ構造探索におけるナビゲーションの概念に関する理解を問うものです。
正解の根拠
- 階層構造やツリー構造のデータにおいて、親から子へとたどる操作を「下降」と表現します。
高得点のポイント
- 本文の文脈に合致する字句を正しく抜き出し・適用できていること。
(11)
本文中の n に入れる適切な字句を答えよ。
模範解答
入荷
採点基準(配点 4点)
正確性(内容)(4点)
- 4点: 完全に正答と一致している。
- 0点: 誤っている、または無回答。
解説
正解は 入荷 です。
本問は、外部キーによる参照制約の有無など、処理方式設計におけるデータ間の依存関係の理解を問うものです。
正解の根拠
- 本文の文脈から、外部キー制約の対象となる親テーブル・子テーブルの関係性を読み解きます。ここでは「入荷」に関する処理について言及されています。
高得点のポイント
- 本文の文脈に合致する字句を正しく抜き出し・適用できていること。
(12)
本文中の o に入れる適切な字句を答えよ。
模範解答
単価
採点基準(配点 4点)
正確性(内容)(4点)
- 4点: 完全に正答と一致している。
- 0点: 誤っている、または無回答。
解説
正解は 単価 です。
本問は、エンティティの属性(列)におけるデータの意味を文脈から読み取る能力を問うものです。
正解の根拠
- 金額や在庫評価額の計算において必要となる、商品ごとの基本属性としての「単価」が文脈に合致します。
高得点のポイント
- 本文の文脈に合致する字句を正しく抜き出し・適用できていること。
(13)
表9中の太枠内の空欄に適切な字句を入れて表を完成させよ。ただし,空欄は全て埋まるとは限らない。
模範解答
受払残高: 年月,拠点#,商品#,基受払#, 受払明細
残高集計: 拠点#, 物流拠点
残高集計: 商品#, 商品
採点基準(配点 5点)
正確性(内容)(5点)
- 5点: 表の空欄が完全に正しく埋められている。
- 3点: 大部分は正しいが、一部に欠落や誤りがある。
- 0点: 誤りが多い、または無回答。
解説
正解は 受払残高: 年月,拠点#,商品#,基受払#, 受払明細 などを含む表の完成です。
本問は、データベース設計において、アクセスパスやテーブル間の依存関係を整理した表を完成させる能力を問うものです。
正解の根拠
- 各テーブルの主キーや外部キー、参照関係に基づき、空欄に当てはまる適切なテーブル名や列名を導出します。
- 特に、受払残高や残高集計を求めるために必要な集計キー(拠点#、商品#など)を漏れなく記述します。
高得点のポイント
- 対象となるテーブル名およびその属性(列名)が正確に埋められていること。
- 表の構造上の依存関係に矛盾がないこと。
設問3では,(2)(b),(3),(5)の正答率が低かった。(2)(b)では,洗替えの際に計数格納処理開始後に登録された入出荷を除いて計数を求める必要がある点に着目していない解答が散見された。(3)では,計数格納処理の実行結果を正確に確認する方法を求めているのに対し,テストの実行方法,テストケースについての解答が散見された。(5)では,外部キーによる参照制約の有無に着目していない解答が散見された。この設問で問われている内容は,データベースを用いた処理方式の設計を行う際に必要とされることであり,是非知っておいてもらいたい。