Symfoware にはさまざまなデータベースオブジェクトが格納されていますが、
ObjectBrowserではそのほとんどをGUIによって視覚的に捕らえる事ができます。

ここでは各オブジェクトタイプ別に表示されるウィンドウの説明を行いますが、
その前に全ウィンドウの上段に表示される共通ツールボタンについて解説します。
[作成(C)] [定義情報]タブ、または[ソース]タブに設定された情報を元に
テーブルオブジェクトを作成または変更します。
設定が変更されていない場合や[データ]タブを開いている時は
使用できません。
[出力(P)] オブジェクトの定義情報をEXCELファイル もしくは クリップボード に出力します。
[戻す(R)] 最新のデータベース定義を読み直します。
[終了(X)] この画面を閉じます。
[生成] データ生成ツールを表示します。
(このボタンはテーブル画面のみあります。)
→ 3−16参照
[実行] ストアド実行ツールを表示します。
(このボタンはファンクション画面のみあります。)
→ 3−4−1参照
[サンプル] サンプルコードを表示します。
(このボタンは各ファンクション、タイプ画面にのみあります。)

 4 - 1 テーブル



[定義情報]タブ
 上段にはテーブルのコメントと、項目情報として項目名、型、全体桁数(,小数部桁数)、
 NULL可否、省略時値、項目のコメントが表示され、それぞれの情報を修正する事ができます。
 一番下までカーソルを移動すると、一番下に項目を追加できますが、
 [挿入]ボタン、[削除]ボタンで、項目情報の挿入、削除を行う事もできます。
 また、[上に移動]ボタン、[下に移動]ボタンで、項目情報の順番を変更することができます。
 ※扱えるデータ型については「■データ型についての注意点」の説明をご覧下さい。

 下段にはこのテーブルに従属する制約、索引、トリガーが一覧表示されます。
 ここで右クリックによるポップアップメニューを開くと、
 新規作成、選択したオブジェクトの修正、削除、有効/無効の切り替えを行う事ができます。

[CONSTRAINT(制約)] テーブルに従属する制約の名前、制約のタイプ(CHECK, UNIQUE, PRIMARY KEY, FOREIGN KEY, EXCLUDE)、制約の内容、状態を表示します。
→ 4−7参照
[INDEX(索引)] テーブルに従属する索引の名前、重複の有無、索引項目、
状態を表示します。
→ 4−2参照
[TRIGGER(トリガー)] テーブルに従属するトリガーの名前と状態を表示します。
→ 4−5参照

この画面で[作成]ボタンを押した場合、修正した情報によりObject Browserは
ALTER TABLE文によって定義を変更しますが、項目の最終行以外の挿入、削除など、
ALTER TABLE文では変更できない情報がある場合にはCREATE TABLE文を使用します。
この場合は再作成となる為、データ等は全て削除されます。




[ソース]タブ
 テーブルを作成した際のSQL文が表示されます。
 このSQL文を編集し、上段にある[作成]ボタンを押すと、テーブルオブジェクトを
 変更する事ができます。

 オプション画面[定義情報タブ]の「SQL文に領域情報を含める」がチェックされた状態であれば、
 領域情報関係のソースも付加されます。

 この画面で[作成]ボタンを押した場合はCREATE TABLE文を使用しますので、
 データ等は全て削除されます。




[データ]タブ
 テーブルに保有されているデータを修正する事ができます。

 修正したデータは行移動時に自動的にCOMMITされますが、オプション設定により
 COMMIT/ROLLBACKを任意のタイミングで行うようにする事もできます。

 画面上段にある[条件]テキストボックスはデータの抽出条件を記述する事ができます。
 また、その下に表示されている項目一覧の[一致]、[不一致]、[下限値]、[上限値]、[部分一致]に
 値を指定する事でもデータを絞り込む事が可能です。
 (それぞれの抽出条件は AND で結ばれます)

 項目一覧の一番右端にあるソート順序には、1を指定した項目順にデータをソートします。
 複数項目でソートする場合は1、2、・・・というように連番で指定して下さい。
 また DESCと指定すると降順ソートも可能です。
 データ表示部の行ヘッダの部分(現在位置にが表示される部分)をクリックすると
 行全体を選択できます。
 この状態でコピー&ペーストを行うとデータを簡単に増やす事できます。
 (一意制約がある場合はコピーした値を一度メモ帳等で編集し、その値をペーストして下さい)

 ※オブジェクト名にマルチバイト文字を使用する際は、
  オプション画面より自動コミットを有効にしてください。
  →自動コミットについて

 ※扱えるデータ型については「■データ型についての注意点」の説明をご覧下さい。

