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

US10339179B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10339179-B2
Application numberUS-201615096034-A
CountryUS
Kind codeB2
Filing dateApr 11, 2016
Priority dateApr 11, 2016
Publication dateJul 2, 2019
Grant dateJul 2, 2019

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

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.

First claim

Opening claim text (preview).

What is claimed is: 1. A method comprising: receiving a mapping of one or more relational tables to one or more node tables and one or more edge tables, wherein: said one or more node tables comprise one or more columns and one or more rows, said one or more edge tables comprise one or more columns and one or more rows, each row of said one or more edge tables represents one edge of a graph, each edge of the graph corresponds to one row of said one or more edge tables, and said one or more rows of said one or more node tables and said one or more rows of said one or more edge tables define a graph; transforming content of at least one node table of said one or more node tables, or at least one edge table of said one or more edge tables, into an in-memory representation according to at least one format of: compressed sparse row (CSR) or compressed sparse column (CSC), wherein said transforming content comprises calculating, based on said mapping and said one or more relational tables, a value of at least one column of at least one row of said one or more rows of said one or more node tables; returning, based on an execution of a query of said graph, said value; wherein the method is performed by one or more computers. 2. The method of claim 1 wherein calculating said value is performed responsive to receiving said mapping. 3. The method of claim 1 wherein calculating said value is performed responsive to receiving said query. 4. The method of claim 1 further comprising calculating, based on said mapping, a value to at least one column of at least one row of said one or more rows of said one or more edge tables. 5. The method of claim 1 wherein calculating said value comprises calculating one row of a particular node table of said one or more node tables for each row of several rows of a particular relational table of said one or more relational tables. 6. The method of claim 1 wherein: a particular relational table of said one or more relational tables comprises one or more rows; each row of said one or more rows of said particular relational table comprises one or more columns; the method further comprises performing, based on said mapping: calculating one row of a particular node table of said one or more node tables for each unique value of a particular column of said one or more rows of said particular relational table; calculating one row of a particular edge table of said one or more edge tables for each row of said particular relational table; calculating a value of a particular column of at least one row of said particular edge table based on a particular row of said one or more rows of said one or more node tables. 7. The method of claim 1 wherein further comprising calculating one row of a particular edge table of said one or more edge tables for each row of several rows of a particular relational table of said one or more relational tables. 8. The method of claim 1 wherein: a particular relational table of said one or more relational tables comprises one or more rows; each row of said one or more rows of said particular relational table comprises one or more columns; the method further comprises calculating one row of a particular edge table of said one or more edge tables for each row, of said particular relational table, that has a non-null value in a particular column of said one or more columns of said each row. 9. The method of claim 1 wherein the method further comprises storing said value within a column vector. 10. The method of claim 1 wherein said mapping comprises a declarative descriptor that is encoded in at least one format of: extensible markup language (XML) or JavaScript object notation (JSON). 11. The method of claim 1 wherein: each relational table, of a first relational table and a second relational table, of said one or more relational tables comprises one or more rows; each row of said one or more rows of said each relational table comprises one or more columns; said mapping comprises at least a partial specification of a join between said first relational table and said second relational table; calculating said value comprises calculating said value for a first column of a particular node row of said one or more node tables based on a value of a particular column of said first relational table; the method further comprises calculating a second value for a second column of said particular node row based on a value of a particular column of said second relational table. 12. The method of claim 1 wherein: said one or more node tables consists of one universal node table; each relational table of said one or more relational tables comprises one or more rows; each row of said one or more rows of said each relational table comprises one or more columns; calculating said value comprises calculating said value for a first column of a first node row of said universal node table based on a value of a first column of a first relational table of said one or more relational tables; the method further comprises calculating a second value for a second column of a second node row based on a value of a second column of a second relational table of said one or more relational tables. 13. The method of claim 1 wherein a key of said one or more node tables is based on a key of said one or more relational tables. 14. The method of claim 1 wherein: said mapping comprises a value transform; calculating said value comprises applying said value transform. 15. The method of claim 1 further comprising generating, based on said mapping, at least one of: data definition language (DDL) or data manipulation language (DML). 16. The method of claim 15 wherein: receiving said mapping comprises generating a stored procedure; calculating said value comprises executing said stored procedure. 17. The method of claim 1 wherein said query comprises at least one of: a graph traversal query, a regular path query, or a context-free path query. 18. The method of claim 1 wherein the method further comprises calculating a second value for at least one column of at least one row of a property table that is associated with said one or more node tables, wherein said property table comprises a name column and a value column for storing name-value pairs. 19. The method of claim 1 further comprising providing at least one of: a graphical user interface (GUI) for editing said mapping, or a graphical representation of said graph. 20. The method of claim 1 further comprising storing said in-memory representation into a database according to at least one data type of: binary large object (BLOB) or character large object (CLOB). 21. The method of claim 1 further comprising creating a database view that includes a universal node table based on at least one of: at least one row of each node table of at least two node tables of said one or more node tables, or at least one row of each edge table of at least two edge tables of said one or more edge tables. 22. One or more non-transitory computer-readable media storing instructions that, when executed by one or more processors, cause: receiving a mapping of one or more relational tables to one or more node tables and one or more edge tables, wherein: said one or more node tables comprise one or more columns and one or more rows, said one or more edge tables comprise one or more columns and one or more rows, each row of said one or more edge tables represents one edge of a gr

Assignees

Inventors

Classifications

  • Integrating or interfacing systems involving database management systems · CPC title

  • Query processing · CPC title

  • Graphs; Linked lists (G06F16/9027 takes precedence) · CPC title

  • Mapping; Conversion · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10339179B2 cover?
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…
Who is the assignee on this patent?
Oracle Int Corp
What technology area does this patent fall under?
Primary CPC classification G06F16/9024. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jul 02 2019 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 11 related publications on this page (citations in our corpus or others sharing the same primary CPC).