Empressデータベースはオペレーティングシステムのディレクトリとして存在します。 このディレクトリにはデータを格納するためのいくつかのオペレーティングシステム システムファイルが含まれます。 Empress は ユーザーとこれらのファイルの間のインターフェイスです。 たとえば、テーブルを作成したときにEmpressはそのテーブルのデータを格納するため のオペレーティングシステムファイルを作成します。 また、テーブルにクエリを実行するときは、Empressは対応したオペレーティングシステム ファイルから情報を検索します。
Empress データベースはオペレーティングシステムのプロンプトから 以下のコマンドを使って作成します。
empmkdb database_name
データベースのディレクトリは empmkdb で与えられたデータベース名database_nameに対応し、 以下のファイルとサブディレクトリが作成されます。
00010001.ix 0003.rel 00070004.dtf 00100001.ix 00130005.dtf 00010005.dtf 00040001.ix 00070007.dtf 00100001.ixl 00130006.dtf 0001.rel 00040001.ixl 0007.rel 00100013.dtf 00130007.dtf 00020001.ix 00040002.ix 00080001.ix 0010.rel 00130011.dtf 00020008.dtf 00040002.ixl 00080001.ixl 00110001.ix 00130016.dtf 00020009.dtf 0004.rel 00080003.dtf 00110003.dtf 0013.rel 00020010.dtf 00050001.ix 0008.rel 00110008.dtf 00140001.ix 00020011.dtf 00050001.ixl 00090001.ix 00110013.dtf 00140001.ixl 00020012.dtf 0005.rel 00090001.ixl 0011.rel 00140002.ix 00020013.dtf 00060001.ix 00090011.dtf 00120001.ix 00140002.ixl 00020016.dtf 00060008.dtf 00090012.dtf 00120003.dtf 0014.rel 00020017.dtf 00060009.dtf 00090013.dtf 00120009.dtf cdinator 0002.rel 00060011.dtf 00090014.dtf 00120012.dtf dd_cache 00030001.ix 00060012.dtf 00090015.dtf 0012.rel _lock 00030001.ixl 00060016.dtf 00090016.dtf 00130001.ix _module 00030013.dtf 0006.rel 00090017.dtf 00130001.ixl tabzero 00030014.dtf 00070001.ix 0009.rel 00130003.dtf _trn
これらのすべてのオペレーティングシステムファイルとディレクトリは Empress データベースデータ辞書です。
それぞれのEmpressデータベースはシステムテーブルのデータ辞書を持ちます。 システムテーブルはデータベースのテーブルやアトリビュートの情報を保持しています。
表 2-1: データ辞書テーブル
データ辞書テーブル | 詳細 |
sys_dictionary | すべての情報をコンパイルした形で保持します。 |
sys_tables | テーブルに関するの情報を格納します。 |
sys_attrs | アトリビュートに関する情報を格納します。 |
sys_privs | テーブルアクセス権限に関する情報を格納します。 |
sys_attr_privs | アトリビュートアクセス権限に関する情報を格納します。 |
sys_triggers | トリガー定義の情報を格納します。 |
sys_modules | パーシステント・ストアード・モジュールの情報を格納します。 |
sys_mod_file | UPDATE MODULEコマンドのUSING句に指定された DLL ファイルの場所情報を格納します。 |
sys_routines | パーシステント・ストアード・モジュールのルーチン情報を格納します。 |
sys_params | パーシステント・ストアード・モジュールのパラメータ情報を格納します。 |
sys_rep_tables | マスターテーブルとリプリケーションテーブルの一般的な情報を格納します。 |
sys_rep_masters | リプリケーションマスターエントリを格納します。 |
sys_rep_replicates | リプリケーションリプリケイトエントリを格納します。 |
sys_roles | ロールに関する情報を格納します。 |
これらのデータ辞書テーブルは以下のテーブル構造を持ちます。
*** System Table: sys_dictionary *** Attributes: dict_creator nlscharacter(31,1,0) dict_tabname nlscharacter(32,1,0) Not Null dict_tabtype character(32,1) Not Null dict_comptime time(1) dict_comp bulk(20,0,1024,1) Indices: UNIQUE BTREE sysdidx ON (dict_tabname) *** System Table: sys_tables *** Attributes: tab_name nlscharacter(32,1,0) Not Null tab_number integer Not Null tab_type character(32,1) tab_numattrs integer Not Null tab_lock character(1,1) Not Null tab_lkgranty integer Not Null tab_perms character(16,1) Not Null tab_index nlstext(20,0,50,1) tab_refer nlstext(20,0,50,1) tab_view nlstext(20,0,50,1) tab_vwcomp bulk(20,0,1024,1) tab_location nlstext(20,0,50,1) tab_property nlstext(20,0,50,1) tab_creator nlscharacter(31,1,0) Not Null tab_crtime time(1) Not Null tab_comment nlstext(20,0,50,1) tab_param nlstext(20,0,512,1) Indices: UNIQUE BTREE tabidx ON (tab_name) *** System Table: sys_attrs *** Attributes: attr_name nlscharacter(32,1,0) Not Null attr_number integer Not Null attr_tabnum integer Not Null attr_type character(32,1) attr_dtname character(32,1) Not Null attr_dtpar1 longinteger Not Null attr_dtpar2 longinteger Not Null attr_dtpar3 longinteger Not Null attr_dtpar4 longinteger Not Null attr_dtpar5 longinteger Not Null attr_dtpar6 longinteger Not Null attr_notnull character(1,1) Not Null attr_range nlstext(20,0,50,1) attr_comment nlstext(20,0,50,1) Indices: NORMAL (10, 5) BTREE attridx ON (attr_tabnum) *** System Table: sys_privs *** Attributes: priv_grantor nlscharacter(31,1,0) Not Null priv_grantee nlscharacter(31,1,0) Not Null priv_tabnum integer Not Null priv_updattr character(1,1) Not Null priv_delete character(1,1) Not Null priv_insert character(1,1) Not Null priv_select character(1,1) Not Null priv_update character(1,1) Not Null priv_display character(1,1) Not Null priv_alter character(1,1) Not Null priv_drop character(1,1) Not Null priv_empty character(1,1) Not Null priv_index character(1,1) Not Null priv_sort character(1,1) Not Null Indices: NORMAL (10, 5) BTREE privsidx ON (priv_tabnum) NORMAL (10, 5) BTREE privsidx2 ON (priv_grantee) *** System Table: sys_attr_privs *** Attributes: apriv_grantor nlscharacter(31,1,0) Not Null apriv_grantee nlscharacter(31,1,0) Not Null apriv_tabnum integer Not Null apriv_attrnum integer Not Null apriv_update character(1,1) Not Null Indices: NORMAL (10, 5) BTREE aprivsidx ON (apriv_tabnum) *** System Table: sys_triggers *** Attributes: trig_name nlscharacter(32,1,0) Not Null trig_tabnum integer Not Null trig_occur character(1,1) Not Null trig_event_insert character(1,1) Not Null trig_event_update character(1,1) Not Null trig_event_delete character(1,1) Not Null trig_event_select character(1,1) Not Null trig_event_upd_list nlstext(32,0,64,1) trig_event_sel_list nlstext(32,0,64,1) trig_event_for_each character(1,1) Not Null trig_event_condition nlstext(32,0,64,1) trig_event_cond_comp bulk(20,512,512,1) trig_proc_name nlscharacter(32,1,0) Not Null trig_priority double precision trig_enabled character(1,1) Not Null trig_comment nlstext(20,0,50,1) Indices: UNIQUE BTREE systridx ON (trig_name) *** System Table: sys_modules *** Attributes: mod_name nlscharacter(32,1,0) Not Null mod_number integer Not Null mod_language nlscharacter(16,1,0) Not Null mod_lang_params nlstext(20,0,50,1) mod_creator nlscharacter(32,1,0) Not Null mod_crtime time(1) Not Null mod_comment nlstext(20,0,50,1) Indices: UNIQUE BTREE sysmodidx ON (mod_name) *** System Table: sys_mod_file *** Attributes: modf_mod_num integer Not Null modf_system_tag nlscharacter(32,1,0) modf_using_filename nlstext(32,32,64,1) Not Null Indices: NORMAL (10, 5) BTREE sysmfidx ON (modf_mod_num) *** System Table: sys_routines *** Attributes: routine_name nlscharacter(32,1,0) Not Null routine_number integer Not Null routine_mod_num integer Not Null routine_class nlscharacter(64,1,0) Not Null routine_language nlscharacter(16,1,0) routine_deterministic character(1,1) routine_SQL_data_access character(1,1) routine_specific_name nlscharacter(32,1,0) routine_param_style character(1,1) Not Null routine_num_params integer Not Null routine_external_name nlstext(32,32,32,1) Not Null routine_workspace nlstext(32,32,32,1) routine_begin_expression nlstext(32,32,32,1) routine_begin_group nlstext(32,32,32,1) routine_end_group nlstext(32,32,32,1) routine_end_expression nlstext(32,32,32,1) routine_comment nlstext(20,0,50,1) Indices: NORMAL (10, 5) BTREE sysrtidx ON (routine_mod_num) *** System Table: sys_params *** Attributes: param_name nlscharacter(32,1,0) param_number integer Not Null param_mod_num integer Not Null param_routine_num integer Not Null param_mode character(1,1) Not Null param_dtname character(32,1) Not Null param_dtpar1 longinteger Not Null param_dtpar2 longinteger Not Null param_dtpar3 longinteger Not Null param_dtpar4 longinteger Not Null param_dtpar5 longinteger Not Null param_dtpar6 longinteger Not Null param_comment nlstext(20,0,50,1) Indices: NORMAL (10, 5) BTREE sysparaidx ON (param_mod_num, param_routine_num) *** System Table: sys_rep_tables *** Attributes: rep_tabnum integer Not Null rep_tabtype integer Not Null rep_tab_condition nlstext(32,0,64,1) rep_tab_timestamp microtimestamp(0) rep_recov_timestamp microtimestamp(0) rep_purge_timestamp microtimestamp(0) rep_orig_mashost character(32,1) Not Null rep_orig_masdb nlstext(32,32,32,1) Not Null rep_orig_mastab nlscharacter(32,1,0) Not Null rep_orig_mas_start_timestamp microtimestamp(0) Not Null rep_orig_mas_hash_value longinteger Not Null rep_cur_mas_start_timestamp microtimestamp(0) Not Null rep_world bulk(20,0,1024,1) Indices: UNIQUE BTREE sysreptabidx ON (rep_tabnum) *** System Table: sys_rep_masters *** Attributes: repm_tabnum integer Not Null repm_massv nlscharacter(32,1,0) Not Null repm_masdb nlstext(32,32,32,1) Not Null repm_mastab nlscharacter(32,1,0) Not Null repm_order double precision Not Null repm_enabled character(1,1) Not Null repm_pulled_success_timestamp microtimestamp(0) repm_pulled_timestamp microtimestamp(0) repm_pulled_status nlstext(32,64,64,1) repm_pushed_success_timestamp microtimestamp(0) repm_pushed_timestamp microtimestamp(0) repm_pushed_status nlstext(32,64,64,1) Indices: UNIQUE BTREE sysrepmasidx ON (repm_tabnum, repm_order) *** System Table: sys_rep_replicates *** Attributes: repr_tabnum integer Not Null repr_rephost character(32,1) Not Null repr_repdb nlstext(32,32,32,1) Not Null repr_reptab nlscharacter(32,1,0) Not Null repr_condition nlstext(32,0,64,1) repr_cond_comp bulk(20,512,512,1) repr_repptab nlstext(32,32,32,1) repr_rephval longinteger Not Null repr_pulled_success_timestamp microtimestamp(0) repr_pulled_timestamp microtimestamp(0) repr_pulled_status nlstext(32,64,64,1) repr_repsv nlscharacter(32,1,0) repr_repsv_enabled character(1,1) repr_pushed_success_timestamp microtimestamp(0) repr_pushed_timestamp microtimestamp(0) repr_pushed_status nlstext(32,64,64,1) Indices: NORMAL (10, 5) BTREE sysreprepidx ON (repr_tabnum) *** System Table: sys_roles *** Attributes: role_grantor nlscharacter(31,1,0) Not Null role_grantee nlscharacter(31,1,0) Not Null role_grantee_type character(1,1) Not Null role_name nlscharacter(32,1,0) Not Null role_admin character(1,1) Not Null Indices: NORMAL (10, 5) BTREE sysroleidx ON (role_name) NORMAL (10, 5) BTREE sysroleidx2 ON (role_grantee)
データ辞書テーブル内の BULK と TEXT のアトリビュートのパラメータは Empressのバージョンに非常に依存しているので注意が必要です。
データベースに更新が行われた場合や データベース管理者によって直接更新(この操作は正常な操作ではなく、 このような操作は行ってはいけません。) された場合、 Empress によって自動的に更新され、 詳細に検査されます。
どのような状態においても これらのシステムテーブル対して、直接、更新、挿入、削除、および ALTER 、SORTコマンドを 実行しないでください。 Empressデータベース内部に問題が生じる可能性があります。
データベース辞書テーブルは必要な権限を持っているのであれば誰もが参照できます。 たとえばpersonnelテーブルの現在のロックレベルを調べる場合
SELECT tab_lock FROM sys_tables WHERE tab_name = 'personnel';
ログインID moscaがpersonnelテーブルに対し、 与えられている select 権限 と update 権限を調べる場合
SELECT priv_select, priv_update, priv_grantor FROM sys_privs, sys_tables WHERE sys_privs.priv_tabnum = sys_tables.tab_number AND tab_name = 'personnel' AND priv_grantee = 'mosca';
sys_tablesテーブルはこのテーブルを含むすべての データベース中のテーブルおよびビューテーブルに関する情報を それぞれ1レコードとして持っています。
表 2-2: テーブルのデータ辞書 - sys_tables
アトリビュート | 説明 |
tab_name | テーブル名 |
tab_number | テーブル番号 この番号はテーブルに対応するオペレーティングシステムのファイルを識別するために 内部的に使用されます。たとえばテーブル番号1は、データベース辞書内では 0001.relになります。 |
tab_type | テーブルのタイプを表します。 normal, master, replicate, view, master for subset, replicate for subsetなど |
tab_numattrs | テーブル中のアトリビュート数 |
tab_lock | テーブルに設定されたロックレベル。 noneはn, recordは r, groupは g, tableは tとして設定されます |
tab_perms | テーブルに対応するファイルに設定されたオペレーティングシステムの アクセス許可および保護 |
tab_index | テーブルに作成されたすべてのインデックスに関する情報 |
tab_refer | テーブル上のすべての参照制約の定義 |
tab_view | ビューで場合、そのビューを定義する SELECT文 |
tab_vwcomp | ビューを定義するコンパイルデータ |
tab_location | リモートの場合、テーブルの位置 |
tab_property | リモートの場合、テーブルのプロパティ |
tab_creator | テーブルを作成したユーザー名 |
tab_crtime | テーブルが作成された日付および時間 |
tab_comment | CREATE COMMENTコマンドによってテーブルに付けられたすべてのコメント |
tab_param | 今後の使用のため(予約) |
sys_attrsテーブルはこのテーブルを含む データベース中のテーブルおよびビューのアトリビュートに関する情報を それぞれ1レコードとして持っています。
表 2-3: アトリビュートのデータ辞書: - sys_attrs
アトリビュート | 説明 |
attr_name | アトリビュート名 |
attr_number | テーブル内のアトリビュート番号。これはアトリビュートを識別するために内部的に利用されます。 |
attr_tabnum | アトリビュートが含まれるテーブル番号。 この番号はsys_tablesテーブルのtab_numberに対応します。 |
attr_type | アトリビュートのタイプ |
attr_dtname | アトリビュートのデータタイプ CHAR, INTEGER, DATEなどの1つが設定されます。 |
attr_dtpar1 | アトリビュート・データタイプの第1パラメータの値。 値が適切ではない場合は"0"が設定されます。 |
attr_dtpar2 | アトリビュート・データタイプの第2パラメータの値。 値が適切ではない場合は"0"が設定されます。 |
attr_dtpar3 | アトリビュート・データタイプの第3パラメータの値。 値が適切ではない場合は"0"が設定されます。 |
attr_dtpar4 | アトリビュート・データタイプの第4パラメータの値。 値が適切ではない場合は"0"が設定されます。 |
attr_dtpar5 | アトリビュート・データタイプの第5パラメータの値。 bulk、text および nlstext データの可変チェックサムを 表します。 値が適切ではない場合は"0"が設定されます。 |
attr_dtpar6 | アトリビュート・データタイプの第6パラメータの値。 予約。 |
attr_notnull | null 値を許可するかにより、"y" または "n"が設定されます。 |
attr_range | アトリビュートに付けられた適切な範囲チェックのすべての明細 |
attr_comment | CREATE COMMENTコマンドによってアトリビュートに付けられたすべてのコメント |
sys_privsテーブルはこのテーブルを含む、 データベース内のテーブルおよびビューそれぞれに対する特権のセットの 定義と特権を付与する者と付与される者の情報をそれぞれ1レコードとして持っています。
表 2-4: 特権のデータ辞書 - sys_privs
アトリビュート | 説明 |
priv_grantor | 特権を付与する者 |
priv_grantee | 特権を付与される者 |
priv_tabnum | 特権が適用されるテーブルの識別番号 |
priv_updattr | アトリビュートUPDATE特権によって、作成されたレコードが sys_attr_privs内にあるかどうかを示します。("y" または "n") grantor がテーブル内の少なくとも1つのアトリビュート(ただしすべてではない)に UPDATE特権を granntee に与えた場合、sys_attr_privsにレコードは存在する ことになります。 |
priv_delete | テーブルからレコードを削除するための特権。 DELETE特権がない場合は"n"、 DELETE特権があり、この特権を他に与えることができない場合は"y"、 DELETE特権があり、この特権を他に与えることができる場合は"g" が設定されます。 |
priv_insert | テーブルからレコードを登録するための特権。 INSERT特権がない場合は"n"、 INSERT特権があり、この特権を他に与えることができない場合は"y"、 INSERT特権があり、この特権を他に与えることができる場合は"g" が設定されます。 |
priv_select | テーブルからレコードを検索するための特権。 SELECT特権がない場合は"n"、 SELECT特権があり、この特権を他に与えることができない場合は"y"、 SELECT特権があり、この特権を他に与えることができる場合は"g" が設定されます。 |
priv_update |
テーブルのすべてのアトリビュートを更新するための特権。
UPDATE特権がないか、部分的なUPDATE特権である場合は"n"
すべてのUPDATE特権があり、この特権を他に与えることができない場合は"y"、
すべてのUPDATE特権があり、この特権を他に与えることができる場合は"g"、
が設定されます。
部分的なUPDATE特権とは、権限を与えられたいくつかのアトリビュートだけを 更新することはでき、この特権がある場合、priv_updattrアトリビュートの値が、 "y"になり、sys_attr_privsテーブルにレコードは存在することになります。 |
priv_display | テーブル内容を表示するための特権。 DISPLAY特権がない場合は"n"、 DISPLAY特権があり、この特権を他に与えることができない場合は"y"、 DISPLAY特権があり、この特権を他に与えることができる場合は"g" が設定されます。 |
priv_alter | テーブルを変更するための特権。 ALTER特権がない場合は"n"、 ALTER特権があり、この特権を他に与えることができない場合は"y"、 ALTER特権があり、この特権を他に与えることができる場合は"g" が設定されます。 |
priv_drop | テーブルを削除するための特権。 DROP特権がない場合は"n"、 DROP特権があり、この特権を他に与えることができない場合は"y"、 DROP特権があり、この特権を他に与えることができる場合は"g" が設定されます。 |
priv_empty | テーブルを空にするための特権。 EMPTY特権がない場合は"n"、 EMPTY特権があり、この特権を他に与えることができない場合は"y"、 EMPTY特権があり、この特権を他に与えることができる場合は"g" が設定されます。 |
priv_index | インデックスを作成するための特権。 INDEX特権がない場合は"n"、 INDEX特権があり、この特権を他に与えることができない場合は"y"、 INDEX特権があり、この特権を他に与えることができる場合は"g" が設定されます。 |
priv_sort | テーブルをソートするための特権。 SORT特権がない場合は"n"、 SORT特権があり、この特権を他に与えることができない場合は"y"、 SORT特権があり、この特権を他に与えることができる場合は"g" が設定されます。 |
2.2.4 アトリビュート特権のデータ辞書: sys_attr_privs
データベース内のテーブルおよびビューに部分的な更新特権(アトリビュート単位のUPDATE特権) が設定されることでアトリビュート更新特権の情報をそれぞれ1レコードとして持っています。
表 2-5: アトリビュート特権のデータ辞書 - sys_attr_privs
アトリビュート | 説明 |
apriv_grantor | 特権を付与する者 |
apriv_grantee | 特権を付与される者 |
apriv_tabnum | 特権が適用されるテーブル番号 |
apriv_attrnum | 特権が適用されるアトリビュート番号 |
apriv_update | このUPDATE 特権を他に与えるオプション (grant option) がない場合は"y"、 このUPDATE 特権を他に与えるオプション (grant option) がある場合は"g" が設定されます。 |
2.2.5 コンパイル済みデータ辞書: sys_dictionary
このsys_dictionary テーブルは 上記の4つのシステムテーブル のすべての情報をコンパイルしたフォーマットで持っています。 Empressは、内部においてデータへのアクセススピード向上のために このテーブルを利用しています。
表 2-6: コンパイル済みデータ辞書 - sys_dictionary
アトリビュート | 説明 |
dict_creator | テーブルを作成したユーザー名: sys_tablesテーブルのtab_creatorと同じ。 |
dict_tabname | テーブル名: sys_tablesテーブルのtab_nameと同じ。 |
dict_tabtype | テーブルのタイプ |
dict_comptime | テーブルが作成された時の日付・時間 sys_tablesテーブルのtab_crtimeと同じ。 |
dict_comp | コンパイルされた Empressのシステムテーブルのすべての情報が bulk型に記録されています。 |
この sys_triggers テーブルにはテーブルのトリガー定義が記録されます。
表 2-7: トリガーのデータ辞書 - sys_triggers
アトリビュート | 説明 |
trig_name | トリガー名 |
trig_tabnum | トリガー定義が適用されたテーブル番号 |
trig_occur | トリガーが発生が操作の前か後かを示します。 前の場合は値は"b"、後の場合は値は"a"になります。 |
trig_event_insert | トリガーイベントが挿入操作時に有効かを示します。 値は"y"か"n"になります。 |
trig_event_update | トリガーイベントが更新操作時に有効かを示します。 値は"y"か"n"になります。 |
trig_event_delete | トリガーイベントが削除操作時に有効かを示します。 値は"y"か"n"になります。 |
trig_event_select | トリガーイベントが検索操作時に有効かを示します。 値は"y"か"n"になります。 |
trig_event_upd_list | 更新操作時のトリガーイベントでアトリビュートが指定されている場合の アトリビュートリスト |
trig_event_sel_list | 検索操作時のトリガーイベントでアトリビュートが指定されている場合の アトリビュートリスト |
trig_event_for_each | FOR EACH ROW指定されてるどうかを示します。 |
trig_event_condition | トリガーイベントのコンディション・ステートメント |
trig_event_cond_comp | トリガーイベントのコンディション・ステートメントを bulkフォーマットにコンパイルし、格納します。 |
trig_proc_name | トリガー関数名 |
trig_priority | トリガーの優先度 |
trig_enabled | トリガーが現在、有効かどうかを示します。 |
trig_comment | トリガーへのコメント |
この sys_modules テーブルには、パーシステント・ストアード・モジュール定義が 記録されます。
表 2-8: パーシステント・ストアード・モジュールのデータ辞書: sys_modules
アトリビュート | 説明 |
mod_name | モジュール名 |
mod_number | モジュール番号 |
mod_language | プログラム言語:現在は C 言語のみサポート。 |
mod_lang_params | 言語のためのパラメータ。 |
mod_creator | モジュールを作成したユーザ名 |
mod_crtime | モジュールが作成れた日時 |
mod_comment | コメント |
このsys_mod_fileテーブルには システムのタグ および モジュールの dll ファイル名が記録されます。
表 2-9: モジュール・ファイルのデータ辞書 - sys_mod_file
アトリビュート | 説明 |
modf_mod_num | モジュール番号 |
modf_system_tag | システムの名前 |
modf_using_filename | モジュールの dll ファイル名 |
この sys_routines テーブルは、パーシステント・ストアード・モジュール の情報が記録されています。
表 2-10: PSM ルーチンのデータ辞書 - sys_routines
アトリビュート | 説明 |
routine_name | ルーチン名 |
routine_number | ルーチン番号 |
routine_mod_num | このルーチンに関連したモジュール番号 |
routine_class |
ルーチンのクラス
たとえば procedure, aggregrate function, boolean function, prefix operator ... など。 |
routine_language | このルーチンが記述されたプログラム言語。現在はC言語のみをサポート。 |
routine_deterministic | このアトリビュートは将来、利用されるために予約されています。 |
routine_SQL_data_access | このアトリビュートは将来、利用されるために予約されています。 |
routine_specific_name | このアトリビュートは将来、利用されるために予約されています。 |
routine_param_style | パラメータのスタイルを示します。 PARAMETER STYLE GENERALの場合は "g"、 PARAMETER STYLE SQLの場合は "s" が設定されます。 |
routine_num_params | パラメータ番号 |
routine_external_name | 外部ルーチン名 |
routine_workspace | ワークスペース・サイズ |
routine_begin_expression | BEGIN EXPRESSION 外部ルーチン名 |
routine_begin_group | BEGIN GROUP 外部ルーチン名 |
routine_end_group | END GROUP 外部ルーチン名 |
routine_end_expression | END EXPRESSION 外部ルーチン名 |
routine_comment | コメント |
このsys_params テーブルは ユーザー定義関数のパラメータ情報が記録されます。
表 2-11: UDF パラメータのデータ辞書: sys_params
アトリビュートAttributes | 説明 |
param_name | パラメータ名 |
param_number | パラメータ番号 |
param_mod_num | モジュール番号 |
param_routine_num | ルーチン番号 |
param_mode |
パラメータモード。
IN の場合、"i"、 OUT の場合、 "o"、 INOUTの場合は、"x"が設定されます。 |
param_dtname | パラメータ・データ・タイプ |
param_dtpar1 | 第1パラメータ・データ・タイプ |
param_dtpar2 | 第2パラメータ・データ・タイプ |
param_dtpar3 | 第3パラメータ・データ・タイプ |
param_dtpar4 | 第4パラメータ・データ・タイプ |
param_dtpar5 | 第5パラメータ・データ・タイプ |
param_dtpar6 | 第6パラメータ・データ・タイプ(予約) |
param_comment | コメント |
この sys_rep_tables テーブルは
マスターテーブルとリプリケートテーブルの全体的な情報が記録されます。
1つのレコードはデータベース内のそれぞれのリプリケーションテーブルに
対応するテーブルの情報を管理します。
sys_rep_tablesの詳細は
[
Empress リプリケーション・ユーザーズ・ガイド:リファレンス
] を参照してください。
2.2.12 リプリケーションマスターエントリのデータ辞書: sys_rep_masters
この sys_rep_masters テーブルは データベース内のリプリケーションテーブルのリプリケーション・マスター・エントリ 情報が記録されます。 1つのレコードには、リプリケーション・マスター・エントリのための情報が このテーブルに管理されます。
sys_rep_mastersの詳細は [ Empress リプリケーション・ユーザーズ・ガイド:リファレンス ] を参照してください。この sys_rep_replicates テーブルは データベース内のリプリケーションテーブルのリプリケーションリプリケートエントリ情報が 記録されます。 1つのレコードには、リプリケーションリプリケートエントリのための情報が このテーブルに管理されます。
sys_rep_replicatesの詳細は [ Empress リプリケーション・ユーザーズ・ガイド:リファレンス ] を参照してください。この sys_roles テーブルは、データベースロールについての情報が記録されます。
表 2-12: ロールのデータ辞書 - sys_roles
アトリビュート | 説明 |
role_grantor | ロールを付与する者 |
role_grantee | ロールを付与される者およびロール |
role_grantee_type | grantee のタイプ; ユーザーまたはロール |
role_name | ロール名 |
role_admin | ロールが[ WITH ADMIN OPTION ]付きで付与されたかどうかを示します。 |
すべての Empress データベースには 数多くのEmpress データベース管理変数のデフォルト値が記述された tabzeroと呼ばれるファイルが存在します。 このファイルは、Empressがデータベースにアクセスしたときに最初に読み込まれ、 この中の値は、これらの変数のどのようなデフォルト環境、またユーザーの設定より優先されます。
このことはデータベースの安全性を意味します。 たとえば、単に環境変数によって設定するだけで すべての権限を持つ、データベース管理者と自ら宣言することを できないようにするためです。
tabzeroは、データベースを作成したときに自動的に作成され、 このファイル中の値はシステムのエディタで変更することが可能です。 (それを変更することができるようにするためにtabzeroファイルに 対するオペレーティングシステムファイルのアクセス許可が必要になります。) このファイル中のデフォルト値はEmpressインストールされたところの customディレクトリの下($EMPRESSPATH/rdbms/custom)の tabzeroから取得されています。
データベース管理者はデータベースを作成したユーザー名が設定されます。
データベースの作成者以外の他のユーザーアカウントでデータベースをコピーした場合、 tabzeroの編集し、データベース管理者の名前の変更するが必要あります。 これは新しい所有者はデータベースにアクセスすることができないためです。
例として、以下に joeにより作成されたデータベースの 標準的なデフォルト値が記述された Empressバージョン8.62 の tabzeroを示します。
: '(c) Copyright Empress Software Inc. 1983, 2003' MSDBADMINISTRATOR=joe MSNFSSHARE= MSDBPERMS= MSDBDBAPRIVS=dba dba dba; dba dba user grant MSDBPRIVS=creator creator dba; creator user user grant MSDBLOCKLEVEL=record MSDBLOCKGRANULARITY=1 MSDBLOCKSTATS= MSDBTHRESCHAINLEN=1.5 MSDBVALIDATESIZE= MSDBINDEXPRIMARY=2 MSDBINDEXOVERFLOW=15 MSDBAUDITTRAIL1= MSDBAUDITTRAIL2= MSDBRECOVERYLOG1= MSDBRECOVERYLOG2= MSDBLOGFILE= MSDBDICTTABLENUMBER=1 MSDBDICTLOCK=record MSDBDICTINDEX=1 0 MSDBVERSION=8.62 MSDBVERSION_FEATURES=8.62 MSDBSERVERPORTID= MSDBAUDITTERSE= MSCOORDDISABLE= MSDBMAXPROCS=256 MSDBBLOCKSIZE=2 MSDBPUBLICPRIVILEGES=\ [SYS_OS_WIN32] X [ALL] MSDBDFC=421 MSSHMKEY=21105037 MSSHMPROTECTION= MSPARTNAME=DEF_LOCK_PART MSPARTTYPE=LOCK MSPARTLOCKNLOCKS=2000 MSPARTEND MSSHMEND MSDBDICTPARAMS MSPARAMLOCK MSPARTLOCKNAME=DEF_LOCK_PART MSPARAMLOCKEND MSDBDICTPARAMSEND MSPARAMLOCK MSPARTLOCKNAME=DEF_LOCK_PART MSPARAMLOCKEND
tabzeroファイルは、 新しいEmpressのデータベースが作成された時に Empressがインストールされたところのcustom ディレクトリ($EMPRESSPATH/rdbms/custom)の下にある テンプレートのtabzeroからコピーされます。 システム全体のデフォルト値を変更したい場合は、 customディレクトリの下のtabzeroを 編集することになりますが、 このファイルを編集をする前にオリジナルのtabzeroファイルを tabzero.origのような名前でコピーすることを 強く推奨します。 これはEmpressシステムのテストルーチンを実行する場合、 値をオリジナルに戻さなければならないために必要で、 システム変数がオリジナルの値とは異なる場合、エラーを発生することがあります。 (テストを実行しない場合でも、オリジナルの保存をしてください。)
以下はデータベース管理変数のリストとこれらの機能の簡単な説明です。
表 2-12: Empress データベース管理変数
名前 | 機能 | |
MSCOORDDISABLE | データベース・コーディネイターの無効 | |
MSDBADMINISTRATOR | データベース管理者を設定します。 | |
MSDBAUDITTERSE | オーディット・トレイルにデータ値を出力するかしないかを指定します。 | |
MSDBAUDITTRAIL1 | オーディット・トレイルのログを保管する最初のファイルを指定します。 | |
MSDBAUDITTRAIL2 | オーディット・トレイルのログを保管する2番目のファイルを指定します。 | |
MSDBBLOCKSIZE | データベースによって利用されるシステムブロックサイズを指定します。 | |
MSDBDBAPRIVS | データ辞書テーブルに付与される特権を制御します。 | |
MSDBDFC | データフォーマットコードを指定します。 | |
MSDBDICTINDEX | 内部的なテーブルの検索おいて sys_dictionaryでのインデックスの利用を指定します。 | |
MSDBDICTLOCK | コンパイル辞書テーブルsys_dictionaryのロックの設定をします。 | |
MSDBDICTTABLENUMBER | sys_dictionary テーブル番号 | |
MSDBINDEXOVERFLOW | インデックスのデフォルトのオーバフロー領域(2次記憶領域)の長さを指定します。 | |
MSDBINDEXPRIMARY | インデックスのデフォルトのプライマリ領域(主記憶領域)の長さを指定します。 | |
MSDBLOCKLEVEL | 新しくテーブルを作成した場合のデフォルトのロックレベルを設定します。 | |
MSDBLOCKSTATS | アクティブロックの統計情報を収集。 | |
MSDBMAXPROCS | データベースにアクセスが許可されている最大プロセス数を指定します。 | |
MSDBPERMS | データベーステーブルのデフォルトのアクセス許可の設定をします。 | |
MSDBPRIVS | テーブル作成時に与えられる特権を制御します。 | |
MSDBRECOVERYLOG1 | リカバリ・ログを保管するで最初のファイルを指定します。 | |
MSDBRECOVERYLOG2 | リカバリ・ログを保管する2番目のファイルを指定します。 | |
MSDBSERVERPORTID | Cray のコンピューターだけに適用され、 この変数は Empress 内部で利用されます。 | |
MSDBTHRESCHAINLEN | ロックの分配において受けることができる変動量を決定する。 | |
MSDBVALIDATESIZE | レコードのチェックサム値のサイズを制御します。 | |
MSDBVERSION | Empress バージョン番号 | |
MSNFSSHARE | NFS上でデータベースの同時アクセスする場合に指定します。 | |
MSDBLOGFILE | データベースログを保管するファイルを指定します。 | |
MSDBLOCKGRANULARITY | テーブルのユーザー定義のロックの粒度を設定します。 | |
MSDBPUBLICPRIVILEGES | Empress データベース特権のバイパス | |
MSDBVERSION_FEATURES | Empress 内部変数 |
この変数がセットされた場合、 データベースアクセスはコーディネイターを無視します。 これは速度向上の理由かリード・オンリー・データベースの構築の際に設定します。
MSDBADMINISTRATORは、データベースの データベース管理者(DBA)のログイン名を設定します。 データベースのDBAをjoeと設定するには tabzeroファイルを編集し、 MSDBADMINISTRATORの値を次のように変更します。
MSDBADMINISTRATOR=joe
注意として、他のユーザーがデータベースをコピーした場合、 DBAの名前を変更することが必要です。 これにより、新しいユーザーがDBAとして認識され、 データベースにアクセスすることができます。
オーディット・トレイルはデータベースへのすべてのアクセスの情報を 記録するために利用されます。 データベースのすべての操作の記録であり、データを修正しない操作でさえも記録されます。 MSDBAUDITTERSEが設定された場合、オーディット・トレイルは、データ値なしに すべての操作を記録します。
MSDBAUDITTRAIL1は、オーディット・トレイルの情報を保管するための ファイルパスを指定します。また、MSDBAUDITTRAIL2は、 同じ情報を保管するための2番目のファイルパスを指定します。 2番目のファイルの指定は、追加保護であり、 通常、これらの指定において、オペレーティングシステムやハードウェアの 障害の場合を考慮して、異なったファイルシステムやなるべく異なったディスク上の ファイルを指定します。
これらの変数を設定するかしないかにより、簡単にオーディット・トレイルの ログ出力を有効にしたり、無効にしたりすることができます。
512バイトの倍数によるマシンのブロック・サイズを指定します。 デフォルト値はシステムにより異なりますが、 ほとんどのシステムは2が設定されます。 データベースのアクセスにおいて、扱うデータセットのほとんどが 大きい場合、この変数の値を上げることで効果があります。
MSDBDBAPRIVSは、データベース作成時にシステムテーブル に与えられる特権を指定します。パラメータの設定のフォーマットは 以下になります。
MSDBDBAPRIVS = grantor grantee {, grantee} privilege {, privilege} [GRANT] {; grantor grantee {, grantee} privilege {, privilege} [GRANT]}
grantor | 特権を付与するユーザー名 |
grantee | 特権を付与されるユーザー名、 またはdba, creatorおよびpublicの 特別に定義された名前のいずれか1つを指定します。 |
privilege | ALTER, DELETE, DISPLAY, DROP, EMPTY, INDEX, INSERT, SELECT, SORT or UPDATE [(attr{, attr})] のうちのいずれか1つを指定します。 |
簡略に指定するために dba, allおよび user の3つの特別な特権のタイプがあります。 dbaは、 ALTER, DROP, EMPTY, INDEX, と SORTを含んでいます。 allは、すべての特権を含んでいます。 userは、DELETE, DISPLAY, INSERT, SELECT とUPDATE を含んでいます。
MSDBDBAPRIVSのデフォルトの設定"dba dba user grant" は、 データ辞書テーブルに対し、すべての"user" 特権を"grant" オプション付きで DBAに与え、そして、"grantor" をDBAとして指定しています。
例として、DBAによって "Joe"にすべての特権を"GRANT" オプション付きで与え、 "Joe"よって、"Mosca" と "Jones"に select と display 特権を "GRANT"オプションなしで与える場合、以下の設定になります。
MSDBDBAPRIVS=dba joe all grant; joe mosca display, select;\ joe jones display, selectデータ辞書テーブルにこれらの特権の設定をするためには Empressがインストールされた customディレクトリの下の tabzeroの編集し、適切な行を変更後にデータベースを作成します。
tabzeroの記述の注意
エントリは1行内に収めることが必要です。
1行以上になる場合は、行が続くことを意味する文字
("MSLINECONT"に設定された文字でデフォルトでは"\")
を上記の例のように最終行以外の行の末尾に記述します。
この変数は、データベースのデータ・フォーマット・コード(Data Format Code:DFC) を指定します。 デフォルトでは、システム固有のDFCでデータベースは作成されますが、 MSDBDFCをシステム固有ではない異なったDFCをセットすることで データベース作成時、empmkdbコマンドを通じて、異なったDFCの データベースを作成することができます。 たとえば、データベースがリモートホストによってアクセスされるように設計され、 そのリモートホストが異なったアーキテクチャである場合、 リモートホストのDFCがデータベースの作成に使われることで データ変換のオーバーヘッドはなくなることになります。
このMSDBDFC変数は、3つのアスキー数字が含まれ、 lseは、以下の3つの特性について記述しています:
l | long integer のバイトサイズ |
s | short integer のバイトサイズ |
e | バイトオーダー。 ビックエンディアンは 0 、リトルエンディアンは 1 |
例として Sun Sparc Station の DFC は "420" になります。 この意味は、 long integer が 4 バイト、short integer が 2 バイトで バイトオーダーはビックエンディアンになります。
MSDBDICTINDEXは、 暗黙的なシステム検索(内部的にEmpressがテーブル名での検索をする) のためにインデックスが作成された場合の sys_dictionaryテーブル(コンパイル済み辞書テーブル)の dict_tabnameアトリビュートのインデックスタイプの 指示を与えます。
この変数が設定された場合、 Empressは、テーブルの名前を探すために sys_dictionaryの検索時に dict_tabnameアトリビュートのインデックスを期待します。 変数が設定されない場合は、Empressはインデックスが有効ではないことを 仮定します。
この変数はデータベースを作成される間にEmpressによって設定されます。 ユーザーは、この変数の値を変更しないでください。 以下のエラーメッセージが出力される場合があります。
*** Database Problem *** no file 'database_directory_path/00010001.ix' *** Data Dictionary creation fails *** 'database_name'
この変数の値は
MSDBDICTINDEX=1 0
これはdict_tabnameアトリビュートのインデックスをユニークインデックスと して指定しています。
MSDBLOCKDICTは、コンパイル済み辞書テーブル(sys_dictionary)に 対してロックモードを設定します。 値として、1単語を指定しますが、その単語の最初の1文字目に意味があります。 none, record, group, table のそれぞれの ロックレベルの最初の文字n, r, g, tに 意味があります。 このsys_dictionaryテーブルに対するロックレベルをレコードに設定するためには、 Empressをインストールしたcustomの下のtabzeroファイルに 以下のようにセットします。 (データベースを作成してから設定しても定義は有効ではありません。)
MSDBLOCKDICT=record
MSDBDICTTABLENUMBERは、コンパイル済み辞書テーブル(sys_dictionary)に 対応するテーブル番号を指定します。0001.relに対応するデフォルトは1になります。
MSDBINDEXPRIMARYとMSDBINDEXOVERFLOW変数は、 ユニークインデックス以外のインデックスが作成される場合に プライマリとオーバーフローのデフォルトの記憶領域長を指定します。 デフォルトでは、MSDBINDEXPRIMARYが 2、 MSDBINDEXOVERFLOWに 15 が設定されています。
たとえば、デフォルトとしてユニークインデックスとして指定した場合、 (PRIMARY=1, OVERFLOW=0), tabzero中のこれら2つの変数を以下のように編集します。
MSDBINDEXPRIMARY=1 MSDBINDEXOVERFLOW=0
設定後、CREATE INDEX コマンドは
CREATE INDEX ON table_name (attr_name);
以下のコマンドと同意になります。
CREATE UNIQUE INDEX ON table_name (attr_name);
MSDBLOCKLEVELは、新規に作成されたテーブルのロックモードを設定します。 値として、1単語を指定しますが、その単語の最初の1文字目に意味があります。 none, record, group, table のそれぞれの ロックレベルの最初の文字n, r, g, tに 意味があります。 新しいテーブルに対するロックレベルをレコードに設定するためには、 tabzeroファイルに以下のようにセットします。
MSDBLOCKLEVEL=record
この変数は、ロック・マネージャーの統計のための集計処理を有効にします。 この情報は ロック・マネージャーの詳細な統計レポートを作成するための empadm lockstatsコマンドによって利用されます。
統計のための集計処理はデフォルトでは設定されていません。 統計を有効にするためには、MSDBLOCKSTATS変数に 何か値を設定します。
MSDBLOCKSTATS=X
この変数はデータベースにアクセスすることを許可する最大プロセス数を指定します。 この値はライセンス・キー、あるいはinitfile中のMSMAXPROCS変数に よって最小値が設定されています。 (ライセンス数以上のプロセス数を設定しても有効ではありません。)
MSDBPERMSは、新規に作成されたデータベーステーブルにデフォルトのアクセス許可を 設定します。 このアクセス許可は"R ("read"), "W" ("write"), "X" ("execute") のいずれかの結合からなり、 "owner", "group" , "other" の順になります。 "owner"を"read-write"、"group"を"read"、"other"を "read"として設定する場合、 データベースを作成する前にEmpress をインストールした "custom"ディレクトリ の下のtabzeroファイルを以下のように修正します。
MSDBPERMS=RW,R,R
MSDBPERMSは、デフォルトの値を持っていません。 それはオペレーティングシステムのデフォルトのパーミッションが適用されるためです。
MSDBPRIVS
tabzeroの記述の注意
エントリは1行内に収めることが必要です。
1行以上になる場合は、行が続くことを意味する文字
(MSLINECONTに設定された文字でデフォルトでは\)
を上記の例のように最終行以外の行の末尾に記述します。
MSDBPRIVS=grantor grantee {, grantee} privilege {, privilege} [GRANT] {; grantor grantee {, grantee} privilege {, privilege} [GRANT]}
MSDBPRIVSのデフォルト値は "creator creator dba; creator user user grant" です。 テーブルの作成者に"GRANT"オプションなしのすべての"dba"特権を与え、 "creator"として "grantor"を定義しています。 また、"creator"によってカレントユーザーに"GRANT"オプションなしの すべての"user"特権を与えています。
例として、データベース管理者によって"Joe"に"GRANT"オプション付きの すべての特権と"Joe"によって"Mosca"と"Jones"に"GRANT"オプションなしの "SELECT"と"DISPLAY"特権を与え、通常のテーブルを作成する場合は以下のように 設定します。
MSDBPRIVS=dba joe ALL grant; joe mosca DISPLAY, SELECT;\ joe jones DISPLAY, SELECT
tabzeroの記述の注意
エントリは1行内に収めることが必要です。
1行以上になる場合は、行が続くことを意味する文字
("MSLINECONT"に設定された文字でデフォルトでは"\")
を上記の例のように最終行以外の行の末尾に記述します。
MSDBRECOVERYLOG1はリカバリー・ログを保管するファイルを指定します。 オペレーティングシステムの障害の発生時、 データベースへの変更はこのファイルから復元することが可能です。 この変数を設定し、空のファイルを作成することでリカバリー・ログへの 記録が有効になります。設定しない場合は記録は行われません。 リカバリー・ログの複製はMSDBRECOVERYLOG2によって指定されたファイルに 保存されます。 通常は、オペレーティングシステムあるいはディスク障害の対策として、 2番目のログは、異なったファイルシステム上に保存し、できれば、 1番目のディスクドライブとは異なったドライブ上に保存します。
この変数はクレイ・スーパー・コンピュータ・システムの場合のみに
Empressの内部変数として使われます。
2.3.1.19 MSDBTHRESCHAINLEN
この変数は現在のロック数に基づいたチェーンの長さのしきい値を計算するために利用されます。
この変数はデータ辞書テーブルのレコードのチェックサム値のサイズを制御します。 デフォルトでは、データ辞書テーブルにチェックサムは設定されていません。
MSDBVERSIONは、製品のバージョン番号で、たとえばバージョン 8.62の場合、 8.62が設定されています。
MSNFSSHAREが設定された場合、Sun NFS ネットワーク中のそれぞれのノードの メモリバッファをクリアします。 これは数人のユーザーによって同時にアクセスされた場合、 データの不整合をおこならいようにすることを保証します。
tabzero中のMSNFSSHAREの設定は以下のように設定します。
MSNFSSHARE='y'
このMSNFSSHARE変数を利用することでパフォーマンスが およそ2倍ぐらい悪くなることに留意してください。
データベースログを出力するファイルを指定します。 データベースログはデータベースアクセスの経緯を 監視するために使われ、Empress データベースログ アナライザユーティリティの入力ファイルにもなります。 指定されない場合は、データベースログファイルは作成されません。
この変数はテーブル上のユーザー定義のロックの粒度を設定します。
MSDBLOCKGRANULARITY=n と指定された場合、 周囲のレコードのコマンド プラス (n-1) で遭遇した テーブル中のそれぞれのレコードをロックします。 この場合ロックされた n レコードは "PAGE" ロックを構成しています。
この変数は以下のコマンドと 同じ機能性を提供します。
LOCK LEVEL [ON] table [IS] RECORD (n) ;
パフォーマンスと同時性の相互を考慮し、 ロックの粒度の右の値を選んでください。 (つまり"PAGE"中の多くのロック)
デフォルトの設定は MSDBLOCKGRANULARITY=1 です。
この変数はデフォルトで Win32 プラットフォーム上(MSDBPUBLICPRIVILEGES=X)で 設定され、Empressデータベース特権を無視します。 したがって、データベースの与えられた特権は MSDBPUBLICPRIVILEGES 変数に何も設定されていない状態で 効果があります。
この変数はEmpress内部変数として利用されています。 この値を変更しないでください。.
データベースの整合性を維持するために データベースにアクセスするプログラムはコーディネーターと 呼ばれるファイルにそれらの情報を登録することを要求されます。 コーディネーターはオンラインバックアップのプロセスの状態を含む、 すべてのクライアントの状態の記録を保持します。
クライアントが開始したとき、 コーディネーターにそれ自身の情報を登録します。 プロセスが終了するまで登録された情報は残り、 コーディネーターからそれ自身の情報を削除した時が、 プロセスの終了になります。 このアクティブなクライアントの記録は、 たとえばクライアントが オンラインバックアップが実行されていることを知ること を保証します
コーディネーターを伴った Empress プロセスのコミュニケーションは ユーザーに対し、完全に透明です。 データベースが最初に作成されたときにコーディネイターは 自動的にデータベースディレクトリ中に作成されます。 コーディネイターの情報はデータベースディレクトリ中の cdinatorと呼ばれるファイルに管理されています。 コーディネーターはデータベースをアクセスするすべてのプロセスの記録を このファイルを通して見えるために利用します。
cdinatorの情報は、empadmユーティリティを利用することで 参照することができます。 詳細な情報はこのマニュアルの データベース管理 の章を参照してください。
dd_cacheファイルはデータ辞書のユニバーサルフォーマットキャッシュを 含みます。 現在、このファイルはパーシステント・ストアード・モジュールの情報のみを格納しています。 将来、より多くの情報をサポートするために拡張予定です。
Empressは、ロック・マネージャーの2つの物理的な実装方法として ファイル・ロック・マネージャーとシェアード・ロック・マネージャーを 実装しています。
ファイル・ロック・マネージャーはデフォルトのロックの実装です。 xxxx.lckように名前付けされた多くのファイルを含む ロック・ディレクトリ_lockは、データベースディレクトリ中に 存在します。 xxxxの番号は.relファイルに対応づけされたテーブルの テーブル番号になります。 たとえば、tテーブルが0092.relファイルと対応されている場合、 そのロックファイルは_lock/0092.lckになります。 このファイルが削除された場合、ロック・マネージャーはロックを保持する必要 があるため、次回のアクセスにおいて自動的に作成されます。
また、データベースのロック情報を表示するためのempadmユーティリティを 使うことができます。 empadmの詳細な情報をこのマニュアルの データベース管理 の章で参照してください。
ユーザー定義のパーシステント・ストアード・モジュール・ライブラリは このディレクトリに格納されます。
トランザクションは、処理を1単位として扱うためのデータベース操作のセットです。 トランザクション処理が開始された時に データベース・トランザクション・ログ・ディレクトリ_trnの下に 自動的にトランザクション・ログファイルが作成されます。 このログファイルはxxxxxx.trnのように名前付けられ、 このxxxxxxの番号はトランザクションのプロセス番号に対応しています。 1つのトランザクションが完了した場合、このトランザクションに対応付けられている ログファイルは自動的に削除されます。
DISPLAY WORK SQL コマンドや ウォーム・リスタート(empwarm)ユーティリティ、 オンラインバックアップおよびリカバリー(empolbak and emprecov) ユーティリティはトランザクションプロセス情報取得のためにトランザクションログファイルに アクセスします。