中小企業診断士 過去問
平成27年度(2015年)
問167 (経営情報システム 問7)

このページは閲覧用ページです。
履歴を残すには、 「新しく出題する(ここをクリック)」 をご利用ください。

問題

中小企業診断士試験 平成27年度(2015年) 問167(経営情報システム 問7) (訂正依頼・報告はこちら) (新しいタブで開く)

RDBの設計においては、利用するマスタファイルやトランザクションファイルのテーブル定義が行われる。
ある業務で利用しているRDBでは、以下のようなマスタテーブルやトランザクションテーブルが定義されている。各テーブルが正規化されている場合、以下の空欄A〜Cに入る項目の組み合わせとして、最も適切なものを下記から選べ。

横にスクロールして続きを読む(本文にフォーカスして左右キー)。

問題文の画像
  • A:顧客住所    B:仕入先コード  C:受注日付
  • A:顧客電話番号  B:仕入先住所   C:販売金額
  • A:顧客電話番号  B:在庫量     C:値引率
  • A:自社担当者名  B:仕入単価    C:仕入先住所

正解!素晴らしいです

残念...

この過去問の解説 (3件)

01

正規化とは、関連の強いデータのみを1つのテーブルにまとめ、扱いやすくすることです。
Aは、どの選択肢も該当する可能性があります。
Bは、商品に関する項目のため、仕入先コードもしくは仕入れ単価である1か4が当てはまります。
Cは、受注に関する項目のため、1~3のいずれかとなります。
消去法で、1が正解となります。

参考になった数31

02

正解は、「A:顧客住所  B:仕入先コード  C:受注日付」です。

【基礎知識】

データベースの管理において、基本的に更新されても廃棄されることなく使い続けられるマスタデータと、取引等の逐次発生するトランザクションデータの2つに分けて管理することでデータ管理量を削減したり、更新を容易にできるようにします。

<例>

(マスタデータ)従業員 従業員コード 所属

(トランザクションデータ)従業員コード 始業時間 就業時間 時間外時間

また、データベースはシステムで効率的に処理できるよう、正規化という手順を踏んで整理を行います。

① 第1正規化

データベースは1行を1レコードとして扱います。

例えば同じ生産地のりんご、なし、ブドウがあった場合に生産地の列は長野県で1つになっており、生産物の列がりんご、なし、ブドウと別れていた場合には1行1レコードになっていませんので、長野県を3つに分解します。

これを第1正規化と言います。

② 第2正規化

以下のようなテーブルを考えます。

仕入取引番号 仕入先 仕入先住所 仕入先代表者 商品 商品単価 入荷日 入荷数

仕入先が決まると、仕入先住所、仕入先代表者が決まります。この時、仕入先を主キーと呼びます。これらのデータは別のテーブルに切り分けて管理すると、仕入先代表者が変更になった際に、上記テーブルだけだとすべてを変更する必要がありますが、切り分けておくと、いわゆる仕入先マスタの変更で済みます。

仕入状況については、トランザクションデータとして整理することができます。

以上の整理から最初のテーブルは、

(仕入先マスタ)仕入先 仕入先住所 仕入先代表者

(トランザクションデータ) 仕入取引番号 仕入先 商品 商品単価 入荷数 入荷日

に切り分けることができます。

このような整理を第2正規化と言います。

③ 第3正規化

トランザクションデータは仕入取引番号が決まれば、他の項目も決まりますが、その中で商品が決まると商品単価が決まるという、主キー(ここでは仕入取引番号)以外のキーに従属する関係があります。これを切り出すことを第3正規化と言います。

最終的には、当初のデータベースは、

(仕入先マスタ)仕入先 仕入先住所 仕入先代表者

(トランザクションデータ) 仕入取引番号 仕入先 商品 入荷数 入荷日

(商品マスタ) 商品 商品単価

で正規化することができました。

【選択肢評価】

A 顧客マスタですので、顧客に関する情報が含まれますが、すべての選択肢が当てはまります。

B 商品マスタになりますので、仕入先住所などは仕入先マスタで持つべきです。また、在庫量は常に動きますのでマスタよりもトランザクションデータとして持った方がデータベースとしては効率的です。

C 仕入先住所はBと同じ考えで、仕入先マスタで持つべきです。

参考になった数22

03

最も適切な組み合わせは「A:顧客住所 B:仕入先コード C:受注日付」です。

RDB(リレーショナルデータベース)では、データを用途に応じたテーブルに分けて管理します。

このとき、データの重複を減らし、更新や管理をしやすくすることを正規化といいます。

この問題では、顧客マスタ・商品マスタ・仕入先マスタ・受注トランザクションの役割を理解することが重要です。

空欄A〜Cの解説

A:顧客住所

顧客マスタは、顧客に関する基本情報を管理するテーブルです。

例えば、顧客コード、顧客名、顧客住所、電話番号などを登録します。

顧客住所は顧客ごとの基本情報であるため、顧客マスタに保存するのが適切です。

B:仕入先コード

商品マスタは、商品に関する基本情報を管理するテーブルです。

例えば、商品コード、商品名、仕入先コードなどを登録します。

仕入先コードは、その商品の仕入先を識別するための情報です。

仕入先の名前や住所などの詳しい情報は仕入先マスタで管理し、商品マスタには仕入先コードを登録することで、情報の重複を減らせます。

C:受注日付

受注トランザクションは、顧客から注文を受けたときの取引情報を管理するテーブルです。

例えば、顧客コード、商品コード、受注日付、受注数量などを記録します。

受注日付は、注文を受けるたびに発生する情報であるため、受注トランザクションに保存するのが適切です。

選択肢1. A:顧客住所    B:仕入先コード  C:受注日付

この組み合わせは適切です。

顧客住所は顧客マスタ、仕入先コードは商品マスタ、受注日付は受注トランザクションに登録する情報です。

仕入先の詳しい情報は仕入先マスタで管理し、商品マスタから仕入先コードを使って参照できます。

それぞれのテーブルの役割に合った情報が選ばれています。

まとめ

RDBでは、データの種類に応じてテーブルを分けることで、情報を効率よく管理できます。

顧客マスタ:顧客コード、顧客名、顧客住所、電話番号などを管理します。

商品マスタ:商品コード、商品名、仕入先コードなどを管理します。

仕入先マスタ:仕入先コード、仕入先名、仕入先住所などを管理します。

受注トランザクション:顧客コード、商品コード、受注日付、受注数量などを管理します。

また、マスタは基本情報を管理するテーブル、トランザクションは取引などの発生情報を管理するテーブルという違いがあります。

正規化では、同じ情報を複数のテーブルに必要以上に保存せず、コードなどを使って関連付けることが重要です。

この考え方を理解しておくと、各テーブルにどの項目を登録すべきか判断しやすくなります。

参考になった数0

操作の確認にはJavaScriptと対応ブラウザが必要です。

出題を開始しますか?