IP Library Granted Patent US 12,254,417
Granted Patent B2
US 12,254,417 · App. 17/171,234 · Granted Mar 18, 2025

Automatically validating decision tables

Inventors: Luca Molteni (Milan, IT); Matteo Mortari (Milan, IT)
Assignee: Red Hat, Inc.
G06N5/01
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,254,417
App. No.
17/171,234
Granted
Mar 18, 2025
Kind
B2
Abstract

Decision tables can be automatically validated on a computer according to some examples. In one example, a system can determine a first set of values associated with a first column of a decision table and a second set of values associated with a second column of the decision table. The system can then determine that each respective value in the first set of values has a one-to-one relationship with a corresponding value in the second set of values. Based on determining that each respective value in the first set of values has the one-to-one relationship, the system determines that the first column and second column violate a third normal form (3NF) constraint. The system may then automatically rearrange the first and second columns into separate decision tables that comply with the 3NF constraint.

Claims (60)

1. A system comprising:

a processor; and

a memory including instructions that are executable by the processor for causing the processor to:

execute an iterative process for validating a decision table comprising decision logic for a software program, wherein an iteration of the iterative process involves:

determining a first plurality of values associated with a first column of the decision table and a second plurality of values associated with a second column of the decision table;

determining that each respective value in the first plurality of values has a one-to-one relationship with a corresponding value in the second plurality of values;

based on determining that each respective value in the first plurality of values has the one-to-one relationship, determining that the first column and second column violate a third normal form (3NF) constraint; and

based on determining that the first column and the second column violate the 3NF constraint, automatically reorganizing the first column and the second column into separate decision tables that comply with the 3NF constraint; and

after validating the decision table, execute the software program based on the separate decision tables, the separate decision tables being usable in place of the decision table to reduce logical inconsistencies associated with software malfunctions.

2. The system of claim 1 , wherein the instructions are further executable by the processor for causing the processor to:

for each respective value in the first plurality of values:

identify one or more entries in the decision table that include cells associated with the respective value in the first column;

determine that the one or more entries only have the corresponding value in the second plurality of values associated with the second column; and

based on determining that the one or more entries only have the corresponding value in the second plurality of values, flag the respective value as having the one-to-one relationship.

3. The system of claim 1 , wherein the first plurality of values are a first plurality of value ranges.

4. The system of claim 3 , wherein the second plurality of values are a second plurality of value ranges.

5. The system of claim 1 , wherein the iterative process is configured for analyzing multiple pairs of columns in the decision table to determine whether each pair of columns violates the 3NF constraint, each pair of columns being analyzed in a separate iteration of the iterative process and being different from other pairs of columns analyzed during the iterative process.

6. The system of claim 1 , wherein the first column and the second column are input columns having non-key values in the decision table, and wherein the instructions are further executable by the processor for causing the processor to output a notification indicating that there is a dependency relationship between the first column and the second column.

7. The system of claim 1 , wherein the instructions are further executable by the processor for causing the processor to execute another iteration of the iterative process, involving:

selecting a pair of columns from the decision table;

determining that a one-to-many relationship exists between a group of values associated with the pair of columns, such that a single value associated with one column of the pair of columns has multiple corresponding values associated with another column of the pair of columns; and

based on determining that the one-to-many relationship exists between the group of values, generating a notification indicating that the pair of columns complies with the 3NF constraint.

8. A method comprising:

determining, by a processor, a first plurality of values associated with a first column of a decision table and a second plurality of values associated with a second column of the decision table, wherein the decision table includes decision logic for a software program;

determining, by the processor, that each respective value in the first plurality of values has a one-to-one relationship with a corresponding value in the second plurality of values;

based on determining that each respective value in the first plurality of values has the one-to-one relationship, determining, by the processor, that the first column and second column violate a third normal form (3NF) constraint;

automatically reorganizing, by the processor, the first column and the second column into separate decision tables that comply with the 3NF constraint; and

executing the software program based on the separate decision tables, the separate decision tables being used in place of the decision table to reduce logical inconsistencies associated with software malfunctions.

9. The method of claim 8 , further comprising, for each respective value in the first plurality of values:

identifying, by the processor, one or more entries in the decision table that include cells associated with the respective value in the first column;

determining, by the processor, that the one or more entries only have the corresponding value in the second plurality of values associated with the second column; and

based on determining that the one or more entries only have the corresponding value in the second plurality of values, flagging, by the processor, the respective value as having the one-to-one relationship.

10. The method of claim 8 , wherein the first plurality of values are a plurality of value ranges.

11. The method of claim 8 , wherein the second plurality of values are a plurality of value ranges.

12. The method of claim 8 , further comprising:

analyzing, by the processor, every pair of columns in the decision table to determine whether the pair of columns violates the 3NF constraint, each pair of columns being analyzed in a separate iteration of an iterative process and being different from other pairs of columns analyzed during the iterative process.

13. The method of claim 8 , wherein the first column and the second column are input columns of the decision table.

14. The method of claim 8 , further comprising:

selecting, by the processor, a pair of columns from the decision table;

