# US 8,543,549 B2 · Normalizing data on database restore

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

- Number: US 8,543,549 B2
- Document ID: US8543549B2
- Status: Granted
- Kind: B2
- Application number: 12/963,675
- Filed: 2010-12-09
- Published: 2012-06-14
- Granted: 2013-09-24
- Earliest claimed: 2010-12-09
- Assignees: International Business Machines Corporation
- Applicants: Eric L. Barsness; David L. Darrington; John M. Santosuosso
- Inventors: Eric L. Barsness; David L. Darrington; John M. Santosuosso
- Web page: https://patentgrep.com/patent/US8543549B2

## CPC

- G06F 11/1469: {Backup restoration techniques}
- G06F 16/213: {with details for schema evolution support}
- G06F 2201/80: Database-specific techniques
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Techniques for normalizing a database as part of a database restore. Embodiments may receive a database restore request indicating a previous state to restore a database to. Responsive to the request, embodiments may restore the database to the previous state using backup data associated with the previous state, and normalize the restored database using historical database usage data based on one or more previous database operations.

## Claims

### Claim 1

A computer-implemented method for structurally optimizing a database as part of a database restore, comprising:
receiving a database restore request to restore the database to a previous state at a particular point in time, the previous state specified in the database restore request; and
responsive to receiving the database restore request, and by operation of one or more computer processors:
restoring the database to the previous state using backup data associated with the previous state of the database specified in the database restore request; and
modifying a structure of one or more database constructs within the restored database to optimize subsequent database operations, based on historical database usage data describing how the database is used and collected based on one or more previous database operations.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, further comprising:
monitoring one or more database operations performed using the database; and
collecting the historical database usage data based on the monitored one or more database operations.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, wherein one of the one or more database constructs comprises a database table, and wherein modifying the structure of one or more database constructs within the restored database further comprises:
splitting the database table in the database into two or more optimized database tables.

### Claim 4 (depends on 3)

The computer-implemented method of claim 3, wherein one of the two or more optimized database tables is a reference table.

### Claim 5 (depends on 1)

The computer-implemented method of claim 1, wherein the one or more database constructs comprise two or more database tables, and wherein modifying the structure of one or more database constructs within the restored database further comprises:
combining the two or more database tables in the database into a single optimized database table.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, wherein the one or more database constructs comprise a database field, and wherein modifying the structure of one or more database constructs within the restored database further comprises at least one of:
converting the database field in the database from a first data type to a second data type; and
reducing the database field in the database from a first data length to a second data length.

### Claim 7 (depends on 1)

The computer-implemented method of claim 1, wherein the historical database usage data includes at least one of (i) data values assigned to one or more database fields, (ii) types of the data values assigned to the database fields, (iii) a length of the data values assigned to the database fields, (iv) a frequency value indicating how often a particular database field is accessed, (v) a redundancy value indicating how often a particular data value is assigned to the database fields.

### Claim 8 (depends on 1)

The computer-implemented method of claim 1, wherein modifying the structure of one or more database constructs within the restored database is further based on metadata describing the database, wherein the metadata describes at least one of (i) a database index, (ii) a materialized query table, (iii) a database trigger, and (iv) a database constraint.

### Claim 9 (depends on 1)

The computer-implemented method of claim 1, further comprising:
providing a data abstraction model defining one or more logical fields, wherein each logical field maps to at least one database field in the database; and
updating the data abstraction model, based on one or more modifications to the restored database as part of normalizing the restored database.

### Claim 10

A computer program product for structurally optimizing a database as part of a database restore, comprising:
a non-transitory computer-readable storage medium having computer readable program code embodied therewith, the computer readable program code comprising: computer readable program code to receive a database restore request to restore the database to a previous state at a particular point in time, the previous state specified in the database restore request; and
computer readable program code to, responsive to receiving the database restore request:
restore the database to the previous state using backup data associated with the previous state of the database specified in the database restore request; and
modify a structure of one or more database constructs within the restored database to optimize subsequent database operations, based on historical database usage data describing how the database is used and collected based on one or more previous database operations.

### Claim 11 (depends on 10)

The computer program product of claim 10, further comprising:
computer readable program code to monitor one or more database operations performed using the database; and
computer readable program code to collect the historical database usage data based on the monitored one or more database operations.

### Claim 12 (depends on 10)

The computer program product of claim 10, wherein one of the one or more database constructs comprises a database table, and wherein the computer readable program code to modify the structure of one or more database constructs within restored database further comprises:
computer readable program code to split the database table in the database into two or more optimized database tables.

### Claim 13 (depends on 12)

The computer program product of claim 12, wherein one of the two or more optimized database tables is a reference table.

### Claim 14 (depends on 10)

The computer program product of claim 10, wherein the one or more database constructs comprise two or more database tables, and wherein the computer readable program code to modify the structure of one or more database constructs within the restored database further comprises:
computer readable program code to combine the two or more database tables in the database into a single optimized database table.

### Claim 15 (depends on 10)

The computer program product of claim 10, wherein the one or more database constructs comprise a database field, and wherein the computer readable program code to modify the structure of one or more database constructs within the restored database further comprises at least one of:
computer readable program code to convert the database field in the database from a first data type to a second data type; and
computer readable program code to reduce the database field in the database from a first data length to a second data length.

### Claim 16 (depends on 10)

The computer program product of claim 10, wherein the historical database usage data includes at least one of (i) data values assigned to one or more database fields, (ii) types of the data values assigned to the database fields, (iii) a length of the data values assigned to the database fields, (iv) a frequency value indicating how often a particular database field is accessed, (v) a redundancy value indicating how often a particular data value is assigned to the database fields.

### Claim 17 (depends on 10)

The computer program product of claim 10, wherein the computer readable program code to modify the structure of one or more database constructs within the restored database is further based on metadata describing the database, wherein the metadata describes at least one of (i) a database index, (ii) a materialized query table, (iii) a database trigger, and (iv) a database constraint.

### Claim 18 (depends on 10)

The computer program product of claim 10, further comprising:
computer readable program code to provide a data abstraction model defining one or more logical fields, wherein each logical field maps to at least one database field in the database; and
computer readable program code to update the data abstraction model, based on one or more modifications to the restored database as part of normalizing the restored database.

### Claim 19

A system, comprising:
a computer processor; and
a memory containing a program that, when executed on the computer processor, performs an operation for structurally optimizing a database as part of a database restore, comprising:
receiving a database restore request to restore the database to a previous state at a particular point in time, the previous state specified in the database restore request; and
responsive to receiving the database restore request, and by operation of one or more computer processors:
restoring the database to the previous state using backup data associated with the previous state of the database specified in the database restore request; and
modifying a structure of one or more database constructs within the restored database to optimize subsequent database operations, based on historical database usage data describing how the database is used and collected based on one or more previous database operations.

### Claim 20 (depends on 19)

The system of claim 19, the operation further comprising:
monitoring one or more database operations performed using the database; and
collecting the historical database usage data based on the monitored one or more database operations.
