インターフェイスビューの定義

インターフェイスビューは、フィールドの定義と他のビューへの参照のみからなる特殊なタイプの派生ビューです。インターフェイスを使用してトップダウン設計を行えます。この設計方式では、最初にインターフェイスのフィールドを定義し、その後インターフェイスの「実装ビュー」を設定します。

サーバーがインターフェイスを含むクエリを実行するとき、クエリの処理は実装ビューに委任されます。

インターフェイスビューは CREATE INTERFACE VIEW ステートメントにより作成されます。

CREATE INTERFACE VIEW ステートメントの構文
CREATE [ OR REPLACE ] INTERFACE VIEW <name:identifier>
    ( <field name:identifier> : <field type>
      [ ,<field name:identifier> : <field type> ]* )
    [ SET IMPLEMENTATION <view identifier>
        [ ( <field name:identifier> = <expression:value>
            [, <field name:identifier> = <expression:value> ]* )
        ]
    ]
    [ FOLDER = <literal> ]
    [ DESCRIPTION = <literal> ]

以下に例を示します。

CREATE INTERFACE VIEW i_order (
    id:long,
    customer_id:long,
    status:text,
    order_date:timestamp,
    comment:text
)
SET IMPLEMENTATION order
FOLDER = '/Interface views';

このステートメントは、フィールド idcustomer_idstatus 、および order_date を持つインターフェイスビューを作成し、 order を実装ビューとして設定します (SET IMPLEMENTATION 句)。この構文では、インターフェイスビュー (i_order) とその実装 (order) は、同じフィールド数で同じフィールド名である必要があります。

実装ビューがインターフェイスの定義と一致しないインターフェイスビューを作成する場合は、インターフェイスの各フィールドに式を定義する必要があります。以下に例を示します。

CREATE OR REPLACE INTERFACE VIEW i_order (
    id:long,
    customer_id:long,
    status:text,
    order_date:timestamp
    )
    SET IMPLEMENTATION order (
        id = id,
        customer_id = customer_id,
        status = coalesce(status, '<NEW ORDER>'),
        order_date = order_date
)
FOLDER = '/Interface views';

この例では、インターフェイスの status フィールドは、単なるフィールドではなく、式にマッピングされています。また、 order ビューは、インターフェイスの定義では考慮されていない多くのフィールドを持っています。


インターフェイスビューの定義を修正したり、その実装を変更したりする場合は、 ALTER INTERFACE VIEW ステートメントを使用します。

ALTER INTERFACE VIEW ステートメントの構文
ALTER INTERFACE VIEW <name:identifier>
    [ ( <field name:identifier> : <field type>
        [, <field name:identifier> : <field type> ]* ) ]
    [ SET IMPLEMENTATION <view identifier>
        [ ( <field name:identifier> = <expression:value>
            [, <field name:identifier> = <expression:value> ]* )
        ]
    ]

以下に例を示します。

ALTER INTERFACE VIEW i_order (
      id:long
    , customer_id:long
    , status:text
)
SET IMPLEMENTATION another_view;

このステートメントは、インターフェイスの定義から order_date フィールドを削除して、インターフェイスの実装ビューを変更します。

インターフェイスビューを削除する場合は、 DROP INTERFACE VIEW ステートメントを使用します (「 DROP ステートメントの構文 」を参照)。

インターフェイスビューの他のプロパティを変更する場合は、派生ビューと同様に、 ALTER VIEW ステートメントを使用します。以下に例を示します。

  • インターフェイスビューの名前を変更する場合:

インターフェイスビューの名前を「i_order」から「i_order_full」に変更
ALTER VIEW i_order RENAME i_order_full;
  • インターフェイスビューのフィールドの説明を追加、変更する場合:

インターフェイスビューの 2 つのフィールドの説明を追加
ALTER VIEW i_order (
    ALTER COLUMN id ADD (DESCRIPTION = 'A unique id of the order')
    ALTER COLUMN STATUS ADD (DESCRIPTION = 'The values of this column are: NEW, ACCEPTED, PACKAGING or SENT'));
  • インターフェイスビューをフォルダーに移動する場合:

インターフェイスビュー「i_order」をフォルダー「customer360」に移動
ALTER FOLDER '/customer360' MOVE VIEW i_order;