Neo4j Graph Database Fundamentals · Pelajaran

Memfaktorkan Ulang dan Mengembangkan Model Graf

Pelajari cara mengembangkan model graf Neo4j dengan aman seiring waktu menggunakan pola pemfaktoran ulang dan kueri yang dibentuk ulang.

Pelajaran 4 dari 413 langkah

Memfaktorkan Ulang dan Mengembangkan Model Graf adalah pelajaran Neo4j Graph Database Fundamentals gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Neo4j Graph Database Fundamentals, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Neo4j Graph Database Fundamentals mencakup 4 pelajaran total.

Bagian dari pelajaran ini belum diterjemahkan dan ditampilkan dalam bahasa Inggris.

Models Are Never Final

As applications grow, your graph model will change. New questions demand new structure. Refactoring lets you reshape the graph without losing data.

Property to Node

A common refactor: a property shared by many nodes (like a city name) becomes its own node so it can hold relationships.

MATCH (p:Person)
WHERE p.city IS NOT NULL
MERGE (c:City {name: p.city})
MERGE (p)-[:LIVES_IN]->(c)
REMOVE p.city;

Node to Property

The reverse refactor: collapse a rarely-traversed node back into a property when its relationships add no value.

MATCH (p:Person)-[r:LIVES_IN]->(c:City)
SET p.city = c.name
DELETE r;

Renaming Relationship Types

To rename a relationship type, create the new one and delete the old. Cypher cannot rename a type in place.

MATCH (a)-[old:KNOWS]->(b)
MERGE (a)-[:FRIEND]->(b)
DELETE old;

Adding a New Label

You can introduce a new label to a subset of nodes to support new queries or constraints.

MATCH (p:Person)
WHERE p.age >= 18
SET p:Adult;

Splitting a Node

When one node mixes two concerns (e.g. a user and their address), split it into linked nodes for clarity and reuse.

MATCH (u:User)
WHERE u.street IS NOT NULL
CREATE (a:Address {street: u.street, zip: u.zip})
MERGE (u)-[:HAS_ADDRESS]->(a)
REMOVE u.street, u.zip;

Merging Duplicate Nodes

Data imports can create duplicates. Use APOC or careful Cypher to merge them, reattaching all relationships to a single surviving node.

MATCH (a:Person {email: 'x@y.com'}), (b:Person {email: 'x@y.com'})
WHERE id(a) < id(b)
WITH a, b
CALL apoc.refactor.mergeNodes([a, b]) YIELD node
RETURN node;

Batching Large Refactors

Refactors over millions of nodes should run in batches to avoid huge transactions. APOC's periodic iterate helps.

CALL apoc.periodic.iterate(
  'MATCH (p:Person) WHERE p.city IS NOT NULL RETURN p',
  'MERGE (c:City {name: p.city}) MERGE (p)-[:LIVES_IN]->(c) REMOVE p.city',
  {batchSize: 1000}
);

Versioning Your Model

Keep refactor scripts in version control and apply them in order, like database migrations. This makes changes reproducible across environments.

Testing After Refactor

Always validate counts before and after. Compare relationship totals to ensure nothing was orphaned or lost.

MATCH ()-[r:LIVES_IN]->() RETURN count(r) AS livesInCount;

Refactor with Confidence

Back up first, refactor in batches, verify counts, and keep scripts versioned. A graph model is a living thing you improve over time.

Quick Check

Test your refactoring knowledge.

Recap

You learned to evolve graph models safely:

  • Convert properties to nodes and back
  • Rename relationship types by recreating them
  • Split nodes and merge duplicates
  • Batch large refactors with APOC
  • Version scripts and verify counts
Gratis untuk memulai

Belajar Neo4j Graph Database Fundamentals dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
12
Pelajaran
48

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Memfaktorkan Ulang dan Mengembangkan Model Graf” gratis?

Ya — teks lengkap “Memfaktorkan Ulang dan Mengembangkan Model Graf” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Neo4j Graph Database Fundamentals, upgrade ke CoddyKit PRO. Kursus Neo4j Graph Database Fundamentals mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Memfaktorkan Ulang dan Mengembangkan Model Graf”?

Pelajari cara mengembangkan model graf Neo4j dengan aman seiring waktu menggunakan pola pemfaktoran ulang dan kueri yang dibentuk ulang. Kamu berlatih Neo4j Graph Database Fundamentals dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Neo4j Graph Database Fundamentals?

Tidak diperlukan pengalaman sebelumnya. Neo4j Graph Database Fundamentals di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Memfaktorkan Ulang dan Mengembangkan Model Graf” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Neo4j Graph Database Fundamentals ini?

Ya. Setiap pelajaran Neo4j Graph Database Fundamentals menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Prinsip Pemodelan Data Graf
  2. Merancang Model Graf Pertama Anda
  3. Kendala Skema dan Indeks
  4. Memfaktorkan Ulang dan Mengembangkan Model Graf
← Kembali ke Neo4j Graph Database Fundamentals