基本情報技術者試験の過去問と解説
[TOP] [午前分野別] [午後分野別] [キーワード索引] [令和元年秋午前] [令和元年秋午後]

平成24年 秋期 基本情報技術者 午後 問02
問02   5問選択

 購買情報を管理する関係データベースの設計及び運用に関する次の記述を読んで, 設問1〜4に答えよ。

 B社では,購買業務の効率化を目的に,社内組織を変更して,これまで X 事業部 と Y 事業部に個別に存在していた購買部門を統合した。

 これに伴い,それぞれの事業部が関係データベースで個別に管理していた購買データの統合した。 統合後の表構成は図1のとおりであり,統合前から X 事業部と Y 事業部ともに同じ表構成で管理していた。 下線付きの項目は主キーを表す。


      図1 表構成と統合後のデータの格納例

設問1 データを統合したときに実施した“名寄せ”と呼ばれる作業に関する次の 記述中の に入れる適切な答えを,解答群の中から選べ。

 同じ情報が,表現が異なるデータとして社内に複数存在する場合がある。それぞれが, 関連性のないデータベースで個別に管理されているのであれば, データの重複といった問題は発生しない。しかし,データベースの統合が必要になった場合, 単純にデータを寄せ集めると,同じ情報を表すデータであるにもかかわらず別のデータとして 格納されてしまい, と いった問題が発生する。

 このような場合,同じ情報を表すデータを一つのデータにまとめる“名寄せ”と 呼ばれる作業が必要となる。

 B社では,名寄せを次の手順で実施した。

(1) 統合対象の表のデータを見比べて,表現は異なっていても同じ情報を表しているデータかどうかを 識別するのに最も適した項目を特定する。

(2) (1)で特定した項目で突合せを行い,同じ情報を表すデータを一つのデータにまとめる。

 それぞれの事業部の取引先表から (1) の作業のために抽出した,名寄せが必要となる典型的なデータを, 図2及び図3に示す。これらのデータから,突合せを行う項目は が 適切と判断できる。


     図2 X 事業部の取引先表から抽出したデータ

     図3 Y 事業部の取引先表から抽出したデータ
a,b に関する解答群

ア 更新すべきデータが更新されない      イ 削除すべきデータが残る

ウ 情報が漏えいする             エ 挿入したはずのデータが消える

オ トランザクションが遅延する

c に関する解答群

ア 社名        イ 所在地

ウ 電話番号      エ 取引先コード

解答 a,b ←クリックすると正解が表示されます

解答 c ←クリックすると正解が表示されます

基本情報技術者試験


設問2 統合された購買部門で分析したところ,同じ商品であっても, 取引先によって購入単価が異なることが分かった。商品名“エコ鉛筆黒”について, 取引先コードと平均購入単価を,金額が安い順に表示する。 次の SQL 文の に入れる正しい答えを, 解答群の中から選べ。ここで,商品名は一意に管理できているものとする。

SELECT 発注表.取引先コード,
    SUM(明細表.購入額) / SUM(明細表.数量) AS 平均購入単価
  FROM 発注表, 商品表, 明細表
  WHERE
  GROUP BY 発注表.取引先コード
  ORDER BY 平均購入単価

解答群

ア 発注表.発注コード = 明細表.発注コード AND
  商品表.商品コード = 明細表.商品コード AND
  商品表.商品名 = 'エコ鉛筆黒'

イ 発注表.発注コード = 明細表.発注コード AND
  明細表.購入額 = (SELECT AVG(商品表.定価) FROM 商品表
           WHERE 商品表.商品名 = 'エコ鉛筆黒')

ウ 発注表.発注コード = 明細表.発注コード AND
  明細表.購入額 = (SELECT SUM(商品表.定価) FROM 商品表
           WHERE 商品表.商品名 = 'エコ鉛筆黒')

エ 発注表.発注コード = 明細表.発注コード AND
  明細表.商品コード = (SELECT COUNT(*) FROM 商品表
             WHERE 商品表.商品名 = 'エコ鉛筆黒')

解答 d ←クリックすると正解が表示されます

基本情報技術者試験


設問3 より安く商品を購入するために,購買部門の発注担当者は, 商品の発注時に割引率を確認してから発注先を選定することにした。 発注先選定時の検索処理に関する次の記述中の に 入れる適切な答えを,解答群の中から選べ。

 商品コードごとの平均割引率は, を 結合すると求められる。加えて,取引先コードごとに集計したり,“以前は高かったが, 最近は安くなった”といった傾向を把握したりしたい場合は, 更に を結合することで求められる。

解答群

ア 商品表      イ 取引先表      ウ 発注表

エ 品目表      オ 部表        カ 明細表

解答 e,f ←クリックすると正解が表示されます

解答 g ←クリックすると正解が表示されます

基本情報技術者試験


設問4 複数の取引先から文具を購入していたが,品ぞろえは同じだったので, 1社に一括発注することによって割引率を上げてもらうよう交渉することにした。 文具について 10 回以上の発注実績がある取引先を対象に,購入金額が多い順に 取引先コードと金額を表示する。次の SQL 文 に 入れる正しい答えを,解答群の中から選べ。

SELECT 発注表.取引先コード, SUM(明細表.購入額) AS 合計購入金額
  FROM 発注表, 明細表, 商品表,品目表
  WHERE 発注表.発注コード = 明細表.発注コード AND
     明細表.商品コード = 商品表.商品コード AND
     商品表.品目コード = 品目表.品目コード AND
     品目表.品目名 = '文具'
  GROUP BY 発注表.取引先コード
  
  ORDER BY 合計購入金額 DESC

解答群

ア HAVING COUNT(*) >= 10

イ HAVING COUNT(DISTINCT 発注表.発注コード) >= 10

ウ HAVING COUNT(発注表.発注コード) >= 10

エ HAVING MAX(明細表.購入額) >= 10

オ HAVING MAX(明細表.数量) >= 10

カ HAVING SUM(明細表.購入額) >= 10

キ HAVING SUM(明細表.数量) >= 10

解答 h ←クリックすると正解が表示されます


[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ]