データベース

基本情報技術者試験 科目A免除 修了試験 20140126 実施分 問30

次のような繰返し構造をもったデータを,第 3 正規形に正規化したものはどれか。ここで,下線部分は主キーを表す。また,単位と単価は商品コードごとに決まるものとする。
元データ(繰返し構造): [伝票番号(主キー)| 日付 | 顧客コード | 顧客名 | 住所 | #1 | #2 | #3 | … | #n]。#1〜#n は繰返しで,各 #i = [商品コード | 単位 | 数量 | 単価]。
  • ア [図] (伝票番号_, 顧客コード) / (顧客コード_, 顧客名, 住所) / (伝票番号_, 日付_, 商品コード_, 数量) / (商品コード_, 単位, 単価) ※下線は主キー
  • イ [図] (伝票番号_, 日付, 顧客コード) / (顧客コード_, 顧客名, 住所) / (伝票番号_, 商品コード_, 数量) / (商品コード_, 単位, 単価) ※下線は主キー
  • ウ [図] (伝票番号_, 日付, 顧客コード, 顧客名, 住所) / (伝票番号_, 商品コード_, 数量) / (商品コード_, 単位, 単価) ※下線は主キー
  • エ [図] (伝票番号_, 日付, 顧客コード, 顧客名, 住所) / (伝票番号_, 商品コード_, 単位, 数量, 単価) ※下線は主キー

出典:基本情報技術者試験 科目A免除 修了試験 20140126 実施分 問30

答えと解説を見る

正解:イ

覚える知識

関数従属性に基づく第3正規形への分解

第3正規形は、非キー属性が主キーに完全かつ直接のみ従属する形である。

この問題で必要なこと

繰返し項目を分離し、部分関数従属(商品→単位・単価)と推移的関数従属(顧客コード→顧客名・住所)を除いて分解する。

ひっかけ

顧客名・住所を伝票側に残す(推移従属)、単位・単価を明細に残す等。

この知識の出題:本試験系 6 回・免除試験 32 回(公開問題での観測値)

この知識をアプリで解いて覚える レッスン「関数従属と正規化(第1〜第3正規形)」で学ぶ

同じ知識の過去問