
9
8
7
6
5
4
3
2
1
5-1
前章までで、リレーショナルデータベースにおける論理設計の基本を学習しまし
た。その中核となる概念が正規化でした。ここでもう一度、なぜ正規化する必要が
あるか、そのメリットは何か、というところをまとめると、それはひとえに、デー
タの整合性を保持するためでした。データベースというのは、ユーザーの利用する
データを一元的に集約して保管する倉庫です。したがって、ここに含まれるデータ
が間違っている、ということは絶対に許されません。正規化は、この厳しい要求に
応えるためデータ整合性を厳密に保つ方法論です。
しかし一方で、正規化がもたらすのは良いことばかりではありません。世の中の
たいていのことに表と裏があるように、正規化にも副作用があります。それもかな
り強いものが。それは、正規化されたテーブル群に対するSQLが非常に遅くなっ
てしまい、しばしばシステムとして実用にたえないぐらい、パフォーマンス劣化を
招いてしまうことです。
本章では、そうした正規化の負の側面を明らかにするとともに、それに対して現
場のエンジニアはどのような対処を取るべきか、という点を学習していきます。
まずは、第3 正規化した状態のテーブル群から始めましょう。
167
5-1