Zen Control Center の使用
Zen Control Center(ZenCC)はデータベースの作成および管理や、データベース エンジンの制御を行うためのグラフィカル ツールです。ここから本製品のほとんどすべての機能にアクセスすることができます。この章では、ZenCC のインターフェイスおよび一般的な操作について説明します。
Zen Control Center の概要
Zen Control Center は、Zen エンジンへの接続、データベースとテーブルの設定や変更、データのクエリや更新、エンジンのパフォーマンス調整、および Zen ドキュメント ライブラリへのアクセスを行うための、統合されたフレームワークです。
ZenCC では Zen エクスプローラーと呼ばれる、オブジェクト ツリー形式のファイル エクスプローラーを使用します。このツリーは、展開すると詳細を表示します。オブジェクトには、エンジン、データベース、テーブル、ユーザー設定などがあります。次の図は、いくつかのタブ付き表示された ZenCC を示します。Zen エクスプローラーは左側に配置されています。
Windows 上の Zen Control Center
Linux 上の Zen Control Center
Linux ディストリビューションに応じて、あるいは Mac OS を使用している場合、ZenCC(画面の)表示が異なる場合がありますが、機能は同一です。
ZenCC のインストール
Windows プラットフォームでは、ZenCC はデータベース エンジンまたはクライアントのインストール時にデフォルトでインストールされます。『
Getting Started with Zen』の
Zen のオプション機能 を参照してください。
Linux では、ZenCC は完全インストールに含まれます。『
Getting Started with Zen』の
Linux ベース システムにおけるフル インストールとクライアント インストールを参照してください。
Windows での ZenCC の起動
オペレーティング システムの[スタート]メニューまたはアプリ画面から Control Center にアクセスします。実行可能ファイル zencc.exe を実行することもできます。
Linux での ZenCC の起動
コマンド プロンプトから実行可能スクリプト ファイル zencc を実行して ZenCC を起動します。このスクリプト ファイルは、デフォルトで usr/local/actianzen/bin にインストールされます。
ファイル ブラウザーでスクリプト ファイルをダブルクリックするのではなく、コマンド プロンプトから ZenCC を起動することをお勧めします。
ZenCC の実行に関するトラブルシューティングを参照してください。
Linux で ZenCC を実行するための要件
Linux 上で ZenCC を実行するには、以下の条件に合致する必要があります。
ZenCC の実行に関するトラブルシューティング
ZenCC を実行する要件に合致しているのに、実行に問題がある場合は、以下のトラブルシューティング ガイドを参考にしてください。
ZenCC キャッシュをクリアする必要がある状況
効率のため、ZenCC により特定の情報がキャッシュされます。キャッシュは、ZenCC と相互作用する製品をインストールまたはアップグレードした後でクリアする必要があります。これは、インストールまたはアップグレードによる変更内容が Zen エクスプローラーに反映されるようにするためです。たとえば、DataExchange をインストールまたはアップグレードする場合、ZenCC キャッシュをクリアする必要があります。
キャッシュは、ZenCC をパラメーターを使ってコマンド ラインから起動した場合にのみクリアできます。
ZenCC のキャッシュをクリアするには
1. ZenCC を実行中の場合は終了します([ファイル]>[終了]を選択します)。
2. コマンド プロンプトで、Zen インストール ディレクトリの Zen\bin\ フォルダーに移動します。
3. 次のコマンドを入力します。
zencc -clean
これにより、ZenCC が起動してキャッシュがクリアされます。新しくインストールまたはアップグレードされた製品が Zen エクスプローラーに表示されます。
メモ: ZenCC の通常の使用時に -clean パラメーターを使用して起動しても、何の利点もありません。このパラメーターは、プラグイン製品をインストールまたはアップグレードした場合にのみ必要になります。
ZenCC 内のエディターおよびビュー
ZenCC のメイン ウィンドウには、以下のエディターとビューが含まれます。
さまざまなエディターおよびビューを使用してオブジェクトを表示および操作することができます。同じ種類の複数のエディター(たとえば、SQL Editor)を同時に開くことができます。編集中の各オブジェクトは、エディター上部にタブによって示されます。タブにはオブジェクトの名前が表示されます。エディターで変更したデータは、明示的に保存する必要があります(たとえば、[ファイル]>[上書き保存]を使用)。
Zen エクスプローラーのようなビューは、一度に 1 つしか開けません。ビュー内で実行された操作は、保存していない場合でも、直ちに適用されます。
エディターおよびビューの特性
以下の表に ZenCC のエディターとビューの特性をまとめます。
Zen エクスプローラー
このビューでは、複数の種類のオブジェクトをツリー形式で表示し、さまざまな作業が行えます。
オブジェクトとそのプロパティ
オブジェクトのツリーには Zen という名前のルート ノードがあります。ルート ノードにあるのは、クライアント、サービス、データベース エンジン、データベース、テーブル、ビュー、ストアド プロシージャ、ユーザー定義関数、トリガー、グループ、ユーザー、およびシステム オブジェクト(システム テーブルなど)です。
Zen エクスプローラー内のほとんどのオブジェクトは、展開して詳細を表示することができます。下位のオブジェクトを表示するには、オブジェクトの左にある展開アイコンをクリックします。この折りたたみアイコンは展開アイコンをクリックすると切り替わって表示されます。下位オブジェクトを非表示にするには、折りたたみアイコン("-" 記号など)をクリックします。
オブジェクトに構成できる設定がある場合は、そのオブジェクトを右クリックして[
プロパティ]を選択します。また、オブジェクトをクリックしてから
Alt+
Enter キーを押してプロパティを表示することもできます。『
Advanced Operations Guide』の
設定リファレンスも参照してください。
以下は、Zen エクスプローラーにある各種オブジェクトの例です。
右クリック タスク
プロパティへのアクセス以外にも、オブジェクトの右クリックによって Zen エクスプローラーからさまざまなタスクを実行することができます。次の表ではそれらのタスクについて簡単に説明します。
SQL Editor
SQL Editor を使用すると、Zen データベースに対し、SQL(構造化問い合わせ言語)ステートメントを実行することができます。詳しい説明については、
SQL Editor を参照してください。
グリッド
グリッド ウィンドウは、スプレッドシートのような行列形式で SQL ステートメントの実行結果を表示します。各フィールドは列として示され、データは列内のセルに表示されます。グリッド セル内でデータを直接変更することができるだけでなく、グリッドに行を追加することもできます。
Table Editor と SQL Editor は、共にグリッドを使用します。詳細については、
Table Editor を使ってテーブル データを表示するにはおよび
グリッド ウィンドウ ビューを参照してください。
テキスト
テキスト ウィンドウ ビューは、テキスト形式で SQL ステートメントの実行結果を表示します。テキストは表示のみです。テキストを変更してデータ値を変更することはできませんが、テキストをコピーすることはできます。詳しい説明については、
テキスト ウィンドウ ビューを参照してください。
アウトライン
アウトライン ウィンドウを使用すると、SQL ステートメントをツリー構造で表示することができます。ツリーのルート ノードは SQL Editor ウィンドウ ビューと同じ名前です。詳しい説明については、
アウトライン ウィンドウ ビューを参照してください。
エディターがアウトラインをサポートしていない場合はアウトライン ウィンドウは利用できないので注意してください。現在、SQL Editor のみがアウトライン ビューをサポートしています。
Table Editor
Table Editor を使用すると、テーブルの列の追加、削除または特性の変更を行うことができます。このテーブルは、新規作成したものか、または編集したい既存のテーブルです。詳しい説明については、
Table Editor を参照してください。
ユーザー設定
ZenCC で全般の初期設定を行うことができます。ZenCC のウィンドウ ビューや外部ツールの初期設定を行うこともできます。
グリッドの初期設定を行うには
1. ZenCC の[ウィンドウ]メニューで、[設定]をクリックします。Zen ノードが展開されていない場合は、展開します。
2. [全般の設定]をクリックします。
全般の初期設定で指定できるオプションは、以下のとおりです。
• 関連付けられている DSN エントリは常に削除されます(
DSN の削除を参照してください)。
[関連付けられている DSN エントリは常に削除されます。]を選択して、データベースのすべての DSN エントリがプロンプトなしでデータベースと一緒に削除されるようにします。
[SQL ドキュメントを開くたびに、新しいデータベースの入力を求めるダイアログを表示しない。]の選択を解除すると、SQL Editor で SQL ドキュメントを開くたびにデータベースの選択を求められます。このオプションが選択されていない場合は、これを選択して、SQL ドキュメントを開いたときに最近選択したデータベースを使用するようにします。選択されたデータベースは、ZenCC のセッション間で保持されることはありません。ZenCC を閉じて再度開いた場合は、新しいデフォルトのデータベース コンテキストを選択する必要があります。
ZenCC ウィンドウ ビューの初期設定
以下の ZenCC ウィンドウ ビューの初期設定を行うことができます。
• データ グリッド
• Defragmenter
• Monitor
• SQL Editor
• Table Editor
• テキスト出力
ZenCC ウィンドウ ビューの初期設定を行うには
1. ZenCC の[ウィンドウ]メニューで[設定]をクリックし、Zen ノードが展開されていない場合は展開します。
2. 以下の操作のいずれかを実行します。
• データ グリッドの初期設定を行うには、[データ グリッド]をクリックします。
• Defragmenter の初期設定を行うには、[Defragmenter]をクリックします。
• Monitor の初期設定を行うには、[Server Monitor]をクリックします。
• SQL Editor の初期設定を行うには、[SQL Editor]をクリックします。
• Table Editor の初期設定を行うには、[Table Editor]をクリックします。
• テキスト出力の初期設定を行うには、[テキスト出力]をクリックします。
ファイル エンコードの初期設定
ファイル エンコードの初期設定によって、ワイド文字データを含むファイルの作業をより簡単に行うことができるようになりました。この初期設定には以下の機能があります。
• ファイルを開く/保存に ZenCC ダイアログを使用するためのオプション
• ZenCC における以下の操作で使用するデフォルト エンコードを選択できるエンコード一覧
• ZenCC ファイルを開く
• ZenCC ファイルを保存
• データのインポート
• データのエクスポート
• テーブル スキーマのエクスポート
ファイルを開く/保存に、ZenCC ダイアログを使用するように設定するには
1. ZenCC で、[ウィンドウ]>[設定]>[Zen]>[ファイル エンコード]を選択します。
2. [[ファイルを開く]および[ファイルを保存]時にエンコードのプロンプトを表示しない]オプションが選択されていないことを確認してください。デフォルトでは、このオプションは選択されていません。
3. [OK]をクリックします。
デフォルトのエンコードを設定するには
1. ZenCC で、[ウィンドウ]>[設定]>[Zen]>[ファイル エンコード]の順に選択します。
2. [デフォルト エンコード]ドロップダウン リストからエンコードを選択し、「OK」をクリックします。
メモ: ファイルのエンコードの初期設定は、ファイルを開く/保存、データのインポート/エクスポート、スキーマのエクスポートの各ダイアログからも行えます。ダイアログ内の[デフォルトのエンコードを変更する]リンクをクリックしてください。
その他のユーティリティ
一部のユーティリティは、ZenCC インターフェイスと完全に統合されていません。ただし、以下のユーティリティは[ツール]メニューから選択することによって ZenCC 内から起動することができます。
• ODBC アドミニストレーター - 64 ビット オペレーティング システムの場合、32 ビットまたは 64 ビット用に別々の ODBC アドミニストレーターを選択できます(『
ODBC Guide』の
DSN のセットアップおよび接続文字列を参照してください)。対象ではない方の ODBC アドミニストレーターを起動しようとしても、対象とする ODBC アドミニストレーターを開きます。つまり、32 ビット ODBC アドミニストレーターが開いているときに 64 ビット用を起動しようとすると、Windows は 32 ビット バージョンを表示します(逆も同様)。言い換えると、ODBC アドミニストレーターは同時に 1 つのバージョンしか実行されないということです。これは、Zen の制限ではなく、Windows の制限です。
• License Administrator(
ライセンス管理を参照してください)
• Monitor(『
Advanced Operations Guide』の
監視を参照)
• Gateway Locator(Zen Workgroup で ZenCC をインストールした場合)(『
Getting Started with Zen』の
ゲートウェイ構成を参照)
メモ: これらのユーティリティは、Windows プラットフォームではデフォルトで[ツール]メニューに表示されます。すべてのプラットフォームで、[ツール]メニューをカスタマイズすることができます。手順については、次のセクションを参照してください。
外部ツール
Windows 環境では、ZenCC の[ツール]メニューを他のアプリケーションで拡張することができます。追加した項目は、[ツール]メニューのリストの最後に表示されます。
外部ツールを追加するには
1. ZenCC で、[ウィンドウ]>[設定]の順に選択します。必要に応じて、Zen ノードを展開します。
2. [外部ツール]をクリックします。
3. [新規]をクリックします。
4. [ツール]メニューに表示させたい名前を[ツールのラベル]に入力します。
5. [ツールの場所]に、プログラムのパスとファイル名を入力します。ファイルの場所を参照する場合は、参照ボタンをクリックします。
6. また、プログラム起動時に渡すパラメーターを[ツールのパラメーター]に入力することもできます。
7. [OK]をクリックします。
8. [OK]をクリックするか、または[適用]をクリックしてから[OK]をクリックします。
外部ツールの初期設定を行うには
1. ZenCC で、[ウィンドウ]>[設定]の順に選択します。必要に応じて、Zen ノードを展開します。
2. [外部ツール]をクリックします。
3. 外部ツール リスト内の目的のツールをクリックします。
4. 以下の操作のいずれかを実行します。
• リストからツールを削除するには[削除]をクリックします。
• ツールをリストの上方向に移動するには、[上へ]をクリックします。
• ツールをリストの下方向に移動するには、[下へ]をクリックします。
Windows サーバー上のサービス
ZenCC を使用すると、Windows コントロール パネルのサービス アプリケーションを使用することなく、Zen Server を Windows システムで操作できます。ZenCC から開始、停止、および開始時の設定を行うことができます。
データベース エンジン以外の Zen 製品もサービスとして実行できます。これらのサービスは、Actian Zen Enterprise Server のサービスから独立しています。詳細については
サービスの依存関係を参照してください。
サービスを開始または停止するには
1. Zen エクスプローラーで、サービス ノードを展開します。
2. 停止または開始するサービスを右クリックします。
3. 以下の操作のいずれかを実行します。
• [サービスの開始]をクリックして、サービスを開始します。
• [サービスの停止]をクリックして、サービスを停止しす。
• [サービスの再開]をクリックして、サービスを再開します。
ヒント: また、1 つのコマンドですべてのサービスを停止または再開することができます。サービス ノードを右クリックし、[全サービスの停止]または[全サービスの再起動]をクリックします。
サービスの開始ポリシーを設定するには
1. Zen エクスプローラーで、サービス ノードを展開します。
2. 開始ポリシーを設定するサービスを右クリックします。
3. [プロパティ]をクリックし、希望のポリシーを選択します。
4. [OK]をクリックするか、または[適用]をクリックしてから[OK]をクリックします。
サービスのプロパティ
『
Advanced Operations Guide』の
ZenCC でサービスの起動ポリシーを設定するにはを参照してください。
データベース エンジン
ZenCC を使用して、ローカル マシン上のデータベース エンジンまたはリモート サーバー エンジンを操作することができます。リモート サーバー エンジンで動作するには、ZenCC に通知する必要があります。この手順を、サーバーの「登録」と言います。
ローカル サーバーは、Zen をインストールしたときに、自動的に ZenCC へ登録されます。ローカル サーバーは Zen エクスプローラーのエンジン ノードの下の最初のエントリとして表示されます。
リモート サーバー エンジンを登録するには
1. Zen エクスプローラーで、最上位ノード Zen を右クリックします。
2. [新規作成]>[サーバー]をクリックします。
3. 登録したいサーバーを識別します。
ネットワーク上でサーバーを識別する名前、またはサーバーの IP アドレスを入力します。
4. [完了]をクリックします。
サーバーは、ZenCC の Zen エクスプローラー ウィンドウのエンジン ノードの下に表示されます。
データベース エンジンからログアウトするには
この手順では、サーバーからデータもデータベースも削除しません。ログアウトは、データベース エンジンとお使いのコンピューター上の ZenCC 間の通信を切断するだけです。
1. Zen エクスプローラーでエンジン ノードを展開します。
2. ログアウトするサーバー エンジンを右クリックします。
3. [ログアウト(名前)]をクリックします。
名前は、ZenCC を介して現在サーバーにログインしているユーザーの名前を反映します。この名前は、特定のユーザー名とパスワードが指定されなかった場合は匿名です。
そのデータベース エンジンで展開されていたノードは折りたたまれます。
データベース エンジンに再接続するには
1. Zen エクスプローラーで、サーバー エンジンのノードを展開します。
データベース エンジンにログインするには
1. Zen エクスプローラーでデータベース名を右クリックし、次に、ログアウト(名前)をクリックします。
名前は、ZenCC を介して現在サーバーにログインしているユーザーの名前を反映します。デフォルトで、名前は匿名です。これは、特定のユーザー名とパスワードが指定されなかったことを意味します。
そのデータベース エンジンで展開されていたノードは折りたたまれます。
2. データベース名を右クリックします。
3. [ログイン]をクリックします。
4. ユーザー名およびパスワードを入力します。
これらを空白のままにして匿名でのログインを行うことができます。
5. [OK]をクリックします。
リモート データベース エンジンを削除するには
マシンを使用しなくなったなどの状況によって、リモート データベース エンジンの削除が必要となることもあります。
1. Zen エクスプローラーでエンジン ノードを展開します。
2. 削除対象のリモート データベース エンジンを右クリックします。
3. [削除]をクリックします。
この削除操作は確認メッセージを表示することなく直ちに実行されるので注意してください。
データベース エンジンのプロパティ
Capacity Usage ビューアー
ZenCC では、すべてのデータベース エンジンの同時セッション数とデータ使用量を監視する Capacity Usage ビューアーを提供します。このビューアーは特に、異なるライセンス モデルを使用する Zen エンジンへの移行を検討する際に役立ちます。
『
Advanced Operations Guide』の
Capacity Usage ビューアーを参照してください。
Monitor
ZenCC ではデータベース エンジンの特定の動作と属性を監視することができる Monitor ユーティリティを組み込んでいます。このユーティリティは MicroKernel エンジンおよびリレーショナル エンジンの状況も監視できます。監視情報は一連のタブ構成で表されます。タブの配置は必要に応じて変えることができます。タブ内のデータ列も配置を変えたり並べ替えたりすることができます。ある特定の時点のスナップショットを表示し、その情報は手動または自動でリフレッシュすることができます。
『
Advanced Operations Guide』の
データベースの状態の監視を参照してください。
Defragmenter
ZenCC で提供される Defragmenter ユーティリティによって、エンジンのパフォーマンスを低下させる恐れのある、データ ファイルの断片化を検出することができます。また、Defragmenter では、順序が正しくないレコードを再配置したり、データの削除によって空いた領域を取り除くことで、断片化を修正することもできます。ファイルの最適化によってそのファイルのデータが変更されることはありません。また、ファイルの最適化中でもレコードの作成、読み取り、更新または削除が可能です。ほとんどの場合、Defragmenter の機能を使用するためにダウンタイムを設ける、または業務を停止する必要はなく、データベース エンジンの実行中にもこの機能を使用することができます。
『
Advanced Operations Guide』の
データ ファイルの断片化の監視を参照してください。
データベース
データベースは、まとめて格納されているデータの集合です。新しく作成されたデータベースは空で、テーブルを伴っています。詳しい説明については、『
Advanced Operations Guide』の
Zen データベースを参照してください。
データベースのプロパティには、ファイルの場所、参照整合性、セキュリティおよびデータベースがバインドされているかどうかなどの項目が含まれます。
メモ: サーバー エンジンにデータベースを追加する場合、そのサーバー オペレーティグ システムでの管理者権限を持っている必要があります。管理者権限を持っていない場合は、データベースの追加が許可されません。
データベース エンジンからログアウトするには
1. Zen エクスプローラーでエンジン ノードを展開します。
2. 登録されているサーバーのノードを展開し、そのサーバー上のデータベースを表示します。
3. ログアウトするデータベースを右クリックします。
4. [ログアウト(名前)]をクリックします。
名前は、現在データベースにログインしているユーザーの名前を反映します。データベースでセキュリティが有効にされていない場合、名前は Master です。現在のユーザーが Master としてログインしている場合は、名前も Master です。
そのデータベースで展開されていたノードは折りたたまれます。
データベースのプロパティ
データベースのプロパティは、ZenCC 内のプロパティ ダイアログ ボックスから設定します。このウィンドウでは次のプロパティ ノードが表示されます。
コード ページ
このセクションでは、コード ページのプロパティ設定について説明します。
メモ: データベース エンジンは、アプリケーションがデータベースに追加するデータおよびメタデータのエンコードを検証しません。エンジンは、『
Advanced Operations Guide』の
データベース コード ページとクライアント エンコードで説明されているように、すべてのテキスト データが、クライアントによってサーバーまたはクライアント データベースのコード ページのエンコードに変換されていることを前提としています。
データベース コード ページ
このプロパティは、メタデータで使用するエンコードを指定し、DBNAMES.cfg に格納されます。このプロパティはデータベースに適用されます。つまり、データベースとデータをやり取りする
すべてのクライアント アプリケーションに影響する可能性があります。Zen データベース エンジンとクライアント アプリケーション間で互換性のあるエンコードを確立する必要があります。これを行うさまざまな方法については、『
Advanced Operations Guide』の
データベース コード ページとクライアント エンコードを参照してください。
メモ: データベース コード ページの変更では、データベースの既存のデータやメタデータは変換しません。データの破損を防ぐために、コード ページ設定は、データベースの既存のデータやメタデータの現在のエンコードと必ず一致するようにしてください。
データベース コード ページは、特に、異なる OS エンコードを使用して Zen DDF を手動で別のプラットフォームへコピーしながら、データベース エンジンにメタデータを正しく変換させたい場合に役立ちます。
デフォルトのコード ページは "サーバーのデフォルト" で、データベース エンジン実行中のサーバーのオペレーティング システム コード ページを意味します。"コード ページの変更" では設定に関する追加情報を提供し、特定のコード ページを選択することができます。ただし、"コード ページの変更" が行えるのは Linux 版のみです。
ZenCC 接続エンコード
ZenCC それ自体はデータベース エンジンのクライアント アプリケーションです。クライアントとして、各データベース セッションでメタデータおよびデータを読み取りまたは挿入する際に使用するコード ページを指定することができます。既存データベースのデフォルトでは、ZenCC が実行されているマシンのエンコードを使用します。これは旧来の動作です。新しいデータベースのデフォルトでは、自動変換を使用します。
次の表では、[ZenCC 接続エンコード]と[データベース コード ページ]の設定の相互の影響を説明します。
メモ: [ZenCC 接続エンコード]は ZenCC にのみ適用されます。ほかのクライアント アプリケーションには影響しません。
データベース内に OEM 文字データがある場合、旧来の解決法は DSN を使用する ODBC のようなアクセス方法を使用して OEM/ANSI 変換を指定することでした。このバージョンでは、データベースに OEM コード ページを設定し、アクセス方法で自動変換を使用することが可能になりました。『
ODBC Guide』の
自動も参照してください。
ディレクトリ
このディレクトリのプロパティ設定は、一定のタイプのファイルが存在する物理ストレージ上の場所を指定します。
辞書のロケーション
この場所は、辞書ファイル(DDF)が存在する物理的な保管場所を指定します。この場所は、接続しているサーバーと同じサーバーで、データベース エンジンが実行されているサーバーにある必要があります。場所の形式は、サーバー マシンで直接作業しているような形式にする必要があります。
• Windows オペレーティング システムの場合は、drive:\path という形式でパスを入力します。drive はサーバーのドライブ名です。
• Linux の場合、ルートを基準とする標準の Linux パス形式を入力します。
たとえば、データベース エンジンを実行中の Windows サーバーに接続しているワークステーションを使用していて、サーバーの C:\ ドライブの mydata フォルダーに新規データベースを作成したいとすると、ロケーションに「c:\mydata」と入力します。サーバーの C:\ ドライブをローカル ネットワーク ドライブ(たとえば、F:\)にマップしていたとしても、このように入力します。
データ ディレクトリ
[データ ディレクトリ]フィールドのリストでは、データ ファイルが存在する物理ストレージ上の場所を指定します。[新規作成]をクリックして新規リソースを追加します。[除去]をクリックすると、データ ファイルの場所をリストから削除することができます。データ ファイルの場所は、データベース エンジンが起動している同じサーバー上でなければなりません。
[辞書のロケーション]についても同じ方法で場所を指定してください。
全般
[全般の設定]には次のプロパティ設定が含まれています。
バウンド データベース
データベースが、バインドされているかどうかを示します。データベースをバインドすると、DDF またはデータ ファイルが別のデータベースによって使用されることを防ぎ、データ ファイルが同一データベース内で複数のテーブル定義を持つことを防ぎます。
バウンド データベースの詳細については、
バウンド データベースと整合性の設定を参照してください。
整合性の設定
データベースにセキュリティ、RI、トリガーなどの整合性制約を設定するかどうかを指定します。これらの制約は、データ ファイルへの ODBC/SQL アクセスだけでなく、Btrieve アクセスにも適用されます。
長いメタデータ(メタデータ バージョン 2)
このプロパティは読み取り専用で、データベースが作成されたときにメタデータ バージョン 2 が設定されたかどうかを示します。"長いメタデータ" はメタデータ バージョン 2 の別称です。
リレーショナル制約
[リレーショナル制約]には、データベースに効力のあるリレーショナル制約が行列形式で一覧表示されます。
Btrieve およびリレーショナル制約間の相互作用を参照してください。
セキュリティ
[セキュリティ]には、[データベース セキュリティ]タブおよび[Btrieve セキュリティ]タブにそれぞれのプロパティ設定が含まれています。セキュリティの完全な説明については、
Zen セキュリティを参照してください。
[データベースの新規作成]GUI のリファレンス
データベースを新規作成するには、次のような ZenCC の[データベースの新規作成]ダイアログを使用します。ダイアログの下にある表ではその GUI オブジェクトについて説明しています。(
新規データベースを作成するにはも参照してください。)
ダイアログ イメージ内の項目をクリックすると、その項目の使用に関する情報を確認できます。
[データベースの新規作成]GUI の要素
Zen データベースの作成、編集、削除、および修復
データベースに関連する作業は次のとおりです。
名前付きデータベースの概念については、『
Advanced Operations Guide』の
Zen データベースを参照してください。
新規データベースを作成するには
メモ: Linux および Raspbian の場合、データベースを作成するディレクトリのオーナーは
zen-svc である必要があります。そうでない場合は、データベースを作成しようとしても、エラー メッセージ、
7039:辞書パスが無効です。が返されます。
chown コマンドを使用してディレクトリのオーナーを変更してください。具体的には、「
chown zen-svc ディレクトリ名」と指定します。
1. Zen エクスプローラーで、データベースを新規作成するデータベース エンジンを右クリックし、[新規作成]>[データベース]の順に選択します。
2. [
データベースの新規作成]ダイアログ ボックスにデータベースの名前と場所を入力します(
識別子の制限を参照)。
既存の DSN と同じ名前にすることはできません。また、1 つのディレクトリに、ファイル名が同一で拡張子のみが異なるようなファイルを置くことはできません。たとえば、invoice.btr と invoice.mkd の場合、データベース エンジンは拡張子を無視して、これらを同じファイルと認識してしまうため、同じディレクトリに置くことはできません。
データベースのプロパティを変更するには
1. Zen エクスプローラーで、変更するデータベース エンジンを右クリックして[
プロパティ]を選択します。
![](../uguide/images/javapcc_db_props.png)
2. [プロパティ]ダイアログの一覧から、管理する設定をクリックします。
3. 必要に応じプロパティを設定します。
データベースを削除するには
現在ログインしているデータベースを削除することはできません。
データベース エンジンからログアウトするにはを参照してください。
データベース セキュリティが "混合" または "データベース" に設定されている場合は、セキュリティを解除した後にデータベースを削除できるようになります。
Zen エクスプローラーを使用してセキュリティを無効にするにはおよび
SQL を使用してセキュリティを無効にするにはを参照してください。
データベースを削除する際に、関連付けられている DSN を一緒に削除する場合は、[ウィンドウ]>[設定]>[Zen]>[全般の設定]から、[関連付けられている DSN エントリは常に削除されます。]オプションを選択します。
1. Zen エクスプローラーで、削除するデータベースを右クリックします。
2. [削除]をクリックします。
3. [項目の削除]ダイアログで、以下のいずれかをクリックします。
• はい、ただし、データベース名のみ - dbnames.cfg からデータベース名のみを削除します。
• はい、データベース名と DDF – データベース名、および関連付けられている DDF ファイルを削除します。
• いいえ - 削除しないでキャンセルします。
メモ: データベースを削除しても、ユーザー データ ファイルに影響はありません。
データベース名を修復するには
あるデータベースのテーブル(データ ファイル)を、新規作成した別名のデータベースで使用しようとすると、その新しいデータベース用としてテーブルを開くことができないことがあります。場合によっては、そのテーブルは元のバインドされているデータベース名を持っている可能性があります。たとえば、元のデータベースで、バインドが設定されている、または参照整合性が設定されていると、データ ファイルはその元のデータベース名にバインドされます。
バウンド データベースと整合性の設定も参照してください。
新しいデータベース用にそれらのテーブルを開くことができるようにするには、その新しいデータベースのデータベース名を修復する必要があります。修復を行うと、テーブルは新しいデータベースと関連付けられます。
1. Zen エクスプローラーで、データベース ノードを展開し、修復対象のデータベース名を右クリックします。
2. [データベース名の修復]をクリックします。
次の表では、データベース、テーブル、あるいはその両方に対するセキュリティ設定に応じた必要な作業(ある場合)について説明します。
セキュリティの作業も参照してください。
テーブル
テーブルは、データベースがデータを保存するオブジェクトです。Zen では、データ テーブルとシステム テーブルの 2 種類のテーブルを扱います。データ テーブルはユーザーによって作成されます。テーブルは作成後、それにデータを入れるまでは空です。システム テーブルは、必要に応じて Zen データベースによって作成され、データが入れられます。
データベース テーブル
データ テーブルの完全な説明については、
Table Editor を参照してください。また、そのセクションでは、テーブルの作成と削除、および列や外部キーなどの操作についても説明されています。
システム テーブル
システム テーブルは Zen エクスプローラーのシステム オブジェクト ノードの下に表示されます。その内容は、
テーブルのプロパティを表示するにはに説明されているので、ご確認いただけます。
テーブルのプロパティ
テーブル プロパティは、テーブルに関する情報を提供します。別個のタブにより、全般的なプロパティ、列の情報、およびインデックスの情報が表示できます。[全般]タブで一覧できるプロパティについて、次の表で説明します。
テーブルのプロパティを表示するには
1. Zen エクスプローラーで特定のデータベースのテーブル ノードを展開します。
システム テーブルに関心がある場合は、システム オブジェクトの下位にあるテーブルを展開します。
2. 目的のテーブルを右クリックし、[プロパティ]をクリックします。
ヒント: テーブル プロパティを使用して、テーブルのインデックス付けされた列の一覧を表示することができます。
テーブルを開くには
1. Zen エクスプローラーで特定のデータベースのテーブル ノードを展開します。
システム テーブルに関心がある場合は、システム オブジェクトの下位にあるテーブルを展開します。
2. 作業対象のテーブルを右クリックし、[開く]または[新しいウィンドウで開く]をクリックします。
この操作では、SELECT * from table_name クエリを実行します。
テーブルを削除するには
1. Zen エクスプローラーでデータベースのテーブル ノードを展開します。
2. 目的のテーブルを右クリックし、[削除]をクリックします。
スキーマの管理
スキーマは、メタデータ、つまりデータに関するデータです。Zen を Btrieve トランザクショナル データベースとして使用する場合、明示的なスキーマは必要ありませんが、少量のメタデータが Btrieve ファイル自体に格納されるほか、MicroKernel エンジンの実行時は MicroKernel エンジンの中に格納されます。これに対し、Zen リレーショナル データベースでは、データを保管および管理するのに使用されるすべての情報はスキーマに格納されます。このリレーショナル情報はデータ辞書ファイル(DDF)に格納されます。本 SQL エンジンが正しく動作し、かつ高いパフォーマンスを発揮するかどうかは、DDF が有効かつ正確であるかどうかによって決まります。このセクションの情報を使用することで、無効または不完全な DDF を検出し、そのような DDF を修正するために実行できる処置を決定することができます。
DDF では、テーブルおよびフィールドの構造と以下の特性/機能を定義します。
• テーブル属性と列属性
• 列インデックスとインデックス属性
• 主キーや外部キーなどのテーブル制約
• ストアド プロシージャ、トリガー、ユーザー定義関数、およびビュー
• データベース セキュリティ設定
スキーマは再利用や保管のためにファイルにエクスポートすることができます。ZenCC で、データベースを右クリックし、[スキーマのエクスポート]を選択すると、データベース スキーマのエクスポート ウィザードが表示されます。テーブルを右クリックして[テーブル スキーマのエクスポート]を選択すると、ダイアログが表示されます。どちらの場合も、ファイル拡張子 .sql とする、スキーマがエクスポートされたファイルを作成します。このファイルは SQL スクリプトと呼ばれます。デフォルトのエクスポート場所は、C:\Users\<ユーザー アカウント> です。
エクスポートによって作成された SQL スクリプトは、次の方法で使用できます。
• ZenCC でデータベースを右クリックし、[スキーマのインポート]を選択してスクリプトを実行します。
• ZenCC で[ファイル]>[開く]を使用し、スクリプトを SQL Editor で開いて実行します。
• テキスト エディターを使ってスクリプトの全部または一部をコピーし、SQL Editor に入力して実行します。
• pvddl を使って、コマンド プロンプトでこのスクリプトの全部または一部を実行します。
このセクションの残り部分では、以下の項目について説明します。
データベース スキーマのエクスポート オプション
データベース スキーマのエクスポート ウィザードには、Zen のメタデータをエクスポートするための以下のような設定が用意されています。
• CREATE/ALTER ステートメントに IN DICTIONARY を含める
データベース スキーマをエクスポートするときに、CREATE および ALTER ステートメントに IN DICTIONARY キーワードを含めておくと、エクスポートされたスキーマを使って新しい DDF のセットにスキーマを再作成する際、基となるデータ ファイルを作成しないようにすることができます。このオプションを選択しない場合は、スキーマをインポートすると、DDF のメタデータ定義だけでなく各テーブルの空のデータ ファイルも作成されます。
この設定を使用する場合は、データ ファイルを新しいデータベースの場所にコピーしてからスキーマをインポートします。そうすると、SQL スクリプトがそれらのファイルの DDF にメタデータを再作成できます。
• セキュリティ スキーマ (ユーザー/グループ/アクセス許可) を含める
スキーマにより、定義されているすべてのユーザー、グループ、および権限などのセキュリティ設定を取り込むことができます。データベースが過去にセキュリティを使用していたが、現在それを有効にしていない場合でも、このスキーマのメタデータは存在する可能性があります。インポートされるセキュリティ設定を別のデータベースで使用できるようにするには、スキーマをインポートする前に、そのデータベースでセキュリティを有効にしておく必要があります。有効にしておかないと、インポートが完了した場合でもエラー メッセージが返されます。
• 完了時に内部エクスポート テーブルを削除する (推奨)
内部エクスポート テーブルの削除はデフォルトで選択されています。このオプションは、スキーマのエクスポート時に生成されたファイルを削除します。これらのファイルは、残しておけばトラブルシューティング時に役立ちますが、通常の使用状況下ではクリーンアップすることをお勧めします。生成されるテーブルには、文字列 x$Dump で始まる名前が付けられます。
• スクリプト ファイルのエンコード
エクスポート先のパス名を指定するフィールド([エクスポート先])の下で、
ファイル エンコードの初期設定に記載されたオプションのリストから、スクリプト ファイルのエンコードを選択できます。また、デフォルト エンコードを変更することもできます。
テーブル スキーマのエクスポート オプション
[テーブル スキーマのエクスポート]ダイアログには、テーブルのメタデータをエクスポートするための以下のようなオプションが用意されています。
• IN DICTIONARY なしで CREATE TABLE ステートメントをエクスポートする。これはデフォルトです。
• CREATE TABLE ステートメントに IN DICTIONARY 句を追加する。
• ファイル エンコードの初期設定に記載されたオプションのリストから、スクリプト ファイルのエンコードを選択する。このダイアログには、デフォルトのエンコードの初期設定を開いて変更するためのオプションがあります。
以下は IN DICTIONARY 句の使用例を示しています。
IN DICTIONARY
このオプションを選択する場合は、必ずすべてのデータ ファイルを新しいデータベースの場所にコピーしたうえで、その新しい場所でスクリプトを実行してください。データ ファイルは、テーブル作成の成功に必要不可欠です。詳細については、『
SQL Engine Reference』の
IN DICTIONARY を参照してください。
CREATE TABLE "Course" IN DICTIONARY USING 'Course.mkd' (
"Name" CHAR(7) NOT NULL CASE ,
"Description" CHAR(50) CASE ,
"Credit_Hours" USMALLINT,
"Dept_Name" CHAR(20) NOT NULL CASE
);
CREATE UNIQUE INDEX "Course_Name" IN DICTIONARY ON "Course"("Name");
CREATE INDEX "DeptName" IN DICTIONARY ON "Course"("Dept_Name");
スキーマのエクスポート作業とインポート作業
以下の手順では、ZenCC を使ってデータベース スキーマをエクスポートしたりインポートしたりする方法を示します。
データベース スキーマをエクスポートするには
1. ZenCC でデータベースを右クリックし、[スキーマのエクスポート]を選択します。
2. エクスポート先のファイルの名前を入力します。
3. エクスポート オプションを選択します。
4. [エクスポートの開始]をクリックします。
エクスポートが完了したら、[再エクスポート]ボタンを使用し、ファイル名を変更することで追加のコピーを作成できます。
5. [次へ]をクリックします。
7. エクスポートしたスクリプトやエクスポート ログを開くには、対応する[表示]ボタンをクリックします。
8. 作業が終わったら、[完了]をクリックします。
データベース スキーマをインポートするには
スキーマで使用するデータ ファイルをコピーしたら、それらのファイルを必ず新しい場所に置いてから、スキーマをインポートしてください。また、スキーマをインポートする際には、必ず IN DICTIONARY オプションを指定してください。
1. ZenCC で、データベースを右クリックし、[スキーマのインポート]を選択します。
2. データベース スキーマのインポート ウィザードで、[参照]ボタンを使ってスクリプト ファイルを選択するか、[インポート元]フィールドにパス名を入力します。
3. [インポートの開始]をクリックします。
4. スキーマがインポートされたら、[次へ]をクリックします。
5. 検証手順では、新しいデータベースをスキーマのエクスポート元のデータベースと比較することによって、チェックを実行するオプションがあります。以下のいずれかを行うことができます。
• 検証をスキップするには、[次へ]をクリックします。
• ここには、エクスポートされたスキーマに含まれるデータベースの名前が自動的に入力されます。別のデータベースに照らして検証するには、その別のデータベース名を入力するか、[データベースの選択]ボタンを使って、サーバーが認識するデータベースの一覧からその別のデータベースを選択します。処理するには、[検証の開始]をクリックします。
7. [次へ]をクリックします。
8. [インポートの詳細]に結果がまとめられます。インポート ログを開くには、対応する[表示]ボタンをクリックします。
インポート ログには、インポート中に表示されたメッセージと、メッセージを返した SQL ステートメントを含むその他の詳細も格納されます。ログには検証結果も記録されます。
9. 作業が終わったら、[完了]をクリックします。
メモ: インポートするスキーマが既に存在するテーブルを作成しようとしても、スキーマの CREATE ステートメントは無視され、既存のテーブルは影響を受けません。
テーブル スキーマをエクスポートするには
1. ZenCC でテーブルを選択します。複数のテーブルを選択するには、Shift または Ctrl キーを押しながらクリックします。
2. 選択したテーブルを右クリックし、[テーブル スキーマのエクスポート]を選択します。
3. エクスポート先のスクリプト ファイルの名前を入力します。
4. IN DICTIONARY 句を使用するかどうかを選択し、エンコードを確認します。
5. [OK]をクリックします。
テーブル スキーマをインポートするには
テーブルのデータ ファイルがコピーされている場合は、そのファイルを必ず新しい場所に置いてから、スキーマをインポートしてください。また、スキーマをインポートする際には、必ず IN DICTIONARY オプションを指定してください。
1. ZenCC で、データベースを右クリックし、[スキーマのインポート]を選択します。
2. データベース スキーマのインポート ウィザードで、[参照]ボタンを使ってスクリプト ファイルを選択するか、[インポート元]フィールドにパス名を入力します。
3. [インポートの開始]をクリックします。
4. スキーマがインポートされたら、[次へ]をクリックします。
5. 検証手順では、新しいデータベースをスキーマのエクスポート元のデータベースと比較することによって、チェックを実行するオプションがあります。以下のいずれかを行うことができます。
• 検証をスキップするには、[次へ]をクリックします。
• ここには、エクスポートされたスキーマに含まれるデータベースの名前が自動的に入力されます。別のデータベースに照らして検証するには、その別のデータベース名を入力するか、[データベースの選択]ボタンを使って、サーバーが認識するデータベースの一覧からその別のデータベースを選択します。処理するには、[検証の開始]をクリックします。
7. [次へ]をクリックします。
8. [インポートの詳細]に結果がまとめられます。インポート ログを開くには、対応する[表示]ボタンをクリックします。
インポート ログには、インポート中に表示されたメッセージと、メッセージを返した SQL ステートメントを含むその他の詳細も格納されます。ログには検証結果も記録されます。
9. 作業が終わったら、[完了]をクリックします。
メモ: インポートするスキーマが既に存在するテーブルを作成しようとしても、スキーマの CREATE ステートメントは無視され、既存のテーブルは影響を受けません。
エクスポート後のデータベース スキーマ ファイルの一般的な使用法
このセクションでは、 データベース スキーマの一般的な使用法について説明します。
データベース全体をコピーするには
データベース スキーマをインポートすることで、エクスポート元のデータベースの完全コピーを作成できます。このようなコピーは、テストを行ったり、アプリケーション配布の一環として実行時にメタデータを生成したりするために使用できます。
1. IN DICTIONARY オプションを指定して、データベース レベルのスキーマをエクスポートします。
2. 新しいデータベースを作成します。新しいデータベースをエクスポート元と同じサーバーに作成する場合は、異なる名前にする必要があります。
新規データベースを作成するにはを参照してください。
3. 元のデータベースの全データ ファイルのコピーを作成します。
4. データ ファイルのコピーを新しいデータベースの場所に置きます。必ずこの手順を行ってからインポートを行ってください。
5. 新しいデータベースにスキーマをインポートします。
6. 新旧のデータベースが同じサーバーにある場合は、新データベースを旧データベースに照らして検証することで、無効なテーブル定義やスキーマの不一致の問題など、不一致がないかどうかをチェックできます。
DDF のみをコピーして空のデータ ファイルを作成するには
機密性のため、テクニカル サポートがデータ ファイルを共有できないようになっているなどのシナリオでは、スキーマのインポートにより DDF と空のファイルが作成されるよう、データ ファイルのコピーをスキップすることができます。
1. IN DICTIONARY オプションを指定せずに、データベース レベルのスキーマをエクスポートします。
2. 新しいデータベースを作成します。新しいデータベースをエクスポート元と同じサーバーに作成する場合は、異なる名前にする必要があります。
新規データベースを作成するにはを参照してください。
3. 新しいデータベースにスキーマをインポートします。空のデータ ファイルが自動的に作成されます。
4. 新旧のデータベースが同じサーバーにある場合は、新データベースを旧データベースに照らして検証することで、無効なテーブル定義などの不一致がないかどうかをチェックできます。
v1 形式から v2 形式にデータベースを移行するには
v1 形式から v2 形式にデータベースを移行すると、長い識別子名、ビューおよびストアド プロシージャの実行権限、データベース オブジェクトの最大数の拡張など v2 メタデータの機能をお使いのアプリケーションと環境で利用できるようになります。
v1 形式から v2 形式にデータベースを移行する手順は、データベースをコピーする場合と似ていますが、相違点は、新しいデータベースを作成する際に長いメタデータ オプションを選択する必要があることです。
v1 形式から v2 形式への移行を行う際は、v2 データベースをその基となった v1 と比較する検証手順を実行する必要があります。検証に成功した場合は、新データベースでも旧データベースと同じ動作を期待できることになります。
データベース スキーマの整合性を検証するには
多くのお客様は 20 ~ 30 年の長きにわたって Zen データベースをお使いです。スキーマは、レガシー ツールやサード パーティ製のユーティリティを使用して、あるいは手書きによって作成されている可能性があります。このようなデータベースには、無効なテーブル定義があったり、データ ファイルに一致しない定義があったりします。エクスポートおよびインポート処理では、このような欠陥のある定義が検出されるので、それらの定義を修正することで、Zen エンジンの機能およびパフォーマンスを最適化することができます。
1. IN DICTIONARY オプションを指定して、データベース レベルのスキーマをエクスポートします。警告やエラーがないかどうかエクスポート ログを確認します。
2. 旧データベースと同じサーバーに、旧データベースと異なる名前で新データベースを作成します。
3. 元のデータベースの全データ ファイルのコピーを作成します。
4. データ ファイルのコピーを新しいデータベースの場所に置きます。
5. 新しいデータベースにスキーマをインポートします。
6. 検証手順を実行します。
特殊なケース:セキュリティで保護されたデータベース スキーマの操作
エクスポート操作を行うには、CREATE データベース権限が付与されたグループのユーザー アカウントが必要です。スキーマをエクスポートする前に、そのようなアカウントでログインするか、そのようなアカウントのユーザー名とパスワードを入力するよう求められることを考慮しておきます。
1. データベース レベルのスキーマをエクスポートします。セキュリティで保護されたデータベースからスキーマをエクスポートする場合は、デフォルトで[セキュリティ スキーマ (ユーザー/グループ/アクセス許可) を含める]オプションが選択されます。
2. スキーマを新しいデータベースにインポートした場合の結果は、その新しいデータベースでセキュリティが有効になっているかどうかによって異なります。
セキュリティが有効になっている場合
スキーマをインポートした後では、データベースが使用可能になります。ただし、以下の点に注意してください。
• インポートされるユーザーのパスワードが空になっています。パスワードを設定するには、SQL Editor において、SET PASSWORD FOR 'ユーザー' = 'パスワード' を使用します。
• ユーザー名とグループ名が既存のユーザー名とグループ名に一致する場合には、インポートは失敗します。既存のユーザーとグループは変更されません。このエラーはインポート ログに出力されます。
セキュリティが無効になっている場合
セキュリティが無効になっている場合は、以下の現象が発生します。
• インポート ログにユーザー、グループ、ユーザー権利、テーブル列の作成エラーが出力されます。
• 検証手順は提供されません。
• スキーマ内の全項目がインポートされ、データベースが使用可能になりますが、セキュリティは無効になっています。
ターゲット データベースのセキュリティを有効にしてスキーマを再インポートすると、既にインポート済みの項目のインポート エラーがログに出力されますが、セキュリティ無効時にインポートできなかったセキュリティ項目はインポートできるようになります。これで、検証手順を使用できるようになります。ただし、検証に成功するのは、元のデータベースにあるユーザー名とパスワードで新しいデータベースにログインした場合に限ります。最初のインポート時であっても、検証で問題が示されなかった場合には、セキュリティが有効になっていたかのようにデータベースが使用可能になります。
特殊なケース:複数のレコード定義またはバリアントのレコード定義の操作
Zen では 1 つのデータ ファイルに対して複数のテーブル定義を作成できます。たとえば、1 つ目の定義には、データ ファイルの最初のキーに対応する最初の列を ID CHAR(12) として指定できる一方、2 つ目のテーブル定義では、12 文字の ID を小さな列、SequenceNum CHAR(8)、Location CHAR(2)、Zone CHAR(2) の集合として管理できます。Zen では、USING 句を使って同じデータ ファイルを参照することで、複数のテーブル定義を作成できます。ただし、次の例に示すように、定義同士が両立可能である必要があります。
また、Zen では、各エントリにレコード型を示す列を追加することで、同じデータ ファイルにさまざまなレコード レイアウトを格納できます。このようなファイルはバリアント レコードがあると呼ばれます。次に例を示します。
CREATE TABLE Vendor USING 'COMPANY.DAT'
(ID CHAR(12), RecType CHAR(1), V_Name VARCHAR(20), V_City VARCHAR(20), ...)
CREATE TABLE Customer USING 'COMPANY.DAT'
(ID CHAR(12), RecType CHAR(1), Cust_Type INTEGER, Cust_Contract Char(8), ...)
Vendor テーブルと Customer テーブルはともに company.dat を参照し、両テーブルの定義の最初の 2 つの列は一致していますが、3 つ目以降の列定義は異なっています。これらのテーブルの 2 つのレコード レイアウトは、全体の長さが同じで、かつデータ ファイル内のレコード長も一致している必要があります。テーブル定義には、全体の長さとなるように埋め込むための余分なフィールドも必要なら追加できます。さらに、すべてのバリアント レコードに共通するインデックス定義があるほか、ただ 1 つのテーブル定義で使用されるインデックスもあります。この例では、company.dat にアクセスするアプリケーションは、各レコードのテーブル定義を指定するための正しい RecType 値を送信する必要があります。
データ ファイル内のテーブル定義数が[スキーマのエクスポート]機能によりチェックされます。複数個見つかった場合は、CREATE TABLE ステートメントと、2 つのほとんど同じ CREATE INDEX ステートメント(IN DICTIONARY を一方は含み、他方は含まない点のみが異なる)を使って、スキーマがエクスポートされます。
これら追加の CREATE INDEX ステートメントを使ってスキーマをインポートすると、各テーブルに対して、共通のインデックスと一意のインデックスがともに正常に作成されます。インポートを行うときに、いくつかのタイプのメッセージが記録されます。これらのメッセージはエラーまたは警告としてマークされますが、通常は無視できます。この理由について、Vendor および Customer テーブルで共有される サンプル データ ファイル company.dat を引き続き使った次の例で説明します。これらのテーブルのスキーマを新しいデータベースにインポートすると、以下の現象が発生します。
• Vendor テーブルは、IN DICTIONARY を指定しない一連の CREATE INDEX ステートメントで作成されます。
• CREIN DICTIONARY を指定した CREATE INDEX ステートメントでは、次のエラー メッセージが生成されます。
[エラー] [LNA][Zen][SQL Engine]重複インデックスが存在します。
2 番目の CREATE INDEX ステートメントのセットは、前のステートメントが成功しているため、失敗します。
• Customer テーブルが作成される際に、次のような警告が表示されます。
[警告] [LNA][Zen][SQL Engine]USING 句内のデータ ファイル 'company.dat' は既に存在しており、テーブル 'Customer' と関連付けられています。
このメッセージは、予想されるように、2 つのテーブル定義が同じデータ ファイルを使用していることを示しています。
• Vendor テーブルの作成により company.dat のインデックスが既に作成されているため、IN DICTIONARY を指定しなかった Customer テーブルの CREATE INDEX ステートメントは失敗し、次のエラーが表示されます。
[エラー] [LNA][Zen][SQL Engine][Data Record Manager]キー番号パラメーターが無効です(Btrieve エラー 6)
• これに対し、IN DICTIONARY を指定した CREATE INDEX ステートメントでは、エラーや警告なしで DDF にインデックスが正しく追加されます。
同じデータ ファイルを使用するバリアント テーブルを操作していることがわかっている場合は、このようなインポート ログ エントリは無視できます。スキーマのインポート ログの検証セクションにこれら以外のエラーまたは警告が出力されていない場合は、テーブルが正しく作成されたことが公式に確定します。
スキーマのエクスポートおよびインポートの問題のトラブルシューティング
データベース スキーマのエクスポートとインポートは、SQL アプリケーションでの予期しない結果や不正確な結果を生じ得るメタデータ定義の問題を検出するのに役立ちます。このような問題は通常、標準的な SQL に準拠していない DDF によって発生します。スキーマをエクスポート、インポート、および検証したときに記録された警告メッセージやエラー メッセージを使って、スキーマ定義を評価、修正することができます。
トラブルシューティング処理では、以下の一部または全部を確認、分析するなど、いくつかのステップを実行する場合があります。
• スキーマのエクスポートのログ エントリ
• スキーマのインポートのログ エントリ
• スキーマ検証のログ エントリ
• スキーマのエクスポートによって生成されたスクリプト
• ソース データベースおよびターゲット データベースのメタデータ定義
このセクションでは、重要なログ エントリの詳細および例、ならびに実行すべきアクションを示します。
スキーマのエクスポートのログ
スキーマをエクスポートすると、Zen はデータベースに定義されているオブジェクトごとに SQL ステートメントを生成しようとします。問題のあるオブジェクトについては、調査が必要な潜在的な問題に関する洞察に満ちたメッセージが生成される場合があります。エクスポート中に生成されたメッセージは、データベース スキーマのエクスポート ウィンドウに表示されます。エクスポート後、これらのメッセージは、警告に関連する SQL ステートメントを含むその他の詳細とともに、schema_export.log ファイルにも書き込まれます。特定のテーブルまたは列に関する警告メッセージも、"/* <message> */" という形式のコメント マークが付いて、schema.sql スクリプトに追加されます。
オルタネート コレーティング シーケンス(ACS)
問題:COLLATE 属性のあるテーブル列がある場合は、スキーマのエクスポート時に次の警告が返されます。
[警告] 1 つ以上のテーブルが照合順序 'UPPER.ALT' を使用しています。インポートする前に、このファイルをインポート データベースの場所にコピーする必要があります。
このようなメッセージの 1 つが、データベース内の一意の照合順序ごとに入ります。
処置:すべての照合順序ファイルが新しいデータベースの場所にあることを必ず確認したうえで、スキーマをインポートします。
無効なエントリ
問題:スキーマのエクスポート中、無効なサイズや小数位が検出されると、次のようなメッセージが返されます。
[WARN] Decimal value ignored for integer column <table>.<column>
(整数列 <テーブル>.<列> では小数位は無視されます)
[WARN] Column <table>.<column> has an incorrect size of 0
(列 <テーブル>.<列> には不適切なサイズ、0 が設定されています)
最初のメッセージは単に情報を提供するだけであり、何もする必要はありません。2 番目のメッセージは、スキーマがインポートされるときに、指定されたテーブルが作成できないことを示します。
アクション:元のデータベースにある無効なサイズのテーブル定義を修正するには、ALTER TABLE ステートメントを使って列のサイズを修正するか、列を削除します。次に、スキーマを再度エクスポートして、正しい CREATE TABLE ステートメントを生成します。また、元の DDF を変更したくない場合は、エクスポートで生成された schema.sql ファイルを編集して、正しい列サイズを指定することもできます。後者を選択した場合、スキーマのインポートで作成される新しいテーブルは、元のテーブルと一致しないため、検証エラーが生成されます。
重複している列
問題:テーブル定義に同じオフセットで列が複数あり、それらの列の少なくとも 1 つが BIT 型でない場合、スキーマのエクスポートにより次のようなメッセージが返されます。
[WARN] Column <table>.<column> has the same offset as another column that is not type BIT
(列 < テーブル>.< 列> は、BIT 型でない別の列と、オフセットが同じです)
1 つの SQL テーブルでは、オフセットが同じ複数の列は、すべて BIT 型でない限り、持つことができません。データの一部を、複数のタイプのクエリで別々の方法で定義する必要がある場合は、複数のテーブル定義を作成するか、ビューを使用します。
処置:このオフセットに対して正しい列を確認し、その他の列を ALTER TABLE ステートメントで削除します。また、元の DDF を変更したくない場合は、エクスポートで生成された schema.sql ファイルを編集して、その他の重複する列を削除することもできます。このような修正を行わない場合、スキーマのインポートで作成される新しいテーブルは、一意のオフセットに作成された列をすべて含むため、検証エラーが生成されます。
Btrieve のヌル キー
問題:古い DDF のインデックスには、データ ファイルにある Btrieve のヌル キーに対応することを示すフラグが設定されている場合があります。Zen エンジンは、このフラグをレガシー ヌルとして扱うため、使用したり保守したりしなくなりました。スキーマのエクスポートでは、次のようなメッセージが返されます。
[WARN] Btrieve NULL key flag not supported in SQL index <name> on table <name>
(Btrieve のヌル キー フラグはテーブル <名前> の SQL インデックス <名前> では使用できなくなりました)
処置:これは情報メッセージであり、何もする必要はありません。レガシー ヌルと新しい真のヌルの詳細については、『
Advanced Operations Guide』の
ヌル値を参照してください。
スキーマのインポートのログ
インポート中に生成されたメッセージは、データベース スキーマのインポート ウィンドウに表示されます。インポート後、これらのメッセージは、警告に関連する SQL ステートメントを含むその他の詳細とともに、schema_import.log ファイルにも書き込まれます。
このセクションでは、重要なログ エントリの詳細および例、ならびに実行すべきアクションを示します。
SQL エラー
問題:schema.sql スクリプトをインポートすると、無効な SQL ステートメントでエラーが返される場合があります。これらのエラーによって、元のデータベースの DDF に指定されたデータベース オブジェクトにあると示された問題には、以下のものがあります。
• 構文エラー
• レコードのキー フィールドに重複する値があります(Btrieve エラー 5)
• テーブルまたはオブジェクトがありません
• 無効な列型です
• 列またはパラメータ No. 1:列幅にゼロは指定できません
• 列の長さの上限値を超えました
• Btrieve キー定義がインデックス定義と一致しません
これらのエラーが発生する原因の一部は、無効なデータ型や列の長さ、相対パスでないデータ ファイルのパスなど、ソース データベース内の無効なエントリによるものです。一方、前のエラーが原因となって引き起こされるエラーもあります。たとえば、CREATE TABLE が失敗すると、後続の CREATE INDEX ステートメントも失敗します。
処置:メッセージとインポート ログ ファイル内の詳細を確認し、エラーの原因を究明します。必要があれば、エラーに関連するすべての SQL ステートメントを schema.sql ファイルで確認してください。たとえば、CREATE PROCEDURE で生成されたエラーはその 1 行目しかログに記録されませんが、schema.sql にはステートメント全体が格納されています。
バリアント レコードに関するメッセージ
問題:以下のメッセージは通常、データベースにバリアント レコード定義があることを示します。
[警告] [LNA][Zen][SQL Engine] USING 句内のデータ ファイル '<ファイル名.拡張子>' は既に存在しており、テーブル '<テーブル>' と関連付けられています。
[エラー] [LNA][Zen][SQL Engine]重複インデックスが存在します。
[エラー] [LNA][Zen][SQL Engine][Data Record Manager]キー番号パラメーターが無効です(Btrieve エラー 6)
参照整合性制約
問題:以下のメッセージは通常、データベースに参照整合性制約があることを示します。
[エラー] [LNA][Zen][SQL Engine][Data Record Manager] MicroKernel は指定されたファイルを見つけられません(Btrieve エラー 12)。
[LNA][Zen][SQL Engine][Data Record Manager]RI 定義は同期が取れていません(Btrieve エラー 73)。
通常、これらのエラーが発生するのは、[CREATE/ALTER ステートメントに IN DICTIONARY を含める]オプションを選択したために、スキーマのエクスポートにより外部キーの制約が作成されている場合です。ステータス 12 の場合は、データ ファイルが存在していません。ステータス 73 の場合は、データ ファイルが複数の名前を持つデータベースからコピーされています。
処置:参照整合性が設定されたデータベースの場合は、スキーマのエクスポートを[IN DICTIONARY を含める]オプションを選択せずにやり直して、スキーマを再度インポートする必要があります。そうすることにより、スキーマのインポートでデータ ファイルが作成され、そのデータ ファイル内に参照整合性制約の情報が格納されます。
メタデータのバージョン エラー
問題:以下のメッセージは通常、あなたが V2 メタデータ データベースからスキーマをエクスポートし、そのエクスポートしたスキーマを v1 メタデータ データベースにインポートしようとしていることを示します。
[LNA][Zen][SQL Engine]テーブル名 longtablenameinv2database が長すぎます。
[LNA][Zen][SQL Engine][Data Record Manager]この機能は、現メタデータ バージョンではサポートされていません。
これらのエラーが発生するのは、ソース データベースで長いメタデータ オブジェクト名、ビューまたはストアド プロシージャ内での EXECUTE AS、ビューまたはストアド プロシージャ内での GRANT ステートメントなど、v2 メタデータに固有の機能を使用している場合のみです。v2 メタデータの機能を使用していない v2 メタデータ データベースからスキーマをエクスポートし、エクスポートしたスキーマを v1 メタデータ データベースにインポートした場合には、エラーは返されません。
処置:元のデータベースで v2 メタデータを使用している場合は、ターゲット データベースを作成する際にも必ず v2 メタデータを使用してしてください。v2 メタデータの全機能が再作成されるようにするためです。
スキーマ検証のログ
検証中に生成されたメッセージは、[インポートの検証]ウィンドウに表示されます。検証が完了すると、schema_import.log ファイルにおいて、インポート メッセージの後にこれらのメッセージが書き込まれます。
検証処理では、新しいデータベースと元のデータベースを比較するための一連のクエリが実行されます。以下のそれぞれに、欠落しているエントリ、余分なエントリ、不一致のエントリがないかどうかがチェックされます。
• テーブル
• 列と列属性
• 主キーおよび外部キー
• インデックス
• ストアド プロシージャ
• ビュー
• トリガー
• ユーザーとグループ(セキュリティが有効になっている場合)
オブジェクトが欠落している場合は、ログの「import」セクションを参照し、そのオブジェクトの作成の失敗に関連したエントリを特定します。このエントリには、SQL ステートメントと、失敗の原因を究明するために生成されたエラーが記載されています。
このセクションでは、重要なログ エントリの詳細および例、ならびに実行すべきアクションを示します。
オフセットの不一致
問題:元のデータベースに、重複する列が含まれるテーブル定義がある場合(
スキーマのエクスポートのログを参照)は、新しいデータベース内の対応するテーブルで、すべての列が順次に作成されます。この違いがそのテーブルについてのオフセット不一致エラーに記載されて返されます。
処置:元のデータベースのテーブル定義を修正するか、エクスポートで生成された schema.sql ファイルを編集して、テーブルから重複する列を削除します。
データ型の不一致
問題:レガシー データベースでは、符号なしの INTEGER データ型はサポートされていません。符号なしの 1 バイトの INTEGER として定義されていた一部のテーブル列が、データ型 1 を使い、列フラグに 1 ビットを設定して作成されています。符号なしの INTEGER のサポートが追加されている場合、このような列を適切に定義するにはデータ型 14 を使用します。このデータ型の違いは検証で検出される可能性があります。
処置:特に何らかの対処を行う必要はありません。データ型 14 の新しい列定義は、古い定義とまったく同様に機能します。
属性の欠落
問題:元のデータベースに、大文字と小文字を区別せず、かつオルタネート コレーティング シーケンスのある列を定義している場合、そのような列は新しいデータベースでは大文字と小文字の区別なしのフラグのみが設定されて再作成されます。これら両方の属性を 1 つの列に設定することはできません。このような列に COLLATE 属性が欠落していることが、検証によって検出されます。
処置:元のデータベースのテーブル プロパティをチェックして、列定義に CASE と COLLATE が両方とも設定されていることを確認します。両方とも設定されていれば、特に何らかの対処を行う必要はありません。大文字と小文字の区別がない新しい列定義は、元のデータベースの列定義とまったく同様に機能します。
インデックスの欠落
問題:インデックスの作成が失敗する原因は複数あります。データ ファイルの場所に相対パスでなく絶対パスが使用されていて、[CREATE/ALTER ステートメントに IN DICTIONARY を含める]オプションを選択した場合には、スキーマをインポートすると、インデックスの作成に失敗する可能性があります。また、バリアントのレコード定義がある場合も、同じデータ ファイルの複数のテーブル定義に共通するインデックスが一致しなくなる原因になる可能性があります。
処置:インポートのログを参照し、CREATE INDEX ステートメントに関連したエラーを特定します。ソース データベースまたは schema.sql ファイルに必要な修正を行って、データベースを再度インポートします。
データの作成、インポート、およびエクスポート
ZenCC を使用して作成したテーブルは、最初は空です。ZenCC を介して、またはインポートすることによって、これらにデータを追加することができます。ZenCC にはデータをエクスポートおよびインポートするウィザードがあります。
メモ: SQL ステートメントによって取得したデータをエクスポートする方法については、
deu を参照してください。
ZenCC を使用してデータを作成する
バルク データ ユーティリティを使用してデータをインポートする
データ インポート ウィザードを使ったデータのインポート
データのインポート ウィザードでは、テキスト ファイルの区切り文字付きデータを読み取って、そのデータをテーブルへ追加します。このウィザードでは以下の項目について選択を行うことができます。
• インポートするデータが含まれるテキスト ファイル
• フィールド区切り文字
• エクスポートされたデータの先頭行に列名が含まれているかどうか。列名を先頭行としてエクスポートされたデータの場合は、同じ方法でインポートする必要があります。
制限事項
フィールド区切り文字には、カンマ、コロンまたはタブのいずれかを使用する必要があります。レコードを区切る場合は、キャリッジ リターンとライン フィードを併用する必要があります。
データベース テーブルにデータをインポートするには
1. 特定のデータベースの場合、テーブル ノードの下位にあるテーブル名を右クリックします。
これは、これにデータをインポートするテーブルです。システム テーブルに関心がある場合は、システム オブジェクトの下位にあるテーブルを展開します。
2. [データのインポート]を選択します。
3. 上で述べたインポート特性を指定し、[終了]をクリックします。
データ エクスポート ウィザードを使ったデータのエクスポート
データのエクスポート ウィザードでは、テーブルのデータをテキスト ファイルへエクスポートします。キャリッジ リターンとライン フィードを併用してレコードを区切ります。
このウィザードでは以下の項目を指定します。
• データのエクスポート先となるファイルの名前。ディレクトリ パスは既に存在している必要があります。本リリースでは、デフォルトの場所は、現在ログインしているユーザーのホーム ディレクトリと、選択したファイル名および拡張子で構成される、C:\Users\ログイン\ファイル名.拡張子です。
• エクスポートの基準となる SQL ステートメント。たとえば、SELECT * FROM t1 はテーブル t1 の全レコードをエクスポートします。
• フィールド区切り文字(各レコード内でデータ項目を区切るのに使用する文字)。
• エクスポートされるデータのエンコード。たとえば、ISO-8859-1 を選択するとデータはそのコード ページを使用してエクスポートされます。エンコードの選択は、このユーティリティが実行されているマシンから取得されます。
• 列名をエクスポートされるデータの先頭行として出力するかどうか。
データベース テーブルからデータをエクスポートするには
1. 特定のデータベースの場合、テーブル ノードの下位にあるテーブル名を右クリックします。
システム テーブルに関心がある場合は、システム オブジェクトの下位にあるテーブルを展開します。
2. [データのエクスポート]をクリックします。
3. 上で述べたエクスポート特性を指定し、[終了]をクリックします。
ストアド プロシージャ、トリガー、ユーザー定義関数、およびビュー
ZenCC では、ストアド プロシージャ、トリガー、ユーザー定義関数、およびビューを作成する CREATE スクリプトを管理できます。Zen エクスプローラーでは、これらの項目は各データベースのフォルダー内に表示されます。
これらの機能を使用するかどうかは任意ですが、上級のデータベース ユーザーにとっては興味深いかもしれません。
グループ、ユーザー、およびセキュリティ
セキュリティは、ユーザーがデータベースにアクセスするためにユーザー名とパスワードを指定することを要求するデータベース プロパティです。デフォルトで、データベース セキュリティは無効になっています。
データベース セキュリティは ZenCC を使用するか SQL ステートメントを実行して無効にすることができます。有効にしたら、グループおよびユーザーを作成して権限を与えることができます。権限は、「データベース」、「テーブル」、「列」の 3 つのレベルでアクセス権を指定できます。
セキュリティの設定を有効または無効にするときは、その時点で、Master ユーザーが接続を 1 つだけ開き、かつ接続している唯一のユーザーでなければなりません。セキュリティを最初に有効に設定した直後には、Master ユーザーのみがデータベースにアクセスできます。Master ユーザー パスワードでは、Zen のすべてのパスワードと同様に大文字と小文字が区別されます。
注意! セキュリティを有効にしたら、パスワードを有効な長さで指定してください。パスワード フィールドを空白のままにしないでください。データベースが重大なセキュリティの危険にさらされます。
セキュリティ モードの詳細については、『
Advanced Operations Guide』の
Zen セキュリティを参照してください。
セキュリティの作業
このトピックでは、Zen セキュリティのさまざまな管理作業の手順を説明します。次の表では、管理作業をカテゴリ別に示しています。
一般的な作業
データベースからログアウトおよびデータベースへログインするには
1. Zen エクスプローラーでデータベース名を右クリックし、次に、ログアウト(名前)をクリックします。
名前は、現在データベースにログインしているユーザーの名前を反映します。データベースでセキュリティが有効にされていない場合、名前は Master です。現在のユーザーが Master としてログインしている場合は、名前も Master です。
そのデータベースで展開されていたノードは折りたたまれます。
2. データベース名を右クリックして[ログイン]を選択します。
3. ユーザー名とパスワードを入力し、[OK]をクリックします。
メモ: Master ユーザーの場合、別のユーザーとしてログインすると、当該ユーザーに割り当てられている権限がもっと制限された状況をテストするのに役立ちます。
Zen エクスプローラーを使用してセキュリティを有効にするには
データベースがリモート マシンにある場合は、管理者のユーザー名とパスワード、またはリモート マシンの Zen_Admin グループのメンバーのユーザー名とパスワードを提供する必要があります。ログインしているローカル マシンにデータベースがある場合(かつ、ローカル マシンでターミナル サービスが実行されていない場合)は、ユーザー名とパスワードは必要ありません。
セキュリティを有効にすると、すべてのユーザーは、データベースの有効なユーザー名とパスワードを使ってログインしない限り、データベースにアクセスできないようになります。セキュリティを有効にするまでユーザー名とパスワードは設定できないため、そのユーザーのユーザー アカウントが設定されるまでの期間、各ユーザーはデータベースにアクセス不能となります。
1. Zen エクスプローラーで、まずエンジン ノードを、次にデータベース ノードを展開します。
2. 目的のデータベースを右クリックし、[プロパティ]をクリックします。
3. [セキュリティ]をクリックします。
4. [データベース セキュリティ]タブで、[有効]オプションを選択します。
5. [Master パスワード]にパスワードを入力し、[パスワードの確認]にもう一度同じパスワードを入力します。
6. [OK]をクリックします。
これで、データベース セキュリティが有効になり、Master ユーザーとしてログインされます。データベース ユーザーのアカウントの作成に関する説明については、
ユーザーとグループの作業を参照してください。
SQL を使用してセキュリティを有効にするには
管理者として、または Zen_Admin オペレーティング システム セキュリティ グループのメンバーとしてコンピューターにログインしている必要があります。
セキュリティを有効にすると、すべてのユーザーは、データベースの有効なユーザー名とパスワードを使ってログインしない限り、データベースにアクセスできないようになります。セキュリティを有効にするまでユーザー名とパスワードは設定できないため、そのユーザーのユーザー アカウントが設定されるまでの期間、各ユーザーはデータベースにアクセス不能となります。
1. 一般的な作業の説明に従って、データベースのセキュリティを有効にします。
2. ZenCC の[
ファイル]メニューで、[
新規作成]>[
SQL ドキュメント]をクリックします(または、ツールバーの
![](../uguide/images/javapcc_create_new_sqldoc_icon.png)
をクリックします)。
[データベースの選択]ダイアログ ボックスが表示されます。
3. リストで、グループまたはユーザーを作成するデータベースをクリックします。
4. [OK]をクリックします。
5. SQL Editor で、SQL ステートメントの SET SECURITY = 'password' を発行します。ここで password は Master ユーザーのパスワードとして使用するテキスト文字列です。
6. [
SQL]>[
テキストに実行]をクリックします(または、ツールバーの
![](../uguide/images/javapcc_exec_in_text_icon.png)
をクリックします)。
Zen エクスプローラーを使用してセキュリティを無効にするには
管理者として、または Zen_Admin オペレーティング システム セキュリティ グループのメンバーとしてコンピューターにログインしている必要があります。
注意! セキュリティを無効にすると、データベース セキュリティが混合モードまたはデータベース モードである場合は、すべてのオペレーティング システム ユーザーが、データベースにアクセスできるようになります。セキュリティを無効にしてもデータベースのユーザー名、パスワード、および権限は保持されていますが、使用されません。セキュリティを再度有効にすると、以前のユーザー名、パスワード、および権限が再び有効になります(Master ユーザーは例外です。Master パスワードは保持されず、再度適用もされません)。
1. Zen エクスプローラーで、まずエンジン ノードを、次にデータベース ノードを展開します。
2. 目的のデータベースを右クリックし、[プロパティ]をクリックします。
3. [セキュリティ]をクリックします。
4. [データベース セキュリティ]タブをクリックします。
5. [無効]をクリックします。
6. [適用]をクリックします。
7. [OK]をクリックします。
これで、データベース セキュリティは無効になりました。
SQL を使用してセキュリティを無効にするには
注意! セキュリティを無効にすると、データベース セキュリティが混合モードまたはデータベース モードである場合は、すべてのオペレーティング システム ユーザーが、データベースにアクセスできるようになります。セキュリティを無効にしてもデータベースのユーザー名、パスワード、および権限は保持されていますが、使用されません。セキュリティを再度有効にすると、以前のユーザー名、パスワード、および権限が再び有効になります(Master ユーザーは例外です。Master パスワードは保持されず、再度適用もされません)。
1. 一般的な作業の説明に従って、データベースのセキュリティを有効にします。
2. ZenCC の[
ファイル]メニューで、[
新規作成]>[
SQL ドキュメント]をクリックします(または、ツールバーの
![](../uguide/images/javapcc_new_sql_doc_icon.png)
をクリックします)。
[データベースの選択]ダイアログが表示されます。
3. リストで、グループまたはユーザーを作成するデータベースをクリックします。
4. [OK]をクリックします。
5. SQL Editor で、SQL ステートメントの SET SECURITY = NULL を発行します。
6. [
SQL]>[
テキストに実行]をクリックします(または、ツールバーの
![](../uguide/images/javapcc_exec_in_text_icon.png)
をクリックします)。
Btrieve セキュリティ ポリシーの作業
データベースのセキュリティ ポリシーを設定または変更するには
注意! データベースのセキュリティ ポリシーを変更することによって、現在のユーザーがデータベースにアクセスできなくなることがあります。たとえば、セキュリティを有効にしたとき、新しいセキュリティ ポリシー下では、当該ユーザーが同等のユーザー アカウントおよび権限を持たないような場合です。
1. 一般的な作業の説明に従って、データベースのセキュリティを有効にします。
2. Zen エクスプローラーで、まずエンジン ノードを、次にデータベース ノードを展開します。
3. 目的のデータベースを右クリックし、[プロパティ]をクリックします。
4. [セキュリティ]をクリックします。
5. [Btrieve セキュリティ]タブをクリックします。
6. [クラシック]、[混合]、または[データベース]の中から希望のポリシーをクリックします。
7. [OK]をクリックします。
これらのセキュリティ ポリシーの詳細については、『
Advanced Operations Guide』の
Zen セキュリティを参照してください。
注意! データベースのセキュリティを有効にしている場合、セキュリティ ポリシーを「クラシック」から「混合」または「データベース」に変更すると、すべてのユーザーに対しデータベース ユーザーのアカウントの作成およびその権限を作成するまで、ユーザーはデータベースにアクセスできなくなります。
定義済みの DefaultDB も含め、既存のデータベースを Zen ファイルと使用するには
1. Zen エクスプローラーで、まずエンジン ノードを、次にデータベース ノードを展開します。
2. 目的のデータベースを右クリックし、[プロパティ]をクリックします。
3. ディレクトリ ノードを選択し、[新規]ボタンをクリックします。
4. Zen ファイルのパスを入力したら、[OK]をクリックします。
ファイルが複数のディレクトリに散在している場合は、ファイルすべてに共通の上位ディレクトリを指定します。必要であればルート レベルを指定することもできますが、そうすると、ルート レベルとその下位ディレクトリにあるすべての Zen ファイルがデータベースに含まれてしまいます。
すべてのディレクトリを入力する必要はありません。データベースに含める Btrieve ファイルすべてに共通する最下位のディレクトリのみ入力します。
5. 一般的な作業の説明に従って、データベースのセキュリティを有効にします。
ユーザーとグループの作業
Zen エクスプローラーを使用して新しいグループを作成するには
グループを別のグループに追加することはできません。
1. 一般的な作業の説明に従って、データベースのセキュリティを有効にします。
2. データベース ノードを展開します。
3. [グループ]を右クリックして、[新規作成]>[グループ]を選択します。
4. グループ名を入力します。
5. [完了]をクリックします。
Zen エクスプローラーを使用して新しいユーザーを作成するには
以下の手順は、ローカルのデータベース セキュリティ モデルを使用する場合にのみ適用されます。Windows ドメイン セキュリティ モデルでは、ネットワーク ドメイン アカウントは Zen データベースへのログインに使用されます。グループ メンバーシップはネットワーク管理者によって割り当てられます。Zen は Windows ネットワーク認証サーバーに照会してユーザーの資格情報を確認し、権限が定義されている Zen グループのメンバーシップを検索して一致させます。
1. 一般的な作業の説明に従って、データベースのセキュリティを有効にします。
2. データベース ノードを展開します。
3. ユーザー ノードを右クリックし、[新規作成]>[ユーザー]をクリックします。
4. ユーザー名を入力します。
5. パスワードを入力します。
パスワードでは大文字小文字が区別されます。データベース オブジェクトの長さと無効な文字の一覧については、『
Advanced Operations Guide』の
識別子の制限を参照してください。
6. 任意で、ユーザーをグループに割り当てます。
[
グループ]の
![](../uguide/images/javapcc.png)
をクリックし、一覧の中から目的のグループをクリックします。
7. [完了]をクリックします。
Zen エクスプローラーを使用してユーザーをグループに割り当てるには
ユーザーは、1 つのグループのみのメンバーになることができます。グループ内のすべてのユーザーは、そのグループに定義された権限と同じ権限を持ちます。ユーザーがグループに参加すると、そのユーザーの個人用のユーザー権限は無視され、所属するグループのアクセス権と PUBLIC アクセス権を組み合わせた権限が適用されます。グループに存在するユーザーに個別に権限を許可したり取り消したりすることはできません。
1. 一般的な作業の説明に従って、データベースのセキュリティを有効にします。
3. ユーザー ノードの下にあるユーザー名を右クリックし、[プロパティ]をクリックします。
4. [全般の設定]をクリックします。
5. [
グループ]の
![](../uguide/images/javapcc_2.png)
をクリックし、一覧の中から目的のグループをクリックします。
6. [OK]をクリックします。
Zen エクスプローラーを使用してユーザーまたはグループを削除するには
グループは、ユーザーが割り当てられていない場合のみ削除することができます。
1. データベース ノードを展開します。
2. グループ ノードまたはユーザー ノードを展開します。
3. 目的のグループまたはユーザー名を右クリックします。
4. [削除]をクリックします。
5. [はい]をクリックします。
SQL を使用してグループおよびユーザーの作業を行うには
1. 一般的な作業の説明に従って、データベースのセキュリティを有効にします。
2. ZenCC の[
ファイル]メニューで、[
新規作成]>[
SQL ドキュメント]をクリックします(または、ツールバーの
![](../uguide/images/javapcc_new_sql_doc_icon.png)
をクリックします)。
[データベースの選択]ダイアログ ボックスが表示されます。
3. リストで、グループまたはユーザーを作成するデータベースをクリックし、[OK]をクリックします。
4. SQL Editor で、グループまたはユーザーのために必要なステートメントを作成します。
SQL ステートメントの詳細については、『SQL Engine Reference』で以下のステートメントを参照してください。
5. ステートメントを実行するには[
SQL]>[
テキストに実行]をクリックします(または、ツールバーの
![](../uguide/images/javapcc_exec_in_text_icon.png)
をクリックします)。
メモ: Windows ドメイン認証を使用して Zen データベースを保護している場合、Active Directory で、データベース ユーザーが含まれるグループを削除すると、そのユーザーはデータベースにログインできなくなります。ユーザーのログイン資格を復元するには、Active Directory で使用していた同じ名前で Zen グループを再作成してください。
権限の割り当て作業
ここで説明するすべての作業に関して、オブジェクトに権限を割り当てるときに、使用する Btrieve ファイルにオーナーネームがある場合は、まず、そのオーナー ネームを GRANT または SET OWNER ステートメントを使用して指定しなければなりません。詳細については、『SQL Engine Reference』を参照してください。
Zen エクスプローラーを使用してグループに権限を割り当てるには
メモ: [データベース]タブの権限は、[テーブル]タブの権限を無効にします。
1. 目的のデータベース ノードを展開します。
2. グループ ノードの下にあるグループ名を右クリックし、[プロパティ]をクリックします。
3. [権限]をクリックします。
4. データベースまたはテーブルの列用の権限、また V2 メタデータ、ストアド プロシージャ、ビュー用の権限を設定できるタブをクリックします。『
SQL Engine Reference』の
ビューおよびストアド プロシージャに対する権限 も参照してください。
5. このタブで、必要な権限を設定します。
チェック マークは、その権限が適用されることを示します。
6. [OK]をクリックします。
Zen エクスプローラーを使用してユーザーに権限を割り当てるには
メモ: ユーザーがグループのメンバーである場合、そのユーザーに特定の権限を割り当てることはできません。そのユーザーには、グループの権限と PUBLIC グループの権限を組み合わせたものが適用されます。[データベース]タブの権限は、[テーブル]タブの権限を無効にします。
1. 目的のデータベース ノードを展開します。
2. ユーザー ノードの下にあるユーザー名を右クリックし、[プロパティ]をクリックします。
3. [権限]をクリックします。
4. データベースまたはテーブルの列用の権限、また V2 メタデータ、ストアド プロシージャ、ビュー用の権限を設定できるタブをクリックします。『
SQL Engine Reference』の
ビューおよびストアド プロシージャに対する権限 も参照してください。
5. このタブで、必要な権限を設定します。
チェック マークは、その権限が適用されることを示します。
6. [OK]をクリックします。
Zen エクスプローラーを使用してすべてのユーザーに権限を割り当てるには
メモ: [データベース]タブの権限は、[テーブル]タブの権限を無効にします。
1. 目的のデータベース ノードを展開します。
2. グループ ノードの下にある PUBLIC を右クリックし、[プロパティ]をクリックします。
3. [権限]をクリックします。
4. データベース、テーブル、およびそのテーブルの列、また V2 メタデータ、ストアド プロシージャやビュー用のさまざまな権限を設定できるタブをクリックします。『
SQL Engine Reference』の
ビューおよびストアド プロシージャに対する権限 も参照してください。
5. そのタブで、目的の権限のオプションをクリックします。
チェック マークは、その権限が適用されることを示します。
6. [OK]をクリックします。
SQL を使用してグループまたはユーザーに権限を割り当てるには
1. ZenCC の[
ファイル]メニューで、[
新規作成]>[
SQL ドキュメント]をクリックします(または、ツールバーの
![](../uguide/images/javapcc_exec_in_text_icon.png)
をクリックします)。
[データベースの選択]ダイアログ ボックスが表示されます。
2. 目的のデータベース ノードを展開し、[OK]をクリックします。
3. SQL Editor で、グループまたはユーザーのために必要なステートメントを作成します。
『SQL Engine Reference』で、以下のトピックを参照してください。
4. [
SQL]>[
テキストに実行]をクリックします(または、ツールバーの
![](../uguide/images/javapcc_exec_in_text_icon.png)
をクリックします)。
データベース エンジンとクライアントの設定
ほとんどのユーザーの一般的なニーズは、インストール中にデフォルトで行われる Zen Enterprise Server、Cloud Server、またはそのクライアントの設定で満たされます。ただし、デバッグ、メモリ使用量、パフォーマンス チューニングなど特定の目的のために、設定を変更しなければならない場合もあります。このような設定は、Zen ではプロパティと呼ばれています。プロパティを管理するには、ZenCC やコマンド ラインを使用します。
エンジンとクライアントのプロパティの参照先については、『Advanced Operations Guide』に記載された以下のトピックをご覧ください。
サーバーとクライアントの設定の詳細については、『Advanced Operations Guide』の以下のトピックを参照してください。
[ファイルを開く]ダイアログと[ファイルを保存]ダイアログ
ZenCC では、ファイルを開く場合やファイルを保存(別名保存も含む)する場合に、デフォルトで独自のダイアログを使用します。ZenCC が扱うファイルは SQL ドキュメント ファイルであるため、2 つのダイアログにはそれぞれ[SQL ドキュメントを開く]および[SQL ドキュメントの保存]というタイトルが付けられています。したがって、[ファイル]>[新規作成]を選択すると、SQL ドキュメントが作成されます。
このダイアログを使用すると、システム エンコードとは異なる文字エンコードのファイルを使用する作業が、ファイルを開く/保存用の標準ダイアログで行うよりも簡単になります。たとえば、ワイド文字データを含む SQL スクリプトを作成し、適切なエンコードを指定しないで保存した場合は、データが失われることもあります。この例の場合、使用中のシステム コード ページがワイド文字をサポートしないことが考えられます。
ここでは、以下の項目について説明します。
ファイルを開く/保存用ダイアログで選択できるエンコード
このダイアログでは、ファイルを開く/保存するときのエンコードを変更することができます。さらに、ファイルを開く([SQL ドキュメントを開く])ダイアログでは、選択したファイル エンコードに基づき、データのプレビューを表示します。次の表では、ファイルを開く/保存用ダイアログで選択できるエンコードについて説明します。
デフォルトのエンコード
ファイルを開く/保存するときにファイルのエンコードを変更できるのに加え、これらの作業時にデフォルトで使用するエンコードを設定することもできます。データのインポート/エクスポート、およびスキーマのエクスポートに対し、このデフォルトのエンコードが共通に使用されます。
データ インポート ウィザードを使ったデータのインポート、
データ エクスポート ウィザードを使ったデータのエクスポート、および
スキーマの管理を参照してください。たとえば、ファイルを開く場合とファイルを保存する場合で、異なるエンコードをデフォルトとして設定することはできません。
ファイルを開く/保存する場合のデフォルト エンコードを設定するには
1. ZenCC で、[ウィンドウ]>[設定]>[Zen]>[ファイル エンコード]を選択します。
2. [デフォルト エンコード]ドロップダウン リストから、エンコードを選択します。
3. [OK]をクリックします。
メモ: このファイル エンコードの初期設定には、ファイルを開く/保存、データのインポート/エクスポート、スキーマのエクスポート、テーブル スキーマのエクスポートの各ダイアログからでもアクセスできます。ダイアログ内の[デフォルトのエンコードを変更する]リンクをクリックしてください。
ファイル名で使用できない文字
ファイルを開く/保存する前に、それぞれのダイアログではファイル名で使用している文字が有効かどうかを確認します。ファイル名に利用できない文字には、/ : * ? \ " < > | があります。
ファイルを Windows と Linux で使用する場合、これらの文字は Zen でサポートされているどのオペレーティング システムでも使用できません。
ファイルを開くダイアログ([SQL ドキュメントを開く])
次の図は、Zen で提供されるサンプル ファイル demodata.sql を選択しようとしているダイアログ ウィンドウです。プレビューには、このファイルの冒頭の数行が表示されます。
![](../uguide/images/javapcc_opensqldoc.png)
[ドキュメント]フィールドには、前回のファイルを開く/保存操作で使用したディレクトリがデフォルトで表示されます。
メモ: Demodata サンプル データベースをデフォルトの状態に復元するために、demodata.sql スクリプトや付属のデータ ファイルを使用する方法については、
Demodata サンプル データベースを参照してください。
ファイルを保存するダイアログ([SQL ドキュメントの保存])
次の図はファイルの保存用ダイアログを表しています。プレビューは適用されません。[ドキュメント]フィールドには、前回のファイルを保存/開く操作で使用した場所がデフォルトで表示されます。
![](../uguide/images/javapcc_savesqldoc.png)
SQL ドキュメントを保存する場合は、完全なパスとファイル名が必要です。[参照]ボタンをクリックすると、オペレーティング システムの標準のファイル参照ダイアログが表示されます。
オペレーティング システムの標準ダイアログを使用する
ファイルを開く/保存に、オペレーティング システムの標準ダイアログを使用することもできます。たとえば、システム コード ページ以外のエンコードを使って作業する必要がない場合には、標準のダイアログを利用することもできます。
ファイルを開く/保存する場合にオペレーティング システムの標準のダイアログを利用するには
1. ZenCC で、[ウィンドウ]>[設定]>[Zen]>[ファイル エンコード]の順に選択します。
2. [[ファイルを開く]および[ファイルを保存]時にエンコードのプロンプトを表示しない]オプションを選択します。
3. [OK]をクリックします。
メモ: このファイル エンコードの初期設定には、ファイルを開く/保存、データのインポート/エクスポート、スキーマのエクスポートの各ダイアログからでもアクセスできます。ダイアログ内の[デフォルトのエンコードを変更する]リンクをクリックしてください。
データのインポート/エクスポート、スキーマのエクスポートでサポートされるワイド文字データ
データのインポート/エクスポート、テーブル スキーマのエクスポートでは、ワイド文字データを含むファイルを扱えます。ファイルを開く/保存する場合と同じく、ファイルのインポート/エクスポート時にエンコードを変更することができます。
ファイルを開く/保存用ダイアログで選択できるエンコードを参照してください。
このダイアログでファイルのパスと名前を入力するフィールドには、前回データをインポート/エクスポートまたはスキーマをエクスポートしたときに使用した場所がデフォルトで表示されます(データのインポート/エクスポート、テーブル スキーマのエクスポートは一貫した設定を利用します)。ファイルをインポート/エクスポートする場合は、絶対パス名が必要です。
[データのインポート]ダイアログ
[データのインポート]では、ファイルのエンコードの変更や、デフォルトのエンコード設定が可能になりました。さらに、[プレビュー]領域では、選択したファイル名、ファイル エンコード、およびその他のオプションに基づくデータのプレビューを表示します。たとえば、次の図は、Zen で提供する class.sdf テーブルをインポートしようとしている画面です。[エンコード]フィールドには "windows-31j" が設定されています。[プレビュー]領域には、設定したエンコードで、区切り文字が "カンマ"、先頭行に列名が含まれていない([先頭行に列名が含まれている]オプションがオフ)場合に、ファイルのデータがどのように見えるかを表示しています。
BOM 付きのファイルをインポートする場合、BOM はインポート時に認識され、取り除かれます。また、このダイアログ内でどのエンコードを選んでも、ファイルは BOM で指定されているエンコードでインポートされます。つまり、BOM が[エンコード](オプション)での選択を無効にするということです。
[参照]ボタンをクリックすれば、オペレーティング システムの標準ダイアログを利用することができます。
[データのエクスポート]ダイアログ
[データのエクスポート]では、ファイルのエンコードの変更や、デフォルトのエンコード設定が可能になりました。[例:]フィールドには、プレビューでなく、選択したオプションによる例が表示されていることに注意してください。
次の図は、Demodata サンプル データベースに含まれる Course テーブルのデータをエクスポートするための設定例です。[先頭行に列名を書き込む]オプションが選択され、[区切り文字]は "コロン" が設定されています。
エクスポート操作では、CHAR データ型と NCHAR データ型の値の末尾の空白が削除されることに注意してください。[参照]ボタンをクリックすることで、オペレーティング システムの標準のファイル参照ダイアログが表示できます。
[テーブル スキーマのエクスポート]ダイアログ
テーブル スキーマのエクスポート機能によって、ファイルのエンコードやデフォルトのエンコードを変更することができます。
次の図は、Demodata サンプル データベースに含まれる Faculty テーブルのスキーマをエクスポートするための設定例です。["IN DICTIONARY" 句を CREATE ステートメントに追加する]オプションを選択していることに注目してください。
データベース スキーマのエクスポート ウィザードには類似の設定がありますが、すべてのテーブルがエクスポートされます。詳細については、
スキーマの管理を参照してください。