IP Library Granted Patent US 12,561,320
Granted Patent B2
US 12,561,320 · App. 18/938,570 · Granted Feb 24, 2026

Identification of primary and foreign keys

Inventors: Thomas Krismayer (Urfahr-Umgebung, AT); Otmar Ertl (Linz, AT)
Assignee: Dynatrace LLC
G06F16/24537G06F16/221
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 12,561,320
App. No.
18/938,570
Granted
Feb 24, 2026
Kind
B2
Abstract

A computer-implemented method is presented for determining primary keys in a table of a database system. The method includes: determining a number of rows in the table; for a given column of the table, generating a probabilistic data structure for the given column, where the probabilistic data structure is partitioned into a plurality of registers and configuration parameters for the probabilistic data structure includes a first recording parameter, base, that controls recording of data into the probabilistic data structure; computing a cardinality estimate for the given column using the probabilistic data structure; computing a ratio between the cardinality estimate for the given column and the number of rows in the table; comparing the ratio to a threshold; and designating the given column as a primary key for the table in response to the ratio being greater than the threshold.

Claims (128)

1 . A computer-implemented method for determining primary keys in a table of a database system, comprising:

determining, by a computer processor, a number of rows in the table;

for a given column of the table, generating, by the computer processor, a probabilistic data structure for the given column, where the probabilistic data structure is partitioned into a plurality of registers and configuration parameters for the probabilistic data structure includes a first recording parameter, base, that controls recording of data into the probabilistic data structure, wherein the probabilistic data structure is updated in accordance with the first recording parameter and a second recording parameter, rate, such that changing a value of the first recording parameter and changing the number of registers sets maximum number of distinct data elements that can be represented by the probabilistic data structure;

computing, by the computer processor, a cardinality estimate for the given column using the probabilistic data structure;

computing, by the computer processor, a ratio between the cardinality estimate for the given column and the number of rows in the table;

comparing, by the computer processor, the ratio to a threshold; and

designating the given column as a primary key for the table in response to the ratio being greater than the threshold.

2 . The method of claim 1 wherein the probabilistic data structure is SetSketch data structure.

3 . The method of claim 1 further comprises repeating the steps for each column of the table.

4 . A computer-implemented method for joining tables in a database system, comprises:

receiving, by a computer processor, an indicator for a first table to be joined;

determining, by the computer processor, a given column of the first table as a primary key;

receiving, by the computer processor, a join operation for joining the first table with a second table in the database system, where the join operation is based on the given column from the first table;

determining foreign keys in the second table relative to the given column designated in the first table of a database system; and

joining, by the computer processor, the first table with the second table according to the join operation and using the foreign keys;

wherein the given column of the first table is determined to be a primary key by determining, by a computer processor, a number of rows in the table;

for a given column of the table, generating, by the computer processor, a probabilistic data structure for the given column, where the probabilistic data structure is partitioned into a plurality of registers and configuration parameters for the probabilistic data structure includes a first recording parameter, base, that controls recording of data into the probabilistic data structure;

computing, by the computer processor, a cardinality estimate for the given column using the probabilistic data structure;

computing, by the computer processor, a ratio between the cardinality estimate for the given column and the number of rows in the table;

comparing, by the computer processor, the ratio to a threshold; and

designating the given column as a primary key for the table in response to the ratio being greater than the threshold; and

wherein the foreign keys in the second table are determined by:

for a first column of the second table, generating, by the computer processor, another probabilistic data structure for the first column, where the another probabilistic data structure is partitioned into a plurality of registers and configuration parameters for the another probabilistic data structure includes a first recording parameter, base, that controls recording of data into the another probabilistic data structure;

computing, by the computer processor, a cardinality estimate for the first column using the another probabilistic data structure;

computing, by the computer processor, an inclusion coefficient between the first column of the second table relative to the given column of the first table based in part on the cardinality estimate for the first column;

comparing, by the computer processor, the inclusion coefficient to a threshold; and

designating the first column of the second table as a foreign key in response to the inclusion coefficient being greater than the threshold.

5 . A computer-implemented method for formulating a join operation in a database system, comprising:

receiving, by a computer processor, an indicator for a first table to be joined;

determining, by the computer processor, a given column of the first table as a primary key by determining, by a computer processor, a number of rows in the table;

for a given column of the table, generating, by the computer processor, a probabilistic data structure for the given column;

computing, by the computer processor, a cardinality estimate for the given column using the probabilistic data structure;

computing, by the computer processor, a ratio between the cardinality estimate for the given column and the number of rows in the table;

