IP Library Granted Patent US 10,942,908
Granted Patent B2
US 10,942,908 · App. 16/247,345 · Granted Mar 9, 2021

Primary key determination

Inventor: Mahsa Imani (Vancouver, CA)
Assignee: BUSINESS OBJECTS SOFTWARE LTD.
G06F16/221G06F16/2282G06F16/288
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 10,942,908
App. No.
16/247,345
Granted
Mar 9, 2021
Kind
B2
Abstract

A database system includes a first table comprising a plurality of columns and a plurality of column values associated with each of the plurality of columns. For each of the plurality of columns, a structural relationship is determined with each other of the plurality of columns based on the plurality of column values associated with each of the plurality of columns. One or more of the plurality of columns comprising a primary key of the first table are determined based on the structural relationships.

Claims (57)

1. A database system comprising:

a memory including a first table comprising a plurality of columns and a plurality of column values associated with each of the plurality of columns; and

a processor to execute processor-executable program code to:

for each of the plurality of columns, determine a structural relationship with each other of the plurality of columns based on the plurality of column values associated with each of the plurality of columns; and

determine one or more of the plurality of columns comprising a primary key of the first table based on the structural relationships.

2. A database system according to claim 1 , wherein the structural relationships comprise at least one of one-to-one, one-to-many, and many-to-one.

3. A database system according to claim 1 , the processor further to execute processor-executable program code to:

determine a cardinality of each of the plurality of columns based on the plurality of column values associated with each of the plurality of columns,

wherein determination of the primary key of the first table is based on the structural relationships and the determined cardinalities.

4. A database system according to claim 3 , wherein determination of the one or more of the plurality of columns comprising the primary key of the first table comprises:

generation of a list of the plurality of columns, ordered by descending cardinality;

determination of whether a first column of the list has a one-to-one or many-to-one relationship with a second column ordered below the first column in the list; and

if the first column of the plurality of columns has a one-to-one or one-to-many relationship with the second column of the plurality of columns, determine that the first column is a portion of the primary key and the second column is not a portion of the primary key.

5. A database system according to claim 1 , wherein determination of the one or more of the plurality of columns comprising the primary key of the first table comprises:

determination of whether a first column of the plurality of columns has a one-to-one or many-to-one relationship with a second column of the plurality of columns; and

if the first column of the plurality of columns has a one-to-one or one-to-many relationship with the second column of the plurality of columns, determination that the first column is a portion of the primary key and the second column is not a portion of the primary key.

6. A database system according to claim 1 , the processor further to execute processor-executable program code to:

determine a plurality of combinations of the one or more of the plurality of columns comprising a primary key;

for each of the plurality of combinations, determine a second structural relationship with each other of the plurality of columns; and

determine a second one or more of the plurality of columns comprising a second primary key of the first table based on the second structural relationships.

7. A computer-implemented method for a database system comprising a first table comprising a plurality of columns and a plurality of column values associated with each of the plurality of columns, the method comprising:

for each of the plurality of columns, determining a structural relationship with each other of the plurality of columns based on the plurality of column values associated with each of the plurality of columns; and

determining one or more of the plurality of columns comprising a primary key of the first table based on the structural relationships.

8. A computer-implemented method according to claim 7 , wherein the structural relationships comprise at least one of one-to-one, one-to-many, and many-to-one.

9. A computer-implemented method according to claim 7 , further comprising:

determining a cardinality of each of the plurality of columns based on the plurality of column values associated with each of the plurality of columns,

wherein determining the primary key of the first table is based on the structural relationships and the determined cardinalities.

10. A computer-implemented method according to claim 9 , wherein determining the one or more of the plurality of columns comprising the primary key of the first table comprises:

generating a list of the plurality of columns, ordered by descending cardinality;

determining whether a first column of the list has a one-to-one or many-to-one relationship with a second column ordered below the first column in the list; and

if the first column of the plurality of columns has a one-to-one or one-to-many relationship with the second column of the plurality of columns, determining that the first column is a portion of the primary key and the second column is not a portion of the primary key.

11. A computer-implemented method according to claim 7 , wherein determining the one or more of the plurality of columns comprising the primary key of the first table comprises:

determining whether a first column of the plurality of columns has a one-to-one or many-to-one relationship with a second column of the plurality of columns; and

if the first column of the plurality of columns has a one-to-one or one-to-many relationship with the second column of the plurality of columns, determining that the first column is a portion of the primary key and the second column is not a portion of the primary key.

12. A computer-implemented method according to claim 7 , further comprising:

determining a plurality of combinations of the one or more of the plurality of columns comprising a primary key;

for each of the plurality of combinations, determining a second structural relationship with each other of the plurality of columns; and

determining a second one or more of the plurality of columns comprising a second primary key of the first table based on the second structural relationships.

13. A non-transitory computer-readable medium storing processor-executable process steps which, when executed by a computing device, cause the computing device to:

access a first table comprising a plurality of columns and a plurality of column values associated with each of the plurality of columns;

for each of the plurality of columns, determine a structural relationship with each other of the plurality of columns based on the plurality of column values associated with each of the plurality of columns; and

determine one or more of the plurality of columns comprising a primary key of the first table based on the structural relationships.

14. A computer-readable medium according to claim 13 , wherein the structural relationships comprise at least one of one-to-one, one-to-many, and many-to-one.

15. A computer-readable medium according to claim 14 , the processor-executable process steps which, when executed by a computing device, cause the computing device to:

determine a cardinality of each of the plurality of columns based on the plurality of column values associated with each of the plurality of columns,

wherein determination of the primary key of the first table is based on the structural relationships and the determined cardinalities.

16. A computer-readable medium according to claim 15 , wherein determination of the one or more of the plurality of columns comprising the primary key of the first table comprises:

generation of a list of the plurality of columns, ordered by descending cardinality;

determination of whether a first column of the list has a one-to-one or many-to-one relationship with a second column ordered below the first column in the list; and

if the first column of the plurality of columns has a one-to-one or one-to-many relationship with the second column of the plurality of columns, determination that the first column is a portion of the primary key and the second column is not a portion of the primary key.

17. A computer-readable medium according to claim 13 , wherein determination of the one or more of the plurality of columns comprising the primary key of the first table comprises:

determination of whether a first column of the plurality of columns has a one-to-one or many-to-one relationship with a second column of the plurality of columns; and

if the first column of the plurality of columns has a one-to-one or one-to-many relationship with the second column of the plurality of columns, determination that the first column is a portion of the primary key and the second column is not a portion of the primary key.

18. A computer-readable medium according to claim 13 , the processor-executable process steps which, when executed by a computing device, cause the computing device to:

determine a plurality of combinations of the one or more of the plurality of columns comprising a primary key;

for each of the plurality of combinations, determine a second structural relationship with each other of the plurality of columns; and

determine a second one or more of the plurality of columns comprising a second primary key of the first table based on the second structural relationships.

Assignments (2)
CHANGE OF NAME Recorded Jan 26, 2026
From: BUSINESS OBJECTS SOFTWARE LIMITED
To: SAP IRELAND LIMITED
Reel/Frame 074510/0354 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 14, 2019
From: IMANI, MAHSA
To: BUSINESS OBJECTS SOFTWARE LTD
Reel/Frame 047993/0366 →
Continuity (1)
Related Publication 20200226111A1 · Jul 16, 2020