令和6年度 問81|データベースの基本と設計(RDBMS・主キー・正規化)
一つの表で管理されていた受注データを,受注に関する情報と商品に関する情報に分割して,正規化を行った上で関係データベースの表で管理する。正規化を行った結果の表の組合せとして,最も適切なものはどれか。ここで,同一商品で単価が異なるときは商品番号も異なるものとする。また,発注者名には同姓同名はいないものとする。
| 受注番号 | 発注者名 | 商品番号 | 商品名 | 個数 | 単価 |
|---|---|---|---|---|---|
| T0001 | 試験花子 | M0001 | 商品1 | 5 | 3,000 |
| T0002 | 情報太郎 | M0002 | 商品2 | 3 | 4,000 |
| T0003 | 高度秋子 | M0001 | 商品1 | 2 | 3,000 |
正解:エ 表1(受注番号、発注者名、商品番号、個数)/表2(商品番号、商品名、単価)
ポイント
受注データを正規化したときの、表の項目の分け方を問う問題です。
考え方と解き方
受注ごとに決まる項目と、商品ごとに決まる項目を分けずに、単価や個数を同じ表に置くと、誤ります。
- 商品名と単価は、商品番号が決まれば決まる値なので、商品の表に置きます。
- 発注者名、商品番号、個数は、受注番号ごとに決まる値なので、受注の表に置きます。商品番号で、二つの表を結び付けます。
- したがって、適切なのは エ です。
ほかの選択肢
- ア 受注の表に商品番号がなく、受注と商品を結び付けられません。個数も受注ごとの値なので、商品の表に置くのは不適切です。
- イ 個数が商品の表にあります。個数は受注ごとの値なので、受注の表に置きます。
- ウ 単価が受注の表にあり、同じ商品番号の行で単価が重複します。単価は商品番号で決まる値なので、商品の表に置きます。
覚えておくこと
- 正規化:データの重複を排除し、一貫性を保つために、表を分割していく設計
- 正規化の例:受注の表から商品の情報を分け、商品番号で結び付ける
(テーマ・覚えること)
出典:令和6年度 ITパスポート試験 公開問題 問81