IP Library Granted Patent US 9,002,902
Granted Patent B2
US 9,002,902 · App. 13/603,758 · Granted Apr 7, 2015

Techniques for constructing minimum supersets of test data from relational databases

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,002,902
App. No.
13/603,758
Granted
Apr 7, 2015
Kind
B2
Abstract

A computer-implemented method is provided for constructing a minimum superset of data that complies with referential completeness as well as other specified data relationships. Given extraction criteria for the data, an iterative process analyzes the database for records to be included in the minimal superset. The iterative process includes: selecting a given table from a listing of tables implicated by the extraction criteria; identifying tables in the relational database having either a parent or a child relationship with the given table; evaluating concurrently and asynchronously each of the identified tables; and repeating these steps for each of the tables in the listing of tables.

Claims (42)

1. A computer-implemented method for constructing a minimum superset of data from a relational database, comprising:

receiving an input data set;

compiling a listing of tables in a relational database, where each table in the listing of tables stores data from the input data set;

creating a bundle table for each of the tables in the listing of tables, where each bundle table is comprised of an identification key from a corresponding table in the listing of tables and includes applicable records from the input data set;

creating a registry table for each of the tables in the listing of tables, where each registry table is comprised of an identification key from a corresponding table in the listing of table;

a) selecting a given table in the listing of tables;

b) identifying other tables in the listing of tables that correspond to the given table;

c) merging the other tables with the given table to form a selected table;

d) removing the selected table from the listing of tables;

e) determining, for the selected table, related tables having either a parent or child relationship with the selected table in the relational database;

f) for each of the related tables, determining, whether a corresponding registry table has been created and creating a corresponding registry table in response to the determination that a registry table has not yet been created;

g) for each table having a parent relationship with the selected table, creating a parent bundle table, inserting the identification keys from the parent bundle table into the corresponding registry table for the parent table, and adding the parent bundle table to the listing of tables, where parent bundle table includes identification keys from the parent table for which there occurs records in the selected table with a matching foreign key and an identification key in the corresponding bundle table for the selected table but do not occur in a corresponding registry table for the parent table;

h) for each table having a child relationship with the selected table, creating a child bundle table, inserting the identification keys from the child bundle table into the corresponding registry table for the child table, and adding the child bundle table to the listing of tables, where the child bundle table includes identification keys from records in the child table having a foreign key that matches a primary key in the selected table and an identification key in the corresponding bundle table for the selected table but do not occur in a corresponding registry table for the child table; and

repeating steps a) through h) until the listing of tables is empty, where each of the steps are executed by a computer processor of a computing device.

2. The method of claim 1 further comprises creating a parent bundle table using a join operation in the relational database.

3. The method of claim 2 further comprises executing the join operation on a database server that is distinct from the computing device.

4. The method of claim 1 further comprises creating a child bundle table using a join operation in the relational database.

5. The method of claim 4 further comprises executing the join operation on a database server that is distinct from the computing device.

6. The method of claim 1 further comprises compiling, after the listing of tables is empty, the registry tables to form a minimum superset of data for the relational database.

7. The method of claim 4 wherein creating a parent bundle table further comprises retrieving records in the parent table that match identification keys in the parent bundle table and inserting data from the retrieved records into the corresponding registry table.

8. The method of claim 4 wherein creating a child bundle table further comprises retrieving records in the child table that match identification keys in the child bundle table and inserting data from the retrieved records into the corresponding registry table.

9. The method of claim 1 wherein the steps g) and h) are executed asynchronously from remainder of steps.

10. A computer-implemented method for constructing a minimum superset of test data from a relational database, comprising:

receiving an input data set;

compiling a listing of tables in a relational database, where each table in the listing of tables stores data from the input data set;

creating a bundle table for each of the tables in the listing of tables, where each bundle table is comprised of a primary key from a corresponding table in the listing of tables and includes applicable records from the input data set;

creating a registry table for each of the tables in the listing of tables, where each registry table is comprised of a primary key from a corresponding table in the listing of table;

a) selecting a given table in the listing of tables;

b) removing the selected table from the listing of tables;

c) determining, for the selected table, related tables having either a parent or child relationship with the selected table in the relational database;

d) for each of the related tables, determining, whether a corresponding registry table has been created and creating a corresponding registry table in response to the determination that a registry table has not yet been created;

e) for each table having a parent relationship with the selected table, creating a parent bundle table, inserting the primary keys from the parent bundle table into the corresponding registry table for the parent table, and adding the parent bundle table to the listing of tables, where parent bundle table includes primary keys from the parent table for which there occurs records in the selected table with a matching foreign key and a primary key in the corresponding bundle tables for the selected table but do not occur in a corresponding registry table for the parent table;

