ページの先頭行へ戻る
Symfoware Server V12.10.0 SQLTOOLユーザーズガイド

3.1 データベースを構築する

Symfoware/SQLTOOLでは、データベース構築のためのSQL文をrdbexecsqlコマンドで実行できます。

参考

データベース簡単運用では、“データベーススペースの作成”および“格納構造定義”は、不要です。

データベースの構築は、以下の手順で実施します。

以下にファイル指定でデータベースを構築する場合の例を示します。

データベース構築に使用する入力ファイルの内容

--  データベース名の登録  データベース名は“RDBDB”
CREATE DATABASE RDBDB;

--  データベーススペースの作成  DDLの実行
  --  データベーススペース定義  データベーススペース名は“DBSPACE1”
  CREATE DBSPACE DBSPACE1 ALLOCATE FILE /RDB2/DBS01 ATTRIBUTE SPACE(2M);

--  論理構造の定義
  --  スキーマを定義  スキーマ名は“STOCKS”
  CREATE SCHEMA STOCKS;
      --  テーブルを定義
      CREATE TABLE STOCKS.在庫表  ( 製品番号       SMALLINT NOT NULL,
                                    製品名         NATIONAL CHARACTER(10) NOT NULL,
                                    在庫数量       INTEGER,
                                    倉庫番号       SMALLINT,
                                    PRIMARY KEY   (製品番号)
                                  );
      CREATE VIEW STOCKS.大量在庫表(品番,数量)
                        AS SELECT   製品番号, 在庫数量  FROM STOCKS.在庫表
                        WHERE 在庫数量 >= 50;

--  格納構造の定義
--  在庫表のDSO
  CREATE DSO 在庫表DSO                               
             FROM STOCKS.在庫表
             TYPE SEQUENTIAL(PAGESIZE(4),ORDER(1));
--  在庫表のDSI
--  DSIのフォーマット指定
  CREATE DSI 在庫表DSI                                 
             DSO  在庫表DSO
             ALLOCATE DATA ON DBSPACE1 SIZE 280K,
             FORMAT;                                      

--  インデックスのDSO
  CREATE DSO 製品番号IXDSO                           
             INDEX ON STOCKS.在庫表 (製品番号)
             TYPE BTREE ( PAGESIZE1(16),PAGESIZE2(1), REALIGNMENT) BY ADDRESS;
--  インデックスのDSI
--  DSIのフォーマット指定
  CREATE DSI 製品番号IXDSI                             
             INDEX
             DSO      製品番号IXDSO
             ALLOCATE BASE      ON DBSPACE1 SIZE 200K,
                      INDEX     ON DBSPACE1 SIZE  40K,
             FORMAT;                                      

--  その他の定義
      --  プロシジャを定義
      EXEC SQL
          CREATE PROCEDURE STOCKS.PROC001 ( IN  KEY1  INTEGER )
                              COMMENT '在庫不足の製品の発注依頼'
          BEGIN
              DECLARE 在庫数量変数 INTEGER;
              SELECT  在庫数量  INTO  在庫数量変数 FROM  STOCKS.在庫表;
                 :
          END
      END-EXEC;

--  データベースの創成  DMLの実行
  --  データのINSERT
  INSERT INTO STOCKS.在庫表 (製品番号,製品名,在庫数量,倉庫番号)
              VALUES (110,N'テレビ',86,2);
  INSERT INTO STOCKS.在庫表 (製品番号,製品名,在庫数量,倉庫番号)
              VALUES (112,N'ビデオ',95,3);

rdbexecsqlコマンドの指定例

$ rdbexecsql -s RDBDB -i /home/user/createdb.dat