Symfoware Parallel Server RDBユーザーズガイド データベース定義編
目次 索引 前ページ次ページ

第2章 データベースの作成> 2.9 格納構造定義の簡略化

2.9.2 インデックス定義

インデックスの定義は、CREATE INDEXを使用して行います。インデックス定義では、インデックスキーの構成列および表のデータを格納するデータベーススペースを指定します。インデックス定義により、インデックスのDSO定義およびインデックスのDSI定義が自動的に行われます。

■インデックス

インデックスにつける名前(インデックス名)を定義します。インデックス名は8文字以内の先頭が英字で始まる英数字、または8文字以内の日本語文字列で指定します。 ただし、システム用の動作環境ファイルでDEFAULT_DSI_NAME=CODEを指定した場合、インデックス名は、18文字以内の先頭が英字で始まる英数字、または18文字以内の各国語文字列を指定することができます。

インデックス定義の削除を行う場合には、削除対象とするインデックス定義をインデックス名で指定します。

■キー指

インデックスキーとする列を列名で指定します。複数の列を組み合わせて1つのインデックスとすることもできます。

■格納領域指

インデックスを格納する、データベーススペースのデータベーススペース名を“ON”のうしろに指定します。

在庫管理データベースの製品番号列と、製品名列の組合せをキーとするインデックスの格納構造を定義する例を以下に示します。インデックス名は“IDX1”とします。

また、インデックスはデータベーススペースDBSPACE1に格納するものとします。

在庫表を定義するCREATE INDEX文
CREATE INDEX     STOCKS.在庫表.IDX1     KEY(製品番号,製品名) 
                   (1)    (2)   (3)               (4)        
                                                  (5)

                 COMMENT '在庫表のインデックス KEY : 製品番号,製品名' 
                                         (6)

                 ON DBSPACE1 
                      (7)   
                      (8)

(1) スキーマ名

(2) 表名

(3) インデックス名

(4) 列名

(5) キー指定

(6) 注釈定義

(7) データベーススペース名

(8) 格納領域指定

なお、上記の指定は、以下の定義をしたのと同じ意味です。

CREATE DSO @STOCKS#IDX1 

       INDEX ON STOCKS.在庫表(製品番号,製品名) 

       TYPE BTREE(PAGESIZE1(2),PAGESIZE2(2)) BY ADDRESS 

CREATE DSI @STOCKS#IDX1 INDEX DSO @STOCKS#IDX1 

       OPTION (DEGENERATE) 

       ALLOCATE BASE ON DBSPACE1 SIZE 168K, 

       INDEX ON DBSPACE1 SIZE 32K 

■インデックスのDSO名およびDSI

インデックスのDSO名、およびDSI名はインデックス定義時のスキーマ名とインデックス名を組み合わせて命名します。DSO名とDSI名は同じ名前になります。

 スキーマ名 {#|@} インデックス名 ”
   (1)    (2)       (3)        (4)
(1) 固定プレフィックス
(2) CREATE INDEX文で指定したスキーマ名
(3) #: インデックス名が文字列の場合
    @: インデックス名が各国語文字列の場合
(4) CREATE INDEX文で指定したインデックス名

ただし、スキーマ名、インデックス名のいずれか、または両方が各国語文字列の場合には、DSO名およびDSI名は、全体が各国語文字列となります。

システム用の動作環境ファイルでDEFAULT_DSI_NAME=CODEを指定した場合、インデックスのDSO名およびDSI名は、システムで採番する10けたの数字を使用して命名します。

以下に例を示します。

例1

スキーマ名およびインデックス名が文字列の場合
CREATE INDEX STOCKS.在庫表.IDX1 KEY ( …… ) ON DBSPACE1 

→DSO名:@STOCKS#IDX1 
  DSI名:@STOCKS#IDX1 

例2

スキーマ名は文字列、インデックス名が各国語文字列の場合
CREATE INDEX STOCKS.在庫表.部品番号IX KEY ( …… ) ON DBSPACE1 

→DSO名:@STOCKS@部品番号IX 
  DSI名:@STOCKS@部品番号IX 

例3

システム用の動作環境ファイルでDEFAULT_DSI_NAME=CODEを指定した場合
CREATE INDEX STOCKS.在庫表.IND1MASTER KEY ( …… ) ON DBSPACE1 

→DSO名:@0000000017 
  DSI名:@0000000017 

■インデックスの格納構

インデックスの格納構造は以下のようになります。

格納構造:
BTREE構造
データ部のページ長:
2キロバイト
インデックス部のページ長:
2キロバイト
データ部の割付け量:
168キロバイト
縮退指定:
あり
インデックス部の割付け量:
32キロバイト

■インデックスの注釈定

格納構造定義を簡略化してインデックスを定義する場合、インデックスに対して、文字列または各国語文字列で注釈を指定することができます。最大256バイトの文字列を指定することができます。文字列と各国語文字列の両方を注釈として指定することもできます。注釈が不要な場合は、指定を省略します。以下に例を示します。

格納構造を簡略化したインデックスに注釈をつけます。
CREATE INDEX  STOCKS.在庫表.IDX1  KEY(製品番号,製品名) 

              COMMENT '在庫表のインデックス KEY : 製品番号,製品名' 
                                   (1)

              ON DBSPACE1 

(1) 注釈定義


目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2006