スケーラブルデータベースサーバ HiRDB ファーストステップガイド(UNIX(R)用)

[目次][用語][索引][前へ][次へ]

2.7.2 表を定義する

表を定義する場合,定義系SQLを使用します。また,定義系SQLはデータベース定義ユティリティpddef)から実行します。

なお,この項では,表の定義に関する基本的なことだけ説明しています。詳細について知りたい場合は,マニュアル「HiRDB Version 7 システム導入・設計ガイド(UNIX(R)用)」を参照してください。

<この項の構成>
(1) 「$HOME/HiRDB/pddef/CreateT.txt」の作成
(2) pddefコマンドの実行
(3) コマンドの実行結果の確認
(4) 表の確認方法
(5) インデクスの確認方法

(1) 「$HOME/HiRDB/pddef/CreateT.txt」の作成

まず,定義系SQLを入力したファイルを作成します。なお,セミコロン(;)の後ろには,空白を入れないでください。また,… n(nは1〜5)は説明上の文字列ですので,実際には入力しないでください。

なお,CreateT.txtには,インストール時に作成されるサンプルファイル/opt/HiRDB_S/sample/sampleDB/tblecreate_eを変更して使用しています。

【$HOME/HiRDB/pddef/CreateT.txtの内容】

CREATE SCHEMA;   ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・1
CREATE FIX TABLE CUSTOM
  (
  CUSTOM_CD            CHAR(5),
  CUSTOM_NAME          CHAR(30),
  TELNO                CHAR(12),
  ZIPCD                CHAR(3),
  ADDRESS              CHAR(30))
IN RDDATA10 PCTFREE=(10,0)
UNIQUE CLUSTER KEY
  (
  CUSTOM_CD            ASC)
IN RDINDX10 PCTFREE=10;   ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・2
CREATE INDEX CUSTOMX ON CUSTOM
  (
  CUSTOM_NAME          ASC)
IN RDINDX10 PCTFREE=10;   ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・3
CREATE FIX TABLE VENDOR
  (
  VENDOR_CD            CHAR(5),
  VENDOR_NAME          CHAR(30),
  TELNO                CHAR(12),
  ZIPCD                CHAR(3),
  ADDRESS              CHAR(30))
IN RDDATA10 PCTFREE=(10,0)
UNIQUE CLUSTER KEY
  (
  VENDOR_CD            ASC)
IN RDINDX10 PCTFREE=10;   ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・4
CREATE INDEX VENDORX ON VENDOR
  (
  VENDOR_NAME          ASC)
IN RDINDX10 PCTFREE=10;   ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・5

〔説明〕
  1. 表,およびインデクスを定義するので,先にスキーマを定義します。
  2. CUSTOM表を定義します。
    表の格納先のRDエリアは,RDDATA10です。
    ページ内の未使用領域の比率は10%,セグメント内の空きページ比率は0%にします。
    列「CUSTOM_CD」をクラスタキー(昇順)にします。
  3. CUSTOM表の列「CUSTOM_NAME」にインデクスCUSTOMXを定義します。
    インデクスを格納するRDエリアは,RDINDX10です。
    ページ内の未使用領域の比率は10%です。
  4. VENDOR表を定義します。
    表の格納先のRDエリアは,RDDTATA10です。
    ページ内の未使用領域の比率は10%,セグメント内の空きページ比率は0%とします。
    列「VENDOR_CD」をクラスタキー(昇順)にします。
  5. VENDOR表の列「VENDOR_NAME」にインデクスVENDORXを定義します。
    インデクスを格納するRDエリアは,RDINDX10です。
    ページ内の未使用領域の比率は10%です。

(2) pddefコマンドの実行

作成した定義系SQLを入力にして,データベース定義ユティリティ(pddef)を実行します。

【コマンド形式】
 
$ pddef < $HOME/HiRDB/pddef/CreateT.txt
 

〔説明〕
「$HOME/HiRDB/pddef/CreateT.txt」というファイルから,定義系SQLを入力して実行しています。

(3) コマンドの実行結果の確認

データベース定義ユティリティが正常に終了すると,次のメッセージが表示されます。

 
KFPA12000-I Processing of SQL completed
KFPA12000-I Processing of SQL completed
KFPA12000-I Processing of SQL completed
KFPA12000-I Processing of SQL completed
KFPA12000-I Processing of SQL completed
 

(4) 表の確認方法

実際に表が定義されたかどうかを確認するために,HiRDB SQL Executerでディクショナリ表を検索します。

「2.7.1 ユーザ名を登録する」からHiRDB SQL Executerを運用し続けている場合,ユーザが「hirman」になっています。その場合,ユーザ名「MANAGER」,パスワード「MANAGER」で接続し直す必要があります。HiRDB SQL Executer上でEXITコマンドを実行してHiRDBサーバと切り離したあと,/opt/pdsql/pdsqlコマンドで接続してください。

【入力SQL】
 
SELECT TABLE_SCHEMA,TABLE_NAME,TABLE_TYPE,N_COLS
  FROM MASTER.SQL_TABLES WHERE TABLE_SCHEMA='MANAGER';
 

【SQLの実行結果】
 
TABLE_SCHEMA       TABLE_NAME         TABLE_TYPE    N_COLS
------------------ ------------------ ------------- ------
MANAGER            CUSTOM             BASE TABLE         3
MANAGER            VENDOR             BASE TABLE         3
 
KFPX27010-I            2 rows selected 
 

(5) インデクスの確認方法

表と同様に,実際にインデクスが定義されたかどうかを確認するために,HiRDB SQL Executerでディクショナリ表を検索します。

【入力SQL】
 
SELECT TABLE_SCHEMA,TABLE_NAME,INDEX_NAME
  FROM MASTER.SQL_INDEXES WHERE TABLE_SCHEMA='MANAGER';
 

【SQLの実行結果】
 
TABLE_SCHEMA       TABLE_NAME         INDEX_NAME
------------------ ------------------ -----------------
 MANAGER           CUSTOM             (CLUSTER0000131193)           
 MANAGER           CUSTOM             CUSTOMX                       
 MANAGER           VENDOR             (CLUSTER0000131194)           
 MANAGER           VENDOR             VENDORX                  
 
KFPX27010-I            4 rows selected