IP Library Granted Patent US 9,507,820
Granted Patent B1
US 9,507,820 · App. 13/658,747 · Granted Nov 29, 2016

Data modeling system for runtime schema extensibility

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 9,507,820
App. No.
13/658,747
Granted
Nov 29, 2016
Kind
B1
Abstract

Systems and methods for using a logical data model to at least partially address the deficiencies with existing ORM solutions are provided. In certain embodiments, the logical data model includes a layer that hides the underlying physical layout of tables in a database. The logical data model can act as a data management component that supports any subset of the following: 1) dynamic data modeling and schema management; 2) data set comparison and merge with historical tracking; and/or 3) data query.

Claims (61)

1. A system for querying a database using a logical data model, the system comprising:

a logical data model comprising data representing a plurality of entities, each of the plurality of entities having one or more properties, and mappings to a plurality of physical database tables, the mappings configured to map the plurality of entities to the plurality of physical database tables in a physical database; and

a query engine comprising computer hardware, the query engine configured to:

receive, from a custom reporting application, a request for entity data of the logical data model, the requested-for entity data being related to first properties of a selected entity of the plurality of entities,

access the logical data model to identify two or more physical database tables of the plurality of physical database tables and associated columns in the two or more physical database tables to which the first properties of the selected entity are mapped,

construct a query to access the two or more physical database tables in the physical database,

pass the query to a database management system to cause the query to be executed on the physical database,

receive results of the query from the database management system, and

provide the results of the query to the custom reporting application to thereby enable the custom reporting application to generate a report, including the results of the query, for presentation to a user,

wherein the plurality of entities of the logical data model are dynamically bound such that updating the logical data model is performed without requiring recompilation of the logical data model or the physical database, thereby enabling the logical data model to be modified at runtime,

wherein the logical data model stores semantic relationships between the plurality of entities that mask relational relationships between the plurality of physical database tables, and

wherein the logical data model is configured to map an entity of the plurality of entities to multiple database tables of the plurality of physical database tables.

2. The system of claim 1 , further comprising a data collector configured to collect data from a third party system and to provide the data for storage in the two or more physical database tables based on the logical data model.

3. The system of claim 1 , wherein the query engine comprises one or more extension points, thereby enabling the query engine to be dynamically modified at runtime.

4. The system of claim 1 , wherein the plurality of entities in the logical data model are stored in tables.

5. A system for querying a database using a logical data model, the system comprising:

a logical data model comprising data representing a plurality of entities, each of the plurality of entities having one or more properties, and mappings to a plurality of physical database tables, the mappings configured to map the plurality of entities to the plurality of physical database tables in a physical database; and

a query engine comprising computer hardware, the query engine configured to:

receive, from an application, a request for entity data of the logical data model, the requested-for entity data being related to first properties of a selected entity of the plurality of entities,

access the logical data model to identify two or more physical database tables of the plurality of physical database tables and associated columns in the two or more physical database tables to which the first properties of the selected entity are mapped,

construct a query to access the two or more physical database tables in the physical database,

cause the query to be executed on the physical database,

receive results of the query from the physical database,

provide the results of the query to the application,

wherein the plurality of entities of the logical data model are dynamically bound such that updating the logical data model is performed without requiring recompilation of the logical data model or the physical database, thereby enabling the logical data model to be modified at runtime,

wherein the logical data model stores semantic relationships between the plurality of entities that mask relational relationships between the plurality of physical database tables, and

wherein the logical data model is configured to map an entity of the plurality of entities to multiple database tables of the plurality of physical database tables.

6. The system of claim 5 , wherein the query engine is further configured to cause the query to be executed on the physical database by providing the query to a database management system.

7. The system of claim 5 , wherein the query engine is further configured to construct the query by joining the two or more physical database tables.

8. The system of claim 5 , wherein the query engine is further configured to select a structured query language (SQL) dialect corresponding to a SQL dialect used by the physical database.

9. The system of claim 5 , wherein the semantic relationships comprise inheritance relationships.

10. The system of claim 5 , wherein the semantic relationships comprise parent-child relationships.

11. The system of claim 5 , wherein the semantic relationships comprise possessive relationships.

12. The system of claim 5 , wherein the physical database comprises a non-relational database.

13. Non-transitory physical computer storage comprising instructions stored thereon that, when executed by one or more processors, implement components for querying a database using a logical data model, the components comprising:

a logical data model comprising data representing a plurality of entities, each of the plurality of entities having one or more properties, and mappings to a plurality of physical database tables, the mappings configured to map the plurality of entities to the plurality of physical database tables in a physical database; and

a query engine configured to:

receive, from an application, a request for entity data of the logical data model, the requested-for entity data being related to first properties of a selected entity of the plurality of entities,

access the logical data model to identify two or more physical database tables of the plurality of physical database tables and associated columns in the two or more physical database tables to which the first properties of the selected entity are mapped,

construct a query to access the two or more physical database tables in the physical database,

pass the query to the physical database to thereby cause the query to be executed on the physical database,

receive results of the query from the physical database, and

provide the results of the query to application,

wherein the plurality of entities of the logical data model are dynamically bound such that updating the logical data model is performed without requiring recompilation of the logical data model or the physical database, thereby enabling the logical data model to be modified at runtime,

wherein the logical data model stores semantic relationships between the plurality of entities that mask relational relationships between the plurality of physical database tables, and

wherein the logical data model is configured to map an entity of the plurality of entities to multiple database tables of the plurality of physical database tables.

14. The non-transitory physical computer storage of claim 13 , wherein the query engine is further configured to provide support for custom data types.

15. The non-transitory physical computer storage of claim 14 , wherein the query engine can interpret the custom data types at runtime.

