Graph Data Model

Định nghĩa

Graph Data Model biểu diễn dữ liệu bằng vertices/entities và edges/relationships, phù hợp khi connection giữa các entity là phần trung tâm của domain và query.

Khi phù hợp

  • Many-to-many dày đặc.
  • Nhiều loại entity và relationship cùng tồn tại.
  • Query cần path, neighborhood hoặc traversal nhiều hop.
  • Độ sâu traversal không cố định trước.
  • Schema cần dễ mở rộng bằng node/edge type mới.

Hai cách biểu diễn

  • Property Graph: node và edge có identifier, label/type và properties.
  • Triple-store: dữ liệu là (subject, predicate, object); property và relationship dùng chung một cấu trúc.

Query language

  • Cypher: pattern matching cho property graph.
  • SPARQL: pattern/path query cho RDF triple-store.
  • Datalog: facts và reusable rules, mạnh với recursion.

Trade-off

Graph data có thể lưu trong relational tables, nhưng variable-length traversal thường dài dòng. Ngược lại, graph database không tự động là lựa chọn tốt cho aggregate đơn giản hoặc workload chủ yếu lookup theo key.

Liên kết