画面左側にあるツールボタンはそれぞれ次の機能があります。

[データを表示] 入力した抽出条件やソート順序を元にデータを再表示します。
[表示項目の設定] 表示する項目を選択する画面を表示します。
[抽出条件・ソート順] 抽出条件とソート順を入力する表部分を表示・非表示します。
オプション設定により初期状態の設定も可能です。
[抽出条件・
  ソート順設定クリア]
抽出条件とソート順に入力しされた値をすべて削除します。
[クリップボード出力] 指定した抽出条件のSELECT文をクリップボードに出力します。
[結果を編集可能にする] 表示されたデータが編集可能か否かを指定します。
編集が必要ない場合はこのボタンを OFF にすると
反応が良くなります。
オプション設定により初期状態の設定も可能です。
[出力方向変更] データを横方向または縦方向に表示します。
[結果をEXCELファイルに
  出力する]
表示されているデータの全てをEXCELファイルに出力します。
オプション設定により出力方法の変更が可能です。
[結果をクリップボードに
  出力する]
表示されているデータの全てをクリップボードに出力します。
オプション設定により出力方法の変更が可能です。
[レコードの挿入] データを挿入する為の空白行を作成します。
[レコードの削除] 現在位置のレコードを削除します。


[領域情報]
 領域情報には、[標準][一時][継承]があります。

1.標準
 最も一般的な格納方法です。単一の表領域に対して領域を確保します。



画面の各値と実際に発行されるコマンドとの対応は次の通りです。

画面の値 対応するCREATE / ALTER 文のオプション
自動バキュームデーモン AUTOVACUUM_ENABLED
VACUUMベースの
境界線
AUTOVACUUM_VACUUM_THRESHOLD
ANALYZEベースの
境界線
AUTOVACUUM_ANALYZE_THRESHOLD
VACUUMスケール因数 AUTOVACUUM_VACUUM_SCALE_FACTOR
ANALYZEスケール因数 AUTOVACUUM_ANALYZE_SCALE_FACTOR
VACUUM
コスト・ディレイ
AUTOVACUUM_VACUUM_COST_DELAY
VACUUM
コスト・リミット
AUTOVACUUM_VACUUM_COST_LIMIT
最少フリーズ年数 AUTOVACUUM_FREEZE_MIN_AGE
最大フリーズ年数 AUTOVACUUM_FREEZE_MAX_AGE
テーブルフリーズ年数 AUTOVACUUM_FREEZE_TABLE_AGE


2.一時表
 一時テーブルを作成できます。
 一時テーブルのデータ保持期間を設定する事が出来ます。
 ただし、指定できるのは新規作成時のみとなります。




3.継承
 継承テーブルを作成できます。
 親テーブルをリスト部に指定し作成すると「INHERIT」句が発行されます。






[権限]タブ
 画面下段にあるユーザー一覧から対象となるユーザーまたはロールを選択し、
 画面中断の選択したユーザーの権限を変更、最後に[作成]ボタンを押すことで、
 オブジェクト権限の付与・取消し作業を行う事ができます。

3−4−6[権限付与]も合わせて参照して下さい。




[相関]タブ
 テーブルオブジェクトと他オブジェクトとの関連性が表示されます。
 相関情報はデフォルトでは、3階層までの階層表示をおこないますが、
 「オプション」にて設定を変更することで、さらに深い階層表示も可能になります。

3−4−4[クロスリファレンス]も合わせて参照して下さい。

 4 - 2 インデックス



[定義情報]タブ
 上段には対象となるテーブルの名前、インデックスとなる項目の順序を表示します。
 画面中央にある[][]ボタンで項目の追加、削除ができます。

 この画面で[作成]ボタンを押した場合、修正した情報によりObject Browserは
 ALTER INDEX文によって定義を変更しますが、項目の追加削除や表領域の変更など、
 ALTER INDEXでは変更できない情報がある場合にはCREATE INDEX文を使用します。




[ソース]タブ
 インデックスを作成した際のSQL文が表示されます。
 このSQL文を編集し、上段にある[作成]ボタンを押すと、
 インデックスオブジェクトを変更する事ができます。




[領域情報]タブ
 インデックスデータの格納方法を指定します。
 表領域の登録について(→ 5−2−1参照)

 4 - 3 ビュー



