3 SQLプロパティ・グラフの概要

SQLプロパティ・グラフは、任意のSQLベースのインタフェース(SQL Developer、SQLPLUS、SQLclなど)またはJDBCを使用するJavaプログラムで操作できます。

SQL文を使用すると、次のことを実行できます:

  • スキーマ内の既存のデータベース・オブジェクトから、次のようなSQLプロパティ・グラフを作成します:
  • SQLプロパティ・グラフのシノニムを作成します。
  • SQLプロパティ・グラフを再検証します。
  • SQLプロパティ・グラフでグラフ・パターン一致問合せを実行します。
  • SQLプロパティ・グラフを削除します。

たとえば、次の図では、SQL Developerツールを使用したSQLプロパティ・グラフの作成を示します。

図3-1 SQL Developerを使用したSQLプロパティ・グラフの作成

図3-1の説明が続きます
「図3-1 SQL Developerを使用したSQLプロパティ・グラフの作成」の説明

3.1 SQLプロパティ・グラフの操作のクイック・スタート

このチュートリアルは、SQLプロパティ・グラフの作成および問合せの開始に役立ちます。

このチュートリアルを試すには、次の要件を満たしていることを確認してください:

次のチュートリアルでは、ステップ1、ステップ2およびステップ4の例をSQLclツールを使用して実行します。ただし、これらの例は任意のSQLベースのインタフェースを使用して実行できます。
  1. CREATE PROPERTY GRAPH DDL文を使用してSQLプロパティ・グラフを作成します。
    SQL> CREATE PROPERTY GRAPH bank_sql_pg
      2    VERTEX TABLES (
      3      bank_accounts
      4      KEY (id)
      5      LABEL account
      6      PROPERTIES ALL COLUMNS
      7    )
      8    EDGE TABLES (
      9      bank_txns
     10        KEY (txn_id)
     11        SOURCE KEY (from_acct_id) REFERENCES bank_accounts (id)
     12        DESTINATION KEY (to_acct_id) REFERENCES bank_accounts (id)
     13        LABEL transfer
     14        PROPERTIES ALL COLUMNS
     15*   );
    
    Property created.

    実行時に、bank_sql_pgグラフ・スキーマ・オブジェクトがデータベースに作成されます。グラフは、1つの頂点グラフ要素表(bank_accounts)と1つのエッジ・グラフ要素表(bank_txns)で構成されます。

    グラフ要素表、キー、ラベルおよびプロパティの概念を学習するには、「SQLプロパティ・グラフの作成」を参照してください。

  2. 新しく作成したグラフでGRAPH_TABLE問合せを実行して、id816を持つアカウントのすべてのトランザクションをリストします。
    SQL> SELECT * FROM GRAPH_TABLE (bank_sql_pg
      2    MATCH
      3    (a IS account WHERE a.id = 816) -[e IS transfer]-> (b IS account)
      4    COLUMNS (a.id AS acc_a, e.amount AS amount, b.id AS acc_b)
      5* );
    
       ACC_A    AMOUNT    ACC_B
    ________ _________ ________
         816      4713      287
         816      8001      590
         816      4186      934
         816      3718      289
         816      4039      812

    GRAPH_TABLE問合せの詳細は、「SQL GRAPH_TABLE問合せ」を参照してください。

  3. オプションで、グラフ・サーバー(PGX)をインストールした場合は、グラフ・ビジュアライゼーション・ツールを使用して前述のGRAPH_TABLE問合せを視覚化することもできます。

    唯一の違いは、GRAPH_TABLE問合せの頂点とエッジをIDおよびすべてのラベルとプロパティとともに視覚化するために、頂点およびエッジIDを返す必要がある点です。次の例のCOLUMNS句では、VERTEX_IDおよびEDGE_ID演算子が使用されています:

    図3-2 GRAPH_TABLE問合せの視覚化

    図3-2の説明が続きます
    「図3-2 GRAPH_TABLE問合せの視覚化」の説明
  4. グラフ問合せの実行後に、SQLプロパティ・グラフを削除します。
    SQL> drop property graph bank_sql_pg;
    
    Property dropped.