スキップしてメイン コンテンツに移動

平成26年度 春期 データベーススペシャリスト試験 午後Ⅱ 問1 設問1 (2)

平成26年度 春期 データベーススペシャリスト試験 午後Ⅱ
http://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2014h26_1/2014h26h_db_pm2_qs.pdf

問1 データベースの物理設計に関する次の記述を読んで,設問1~3に答えよ。

設問1 〔データベースの物理設計〕の”テーブル構造の検討”について,(1),(2)に答えよ。

  (2) (1)を踏まえて,テーブルへの列の追加によって検索効率を改善するために,表10の案A,Bについて検討することにした。案Bの”検索効率が上がる理由”を20字以内で,”他の処理の変更内容”を50字以内で述べよ。


表10 テーブル構造変更案の検討(未完成)
変更内容
検索効率が上がる理由
他の処理の変更内容
A
”取引”テーブルに銘柄
コードを追加する。
手順2の検索を省略できるから。
取引登録に,手順2と同様の
検索で求めた銘柄コードを
”取引”テーブルに転記する
処理を追加する。
B
”取引”テーブルに大分
類の業種コードを追加する。





〔データベースの物理設計〕

 システム部は,テーブルと索引の設計と定義,データ所要量の見積り,データの配置について検討している。

1.テーブル構造の検討

 図2の関係スキーマを,そのままテーブルとして実装した場合の課題を検討した。その結果,業種別集計表作成の処理は,業種の大分類を求めるので,複数テーブルの結合処理に時間が掛るのではないかとの懸念が示された。そこで,複数テーブルの結合処理における検索条件列とテーブルの検索順序を,次のように整理した。

 手順1 検索条件の列として取引依頼年月日を指定し、”取引”テーブルを検索して,取引依頼年月日,取引株数,取引値段,注文番号を求める。その結果行ごとに,次の手順2~6を行う。

 手順2 検索条件の列として注文番号を指定し,”注文”テーブルを検索して,銘柄コードを求める。

 手順3 検索条件の列として  a  b  を指定し, c  テーブルを検索して  d  を求める。

 手順4 検索条件の列として  d  を指定し, e  テーブルを検索して  f  を求める。

 手順5   f  がNULLならば,手順3で求めた  d  を得る。
       f  がNULLでなければ,  f  を得る。

 手順6 手順5で得た値ごとに,”取引株数 × 取引値段”の値を累積する。


インプット情報を確認する。

