リレーショナルモデルについて
第一正規形の条件は、テーブルがリレーションの性質を満たすこと。何故ならば、正規化はリレーショナルモデル上での設計理論なので、リレーションにしか適用できないから。だからNULLを含んではいけないし、繰り返しグループは許容されず、ドメインの設計がしっかりできていないといけない。
2015-03-31 22:23:44リレーショナルモデル上の設計理論は、対象がリレーションであるから実行できる。ということは、リレーションになれないデータには正規化も適用できない。なので「テーブルを全部正規化せよ」という方針は破綻してしまう。
2015-03-31 22:26:02テーブルを正規化すべきかの判断は実は至ってシンプル。それはリレーションか否か。あるいは分割や変形をすることでリレーションになれるか。リレーションであれば正規化すべきであり、そうでなければ正規化はできないから正規化に取り組むべきではない。
2015-03-31 22:27:42リレーショナルモデルの世界は綺麗な世界。その世界の全ての事実はリレーションの演算で導きだされる!!なぜなら閉世界仮説が前提となっているから。けどそのようなモデルで現実世界をすべて表現することはできないので、どうしてもはみ出した部分のデータを扱う必要が出てくる。
2015-03-31 22:30:34対象のデータがリレーショナルモデルの枠に収まるかどうかという見極めが凄く重要。そのためにはやはりリレーショナルモデルがどういうものかということについての理解が欠かせない。
2015-03-31 22:31:41超初心者は「テーブルは二次元の表」という理解でも構わないと思う。そうでないと取っ掛かりがつかめないから。けどその理解ではいずれ大きな壁に突き当たる。なぜならその理解のままではリレーショナルモデルを実践できないから。つまりRDBを活かし切れないことになる。
2015-03-31 22:33:39リレーショナルモデルは有限の一階述語論理に基づいたデータモデルであり、リレーションは集合であり、述語がある。リレーションの演算とは、つまり述語を記述することに他ならず、正規化とは矛盾が生じる可能性を排除するための理論である。二次元の表という理解のままではこういったことは分からない
2015-03-31 22:36:28なんで正規化がうまくいかない場合があるのかということも、二次元の表という理解のままでは分からない。なのでその理解から脱皮して、リレーショナルモデルをもっとよく理解することが必要。そんなわけで脱皮したい人は、理論から学ぶデータベース実践入門を読んで欲しい(笑)
2015-03-31 22:38:15理論から学ぶデータベース実践入門は難しいという声も聞こえてきてるので、解りやすい解説になるような工夫の余地があるのだろう。修行せねば。
2015-03-31 22:41:57現実世界は閉じてないので、閉世界仮説、つまりリレーショナルモデルに限界があるのは必至。だからリレーショナルモデルからはみ出た部分をどうするかということが、重要な課題となる。
2015-03-31 22:47:28