IP Library Granted Patent US 9,081,838
Granted Patent B2
US 9,081,838 · App. 13/152,809 · Granted Jul 14, 2015

Methods, apparatuses, and computer program products for database record recovery

Inventor: Andrew W. Hoog (Oak Park, IL)
Assignee: viaForensics, LLC
G06F17/30569
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 9,081,838
App. No.
13/152,809
Granted
Jul 14, 2015
Kind
B2
Abstract

Methods, apparatuses, and computer program products are provided for database record recovery. A method may include determining a target database record format. The method may further include using the target database record format to evaluate source data for presence of database records matching the target database record format. The method may additionally include, in an instance in which a database record is determined, based on the evaluation, to be present in the source data, recovering the database record from the source data. Corresponding apparatuses and computer program products are also provided.

Claims (48)

1. A method, comprising:

determining a target database record format, comprising determining a target SQLite record header format for a SQLite database record, wherein the SQLite database record comprises any raw data, data file, or memory which is to be evaluated for presence of database records;

using the target database record format to evaluate, by a processor, source data for presence of database records matching the target database record format, comprising:

comparing the target SQLite record header format to a portion of the source data;

determining whether the comparison satisfies a threshold confidence level, the threshold confidence level being set to less than 100 percent to enable recovery of data from partial database records, corrupted database records, and database record fragments; and

in an instance in which the threshold confidence level is satisfied, determining a database record to be present in the source data; and

in response to determining the database record is present in the source data, recovering the database record from the source data, said recovering including recovering at least one of a partial database record, a corrupted database record, and a fragment of a database record.

2. The method of claim 1 , wherein the target database record format defines a sequence of column types present in a target database record.

3. The method of claim 1 , wherein determining the target database record format comprises:

receiving an indication of a database having a desired target database record format; and

deriving the target database record format from the database having the desired target database record format.

4. The method of claim 1 , wherein determining the target database record format comprises receiving a user-defined target database record format.

5. The method of claim 1 , wherein the target database record format defines a target record header format, and

wherein using the target database record format to evaluate source data for presence of database records matching the target database record format comprises using the target record header format to evaluate the source data for presence of a database record header matching the target record header format.

6. The method of claim 5 , wherein in an instance in which a database record header matching the target record header format is determined to be present in the source data, recovering the database record comprises:

determining, based at least in part on one or more of the target record header format or the database record header determined to be present in the source data, a portion of the source data sequentially following the database record header expected to contain the database record corresponding to the database record header; and

recovering the determined portion.

7. The method of claim 6 , wherein:

determining the portion of the source data expected to contain the database record comprises calculating at least one column offset for the database record based at least in part on one or more of the target record header format or the database record header determined to be present in the source data.

8. The method of claim 1 , wherein the target database record format defines a target format for the SQLite database record, and

wherein using the target database record format to evaluate the source data for presence of database records matching the target database record format comprises using the target SQLite database record format to evaluate the source data for presence of SQLite database records matching the target SQLite database record format.

9. An apparatus comprising at least one processor, the at least one processor configured to cause the apparatus to at least:

determine a target database record format by determining a target SQLite record header format for a SQLite database record, wherein the SQLite database record comprises any raw data, data file, or memory which is to be evaluated for presence of database records;

use the target database record format to evaluate source data for presence of database records matching the target database record format, comprising:

compare the target SQLite record header format to a portion of the source data;

determine whether the comparison satisfies a threshold confidence level, the threshold confidence level being set to less than 100 percent to enable recovery of data from partial database records, corrupted database records, and database record fragments; and

in an instance in which the threshold confidence level is satisfied, determining a database record to be present in the source data; and

in response to determining the database record is present in the source data, recover the database record from the source data said recover the database record including recovering at least one of a partial database record, a corrupted database record, and a fragment of a database record.

10. The apparatus of claim 9 , wherein the target database record format defines a sequence of column types present in a target database record.

