# US 2017/0286471 A1 · Methods and apparatuses for enterprise revision-based auditing of database management systems

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2017/0286471 A1
- Document ID: US20170286471A1
- Status: Published application
- Kind: A1
- Application number: 15/087,081
- Filed: 2016-03-31
- Published: 2017-10-05
- Earliest claimed: 2016-03-31
- Assignees: McKesson Corporation
- Applicants: McKesson Corporation
- Inventors: Shridhar Upadhyaya
- Web page: https://patentgrep.com/patent/US20170286471A1

## CPC

- G06F 16/235: {Update request formulation}
- G06F 16/2379: {Updates performed during online database operations; commit processing}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Embodiments are disclosed for improving scalability and efficiency of an online transaction processing (OLTP) system. In the context of a method, an example embodiment includes assigning, by revisioning circuitry and in response to receiving a change data instruction to edit one or more data tables stored by the OLTP system, a global revision number to the change data instruction, wherein the global revision number is unique within the OLTP system, and updating, by data modeling circuitry, one or more records in the one or more data tables stored by the OLTP system based on the change data instruction. The example method further includes inserting, by data auditing circuitry, one or more audit records corresponding to the one or more updated records into one or more audit tables corresponding to the one or more data tables. Corresponding apparatuses and computer program products are also provided.

## Claims

### Claim 1

A method for improving scalability and efficiency of an online transaction processing (OLTP) system, the method comprising:
assigning, by revisioning circuitry and in response to receiving a change data instruction to edit one or more data tables stored by the OLTP system, a global revision number to the change data instruction, wherein the global revision number is unique within the OLTP system;
updating, by data modeling circuitry, one or more records in the one or more data tables stored by the OLTP system based on the change data instruction; and
inserting, by data auditing circuitry, one or more audit records corresponding to the one or more updated records into one or more audit tables corresponding to the one or more data tables,
wherein each audit record includes a revision number field identifying the global revision number and a revision type field indicating whether a corresponding updated record of the one or more updated records is newly added, modified from a previous version, or deleted.

### Claim 2 (depends on 1)

The method of claim 1, wherein assigning the global revision number to the revision includes:
generating the global revision number; and
storing the global revision number in a global revision tracking table.

### Claim 3 (depends on 1)

The method of claim 1, wherein inserting the one or more audit records corresponding to the one or more updated records into the one or more audit tables corresponding to the one or more tables includes:
generating insert statements for the one or more audit tables; and
for each particular audit table corresponding to a particular data table of the one or more data tables,
invoking the insert statement generated for the particular audit table to add a subset of the one or more audit records into the particular audit table that correspond to a subset of the updated records that are stored in the particular data table.

### Claim 4 (depends on 3)

The method of claim 3, wherein generating the insert statements includes:
analyzing metadata of the one or more data tables;
building insert statements for the one or more audit tables based on the metadata of each corresponding data table; and
caching the insert statements.

### Claim 5 (depends on 3)

The method of claim 3, wherein invoking the insert statement generated for a particular audit table includes:
binding, to the insert statement generated for the particular audit table, row data in the particular data table that describes the subset of the updated records that are stored in the particular data table; and
causing execution of the insert statement generated for the particular audit table.

### Claim 6 (depends on 3)

The method of claim 3, wherein inserting the one or more audit records into the one or more audit tables includes invoking insert statements corresponding to multiple audit tables in a batch process.

### Claim 7 (depends on 1)

The method of claim 1, wherein the change data instruction is received from:
a Java 2 Platform, Enterprise Edition (J2EE) application using a Java database connectivity (JDBC) driver; or
a data warehouse extract, transform, and load (ETL) process.

### Claim 8

An apparatus for improving scalability and efficiency of an online transaction processing (OLTP) system, the apparatus comprising at least one processor and at least one memory storing computer-executable instructions, that, when executed by the at least one processor, cause the apparatus to:
assign, in response to receiving a change data instruction to edit one or more data tables stored by the OLTP system, a global revision number to the change data instruction, wherein the global revision number is unique within the OLTP system;
update, one or more records in the one or more data tables stored by the OLTP system based on the change data instruction; and
insert one or more audit records corresponding to the one or more updated records into one or more audit tables corresponding to the one or more data tables,
wherein each audit record includes a revision number field identifying the global revision number and a revision type field indicating whether a corresponding updated record of the one or more updated records is newly added, modified from a previous version, or deleted.

### Claim 9 (depends on 8)

