エッジ制約Edge constraints

適用対象: ○SQL Server ○Azure SQL Database XAzure SQL Data Warehouse XParallel Data WarehouseAPPLIES TO: yesSQL Server yesAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

エッジ制約を使用して、データの整合性と特定のセマンティクスを SQL ServerSQL Server グラフ データベース内のエッジ テーブルに適用できます。Edge constraints can be used to enforce data integrity and specific semantics on the edge tables in SQL ServerSQL Server graph database.

エッジ制約Edge Constraints

グラフ機能の初回のリリースでは、エッジ テーブルでエッジのエンドポイントに対して強制できることは何もありませんでした。In the first release of graph features, edge tables did not enforce anything for the endpoints of the edge. つまり、グラフ データベース内のエッジは、その種類に関係なく、任意のノードを他の任意のノードに接続することができました。That is, an edge in a graph database could connect any node to any other node, regardless of the type.

今回のリリースにはエッジ制約が導入され、ユーザーは、各自のエッジ テーブルに制約を追加することで特定のセマンティクスを適用でき、データの整合性も管理できます。This release introduces edge constraints, which enable users to add constraints to their edge tables, thereby enforcing specific semantics and also maintaining data integrity. エッジ制約を持つエッジ テーブルに新しいエッジが追加される場合、データベース エンジンDatabase Engine では、エッジが接続を試みるノードが適切なノード テーブルに存在している必要があります。When a new edge is added to an edge table with edge constraints, the データベース エンジンDatabase Engine enforces that the nodes which the edge is trying to connect, exist in the proper node tables. また、ノードがエッジによって参照されている場合は、ノードを削除することはできません。It is also ensured that a node cannot be dropped, if it is still referenced by an edge.

エッジ制約句Edge Constraint Clauses

各エッジ制約は、1 つまたは複数のエッジ制約句で構成されます。Each edge constraint consists of one or more edge constraint clause(s). 1 つのエッジ制約句は、特定のエッジが接続する FROM ノードと TO ノードのペアです。An edge constraint clause is the pair of FROM and TO nodes that the given edge could connect.

グラフ内に Product ノードと Customer ノードがあり、Bought エッジを使用してこれらのノードを接続することを考えてください。Consider that you have Product and Customer nodes in your graph and you use Bought edge to connect these nodes. エッジ制約句には、FROM ノードと TO ノードのペアとエッジの方向が指定されます。The edge constraint clause specifies the FROM and TO node pair and the direction of the edge. この場合、エッジ制約句は Customer TO Product になります。In this case the edge constraint clause will be Customer TO Product. つまり、Customer から Product 方向への Bought の挿入が許可されます。That is, inserting a Bought that goes from a Customer to Product will be allowed. Product から Customer 方向へのエッジを挿入する試みは失敗します。Attempts to insert an edge that goes from Product to Customer fail.

  • エッジ制約句には、エッジ制約が適用される FROM ノードと TO ノードのペアが含まれます。An edge constraint clause contains a pair of FROM and TO node tables that the edge constraint is enforced on.

  • ユーザーは、エッジ制約ごとに複数のエッジ制約句を指定でき、それらは論理和演算として適用されます。Users may specify multiple edge constraint clauses per edge constraint, which will be applied as a disjunction.

  • 1 つのエッジ テーブルに複数のエッジ制約が作成される場合、エッジはすべての制約を満たす必要があります。If multiple edge constraints are created on a single edge table, edges must satisfy ALL constraints to be allowed.

エッジ制約のインデックスIndexes on Edge Constraints

エッジ制約を作成しても、エッジ テーブルの $from_id 列と $to_id 列の対応するインデックスは自動的に作成されることはありません。Creating an edge constraint does not automatically create a corresponding index on $from_id and $to_id columns in the edge table. ポイント ルックアップ クエリまたは OLTP ワークロードがある場合は、$from_id$to_id のペアに対するインデックスを手動で作成することをお勧めします。Manually creating an index on a $from_id, $to_id pair is recommended if you have point lookup queries or OLTP workload.

関連タスクRelated Tasks

次の表は、エッジ制約に関連する一般的なタスクの一覧です。The following table lists the common tasks associated with edge constraints.

タスクTask [アーティクル]Article
エッジ制約の作成方法について説明します。Describes how to create edge constraints. エッジ制約を作成するCreate Edge Constraints
エッジ制約の削除方法について説明します。Describes how to delete an edge constraint. エッジ制約を削除するDelete Edge Constraint
エッジ制約の変更方法について説明します。Describes how to modify an edge constraint. エッジ制約を変更するModify Edge Constraint
エッジ制約のプロパティの表示方法について説明します。Describes how to view edge constraint properties. エッジ制約のプロパティを表示するView Edge Constraint Properties
SQL Server でのグラフ テクノロジの概要Overview of the Graph technology in SQL Server SQL Server と Azure SQL Database でのグラフ処理Graph processing with SQL Server and Azure SQL Database