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

第2章 データベースの作成> 2.3 データベースの作成方法

2.3.1 rdbddlexコマンドで定義する方法

ここでは、定義ファイルからデータベースを作成する方法を示します。

rdbddlexコマンドでは、物理構造、論理構造および格納構造を定義することができます。手順としては、最初に、rdbddlexコマンドで使用する入力ファイルを作成します。そのあとで、rdbddlexコマンドを実行します。

なお、rdbddlexコマンドのdオプションは、定義ファイルの最初のSQL文がCREATE DATABASE文のときのみ省略することができます。

■rdbddlexコマンドの入力ファイルの記述形

rdbddlexコマンドの入力ファイルを記述する文法の一般形式を以下に示します。

◆形式1

1つのSQL文の終わりには終了子“;”を指定することが必要です。

CREATE DATABASE RDBDB ;  
                     (1)

(1) 終了子の指定

◆形式2(プロシジャルーチン定義を行う場合の記述形)

プロシジャルーチン定義を行う場合は、入力ファイルの先頭に“EXEC SQL”を指定し、最後に“END-EXEC;”を指定します。“EXEC SQL”から“END-EXEC;”までが1つのSQL文とみなされます。この形式は、rdbddlexコマンドにxオプションを指定した場合のみ有効です。

EXEC SQL 
  CREATE PROCEDURE PROC01 
     : 
END-EXEC; 

定義ファイルからデータベースを作成する例を図:定義ファイルからデータベースを作成する例に、定義ファイルの例を図:定義ファイルの例に示します。

注釈は、連続した2個のハイフン“--”で記述することができます。“--”以降その行の右終端までを注釈とみなします。

[図:定義ファイルからデータベースを作成する例]

rdbddlex -d RDBDB                /home/rdb/DDL/ddl.dat 
           (1)                            (2) 

(1) データベース名指定

(2) 入力ファイル指定

[図:定義ファイルの例]

  ddl.dat
-  データベース定義  データベース名は“RDBDB"

CREATE DATABASE RDBDB;

--  データベーススペース定義  データベーススペース名は“DBSP_1”〜“DBSP_4”

CREATE DBSPACE DBSP_1 ALLOCATE RAWDEVICE /dev/rdsk/c1t0d1s1;
CREATE DBSPACE DBSP_2 ALLOCATE RAWDEVICE /dev/rdsk/c2t0d2s3;
CREATE DBSPACE DBSP_3 ALLOCATE RAWDEVICE /dev/rdsk/c3t0d3s3;
CREATE DBSPACE DBSP_4 ALLOCATE RAWDEVICE /dev/rdsk/c4t0d4s1;

--  スキーマを定義  スキーマ名は“STOCKS"

