派生ビューの定義¶
管理者はシステムの基本ビューを使用して新しいリレーションを定義できます。この新しいリレーションを派生ビューと呼びます。
派生ビューは CREATE VIEW
ステートメントにより作成します。
CREATE [ OR REPLACE ] VIEW <name:identifier>
[ FOLDER = <literal> ]
[ DESCRIPTION = <literal> ]
[ <primary key> ]
[ <tag list> ]
[ ( <field properties> [, <field properties> ]* ) ]
[ CHECK_INDIRECT_ACCESS { ON | OFF} ]
AS <select>
[ USING PARAMETERS ( <parameter> [, <parameter> ]* ) ]
[ ORDER BY <field name> [ ASC | DESC ] [, <field name> [ ASC | DESC ] ]* ]
[ WITH [ CASCADED | LOCAL ] CHECK OPTION ]
[ CONTEXT ( <context information> [, <context information>]* ) ]
<field properties> ::=
<name:identifier> ( <property list> ) [ <tag list> ]
<parameter> ::=
<fieldname:identifier> : <fieldtype:identifier> [<default:literal>]
<primary key> ::= (「 CREATE TABLE ステートメントの構文 」を参照)
<property list> ::= (「 CREATE TABLE ステートメントの構文 」を参照)
<select> ::= (「 SELECT ステートメントの構文 」を参照)
<tag list> ::= (「 CREATE TABLE ステートメントの構文 」を参照)
<context information> ::= (「 SELECT ステートメントの構文 」を参照)
ご覧のように、ビューの作成時に、名前と、その名前を定義するクエリを指定します。このクエリは SELECT
ステートメントの構文を使用して指定します。この構文の詳細については、「 クエリ: SELECT ステートメント 」のセクションで説明しています。
そのため、管理者は、演算子を使用して他の既存ビューを組み合わせることで、新しい派生ビューを作成できます。たとえば、和結合 (union)、結合 (join)、デカルト積 (cartesian product)、選択 (selection)、投影 (projection)、group-by (グループ化)、積結合 (intersection)、差結合 (minus) 、フラット化演算 (flatten operation) といった演算子です。
さらに、既存の派生ビューを使用して、新しい派生ビューの、必要なレベルのビューツリーを作成することもできます。
たとえば、ビュー A、B、R を (ソースに直接アクセスしてデータを取得する) 基本リレーションと見なすと、以下の図 below に示すように、管理者は、A と B の和結合の結果と R の 結合 として、ビュー G を定義できます。
オプションの ORDER BY
句は、ビューをクエリするときに、指定したフィールドを基準に結果を並べるよう指示します。 ASC
は昇順で、 DESC
は降順でソートします。 ASC
や DESC
を省いた場合、Virtual DataPort は昇順でソートします。
ビューを作成するときは、SQL の標準句である WITH CHECK OPTION
も指定可能です。この句は、 INSERT
、 UPDATE
、 DELETE
ステートメントを使用したビューのコンテンツの更新に関連しています。この修飾子の機能については、「 WITH CHECK OPTION の使用 」で詳しく説明しています。
OR REPLACE
修飾子を使用すると、指定した名前のビューが存在する場合に、それを新しいビューで置き換えるよう指示することができます。ビューの定義の変更 (たとえば、以前は存在しなかった、新しいフィールドやクエリ制限の追加) により一部の派生ビューのクエリ機能が変更された場合、Virtual DataPort は、上位レベルの派生ビューのスキーマとクエリ機能を可能な限り更新します。
PRIMARY KEY
句では、ビューのプライマリキーを定義します。プライマリキーの詳細については、管理ガイドの「 ビューのプライマリキー 」のセクションを参照してください。
USING PARAMETERS
句では、派生ビューのパラメータを定義します。詳細については、管理ガイドの「 派生ビューのパラメータ 」のセクションを参照してください。