edb_lock

データベース全体をロックするためのテーブル.
データベースから情報を得るまたは何らかの変更を加える場合には,このテーブルをLOCKする. SQL文は, である.
SHAREでは同時に複数のReadが並行して存在し得るのに対して,EXCLUSIVEではそのプロセスのみがアクセス可能になる.
言うまでもなく,EXCLUSIVEモードは他のプロセスのアクセスを停滞させるため,LOCKしている時間は可能な限り短くすることが望まれる.

Read onlyでかつTRANSACTION内で得た情報をオリジナルデータベースの更新に用いない場合には,テーブル edb_lock をロックせずに TRANSACTION の ISOLATION LEVEL を SERIALIZABLE にセットする方法もある.

edb_xmldb

XML表現の情報を蓄積しておくテーブル.
columntypedescription
eidint4情報識別子
eiodint4EDB内のオブジェクト識別子
teidint4情報が登録されているテーブルのEID(0のときテーブル)
xmltextXMLで記述された情報

edb_authentication

XML表現の情報(認証用)を蓄積しておくテーブル.
columntypedescription
eidint4情報識別子(個人情報のEID)
eiodint4EDB内のオブジェクト識別子(このテーブル内での通し番号)
xmltextXMLで記述された認証情報

edb_base

以下のテーブルの基本カラムセット.
columntypedescription
eidint4情報識別子
eiodint4EDB内のオブジェクト識別子
mapto_eidint4マップ先の情報識別子
parent_eidint4親情報の情報識別子
mtimeint4登録時刻(UNIX Time)
opint4オペレータの情報識別子
avboolean有効/無効
censorint4検閲
rdint4読み権限レベル
wrint4書き権限レベル
deint4消去権限レベル

edb_auth

展開された認証情報を蓄積しておくテーブル.
columntypedescription
edb_eidint4情報識別子
edb_typetextパスフレーズのタイプ(0: MD5)
edb_pptext暗号化されたパスフレーズ
edb_ppstext暗号化されたパスフレーズ(Staff権限)
edb_ppotext暗号化されたパスフレーズ(Odin権限)

edb_table

テーブル情報の検索のために用いるテーブル.
columntypedescription
edb_xmlnametextXMLテーブル名
edb_sqlnametextpgsqlテーブル名
edb_namemtextテーブルの英名|和名|読み
edb_descmtextテーブルの説明文
edb_exmtextテーブルの詳細説明文

edb_index

EDBに蓄積されている情報全てのインデックスを管理するテーブル.
columntypedescription
edb_typeint4未使用
edb_teidint4tupleが登録されているテーブルのEID(0のときテーブル)
edb_peidint4[]権限委譲型参照をしているEIDのリスト
edb_eidint4[]参照しているEIDのリスト

t_table-sqlname

EDBの各テーブル毎の情報を検索するために用意してあるテーブル.
columntypedescription
c_*---各カラムの登録項目
e_*int4[]対応するカラムの参照しているEIDのリスト(参照EIDがない時には0が入る)
l_eidint4[]情報全体で参照しているEIDのリスト
l_peidint4[]情報全体で権限委譲型参照しているEIDのリスト

t_table-sqlname_column-sqlname

EDBの各テーブルの各カラム毎に情報を検索するために用意してあるテーブル.
columntypedescription
r_idx*---もとのテーブルにおける配列の添字(1から始まる)
c_*---各カラムの登録項目
e_*int4[]対応するカラムの参照しているEIDのリスト(参照EIDがない時には0が入る)

misc.

テーブル名(名前)からEIDを得る.
SELECT eid FROM edb_table WHERE japanese(edb_name) = '名前';

テーブル(#teid)のカラム名(名前)からEIDを得る.
SELECT eid FROM edb_column WHERE edb_teid = #teid AND japanese(edb_name) = '名前';

あるテーブル(#eid)に登録されているカラムのリストを得る.
SELECT t1.eid FROM edb_column AS t1 WHERE t1.teid = #eid ORDER BY t1.col;

あるテーブル(#eid)に登録されている有効なカラムのリストを得る.
SELECT t1.eid FROM edb_column AS t1 WHERE t1.av AND t1.teid = #eid ORDER BY t1.col;

情報(#eid)からテーブルのその情報が登録されているテーブルの名前を得る.
SELECT t1.edb_sqlname FROM edb_table AS t1 WHERE t1.eoid = (SELECT t2.eoid FROM edb_eid_index AS t2 WHERE t2.eid = #eid;

あるテーブル(#teid)において情報(#eid)を参照している情報のリストを得る.
SELECT eid FROM edb_eid_index WHERE edb_teid = #teid AND edb_eid *= #eid;