上級者リファレンス : DDF Builder User's Guide : DDF Builder について
 
このページをシェアする                  
DDF Builder について
Btrieve ファイルへのリレーショナル アクセスの提供
DDF Builder の概要
DDF Builder の起動
DDF Builder の概要
DDF Builder は Java ユーティリティで、基となるデータ ファイル(以後、「Btrieve ファイル」と言います)に変更を加えることなく、Zen データ辞書ファイル(DDF)の表示、作成、変更が行えます。DDF Builder ではさまざまな機能を提供しますが、主に以下のような目的で使用できます。
既存の Btrieve データ ファイルへのリレーショナル アクセスを可能にするために必要なテーブル定義を作成する
Btrieve データ ファイルへのリレーショナル アクセスを確実に正しく行えるよう既存のテーブル定義を変更する
メモ:DDF Builder で DDF を作成したり変更しても、Btrieve データ ファイルが変更されることはありません。
DDF Builder には上記以外にも次のような機能があります。また、これ以外にもさらに機能があります。
MicroKernel エンジン で使用する Btrieve データ ファイルを新規作成する
Btrieve スキーマを XML ファイルへエクスポートする
XML ファイルから Btrieve スキーマへインポートする
SQL ステートメントを作成する
DDF Builder を使用する理由
DDF Builder は、Btrieve データ ファイルを変更することなく、Btrieve データ ファイルへのリレーショナル アクセスを追加することができる特殊なユーティリティです。通常、DDF Builder は日常的に使用するユーティリティではありません。DDF Builder は既存の Btrieve ファイルへのリレーショナル アクセスを追加するために必要に応じて使用するもので、データ辞書ファイルのテーブル定義を作成したり、正しく構成されていないテーブル定義へ接続するために既存のデータ辞書ファイルを変更したりします。
メモ:DDF は SQL メタデータ用のスキーマを定義します。DDF は、DDF Builder で SQL アクセスをオブジェクト、つまり SQL テーブルで表すことができるようにするシステム テーブルです。DDF ディレクトリを変更するのではなく、SQL テーブル オブジェクトに対して作業します。DDF Builder では、SQL テーブルを作成、変更または削除した場合に DDF を変更します。

1 つのデータベース内にあるすべての SQL テーブルは同じ DDF のセットに定義されます。
旧バージョンの Zen Control Center のテーブル設計では、リンク モード非リンク モードの 2 つの作業モードを提供しているものもあります。リンク モードではテーブル定義とデータ ファイルの両方を変更することができますが、非リンク モードで変更できるのはテーブル定義のみです。DDF Builder では、IN DICTIONARY 呼び出しを使って非リンク モード同様のモードを使用することで、Btrieve ファイルを変更することなく DDF を変更します。DDF Builder では Btrieve ファイルへ書き込みを行うことはありません。
DDF Builder では行わないこと
DDF Builder は既存の Btrieve データ ファイルを変更する目的には使用できません。既存の Btrieve ファイルおよび DDF を変更してリレーショナル アクセスを提供するつもりであれば DDF Builder を使用すべきではありません。その場合は、既存の Btrieve ファイルを変更する Zen Control Center やその他の Zen ユーティリティを使用することをご検討ください。
また、DDF Builder はキーの作成や変更に使用するものではありません。キーに関する操作を行う場合は、Zen Control Center の Table Editor を使用しますDDF Builder は DDF の作成や変更を目的としています。
ZenCC を使用しない理由
Zen Control Center は物理データ ファイルとデータ辞書ファイルを同時に操作する、つまりリンク モードで操作することを目的としています。DDF のみを変更するために ZenCC を使用することはお勧めしません。
必要な知識
DDF Builder を使用する場合に最も重要なのは、作業対象のデータの構造を完全に理解しておくことです。データの構造を理解していないと、DDF Builder でテーブル定義を作成したり変更することが難しくなるため時間がかかり、このユーティリティの効果が得られません。
その他の有用な情報
Zen データベースからデータがアクセスされるときに用いられるトランザクショナルとリレーショナルという 2 種類の主要なアクセス方法について理解していることも役立ちます。DDF Builder の機能の大部分は、トランザクショナル アクセスについての知識が役立ちます。それ以外の機能については、リレーショナル データベースの一般的な概念についてよく理解していることが必要です。
メモ:このマニュアルは、トランザクショナル アクセス方法とリレーショナルの概念について理解していることを前提として説明しています。これらトランザクショナルおよびリレーショナルに関する説明や、キー、インデックス、ページ タイプ、スキーマなどの一般的な用語についての定義は行いません。

