Umožňuje efektivní práci s daty, které mají složité a komplexní vztahy.

Data se ukládají ve formě grafu, kde:

  • uzly (nodes) - entity nebo objekty
  • hrany (edges) - vztahy mezi objekty
  • vlastnosti (properties) - detailnější informace (lze přiřadit uzlům i hranám)

Výhody:

  • grafové operace (hledání nejkratší cesty, kostra atd.)
    • shortest path
    • all paths
    • Dijkstra - nejlevnější cesta mezi 2 uzly
    • A* - optimalizační úlohy
  • dotazy na podgrafy, similarity-based queries

Nevýhody:

  • nevhodné pro velké batch operace
  • nevhodné pro ukládání opravdu velkých objemů dat - protože grafová databáze se špatně distribuuje

Datový model

  • property graphs
    • mohou být directed i undirected
    • obsahují nodes (vertices) a relationships (edges) between those nodes

Typy grafových databází

  • non-transactional = málo velkých grafů
  • transactional = hodně malých grafů

Zástupci

  • Neo4j - nejpopulárnější grafová databáze
  • Titan
  • multi-model databases:
    • OrientDB, Virtuoso, ArangoDB