The document discusses using Neo4j, a graph database, to store and query provenance data. Some key points:
- Storing provenance in a relational database requires complex SQL and pushes graph operations into code, hurting performance on graph queries.
- Neo4j uses the Cypher query language which allows declarative graph queries without imperative code.
- Example Cypher queries are provided to demonstrate retrieving paths and relationships in a provenance graph.
- While graph databases provide better performance for graph queries, they have limitations for certain bulk scans compared to relational databases. Proper graph design is important.