IP Library Granted Patent US 10,984,047
Granted Patent B2
US 10,984,047 · App. 16/431,294 · Granted Apr 20, 2021

Graph processing system that can define a graph view from multiple relational database tables

Inventors: Siham Yousfi (Rabat, MA); Sungpack Hong (Palo Alto, CA); Alexander Weld (Mountain View, CA); Korbinian Schmid (San Mateo, CA); Hassan Chafi (San Mateo, CA)
Assignee: Oracle International Corporation
G06F16/9024G06F16/25G06F16/84G06F16/90335
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 10,984,047
App. No.
16/431,294
Granted
Apr 20, 2021
Kind
B2
Abstract

Techniques are provided for mapping tables and columns of a legacy relational schema into synthetic tables that are dedicated for graph analysis. In an embodiment, a computer receives a mapping of relational tables to node tables and edge tables. The node tables contain columns and rows. The edge tables contain columns and rows. The rows of the node tables and the rows of the edge tables define a graph. Based on the mapping and the relational tables, the computer calculates a value of at least one column of at least one row of the node tables. Based on an execution of a query of the graph, the computer returns the value.

Claims (42)

1. A method comprising:

creating a database view that defines:

a) a plurality of node tables that comprises a plurality of node rows that represent a plurality of vertices of a graph, wherein the plurality of node tables contains a first node table and a second node table that represent separate respective kinds of objects, and

b) one or more edge tables that comprise a plurality of edge rows that each has a one-to-one correspondence with a respective edge of the graph;

generating, into memory, content of said first node table and said second node table based on said database view;

returning a result based on: an execution of a query of said graph, and said content of said first node table and said second node table in said memory.

2. The method of claim 1 wherein said database view that defines said plurality of node tables is non-materialized.

3. The method of claim 1 wherein said one or more edge tables that comprise said plurality of edge rows comprises an associative table.

4. The method of claim 1 wherein:

the database view is backed by one or more relational tables that comprise a first primary key;

said plurality of node tables comprises a second primary key that is: based on the first primary key, or not based on the first primary key.

5. The method of claim 1 further comprising generating

a specification table that is populated by statements consisting of: upsert statements, and/or idempotent statements.

6. The method of claim 1 wherein the database view that defines said plurality of node tables is based on a second database view.

7. The method of claim 1 wherein:

said plurality of node tables comprises a plurality of properties that are stored as name-value pairs in a property table;

the property table comprises a name column that stores names of said name-value pairs and a value column that stores values of said name-value pairs.

8. The method of claim 1 wherein said plurality of node tables comprises: a) node identifiers, and b) a plurality of properties that are stored as name-value pairs in a property table that is sorted by the node identifiers.

9. The method of claim 1 wherein said plurality of node tables comprises a plurality of properties that are stored as name-value pairs in a property table that comprises compression.

10. The method of claim 9 wherein:

the property table comprises a name column and a value column;

said compression comprises compression of the name column.

11. The method of claim 9 wherein said compression of the property table comprises run length encoding (RLE).

12. One or more non-transitory computer-readable media storing instructions that, when executed by one or more processors, cause:

creating a database view that defines:

a) a plurality of node tables that comprises a plurality of node rows that represent a plurality of vertices of a graph, wherein the plurality of node tables contains a first node table and a second node table that represent separate respective kinds of objects, and

b) one or more edge tables that comprise a plurality of edge rows that each has a one-to-one correspondence with a respective edge of the graph;

generating, into memory, content of said first node table and said second node table based on said database view;

returning a result based on: an execution of a query of said graph, and said content of said first node table and said second node table in said memory.

13. The one or more non-transitory computer-readable media of claim 12 wherein said database view that defines said plurality of node tables is non-materialized.

14. The one or more non-transitory computer-readable media of claim 12 wherein said one or more edge tables that comprise said plurality of edge rows comprises an associative table.

15. The one or more non-transitory computer-readable media of claim 12 wherein:

the database view is backed by one or more relational tables that comprise a first primary key;

said plurality of node tables comprises a second primary key that is: based on the first primary key, or not based on the first primary key.

16. The one or more non-transitory computer-readable media of claim 12 wherein said instructions further cause generating

a specification table that is populated by statements consisting of: upsert statements, and/or idempotent statements.

17. The one or more non-transitory computer-readable media of claim 12 wherein the database view that defines said plurality of node tables is based on a second database view.

18. The one or more non-transitory computer-readable media of claim 12 wherein:

said plurality of node tables comprises a plurality of properties that are stored as name-value pairs in a property table;

the property table comprises a name column that stores names of said name-value pairs and a value column that stores values of said name-value pairs.

19. The one or more non-transitory computer-readable media of claim 12 wherein said plurality of node tables comprises: a) node identifiers, and b) a plurality of properties that are stored as name-value pairs in a property table that is sorted by the node identifiers.

20. The one or more non-transitory computer-readable media of claim 12 wherein said plurality of node tables comprises a plurality of properties that are stored as name-value pairs in a property table that comprises compression.

Continuity (2)
Continuation 15096034 · Apr 11, 2016
Related Publication 20190286662A1 · Sep 19, 2019