はじめに
最近はDB設計が楽しくて、Railsキャッチアップが後回しになっています。
とりあえず復習の意味も兼ねて以下を買いました。
半分くらい読みました。
概念設計
前回静的モデルと動的モデルを勉強してみて、静的モデルはリソース系エンティティをリレーションで結んだもの、
動的モデルはリソース系エンティティとイベント系エンティティをリレーションで結んだものみたいなイメージをしました。
静的モデルはエンティティ同士は主語と目的語の関係で、リレーションは動詞に当たります。
動的モデルは一方のリソース系エンティティは主語、もう一方のイベント系エンティティは動詞に当たります。
・・・あってますか?苦笑
たぶん動的モデルでイベント系エンティティは複数のリソース系エンティティとリレーションを張っていて、
コッド理論
エドガー・F・コッド
T字形ER手法
佐藤正美さんの著書で紹介されたモデリング手法のこと。
今はTM(Theory of Models)と進化?したらしい。
"データベース設計"は「L-真」レベルまで、"データモデリング"は「L-真」に加えて「F-真」レベルまで実施します、さらにデータモデリングでは関係の網羅性、制約・束縛の網羅性を保証します。
「L-真」というのは、「Logicで正しい(真である)」という意味です。(中略)「L-真」というのは、無矛盾であっても、幾つもやり方があるということです。
「F-真」というのは「Factと一致して正しい(真である)」ということ。「事実」は一つだから。
イミュータブルデータモデリングのチャレンジにあたって気をつけてる事
読んだ。
依存リレーションと非依存リレーション
親子関係を表現するER図を作成する際に意識する概念。
ちなみに親子関係は1対多、1対1の関係で1のほうを親、もう一方を子と言う。
目次は以下。
ざっくり言うと、親子でライフサイクル(生まれるから死ぬまで)が同じものが依存リレーションを持ち、異なるものが非依存リレーションを持つ。
具体的には、受注イベントエンティティ(親)と受注明細リソースエンティティ(子)の関係にて、
受注というイベントが発生した場合、何を受注したのかを入力することを必須としたとき、そこに依存リレーションが発生します。
(詳しくは別の機会にしますが、何を受注したのかを任意として受注したという事実にフォーカスした場合、非依存リレーションになります。)
依存/非依存における論理設計での大きな違いは、
(依存リレーションは)物理的には、「親テーブルの主キーが子テーブルの主キー含まれている」ことになります。
(非依存リレーションは)物理的には、「親テーブルの主キーが子テーブルの主キー含まれていない」ことになります。