16. The non-transitory physical computer storage of claim 13 , wherein each of the plurality of entities is mapped to one or more of the plurality of physical database tables.

17. The non-transitory physical computer storage of claim 13 , in combination with a computer system comprising one or more physical computing devices.

18. A method of querying a database using a logical data model, the method comprising:

by a computer system comprising computer hardware:

receiving, from an application, a request for entity data of a logical data model, the logical data model comprising a plurality of entities, the requested-for entity data being related to properties of a selected entity of the plurality of entities;

accessing the logical data model to identify two or more physical database tables in a physical database and associated columns in the two or more physical database tables to which the properties of the selected entity are mapped;

constructing a query to access the two or more physical database tables in the physical database;

passing the query to a database management system configured to execute the query on the physical database;

receiving results of the query from the database management system; and

providing the results of the query to the application;

wherein the plurality of entities of the logical data model are dynamically bound such that updating the logical data model is performed without requiring recompilation of the logical data model or the physical database, thereby enabling the logical data model to be modified at runtime,

wherein the logical data model stores semantic relationships between the plurality of entities that mask relational relationships between a plurality of physical database tables; and

wherein the logical data model is configured to map an entity of the plurality of entities to multiple database tables of the two or more physical database tables.

Assignments (28)
RELEASE OF SECURITY INTEREST Recorded Nov 19, 2025
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.
Reel/Frame 073606/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 18, 2025
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.
Reel/Frame 073613/0326 →
SECURITY INTEREST Recorded Jun 8, 2025
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; ERWIN, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 071527/0649 →
SECURITY INTEREST Recorded Jun 8, 2025
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; ERWIN, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 071527/0001 →
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS Recorded Feb 2, 2022
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.
Reel/Frame 059105/0479 →
FIRST LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Feb 2, 2022
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.; ONE IDENTITY LLC; ONELOGIN, INC.; ONE IDENTITY SOFTWARE INTERNATIONAL DESIGNATED ACTIVITY COMPANY
To: GOLDMAN SACHS BANK USA
Reel/Frame 058945/0778 →
SECOND LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Feb 2, 2022
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.; ONE IDENTITY LLC; ONELOGIN, INC.; ONE IDENTITY SOFTWARE INTERNATIONAL DESIGNATED ACTIVITY COMPANY
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 058952/0279 →
RELEASE OF SECOND LIEN SECURITY INTEREST IN PATENTS Recorded Feb 2, 2022
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.
Reel/Frame 059096/0683 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: QUEST SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046327/0347 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: QUEST SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046327/0486 →
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS RECORDED AT R/F 040581/0850 Recorded May 22, 2018
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC. (F/K/A DELL SOFTWARE INC.); AVENTAIL LLC
Reel/Frame 046211/0735 →
CHANGE OF NAME Recorded Dec 6, 2017
From: DELL SOFTWARE INC.
To: QUEST SOFTWARE INC.
Reel/Frame 044800/0848 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE PREVIOUSLY RECORDED AT REEL: 040587 FRAME: 0624. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Nov 28, 2017
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: QUEST SOFTWARE INC. (F/K/A DELL SOFTWARE INC.); AVENTAIL LLC
Reel/Frame 044811/0598 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Nov 10, 2016
From: DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040587/0624 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Nov 9, 2016
From: DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040581/0850 →
RELEASE OF SECURITY INTEREST IN CERTAIN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040039/0642) Recorded Oct 31, 2016
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
To: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.
Reel/Frame 040521/0016 →
RELEASE OF SECURITY INTEREST Recorded Oct 31, 2016
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: AVENTAIL LLC; DELL PRODUCTS, L.P.; DELL SOFTWARE INC.
Reel/Frame 040521/0467 →
RELEASE OF SECURITY INTEREST Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: DELL MARKETING L.P.; ASAP SOFTWARE EXPRESS, INC.; APPASSURE SOFTWARE, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL PRODUCTS L.P.; DELL USA L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040065/0618 →
RELEASE OF SECURITY INTEREST Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL MARKETING L.P.; ASAP SOFTWARE EXPRESS, INC.; APPASSURE SOFTWARE, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL PRODUCTS L.P.; DELL USA L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040040/0001 →
SECURITY AGREEMENT Recorded Sep 14, 2016
From: AVENTAIL LLC; DELL PRODUCTS, L.P.; DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040030/0187 →
SECURITY AGREEMENT Recorded Sep 14, 2016
From: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040039/0642 →
RELEASE OF SECURITY INTEREST Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL MARKETING L.P.; ASAP SOFTWARE EXPRESS, INC.; APPASSURE SOFTWARE, INC.; COMPELLANT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL PRODUCTS L.P.; DELL USA L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040065/0216 →
CONFIDENTIALITY, NON-COMPETITION AND PROPERTY RIGHTS AGREEMENT Recorded May 19, 2014
From: DUENAS, JOSE ROBERTO ANTONIO, II
To: QUEST SOFTWARE, INC.
Reel/Frame 032921/0230 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Jan 2, 2014
From: APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS FIRST LIEN COLLATERAL AGENT
Reel/Frame 031897/0348 →
PATENT SECURITY AGREEMENT (ABL) Recorded Jan 2, 2014
From: DELL INC.; APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 031898/0001 →
PATENT SECURITY AGREEMENT (TERM LOAN) Recorded Jan 2, 2014
From: DELL INC.; APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 031899/0261 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 16, 2013
From: HANNAH, PETER DOUGLAS; WILLIS, RODNEY OWEN
To: QUEST SOFTWARE, INC.
Reel/Frame 031212/0747 →
CHANGE OF NAME Recorded Aug 19, 2013
From: QUEST SOFTWARE, INC.
To: DELL SOFTWARE INC.
Reel/Frame 031035/0914 →