見出し画像

何故正規化するのか ~第4章~

はじめに

データベースをテーマとして徒然なるままに記述しています。何となく『そうなのね~』と解釈していただければそれで結構です.逆に言うと多少(大いに?)厳密性に関しては怪しいところを含むかもしれません.基本的には一般論として述べるつもりですが,所々筆者の独断と偏見に基づく表現も含まれることと思いますので,それを前提にお読みください.

コラムの連載予定

1 DB(データベース:Data Base)とは
2 DBシステムとファイルシステムとの違い
3 DBの歴史
4 何故正規化するのか ←現在地
5 ER図とテーブル関連図
6 トランザクションとリカバリ
7 同時実行制御
8 データの活用
9 おわりに

DBの歴史 ~第3章~ はこちらをご覧ください☟



何故正規化するのか

DBの書籍等を読むと必ず正規化やER図の説明が存在するが,やはりここは避けて通れないので,ここでも簡単に述べることとする.

One Fact in One Placeの一言である.

即ち1つのデータ(事実)は1か所のみに存在する(させる)である.
もしも複数個所に存在(分散)していた場合,その事実に変化があった場合分散しているデータすべてを変化させないと全体で矛盾が生じてしまうという事になり,

どれが(何が)事実(真実)なのか分からなくなる.
分散しているデータが全て同期して変更されれば問題ないとは言えるが,それを維持するのが実は大変困難でコストが掛かることとなり,大規模になればなるほどその維持が非現実的な事となってしまう.

また同一データがあそことここに分散している(させている)ということ自体をしっかり認識できるのは,やはり正規化状態を経た上でなし得る業である.

理論的(数学的)には,第一正規系,第二正規系,第三正規系,ボイスコッド正規系,第四正規系,第五正規系とあるが,一般的な現実世界の場では第三正規系までで概ね事足りる.

正規系それぞれの定義はDBの技術書には必ず記載があるのでそちらに譲る.

但し,DB設計の現場では敢えて正規系を崩す場合がある.多くは性能面や業務処理のし易さ(アプリケーションプログラムの分かり易さとも言える)の為と言われている.

但し筆者がここで強調しておきたいのは,正規系の姿をしっかりと認識したうえで,それを基に正規系を崩す,という思考的プロセスを経る,として欲しい事である.

正規系の姿を見る(考える)ことも無く,即(非正規系の)実装状態の姿で満足するのは宜しくない.


第5章は、「ER図とテーブル関連図」についてです!
お楽しみにお待ちください!!

この記事が気に入ったらサポートをしてみませんか?