見出し画像

Neo4j GraphDBブートキャンプ完全版: 削除と制約 (セクション15-16/49)

  • Neo4jでデータを削除するには、`DELETE`句や`DETACH DELETE`句を使用してノードやリレーションシップを削除し、`REMOVE`句でプロパティやラベルを取り除く方法があります。

  • データの整合性と一貫性を保つために、ユニーク制約やプロパティ存在制約を設定することができ、これには`CREATE CONSTRAINT`と`DROP CONSTRAINT`句が使用されます。

  • 効果的なDELETE、REMOVE、制約機能の使用により、Neo4jデータベースを清潔で一貫性があり、有効なグラフデータモデルとして維持することができます。

はじめに:

2024年版のComplete Neo4j GraphDB Bootcampのセクション15と16では、Neo4jグラフデータベースを管理する上で重要な2つの側面、データの削除と制約の適用について詳しく説明しています。Neo4j開発者にとって、ノード、リレーションシップ、プロパティを適切に削除する方法と、制約を通じてデータの整合性を維持する方法を理解することが不可欠です。これらの有益なセクションで取り上げられた主要な概念とCypher句を見直してみましょう。

セクション15:削除と除去

Cypherの削除句を使用すると、グラフからノード、リレーションシップ、またはパス全体を削除できます。主な使用例は次のとおりです。

  • ノードの削除:MATCHを使用してノードを選択し、DELETEを使用して削除します。例:

MATCH (n {name:"A"})
DELETE n
  • リレーションシップを持つノードの削除:最初にDETACH DELETEを使用して、ノードとそれに関連するリレーションシップを削除する必要があります。例:

MATCH (n {name:"A"}) 
DETACH DELETE n
  • リレーションシップの削除:特定のノードとリレーションシップをMATCHし、リレーションシップ変数をDELETEします。例:

MATCH (n {name:"Jim Cash"})-[r:WROTE]->(m {title:"Top Gun"})
DELETE r

REMOVE句は、ノードとリレーションシップからプロパティとラベルを削除するために使用されます。主な用途には以下が含まれます。

  • ノードからプロパティを削除する:ノードをMATCHし、プロパティをREMOVEし、更新されたプロパティをリターンします。例:

MATCH (n {name:"Andy"})
REMOVE n.born
RETURN properties(n)
  • 複数のプロパティを削除する:削除するプロパティをカンマで区切って列挙します。例:

MATCH (n {name:"Jim Cash"})
REMOVE n.weight, n.name
RETURN n
  • ノードからラベルを削除する:ノードをMATCHし、ラベルをREMOVEします。例:

MATCH (n {name:"Jim Cash"}) 
REMOVE n:Actor
RETURN n

セクション16:制約

制約は、グラフ内のデータの整合性と一貫性を強制するために使用されます。制約は、SQLデータベースのプライマリキーと外部キーの制約と同様に、ラベルレベルで適用されます。カバーされている2つの主要な制約のタイプは次のとおりです。

  1. ユニークノードプロパティ制約:特定のラベルを持つすべてのノードに対して、プロパティ値の一意性を保証します。例:

CREATE CONSTRAINT email_constraint FOR (n:Person) REQUIRE n.email IS UNIQUE
  1. ノードとリレーションシッププロパティの存在制約:特定のラベル/タイプのすべてのノード/リレーションシップに対して、プロパティが存在すること(NULLではないこと)を要求します。例:

CREATE CONSTRAINT exist_constraint IF NOT EXISTS 
FOR (n:Teacher) REQUIRE n.qualification IS NOT NULL

CREATE CONSTRAINT constraint_relationship IF NOT EXISTS
FOR ()-[r:ORDERED]-() REQUIRE r.discount IS NOT NULL

その他の重要なポイント:

  • 制約はCREATE CONSTRAINTで作成され、DROP CONSTRAINTで削除されます。

  • プロパティごとに適用できる制約は1つだけです。

  • ノードキー制約は、ノードを一意に識別するために必要なプロパティの組み合わせを定義することができます。

結論:

Neo4jのDELETE、REMOVE、および制約機能を効果的に使用することで、開発者はクリーンで一貫性があり、有効なグラフデータモデルを維持することができます。データを選択的に削除し、スキーマレベルのルールを適用する方法を理解することで、Neo4jデータベースを自信を持って管理できるようになるでしょう。Complete Neo4j GraphDB Bootcampは、これらの重要な概念の強固な基礎を提供します。

「超本当にドラゴン」へ

この記事が気に入ったらサポートをしてみませんか?