[定義情報]タブ
 ビューのコメントと、項目情報として項目名、型、全体桁数(,小数部桁数)、NULL可否、
 省略時値、項目のコメントが表示されます。
 テーブル情報とは違い、この画面ではコメント以外の定義を修正する事はできません。




[ソース]タブ
 ビューを作成した際のSQL文が表示されます。
 このSQL文を編集し、上段にある[作成]ボタンを押すと、
 ビューオブジェクトを再作成する事ができます。




[データ]タブ
 ビューから見えるデータを表示します。
 単一テーブルからのビューの場合等、データ修正可能な条件を満たしている場合は
 データを修正する事ができます。

4−1[データ]タブも合わせて参照して下さい。




[実行計画]タブ
 画面下段にはビューSELECT文の実行計画が階層表示されます。

4−1[データ]タブ3−5[実行計画]タブも合わせて参照して下さい。

 4 - 4 ファンクション、タイプ



 オブジェクトを作成した際のSQL文が表示されます。
 このSQL文を編集し、上段にある[作成]ボタンを押すと、オブジェクトを変更する事ができます。

 オブジェクト作成時にエラーが発生した場合は下段に発生したエラーの一覧が表示されますので、
 その情報を元にデバッグを行います。
 エラーメッセージをダブルクリックすると、エラーの発生個所付近にカーソルが移動します。

 また、[サンプル]ボタンを押すと、サンプルコードを参照することも出来ます。
 サンプルコードを参照することで、PL/SQLの構文など、基本的なことがわかります。

 ファンクションについては、[実行]ボタンを押すと、プログラムを実行する事ができます。

 4 - 5 トリガー



[定義情報]タブ
 トリガーの起動条件を表示します。
 上段にある[作成]ボタンを押すと、オブジェクトを変更する事ができます。

起動条件の詳細については下記の通りです。

テーブル トリガーを作成するテーブルまたはビューの名前です。
行トリガー チェックONの場合は、行毎に1回起動します。
チェックOFFの場合は、SQL文毎に1回のみ起動します。
タイミング 関数の呼び出しをイベントの前に行うか後に行うか、それとも代替として行うかを決定します。
※制約トリガーではAFTERとしてしか指定することができません。
イベント トリガーを起動するイベントを指定します。
複数のイベントを指定することができます。
UPDATEイベントでは、列リストを指定することができます。
※代替UPDATEイベントは列リストをサポートしません。
※TRUNCATEイベントは行トリガーでは使用できません。
変更列 トリガーを起動する対象の列を指定します。
UPDATEイベント選択時に設定できます。
制限 トリガー関数を実際に実行するか否かを決定する論理式です。
行トリガーでは、WHEN条件で、それぞれOLD.column_name、NEW.column_nameと記述することで、
古い行値、新しい行値、またはその両方の列を参照することができます。
当然ながらINSERTトリガーではOLDを参照することはできませんし、
DELETEトリガーではNEWを参照することはできません。
制約トリガーでは、WHEN条件の評価は遅延されず、行の更新操作が行われた直後に発生することに注意してください。
この条件が真と評価されなかった場合、トリガーは遅延実行ようのキューに入りません。
※代替トリガーはWHEN条件をサポートしません。
※副問い合わせを含めることはできません。
制約トリガー トリガの発生タイミングをSET CONSTRAINTSを使用して調整できます。
※制約トリガーはAFTER ROWトリガでなければなりません。
スキーマ 制約参照テーブルのスキーマを選択します。
制約参照テーブル 制約で参照されるテーブルの名前です。
制約遅延あり 制約を遅延させることが可能かどうかを制御します。
※制約遅延なしの場合は、制約検査時期は設定できません。
制約検査時期 制約検査を行うデフォルトの時期を指定します。
ファンクション
スキーマ 使用ファンクションのスキーマを選択します。
使用ファンクション トリガーが起動した時に実行されるファンクションを指定します。
※ファンクションの戻り値が「trigger」の関数が対象となります。
引数 トリガー実行時に関数に渡される引数をカンマで区切ったリストです。




[ソース]タブ
 トリガーオブジェクトを作成した際のSQL文が表示されます。
 このSQL文を編集し、上段にある[作成]ボタンを押すと、オブジェクトを変更する事ができます。

 4 - 6 シーケンス



[定義情報]タブ
 シーケンスオブジェクトについての情報が表示されます。
 情報を修正し、[作成]ボタンを押すと、ALTER SEQUENCE文を発行します。
 ただし、最終番号を変更した場合はCREATE SEQUENCE文による再作成になります。

