IP Library › Granted Patent US 9,286,393
Granted Patent B2
US 9,286,393 · App. 13/794,737 · Granted Mar 15, 2016

Performing a function on rows of data determined from transitive relationships between columns

Inventors: Rafal P. Konik (Oronoco, MN); Roger A. Mittelstadt (Byron, MN); Brian R. Muras (Rochester, MN); Mark W. Theuer (Rochester, MN)
Assignee: International Business Machines Corporation
G06F17/30864G06F17/30286G06F17/30477
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,286,393
App. No.
13/794,737
Granted
Mar 15, 2016
Kind
B2
Abstract

In an embodiment, a request is received that specifies a function and a specified key value. Rows from all tables that are accessible from the specified key value are transitively searched, wherein the transitively searching further comprises finding values in a plurality of pairs of columns, wherein found rows that are found by the transitively searching comprise values in a respective first column of the plurality of pairs of columns that satisfy a dependency relationship with values in a respective second column of the plurality of pairs of columns. The function is executed against only the found rows.

Claims (39)

1. A non-transitory computer-readable storage medium encoded with instructions, wherein the instructions when executed comprise:

receiving a request that specifies a function to be performed in a database having a plurality of tables and at least one specified key value for a specified key column;

transitively searching rows from all tables of said database that are accessible from the specified key value, wherein the transitively searching further comprises finding values in a plurality of pairs of key columns by iteratively:

(a) finding one or more rows in a current table, each found row containing a key value in a key column from a set of key values for the key column,

(b) determining at least one respective pair of key columns, each respective pair of key columns comprising a respective first key column in the current table and a respective second key column in a next table, wherein values in the respective first key column of the plurality of pairs of key columns in the current table satisfy a dependency relationship with values in the respective second key column of the plurality of pairs of key columns in the next table, wherein at least one key column in the respective pair of key columns is not specified by said request,

(c) determining a set of key values for the respective second key column, the set of key values containing each value in the respective first key column of each found row in the current table, and

(d) repeating (a)-(c) for the next table; and

executing the function against only the found rows.

2. The non-transitory computer-readable storage medium of claim 1 , wherein the respective first key column comprises a respective primary key and the respective second key column comprises a respective foreign key.

3. The non-transitory computer-readable storage medium of claim 1 , further comprising:

inferring the dependency relationship between the plurality of pairs of key columns from join predicates of received queries.

4. The non-transitory computer-readable storage medium of claim 1 , further comprising:

inferring a dependency relationship between the plurality of pairs of key columns from referential constraints of the plurality of pairs of key columns.

5. The non-transitory computer-readable storage medium of claim 1 , wherein the executing the function against only the found rows comprises performing the function that is selected from a group consisting of: creating a database that comprises data values that comprise only the found rows, enabling row level access control of only the found rows, encrypting only the found rows, granting authority to only the found rows, and altering the authority to only the found rows.

6. The non-transitory computer-readable storage medium of claim 1 , wherein the transitively searching further comprises:

finding the values in a plurality of pairs of key columns, wherein found rows that are found by the transitively searching comprise values in a respective first key column of the plurality of pairs of key columns that match values in a respective second key column of the plurality of pairs of key columns.

7. The non-transitory computer-readable storage medium of claim 1 , further comprising:

determining the plurality of pairs of key columns by searching for the plurality of pairs of key columns that comprise rows that comprise the specified key value.

8. The non-transitory computer-readable storage medium of claim 1 , wherein the executing the function against only the found rows comprises granting authority to indexes that access the found rows.

9. A computer comprising:

a processor; and

memory communicatively connected to the processor, wherein the memory is encoded with instructions, and wherein the instructions when executed by the processor comprise

receiving a request that specifies a function to be performed in a database having a plurality of tables and at least one specified key value for a specified key column;

determining a plurality of pairs of columns by searching for the plurality of pairs of columns that comprise rows that comprise the specified key value,

transitively searching rows from all tables of said database that are accessible from the specified key value, wherein the transitively searching further comprises finding values in a plurality of pairs of key columns by iteratively:

(a) finding one or more rows in a current table, each found row containing a key value in a key column from a set of key values for the key column,

(b) determining at least one respective pair of key columns, each respective pair of key columns comprising a respective first key column in the current table and a respective second key column in a next table, wherein values in the respective first key column of the plurality of pairs of key columns in the current table satisfy a dependency relationship with values in the respective second key column of the plurality of pairs of key columns in the next table, wherein at least one key column in the respective pair of key columns is not specified by said request,

(c) determining a set of key values for the respective second key column, the set of key values containing each value in the respective first key column of each found row in the current table, and

(d) repeating (a)-(c) for the next table; and

executing the function against only the found rows.

10. The computer of claim 9 , wherein the respective first key column comprises a respective primary key and the respective second key column comprises a respective foreign key.

11. The computer of claim 9 , wherein the instructions further comprise:

inferring the dependency relationship between the plurality of pairs of key columns from join predicates of received queries.

12. The computer of claim 9 , wherein the instructions further comprise:

inferring a dependency relationship between the plurality of pairs of key columns from referential constraints of the plurality of pairs of key columns.

13. The computer of claim 9 , wherein the executing the function against only the found rows comprises performing the function that is selected from a group consisting of: creating a database that comprises data values that comprise only the found rows, enabling row level access control of only the found rows, encrypting only the found rows, granting authority to only the found rows, and altering the authority to only the found rows.

14. The computer of claim 9 , wherein the transitively searching further comprises:

finding the values in a plurality of pairs of key columns, wherein found rows that are found by the transitively searching comprise values in a respective first key column of the plurality of pairs of key columns that match values in a respective second key column of the plurality of pairs of key columns.

15. The computer of claim 9 , wherein the executing the function against only the found rows comprises granting authority to indexes that access the found rows.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 7, 2013
From: KONIK, RAFAL P.; MITTELSTADT, ROGER A.; MURAS, BRIAN R.; THEUER, MARK W.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 031358/0133 →
Continuity (2)
Continuation 13718097 · Dec 18, 2012
Related Publication 20140172908A1 · Jun 19, 2014