Caché データはデータベースに保存され、ネームスペースを経由してアクセスされます。
データベース とは、さまざまなクラス (オブジェクト用語) からのデータや、さまざまなテーブル (リレーショナル用語) からのデータなど、多様な種類の情報からなる 1 つのファイルです (実際は複数のファイルである場合もありますが、説明が複雑になるのでここでは省略します)。
ネームスペース は、1 つ以上のデータベース内の、データの論理ビューです。ネームスペースとデータベース間の 1 対 1 の通信が最も簡単な例です。 しかし実際使用する際には、複数のデータベースのデータへアクセスできるネームスペースを定義するとさらに強力になります。
任意の Caché システムは複数の
ネームスペース を持ち、それぞれが 1 つ以上の物理データベース内に保存されている異なるデータの論理ビューを提供します。以下はその図です。
Caché には、以下のようにあらかじめ定義されたネームスペースが用意されています。
先行定義のネームスペース
ネームスペース |
コンテンツ |
新しいバージョンの Caché がインストールされた場合 |
%CACHELIB |
組み込みクラスの定義のような、Caché システムのコンポーネント |
置換されます |
%SYS |
システム管理情報およびユーティリティ |
保持されます |
SAMPLES |
サンプル・コードおよびアプリケーション |
置換されます |
USER |
インストール時は空です。通常アプリケーション開発に使用します。 |
保持されます |
Caché ターミナルを使用して Caché システムと対話するとき、コマンド・プロンプトは現在のネームスペースを表示します。
Caché ObjectScript の
ZNAMESPACE コマンド (省略形は
ZN) を使用して、コマンド行から異なるネームスペースに切り替えることができます。
USER>
USER>ZN "SAMPLES"
SAMPLES>
ZNAMESPACE コマンドに、移動先のネームスペースの名前を引数として文字列を 1 つ記述します。無効なネームスペース名を入力すると、
ZNAMESPACE は <NAMESPACE> エラーを返します。
また、
^%CD (ディレクトリの変更) コマンド行ユーティリティが提供する単純なユーザ・インタフェースを使用して、変更先のネームスペースを指定できます。プロンプトに
? を入力すると、
^%CD は利用できるネームスペースのリストを提供します。
アプリケーション内で、
$ZU(5) システム・コマンドを使用して、現在のネームスペースを指定できます。
ZNAMESPACE コマンドを使用して、アプリケーション内から異なるネームスペースに切り替えることができます。
アプリケーション内でネームスペースを変更するときには、注意が必要です。特に、オブジェクトと SQL コードは 1 つのネームスペースで動作しているとみなすため、オブジェクト・インスタンスや SQL カーソルをオープンしたままネームスペースを変更すると、コードが正常に実行されません。通常は、さまざまなオブジェクト、SQL、および CSP サーバは、アプリケーション・コードを正しいネームスペースで実行するように自動的に確認するため、特に注意を払う必要はありません。ネームスペースの変更は、(他のコマンドに比べ) かなりコストが高い処理なので、アプリケーション・コードはできるだけこれを回避します。