差分

ナビゲーションに移動 検索に移動

データベースの非正規化

66 バイト追加, 2018年7月5日 (木) 03:38
データの重複をなくし整合的にデータを取り扱えるようにデータベースを設計することを「[[データベースの正規化]]」と呼ぶ。
教科書に書いてある定番のウリ文句であり、情報系の学校では「データベースを設計するときは正規化しよう」「テーブルはJOINで結合して使おう」と習うことだろう。
{| class='"wikitable'"
|+
! メーカー !! 住所
|}
{| class='"wikitable'"
|+
! 商品ID !! 商品名
=== 非正規化 ===
その逆に1つのテーブルに重複クソ食らえで全てを詰め込む手法を「データベースの非正規化」と呼ぶ。
{| class='"wikitable'"
|+
! メーカー !! 住所 !! 商品名
数億レコードを突破するようなテーブルがいくつも存在する現実的な環境下ではテーブルのJOINなどしたらシステムは窒息死するため、このようなデータベースの設計となる事が多い。
非正規化という諸刃の剣に手を出すのは以下のようなケースが多い。ただし非正規化は諸刃の剣であるということを忘れてはならない。途中での方針変換による採用は非常に危険である。
# 正規化した状態で設計・開発する
# サービス開始直後に過負荷でシステムダウン
匿名利用者

案内メニュー