« 検証と証明 | トップページ | 工学部の先生による教育問題の見方 »

2008年7月24日 (木)

正規化は正しくない、かもしれない

「ノーマライゼーションはノーマルじゃない」の方が語呂が良いですね。

Never, never should you normalize a database out of some vague sense of duty to the ghosts of Boyce-Codd. Normalization is not magical fairy dust you sprinkle over your database to cure all ills; it often creates as many problems as it solves.

Maybe Normalizing Isn't Normal (Coding Horror)

データベースの正規化は、データベースの非正規化と同じくらいには、問題を引き起こすので、無分別に行なうべきではない、という論旨のようです。データーベースの正規化は、クエリのパフォーマンスを低下させ、理解しやすさを損ね、データベースを使いにくくすると。

私も同感です。何であれ、設計というのは、形而上学的に正しい解を求める過程ではなく、目的に手段を適合させる過程であると思います。データベース設計においても、ユーザが何を求めているのか、ユーザにどのような価値を提供しようとしているのかを、よくよく考えて行なうべきでしょう。自動的に解が見つかることはないでしょうね。

以下に、コメント欄を含めた、まとめがあります。

The Mother of All Database Normalization Debates on Coding Horror (High Scalability)

いくつか気に入ったものを意訳してみます:

Normalization is about optimizing large numbers of small CrUD operations, and retrieving small sets of data in order to support those crud operations.

...

Denormalization is about optimizing retrieval of large sets of data. Choosing an efficient database design is about understanding which of those operations is more important. (RevMike)

正規化は、大量の小さな挿入・更新・削除操作を行なう場合に使う。非正規化は、巨大なデータを取り出す場合に使う。データベース設計を効果的に行なうには、どういった操作が重要なのかを理解しなくてはならない。

Is my Site OLTP? If the answer is yes then Normalize. Is my site OLAP? If the answer is yes then De-Normalize! (WeAreJimbo)

OLTPなら正規化、OLAPなら非正規化が答えだ。

Be careful not to confuse a denormalised database with a non-normalised database. The former exists because a previously normailsed database needed to be 'optimised' in some way. The latter exists because it was 'designed' that way from scratch. The difference is subtle, but important. (Bob)

非正規化(denormalised database)と、無正規形(non-normalised database)を混同しないように。前者は既に正規化されたデータベースを「最適化」する。後者は初めからそのように「デザイン」される。違いは微妙だが、重要だ。

|

« 検証と証明 | トップページ | 工学部の先生による教育問題の見方 »

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/80472/22525256

この記事へのトラックバック一覧です: 正規化は正しくない、かもしれない:

« 検証と証明 | トップページ | 工学部の先生による教育問題の見方 »