非正規化
読み取り時の結合を避けるため、意図的にデータを重複させること。クエリは速くなるが、書き込みが複雑になり、コピー同士がずれる危険を負う。
典型的な形は、親テーブルのカウンターキャッシュ(comment_count)、レポートで5つのテーブルを結合しなくて済むようにした名前のコピー、ドキュメントDBの埋め込みドキュメントなどだ。昔からの経験則に「痛くなるまで正規化し、動くまで非正規化せよ」とあり、強調すべきはその順序である。非正規化は、結合が問題だと示せてからにすべきで、先回りしてやってはいけない。マテリアライズドビューは制御された変種で、アプリケーションのコードがあちこちで更新を覚えている代わりに、データベースがコピーを最新に保ってくれる。分析用のスタースキーマは、まさに同じ性能上の理由で最初から非正規化されている。