Property Graph

Định nghĩa

Property Graph là graph model trong đó node và edge đều có identifier, type/label và tập property metadata.

Cách hiểu bằng lời của tôi

Property graph không chỉ nói “A nối với B”. Nó còn lưu A là loại entity gì, cạnh là quan hệ gì, và metadata của node/cạnh như timestamp, trạng thái hoặc thuộc tính nghiệp vụ. Điều này làm graph phù hợp với interaction data và domain relationship.

Thành phần

  • Vertex: unique identifier, incoming/outgoing edges và key-value properties.
  • Edge: unique identifier, tail vertex, head vertex, relationship label và key-value properties.
  • Index: cho phép tìm vertex trực tiếp thay vì bắt buộc traversal từ một root.

Đặc tính mô hình hóa

  • Bất kỳ vertex nào cũng có thể nối với vertex khác.
  • Traversal có thể đi theo incoming hoặc outgoing edge.
  • Edge label cho phép nhiều loại relationship trong cùng graph.
  • Có thể thêm entity và relationship mới mà ít phải tái cấu trúc dữ liệu cũ.

Cypher biểu diễn variable-length traversal rất gọn, trong khi cùng query trên relational schema thường cần recursive CTE.

Biểu diễn bằng relational tables

Property graph có thể được lưu bằng hai table logic:

vertices(vertex_id, properties)
edges(edge_id, tail_vertex, head_vertex, label, properties)

Index trên tail_vertex và head_vertex hỗ trợ traversal theo cả hai hướng. Điều này tách logical model khỏi physical storage: dữ liệu có thể nằm trong tables nhưng vẫn được query như graph.

Evolvability

Graph không bắt mọi entity vào một hierarchy đồng nhất. Có thể thêm vertex type và edge label mới mà ít phải thay đổi relationship cũ. Đây là lợi thế khi domain dần xuất hiện nhiều loại entity và connection.

Liên kết