正規化の試験問題への適用
正規化問題は、キー候補と関数従属性を書き出せば機械的に解ける。どの属性をどの表へ移すかを、依存先ごとに整理する。
この単元で学ぶこと
- 関数従属性図の意味と役割を説明できる
- 受注ヘッダ分離の意味と役割を説明できる
- 商品表分離の意味と役割を説明できる
- 関数従属性から分解後の表構成を選べる
本文解説
分解後も元の情報を再構成でき、不要な重複を減らすことが重要である。受注、商品、部署など実体ごとの事実を分離する。
関数従属性図 決定項から従属属性へ矢印を書いた図。 分解根拠を可視化する。
受注ヘッダ分離 受注単位で決まる属性を受注表へ分ける。 受注明細から受注日などの重複を除く。
商品表分離 商品IDで決まる属性を商品表へ分ける。 商品名や標準単価の重複を減らす。
結合による再構成 分解した表をキーで結合して元の情報を得る。 関係を失わないことが重要。
非正規化 性能などの理由で意図的に重複を持たせる設計。 整合性維持の仕組みが必要。
決定項ごとに属性をまとめる。元表のキーを各子表へ必要に応じ残し、結合可能性を確認する。
受注明細(受注ID,商品ID,受注日,商品名,数量)は、受注(受注ID,受注日)、商品(商品ID,商品名)、明細(受注ID,商品ID,数量)へ分けられる。
図解
重要ポイント
- 関数従属性図: 決定項から従属属性へ矢印を書いた図。
- 受注ヘッダ分離: 受注単位で決まる属性を受注表へ分ける。
- 商品表分離: 商品IDで決まる属性を商品表へ分ける。
- 結合による再構成: 分解した表をキーで結合して元の情報を得る。
- 同じ決定項で決まる属性を一つの表へ集める。
間違えやすい点
- 分解時に結合キーまで削除して再構成不能にしない。
- 非正規化を正規化失敗と同義にしない。
- 主キー候補を確認せず列だけ移動しない。
用語解説
- 関数従属性図
- 決定項から従属属性へ矢印を書いた図。
- 受注ヘッダ分離
- 受注単位で決まる属性を受注表へ分ける。
- 商品表分離
- 商品IDで決まる属性を商品表へ分ける。
- 結合による再構成
- 分解した表をキーで結合して元の情報を得る。
- 非正規化
- 性能などの理由で意図的に重複を持たせる設計。
関連教材
参考資料
教材データに登録された参考リンクです。リンク先の内容や更新日は提供元でご確認ください。
確認問題の出題・採点や学習履歴の保存にはログインが必要です。