問題
問87
売上伝票のデータを関係データベースの表で管理することを考える。売上伝票の表を設計するときに、表を構成するフィールドの関連性を分析し、データの重複及び不整合が発生しないように、複数の表に分ける作業はどれか。
- 結合
- 射影
- 正規化
- 排他制御
[出典:ITパスポート試験 令和元年度 問87]
スポンサーリンク
正解
正解は「ウ」です。
解説
この問題は、関係データベースにおける「正規化」の概念とその目的を問うものです。
正規化とは、データベース設計時に「データの重複(冗長)」や「不整合(矛盾)」を防ぐために、データの構造を複数の表(テーブル)に分割して整理するプロセスのことです。これにより、データの一貫性が保たれ、更新時の矛盾を回避することができます。
売上伝票のような構造では、顧客情報、商品情報、販売情報などが混在していると、同じ顧客情報が複数行に重複することがあります。このような状態を防ぐために、顧客情報・商品情報などをそれぞれの独立した表に分け、必要に応じて結合して利用する設計が求められます。
このように、表を分割して最適化する作業が「正規化」であり、本問における正しい答えです。
- ア(結合):
結合は複数の表を結びつけて一時的に情報を統合する操作であり、表を分割する設計手法ではありません。 - イ(射影):
射影は表から特定の列(フィールド)のみを取り出す操作であり、表設計の分割とは関係ありません。 - エ(排他制御):
排他制御は、複数のユーザによる同時更新による矛盾を防ぐための実行時制御であり、データの設計や構造には関与しません。
難易度
本問は、正規化という基本用語とその目的(重複や不整合の防止)を理解していれば、比較的容易に解ける問題です。選択肢の中で設計段階に関わるものが「正規化」しかないことからも、消去法でも正答にたどり着けます。難易度は「やや易しい」です。
スポンサーリンク
用語補足
正規化:
データの重複や矛盾を防ぐために、テーブルを分割して構造を最適化するデータベース設計手法です。第一正規形、第二正規形などの段階があります。
結合:
複数の表に分割されたデータを、共通の項目(キー)でつなぎ合わせて一時的に統合する操作です(JOIN句などで利用されます)。
排他制御:
複数ユーザが同時に同じデータにアクセス・更新しないようにする仕組みで、ロック機構などで実現されます。
対策
データベースの設計に関する問題では、「正規化」「結合」「射影」「選択」などの基本用語を正確に区別して理解しておくことが重要です。特に、設計段階と実行時の処理の違いを整理すると混乱しにくくなります。