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.