IP Library › Granted Patent US 12,013,843
Granted Patent B2
US 12,013,843 · App. 17/833,434 · Granted Jun 18, 2024

Automatic creation and synchronization of graph database objects

Inventors: Peter Eberlein (Malsch, DE); Volker Driesen (Heidelberg, DE)
Assignee: SAP SE
G06F16/2379G06F16/212G06F16/284
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,013,843
App. No.
17/833,434
Granted
Jun 18, 2024
Kind
B2
Abstract

A request is received to create a graph database from one or more relational databases. For each relational database, data objects in the relational database are identified. For each data object, a graph data object corresponding to the data object is created. The graph data object is linked to the data object. A set of associated data objects in the relational database are determined, and for each associated data object, an associated graph data object is created if a graph data object corresponding to the data object does not exist. For each created graph data object, a graph data relation object is created that represents a relationship between the graph data object and the associated graph data object. Created graph data objects, associated graph data objects, and graph data relation objects are stored in the graph database. The graph database is provided to one or more applications.

Claims (87)

1. A computer-implemented method, comprising:

receiving a request to create a graph database from two or more relational databases that include a first database for a first application and a second database for a second application;

for each relational database:

identify a set of data objects stored in the relational database; and

for each data object in the set of data objects stored in the relational database:

create a graph data object that corresponds to the data object as a vertex of a graph;

link the graph data object to the data object using an identifier of the data object;

provide a graph data object identifier of the graph data object for linking the graph data object to the data object;

determine a set of associated data objects that are associated with the data object;

for each associated data object, create an associated graph data object if a graph data object corresponding to the associated data object does not exist; and

for each created associated graph data object, create, as a directed edge in the graph, a graph data relation object that represents a relationship between the graph data object and the associated graph data object;

identifying one or more inter-application relationships between the first application and the second application that are not represented as a foreign key in the first database or the second database; and

for each inter-application relationship, creating a graph data relation object that represents the relationship and links, in the graph database, a first graph data object created from the first database with a second graph data object created from the second database;

storing the graph and created graph data objects, associated graph data objects, and graph data relation objects in the graph database;

providing the graph database to one or more applications;

determining a first change to a first graph data object in the graph database;

identifying a first data object corresponding to the first graph data object; and

providing information for the first change for updating of the first data object.

2. The computer-implemented method of claim 1 , comprising

adding one or more properties to the graph data object based on a set of attributes read from the data object.

3. The computer-implemented method of claim 1 , wherein the first graph data object and the second graph data object are linked with a linking graph data relation object.

4. The computer-implemented method of claim 1 , wherein the first graph data object and the second graph data object are linked with an intermediary graph data object.

5. The computer-implemented method of claim 1 , wherein providing the graph database to one or more applications comprises enabling the one or more applications to query for inter-application relationships.

6. The computer-implemented method of claim 1 , further comprising:

determining a first change to a first data object in a first relational database;

identifying a first graph data object corresponding to the first data object; and

updating the first graph data object based on the first change in the first data object.

7. The computer-implemented method of claim 1 , further comprising:

identifying a new relationship between a first data object and a second data object initiated by a first owner of the first data object;

identifying a second owner of the second data object;

sending an approval request to the second owner for linking, in the graph database, a first graph data object corresponding to the first data object to a second graph data object corresponding to the second data object;

receiving an approval from the second owner in response to the approval request; and

linking, in the graph database, the first graph data object to the second graph data object, based on the approval and the new relationship.

8. The computer-implemented method of claim 1 ,

wherein the first database includes data objects of a first type used by the first application, the second database includes data objects of a second type used by the second application, and the graph database includes a first graph data relation object that links a first data object of the first type to a second data object of the second type, and wherein the computer-implemented method further comprises:

receiving a query from the first application for objects that are related to the first data object;

determining, based on identifying the first graph data relation object, that the second data object of the second type is related to the first data object; and

providing, in response to the query, at least an identifier of the second data object, to the first application, to enable the first application to interact with the second data object.