determining, by the processor, that a one-to-many relationship exists between a group of values associated with the pair of columns, such that a single value associated with one column of the pair of columns has multiple corresponding values associated with another column of the pair of columns; and

based on determining that the one-to-many relationship exists between the group of values, generating, by the processor, a notification indicating that the pair of columns complies with the 3NF constraint.

15. A non-transitory computer-readable medium comprising program code that is executable by a processor for causing the processor to:

execute an iterative process, wherein an iteration of the iterative process involves:

determining a first plurality of values associated with a first column of a decision table and a second plurality of values associated with a second column of the decision table, wherein the decision table includes decision logic for a software program;

determining that each respective value in the first plurality of values has a one-to-one relationship with a corresponding value in the second plurality of values;

based on determining that each respective value in the first plurality of values has the one-to-one relationship, determining that the first column and second column violate a third normal form (3NF) constraint; and

based on determining that the first column and the second column violate the 3NF constraint, automatically reorganizing the first column and the second column into separate decision tables that comply with the 3NF constraint; and

execute the software program based on the separate decision tables, the separate decision tables being used in place of the decision table to reduce logical inconsistencies associated with software malfunctions.

16. The non-transitory computer-readable medium of claim 15 , further comprising program code that is executable by the processor for causing the processor to:

for each respective value in the first plurality of values:

identify one or more entries in the decision table that include cells associated with the respective value in the first column;

determine that the one or more entries only have the corresponding value in the second plurality of values associated with the second column; and

based on determining that the one or more entries only have the corresponding value in the second plurality of values, flag the respective value as having the one-to-one relationship.

17. The non-transitory computer-readable medium of claim 15 , wherein the first plurality of values are a first plurality of value ranges and the second plurality of values are a second plurality of value ranges.

18. The non-transitory computer-readable medium of claim 15 , wherein the iterative process is configured for analyzing every pair of columns in the decision table to determine whether the pair of columns violates the 3NF constraint, each pair of columns being analyzed in a separate iteration of the iterative process and being different from other pairs of columns analyzed during the iterative process.

19. The non-transitory computer-readable medium of claim 15 , wherein the first column and the second column are input columns of the decision table.

20. The non-transitory computer-readable medium of claim 15 , further comprising program code that is executable by the processor for causing the processor to execute another iteration of the iterative process, involving:

selecting a pair of columns from the decision table;

determining that a one-to-many relationship exists between a group of values associated with the pair of columns, such that a single value associated with one column of the pair of columns has multiple corresponding values associated with another column of the pair of columns; and

based on determining that the one-to-many relationship exists between the group of values, generating a notification indicating that the pair of columns complies with the 3NF constraint.

Assignments (2)
CHANGE OF NAME Recorded Mar 3, 2026
From: RED HAT, INC.
To: RED HAT, LLC
Reel/Frame 074913/0759 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 9, 2021
From: MOLTENI, LUCA; MORTARI, MATTEO
To: RED HAT, INC.
Reel/Frame 055197/0069 →
Continuity (1)
Related Publication 20220253718A1 · Aug 11, 2022
References Cited (11)
US 10068189B2 · Couper · 2018 [cited by applicant]
US 20040024790A1 · Everett · 2004 [cited by examiner]
US 20070168334A1 · Julien · 2007 [cited by examiner]
Alappanavar, et al., “Automating the normalization process for relational database model”, IJERA, vol. 3, Issue 1, Jan.-Feb. 2013, pp. 1826-1831, 2013 (Year: 2013). [cited by examiner]
Demba, M., “Algorithm for Relational Database Normalization up to 3NF,” International Journal of Database Management Systems, 2013, https://www.researchgate.net/publication/269674039_Algorithm_for_Relational_Database_No… [cited by applicant]
“Normal Forms and Normalization,” IT.UU, 2004, http://www.it.uu.se/research/group/udbl/dbt-ht2004/le4-normalizationx.pdf. [cited by applicant]
“Higher Normal Forms—Boyce-Codd Normal Form:,” Databasedev, Downloaded from Internet 2021, http://www.databasedev.co.uk/higher_norm_form.html. [cited by applicant]
Ramamurthy, M., et al., “Decision Tree Based Classification Type Question/Answer E-Assessment System,” 2016, https://go.gale.com/ps/anonymous?id=GALE%7CA450903502&sid=googleScholar&v=2.1&it=r&linkaccess=abs&issn=1995077… [cited by applicant]
“Database Design: Normalization Note & Exercises (up to 3NF),” Javaguicodexample, Dowloaded from Internet 2021, https://www.javaguicodexample.com/normalizationnotes.pdf. [cited by applicant]
Silver, B., “Decision Table Analysis in DMN,” 2017, https://dmcommunity.files.wordpress.com/2017/06/dc2017-brucesilver.pdf. [cited by applicant]
Ketkar, P., et al., “Possible Algorithms of 2NF and 3NF for DBNorma—A Tool for Relational Database Normalization,” Proc. of Int. Conf. on Advances in Computer Science, 2010, http://citeseerx.ist.psu.edu/viewdoc/download… [cited by applicant]