The apparatus of claim 8, wherein the computer-executable instructions, when executed by the at least one processor, cause the apparatus to assign the global revision number to the revision by causing the apparatus to:
generate the global revision number; and
store the global revision number in a global revision tracking table.

### Claim 10 (depends on 8)

The apparatus of claim 8, wherein the computer-executable instructions, when executed by the at least one processor, cause the apparatus to insert the one or more audit records corresponding to the one or more updated records into the one or more audit tables corresponding to the one or more tables by causing the apparatus to:
generate insert statements for the one or more audit tables; and
for each particular audit table corresponding to a particular data table of the one or more data tables,
invoke the insert statement generated for the particular audit table to add a subset of the one or more audit records into the particular audit table that correspond to a subset of the updated records that are stored in the particular data table.

### Claim 11 (depends on 10)

The apparatus of claim 10, wherein the computer-executable instructions, when executed by the at least one processor, cause the apparatus to generate the insert statements by causing the apparatus to:
analyze metadata of the one or more data tables;
build insert statements for the one or more audit tables based on the metadata of each corresponding data table; and
cache the insert statements.

### Claim 12 (depends on 10)

The apparatus of claim 10, wherein the computer-executable instructions, when executed by the at least one processor, cause the apparatus to invoke the insert statement generated for a particular audit table by causing the apparatus to:
bind, to the insert statement generated for the particular audit table, row data in the particular data table that describes the subset of the updated records that are stored in the particular data table; and
cause execution of the insert statement generated for the particular audit table.

### Claim 13 (depends on 10)

The apparatus of claim 10, wherein the computer-executable instructions, when executed by the at least one processor, cause the apparatus to insert the one or more audit records into the one or more audit tables by causing the apparatus to invoke insert statements corresponding to multiple audit tables in a batch process.

### Claim 14 (depends on 8)

The apparatus of claim 8, wherein the computer-executable instructions, when executed by the at least one processor, cause the apparatus to receive the change data instruction from:
a Java 2 Platform, Enterprise Edition (J2EE) application using a Java database connectivity (JDBC) driver; or
a data warehouse extract, transform, and load (ETL) process.

### Claim 15

A computer program product comprising at least one non-transitory computer-readable storage medium for improving scalability and efficiency of an online transaction processing (OLTP) system, the at least one non-transitory computer-readable storage medium storing computer-executable instructions that, when executed, cause an apparatus to:
assign, in response to receiving a change data instruction to edit one or more data tables stored by the OLTP system, a global revision number to the change data instruction, wherein the global revision number is unique within the OLTP system;
update one or more records in the one or more data tables stored by the OLTP system based on the change data instruction; and
insert one or more audit records corresponding to the one or more updated records into one or more audit tables corresponding to the one or more data tables,
wherein each audit record includes a revision number field identifying the global revision number and a revision type field indicating whether a corresponding updated record of the one or more updated records is newly added, modified from a previous version, or deleted.

### Claim 16 (depends on 15)

The computer program product of claim 15, wherein the computer-executable instructions, when executed, cause the apparatus to assign the global revision number to the revision by causing the apparatus to:
generate the global revision number; and
store the global revision number in a global revision tracking table.

### Claim 17 (depends on 15)

The computer program product of claim 15, wherein the computer-executable instructions, when executed, cause the apparatus to insert the one or more audit records corresponding to the one or more updated records into the one or more audit tables corresponding to the one or more tables by causing the apparatus to:
generate insert statements for the one or more audit tables; and
for each particular audit table corresponding to a particular data table of the one or more data tables,
invoke the insert statement generated for the particular audit table to add a subset of the one or more audit records into the particular audit table that correspond to a subset of the updated records that are stored in the particular data table.

### Claim 18 (depends on 17)

The computer program product of claim 17, wherein the computer-executable instructions, when executed, cause the apparatus to generate the insert statements by causing the apparatus to:
analyze metadata of the one or more data tables;
build insert statements for the one or more audit tables based on the metadata of each corresponding data table; and
cache the insert statements.

### Claim 19 (depends on 17)

The computer program product of claim 17, wherein the computer-executable instructions, when executed, cause the apparatus to invoke the insert statement generated for a particular audit table by causing the apparatus to:
bind, to the insert statement generated for the particular audit table, row data in the particular data table that describes the subset of the updated records that are stored in the particular data table; and
cause execution of the insert statement generated for the particular audit table.

### Claim 20 (depends on 17)

The computer program product of claim 17, wherein the computer-executable instructions, when executed, cause the apparatus to insert the one or more audit records into the one or more audit tables by causing the apparatus to invoke insert statements corresponding to multiple audit tables in a batch process.
