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

第2章 データベースの作成> 2.7 格納構造の定義

2.7.1 表のDSO定義

表のDSOの定義は、CREATE DSOを使用して行います。

以下に表のDSO定の例を示します。

表のDSO定義
CREATE DSO  在庫表DSO  FROM STOCKS.在庫表 
                 (1)               (2)

            TYPE SEQUENTIAL(PAGESIZE(4),ORDER(1)) 
                            (3)

(1) DSO名

(2) 表名

(3) データ構造

CREATE DSO  発注表DSO  FROM STOCKS.発注表 
                (1)                 (2)

                          TYPE STRIPE(PAGESIZE(32),ORDER(1)) 
                                          (3)

                          WHERE (取引先)BETWEEN (?) AND (?) 
                                    (4)           (5)     (5)
                                         (6)

(1) DSO名

(2) 表名

(3) データ構造

(4) 列名リスト

(5) 仮値リスト

(6) 分割条件

CREATE DSO  発注表DSO  FROM STOCKS.発注表 
                (1)                 (2)

                          TYPE SEQUENTIAL(PAGESIZE(4),ORDER(1))
                                          (3)

                          WHERE (取引先)BETWEEN (?) AND (?) 
                                    (4)           (5)     (5)
                                          (6)

(1) DSO名

(2) 表名

(3) データ構造

(4) 列名リスト

(5) 仮値リスト

(6) 分割条件

CREATE DSO  発注表DSO  FROM STOCKS.発注表 
                 (1)               (2)

                          TYPE RANDOM(PAGESIZE1(4),PAGESIZE2(4), 
                                      CLUSTER(取引先)) 
                                            (3)

                          WHERE (取引先)BETWEEN (?) AND (?) 
                                    (4)           (5)     (5)
                                          (6)

(1) DSO名

(2) 表名

(3) データ構造

(4) 列名リスト

(5) 仮値リスト

(6) 分割条件

■DSO

DSO名は、18文字以内の先頭が英字で始まる英数字、または18文字以内の日本語文字列を指定します。DSO名は、データベース内で一意です。

■表

格納構造定義に対応する実表の名前を指定します。表名は、スキーマ名で修飾されている必要があります。

■データ構

表のデータ格納時のデータ構造について指定します。DSO定義で表の格納構造を定義する場合には、STRIPE、SEQUENTIALまたはRANDOMが指定可能です。

◆STRIPE

STRIPEを指定した場合、追加されるデータは複数のデータベーススペースに対してデータ量がほぼ均等になるように格納されます。

PAGESIZEは、ページ長を指定します。ORDERには、必ず1(削除領域を再使用する)を指定します。詳細については、“STRIPE構造”を参照してください。

◆SEQUENTIAL

SEQUENTIALを指定した場合、追加されるデータは追加順に格納されます。

PAGESIZEは、ページ長を指定します。ORDER(0)は、削除領域を再使用しないことを指定し、また、ORDER(1)は、削除領域を再使用することを指定します。詳細については、“SEQUENTIAL構造”を参照してください。

◆RANDOM

RANDOMを指定した場合、追加されるデータは無作為な順で格納されます。

RANDOMは、データの格納位置を決定するためのキーを、CLUSTERにより指定します。CLUSTERを省略すると、表定義における主キ(PRIMARY KEY)と同じ列の並びとなります。

PAGESIZE1、PAGESIZE2は、データ構造の要素(RANDOM構造の場合のPRIMEとOVERFLOW)のページ長を指定します。

RANDOM構造の場合は、RULEを指定してデータの格納位置を決定することができます。詳細については、“RANDOM構造”を参照してください。

■分割条

表の分割運を適用する場合に、分割の条件を指定します。実際の分割単位はDSI定義文で指定します。ここでは、分割のための条件だけを指定します。

各分割単位に格納される行は、列名リストに指定された各列に設定する値と、仮値リストの“?”にDSI定義文で指定された値を代入した結果により決定されます。

DSO定義文で分割条件を指定する場合、データ構造がRANDOMのときは、分割条件で指定する列名リストは、CLUSTERで指定した列名リストに含まれた列であることが必要です。

列名リストに指定可能な列の数は、最大で64個です。列名リスと仮値リスの“?”の数は、同じでなければなりません。

CLUSTERおよび列名リストに指定可能な列のデータ型は表:CLUSTERおよび列名リストに指定可能な列のデータ型のとおりです。

[表:CLUSTERおよび列名リストに指定可能な列のデータ型]

属性

精度

位取り

長さ

備考

SMALLINT

 

INTEGER

 

NUMERIC

1〜18

0〜精度

 

DECIMAL

1〜18

0〜精度

 

CHARACTER

1〜1000 (注1)

VARYINGは指定不可

NATIONAL CHARACTER

1〜500 (注2)

VARYINGは指定不可

DATE

 

TIME

 

TIMESTAMP

 

INTERVAL

 

注1)分割条件に指定する場合は、1〜254で指定します。

注2)分割条件に指定する場合は、1〜127で指定します。

CLUSTERおよび列名リストに指定するには、NOT NULLが指定されている必要があります。なお、分割条件で指定された列名リストを分割キと呼びます。

以下に、発注表の取引先と取引製品を1組の分割キーとした発注表のDSO定義の例を示します。

例1

列名リスト中の列名の個数と仮値リストの“?”の個数の関係
分割条件:WHERE  (取引先)=  (?) 
                     (1)      (2)

分割条件:WHERE  (取引先)BETWEEN (?) AND (?) 
                     (1)           (2)     (2)
分割条件:WHERE (製品名,倉庫番号)= (?,?) 
                        (3)            (4)

分割条件:WHERE (製品番号,倉庫番号)BETWEEN (?,?) AND (?,?) 
                        (3)                    (4)       (4) 
      :
      :
列名リスト中の列数と仮値の“?”の数は同数である。 

(1) 列名 = 1

(2) 仮値 = 1

(3) 列名 = 2

(4) 仮値 = 2

 

例2

複数の列を分割キーとした表のDSO定義
CREATE DSO  発注表DSO2 FROM STOCKS.発注表 
            TYPE SEQUENTIAL(PAGESIZE(4),ORDER(1)) 
            WHERE (取引先,取引製品) = (?,?) 

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

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