f) for each table having a child relationship with the selected table, creating a child bundle table, inserting the primary keys from the child bundle table into the corresponding registry table for the child table, and adding the child bundle table to the listing of tables, where the child bundle table include primary keys from records in the child table having a foreign key that matches a primary key in the corresponding bundle tables for the selected table but do not occur in a corresponding registry table for the child table;

repeating steps a) through f) until the listing of tables is empty, where each of the steps are executed by a computer processor of a computing device; and

compiling, after the listing of tables is empty, the registry tables to form a minimum superset of test data for the relational database.

11. The method of claim 10 wherein selecting a given table further comprises identifying other tables in the listing of tables that correspond to the given table and merging the other tables with the given table to form a selected table.

12. The method of claim 10 further comprises creating a parent bundle table using a join operation in the relational database.

13. The method of claim 12 further comprises executing the join operation on a database server that is distinct from the computing device.

14. The method of claim 10 further comprises creating a child bundle table using a join operation in the relational database.

15. The method of claim 14 further comprises executing the join operation on a database server that is distinct from the computing device.

16. The method of claim 11 wherein creating a parent bundle table further comprises retrieving records in the parent table that match primary keys in the parent bundle table and inserting data from the retrieved records into the corresponding registry table.

17. The method of claim 11 wherein creating a child bundle table further comprises retrieving records in the child table that match identification keys in the child bundle table and inserting data from the retrieved records into the corresponding registry table.

Assignments (18)
GRANT OF FIRST LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 13, 2024
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 069352/0628 →
GRANT OF SECOND LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 13, 2024
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 069352/0568 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052842/0277) Recorded Aug 5, 2024
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: BMC SOFTWARE, INC. (AS SUCCESSOR-BY-MERGER TO COMPUWARE CORPORATION)
Reel/Frame 068316/0868 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052842/0166) Recorded Aug 5, 2024
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: BMC SOFTWARE, INC. (AS SUCCESSOR-BY-MERGER TO COMPUWARE CORPORATION)
Reel/Frame 068316/0566 →
OMNIBUS ASSIGNMENT OF SECURITY INTERESTS IN PATENT COLLATERAL Recorded Mar 4, 2024
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS RESIGNING COLLATERAL AGENT
To: GOLDMAN SACHS BANK USA, AS SUCCESSOR COLLATERAL AGENT
Reel/Frame 066729/0889 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 1, 2024
From: ALTER DOMUS (US) LLC
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 066567/0283 →
GRANT OF SECOND LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Sep 30, 2021
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 057683/0582 →
MERGER Recorded Apr 13, 2021
From: COMPUWARE CORPORATION
To: BMC SOFTWARE, INC.
Reel/Frame 055906/0332 →
SECURITY INTEREST Recorded Jun 4, 2020
From: COMPUWARE CORPORATION; BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE, AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 053467/0434 →
SECURITY INTEREST Recorded Jun 4, 2020
From: COMPUWARE CORPORATION
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052842/0277 →
SECURITY INTEREST Recorded Jun 4, 2020
From: COMPUWARE CORPORATION
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052842/0166 →
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT R/F 46690/0954 Recorded Jun 2, 2020
From: JEFFERIES FINANCE LLC
To: COMPUWARE CORPORATION
Reel/Frame 052806/0847 →
SECURITY INTEREST Recorded Aug 24, 2018
From: COMPUWARE CORPORATION
To: JEFFERIES FINANCE LLC
Reel/Frame 046690/0954 →
RELEASE OF FIRST LIEN PATENT SECURITY AGREEMENT RECORDED AT REEL\FRAME 035200\0973 AND 035200\0955 Recorded Aug 23, 2018
From: JEFFERIES FINANCE LLC
To: DYNATRACE LLC; COMPUWARE CORPORATION
Reel/Frame 046922/0886 →
TERMINATION OF SECURITY INTEREST IN PATENTS AT REEL/FRAME NO. 035201/0065 Recorded Feb 14, 2018
From: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
To: COMPUWARE CORPORATION
Reel/Frame 045325/0384 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Mar 13, 2015
From: COMPUWARE CORPORATION
To: JEFFERIES FINANCE, LLC
Reel/Frame 035201/0065 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Mar 13, 2015
From: COMPUWARE CORPORATION
To: JEFFERIES FINANCE, LLC
Reel/Frame 035200/0973 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 5, 2012
From: LIPIN, ANDREW
To: COMPUWARE CORPORATION
Reel/Frame 028898/0696 →