5.4 頂点およびエッジ識別子
SQLグラフ問合せでは、VERTEX_ID
およびEDGE_ID
演算子を使用して、SQLプロパティ・グラフの各頂点およびエッジを一意に識別できます。
グラフ要素識別子は、グラフ要素表に定義されたキー値に基づいています。したがって、次の点に注意してください:
- 一部のキー列に
UNIQUE
制約がない場合、TRUSTED
モードのグラフでは、異なる頂点に対して重複する識別子が生成されることがあります。 ENFORCED
モードのグラフは、常に一意の識別子を生成することが保証されます。
VERTEX_ID
およびEDGE_ID
演算子は、SQLグラフ問合せのCOLUMNS
またはWHERE
句に表示される任意の式で使用できます。
ノート:
VERTEX_ID
およびEDGE_ID
演算子を使用するには、プロパティ・グラフ・オブジェクトとその基礎となるデータベース表の両方に対するREAD
またはSELECT
権限があることを確認する必要があります。
VERTEX_ID
演算子への入力は、次に示すように、一致した頂点パターンから取得される単一の頂点グラフ・パターン変数です:
MATCH (v) COLUMNS(VERTEX_ID(v) AS v_id)
同様に、EDGE_ID
演算子は、次のように一致したエッジ・パターンからの単一エッジ・グラフ・パターン変数を入力として取得します:
MATCH (v1)-[e]->(v2) COLUMNS(EDGE_ID(e) AS e_id)
これらの演算子の出力は、JSONデータ型の頂点またはエッジ識別子です。次に、頂点識別子を記述するJSON出力の例を示します:
{
"GRAPH_OWNER": "GRAPHUSER",
"GRAPH_NAME": "STUDENTS_GRAPH",
"ELEM_TABLE": "PERSONS",
"KEY_VALUE": {
"PERSON_ID": 1
}
}
前述のJSON出力では、次のとおりです:
GRAPH_OWNER
: プロパティ・グラフ・オブジェクトの所有者GRAPH_NAME
: プロパティ・グラフ・オブジェクトの名前ELEM_TABLE
: 頂点表の名前KEY_VALUE
: キー列の名前と値
JSON出力フィールドの同じリストがエッジ識別子にも適用されます。ただし、ELEM_TABLE
フィールドはエッジ表の名前を表します。また、JSONデータ型で実行できるすべての操作は、頂点およびエッジ識別子に対して実行できます。
詳細は、例5-20を参照してください。
VERTEX_EQUAL
およびEDGE_EQUAL
述語
VERTEX_EQUAL
述語とEDGE_EQUAL
述語は、それぞれ2つの頂点識別子とエッジ識別子を比較するために使用でき、等しい場合はTRUE
を返します。
VERTEX_EQUAL
述語への入力は、2つの頂点グラフ・パターン変数です。同様に、EDGE_EQUAL
の場合、両方の入力はエッジ・グラフ・パターン変数である必要があります。これらの述語は、SQLグラフ問合せのWHERE
句で使用できます。
詳細は、例5-21を参照してください。
親トピック: SQLグラフ問合せ