スポンサーリンク

ITパスポート試験 平成30年度春期 [問81] 過去問解説

問題

問81

顧客名と住所,商品名と単価、顧客が注文した商品の個数と注文した日付を関係データベースで管理したい。正規化された表として、適切なものはどれか。ここで、下線は主キーを表し、顧客名や商品名には、それぞれ同一のものがあるとする。

[出典:ITパスポート試験 平成30年度春期 問81]

正解

正解は「」です。

解説

 正解は選択肢アです。この問題は、関係データベースにおける「正規化」の考え方に基づいた適切なテーブル設計を問うています。正規化とは、データの重複(冗長性)をなくし、データの整合性を保つための手法です。選択肢アの設計では、「顧客」「商品」「注文」の3つのテーブルに分かれており、それぞれが独立した情報を持っています。 具体的には、

  • 「顧客」テーブルは顧客自身の情報(顧客番号、顧客名、住所)のみを持ち、顧客番号が主キーです。
  • 「商品」テーブルは商品自身の情報(商品番号、商品名、単価)のみを持ち、商品番号が主キーです。
  • 「注文」テーブルは、どの顧客がどの商品をいつ、いくつ注文したかという情報(注文番号、顧客番号、商品番号、個数、日付)を持ちます。

 ここで、顧客番号と商品番号はそれぞれ「顧客」テーブルと「商品」テーブルを参照する外部キーとして機能しています。 このようにテーブルを分割することで、例えばある顧客の住所が変更になった場合でも、「顧客」テーブルの該当レコードを1箇所修正するだけで済み、データの更新が容易になります。

 また、同じ商品が複数回注文されても、商品の詳細情報は「商品」テーブルに一度だけ保存されるため、データの重複を防ぐことができます。これは正規化の最も基本的な形であり、データベースの効率的な運用に欠かせない設計です。

イ(顧客、商品、注文のテーブル構成で、注文テーブルが顧客名と商品名を持つ。):
 「注文」テーブルに「顧客名」や「商品名」が含まれていると、同じ顧客や商品が複数回注文されるたびに顧客名や商品名が重複して保存されてしまいます。これはデータの冗長性につながり、更新時の不整合の原因となるため、正規化の原則に反しています。
ウ(顧客テーブルに日付が含まれ、注文テーブルが単価と個数を持つ。):
 「顧客」テーブルに「日付」という情報が含まれるのは不適切です。顧客情報と日付は直接関連せず、注文情報に紐づくべきです。また、「注文」テーブルに「単価」が含まれていると、同じ商品でも注文ごとに単価が変わる可能性があり、商品自体の単価情報とは別に管理する必要があるため、これも正規化に反しています。
エ(商品テーブルに個数が含まれ、注文テーブルが顧客名と住所を持つ。):
 「商品」テーブルに「個数」が含まれるのは不適切です。個数は注文ごとに変動する情報であり、商品自体の属性ではありません。「注文」テーブルに「顧客名」や「住所」が含まれていると、同じくデータの冗長性が発生し、正規化に反します。

スポンサーリンク

難易度

 この問題は関係データベースの正規化に関する基本的な知識を問うもので、初心者にとっては少し難しいかもしれません。特に、テーブルの分割方法や主キー・外部キーの概念を理解していないと、どの選択肢が適切か判断しにくいでしょう。しかし、正規化の目的である「データの冗長性を排除し、整合性を保つ」という点を理解していれば、比較的正解にたどり着きやすくなります。繰り返し学習することで、概念をしっかり身につけることが重要です。

用語補足

関係データベース:
 データを表(テーブル)形式で管理するデータベースの一種です。例えば、エクセルのシートのように、行と列でデータを整理し、複数の表を関連付けて(関係を持たせて)情報を管理します。

正規化:
 データベースの設計において、データの重複(冗長性)をなくし、データの整合性を高めるための手法です。例えば、住所録で同じ人の情報が何箇所にも書かれていると、一つを修正するたびに全てを直す必要がありますが、正規化することで修正が一度で済むようになります。

主キー:
 データベースのテーブル内で、一つのレコード(行)を一意に識別するための項目(列)です。例えば、クラスの名簿で「出席番号」が主キーだとすると、同じ名前の人がいても出席番号で区別できます。

外部キー:
 あるテーブルのレコードが、他のテーブルのレコードと関連していることを示す項目です。例えば、注文テーブルに「顧客番号」という外部キーがあれば、その顧客番号を使って顧客テーブルから顧客の詳細情報(名前、住所など)を参照できます。

対策

 この問題を解くためには、関係データベースの基本的な概念、特に「正規化」の目的と、その手法を理解することが重要です。データの冗長性を排除し、更新・削除時の不整合を防ぐという正規化の考え方を身につけましょう。また、主キーと外部キーの役割を正確に把握し、どの情報がどのテーブルに属すべきかを判断できるように練習することがポイントです。過去問題を通して、具体的なテーブル設計の例を多く見て、パターンを掴むように学習すると良いでしょう。


タイトルとURLをコピーしました