このブログは、旧・はてなダイアリー「檜山正幸のキマイラ飼育記 メモ編」(http://d.hatena.ne.jp/m-hiyama-memo/)のデータを移行・保存したものであり、今後(2019年1月以降)更新の予定はありません。

今後の更新は、新しいブログ http://m-hiyama-memo.hatenablog.com/ で行います。

スケッチを理解するために必要なこと

ER図不要論は、純粋リレーション主義者のプロパガンダネガティブ・キャンペーンだ。

まずは基本事項:

  1. 集合と要素
  2. 単元集合と終集合
  3. 写像
  4. 恒等写像と包含写像
  5. 写像
  6. 単射全射
  7. 集合の直積、2項直積とn項直積、要素のペアとタプル
  8. 多変数関数と直積からの写像
  9. 写像デカルトペア、デカルトタプル
  10. 同時単射
  11. 写像コンポジション
  12. 部分写像の表し方 包含写像と普通の写像の組み合わせ
  13. ファイバー積と射影
  14. 直積がファイバー積であること

グラフ理論からは:

  1. 有向グラフ
  2. ノード
  3. アロー
  4. n-スパンとn-コスパ
  5. グラフ埋め込み
  6. 部分グラフ
  7. 下流部分グラフ
  8. ツリー
  9. ツリーのルートノードとリーフノード

スケッチに特有な概念:

  1. スケッチの具体化=スケッチの状態
  2. スケッチの具体化制約=スケッチの状態制約
  3. スケッチの妥当状態
  4. スケッチの状態遷移とノード不変性制約
  5. テーブルスコープ

テーブルスコープの条件:

  1. テーブルスコープはスケッチの部分有向グラフである。
  2. テーブルスコープは有向ツリーである。
  3. すべてのノードのスパンには、同時単射性制約がある。
  4. ツリーの末端ノードは不変ノードである。

正規性条件:

  1. テーブルスコープに、コンポジションアロー(composed arrow)が含まれない。
  2. テーブルスコープに、ファイバー積射影(直積射影も)が含まれない。

被覆性と非冗長性:

  1. スケッチのすべての独立ノード、独立アローを含む。
  2. 非独立アローを含まない(正規性と同じ)
  3. 1つのアローが2つのテーブルスコープに入ることはない。

スケッチの独立部分をDとすると、有向グラフと見たDを有向ツリー族で被覆する。被覆には条件が付くので、条件付きツリー被覆問題。条件は:

  1. ツリーの末端は不変ノード(ドメイン条件)
  2. ツリーのすべてのスパンは同時単射的(キー条件)
  3. 非独立ノード・アローは対象にしない(正規性条件)
  4. 複数のツリーに属するアローがない(非冗長性条件)

条件をチェックできるためには:

  1. 不変ノードが指定されている→ドメイン定義
  2. 同時単射性がもれなく指定されている→キー制約の記述
  3. 関数従属性と結合従属性の指定

やるべきこと:

  1. 外部世界を適切にモデル化するスケッチを描く
  2. スケッチのツリー被覆を作る
  3. 成果物は、ツリー被覆を持つスケッチ