Mapping Engine for Relational to Graph Database Conversion

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional relational databases are not ideal for handling large and complex data sets, such as big data, and face challenges when converting or copying data between relational and graph databases due to structural differences, making it difficult to scale and manage data effectively.

Innovation Solution

A mapping engine is used to convert data between relational and graph databases by processing columns from relational databases into typed, directed property graphs and vice versa, with a synchronization engine to manage updates and ensure database consistency constraints are met.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If data is stored in traditional relational databases, then data can be stored in structured formats, but the system cannot efficiently handle large and complex data sets and faces difficulties when converting to graph databases

Engineering Contradiction:
Improveability to handle large and complex data setsVSAvoiddifficulty in converting between database structures
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces a mapping engine as an intermediary component that facilitates conversion between relational and graph database structures. This mapping engine processes queries, transforms data models, and synchronizes changes between the two database types, thereby resolving the complexity of direct conversion while maintaining adaptability to handle large and complex data sets effectively

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If a mapping engine is introduced to convert data between relational and graph databases, then data conversion capability is improved, but system complexity increases

Engineering Contradiction:
Improvedata conversion capabilityVSAvoidsystem structure complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The mapping engine is designed with multi-functionality, handling multiple operations including data conversion, query processing, change synchronization, and constraint validation within a single integrated component. This universal approach improves data conversion capability while managing system complexity by consolidating multiple functions rather than requiring separate components for each operation

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Reliability

If data synchronization is implemented to maintain consistency between relational and graph databases, then data integrity is improved, but processing time and complexity increase

Engineering Contradiction:
Improvedata integrityVSAvoidsynchronization processing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The mapping engine performs preliminary validation of database constraints and pre-processes synchronization operations before actual data conversion occurs. By validating constraints upfront and preparing transformation rules in advance, the system maintains data integrity while reducing real-time processing time during synchronization operations

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10984046B2Graph database and relational database mapping
Publication Date: 2021.04.20 MICRO FOCUS LLC
  • US10984046B2 patent drawing
  • US10984046B2 patent drawing
  • US10984046B2 patent drawing

AI summary

Examples for mapping a relational database to a graph database include a mapping engine to execute an arbitrary query on a relational database, identify a result column tag based on a tag of an underlying base table, process the result column into a typed, directed property graph based on the result column tag, and output the typed, directed property graph to a graph database. Examples for mapping a graph database to a relational database include processing a graph transaction by updating a mapping layer with a surrogate describing a change to a database object, determining, for an object in the mapping layer, if a database constraint defined on the object is satisfied, collecting database changes defined by the surrogate into a database change request, submitting the change request to a relational database as a transaction, and deleting the surrogate for the object in the mapping layer.