リレーショナルモデルについて

「理論から学ぶデータベース実践入門」の著者、奥野幹也氏のリレーショナルモデル解説
5
Mikiya Okuno @nippondanji

第一正規形の条件は、テーブルがリレーションの性質を満たすこと。何故ならば、正規化はリレーショナルモデル上での設計理論なので、リレーションにしか適用できないから。だからNULLを含んではいけないし、繰り返しグループは許容されず、ドメインの設計がしっかりできていないといけない。

2015-03-31 22:23:44
Mikiya Okuno @nippondanji

リレーショナルモデル上の設計理論は、対象がリレーションであるから実行できる。ということは、リレーションになれないデータには正規化も適用できない。なので「テーブルを全部正規化せよ」という方針は破綻してしまう。

2015-03-31 22:26:02
Mikiya Okuno @nippondanji

テーブルを正規化すべきかの判断は実は至ってシンプル。それはリレーションか否か。あるいは分割や変形をすることでリレーションになれるか。リレーションであれば正規化すべきであり、そうでなければ正規化はできないから正規化に取り組むべきではない。

2015-03-31 22:27:42
Mikiya Okuno @nippondanji

リレーショナルモデルの世界は綺麗な世界。その世界の全ての事実はリレーションの演算で導きだされる!!なぜなら閉世界仮説が前提となっているから。けどそのようなモデルで現実世界をすべて表現することはできないので、どうしてもはみ出した部分のデータを扱う必要が出てくる。

2015-03-31 22:30:34
Mikiya Okuno @nippondanji

対象のデータがリレーショナルモデルの枠に収まるかどうかという見極めが凄く重要。そのためにはやはりリレーショナルモデルがどういうものかということについての理解が欠かせない。

2015-03-31 22:31:41
Mikiya Okuno @nippondanji

超初心者は「テーブルは二次元の表」という理解でも構わないと思う。そうでないと取っ掛かりがつかめないから。けどその理解ではいずれ大きな壁に突き当たる。なぜならその理解のままではリレーショナルモデルを実践できないから。つまりRDBを活かし切れないことになる。

2015-03-31 22:33:39
Mikiya Okuno @nippondanji

リレーショナルモデルは有限の一階述語論理に基づいたデータモデルであり、リレーションは集合であり、述語がある。リレーションの演算とは、つまり述語を記述することに他ならず、正規化とは矛盾が生じる可能性を排除するための理論である。二次元の表という理解のままではこういったことは分からない

2015-03-31 22:36:28
Mikiya Okuno @nippondanji

なんで正規化がうまくいかない場合があるのかということも、二次元の表という理解のままでは分からない。なのでその理解から脱皮して、リレーショナルモデルをもっとよく理解することが必要。そんなわけで脱皮したい人は、理論から学ぶデータベース実践入門を読んで欲しい(笑)

2015-03-31 22:38:15
Mikiya Okuno @nippondanji

リレーションの演算も、リレーションの設計理論も、リレーション以外のものには適用できないんですよ。

2015-03-31 22:39:07
Mikiya Okuno @nippondanji

理論から学ぶデータベース実践入門は難しいという声も聞こえてきてるので、解りやすい解説になるような工夫の余地があるのだろう。修行せねば。

2015-03-31 22:41:57
Mikiya Okuno @nippondanji

世界の全ての真実が、リレーションの演算で分かる!!(ただし閉じられた世界の話、つまり閉世界仮説)

2015-03-31 22:46:28
Mikiya Okuno @nippondanji

現実世界は閉じてないので、閉世界仮説、つまりリレーショナルモデルに限界があるのは必至。だからリレーショナルモデルからはみ出た部分をどうするかということが、重要な課題となる。

2015-03-31 22:47:28