11. The apparatus of claim 9 , wherein the at least one processor is configured to cause the apparatus to determine the target database record format at least in part by:

receiving an indication of a database having a desired target database record format; and

deriving the target database record format from the database having the desired target database record format.

12. The apparatus of claim 9 , wherein the at least one processor is configured to cause the apparatus to determine the target database record format at least in part by receiving a user-defined target database record format.

13. The apparatus of claim 9 , wherein the target database record format defines a target record header format, and

wherein the at least one processor is configured to cause the apparatus to use the target database record format to evaluate source data for presence of database records matching the target database record format at least in part by using the target record header format to evaluate the source data for presence of a database record header matching the target record header format.

14. The apparatus of claim 13 , wherein in an instance in which a database record header matching the target record header format is determined to be present in the source data, the at least one processor is configured to cause the apparatus to recover the database record at least in part by:

determining, based at least in part on one or more of the target record header format or the database record header determined to be present in the source data, a portion of the source data sequentially following the database record header expected to contain the database record corresponding to the database record header; and

recovering the determined portion.

15. The apparatus of claim 14 , wherein the at least one processor is configured to cause the apparatus to determine the portion of the source data expected to contain the database record at least in part by calculating at least one column offset for the database record based at least in part on one or more of the target record header format or the database record header determined to be present in the source data.

16. The apparatus of claim 9 , wherein the target database record format defines a target format for the SQLite database record, and

wherein the at least one processor is configured to cause the apparatus to use the target database record format to evaluate the source data for presence of database records matching the target database record format by using the target SQLite database record format to evaluate the source data for presence of SQLite database records matching the target SQLite database record format.

17. A computer program product comprising at least one non-transitory computer-readable storage medium having computer-readable program instructions stored therein, the computer-readable program instructions comprising:

program instructions configured to determine a target database record format by determining a target SQLite record header format for a SQLite database record, wherein the SQLite database record comprises any raw data, data file, or memory which is to be evaluated for presence of database records;

program instructions configured to use the target database record format to evaluate source data for presence of database records matching the target database record format, comprising:

program instructions configured to compare the target SQLite record header format to a portion of the source data;

program instructions configured to determine whether the comparison satisfies a threshold confidence level, the threshold confidence level being set to less than 100 percent to enable recovery of data from partial database records, corrupted database records, and database record fragments; and

program instructions configured to, in an instance in which the threshold confidence level is satisfied, determine a database record to be present in the source data; and

program instructions configured to, in response to determining the database record is present in the source data, recover the database record from the source data, the recover the database record including recovering at least one of a partial database record, a corrupted database record, and a fragment of a database record.

Assignments (6)
SECURITY INTEREST Recorded Apr 30, 2025
From: VIAFORENSICS, LLC
To: WESTERN ALLIANCE BANK
Reel/Frame 070987/0991 →
TERMINATION AND RELEASE OF INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Mar 21, 2025
From: CANADIAN IMPERIAL BANK OF COMMERCE
To: VIAFORENSICS, LLC
Reel/Frame 070587/0217 →
SECURITY INTEREST Recorded Feb 22, 2022
From: VIAFORENSICS, LLC
To: CANADIAN IMPERIAL BANK OF COMMERCE
Reel/Frame 059067/0726 →
RELEASE OF SECURITY INTEREST Recorded Feb 2, 2022
From: COMERICA BANK
To: VIAFORENSICS, LLC
Reel/Frame 058860/0230 →
CHANGE OF NAME Recorded Jan 26, 2012
From: CHICAGO ELECTRONIC DISCOVERY LLC D/B/A VIA FORENSICS
To: VIAFORENSICS, LLC
Reel/Frame 027599/0841 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 3, 2011
From: HOOG, ANDREW W
To: CHICAGO ELECTRONIC DISCOVERY LLC D/B/A VIAFORENSICS
Reel/Frame 026387/0365 →
Continuity (1)
Related Publication 20120310895A1 · Dec 6, 2012