インターフェイスビューの定義¶
インターフェイスビューは、フィールドの定義と他のビューへの参照のみからなる特殊なタイプの派生ビューです。インターフェイスを使用してトップダウン設計を行えます。この設計方式では、最初にインターフェイスのフィールドを定義し、その後インターフェイスの「実装ビュー」を設定します。
サーバーがインターフェイスを含むクエリを実行するとき、クエリの処理は実装ビューに委任されます。
インターフェイスビューは CREATE INTERFACE VIEW
ステートメントにより作成されます。
CREATE [ OR REPLACE ] INTERFACE VIEW <name:identifier>
( <field> [, <field> ]* )
[ SET IMPLEMENTATION <view identifier>
[ ( <field name:identifier> = <expression:value>
[, <field name:identifier> = <expression:value> ]* )
]
]
[ FOLDER = <literal> ]
[ DESCRIPTION = <literal> ]
[ <tag list> ]
<view identifier> ::= (「 VQL ステートメントの基本エレメント 」を参照)
<field> ::= (「 CREATE TABLE ステートメントの構文 」を参照)
<tag list> ::= (「 CREATE TABLE ステートメントの構文 」を参照)
以下に例を示します。
CREATE INTERFACE VIEW i_order (
id:long,
customer_id:long,
status:text,
order_date:timestamp,
comment:text
)
SET IMPLEMENTATION order
FOLDER = '/Interface views';
このステートメントは、フィールド id
、 customer_id
、 status
、および 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 <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> ]* )
]
]
<view identifier> ::= (「 VQL ステートメントの基本エレメント 」を参照)
以下に例を示します。
ALTER INTERFACE VIEW i_order (
id:long
, customer_id:long
, status:text
)
SET IMPLEMENTATION another_view;
このステートメントは、インターフェイスの定義から order_date
フィールドを削除して、インターフェイスの実装ビューを変更します。
インターフェイスビューを削除する場合は、 DROP INTERFACE VIEW
ステートメントを使用します (「 DROP ステートメントの構文 」を参照)。
インターフェイスビューの他のプロパティを変更する場合は、派生ビューと同様に、 ALTER VIEW
ステートメントを使用します。以下に例を示します。
インターフェイスビューの名前を変更する場合:
ALTER VIEW i_order RENAME i_order_full;
インターフェイスビューのフィールドの説明を追加、変更する場合:
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'));
インターフェイスビューをフォルダに移動する場合:
ALTER FOLDER '/customer360' MOVE VIEW i_order;