User's Guide (v11)

メタデータ

メタデータは、データに関するデータです。Pervasive PSQL データベースのメタデータは、スキーマと呼びます。リレーショナル データベースでは、スキーマはテーブル、各テーブルのフィールド、およびフィールドとテーブルの関係を定義します。スキーマは Pervasive PSQL によってデータ辞書ファイル(DDF)に格納されます。

1 つまたは複数のテーブルのスキーマをテキスト ファイルにエクスポートすることができます。エクスポートされたスキーマには CREATE TABLE SQL ステートメント(および、適用可能な場合は CREATE INDEX ステートメント)が含まれ、テーブルとそのインデックスを作成します。エクスポートされたファイルにはデフォルトで拡張子 "sql" が付き、SQL スクリプトと呼びます。

SQL スクリプト ファイルは SQL Editor で実行できます。「SQL スクリプトを開くには」を参照してください。

テーブルが開けない場合、SQL スクリプトには "テーブルを開けません" というテキストが含まれます。たとえば、テーブルにオーナー ネームが設定されている場合や、PCC の実行中にテーブルが PCC の外部で削除された場合にエラーが発生します。

テーブル スキーマのエクスポート時には、以下の 3 つのオプションがあります。

IN DICTIONARY 句

IN DICTIONARY 句はデータベース エンジンに DDF のみを変更するよう指示し、基になる物理データは変更しません。通常、Pervasive PSQL は DDF とデータ ファイルを同期させますが、この句を使用するとテーブル辞書定義を既存のデータ ファイルと一致させることができます。

この句は、既存のデータ ファイルと合致する定義を辞書内に作成したい場合に役立ちます。その他の一般的な使用法は、既存のデータベースの複製を作成したい場合です。1 つのデータベースからすべてのステートメントをエクスポートし、新規データベースを作成して、エクスポートしたスクリプトを新しいデータベースに実行します。

SQL スクリプトに IN DICTIONARY 句が含まれている場合は、SQL スクリプトを SQL Editor で実行する際にデータ ファイルが既に存在している必要があります。

IN DICTIONARY 句は、常に USING 句と対になっています。

エクスポートされたステートメントは、以下のようになります。

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");

SQL Engine Reference』の 「IN DICTIONARY」 も参照してください。

USING 句

USING キーワードを使用すると、テーブルを特定のデータ ファイルに関連付けることができます。

エクスポートされたステートメントは、以下のようになります。

CREATE TABLE "Course" 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");

SQL Engine Reference』の 「USING」 を参照してください。

プレーン ステートメント

「プレーン」ステートメントは、IN DICTIONARY 句と USING 句を除外します。プレーンな CREATE TABLE 構文は、単にテーブル名を変更するか同じテーブルを別のデータベースに作成することによって複製を作成するのに便利です。

エクスポートされたステートメントは、以下のようになります。

CREATE TABLE "Course"(

"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" ON "Course"("Name");

CREATE INDEX "DeptName" ON "Course"("Dept_Name");

SQL Engine Reference』の 「CREATE TABLE」 を参照してください。

スキーマのエクスポート

特定のテーブルまたは複数のテーブルのスキーマをエクスポートするか、データベース レベルですべてのテーブルのスキーマを一度にエクスポートすることができます。

テーブル スキーマを特定のテーブルにエクスポートするには

  1. Pervasive PSQL エクスプローラー で目的のデータベースのテーブル ノードを展開します。
    システム テーブルに関心がある場合は、システム オブジェクトの下位にあるテーブルを展開します。
  2. スキーマをエクスポートしたいテーブル名をクリックします。
    さらにほかのテーブルにスキーマをエクスポートしたい場合は、Shift または Ctrl キーを押したまま目的のテーブル名をクリックします。(言い換えると、目的のテーブルについて複数選択を行います。)
  3. 選択したテーブル名を右クリックし、次に[テーブル スキーマのエクスポート]をクリックします。
  4. エクスポート先のファイルの名前(必要に応じ場所)を入力します。
    デフォルトのファイル拡張子は "sql" です。
  5. オプションとして、IN DICTIONARY または USING を選択します。
  6. OK]をクリックします。

すべてのテーブル スキーマを一度にエクスポートするには

  1. Pervasive PSQL エクスプローラー でデータベース ノードを展開します。
  2. テーブル スキーマをすべてエクスポートしたいデータベース名を右クリックします。
  3. テーブル スキーマのエクスポート]をクリックします。
  4. エクスポート先のファイルの名前(必要に応じ場所)を入力します。
    デフォルトのファイル拡張子は "sql" です。
  5. オプションとして、IN DICTIONARY または USING を選択します。
  6. OK]をクリックします。

データ

トリガー、ストアド プロシージャ、ユーザー定義関数、およびビュー