USER MANUALS

派生ビューの定義

管理者はシステムの基本ビューを使用して新しいリレーションを定義できます。この新しいリレーションを派生ビューと呼びます。

派生ビューは CREATE VIEW ステートメントにより作成します。

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 を定義できます。

Example of how a view is defined in accordance with others

ビューを他のビューに従って定義する例

オプションの ORDER BY 句は、ビューをクエリするときに、指定したフィールドを基準に結果を並べるよう指示します。 ASC は昇順で、 DESC は降順でソートします。 ASCDESC を省いた場合、Virtual DataPort は昇順でソートします。

ビューを作成するときは、SQL の標準句である WITH CHECK OPTION も指定可能です。この句は、 INSERTUPDATEDELETE ステートメントを使用したビューのコンテンツの更新に関連しています。この修飾子の機能については、「 WITH CHECK OPTION の使用 」で詳しく説明しています。

OR REPLACE 修飾子を使用すると、指定した名前のビューが存在する場合に、それを新しいビューで置き換えるよう指示することができます。ビューの定義の変更 (たとえば、以前は存在しなかった、新しいフィールドやクエリ制限の追加) により一部の派生ビューのクエリ機能が変更された場合、Virtual DataPort は、上位レベルの派生ビューのスキーマとクエリ機能を可能な限り更新します。

PRIMARY KEY 句では、ビューのプライマリキーを定義します。プライマリキーの詳細については、管理ガイドの「 ビューのプライマリキー 」のセクションを参照してください。

USING PARAMETERS 句では、派生ビューのパラメータを定義します。詳細については、管理ガイドの「 派生ビューのパラメータ 」のセクションを参照してください。

Add feedback