[現在値][最終番号]の値については次の通りです。

 ■ 現在値
  メモリ上にキャッシュされたシーケンスの最終番号。
  この値に[増分]を加えた値が次回のシーケンス番号となります。
  この値は実際に採番したセッションからでなければ見れません。
  (現在番号の横の[加算]ボタンを押すとインクリメントされた結果が表示されます)

 ■ 最終番号
  ディスク上に保管されたシーケンスの最終番号。
  現在値が最終番号を超えた場合に[キャッシュサイズ]分だけ増加します。
  Symfowareを再起動した場合はこの値からの採番となります。
  最終番号の横にある[加算]ボタンを押すと、現在値をインクリメントする事が出来ます。




[ソース]タブ
 シーケンスを作成した際のSQL文が表示されます。
 このSQL文を編集し、上段にある[作成]ボタンを押すと、シーケンスオブジェクトを
 変更する事ができます。

 4 - 7 制約

画面上段に制約を作成するテーブル名とスキーマ、制約の種類を設定します。
画面下段は制約の種類に応じて変化します。



[定義情報]タブ
 上段には対象となるテーブルの名前、制約の種類を表示します。
 画面中央にある[][][][]ボタンで重複不可となる項目を設定します。

 この画面で[作成]ボタンを押した場合、修正した情報によりObject Browserは
 ALTER TABLE文によって定義を変更します。


[PRIMARY KEY]制約
 画面下段の右側には元テーブルの項目が一覧表示されます。
 画面中央にある[][][][]ボタンで重複不可となる項目を設定します。
 (主キー項目は必ず重複不可になります)

 オプション画面[定義情報タブ]の「SQL文に領域情報を含める」がチェックされた状態であれば、
 領域情報関係のソースも付加されます。




[UNIQUE KEY]制約
 画面下段の右側には元テーブルの項目が一覧表示されます。
 画面中央にある[][][][]ボタンで項目の追加、削除ができます。

 オプション画面[定義情報タブ]の「SQL文に領域情報を含める」がチェックされた状態であれば、
 領域情報関係のソースも付加されます。




[FOREIGN KEY]制約
 画面中段では参照整合性の対象となるテーブル名及びスキーマ、
 そのテーブルのインデックスを設定します。
 画面下段のグリッド項目に上記で設定したインデックスの項目一覧が表示されますので、
 対応するテーブル項目を設定します。




[CHECK]制約
 チェック制約のためのソースを記述します。初めと終わりは括弧を入力します。




[EXCLUDE]制約
 排他制約を作成します。指定した演算子を満たす行は、テーブル中に1行しか存在できません。
 一つの制約中ではアクセスメソッドは固定され、作成後は変更できないようになっています。




[領域情報]タブ
 制約情報の格納方法を指定します。
 表領域の登録について(→ 5−2−1参照)

 4 - 8 ルール



[定義情報]タブ
 ルールオブジェクトについての情報が表示されます。
 この画面で[作成]ボタンを押した場合、修正した情報によりObject Browserは
 DROP RULE および CREATE RULE文を発行します。


 各項目の値については次の通りです。

 ■ 動作イベント
  SELECT、INSERT、UPDATE、DELETE のいずれかを選択します。
  SELECTを選択した際は 名前は"_RETURN"、動作種別はINSTEAD、SQL条件式は無し、
  アクションSQLはSELECT文である必要があります。

 ■ 動作種別
  ALSOは元のコマンドに加えてこのコマンドが実行する設定です。
  INSTEADは、元のコマンドの代わりにこのコマンドが実行する設定です。

 ■ SQL条件式
  任意のSQL条件式です。(boolean型を返します)
  条件式では、NEWおよびOLD以外のテーブルは参照できません。
  また、集約関数を含めることもできません。

 ■ アクションSQL
  ルールのアクションを構成するコマンドを記述します。




[ソース]タブ
 ビューを作成した際のSQL文が表示されます。
 このSQL文を編集し、上段にある[作成]ボタンを押すと、
 ビューオブジェクトを再作成する事ができます。




[相関]タブ
 ルールオブジェクトと他オブジェクトとの関連性が表示されます。
 相関情報はデフォルトでは、3階層までの階層表示をおこないますが、
 「オプション」にて設定を変更することで、さらに深い階層表示も可能になります。

3−4−4[クロスリファレンス]も合わせて参照して下さい。