ER圏とERスキーマとER状態
ER圏の指標は、次のような演算子記号を持つ。
- ;
- ×
- (-)T
- [-, -]
- ∪
- ∩
- (-)∩
- ∩(-)
- (-)∪
- ∪(-)
- δ(-)
- ρ(-)
構造の観点から分類すると:
- ダガー付きコンパクト閉圏: ;, ×, (-)T, [-, -], (-)∩, ∩(-), (-)∪, ∪(-)
- 束豊饒圏〈lattice enriched category〉: ∪, ∩
- 制限圏〈restriction category〉: δ(-), ρ(-)
他に、一階述語論理のハイパードクトリンの構造を持ち、射の包含順序を2-射とする2-圏の構造も持つ。
幾つかの用語
集合 | 要素 |
---|---|
ドメイン | 値 |
実体 | 個体, 個物 |
関係 | エントリー |
タプル集合 | タプル |
状態と述語
- State(X) : X上の状態
- State(X1, ..., Xn) : X1, ..., Xn 上の状態
- Pred(X) : X上の述語
- Pred(X1, ..., Xn) : X1, ..., Xn 上の述語
写像と関係
- Map(X, Y) : XからYへの関数
- Rel(X, Y) : XからYへの関係
- Map(X1, ..., Xn→Y1, ..., Yn) : X1, ..., Xn から Y1, ..., Yn) への関数
- Rel(X1, ..., Xn→Y1, ..., Yn) : X1, ..., Xn から Y1, ..., Yn) への関係
タプルに関して:
集合 | 要素 | 備考 |
---|---|---|
タプル集合 | タプル | 入れ子を許す |
ドメインタプル集合 | ドメインタプル | 末端成分がすべて値 |
平坦タプル集合実体 | 平坦タプル | 深さが1のタプル |
平坦ドメインタプル集合 | 平坦ドメインタプル | テーブルに使う |
状態と述語と関係:
- Pred(X) Rel(X, 1)
- State(X) Rel(1, X)
テーブル
- テーブルとは、Dが平坦ドメインタプル集合として、1→D の形の関係。
テーブル化とは、任意の関係 r:A→B を 1→Flat(A×B) にすること。テーブル化を Tbl(r) とすると、Tblはrの持つ情報を欠損する。
- ソース/ターゲットの区別がなくなる。
- 入れ子の構造がなくなる。
- 結合ができなくなる。
ER圏の構文的生成系がスキーマ。その意味論となる関手(むしろ2-関手)がER状態。アンビエント圏は関係の圏、豊富な構造を持つ。
カラム
タプル型の構造ツリーのアクセスパスから作られる写像がアクセッサーで、アクセッサー、カラム、属性、フィールドは同義語。ニュアンスがイヤだから、アクセッサだけを使う。アクセッサはタプルに作用する。
ツリーのリーフまで至るパスで定義されるアクセッサをリーフアクセッサと呼ぶ。リーフではないアクセッサを中間アクセッサと呼ぶ。
一階述語論理のタプル変数に対してアクセッサを使うと便利なので、アクセッサが多用される。また、アクセッサ名でセマンティクスを暗示することもよく行われる。
アクセッサの使用例:
- x.key.2 : 個体xのキーの第2成分
- r.src.2.1 : エントリーrのソース成分の第2.1成分
- t.3.2 : タプルtの第3.2成分