「AP過去問 令和7年度春期 午後 問6 データベース」の版間の差分

提供:yonewiki
(ページの作成:「AP 過去問題 午後に戻る。 AP過去問_令和7年度春期_午後_問5_ネットワークの同じ回の前の問題へ移動。 AP過去問_令和7年度春期_午後_問7_組込みシステム開発の同じ回の次の問題へ移動。 AP過去問_令和6年度秋期_午後_問6_データベースの前の回の同じカテゴリの問題へ移動。 == '''令和7年度春期 午後…」)
 
編集の要約なし
8行目: 8行目:


== '''令和7年度春期 午後 問6 データベース(AIプロンプト向け)''' ==
== '''令和7年度春期 午後 問6 データベース(AIプロンプト向け)''' ==
■販売管理システムの構築に関する次の記述を読んで、設問に答えよ。
 
 
 H社は、全国の店舗及びインターネットで釣り具の販売を行っている。これまで販売促進のためにキャンペーンを定期的に実施してきたが、売上に全く結びつかないものもあった。そこで、キャンペーンの機能を強化し、さらにその効率を上げるために、既存の販売管理システムを改修した新しい販売管理システム(以下、新システムという)を構築することになった。
 
 
〔キャンペーンの概要〕
 
 キャンペーンとは、2週間~3か月間の定められた期間、幾つかの商品に安い売価を設定することで、新規会員の獲得や、他の商品もー緒に購入してもらうことによる売上の向上を目指す活動である。新システムで提供するキャンペーンを広報する手段は4種類あり、種別と呼ばれる英字1字で分類される。新システムで提供するキャンペーン種別について、表1に示す。
 
 
<div><div class="table-container"><div class="table-header"><span class="table-title">表1 新システムで提供するキャンペーン種別</span><span class="table-unit"></span></div>
 
<table border="0" width="100%" style="border-collapse: collapse;border-style: solid">
 
<tr>
 
  <td align="center" style="border: 2px solid; width: 5em;">種別</td>
 
  <td align="center" style="border: 2px solid;">種別名</td>
 
  <td align="center" style="border: 2px solid;">概要</td>
 
</tr>
 
<tr>
 
  <td align="center" style="border: 2px solid;">H</td>
 
  <td align="center" style="border: 2px solid;">葉書</td>
 
  <td align="center" style="border: 2px solid;">キャンペーンについて、特定の会員に葉書で案内する。全国の店舗及びインターネットでの販売が対象の場合、直近1年以内に購入した実績がある会員に案内する。特定の店舗が対象の場合、店舗ごとに決められた範囲(以下、店舗エリアという)に会員に案内する。店舗エリアは、その店舗に来客が見込まれる会員の居住範囲を複数の郵便番号で定めた範囲として定義する。店舗エリアの範囲は、最初に対象店舗の5km以内の地域に該当する郵便番号を登録し、定期的に見直す。</td>
 
</tr>
 
<tr>
 
  <td align="center" style="border: 2px solid;">E</td>
 
  <td align="center" style="border: 2px solid;">電子メール</td>
 
  <td align="center" style="border: 2px solid;">キャンペーンについて、全ての会員に電子メールで案内する。案内の内容は、会員の住所や購入実績に応じてカスタマイズする。</td>
 
</tr>
 
 
<tr>
 
  <td align="center" style="border: 2px solid;">B</td>
 
  <td align="center" style="border: 2px solid;">バナー広告</td>
 
  <td align="center" style="border: 2px solid;">釣り情報のWebサイトやソーシャルメディアにバナー広告を表示して、キャンペーンをアピールする。</td>
 
</tr>
 
<tr>
 
  <td align="center" style="border: 2px solid;">L</td>
 
  <td align="center" style="border: 2px solid;">リスティング広告(検索連動型広告)</td>
 
  <td align="center" style="border: 2px solid;">Webサイトの検索エンジンにおいて、釣り関連のキーワードを入力した際、検索結果にURLリンク付きのテキストを表示して、キャンペーンをアピールする。</td>
 
</tr>
 
</table>
 
</div>
 
</div>
 
 
 各キャンペーンには、目標となる複数の指標と予算を設定し、その実施を複数回に分けて行うことがある。その予算を各種別に配賦する割合を変えることによって目標達成率を上げる工夫が求められる。
 
 バナー広告とリスティング広告のキャンペーン(以下、Webキャンペーンという)は、キャンペーン単位で広告内容と予算金額を設定してから、Webマーケディングを運営するT社に実施の詳細を委託する。T社からは、広告内容として設定した広告表示キーワードごとに、その広告費用や表示回数、クリック数などの実績を週次で集計したレポートが送付される。
 
 新システムのE-R図(抜粋)を図1に示す。なお、新システムは、E-R図のエンティティ名を表名にし、属性名を列名にして、適切なデータ型で表定義した関係データベースによって、データを管理する。
 
 図1 新システムのE-R図(抜粋)ここから
 
注記 属性名の実線の下線<u> </u>は主キー、破線の下線<span style="text-decoration: underline dashed;"> </span>は外部キーを示す。主キーの実線が付いている属性名には、外部キーの破線を付けない。
 
テーブル名=店舗エリア詳細
 
店舗エリア詳細テーブルの列名=<u>店舗エリア番号</u>
 
店舗エリア詳細テーブルの列名=[ a ]
 
 
店舗エリア詳細テーブルと店舗エリアテーブルの関係は多対1
 
 
テーブル名=店舗エリア
 
店舗エリアテーブルの列名=<u>店舗エリア番号</u>
 
店舗エリアテーブルの列名=店舗エリア名
 
 
店舗エリアテーブルと店舗テーブルの関係は1対1
 
 
テーブル名=店舗
 
店舗テーブルの列名=<u>店舗番号</u>
 
店舗テーブルの列名=<span style="text-decoration: underline dashed;">店舗エリア番号</span>
 
店舗テーブルの列名=店舗郵便番号
 
店舗テーブルの列名=店舗住所
 
 
テーブル名=会員
 
会員テーブルの列名=<u>会員番号</u>
 
会員テーブルの列名=会員郵便番号
 
会員テーブルの列名=会員住所
 
会員テーブルの列名=会員メールアドレス
 
 
会員テーブルと売上テーブルの関係は1対多
 
 
テーブル名=売上
 
売上テーブルの列名=<u>売上番号</u>
 
売上テーブルの列名=<span style="text-decoration: underline dashed;">店舗番号</span>
 
売上テーブルの列名=売上年月日
 
売上テーブルの列名=<span style="text-decoration: underline dashed;">会員番号</span>
 
売上テーブルの列名=<span style="text-decoration: underline dashed;">キャンペーン番号</span>
 
売上テーブルの列名=キャンペーン種別
 
 
店舗テーブルと売上テーブルの関係は1対多
 
売上テーブルと売上明細テーブルの関係は1対多
 
 
テーブル名=売上明細
 
売上明細テーブルの列名=<u>売上番号</u>
 
売上明細テーブルの列名=<u>売上明細番号</u>
 
売上明細テーブルの列名=<span style="text-decoration: underline dashed;">商品番号</span>
 
売上明細テーブルの列名=商品個数
 
売上明細テーブルの列名=商品単価
 
 
キャンペーンテーブルと売上テーブルの関係は1対多
 
 
テーブル名=キャンペーン
 
キャンペーンテーブルの列名=<u>キャンペーン番号</u>
 
キャンペーンテーブルの列名=キャンペーン名
 
キャンペーンテーブルの列名=目標会員獲得数
 
キャンペーンテーブルの列名=目標売上向上金額
 
キャンペーンテーブルの列名=目標利益向上金額
 
キャンペーンテーブルの列名=予算金額
 
キャンペーンテーブルの列名=開始年月日
 
キャンペーンテーブルの列名=終了年月日
 
 
テーブル名=商品
 
商品テーブルの列名=<u>商品番号</u>
 
商品テーブルの列名=商品名
 
商品テーブルの列名=商品種別
 
商品テーブルの列名=商品標準売価
 
商品テーブルの列名=商品原価
 
 
商品テーブルと売上明細テーブルの関係は1対多
 
キャンペーンテーブルとキャンペーン実施テーブルの関係は1対多
 
 
テーブル名=キャンペーン実施
 
キャンペーン実施テーブルの列名=<u>キャンペーン番号</u>
 
キャンペーン実施テーブルの列名=<u>キャンペーン実施番号</u>
 
キャンペーン実施テーブルの列名=キャンペーン種別
 
キャンペーン実施テーブルの列名=キャンペーン実施金額
 
キャンペーン実施テーブルの列名=開始年月日
 
キャンペーン実施テーブルの列名=終了年月日
 
 
キャンペーンテーブルとキャンペーン商品テーブルの関係は1対多
 
 
テーブル名=キャンペーン商品
 
キャンペーン商品テーブルの列名=<u>キャンペーン番号</u>
 
キャンペーン商品テーブルの列名=<u>キャンペーン商品番号</u>
 
キャンペーン商品テーブルの列名=キャンペーン商品売価
 
 
商品テーブルとキャンペーン商品テーブルの関係は[ b ]
 
 図1 新システムのE-R図(抜粋)ここまで
 
 
〔キャンペーン種別ごとの実績の集計〕
 
新しいキャンペーンを計画するために、指定したキャンペーンについて、キャンペーン種別ごとの実績として、売上、原価、粗利、実施金額を集計するSQL文を図2に示す。ここで、❝:キャンペーン番号❞は指定したキャンペーン番号を表す埋込み変数である。なお、関数COALESCE(A, B)は、AがNULLでないときはAを、AがNULLのときはBを返す。
 
 
図2 キャンペーン種別ごとの実績を集計するSQL文 ここから
 
SELECT CK.キャンペーン種別, COALESCE(UK.売上計, 0) AS 売上計,
 
COALESCE(UK.原価計, 0) AS 原価計,
 
COALESCE(UK.売上計, 0) - COALESCE(UK.原価計, 0) AS 粗利計,
 
CK.キャンペーン実施金額計
 
[ c ]
 
(SELECT キャンペーン種別, SUM(キャンペーン実施金額) AS キャンペーン実施金額計
 
FROM キャンペーン実施
 
WHERE キャンペーン番号 = :キャンペーン番号
 
GROUP BY キャンペーン種別) CK
 
[ d ]
 
(SELECT U.キャンペーン種別, SUM(M.商品個数 * M.商品単価) AS 売上計,
 
[ e ] AS 原価計
 
FROM 売上 U
 
INNER JOIN 売上明細 M ON U.売上番号 = M.売上番号
 
INNER JOIN 商品 S ON M.商品番号 = S.商品番号
 
WHERE U.キャンペーン番号 = :キャンペーン番号
 
GROUP BY U.キャンペーン種別) UK
 
ON CK.キャンペーン種別 = UK.キャンペーン種別
 
図2 キャンペーン種別ごとの実績を集計するSQL文 ここまで
 
 
〔葉書を送る店舗エリアの見直し〕
 
 葉書を送る対象となる店舗エリアを、葉書キャンペーンによる会員の購入実績を基に見直すことを考える。対象の店舗における過去1年間に葉書キャンペーンで購入した会員の郵便番号ごとの売上実績数を、売上実績数の降順に出力するSQL文を図3に示す。ここで、❝:店舗番号❞は指定した店舗番号を、❝:一年前年月日❞は現在から1年前の年月日を表す埋込み変数である。


 
 

2025年5月2日 (金) 00:23時点における版

AP 過去問題 午後に戻る。

AP過去問_令和7年度春期_午後_問5_ネットワークの同じ回の前の問題へ移動。

AP過去問_令和7年度春期_午後_問7_組込みシステム開発の同じ回の次の問題へ移動。

AP過去問_令和6年度秋期_午後_問6_データベースの前の回の同じカテゴリの問題へ移動。

令和7年度春期 午後 問6 データベース(AIプロンプト向け)

■販売管理システムの構築に関する次の記述を読んで、設問に答えよ。


 H社は、全国の店舗及びインターネットで釣り具の販売を行っている。これまで販売促進のためにキャンペーンを定期的に実施してきたが、売上に全く結びつかないものもあった。そこで、キャンペーンの機能を強化し、さらにその効率を上げるために、既存の販売管理システムを改修した新しい販売管理システム(以下、新システムという)を構築することになった。


〔キャンペーンの概要〕

 キャンペーンとは、2週間~3か月間の定められた期間、幾つかの商品に安い売価を設定することで、新規会員の獲得や、他の商品もー緒に購入してもらうことによる売上の向上を目指す活動である。新システムで提供するキャンペーンを広報する手段は4種類あり、種別と呼ばれる英字1字で分類される。新システムで提供するキャンペーン種別について、表1に示す。


<div><div class="table-container"><div class="table-header"><span class="table-title">表1 新システムで提供するキャンペーン種別</span><span class="table-unit"></span></div>

<table border="0" width="100%" style="border-collapse: collapse;border-style: solid">

<tr>

  <td align="center" style="border: 2px solid; width: 5em;">種別</td>

  <td align="center" style="border: 2px solid;">種別名</td>

  <td align="center" style="border: 2px solid;">概要</td>

</tr>

<tr>

  <td align="center" style="border: 2px solid;">H</td>

  <td align="center" style="border: 2px solid;">葉書</td>

  <td align="center" style="border: 2px solid;">キャンペーンについて、特定の会員に葉書で案内する。全国の店舗及びインターネットでの販売が対象の場合、直近1年以内に購入した実績がある会員に案内する。特定の店舗が対象の場合、店舗ごとに決められた範囲(以下、店舗エリアという)に会員に案内する。店舗エリアは、その店舗に来客が見込まれる会員の居住範囲を複数の郵便番号で定めた範囲として定義する。店舗エリアの範囲は、最初に対象店舗の5km以内の地域に該当する郵便番号を登録し、定期的に見直す。</td>

</tr>

<tr>

  <td align="center" style="border: 2px solid;">E</td>

  <td align="center" style="border: 2px solid;">電子メール</td>

  <td align="center" style="border: 2px solid;">キャンペーンについて、全ての会員に電子メールで案内する。案内の内容は、会員の住所や購入実績に応じてカスタマイズする。</td>

</tr>


<tr>

  <td align="center" style="border: 2px solid;">B</td>

  <td align="center" style="border: 2px solid;">バナー広告</td>

  <td align="center" style="border: 2px solid;">釣り情報のWebサイトやソーシャルメディアにバナー広告を表示して、キャンペーンをアピールする。</td>

</tr>

<tr>

  <td align="center" style="border: 2px solid;">L</td>

  <td align="center" style="border: 2px solid;">リスティング広告(検索連動型広告)</td>

  <td align="center" style="border: 2px solid;">Webサイトの検索エンジンにおいて、釣り関連のキーワードを入力した際、検索結果にURLリンク付きのテキストを表示して、キャンペーンをアピールする。</td>

</tr>

</table>

</div>

</div>


 各キャンペーンには、目標となる複数の指標と予算を設定し、その実施を複数回に分けて行うことがある。その予算を各種別に配賦する割合を変えることによって目標達成率を上げる工夫が求められる。

 バナー広告とリスティング広告のキャンペーン(以下、Webキャンペーンという)は、キャンペーン単位で広告内容と予算金額を設定してから、Webマーケディングを運営するT社に実施の詳細を委託する。T社からは、広告内容として設定した広告表示キーワードごとに、その広告費用や表示回数、クリック数などの実績を週次で集計したレポートが送付される。

 新システムのE-R図(抜粋)を図1に示す。なお、新システムは、E-R図のエンティティ名を表名にし、属性名を列名にして、適切なデータ型で表定義した関係データベースによって、データを管理する。

 図1 新システムのE-R図(抜粋)ここから

注記 属性名の実線の下線<u> </u>は主キー、破線の下線<span style="text-decoration: underline dashed;"> </span>は外部キーを示す。主キーの実線が付いている属性名には、外部キーの破線を付けない。

テーブル名=店舗エリア詳細

店舗エリア詳細テーブルの列名=<u>店舗エリア番号</u>

店舗エリア詳細テーブルの列名=[ a ]


店舗エリア詳細テーブルと店舗エリアテーブルの関係は多対1


テーブル名=店舗エリア

店舗エリアテーブルの列名=<u>店舗エリア番号</u>

店舗エリアテーブルの列名=店舗エリア名


店舗エリアテーブルと店舗テーブルの関係は1対1


テーブル名=店舗

店舗テーブルの列名=<u>店舗番号</u>

店舗テーブルの列名=<span style="text-decoration: underline dashed;">店舗エリア番号</span>

店舗テーブルの列名=店舗郵便番号

店舗テーブルの列名=店舗住所


テーブル名=会員

会員テーブルの列名=<u>会員番号</u>

会員テーブルの列名=会員郵便番号

会員テーブルの列名=会員住所

会員テーブルの列名=会員メールアドレス


会員テーブルと売上テーブルの関係は1対多


テーブル名=売上

売上テーブルの列名=<u>売上番号</u>

売上テーブルの列名=<span style="text-decoration: underline dashed;">店舗番号</span>

売上テーブルの列名=売上年月日

売上テーブルの列名=<span style="text-decoration: underline dashed;">会員番号</span>

売上テーブルの列名=<span style="text-decoration: underline dashed;">キャンペーン番号</span>

売上テーブルの列名=キャンペーン種別


店舗テーブルと売上テーブルの関係は1対多

売上テーブルと売上明細テーブルの関係は1対多


テーブル名=売上明細

売上明細テーブルの列名=<u>売上番号</u>

売上明細テーブルの列名=<u>売上明細番号</u>

売上明細テーブルの列名=<span style="text-decoration: underline dashed;">商品番号</span>

売上明細テーブルの列名=商品個数

売上明細テーブルの列名=商品単価


キャンペーンテーブルと売上テーブルの関係は1対多


テーブル名=キャンペーン

キャンペーンテーブルの列名=<u>キャンペーン番号</u>

キャンペーンテーブルの列名=キャンペーン名

キャンペーンテーブルの列名=目標会員獲得数

キャンペーンテーブルの列名=目標売上向上金額

キャンペーンテーブルの列名=目標利益向上金額

キャンペーンテーブルの列名=予算金額

キャンペーンテーブルの列名=開始年月日

キャンペーンテーブルの列名=終了年月日


テーブル名=商品

商品テーブルの列名=<u>商品番号</u>

商品テーブルの列名=商品名

商品テーブルの列名=商品種別

商品テーブルの列名=商品標準売価

商品テーブルの列名=商品原価


商品テーブルと売上明細テーブルの関係は1対多

キャンペーンテーブルとキャンペーン実施テーブルの関係は1対多


テーブル名=キャンペーン実施

キャンペーン実施テーブルの列名=<u>キャンペーン番号</u>

キャンペーン実施テーブルの列名=<u>キャンペーン実施番号</u>

キャンペーン実施テーブルの列名=キャンペーン種別

キャンペーン実施テーブルの列名=キャンペーン実施金額

キャンペーン実施テーブルの列名=開始年月日

キャンペーン実施テーブルの列名=終了年月日


キャンペーンテーブルとキャンペーン商品テーブルの関係は1対多


テーブル名=キャンペーン商品

キャンペーン商品テーブルの列名=<u>キャンペーン番号</u>

キャンペーン商品テーブルの列名=<u>キャンペーン商品番号</u>

キャンペーン商品テーブルの列名=キャンペーン商品売価


商品テーブルとキャンペーン商品テーブルの関係は[ b ]

 図1 新システムのE-R図(抜粋)ここまで


〔キャンペーン種別ごとの実績の集計〕

新しいキャンペーンを計画するために、指定したキャンペーンについて、キャンペーン種別ごとの実績として、売上、原価、粗利、実施金額を集計するSQL文を図2に示す。ここで、❝:キャンペーン番号❞は指定したキャンペーン番号を表す埋込み変数である。なお、関数COALESCE(A, B)は、AがNULLでないときはAを、AがNULLのときはBを返す。


図2 キャンペーン種別ごとの実績を集計するSQL文 ここから

SELECT CK.キャンペーン種別, COALESCE(UK.売上計, 0) AS 売上計,

COALESCE(UK.原価計, 0) AS 原価計,

COALESCE(UK.売上計, 0) - COALESCE(UK.原価計, 0) AS 粗利計,

CK.キャンペーン実施金額計

[ c ]

(SELECT キャンペーン種別, SUM(キャンペーン実施金額) AS キャンペーン実施金額計

FROM キャンペーン実施

WHERE キャンペーン番号 = :キャンペーン番号

GROUP BY キャンペーン種別) CK

[ d ]

(SELECT U.キャンペーン種別, SUM(M.商品個数 * M.商品単価) AS 売上計,

[ e ] AS 原価計

FROM 売上 U

INNER JOIN 売上明細 M ON U.売上番号 = M.売上番号

INNER JOIN 商品 S ON M.商品番号 = S.商品番号

WHERE U.キャンペーン番号 = :キャンペーン番号

GROUP BY U.キャンペーン種別) UK

ON CK.キャンペーン種別 = UK.キャンペーン種別

図2 キャンペーン種別ごとの実績を集計するSQL文 ここまで


〔葉書を送る店舗エリアの見直し〕

 葉書を送る対象となる店舗エリアを、葉書キャンペーンによる会員の購入実績を基に見直すことを考える。対象の店舗における過去1年間に葉書キャンペーンで購入した会員の郵便番号ごとの売上実績数を、売上実績数の降順に出力するSQL文を図3に示す。ここで、❝:店舗番号❞は指定した店舗番号を、❝:一年前年月日❞は現在から1年前の年月日を表す埋込み変数である。

 

令和7年度春期 午後 問6 データベース(問題原文)

 

回答・解説

 

AP過去問_令和7年度春期_午後_問5_ネットワークの同じ回の前の問題へ移動。

AP過去問_令和7年度春期_午後_問7_組込みシステム開発の同じ回の次の問題へ移動。

AP過去問_令和6年度秋期_午後_問6_データベースの前の回の同じカテゴリの問題へ移動。

AP 過去問題 午後に戻る。