ドメインタプル集合とそのあいだの関数からなるデカルト・モノイド圏をドメイン圏〈domain category〉と呼ぶ。ドメイン指標から生成される自由モノイド・デカルト圏のモデル〈代数〉がドメイン圏になる。
ドメイン圏D上のテーブル代数〈table algebra〉とは、次の構成素から構成される。
- テーブルと呼ばれるモノの集合 T
- ターゲット関数 trg:T→|D|
- テーブルと射に対する部分二項演算 (>>):T×Mor(D)⊇→T
- テーブルに対する部分二項演算 (∪):T×T⊇→T
- テーブルに対する部分二項演算の無限族 (△k):T×T⊇→T (k = 0, 1, 2, ...)
演算の定義可能性は、trgを使って記述される。
- t>>f が定義可能 ⇔ trg(t) = dom(f)
- t∪s が定義可能 ⇔ trg(t) = trg(s)
- t△ks が定義可能 ⇔ (trg(t))[k→] = (trg(s))[k←]
タプル型Aに対して、A[k→]は右側のk個の成分を取ったタプル型、A[k←]は左側のk個の成分を取ったタプル型のこと。
公理(演算法則)はかなりたくさんあるだろうが、整理はしてない。
∩, (-)c, f<<t などの演算を入れてテーブル代数を拡張できるが、とりあえずは上の演算だけにする。
デカルト・モノイド圏では、終対象=モノイド単位で1と書く。1→A の形の射をテーブルと定義して、trg(t) := cod(t) とすれば、>>だけは定義できる。ジョイン△kの定義には、ファイバー積が必要で、ファイバー積には等値核が必要。また、∪を入れるには、ユニオン半束〈ジョイン半束〉による豊饒化が必要。
外側の圏が有限離散完備なユニオン半束豊饒圏ならば、そこからテーブル代数を作れる。
別な、より現実的な構成法は、自己双対コンパクト閉圏であり双積を持ち、双積からの加法がベキ等である圏があれば、任意の部分デカルト・モノイド圏上にテーブル代数を構成できる。
テーブル代数は、それだけで意味を持つものではなくて、ドメイン圏が埋め込まれた外側の圏のユニット対象からの射として実現されるべきものである。テーブル代数の要素=テーブルに対して、外側の圏の射に復元する方法がきちんと決まっていれば問題ない。
項目名=カラム名=属性名を最初に列挙する設計法は、外側の圏にある射を列挙しているのだろう。そのプロファイルと制約の特定が困難。テーブルではなくて、項目名が指す射のプロファイルと制約を考える。
[追記]
ドメイン圏はデカルト圏で、別なモノイド圏に埋め込まれる。別なモノイド圏はテンソル半加法圏になっている。この状況はフレイド圏に似ている。
ER圏とは、デカルトモノイド圏の埋め込みを持ったベキ等加法付きのモノイド圏で、自己随伴コンパクト閉圏になっているようなものなのだろう。
生成系を考える場合は、基礎となるドメイン圏以外の対象生成元が実体で、射生成元が関連となる。
[/追記]