DDF Builder を使用する前に理解を深めておく必要がある場合は、下記の Zen マニュアルを参照してください。デフォルトで、Zen 開発者向けドキュメントは Zen データベース エンジンのインストール時に一緒にインストールされます。
トランザクショナル アクセス
トランザクショナル アクセスの場合、アプリケーション プログラムは物理的または論理的のどちらの経路でもデータ レコード内を前方および後方に移動することができます。トランザクショナル API を使用することで、アプリケーション プログラムは直接制御を備え、開発者はデータの基本構造の知識に基づいてデータ アクセスを最適化することができます。Btrieve API を使用することはトランザクショナル アクセスの 1 例です。
トランザクショナル アクセスについて理解を深めるには、以下のマニュアルを参照してください。
Zen Programmer's Guide(開発者リファレンス)
Btrieve API Guide(開発者リファレンス)
Advanced Operations Guide(上級者リファレンス)
リレーショナル アクセス
リレーショナルとは、データがテーブル、行、列の集まりとして表されるアクセス方法です。リレーショナル モデルは、開発者を基となるデータ構造から切り離し、データを単純な表形式で表します。ODBC はリレーショナル アクセス方法の 1 例です。
リレーショナル アクセスについて理解を深めるには、以下のマニュアルを参照してください。
SQL Engine Reference(上級者リファレンス)
Advanced Operations Guide(上級者リファレンス)
Zen User's Guide(一般リファレンス)
Zen Programmer's Guide(開発者リファレンス)
次に行うこと
DDF Builder でテーブル定義に対して変更を行うと DDF の構造が変更されます。このユーティリティの使用前の注意事項として、作業対象のファイル(DDF も含む)を必ずバックアップしておいてください(Btrieve ファイルは、ファイルのページ構造内にデータが格納されるため、データ ファイルとも呼ばれます)。
メモ:DDF Builder では既存の Btrieve ファイルのレコード レイアウト構造を変更できません。このユーティリティを使って新しい Btrieve ファイルを作成することはできます。
セキュリティの無効化
Zen セキュリティ モデルが有効なデータベースに対して作業する場合、DDF Builder でそのファイルを開く前にはそのデータベースをオフラインにし、すべてのセキュリティを解除しておきます。
DDF Builder のコンポーネント
ユーティリティ以外にも、DDF Builder では以下のコンポーネントがあります。
ログ ファイル
ログ ファイルは DDF Builder が問題のある状態を報告するファイルです。デフォルトのインストールで、ログ ファイルは次のディレクトリにインストールされます。
C:\ProgramData\Actian\Zen\rcp\workspace-builder\.metadata
ユーザー向けドキュメント
DDF Builder User's Guide』は Zen ユーザー向けドキュメントに含まれています。
チュートリアル ファイル
DDF Builder では、『DDF Builder』に含まれているチュートリアルで使用するファイルのセットをインストールします。このチュートリアル ファイルはデフォルトで、C:\ProgramData\Actian\Zen\DDFBuilder\tutorials にインストールされます。説明については、DDF Builder チュートリアルを参照してください。
デフォルトのインストール先については『Getting Started with Zen』のファイルはどこにインストールされますか?を参照してください。
DDF Builder の起動
DDF Builder の起動は、Windows オペレーティング システムから、Zen Control Center(ZenCC)内から、あるいはコマンド ラインから行うことができます。
DDF Builder を Windows オペレーティング システムから起動するには
1 スタート]メニューまたはアプリ画面から DDF Builder にアクセスします。
DDF Builder メイン ウィンドウが開きます。
ZenCC から DDF Builder を起動するには
1 ZenCC のメニュー バーで[ツール]>[DDF Builder]をクリックします。
2 DDF Builder メイン ウィンドウが開きます。
図 1 DDF Builder メイン ウィンドウ
コマンド ラインから DDF Builder を起動する
DDF Builder は Windows、Linux または macOS でコマンド ラインから実行可能ファイルを実行することによって起動することができます。詳細については、次のトピックを参照してください。
Windows
実行可能ファイル builder.exe を実行すると、DDF Builder が起動します。『Getting Started with Zen』のファイルはどこにインストールされますか?を参照してください。
Linux および macOS
実行可能スクリプト ファイル builder を実行すると、DDF Builder が起動します。このスクリプト ファイルは、デフォルトで usr/local/actianzen/bin ディレクトリにインストールされます。
ファイル ブラウザー アプリケーションでスクリプト ファイルをダブルクリックするのではなく、コマンド プロンプトから DDF Builder を起動することをお勧めします。DDF Builder の実行に関するトラブルシューティング ガイドを参照してください。
Linux または macOS 上で DDF Builder を起動するには、以下の要件を満たしている必要があります。
表 1 Linux または macOS で DDF Builder を起動するための要件
要件
説明
Zen Server または Client
同一マシンに互換性のある Zen Server または Client が既にインストールされている必要があります。『Getting Started with Zen』の Enterprise Server、Cloud Server、および ZenClient(Linux ベースのシステム用)のインストールを参照してください。
X Server へのアクセス
xhost コマンドは、どのクライアントが現在のマシンの X-Windows System にアクセスできるかを制御します。デフォルトで、xhost はアクセス制御をオンにします。つまり、X-Windows System を起動したユーザーのみが DDF Builder を起動できます。
X-Windows System クライアントの制限は、ターミナル ウィンドウで xhost + を実行することによって解除できます。
Java Runtime Environment(JRE)
DDF Builder を実行するために必要な JRE コンポーネントは、Zen の一部としてインストールされます。DDF Builder は、Zen の一部としてインストールされる JRE のローカル バージョンを使用します。
デスクトップの所有権(macOS のみ)
デスクトップにログインしているユーザーのみが DDF Builder を起動することができます。
DDF Builder を実行する要件に合致しているのに、実行に問題がある場合は、以下のトラブルシューティング ガイドを参考にしてください。
表 2 DDF Builder の実行に関するトラブルシューティング ガイド
トラブルシューティングする状態
説明
"java.lang.UnsatisfiedLinkError" というエラーを受け取った。
このエラーは、ファイル ブラウザー アプリケーションを使用してスクリプト ファイルをダブルクリックして DDF Builder を起動しようとしたときに、よく起こります。コマンド プロンプトから DDF Builder を起動してください。
このエラーは、LD_LIBRARY_PATH 変数が設定されていない場合に発生します。builder スクリプトがこの変数を設定します。この変数は、以下のコマンドを使用して明示的に設定することもできます。
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/actianzen/lib64
macOS では、この変数は DYLD_LIBRARY_PATH になります。
DDF Builder を root またはユーザー zen-svc として実行しようとすると、"SWT no more handles" というエラーが返される。
DDF Builder を実行するには、zen-svc または root ユーザーとしてログインする必要はありません。ただし、これらのユーザーのどちらでもない場合は、zen-data グループのメンバーである必要があります。
"SWT no more handles" エラーは、X Server がクライアントへの接続を拒否したために発生します。zen-svc または root ユーザーに切り替える前に、コンソール ウィンドウを開き、xhost + と入力してほかのクライアントが X Server に接続できるようにします。
これで、zen-svc または root ユーザーに切り替えることができます。
また、場合によっては DISPLAY 環境変数を設定する必要があります。zen-svc または root ユーザーとして、コンソール ウィンドウで以下のコマンドを入力します。
export DISPLAY=:0.0
または
export DISPLAY=localhost:0.0
DDF Builder のエラー ログ ファイルを表示、またはエラーをコンソール ウィンドウにリダイレクトしたい。
DDF Builder エラーのログ ファイルは、ユーザーのホーム ディレクトリ下にあります。トラブルシューティングのためには、エラーをコンソール ウィンドウにリダイレクトするとより便利です。
エラーをコンソール ウィンドウにリダイレクトするには、DDF Builder の起動時に ‑consoleLog オプションを使用します。
builder -consoleLog
以下のエラー メッセージが返された。"データベース エンジンに接続できません。ターゲット マシンがアクセス可能で、かつエンジンが実行されていることを確認してください。"
このエラー状況は、ローカル サーバーを管理しようとした場合に発生します。
ローカル サーバーを管理するには、zen-data グループのメンバーであるか root ユーザーである必要があります。『Getting Started with Zen』の Linux、macOS、Raspbian での Zen のアカウント管理を参照してください。
root 以外のユーザーとして DDF Builder を起動しようとすると、"GTK IM Module SCIM: Cannot connect to Panel!" というエラーが返される。
いくつかの Linux OS では、環境変数 GTK_IM_MODULE を指定する必要があります。
この問題を解決するには、DDF Builder を起動する前にコンソール ウィンドウで、以下のコマンドを入力します。
export GTK_IM_MODULE=scim-bridge
DDF Builder のキャッシュをクリアする
DDF Builder は効率を上げるために一定の情報をキャッシュします。弊社テクニカル サポートからの指示に応じてトラブルシューティング目的に、あるいはすべてのファイルを確実に再ロードするために、キャッシュをクリアする必要がある場合もあります。キャッシュは、DDF Builder をパラメーターを使ってコマンド ラインから起動した場合にのみクリアできます。
メモ:DDF Builder の通常の使用時には、起動時にキャッシュをクリアしても何も利点はありません。通常使用の場合は、DDF Builder の起動の説明のとおりにユーティリティを起動します。
DDF Builder のキャッシュをクリアするには
1 DDF Builder を実行中の場合は終了します。
2 コマンド プロンプトを開きます。
3 Zen インストール ディレクトリの Zen\bin\ ディレクトリに移動します。
4 builder -clean」と入力して、Enter キーを押します。
これにより、キャッシュがクリアされ、DDF Builder が起動します。
次に行うこと
DDF Builder の全般的な理解が得られたら、DDF Builder の使用でユーザー インターフェイスの概要を参照してください。