comparing, by the computer processor, the ratio to a threshold;

designating the given column as a primary key for the table in response to the ratio being greater than the threshold;

determining, by the computer processor, foreign keys in a second table relative to the given column designated in the first table, where the determination is based in part on the probabilistic data structure;

receiving, by the computer processor, a join operation for joining the first table with the second table in the database system using the foreign keys; and

joining, by the computer processor, the first table with the second table according to the join operation;

wherein determining foreign keys in the second table comprised:

for a first column of the second table, generating, by the computer processor, another probabilistic data structure for the first column, where the another probabilistic data structure is partitioned into a plurality of registers and configuration parameters for the another probabilistic data structure includes a first recording parameter that controls recording of data into the another probabilistic data structure;

computing, by the computer processor, a cardinality estimate for the first column using the another probabilistic data structure;

computing, by the computer processor, an inclusion coefficient between the first column of the second table relative to the given column of the first table based in part on the cardinality estimate for the first column;

comparing, by the computer processor, the inclusion coefficient to a threshold; and

designating the first column of the second table as a foreign key in response to the inclusion coefficient being greater than the threshold.

6 . The method of claim 5 wherein determining foreign key in the second table includes generating another probabilistic data structure for a column of the second table, such that the determination is based on the probabilistic data structure and the another probabilistic data structure.

7 . The method of claim 6 wherein the another probabilistic data structure is same type and has same structure as the probabilistic data structure.

8 . The method of claim 5 further comprises computing, by the computer processor, an inclusion coefficient Φ(B.C j , A.C i ) between the first column of the second table B.C j relative to the given column of the first table A.C i , where the inclusion coefficient iS defined as Φ(B.C j , A.C i )=(|B.C j |+|A.C i |)J/|B.C j |(1+J)′, where |B.C j | is the cardinality estimate for the first column of the second table, |A.C i | is the cardinality of the given column of the first table, and J is Jaccard similarity between the first column of the second table and the given column of the first table.

9 . The method of claim 5 wherein the inclusion coefficient is defined as

Φ

(

B

.

C

j

,

A

.

C

i

)

=

"\[LeftBracketingBar]"

B

.

C

j

A

.

C

i

"\[RightBracketingBar]"

"\[LeftBracketingBar]"

B

.

C

j

"\[RightBracketingBar]"

,

where the cardinality of the intersection between B.C j and A.C i , |B.C j ∩A.C i |, is calculated using the inclusion-exclusion principle.

10 . The method of claim 5 further comprises determining foreign keys in the first table relative to the first column in the second table by

computing, by the computer processor, an inclusion coefficient between the given column of the first table relative to the first column of the second table based in part on the cardinality estimate for the first column and the cardinality estimate for the given column;

comparing, by the computer processor, the inclusion coefficient to a threshold; and

designating the given column of the first table as a foreign key in response to the inclusion coefficient being greater than the threshold.

11 . The method of claim 10 further comprises computing, by the computer processor, an inclusion coefficient is defined as Φ(A.C i , B.C j )=(|A.C i |+|B.C i |)J/|A.C i |(1+J), where |A.C i | is the cardinality estimate for the given column of the first table, |B.C j | is the cardinality of the first column of the second table, and J is Jaccard similarity between the first column of the second table and the given column of the first table.

12 . The method of claim 10 wherein the inclusion coefficient is defined as

Φ

(

B

.

C

j

,

A

.

C

i

)

=

"\[LeftBracketingBar]"

B

.

C

j

A

.

C

i

"\[RightBracketingBar]"

"\[LeftBracketingBar]"

B

.

C

j

"\[RightBracketingBar]"

,

where the cardinality of the intersection between A.C i and B.C j , A.C i ∩B.C j |, is calculated using the inclusion-exclusion principle.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 6, 2024
From: KRISMAYER, THOMAS; ERTL, OTMAR
To: DYNATRACE LLC
Reel/Frame 069154/0777 →
Continuity (2)
Provisional Application 63599008 · Nov 15, 2023
Related Publication 20250156416A1 · May 15, 2025
References Cited (5)
US 10824592B2 · Nazi et al. · 2020 [cited by applicant]
US 20110208748A1 · Chaudhuri · 2011 [cited by examiner]
US 20160055205A1 · Jonathan · 2016 [cited by examiner]
US 20240427768A1 · Kamali · 2024 [cited by examiner]
Azade Nazi et al., “Efficient Estimation of Inclusion Coefficient using Hyper:pgLog Sketches.” Proceedings of the VLDB Endowment, vol. 11, No. 10 Jun. 2018. [cited by applicant]