Database Constraint Processing via Pre-Sorted Index Records

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current database management systems face inefficiencies in load-time referential constraint processing due to the time-consuming process of probing primary key indexes, especially when dealing with large tables, which affects the overall load time and integrity of database entities.

Innovation Solution

Generating and sorting primary and constraint index records during database table load operations to rapidly identify and delete rows that fail referential integrity checks, thereby avoiding the need for costly primary key index probes and ensuring constraint integrity.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If primary key index probes are used to verify referential integrity during load operations, then constraint integrity is ensured, but load time increases significantly

Engineering Contradiction:
Improveconstraint integrityVSAvoidload time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent pre-sorts child table rows by foreign key value before loading them into the database. This preliminary sorting action groups rows with the same foreign key together, enabling batch processing during constraint verification. By performing this sorting before the load operation, the system avoids the need for time-consuming individual index probes during the actual loading process, thus reducing load time while maintaining integrity checks.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent merges the constraint verification process with the data loading process by processing child table rows in batches grouped by foreign key value. Instead of verifying constraints individually for each row through index probes, the system combines multiple rows with the same foreign key into a single processing unit, allowing batch validation against the parent table. This merging approach significantly reduces the number of index probes required while ensuring referential integrity.

Inventive Principle:
Principle #5Merging (Combining)

2Reliability

If individual row constraint verification is performed during load operations, then referential integrity is maintained, but processing speed decreases

Engineering Contradiction:
Improvereferential integrityVSAvoidprocessing speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent performs preliminary sorting of child table rows by foreign key value before the load operation. This pre-sorting groups rows that will be processed together, enabling batch constraint verification. By preparing the data structure in advance, the system can process multiple rows simultaneously rather than individually, significantly improving processing speed while maintaining referential integrity through batched index probes.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent processes child table rows in batches rather than individually, performing partial verification actions on groups of rows with the same foreign key. Instead of verifying each row's constraint individually (excessive action), the system groups rows and performs a single index probe per group, achieving the necessary verification with fewer operations (partial action), thus improving processing speed.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS9449067B2Constraint processing
Publication Date: 2016.09.20 BMC SOFTWARE INC
  • US9449067B2 patent drawing
  • US9449067B2 patent drawing
  • US9449067B2 patent drawing

AI summary

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.