IP Library › Granted Patent US 8,935,234
Granted Patent B2
US 8,935,234 · App. 13/603,126 · Granted Jan 13, 2015

Referentially-complete data subsetting using relational databases

Inventors: Ravi Pattabhi (Acton, MA); Balasubrahmanyam Kuchibhotla (San Ramon, CA)
Assignee: Oracle International Corporation
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 8,935,234
App. No.
13/603,126
Granted
Jan 13, 2015
Kind
B2
Abstract

A method, system, and computer program product for relational database management. The method constructs a referentially-complete target subset database from a source database by first estimating the expected size of the target subset database based on application of one or more subsetting rules. If the estimated size needs reduction, the user can modify the subsetting rules, and then modules are invoked to receive the modified subset rules. The method continues by generating a subsetting execution plan by applying the user-modified subset rules to the source database, and then modules process the generated execution plan, which processing results in storage of a referentially-complete target subset database. The user can influence the construction of the execution plan by suggesting an execution model to use during processing of the subsetting execution plan. Techniques estimate the expected size by constructing a directed graph wherein edges in the directed graph represent relationships between database tables.

Claims (37)

1. A computer implemented method for constructing a referentially-complete target subset database from a source database, the method comprising:

estimating an expected size of the target subset database based at least in part on application of a set of database subset rules on the source database, wherein the set of database subset rules comprises one or more database subset rules specifying one or more portions of the source database to be included in the target subset database;

determining if the expected size of the target subset database meets a target subset database size goal, wherein if the goal is not met:

modifying the set of database subset rules based at least in part on the expected size of the target subset database, such that application of the modified set of database subset rules on the source database results in the target subset database having a second expected size that is different from the expected size;

creating a subsetting execution plan by applying the modified set of database subset rules to the source database; and

generating, by a computer, the referentially-complete target subset database by applying the selected subset execution model to the subsetting execution plan.

2. The method of claim 1 , wherein estimating the expected size comprises creating in a computer memory, a directed graph comprising table nodes, wherein two table nodes in the directed graph represent respective relational database tables, and an edge in the directed graph represents a relationship between the two table nodes.

3. The method of claim 1 , wherein a database subset rule of the one or more database subset rules comprises at least one of, a name of a table to include, a Boolean operation to apply to a row of a table, and a name of a table to exclude.

4. The method of claim 1 , further comprising receiving a selected subset execution model, the selected subset execution model to describe a construction technique used to create the target subset database.

5. The method of claim 2 , further comprising traversing the directed graph from a first table node to a second table node, wherein the act of traversing comprises calculating an impact of projecting a first node onto a second node, based at least in part on the edge.

6. The method of claim 1 , wherein the selected subset execution model is an export model.

7. The method of claim 1 , wherein the selected subset execution model is an in-place delete execution model.

8. A computer system for constructing a referentially-complete target subset database from a source database, comprising:

a computer processor to execute a set of program code instructions; and

a memory to hold the program code instructions, in which the program code instructions comprises program code to perform,

estimating an expected size of the target subset database based at least in part on application of a set of database subset rules on the source database, wherein the set of database subset rules comprises one or more database subset rules specifying one or more portions of the source database to be included in the target subset database;

determining if the expected size of the target subset database meets a target subset database size goal, wherein if the goal is not met:

modifying the set of database subset rules based at least in part on the expected size of the target subset database, such that application of the modified set of database subset rules on the source database results in the target subset database having a second expected size that is different from the expected size;

creating a subsetting execution plan by applying the modified set of database subset rules to the source database; and

generating, by a computer, the referentially-complete target subset database by applying the selected subset execution model to the subsetting execution plan.

9. The computer system of claim 8 , wherein estimating the expected size comprises creating in a computer memory, a directed graph comprising table nodes, wherein two table nodes in the directed graph represent respective relational database tables, and an edge in the directed graph represents a relationship between the two table nodes.

10. The computer system of claim 8 , wherein a database subset rule of the one or more database subset rules comprises at least one of, a name of a table to include, a Boolean operation to apply to a row of a table, and a name of a table to exclude.

11. The computer system of claim 8 , wherein the program code instructions further comprising program code for receiving a selected subset execution model, the selected subset execution model to describe a construction technique used to create the target subset database.

12. The computer system of claim 9 , wherein the program code instructions further comprising program code for traversing the directed graph from a first table node to a second table node, wherein the act of traversing comprises calculating an impact of projecting a first node onto a second node, based at least in part on the edge.

13. The computer system of claim 8 , wherein the selected subset execution model is an export model.

14. The computer system of claim 8 , wherein the selected subset execution model is an in-place delete execution model.

15. A computer program product embodied in a non-transitory computer readable medium, the computer readable medium having stored thereon a sequence of instructions which, when executed by a processor causes the processor to execute a process to construct a referentially-complete target subset database from a source database, the process comprising:

estimating an expected size of the target subset database based at least in part on application of a set of database subset rules on the source database, wherein the set of database subset rules comprises one or more database subset rules specifying one or more portions of the source database to be included in the target subset database;

determining if the expected size of the target subset database meets a target subset database size goal, wherein if the goal is not met:

modifying the set of database subset rules based at least in part on the expected size of the target subset database, such that application of the modified set of database subset rules on the source database results in the target subset database having a second expected size that is different from the expected size;

creating a subsetting execution plan by applying the modified set of database subset rules to the source database; and

generating, by a computer, the referentially-complete target subset database by applying the selected subset execution model to the subsetting execution plan.

16. The computer program product of claim 15 , wherein estimating the expected size comprises creating in a computer memory, a directed graph comprising table nodes, wherein two table nodes in the directed graph represent respective relational database tables, and an edge in the directed graph represents a relationship between the two table nodes.

17. The computer program product of claim 15 , wherein a database subset rule of the one or more database subset rules comprises at least one of, a name of a table to include, a Boolean operation to apply to a row of a table, and a name of a table to exclude.

18. The computer program product of claim 15 , wherein the computer readable medium further comprising instructions for receiving a selected subset execution model, the selected subset execution model to describe a construction technique used to create the target subset database.

19. The computer program product of claim 16 , wherein the computer readable medium further comprising instructions for traversing the directed graph from a first table node to a second table node, wherein the act of traversing comprises calculating an impact of projecting a first node onto a second node, based at least in part on the edge.

20. The computer program product of claim 15 , wherein the selected subset execution model is an export model.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 4, 2012
From: PATTABHI, RAVI; KUCHIBHOTLA, BALASUBRAHMANYAM
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 028895/0053 →
Continuity (1)
Related Publication 20140067867A1 · Mar 6, 2014