データベース
基本情報技術者試験 科目A免除 修了試験 20191208 実施分 問26
次のような繰返し構造をもったデータを,第3正規形に正規化したものはどれか。ここで,下線部分は主キーを表す。また,単位と単価は商品コードごとに決まるものとする。
繰返し構造のデータ: 伝票番号(下線)|日付|顧客コード|顧客名|住所|#1|#2|#3|…|#n。#1〜#n は「繰返し」で,各 #1〜#n は 商品コード|単位|数量|単価。
- ア [図] 表1: 伝票番号(下線)|顧客コード/表2: 顧客コード(下線)|顧客名|住所/表3: 伝票番号(下線)|日付(下線)|商品コード(下線)|数量/表4: 商品コード(下線)|単位|単価
- イ [図] 表1: 伝票番号(下線)|日付|顧客コード/表2: 顧客コード(下線)|顧客名|住所/表3: 伝票番号(下線)|商品コード(下線)|数量/表4: 商品コード(下線)|単位|単価
- ウ [図] 表1: 伝票番号(下線)|日付|顧客コード|顧客名|住所/表2: 伝票番号(下線)|商品コード(下線)|数量/表3: 商品コード(下線)|単位|単価
- エ [図] 表1: 伝票番号(下線)|日付|顧客コード|顧客名|住所/表2: 伝票番号(下線)|商品コード(下線)|単位|数量|単価
出典:基本情報技術者試験 科目A免除 修了試験 20191208 実施分 問26
答えと解説を見る
正解:イ
覚える知識
関数従属性に基づく第3正規形への分解
第3正規形は繰返しを除き、部分関数従属と推移的関数従属を取り除いた形である。
この問題で必要なこと
繰返し項目を別表(伝票番号+商品コード→数量)に分け、顧客コード→顧客名・住所、商品コード→単位・単価を分離する。日付は伝票番号に従属するので伝票表に残す。
ひっかけ
日付を明細側の主キーに含めたり、顧客名を伝票表に残す不完全な分解。
この知識の出題:本試験系 6 回・免除試験 32 回(公開問題での観測値)