スケーラブルデータベースサーバ HiRDB Version 8 解説(UNIX(R)用)

[目次][用語][索引][前へ][次へ]

6.8.13 BLOBデータ,BINARYデータの部分的な更新・検索

<この項の構成>
(1) BLOBデータ,BINARYデータの部分的な更新・検索とは
(2) BLOBデータ,BINARYデータの部分的な更新・検索の例

(1) BLOBデータ,BINARYデータの部分的な更新・検索とは

登録されているBLOBデータ又はBINARYデータに対して,新たなデータを追加する場合にBLOBデータ又はBINARYデータを更新したり,BLOBデータ又はBINARYデータを検索する場合にBLOBデータ又はBINARYデータ全体を取得したりすると,サーバ及びクライアントの双方でBLOBデータ又はBINARYデータに合わせた長大なメモリを確保する必要があり,メモリ資源を圧迫します。

BLOBデータ,BINARYデータの部分的な更新・検索を行うと,メモリ使用量がBLOBデータ,BINARYデータ追加分,又はBLOBデータ,BINARYデータ抽出分だけになるため,メモリ資源の圧迫を防げます。

なお,BINARYデータの場合は,定義長が32,001バイト以上のデータに限ります。

BLOBデータ,BINARYデータの追加更新
UPDATE文のSET句に連結演算を指定することで,登録されているBLOBデータ又はBINARYデータに対して新たなデータを追加できます。

BLOBデータ,BINARYデータの部分抽出
スカラ関数SUBSTRを指定することで,BLOBデータ又はBINARYデータから,指定した部分だけを抽出できます。

BLOBデータ,BINARYデータの後方削除更新
UPDATE文のSET句に,処理対象列,及び開始位置として定数1を指定したスカラ関数SUBSTRを使用することで,BLOBデータ又はBINARYデータの後方部分だけを削除できます。

BLOBデータ,BINARYデータの部分的な更新・検索については,マニュアル「HiRDB Version 8 UAP開発ガイド」を参照してください。

(2) BLOBデータ,BINARYデータの部分的な更新・検索の例

(a) BLOBデータの追加更新

複数のファイルを一つのBLOBデータとして格納します。BLOBデータの追加更新の例を次の図に示します。

図6-19 BLOBデータの追加更新の例

[図データ]

〔説明〕
  1. 対象表(T1)の行AのC2列に,ファイル1のBLOBデータを挿入します。
  2. 行AのC2列に対して,ファイル2のBLOBデータを連結することで追加更新されます。これ以降にデータを追加する場合も同様です。
(b) BLOBデータの部分抽出

「BLOBデータの追加更新」で格納した行AのBLOBデータ(C2列)から,ファイル2の部分を抽出します。BLOBデータの部分抽出の例を次の図に示します。

図6-20 BLOBデータの部分抽出の例

[図データ]

〔説明〕
スカラ関数SUBSTRを使用して,行AのC2列の中からファイル2のデータ列の開始位置(100×1024+1=102401バイト目)から,ファイル2のデータ列の長さ分(200×1024=204800バイト)だけ抽出します。
(c) BLOBデータの後方削除更新

「BLOBデータの追加更新」で格納した行AのBLOBデータ(C2列)の後方部分を削除し,ファイル1とファイル2だけを残します。BLOBデータの後方削除更新の例を次の図に示します。

図6-21 BLOBデータの後方削除更新の例

[図データ]

[説明]
スカラ関数SUBSTRを使用して,ファイル1のデータ列の開始位置1バイト目から,ファイル1とファイル2の長さ分(100×1024+200×1024=307200バイト)だけを抽出したデータに置き換えて更新します。これによって,ファイル1とファイル2だけが残り,後方部分のデータは削除されます。