Symfoware Parallel Server RDBユーザーズガイド データベース定義編 |
目次
索引
![]() ![]() |
第2章 データベースの作成 | > 2.3 データベースの作成方法 |
ここでは、定義ファイルからデータベースを作成する方法を示します。
rdbddlexコマンドでは、物理構造、論理構造および格納構造を定義することができます。手順としては、最初に、rdbddlexコマンドで使用する入力ファイルを作成します。そのあとで、rdbddlexコマンドを実行します。
なお、rdbddlexコマンドのdオプションは、定義ファイルの最初のSQL文がCREATE DATABASE文のときのみ省略することができます。
rdbddlexコマンドの入力ファイルを記述する文法の一般形式を以下に示します。
1つのSQL文の終わりには終了子“;”を指定することが必要です。
CREATE DATABASE RDBDB ; (1) |
(1) 終了子の指定
プロシジャルーチン定義を行う場合は、入力ファイルの先頭に“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; |
目次
索引
![]() ![]() |