9. A non-transitory, computer-readable medium storing one or more instructions executable by a computer system to perform operations comprising:

receiving a request to create a graph database from two or more relational databases that include a first database for a first application and a second database for a second application;

for each relational database:

identify a set of data objects stored in the relational database; and

for each data object in the set of data objects stored in the relational database:

create a graph data object that corresponds to the data object as a vertex of a graph;

link the graph data object to the data object using an identifier of the data object;

provide a graph data object identifier of the graph data object for linking the graph data object to the data object;

determine a set of associated data objects that are associated with the data object;

for each associated data object, create an associated graph data object if a graph data object corresponding to the associated data object does not exist; and

for each created associated graph data object, create, as a directed edge in the graph, a graph data relation object that represents a relationship between the graph data object and the associated graph data object;

identifying one or more inter-application relationships between the first application and the second application that are not represented as a foreign key in the first database or the second database; and

for each inter-application relationship, creating a graph data relation object that represents the relationship and links, in the graph database, a first graph data object created from the first database with a second graph data object created from the second database;

storing the graph and created graph data objects, associated graph data objects, and graph data relation objects in the graph database;

providing the graph database to one or more applications;

determining a first change to a first graph data object in the graph database;

identifying a first data object corresponding to the first graph data object; and

providing information for the first change for updating of the first data object.

10. The non-transitory, computer-readable medium of claim 9 , wherein the operations further comprise adding one or more properties to the graph data object based on a set of attributes read from the data object.

11. The non-transitory, computer-readable medium of claim 9 , wherein the first graph data object and the second graph data object are linked with a linking graph data relation object.

12. The non-transitory, computer-readable medium of claim 9 , wherein the first graph data object and the second graph data object are linked with an intermediary graph data object.

13. A computer-implemented system, comprising:

one or more computers; and

one or more computer memory devices interoperably coupled with the one or more computers and having tangible, non-transitory, machine-readable media storing one or more instructions that, when executed by the one or more computers, perform one or more operations comprising:

receiving a request to create a graph database from two or more relational databases that include a first database for a first application and a second database for a second application;

for each relational database:

identify a set of data objects stored in the relational database; and

for each data object in the set of data objects stored in the relational database:

create a graph data object that corresponds to the data object as a vertex in a graph;

link the graph data object to the data object using an identifier of the data object;

provide a graph data object identifier of the graph data object for linking the graph data object to the data object;

determine a set of associated data objects that are associated with the data object;

for each associated data object, create an associated graph data object if a graph data object corresponding to the associated data object does not exist; and

for each created associated graph data object, create, as a directed edge in the graph, a graph data relation object that represents a relationship between the graph data object and the associated graph data object;

identifying one or more inter-application relationships between the first application and the second application that are not represented as a foreign key in the first database or the second database; and

for each inter-application relationship, creating a graph data relation object that represents the relationship and links, in the graph database, a first graph data object created from the first database with a second graph data object created from the second database;

storing the graph and created graph data objects, associated graph data objects, and graph data relation objects in the graph database;

providing the graph database to one or more applications;

determining a first change to a first graph data object in the graph database;

identifying a first data object corresponding to the first graph data object; and

providing information for the first change for updating of the first data object.

14. The computer-implemented system of claim 13 , wherein

the operations further comprise adding one or more properties to the graph data object based on a set of attributes read from the data object.

15. The computer-implemented system of claim 13 , wherein

the first graph data object and the second graph data object are linked with a linking graph data relation object.

16. The computer-implemented system of claim 13 , wherein

the first graph data object and the second graph data object are linked with an intermediary graph data object.

17. The computer-implemented system of claim 13 , wherein

providing the graph database to one or more applications comprises enabling the one or more applications to query for inter-application relationships.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 7, 2022
From: EBERLEIN, PETER; DRIESEN, VOLKER
To: SAP SE
Reel/Frame 060120/0888 →
Continuity (2)
Continuation 16902690 · Jun 16, 2020
Related Publication 20220300490A1 · Sep 22, 2022