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