LOBセグメントの作成と管理

ラージ・オブジェクト(LOB)の概念

ラージ・オブジェクトは半構造化データと非構造化データに適している。

  • 半構造化データ:通常はデータベースで解析されない論理構造を持っている。例え、XML文書。
  • 非構造化データ:この種のデータは、小さい論理構造に分解されることがなく、通常はデータベースやアプリケーションで解析されません。例えば、フォト・イメージ。
半構造化データに対するLOBの使用

通常、半構造化データが関係するアプリケーションは、大量の文字データを使用する。下記のデータ型を使用できる。

  • キャラクタ・ラージ・オブジェクト(CLOB)データ型
  • 各国語キャラクタ・ラージ・オブジェクト(NCLOB)データ型
  • バイナリ・ファイル・オブジェクト(BFILEデータ型)
非構造化データに対するLOBの使用

非構造化データが標準コンポーネントに分解されることはない。下記のSQLデータ型を使用できる。

  • BLOBデータ型(バイナリ・ラージ・オブジェクト)
  • BFILEデータ型(バイナリ・ファイル・オブジェクト)
各種のLOB

各種のLOBは、データベースまたは外部ファイルに格納できる。
内部LOB
データベース内のLOBは、領域が最適化され効率的なアクセスが可能になるような形でデータベース表領域に格納される。内部LOBの宣言がサポートされているSQLデータ型は、 BLOB、CLOB、およびNCLOBである。
内部LOB(データベース内のLOB)には、永続LOBと一時LOBがある。

  • 永続LOBとは、データベースの表の行に存在するLOBインスタンスである。永続LOBは、コピー・セマンティクスを使用し、データベース・トランザクションに関連する。永続LOBは、トランザクションまたはメディア障害が発生してもリカバリできる。また、永続LOB値の変更は、コミットまたはロールバックできる。すなわち、データベース・オブジェクトの使用に関するすべてのACID(Atomicity Consistency Isolation Durability)プロパティは、永続LOBの使用にも適用される。
  • 一時LOBは、ローカル・アプリケーションの有効範囲内でのみLOBをインスタンス化する場合に作成される。

外部LOBとBFILEデータ型
外部LOBは、データベース表領域の外にあるオペレーティング・システム・ファイルに格納されるデータ・オブジェクトである。
データベースは、SQL BFILEデータ型を使用して外部LOBにアクセスする。BFILEデータ型は、唯一の外部LOBデータ型である。
通常、BFILEは次のデータの格納に使用する。

  • 図形など、アプリケーションの実行中に変化しないバイナリ・データ
  • 後で操作できるようにBLOBやCLOBのような他のラージ・オブジェクト型にロードされるデータ
  • マルチメディアなど、バイト・ストリーム・アクセスに適したデータ
  • 比較的サイズの大きい読取り専用データ(データベース表領域の大量使用を回避するため)
ラージ・オブジェクト・データ型
SQLデータ型 説明
BLOB バイナリ・ラージ・オブジェクト
CLOB キャラクタ・ラージ・オブジェクト
NCLOB 各国語キャラクタ・セット・ラージ・オブジェクト
BFILE 外部バイナリ・ファイル
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License