8.1 Oracle Database表でのPGビューの作成
PGQLのCREATE PROPERTY GRAPH文を使用すると、グラフに関するメタデータを含むビューのようなオブジェクトを作成できます。このグラフはPGQLを使用して問い合せることができます。
プロパティ・グラフ・ビュー(PGビュー)は、リレーショナル・データベース表に存在するデータに対して直接作成されます。グラフはデータベース表に格納されているため、スキーマがあります。これは、Oracle Databaseのプロパティ・グラフ・スキーマ・オブジェクトで説明されているように、データがソース表からプロパティ・グラフ・スキーマ表にコピーされる柔軟なスキーマで作成されるグラフとは異なります。
PGビューの主な利点の1つは、データベース表に対するすべての更新がすぐにグラフに反映されることです。
PGビューのメタデータ表
CREATE PROPERTY GRAPH文が実行されるたびに、ユーザー独自のスキーマにメタデータ表が作成されます。
                  
次の表では、CREATE PROPERTY GRAPH文の実行時にグラフごとに作成されるメタデータ表のセットについて説明します。
                  
表8-1で下線が付いているすべての列は、表の主キーの一部です。また、すべての列にNOT NULL制約があります。
                  
表8-1 PGビューのメタデータ表
| 表名 | 説明 | 
|---|---|
graphName_ELEM_TABLE$ | 
                              グラフ要素(頂点/エッジ)表のメタデータ(要素表ごとに1行):
                                 
  | 
                           
graphName_LABEL$
                               | 
                              要素表のラベルのメタデータ(ラベルごとに1行、要素表ごとに1ラベル):
                                 
  | 
                           
graphName_PROPERTY$ | 
                              
                                  ラベルを介して公開される列を記述するメタデータ(プロパティごとに1行) 
  | 
                           
graphName_KEY$ | 
                              
                                  頂点/エッジ・キーを記述するメタデータ(キーの列ごとに1行) 
  | 
                           
graphName_SRC_DST_KEY$ | 
                              
                                  エッジのソース/宛先キーを記述するメタデータ(キーの列ごとに1行): 
 ノート: 現在、サポートされているのはSOURCE KEY ( ... ) REFERENCES T1のみです。そのため、エッジのソース/宛先キーのみが格納されます。
                                  | 
                           
例8-1 PGビューの作成
次のCREATE PROPERTY GRAPH文について考えます。
                  
CREATE PROPERTY GRAPH student_network
  VERTEX TABLES(
    person
      KEY ( id )
      LABEL student
      PROPERTIES( name ),
    university
      KEY ( id )
      PROPERTIES( name )
  )
  EDGE TABLES(
    knows
      key (person1, person2)
      SOURCE KEY ( person1 ) REFERENCES person (id)
      DESTINATION KEY ( person2 ) REFERENCES person (id)
      NO PROPERTIES,
    person AS studentOf
      key (id, university)
      SOURCE KEY ( id ) REFERENCES person (id)
      DESTINATION KEY ( university ) REFERENCES university (id)
      NO PROPERTIES
  )
  OPTIONS (PG_VIEW)OPTIONS句を使用すると、プロパティ・グラフ・スキーマ・グラフを作成するかわりに、PGビュー・グラフを作成できます。単純にCREATE PROPERTY GRAPH文をexecuteメソッドに渡す必要があります。
                     ノート:
- RDBMS Java APIまたはSQLclを使用してPGビューを作成できます。
 - グラフ・ビジュアライゼーション・ツールまたはSQLclを使用して、PGビューを問い合せることができます。
 
stmt.execute("CREATE PROPERTY GRAPH student_network ...");これにより、次のメタデータ表が作成されます。
SQL> SELECT * FROM STUDENT_NETWORK_ELEM_TABLE$;
 
ET_NAME         ET_TYPE    SCHEMA_NAME     TABLE_NAME
--------------- ---------- --------------- ---------------
PERSON          VERTEX     SCOTT           PERSON
UNIVERSITY      VERTEX     SCOTT           UNIVERSITY
KNOWS           EDGE       SCOTT           KNOWS
STUDENTOF       EDGE       SCOTT           PERSON
 
SQL> SELECT * FROM STUDENT_NETWORK_LABEL$;
 
LABEL_NAME      ET_NAME         ET_TYPE
--------------- --------------- ----------
STUDENT         PERSON          VERTEX
UNIVERSITY      UNIVERSITY      VERTEX
KNOWS           KNOWS           EDGE
STUDENTOF       STUDENTOF       EDGE
 
SQL> SELECT * FROM STUDENT_NETWORK_PROPERTY$;
 
PROPERTY_NAME   ET_NAME         ET_TYPE    LABEL_NAME      COLUMN_NAME
--------------- --------------- ---------- --------------- ---------------
NAME            PERSON          VERTEX     STUDENT         NAME
NAME            UNIVERSITY      VERTEX     UNIVERSITY      NAME
 
SQL> SELECT * FROM STUDENT_NETWORK_KEY$;
 
COLUMN_NAME     COLUMN_NUMBER KEY_TY ET_NAME
--------------- ------------- ------ ---------------
ID                          1 VERTEX PERSON
ID                          1 VERTEX UNIVERSITY
PERSON1                     1 EDGE   KNOWS
PERSON2                     2 EDGE   KNOWS
ID                          1 EDGE   STUDENTOF
UNIVERSITY                  2 EDGE   STUDENTOF
 
SQL> SELECT * FROM STUDENT_NETWORK_SRC_DST_KEY$;
 
ET_NAME     VT_NAME        KEY_TYPE         ET_COLUMN_NAME  ET_COLUMN_NUMBER
--------------- ---------- ---------------- --------------- ----------------
KNOWS       PERSON         EDGE_SOURCE      PERSON1                        1
KNOWS       PERSON         EDGE_DESTINATION PERSON2                        1
STUDENTOF   PERSON         EDGE_SOURCE      ID                             1
STUDENTOF   UNIVERSITY     EDGE_DESTINATION UNIVERSITY                     1
student_network PGビュー・グラフでPGQL問合せを実行できるようになりました。
                  
PGビューを作成、問合せおよび削除する方法の詳細は、プロパティ・グラフ・ビューに対するPGQL問合せの実行を参照してください。
- PGビューのメタデータの取得
PGQL問合せで組込みPROPERTY_GRAPH_METADATAグラフを使用して、データベースに作成されたプロパティ・グラフ・ビュー(PGビュー)のメタデータを取得できます。 - PGビューの操作権限
プロパティ・グラフ・ビュー(PGビュー)の操作に必要な権限について学習します。 
親トピック: プロパティ・グラフ・ビューについて