データベース全体をロックするためのテーブル.
データベースから情報を得るまたは何らかの変更を加える場合には,このテーブルをLOCKする.
SQL文は,
- Read only: LOCK edb_lock IN ACCESS SHARE MODE;
- Read/Write: LOCK edb_lock IN ACCESS EXCLUSIVE MODE;
である.
SHAREでは同時に複数のReadが並行して存在し得るのに対して,EXCLUSIVEではそのプロセスのみがアクセス可能になる.
言うまでもなく,EXCLUSIVEモードは他のプロセスのアクセスを停滞させるため,LOCKしている時間は可能な限り短くすることが望まれる.
Read onlyでかつTRANSACTION内で得た情報をオリジナルデータベースの更新に用いない場合には,テーブル edb_lock をロックせずに TRANSACTION の ISOLATION LEVEL を SERIALIZABLE にセットする方法もある.
- BEGIN;
- SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
XML表現の情報(認証用)を蓄積しておくテーブル.
column | type | description |
eid | int4 | 情報識別子(個人情報のEID) |
eiod | int4 | EDB内のオブジェクト識別子(このテーブル内での通し番号) |
xml | text | XMLで記述された認証情報 |
EDBに蓄積されている情報全てのインデックスを管理するテーブル.
column | type | description |
edb_type | int4 | 未使用 |
edb_teid | int4 | tupleが登録されているテーブルのEID(0のときテーブル) |
edb_peid | int4[] | 権限委譲型参照をしているEIDのリスト |
edb_eid | int4[] | 参照しているEIDのリスト |
EDBの各テーブル毎の情報を検索するために用意してあるテーブル.
column | type | description |
c_* | --- | 各カラムの登録項目 |
e_* | int4[] | 対応するカラムの参照しているEIDのリスト(参照EIDがない時には0が入る) |
l_eid | int4[] | 情報全体で参照しているEIDのリスト |
l_peid | int4[] | 情報全体で権限委譲型参照しているEIDのリスト |
EDBの各テーブルの各カラム毎に情報を検索するために用意してあるテーブル.
column | type | description |
r_idx* | --- | もとのテーブルにおける配列の添字(1から始まる) |
c_* | --- | 各カラムの登録項目 |
e_* | int4[] | 対応するカラムの参照しているEIDのリスト(参照EIDがない時には0が入る) |