CREATE SCHEMA STOCKS

    --  在庫製品の管理表を定義

    CREATE TABLE  在庫表  ( 製品番号       SMALLINT NOT NULL,
                            製品名         NATIONAL CHARACTER(10) NOT NULL,
                            在庫数量       INTEGER,
                            倉庫番号       SMALLINT,
                            PRIMARY KEY   (製品番号)
                          )                                     

    CREATE VIEW   大量在庫表(品番,数量)
                      AS SELECT   製品番号, 在庫数量  FROM STOCKS.在庫表
                      WHERE 在庫数量 >= 50

    --  発注製品の管理表を定義

    CREATE TABLE  発注表  ( 取引先         SMALLINT NOT NULL,
                            取引製品       SMALLINT NOT NULL,
                            仕入価格       INTEGER,
                            発注数量       SMALLINT,
                            PRIMARY KEY   (取引先,取引製品)
                          )  

    CREATE VIEW   大量発注表(取引製品, 仕入価格)
                      AS SELECT 取引製品, 仕入価格  FROM STOCKS.発注表
                      WHERE   発注数量 >= 100

    --  取引会社の管理表を定義
    CREATE TABLE  会社表  ( 会社番号       SMALLINT NOT NULL,
                            会社名         NATIONAL CHARACTER(10) NOT NULL,
                            電話番号       CHARACTER(14),
                            住所           NATIONAL CHARACTER(20),
                            PRIMARY KEY   (会社番号)
                          )                 

    CREATE VIEW   会社表1 AS SELECT  会社番号,会社名  FROM STOCKS.会社表;

  --  在庫表の格納構造定義

  CREATE DSO 在庫表DSO                               --  在庫表のDSO
             FROM STOCKS.在庫表
             TYPE STRIPE(PAGESIZE(32),ORDER(1));

  CREATE DSI 在庫表DSI                               --  在庫表のDSI
             DSO  在庫表DSO
             ALLOCATE DATA ON (DBSP_1, DBSP_2, DBSP_3) SIZE 6000M;

  --  在庫表の製品番号にインデックスを作成

  CREATE DSO 在庫表IXDSO                           --  インデックスのDSO
             INDEX ON STOCKS.在庫表 (製品番号)
             TYPE     HASH(PAGESIZE1(16),PAGESIZE2(1),DEGENERATE) BY ADDRESS;

  CREATE DSI 在庫表IXDSI                           --  インデックスのDSI
             INDEX                                  
             DSO      在庫表IXDSO
             OPTION(DEGENERATE)              
             BASE 在庫表DSI
             ALLOCATE INDEX  ON (DBSP_1, DBSP_2, DBSP_3) SIZE 60M,
                      BASE   ON (DBSP_1, DBSP_2, DBSP_3) SIZE 600M; 

  --  発注表の格納構造定義

  CREATE DSO 発注表DSO                               --  発注表のDSO
             FROM STOCKS.発注表
             TYPE SEQUENTIAL(PAGESIZE(4),ORDER(1))
             WHERE  (取引先) BETWEEN (?) AND (?);       --  取引先の番号別に
                                                            データ分割配置 


  CREATE DSI 関東発注表DSI                           --  関東に所在の会社用
             DSO      発注表DSO                          の発注表のDSI
             USING   (60,69)                            --  60番台は関東所在
             ALLOCATE DATA ON DBSP_4 SIZE 280K;             の会社


  CREATE DSI 関西発注表DSI                           --  関西に所在の会社用
             DSO      発注表DSO                          の発注表のDSI
             USING   (70,79)                            --  70番台は関西所在
             ALLOCATE DATA ON DBSP_4 SIZE 280K;             の会社


  --  発注表の取引先および取引製品にインデックスを作成

  CREATE DSO 取引IXDSO                             --  インデックスのDSO
             INDEX ON STOCKS.発注表 (取引先,取引製品)
             TYPE     BTREE(PAGESIZE1(4),PAGESIZE2(4)) BY ADDRESS;

  CREATE DSI 取引IXDSI                             --  インデックスのDSI
             INDEX       
             DSO      取引IXDSO
             ALLOCATE INDEX  ON DBSP_4 SIZE 40K,
                      BASE   ON DBSP_4 SIZE 200K; 

  --  会社表の格納構造定義
  CREATE DSO 会社表DSO                               --  会社表のDSO
             FROM STOCKS.会社表
             TYPE SEQUENTIAL(PAGESIZE(4),ORDER(1));

  CREATE DSI 会社表DSI                               --  会社表のDSI
             DSO  会社表DSO
             ALLOCATE DATA ON DBSP_4 SIZE 280K; 


  --  会社表の会社番号にインデックスを作成
  CREATE DSO 会社番号IXDSO                         --  インデックスのDSO
             INDEX ON STOCKS.会社表 (会社番号)
             TYPE     BTREE(PAGESIZE1(4),PAGESIZE2(4)) BY ADDRESS;

  CREATE DSI 会社番号IXDSI                         --  インデックスのDSI
             INDEX               
             DSO      会社番号IXDSO
             ALLOCATE INDEX  ON DBSP_4 SIZE 40K, 
                      BASE   ON DBSP_4 SIZE 200K;

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

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