応用情報技術者過去問題 令和6年秋期 午後問6
⇄問題文と設問を画面2分割で開く⇱問題PDF問6 データベース
トレーディングカードの個人間売買サイトの構築に関する次の記述を読んで,設問に答えよ。
S社は,トレーディングカード販売業のチェーンを営む中堅企業である。トレーディングカードを個人から買い取り,販売する事業を営んでいる。トレーディングカードの個人間の売買が盛んな市場環境を受け,個人間の売買を安心かつ手軽に行える取引プラットフォームをサービスとして提供して,安定的な手数料収入を得る新規事業を立ち上げることにした。S社の情報システム部は新規事業の要となる取引プラットフォームのシステム(以下,本システムという)を新規で構築することになり,Tさんがデータベースの設計及び開発を担当することになった。
〔新規事業の業務要件の確認〕
Tさんは,まず,新規事業において実現する業務要件を確認した。新規事業の業務要件(抜粋)を表1に示す。〔概念データモデルの設計〕
Tさんは,表1の業務要件に基づいて,E-R図を用いて本システムの概念データモデルを設計した。本システムの概念データモデル(抜粋)を図1に示す。なお,カテゴリの階層構造は,自己参照の関連を用いて表現する。 本システムのデータベースでは,E-R図のエンティティ名を表名にし,属性名を列名にして,適切なデータ型で表定義した関係データベースによって,データを管理する。
〔SQLの作成〕
Tさんは,表1の項番2の業務要件を実現するための検索のSQL文を作成した。作成したSQL文を図2に示す。なお,":カテゴリID",":下限価格",":上限価格",":商品状態",":出品状況",":キーワード"は,該当の値を格納する埋込み変数である。また,最上位であるカテゴリの上位カテゴリIDにはNULLが設定されている。〔性能の検証と改善〕
Tさんがテストデータを用いて図2のSQL文の実行性能を検証したところ,実行を開始してから検索結果が得られるまでの処理時間が長く,実用的ではないことが判明した。
本システムでは出品される商品の数が膨大であり,利用者が図2のSQL文を頻繁に実行することが予想される。そこで,Tさんはキーワードでの検索が必要な商品名及び商品説明の列には全文検索エンジンを用いるとともに,その他の列に対しては適切なインデックスを設定し,性能上の懸念を解消することを検討した。
インデックスの方式には,B-treeインデックスを採用することにした。Tさんは,各表の表定義を確認し,インデックスを設定すべき列を検討した。出品表の表定義を表2に,カテゴリ表の表定義を表3に示す。
表2及び表3のデータ型欄は,データ型,長さ,精度,位取りを示す。PK欄は主キー制約,UK欄はUNIQUE制約,非NULL欄は非NULL制約の指定をするかどうかを示す。指定する場合にはYを,指定しない場合にはNが記入されている。ここで,主キーに対してはUNIQUE制約は指定せず,非NULL制約は指定するものとする。カーディナリティ欄は列に多数の異なる値をもつ場合には高を,少数の異なる値をもつ場合には低を記入する。そして,高と低の中間の数の異なる値をもつ場合には中を記入する。データ分布欄は列に含まれる値の確率分布の仮定を示す。
Tさんは,①B-treeインデックスの特性を踏まえて,特定の値を指定したときに行数を表全体の5%以下に絞り込める列だけにインデックスを設定することにした。 Tさんは,必要なインデックスを設定後にテストデータを用いて図2のSQL文の実行性能を検証し,実用的な性能であることを確認した。ただし,表2及び表3のデー夕分布は新規事業立上げ前の時点における仮定でしかない。今後実際に運用する際にはデータ分布が仮定とは異なる場合があるので,定期的にインデックスを見直すことを申し送り事項の一つとして,本システムのデータベースの設計及び開発を完了した。
S社は,トレーディングカード販売業のチェーンを営む中堅企業である。トレーディングカードを個人から買い取り,販売する事業を営んでいる。トレーディングカードの個人間の売買が盛んな市場環境を受け,個人間の売買を安心かつ手軽に行える取引プラットフォームをサービスとして提供して,安定的な手数料収入を得る新規事業を立ち上げることにした。S社の情報システム部は新規事業の要となる取引プラットフォームのシステム(以下,本システムという)を新規で構築することになり,Tさんがデータベースの設計及び開発を担当することになった。
〔新規事業の業務要件の確認〕
Tさんは,まず,新規事業において実現する業務要件を確認した。新規事業の業務要件(抜粋)を表1に示す。〔概念データモデルの設計〕
Tさんは,表1の業務要件に基づいて,E-R図を用いて本システムの概念データモデルを設計した。本システムの概念データモデル(抜粋)を図1に示す。なお,カテゴリの階層構造は,自己参照の関連を用いて表現する。 本システムのデータベースでは,E-R図のエンティティ名を表名にし,属性名を列名にして,適切なデータ型で表定義した関係データベースによって,データを管理する。
〔SQLの作成〕
Tさんは,表1の項番2の業務要件を実現するための検索のSQL文を作成した。作成したSQL文を図2に示す。なお,":カテゴリID",":下限価格",":上限価格",":商品状態",":出品状況",":キーワード"は,該当の値を格納する埋込み変数である。また,最上位であるカテゴリの上位カテゴリIDにはNULLが設定されている。〔性能の検証と改善〕
Tさんがテストデータを用いて図2のSQL文の実行性能を検証したところ,実行を開始してから検索結果が得られるまでの処理時間が長く,実用的ではないことが判明した。
本システムでは出品される商品の数が膨大であり,利用者が図2のSQL文を頻繁に実行することが予想される。そこで,Tさんはキーワードでの検索が必要な商品名及び商品説明の列には全文検索エンジンを用いるとともに,その他の列に対しては適切なインデックスを設定し,性能上の懸念を解消することを検討した。
インデックスの方式には,B-treeインデックスを採用することにした。Tさんは,各表の表定義を確認し,インデックスを設定すべき列を検討した。出品表の表定義を表2に,カテゴリ表の表定義を表3に示す。
表2及び表3のデータ型欄は,データ型,長さ,精度,位取りを示す。PK欄は主キー制約,UK欄はUNIQUE制約,非NULL欄は非NULL制約の指定をするかどうかを示す。指定する場合にはYを,指定しない場合にはNが記入されている。ここで,主キーに対してはUNIQUE制約は指定せず,非NULL制約は指定するものとする。カーディナリティ欄は列に多数の異なる値をもつ場合には高を,少数の異なる値をもつ場合には低を記入する。そして,高と低の中間の数の異なる値をもつ場合には中を記入する。データ分布欄は列に含まれる値の確率分布の仮定を示す。
Tさんは,①B-treeインデックスの特性を踏まえて,特定の値を指定したときに行数を表全体の5%以下に絞り込める列だけにインデックスを設定することにした。 Tさんは,必要なインデックスを設定後にテストデータを用いて図2のSQL文の実行性能を検証し,実用的な性能であることを確認した。ただし,表2及び表3のデー夕分布は新規事業立上げ前の時点における仮定でしかない。今後実際に運用する際にはデータ分布が仮定とは異なる場合があるので,定期的にインデックスを見直すことを申し送り事項の一つとして,本システムのデータベースの設計及び開発を完了した。
設問1
図1中のa~dに入れる適切なエンティティ間の関連及び属性名を答え,概念データモデルを完成させよ。なお,エンティティ間の関連及び属性名の表記は,図1の凡例に倣うこと。
解答入力欄
- a:(図表で回答する問題のため解答入力欄はありません。)
- b:
- c:
- d:
解答例・解答の要点
- a:
- b:-
- c:追跡番号
- d:→
解説
この設問の解説はまだありません。
設問2
図2中のe~hに入れる適切な字句又は式を答えよ。
解答入力欄
- e:
- f:
- g:
- h:
解答例・解答の要点
- e:WITH RECURSIVE
- f:UNION ALL
- g:出品.カテゴリID = 指定カテゴリ.カテゴリID
- h:LIKE '%' || :キーワード || '%'
解説
この設問の解説はまだありません。
設問3
〔性能の検証と改善〕について答えよ。
- 本文中の下線①について,B-treeインデックスの特性として適切なものを解答群の中から三つ選び,記号で答えよ。
- 出品表及びカテゴリ表のそれぞれについて,表2及び表3を基に,B-treeインデックスを設定することで図2のSQL文の実行性能の高速化に寄与する列名を全て答えよ。なお,本システムで使用する関係データベースでは,主キーに対して自動的にインデックスが設定される。
解答群
- インデックスを設定した各列に対する条件をAND演算子で組み合わせた検索は高速化できるが,NOT演算子を用いた条件による検索は高速化できない。
- インデックスを設定した列に対して演算や型変換を行った上で検索条件に指定した場合,検索を高速化できる。
- インデックスを設定した列に含まれる値の分布に偏りがない場合,検素性能が安定する。
- カーディナリティが低い列にインデックスを設定すると,検索を高速化できる。
- 行数nの表において,特定の行を検索するときの計算量はO(log n)である。
- 行数nの表において,特定の行を挿入するときの計算量はO(n)である。
解答入力欄
- 出品表:
- カテゴリ表:
解答例・解答の要点
- ア,ウ,オ
- 出品表:カテゴリID,出品価格
- カテゴリ表:上位カテゴリID
解説
この設問の解説はまだありません。