Graph Query Translation Across Heterogeneous Data Stores

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for querying across multiple databases face challenges due to differing formats, leading to data inconsistency, staleness, and increased complexity, which complicates the execution of database queries and risks loss of data consistency.

Innovation Solution

The system generates a graph of entities and their relationships across multiple data stores, allowing for the execution of graph queries that are translated into database queries, enabling unified data access across heterogeneous SQL, NoSQL, and unstructured data stores.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If data is copied from multiple databases to a single database for querying, then query execution becomes simpler, but data consistency is lost and data becomes stale

Engineering Contradiction:
Improvequery execution simplicityVSAvoiddata consistency
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent introduces a graph database as an intermediary layer between multiple source databases and the query interface. The graph database receives data from multiple heterogeneous databases through data synchronization mechanisms, maintains relationships between entities in graph structure, and provides unified query access without requiring direct data copying to a single database. This intermediary approach enables simple graph queries while maintaining data consistency through the graph database's ability to track and synchronize data from source systems.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If data is combined from multiple data stores into a single data store, then querying across databases becomes easier, but overhead and complexity increase significantly

Engineering Contradiction:
Improvecross-database queryingVSAvoiddata integration complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent segments the data integration approach by maintaining separate source databases while introducing a graph database as a distinct layer for relationship management. Each source database retains its original structure and data, while the graph database creates a segmented view of entities and relationships through nodes and edges. This segmentation allows cross-database querying through the graph structure without requiring complete data consolidation, reducing integration complexity while maintaining ease of query execution.

Inventive Principle:
Principle #1Segmentation

3Adaptability or versatility

If entities from multiple data stores are combined into a single data store, then unified data access is achieved, but data formats and inconsistencies create problems

Engineering Contradiction:
Improveunified data accessVSAvoiddata format harmonization
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent applies parameter changes by transforming heterogeneous data from multiple databases into a standardized graph database structure. Entities from different data stores are converted into graph nodes with unified properties, and relationships are represented as edges with standardized attributes. This parameter transformation enables unified data access through consistent graph query mechanisms while the graph database handles format harmonization internally, reducing the complexity of data format integration.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11829391B2Systems, methods, and apparatuses for executing a graph query against a graph representing a plurality of data stores
Publication Date: 2023.11.28 SALESFORCE INC
  • US11829391B2 patent drawing
  • US11829391B2 patent drawing
  • US11829391B2 patent drawing

AI summary

Embodiments of the invention identify entities stored within or across a number of data stores and identify relationships between the entities. A relationships graph is generated that represents the entities and the identified relationships between entities, the relationships graph comprising nodes in the relationships graph to represent one or more entities and edges between any two nodes in the relationships graph to represent the identified relationships between the one or more entities represented by each of the two nodes. The relationships graph is stored in a graph store. A graph query is received against selected nodes and edges in the graph store. One or more data store queries are generated therefrom, to be executed against respective selected ones of the one or more entities and their respective identified relationships based on the graph query and the graph store. The one or more data store queries are applied to selected one or more of the number of data stores. The results of the execution of the one or more data store queries are received and a response is composed to the graph query for the selected ones of the one or more entities and their identified relationships based on the results of the execution of the one or more data store queries.