Accessのテーブル設計の基本:正規化(Normalization)とは?
正規化(Normalization)とは、Accessなどのリレーショナルデータベースでデータの重複をなくし、整合性を保つためにテーブルを整理・分割する設計手法です。
正規化によって無駄なデータの繰り返しや更新時の不整合を防ぎ、効率的で管理しやすいデータベースを構築できます。
正規化の目的
- データの重複を最小限に抑える
- データの整合性・一貫性を保つ
- 更新・削除・追加時の不整合(異常)を防ぐ
- 検索や集計の効率を高める
正規化のステップ(第1〜第3正規形)
■ 第1正規形(1NF)
- 1つのフィールドに1つの値のみ(繰り返しの排除)
- 例:注文商品1、注文商品2、… → 商品を別テーブルに分離
■ 第2正規形(2NF)
- 主キーの一部にしか依存しない項目を分離
- 複合主キーがある場合、そのすべてに関係しない項目を別テーブルへ
■ 第3正規形(3NF)
- 主キーに依存しない情報(推移的関数従属)を排除
- 例:社員テーブルに所属部署名→部署マスタを別テーブルに
正規化の具体例
正規化前(1つのテーブルにすべて)
注文ID | 顧客名 | 商品名 | 数量 |
001 | 田中 | りんご | 3 |
002 | 田中 | みかん | 5 |
正規化後(3つのテーブルに分離)
- 顧客テーブル: 顧客ID・顧客名
- 商品テーブル: 商品ID・商品名
- 注文テーブル: 注文ID・顧客ID・商品ID・数量
注意点
- 正規化しすぎるとテーブル数が増えて複雑になる
- Accessの小規模なアプリでは第3正規形程度までが一般的
- 分析用には逆に「非正規化(まとめる)」することもある
まとめ
- 正規化: テーブルを分けてデータの重複と不整合を防ぐ手法
- 第1〜第3正規形までが基本
- Accessでのテーブル設計の基礎となる重要な概念
正規化は、Accessで堅牢なデータベースを設計するうえで不可欠な考え方です。
システム構築の初期段階で正しく設計することで、保守性・拡張性・信頼性の高いデータベースが実現します。