IP Library Granted Patent US 7,930,291
Granted Patent B2
US 7,930,291 · App. 10/871,160 · Granted Apr 19, 2011

Constraint processing

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 7,930,291
App. No.
10/871,160
Granted
Apr 19, 2011
Kind
B2
Abstract

Constraint processing for a relational database generates primary (e.g., based on primary key values) and constraint index records (e.g., based on foreign key values) during table load operations that are then sorted in a manner that rapidly and unambiguously identifies rows that fail the specified constraint test. Rows so identified may be deleted to maintain the constraint (e.g., referential) integrity of a child table. In one case, child table row data may be processed in constraint key order, eliminating the need first load the child table with row data and then delete those rows that subsequently fail the integrity test.

Claims (27)

1. A method to process a constraint in a database having a parent table and a child table wherein the parent table and the child table are related through the constraint, comprising:

generating a first index record for each loaded row of data associated with the parent table, each of said first index records including a first table identifier value identifying the parent table, a first key value associated with the row of data and a first flag value;

generating a second index record for each loaded row of data associated with the child table, each of said second index records including a second table identifier value identifying the parent table, a second key value associated with the row of data and a second flag value;

sorting the first index records and the second index records so that all second index records having the same second table identifier value and second key value are grouped together and, collectively, immediately adjacent to zero or one first index record whose first table identifier value corresponds to the second table identifier of the second index records and further wherein the first key value of the first index record corresponds to the second key value of the second index records; and

deleting those child table rows associated with each second index record whose second table identifier value and second key value do not match the first table identifier and first key value of an immediately prior first index record.

2. The method of claim 1 , wherein the constraint comprises a referential constraint.

3. The method of claim 1 , wherein the parent table and the child table comprise the same table.

4. The method of claim 1 , wherein the acts of generating a first index record, generating a second index record and sorting are performed during a child table load operation.

5. The method of claim 4 , wherein the child table load operation comprises a load resume operation.

6. The method of claim 4 , wherein the child table load operation comprises a load replace operation.

7. The method of claim 1 , wherein the first flag value is zero.

8. The method of claim 7 , wherein the second flag value is greater than zero.

9. The method of claim 1 , wherein the act of sorting further comprises:

sorting the first index records based on a combination of the first table identifier values, the first key values and the first flag values; and

sorting the second index records based on a combination of the second table identifier values, the second key values and the second flag values, wherein

the acts of sorting jointly sorts the first index records and the second index records into a sorted list.

10. The method of claim 9 , wherein the act of deleting comprises:

identifying a first index record in the sorted list;

identifying a next index record in the sorted list;

marking the table row associated with the next index record for deletion if the next index record is a second index record and the second table identifier value and the second key value of the next index record do not match the first table identifier value and the first key value of the identified first index record; and

repeating the acts of identifying a next index record and marking until the next index record comprises another first index record.

11. The method of claim 10 , further comprising repeating the acts of:

identifying a next index record;

marking the table row associated with the next index record; and

repeating until all entries in the sorted list have been processed.

12. A program storage device readable by a machine comprising instructions for causing a programmable control device to perform the method of claim 1 .

13. A program storage device readable by a machine comprising instructions for causing a programmable control device to perform any one of claims 2 - 11 .

Assignments (13)
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 (052854/0139) Recorded Aug 6, 2024
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 068339/0617 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052844/0646) Recorded Aug 6, 2024
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 068339/0408 →
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 →
SECURITY INTEREST Recorded Jun 4, 2020
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052854/0139 →
SECURITY INTEREST Recorded Jun 4, 2020
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052844/0646 →
RELEASE OF PATENTS Recorded Oct 5, 2018
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.; BMC ACQUISITION L.L.C.
Reel/Frame 047198/0468 →
SECURITY INTEREST Recorded Oct 2, 2018
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE, AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 047185/0744 →
SECURITY AGREEMENT Recorded Sep 11, 2013
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 031204/0225 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 18, 2004
From: BLAICHER, CHRISTOPHER Y.; TENBERG, KERRY C.; BRIGHT, RANDOL K.
To: BMC SOFTWARE, INC.
Reel/Frame 015497/0671 →