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グラフ問合せ