ページの先頭行へ戻る
Symfoware Server V10.0.0/V10.0.1 RDB運用ガイド(データベース定義編)

2.8.2 マルチメディアデータを格納する表の定義

マルチメディアデータを格納する表の場合も、格納領域指定の方法や、表のDSO名やDSI名の命名は、文字や数値を扱う表の場合と同じです。以下にマルチメディアデータを格納する表の格納領域指定の例と、表の格納構造について示します。表のDSO名およびDSI名の命名については、“2.6.3 表定義”を参照してください。

マルチメディアデータを格納する表の格納領域指定

CREATE TABLE  S1.製品写真表  (製品番号  SMALLINT  PRIMARY KEY NOT NULL,
                              製品写真  BLOB(1M)  NOT NULL )
                              ON DBSPACE1
                                  ↑
                              格納領域指定

上記の指定は、動作環境ファイルのDEFAULT_DSI_TYPEの指定により以下の定義をしたのと同じ意味になります。

  • DEFAULT_DSI_TYPE = SEQUENTIALの場合

    CREATE TABLE S1.製品写真表(製品番号  SMALLINT  PRIMARY KEY  NOT NULL,
                               製品写真  BLOB(1M)  NOT NULL);
    
    CREATE DSO #S1@製品写真表 FROM S1.製品写真表
           TYPE SEQUENTIAL(PAGESIZE(32),ORDER(1));
    
    CREATE DSI #S1@製品写真表 DSO #S1@製品写真表
          ALLOCATE DATA ON DBSPACE1 SIZE 700000K;

    備考. 動作環境ファイルのDEFAULT_TABLE_SIZEで表のデータ格納域の割付け量に700000Kバイトを指定している場合の例です。データベーススペースの割付け量は、データ格納域に指定した割付け量以上が必要です。

  • DEFAULT_DSI_TYPE = OBJECTの場合

    CREATE TABLE S1.製品写真表(製品番号  SMALLINT  PRIMARY KEY  NOT NULL,
                               製品写真  BLOB(1M)  NOT NULL);
    
    CREATE DSO #S1@製品写真表 FROM S1.製品写真表
           TYPE OBJECT(PAGESIZE(32));
    
    CREATE DSI #S1@製品写真表 DSO #S1@製品写真表
          ALLOCATE DATA ON DBSPACE1 SIZE 700000K;

    備考. 動作環境ファイルのDEFAULT_OBJECT_TABLE_SIZEで表データ格納域の割付け量に700000Kバイトを指定している場合の例です。データベーススペースの割付け量は、データ格納域に指定した割付け量以上が必要です。


表の格納構造の定義は、以下のようになります。

格納構造:

表の形式が下記の条件以外の場合は、SEQUENTIAL構造になります。

表の形式が以下の条件をすべて満たしている場合は、OBJECT構造になります。この場合は、動作環境ファイルのDEFAULT_DSI_TYPEの指定により、SEQUENTIAL構造に変更できます。本パラメタの指定を省略すると、OBJECTが指定されたとみなします。

  • 表の最後に1つだけ、BLOB型でサイズに32キロバイト以上を指定している場合

  • BLOB型以外の列は固定長属性の場合

  • BLOB型の列にNOT NULL制約を指定している場合

データ部のページ長:

SEQUENTIAL構造の場合は、動作環境ファイルのDEFAULT_TABLE_SIZEで指定したページ長となります。ページ長には32キロバイトを指定することを推奨します。OBJECT構造の場合は32キロバイトとなります。

データ部の割付け量:

SEQUENTIAL構造の場合は、動作環境ファイルのDEFAULT_TABLE_SIZEで指定した、表のデータ格納域の割付け量となります。扱うデータ量を考慮して十分な値を指定してください。OBJECT構造の場合は、動作環境ファイルのDEFAULT_OBJECT_TABLE_SIZEで指定した、表のデータ格納域の割付け量となります。扱うデータ量を考慮して十分な値を指定してください。

割付け対象のデータベーススペースに、割付け量分の連続領域が存在しない場合、複数の領域に分割して割付けることがあります。複数の領域に分割されたかどうかは、rdbprtコマンドの出力結果で確認できます。DSI情報のAllocation informationのAllocate sizeに、指定した割付け量以下の値が表示された場合、複数の領域に分割して割付けられたと判断できます。

参照

  • rdbprtコマンドの詳細については、“コマンドリファレンス”を参照してください。

  • 格納構造の詳細については、“2.7 格納構造の定義”を参照してください。