ページの先頭行へ戻る
Symfoware Server V12.6.0 RDB運用ガイド(データベース定義編)
FUJITSU Software

2.15 データベースの創成

データベースの創成は、実表へのデータ投入で完了します。データの投入は、格納先のデータベーススペースが作成され、実表やインデックスなどの論理構造定義、および格納構造定義が完了してから行います。

データベースの創成方法

データベースの創成方法として、以下の2つがあります。

rdbsloaderコマンドおよびアプリケーションのINSERT文によるデータベースの創成の概要図を以下に示します。

図2.7 データベースの創成方法

rdbsloaderコマンドによるデータベース創成

rdbsloaderコマンドによってデータベースを創成する例を以下に示します。

SolarisLinuxSolaris/Linuxの場合

rdbsloader -mi -i 在庫管理DB.関東発注表DSI /home/rdb/kantou.data 

WindowsWindowsの場合

rdbsloader -mi -i 在庫管理DB.関東発注表DSI C:\DEFAULT\USERS\KANTOU.DATA

ポイント

rdbsloaderコマンドは、分割格納が定義された表のDSIを処理するとき、入力ファイル内に分割値範囲外のデータが含まれている場合、該当データを処理対象とせずに処理を続行し、正常終了します。分割範囲外のデータをエラーとし、入力ファイルの作成ミスや指定ミスによるデータ抜けを検出するためには、Eオプションを使用します。

参照

rdbsloaderコマンドに関する詳細は、“コマンドリファレンス”および“RDB運用ガイド”を参照してください。

参考

rdbsloaderコマンドによるデータベースの創成にかかる処理時間は、以下のいずれかの条件を満たす場合、DSI割付け量に依存します。なお、条件に当てはまらない場合は、入力データ量に依存します。

  • 対象DSIの定義直後

  • 対象DSIがアクセス禁止状態

  • 格納構造が、以下のいずれかの場合

    • RANDOM構造の表

    • RANDOM構造の表のDSIに付加されたBTREE構造のインデックス

    • OBJECT構造の表

    • OBJECT構造の表のDSIに付加されたBTREE構造のインデックス

INSERT文によるデータベース創成

INSERT文によってデータベースを創成するアプリケーションの例を以下に示します。

#include<stdio.h>

main() {
    EXEC SQL BEGIN DECLARE SECTION;
        char SQLSTATE[6];
        char SQLMSG[256];
        short hcustomer;
        short hprodno;
        long  hprice;
        short horderqty;
    EXEC SQL END DECLARE SECTION;

    char  処理番号;
    for(;;) {
        printf("データ挿入...1  \n");
        printf("挿入終了  ...2  \n");
        scanf("%c",&処理番号);

        switch( 処理番号) {
            case '1':
              printf("取引先の番号を入力してください.\n");
              scanf("%d",&hcustomer);
              printf("取引製品の番号を入力してください.\n");
              scanf("%d",&hprodno);
                        :
              EXEC SQL INSERT INTO STOCKS.発注表(取引先,取引製品,
                                                 仕入価格,発注数量)
                       VALUES(:hcustomer,:hprodno,:hprice,:horderqty);
              continue;
            case'2':
              break;
        }
      break;
    }
    EXEC SQL COMMIT WORK;
                        :
 }

参照

INSERT文に関する詳細は、“SQLリファレンス”を参照してください。