テーブルは
⇒図2参照



 銘柄(銘柄コード,銘柄名,上場区分,売買単位,公開情報,市場コード

 銘柄詳細(銘柄コード有効開始年月日業種コード,…)

 業種(業種コード,業種名称,上位業種コード

 株価(銘柄コード株価年月日株価時分,始値,安値,高値,終値,出来高)

 注文(注文番号口座番号銘柄コード,注文年月日,注文時刻,注文状態,取引種別,
    注文株数,値段指定方法,執行条件,執行期限,指定値段)

 取引(取引番号注文番号,取引依頼年月日,取引成立年月日,取引株数,取引値段,
    取引状態,代金決済番号株式決済番号



図2 株式市取引管理システムの関係スキーマ(一部省略)のテーブル設計対象


各テーブルの属性に関する情報
⇒表1参照

表1 主な属性の意味と制約 の一部
属性名
意味と制約
有効開始年月日
銘柄詳細情報が有効になった年月日
業種コード
銘柄の業種を大分類,小分類の2階層で表すコード。
大分類だけの業種もあれば,小分類のある業種もある。
小分類には,大分類を表す上位業務コードが指定される。
関係”銘柄詳細”には,有効開始年月日時点の大分類又は
小分類いずれかの業種コードが必ず記録される。
上位業種コード
上位の大分類の業種コード。小分類の業種の場合にだけ指定される。 


業種別集計表作成に関する情報
⇒〔株式取引管理システムの主な処理〕の2.G社の社員が行う処理

 (2) 業種別集計表作成

   顧客に提供する情報の一つに,業種別集計表がある。業種別集計表は,作成時に指定した対象期間(開始年月日と終了年月日)内に,取引依頼年月日が含まれる取引について,”取引株数 × 取引値段”で求めた売買金額を,取引依頼年月日の株式発行企業の業務の大分類ごとに集計した帳票である。

⇒〔株式取引管理システムの主な処理〕の4.エンティティタイプと処理のCRUD
  主なエンティティタイプと処理のCRUDをまとめると,表3のとおりである。

表3 主なエンティティタイプと処理のCRUD
エンティティタイプ












銘柄照会


R

R

R



注文登録
R
R


R


CU


銘柄登録


R
R
CU
C



業種別集計表作成



R
R
R

R
R

株価更新






C



取引登録







R
CU

決済情報登録







R
R
CD
注記 C:追加,R:参照,U:更新,D:削除


午後問題の資料は大量なので,見落として勘違いしないように気をつけないといけない。

●取引テーブルに大分類の業種コードを追加した場合の「業種別集計表作成」の手順を
 見直してみる。

◎検索効率が上がる理由

 取引テーブルに大分類の業種コードを追加すると,その値で手順6が実行できる。
 ということは,手順2~5の検索処理が不要ということになる。

◎他の処理の変更内容

 CRUDを見ると,取引テーブルの追加,更新は「取引登録」処理のみである。
 ここで,大分類の業種コードを設定するためには,それを求めていた
 手順2~5を処理することになる。


【回答】

案b 検索効率が上がる理由

手順2~5の検索を省略できるから。(17文字)


案b 他の処理の変更内容

取引登録に,手順2~5と同様に大分類の業種コードを求め,取引テーブルに転記する処理を追加する。(46文字)

コメント

このブログの人気の投稿

平成26年度 春期 データベーススペシャリスト試験 午後Ⅰ 問2 設問1 (1)

平成26年度 春期 データベーススペシャリスト試験 午後Ⅰ http://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2014h26_1/2014h26h_db_pm1_qs.pdf 問2  設問1 会議室予約システムについて,(1)~(4)に答えよ。  (1) 図2中のSQL文の  a  ~  c  に入れる適切な字句を答えよ。 〔会議室予約システムのテーブル〕  会議室予約システムの主要なテーブルのテーブル構造,概要は,図1,表1のとおりである。  社員( 社員番号 ,社員氏名,…)  会議室( 会議室番号 ,収容可能人数,階数,プロジェクタ設置有無,TV会議設備設置有無,…)  会議室予約( 会議室番号 , 予約日 , 予約開始時刻 ,予約終了時刻, 社員番号 ) 図1 主要なテーブルのテーブル構造(一部省略) 表1 主要なテーブルの概要 テーブル名 概要 社員 ・社員の情報を管理する。社員番号で社員を一意に識別する。 会議室 ・会議室の情報を管理する。会議室番号で会議室を一意に識別する。 ・会議室ことに収容可能な人数,階数,設備の設置有無が設定されている。 会議室予約 ・会議室の予約状況を管理する。会議室番号,予約日,予約開始時刻で 会議室予約を一意に識別する。 ・予約開始時刻及び予約終了時刻の分の指定は00分または30分とする。 〔会議室予約システムでの検索〕  会議室予約システムで空き会議室の検索結果一覧を表示する際に必要な情報を得るために実行するSQL文の例を図2に示す。  なお,図2中のホスト変数のhv1は予約希望日,hv2は予約希望開始時刻,hv3は予約希望終了時刻を表す。 SELECT * FROM 会議室 X WHERE  a  (SELECT * FROM 会議室予約 Y WHERE X.会議室番号 = Y.会議室番号 AND Y.予約日 = :hv1 AND Y.予約開始時刻  b  :hv3 AND Y.予約終了時刻  c  :hv2) 図2 検索で実行するSQL文の例 図2のSQLから、判明できることは、 対象となる...

平成26年度 春期 データベーススペシャリスト試験 午後Ⅰ 問3 設問3 (1)

平成26年度 春期 データベーススペシャリスト試験 午後Ⅰ http://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2014h26_1/2014h26h_db_pm1_qs.pdf 問3 テーブルの設計及びSQLの設計に関する次の記述を読んで,設問1~3に答えよ。  設問3 〔注文トランザクションの設計〕について,(1),(2)に答えよ。  (1) 次のTR1~TR4のうち,いずれか二つの組合せのトランザクションを同時に実行したとき,デッドロックが起こるおそれがある。次の表中の  ウ  ~  カ   にデッドロックが起きない組合わせには○を,起きるおそれがある組合わせには×を記入せよ。   TR1:単品商品2個を注文する。   TR2:単品商品1個とセット商品1個を注文する。   TR3:セット商品1個を注文する。   TR4:セット商品2個を注文する。 \ TR1 TR2 TR3 TR4 TR1 ○  ウ   エ  × TR2 \ × × × TR3 \ \  オ   カ  TR4 \ \ \ × 問題の対象となっているのは、以下の内容である。 〔注文トランザクションの設計〕  Fさんは,注文トランザクションについて,次のように設計した。 (1) 注文単位を一つのトランザクションで処理し,最後にCOMMIT文を発行する。 (2) 注文に基づいて,”注文”テーブル及び”注文明細”テーブルに行を挿入する。 (3) 商品については,商品一覧画面に表示された順番に”在庫”テーブルの  引当可能数を調べ,引当可能ならば注文数を減算した値で引当可能数を更新する。 (4) セット商品が在庫不足のとき,”在庫”テーブルの不足セット商品数に不足数を  加算する。”セット商品構成”テーブルから,主キー順に当該セット商品を構成する  単品商品の構成数を調べ,必要数を計算する。単品商品については,”在庫”  テーブルの引当可能数には必要数を減算した値で、不足セット商品用引当済には  必要数を加算した値で更新する。 (5) トランザクションのISOLATIONレベルは,READ COMMITTEDとする。 検討す...

平成26年度 春期 データベーススペシャリスト試験 午後Ⅰ 問3 設問3 (2)

平成26年度 春期 データベーススペシャリスト試験 午後Ⅰ http://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2014h26_1/2014h26h_db_pm1_qs.pdf 問3 テーブルの設計及びSQLの設計に関する次の記述を読んで,設問1~3に答えよ。  設問3 〔注文トランザクションの設計〕について,(1),(2)に答えよ。  (2) (1)で起きるおそれがあるとしたデッドロックを防ぐためには,一つのトランザクションの中で”在庫”テーブルの行をどの列の順番で更新すればよいか。列名を答えよ。  案1の”商品”テーブルの構造を図2に、案2の”単品商品”テーブル及び”セット商品” テーブルの構造を図3に示す。  商品( 商品番号 ,商品名,商品説明,写真,販売単価,表示順,単品区分,     社内原価, 化粧箱番号 ,詰合せ日数) 図2 案1の ”商品”テーブルの構造  単品商品( 商品番号 ,商品名,商品説明,写真,販売単価,表示順,社内原価)  セット商品( 商品番号 ,商品名,商品説明,写真,販売単価,表示順,         化粧箱番号 ,詰合せ日数) 図3 案2の ”単品商品”テーブル及び”セット商品”テーブルの構造  Fさんは,関係”在庫”については,一つの”在庫”テーブルを設計した。”在庫”テーブルと, その他の主なテーブルの構造を,図4に示す。図4のテーブルは,全て案1,2に共通する。 また,主な列の意味を表1に示す。  セット商品構成( セット商品番号 , 単品商品番号 ,構成数)  在庫( 商品番号 ,引当可能数,不足セット商品数,不足セット商品用引当済数)  注文( 注文番号 ,注文日,お届け予定日,住所,顧客名,電話番号,支払情報)  注文明細( 注文番号 , 注文明細番号 , 商品番号 ,販売単価,注文数) 図4 両案に共通の主な テーブルの構造 注文の主キーである商品番号は、商品を示しており、その列には、表示順が存在する。 この順に全てのトランザクションがアクセスするなら、逆順にアクセスすることがなくなり、 デッドロックが発生しない。 ...