Graphiti: Bridging Graph and Relational Database Queries
By: Yang He , Ruijie Fang , Isil Dillig and more
Potential Business Impact:
Checks if graph and database questions mean the same thing.
This paper presents an automated reasoning technique for checking equivalence between graph database queries written in Cypher and relational queries in SQL. To formalize a suitable notion of equivalence in this setting, we introduce the concept of database transformers, which transform database instances between graph and relational models. We then propose a novel verification methodology that checks equivalence modulo a given transformer by reducing the original problem to verifying equivalence between a pair of SQL queries. This reduction is achieved by embedding a subset of Cypher into SQL through syntax-directed translation, allowing us to leverage existing research on automated reasoning for SQL while obviating the need for reasoning simultaneously over two different data models. We have implemented our approach in a tool called Graphiti and used it to check equivalence between graph and relational queries. Our experiments demonstrate that Graphiti is useful both for verification and refutation and that it can uncover subtle bugs, including those found in Cypher tutorials and academic papers.
Similar Papers
Proving Cypher Query Equivalence
Databases
Checks if two ways of asking for data are the same.
SteinerSQL: Graph-Guided Mathematical Reasoning for Text-to-SQL Generation
Artificial Intelligence
Helps computers understand complex questions about data.
Querying Graph-Relational Data
Programming Languages
Connects app data to database easily.