IP Library Granted Patent US 12,174,852
Granted Patent B1
US 12,174,852 · App. 18/336,854 · Granted Dec 24, 2024

Modeling of a non-relational database as a normalized relational database

Inventor: Robert Scott Bradley (Bahama, NC)
Assignee: Progress Software Corporation
G06F16/258G06F16/212G06F16/221
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,174,852
App. No.
18/336,854
Filed
Jun 16, 2023
Granted
Dec 24, 2024
Kind
B1
Art Unit
2153
USPC
707/740
Abstract

A system and method are disclosed for modeling a non-relational database as a normalized relational database. In one embodiment, the system identifies a column having a first type in a column-oriented, non-relational database; determines whether the column-oriented, non-relational database includes at least one column having a second type and identifies the one or more columns having the second type; virtually divides the column-oriented, non-relational database based on column type; and generates a normalized, relational model based on the virtual division of the column-oriented, non-relational database, the normalized, relational model including catalog information representing a parent table including the column having the first type and, when the column-oriented, non-relational database includes at least one column having the second type, catalogue information representing a child table, the parent table and child table both represented as relational tables.

Claims (34)

1. A method comprising:

receiving, using one or more processors, a relational query from a client;

obtaining, using the one or more processors, a relational model of a non-relational database, wherein the non-relational database includes a first element having a first type and a second element having a second type, and wherein the relational model represents the first element in a parent table and represents the second element in a child table, wherein the parent table and child table are both represented as relational tables; and

translating, using the one or more processors, the relational query into a non-relational query using the relational model.

2. The method of claim 1 comprising:

sending the non-relational query to the non-relational database;

receiving, using the one or more processors, a non-relational response from the non-relational database;

translating the non-relational response into a relational response; and

sending the relational response to the client.

3. The method of claim 1 , wherein the first type is static, and the first element includes a column common to data maintained in the non-relational database.

4. The method of claim 1 , wherein the first element is associated with a key.

5. The method of claim 1 , wherein the second type is dynamic, and the second element is associated with a sub-type.

6. The method of claim 1 , wherein the second element is associated with one or more of a set, a list, and a map.

7. The method of claim 1 , wherein the relational model of the non-relational database is generated based on a division of the non-relational database based on element type.

8. The method of claim 7 , wherein the division of the non-relational database based on the element type is a virtual division.

9. The method of claim 7 , wherein the relational model of the non-relational database is a normalized relational model.

10. A system comprising:

one or more processors; and

a non-transitory memory storing instructions that, when executed, by the one or more processors, cause the system to perform steps comprising:

receive a relational query from a client;

obtain a relational model of a non-relational database, wherein the non-relational database includes a first element having a first type and a second element having a second type, and wherein the relational model includes represents the first element in a parent table and represents the second element in a child table, wherein the parent table and child table are both represented as relational tables; and

translate the relational query into a non-relational query using the relational model.

11. The system of claim 10 , the instructions, when executed, further causing the system to perform steps comprising:

send the non-relational query to the non-relational database;

receive a non-relational response from the non-relational database;

translate the non-relational response into a relational response; and

send the relational response to the client.

12. The system of claim 10 , wherein the first type is static, and the first element includes a column common to data maintained in the non-relational database.

13. The system of claim 10 , wherein the first element is associated with a key.

14. The system of claim 10 , wherein the second type is dynamic, and the second element is associated with a sub-type.

15. The system of claim 10 , wherein the second element is associated with one or more of a set, a list, and a map.

16. The system of claim 10 , wherein the relational model of the non-relational database is generated based on a division the non-relational database based on element type.

17. The system of claim 16 , wherein the division of the non-relational database based on the element type is a virtual division.

18. The system of claim 16 , wherein the relational model of the non-relational database is a normalized relational model.