IP Library Granted Patent US 12,248,441
Granted Patent B1
US 12,248,441 · App. 18/402,296 · Granted Mar 11, 2025

Schema tool for non-relational databases

Inventors: Broderick Messmer (Raleigh, NC); Justin Moore (Clayton, NC); Philip Prudich (Cary, NC)
Assignee: Progress Software Corporation
G06F16/211
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,248,441
App. No.
18/402,296
Filed
Jan 2, 2024
Granted
Mar 11, 2025
Kind
B1
Art Unit
2168
USPC
707/803
Abstract

A system and method for defining a relational schema for a non-relational database are disclosed. In one embodiment, the system identifies a non-relational database; obtains a data structure of the non-relational database; determines a relational schema type; generates a relational schema based on the determined schema type; determines whether the relational schema includes a plurality of relational tables; and responsive to determining that the relational schema includes a plurality of relational tables, defines a relation between at least two of the relational tables in the relational schema.

Claims (44)

1. A computer-implemented method comprising:

generating, using one or more processors, a mapping of a data structure of a non-relational database to a first virtual, relational table and a second virtual, relational table, wherein the data structure of the non-relational database includes at least a portion of a nested object that is normalized to the second, virtual relational table; and

defining, using the one or more processors, a relation between the first virtual, relational table and the second virtual, relational table,

wherein the first virtual, relational table, the second virtual, relational table, and the relation between the first virtual, relational table and the second virtual, relational table are included in a virtual, relational schema usable to obtain data from the non-relational database responsive to a relational query.

2. The computer-implemented method of claim 1 , wherein the nested object includes an array.

3. The computer-implemented method of claim 1 , wherein the nested object includes an array, and the portion of the nested object is normalized based on a characteristic of the array.

4. The computer-implemented method of claim 1 , wherein the nested object includes an array, and the array has a number of elements that varies between a first instance and a second instance.

5. The computer-implemented method of claim 1 , wherein the method further comprises:

receiving user input requesting modification of the virtual, relational schema; and

modifying the virtual, relational schema based on the user input.

6. The computer-implemented method of claim 1 , wherein the method further comprises:

receiving the relational query, wherein the relational query requests modification of data stored in the non-relational database; and

translating, using the virtual, relational schema, the relational query into a query for the non-relational database, the query instructing the non-relational database to modify the data stored in the non-relational database.

7. The computer-implemented method of claim 1 , wherein the method further comprises:

receiving the relational query;

translating, using the virtual, relational schema, the relational query into a query for the non-relational database; and

translating, using the virtual, relational schema, a first result from the non-relational database into a second result, the second result using a relational language.

8. The computer-implemented method of claim 1 , wherein the virtual, relational schema is stored as a JavaScript Object Notation (JSON) file.

9. The computer-implemented method of claim 1 , wherein the non-relational database is a MongoDB database.

10. A computer program product comprising a non-transitory computer usable medium including a computer readable program, wherein the computer readable program when executed on a computing device causes the computing device to:

generate a mapping of a data structure of a non-relational database to a first virtual, relational table and a second virtual, relational table, wherein the data structure of the non-relational database includes at least a portion of a nested object that normalized to the second, virtual relational table; and

define a relation between the first virtual, relational table and the second virtual, relational table,

wherein the first virtual, relational table, the second virtual, relational table, and the relation between the first virtual, relational table and the second virtual, relational table are included in a virtual, relational schema usable to obtain data from the non-relational database responsive to a relational query.

11. A system comprising:

a processor;

a memory storing instructions that, when executed, cause the system to:

generate a mapping of a data structure of a non-relational database to a first virtual, relational table and a second virtual, relational table, wherein the data structure of the non-relational database includes at least a portion of a nested object that is normalized to the second, virtual relational table; and

define a relation between the first virtual, relational table and the second virtual, relational table,

wherein the first virtual, relational table, the second virtual, relational table, and the relation between the first virtual, relational table and the second virtual, relational table are included in a virtual, relational schema usable to obtain data from the non-relational database responsive to a relational query.

12. The system of claim 11 , wherein the nested object includes an array.

13. The system of claim 11 , wherein the nested object includes an array, and the portion of the nested object is normalized based on a characteristic of the array.

14. The system of claim 11 , wherein the nested object includes an array, and the array has a number of elements that varies between a first instance and a second instance.

15. The system of claim 11 , the memory further storing instructions that, when executed cause the system to:

receive user input requesting modification of the virtual, relational schema; and

modify the virtual, relational schema based on the user input requesting modification of the virtual, relational schema.

16. The system of claim 11 , the memory further storing instructions that, when executed cause the system to:

receive the relational query, wherein the relational query requests modification of data, the data stored in the non-relational database; and

translate, using the virtual, relational schema, the relational query into a query for the non-relational database, the query instructing the non-relational database to modify the data stored in the non-relational database.

17. The system of claim 11 , the memory further storing instructions that, when executed cause the system to:

receive the relational query;

translate, using the virtual, relational schema, the relational query into a query for the non-relational database; and

translate, using the virtual, relational schema, a first result from the non-relational database into a second result, the second result using a relational language.

18. The system of claim 11 , wherein the virtual, relational schema is stored as a JavaScript Object Notation (JSON) file.

19. The system of claim 11 , wherein the non-relational database is a MongoDB database.