RESTful アーキテクチャ

ここでは、以下の手順について説明します。

  1. ビューどうしのアソシエーションを定義する。

  2. SELECT_NAVIGATIONAL を使用して、ビューどうしに定義したアソシエーション間を移動できるようにするクエリを実行する。

これら 2 つのエレメントは、ビューのプライマリキーのサポートとともに、Denodo Platform の REST アーキテクチャを構成します。

このアーキテクチャの主要な機能は、RESTful Web サービスです。このサービスについては、管理ガイドの「 RESTful Web サービス 」を参照してください。このサービスを使用すると、クライアントから HTTP インターフェイスを使用して Virtual DataPort の内容を参照できます。

アソシエーション

アソシエーションは、2 つのビューどうしの関係のことであり、1 つのビューを別のビューにリンクする結合ビューのように機能します。この概念の詳細については、管理ガイドの「 アソシエーション 」を参照してください。

ここでは、アソシエーションを作成、変更、削除する VQL ステートメントについて説明します。

CREATE ASSOCIATION ステートメントの構文
CREATE [ OR REPLACE ] ASSOCIATION <identifier with database> [ REFERENTIAL CONSTRAINT ]
    [ FOLDER = <folder:literal> ]
    [ DESCRIPTION = <association_description:literal> ]
    ENDPOINT <role_name:identifier> <view_name:identifier>
             [ <mult:multiplicity> ]
    [ PRECONDITION <condition> ]
    [ DESCRIPTION = <endpoint_description:literal> ]

    ENDPOINT <role_name:identifier> <view_name:identifier>
             [<mult:multiplicity>]
    [ PRECONDITION <condition> ]
    [ DESCRIPTION = <endpoint_description:literal> ]
    [ ADD MAPPING <val1:mapping_value> = <val1:mapping_value> ]+

<mapping_value> ::=
      <field name>
    | <mapping_value> <funcsymbol> <value>
    | <value> <funcsymbol> <mapping_value>
    | CASE <mapping_value>
          WHEN <compare_value:value> THEN <result:value>
          [ WHEN <compare_value:value> THEN <result:value> ]*
          [ ELSE <result:value> ] END
    | CASE WHEN <condition> THEN <result:value>
           [ WHEN <condition> THEN <result:value> ]*
           [ ELSE <result:value> ] END
<multiplicity> ::=
      ( 0 , 1 )
    | ( 1 )
    | ( * )
    | ( + )

<identifier with database> ::= (「 VQL ステートメントを指定するための基本プリミティブ 」を参照)

<value> ::= (「 関数の記述ルール 」を参照)

<condition> ::= (「 関数の記述ルール 」を参照)

REFERENTIAL CONSTRAINT 句は、アソシエーションを参照制約として指定します (管理ガイドの「 アソシエーションの参照整合性 」を参照)。

1 番目の DESCRIPTION 句はアソシエーションの説明です。2 番目と 3 番目の同じ句は、アソシエーションの 2 つのエンドポイントの説明です。

PRECONDITIONS 句は、各エンドポイントの ロールの前提条件 を記述します (管理ガイドの「 ロールの前提条件 」を参照)。

ALTER ASSOCIATION ステートメントの構文
ALTER ASSOCIATION <name:identifier>
    [ RENAME <new_name:identifier> ]
    [ DESCRIPTION = <desc:literal> ]

アソシエーションの名前やその説明を変更するには ALTER ASSOCIATION ステートメントを使用します。

アソシエーションを削除するには DROP ASSOCATION ステートメントを実行します (「 DROP ステートメントの構文 」を参照)。