ひとつの事実が1か所にしか記録されないようにする――これはDB構造を正規化する際の基本だが、このルールを意図的に違反すること(正規化崩し)で、効果的なDB構造が生み出されることがある。正規化崩しは高速化のためだけにあると思われがちだが、それ以外の目的もある。そのような正規化崩しのテクニックとして、「抽象化(汎化)」を取り上げよう。 説明の前に、正規化崩しに関して大事なことを言い添えておきたい。勘違いしている技術者がいるが、正規化崩しとは「正規化してから崩す」という意味である。本来の正規形を経由せずに非正規形になっているとしたら、正規化崩しではなく、単なる「無手勝流」でしかない。 では、いったん正規化してから崩すことがなぜそれほど重要なのか。事前に「更新時異状(更新処理にともなって発生するデータの不整合)」に対処しておくためだ。正規化崩しにせよ無手勝流にせよ、そのままでは遅かれ早かれ更新時異