平成20年秋期試験問題 午前問57

広告
解説
関係データベースの正規化は次のように3段階に分けて行います。
1つの紙に複数の商品が記載された伝票をイメージすると、
第2正規化では主キーの一部によって一意に決まる項目を別表に移します。表を見ると「伝票番号」から「日付」「顧客コード」「顧客名」「住所」の4つ、「商品コード」から「単位」「単価」の2つが一意に定まることがわかるのでこれらの関係を別表に分離します。
第3正規化では主キー以外の項目によって一意に決まる項目を別表に移します。主キー以外の項目をみると、「顧客コード」から「顧客名」「住所」が一意に定めることがわかるためこの関係を別表に分離します。
以上より、設問のデータを第3正規化まで完了すると「イ」のデータベース構造となります。
- 第1正規化
- 繰り返し項目をなくす
- 第2正規化
- 主キーの一部によって一意に決まる項目を別表に移す
- 第3正規化
- 主キー以外の項目によって一意に決まる項目を別表に移す

(伝票番号1234, …,商品コード111, …)
(伝票番号1234, …,商品コード222, …)
というように、同じ伝票番号を持つレコードが複数存在することになるので、表中のレコードを一意に特定するためには「伝票番号」+「商品コード」の複合主キーにしなければならないことがわかります。(伝票番号1234, …,商品コード222, …)
第2正規化では主キーの一部によって一意に決まる項目を別表に移します。表を見ると「伝票番号」から「日付」「顧客コード」「顧客名」「住所」の4つ、「商品コード」から「単位」「単価」の2つが一意に定まることがわかるのでこれらの関係を別表に分離します。


広告