PSQL Programmer's Guide (v11)

ビュー (リレーショナル インターフェイス)

ビューは、データベース内のデータを調べるためのメカニズムです。複数のテーブルのデータを結合したり、1 つのテーブルの特定の列だけを含めたりすることができます。ビューはテーブルに似ていますが、データベースのテーブルの列に基づいて選択した一連の列または計算結果から構成されています。したがって、ビューには、複数のテーブル内の列からのデータ、または実際にテーブル内にまったくないデータ、たとえば、SELECT COUNT(*)FROM Person などが含まれている場合があります。

ビューの機能

以下に、ビューのいくつかの機能を示します。

テンポラリ ビューとストアド ビュー

SELECT ステートメントを使用して、テンポラリ ビューまたはストアド ビューを作成できます。テンポラリ ビューは 1 回だけ使用して、その後で解放するものです。Pervasive PSQL はストアド ビューの定義をデータ辞書(X$Proc)に保管するので、後でそのビューを呼び出すことができます。CREATE VIEW ステートメントを使用すると、ストアド ビューの作成と名前付けが行えます。

各ビューはデータベース内で一意であり、また 20 文字を超えることはできません。ビューに名前を付ける規則の詳細については、第 14データの挿入と削除を参照してください。

Pervasive PSQL は、データベース要素名を定義する場合に大文字と小文字を区別します。PhoNE という名前のストアド ビューを作成すると、Pervasive PSQL は辞書にビュー名を PhoNE として格納します。ビュー名の定義後、Pervasive PSQL は大文字小文字を区別しません。ストアド ビュー PhoNE を定義した後、そのビューを phone で参照することができます。

ストアド ビューを使用すると、以下の機能が実現します。

ビューの読み取り専用テーブル

読み取り専用のテーブルを含んでいるビューの行を挿入、更新、または削除することはできません。(ここでいう「更新」は、挿入、更新、および削除を指します。テーブルが読み取り専用ならば、テーブルを更新できません。)テーブルの中には、読み取り専用と指定されているビュー内にあるかどうかにかかわらず、読み取り専用のものがあります。そのようなテーブルは本質的に読み取り専用であり、更新できません。テーブルが以下の基準のうちのいずれかを満たした場合、そのテーブルは読み取り専用です。

マージ可能なビュー

ビューは、ベース テーブルと列だけを使用して SELECT ステートメントを書き換えることができる場合にマージ可能です。

たとえば、何人の学生が 1 クラスにいるかを知りたい場合、それを計算するビューを定義できます。以下のようにビュー NumberPerClass を定義します。

CREATE VIEW NumberPerClass (Class_Name, Number_of_Students)
   AS SELECT Name, COUNT(Last_Name)
   FROM Person, Class, Enrolls
   WHERE Person.ID = Enrolls.Student_ID
      AND Class.ID = Enrolls.Class_ID 
   GROUP BY Name# 

以下のようにビュー NumberPerClass を定義します。

SELECT *
   FROM NumberPerClass# 

この場合、ビュー NumberPerClass がマージ可能なのは、以下のように SELECT ステートメントを書き換えることができるからです。

SELECT Name, COUNT(Last_Name)
   FROM Person, Class, Enrolls
   WHERE Person.ID = Enrolls.Student_ID
      AND Class.ID = Enrolls.Class_ID 
   GROUP BY NAME# 

以下のように SELECT ステートメントを書きたい場合、ビュー NumberPerClass はマージ不能です。

SELECT COUNT(Name)
   FROM NumberPerClass
   WHERE Number_of_Students > 50# 

このステートメントは、ビュー NumberPerClass に対して無効です。ベース テーブルとベース 列だけでは、このビューを書き換えることができません。

ビューに以下の特性が含まれていない場合、ビューはマージ可能です。


データ取得の概要 (リレーショナル インターフェイス)

選択リスト (リレーショナル インターフェイス)