データはどこにある?

   Caché には、ネームスペース という機能があります。
  ネームスペース については、別のページで詳細に解説していますが、ここでも簡単に解説します。
  ネームスペースは、Caché システムにおいて、物理的なデータベース(CACHE.DAT )の在り処を、アプリケーション・プログラムに 意識させずに済ませる仕組み、と考えることができます。
  
  
具体的には、どのグローバル変数がどのCaché サーバの何処(例えば、d:\uriage\cahe.dat )に配置されているかをアプリケーション・プログラムに 意識させずに処理させることができる、ということです。 アプリケーション・プログラム内では、使用するネームスペースを宣言し、後は具体的なグローバル変数の名前、もしくは、Cache Object アーキテクトで 定義したクラス名を宣言するだけで良い、という仕組みです。
  
  では、どこで物理的な位置とネームスペースの関係を管理するか?が問題になります。
  このような管理は、Caché データベース・サーバ(あるいは、Caché アプリケーション・サーバ)が構成情報(CACHE.CPF )を 読み込むことによって処理されています。
  従って、ネームスペースに対するデータベースの物理的な位置を変更する場合には、このCACHE.CPF の内容を変更してやれば良い、と言うことになります。 CACHE.CPF は通常のテキスト・ファイルですので、テキスト・エディタ(メモ帳 etc )で変更することが可能です。Caché には、構成マネージャというユーティリティが 添付されています(Caché キューブから起動します)ので、この構成マネージャを使用して内容を変更することも可能です。
  
  ところで、Caché では、データのみをマッピング対象とするわけではありません。 CachéCaché Object Script やクラスをコンパイルした時に生成されるコードも、マッピング対象とすることができます。 Caché では、内部的にCaché Object Script コードも一種のグローバル変数として扱っているので、このようなことが可能になります。
  
  なお、Caché Object Script を利用してクラスを定義した場合(システム・ディフォルト値を使用した場合)は、次のような構成になります。
  Caché Object ScriptUser.PERSON を定義します。
  実際のデータは、^User.PERSOND に格納されます。
  インデックスデータは、^User.PERSONI に格納されます。
  グローバル変数に対するマッピングを実施するときには、このクラスに対するグローバル変数名の命名基準を理解している必要があります。
  
  また、グローバル変数をマッピングするときには、1つのグローバル変数全体を指定してマッピングすることも、 特定の添え字レベル(添え字レベルの範囲指定でもOK)でマッピングすることも可能です。
  マッピング機能は非常に便利で協力な機能であるといえます。
  
  *注意*
  マッピング機能は、分散データベース機能を実現するものですが、Caché システムにとっては、マッピング情報全体で1つの論理的なデータベースとなります。 従って、2フェーズコミット のような仕組みは存在しません。
  

マッピングに関する資料のダウンロード

戻る