IP Library › Granted Patent US 10,678,774
Granted Patent B2
US 10,678,774 · App. 15/087,141 · Granted Jun 9, 2020

Generating source code for creating database triggers

Inventor: Peter Sramka (Raleigh, NC)
Assignee: Toshiba Global Commerce Solutions Holdings Corporation
G06F16/2365G06F16/2282G06F16/9024
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,678,774
App. No.
15/087,141
Granted
Jun 9, 2020
Kind
B2
Abstract

A computing device obtains information associated with creating a plurality of database triggers. The computing device processes this information to determine a list of foreign keys that directly link a plurality of database tables. At least two of these database tables, however, are not directly linked. Therefore, the computing device uses the list of foreign keys to generate an indirect table path that indirectly links these two database tables through one or more intermediary tables. So linked, the computing device can automatically generate the source code for creating the plurality of database triggers to verify the integrity of the data stored in all of the plurality of database tables.

Claims (48)

1. A method, implemented at a computing device, of creating source code for database triggers, the method comprising:

obtaining information associated with creating a plurality of database triggers, wherein the plurality of database triggers verify the integrity of data stored across a plurality of database tables in a database, the information comprising:

a Boolean expression identifying one or more verification checks to be applied to the data stored in the plurality of database tables; and

metadata associated with a structure of the database;

generating an indirect table path linking first and second database tables through an intermediary database table based on the metadata, wherein the indirect table path comprises foreign keys that link the first and second database tables to the intermediary database table;

verifying the indirect table path against a set of predetermined policies; and

generating source code for creating the plurality of database triggers based on the Boolean expression, the metadata, and the indirect table path.

2. The method of claim 1 wherein the metadata identifies the foreign keys that link the first and second database tables through the intermediary database table.

3. The method of claim 2 wherein generating an indirect table path linking first and second database tables through an intermediary database table based on the metadata further comprises determining an ordered sequence for the foreign keys.

4. The method of claim 1 wherein the metadata identifies the first and second database tables, and wherein generating an indirect table path linking first and second database tables through an intermediary database table based on the metadata comprises:

querying the database to determine, based on identities of the first and second database tables, the foreign keys that link the first and second database tables to the intermediary database table; and

determining an ordered sequence for the foreign keys.

5. The method of claim 1 wherein the metadata further comprises information identifying a connection to the database.

6. The method of claim 1 further comprising verifying the Boolean expression against a set of predetermined policies.

7. The method of claim 1 further comprising verifying the metadata against a set of predetermined policies.

8. The method of claim 1 wherein generating source code for creating the plurality of database triggers based on the Boolean expression, the metadata, and the indirect table path comprises generating the source code to create a plurality of INSERT BEFORE triggers and a plurality of UPDATE BEFORE triggers.

9. The method of claim 1 further comprising optimizing the source code for creating the plurality of database triggers.

10. A computing device comprising:

a communications interface circuit configured to communicate data via a computer network with one or more devices; and

a processing circuit operatively connected to the communications interface circuit and configured to:

extract a plurality of tokens, based on a lexical analysis, from an input command associated with creating a plurality of database triggers that verify the integrity of data stored across a plurality of database tables in a database;

verify the order of the plurality of tokens based on a syntactic analysis of the plurality of tokens; and

if the order of the plurality of tokens is verified:

verify the ordered plurality of tokens against a set of predetermined policies based on a semantic analysis of the plurality of tokens; and

if the ordered plurality of tokens is verified:

generate an indirect table path linking first and second database tables through an intermediary database table based on the ordered plurality of tokens, wherein the indirect table path comprises ordered foreign keys that link the first and second database tables to the intermediary database table;

verify the indirect table path against a set of predetermined policies; and

generate source code for creating the plurality of database triggers based on the ordered plurality of tokens and on the indirect table path.

11. The computing device of claim 10 wherein the input command associated with creating the plurality of database triggers comprises:

a Boolean expression identifying one or more verification checks to be applied to the data stored across the plurality of database tables; and

metadata associated with a structure of the database.

12. The computing device of claim 11 wherein the processing circuit is configured to verify one or both of the Boolean expression and the metadata against one or more predetermined policies.

13. The computing device of claim 10 wherein the input command associated with creating the plurality of database triggers comprises the foreign keys that link the first and second database tables to the intermediary database table.

14. The computing device of claim 10 wherein the input command associated with creating the plurality of database triggers identifies the first and second database tables, and wherein to generate an indirect table path, the processing circuit is configured to:

query the database to determine, based on identities of the first and second database tables, the foreign keys that link the first and second database tables to the intermediary database table; and

determine an ordered sequence for the foreign keys.

15. The computing device of claim 10 wherein to generate the source code for creating the plurality of database triggers, the processing circuit is configured to generate a plurality of CREATE TRIGGER commands.

16. The computing device of claim 10 wherein the source code for creating the plurality of database triggers comprises a plurality of INSERT BEFORE triggers and a plurality of UPDATE BEFORE triggers.

17. The computing device of claim 10 wherein the processing circuit is further configured to optimize the source code for creating the plurality of database triggers.

18. A non-transitory computer-readable storage medium comprising computer code stored thereon, wherein, when executed by a processing circuit of a computer, causes the computer to:

obtain information associated with creating a plurality of database triggers, wherein the plurality of database triggers verify the integrity of data stored across a plurality of database tables in a database, the information comprising:

a Boolean expression identifying one or more verification checks to be applied to the data stored in the plurality of database tables; and

metadata associated with a structure of the database;

verify one or both of the Boolean expression and the metadata against a set of predetermined policies; and

if the one or both of the Boolean expression and the metadata are verified:

generate an indirect table path linking first and second database tables through an intermediary database table based on the metadata, wherein the indirect table path comprises ordered foreign keys that link the first and second database tables to the intermediary database table;

verify the indirect table path against a set of predetermined policies; and

generate source code for creating the plurality of database triggers based on the Boolean expression, the metadata, and the indirect table path.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 3, 2016
From: SRAMKA, PETER
To: TOSHIBA GLOBAL COMMERCE SOLUTIONS HOLDINGS CORPORATION
Reel/Frame 038446/0924 →
Continuity (1)
Related Publication 20170286474A1 · Oct 5, 2017