IP Library Granted Patent US 9,171,073
Granted Patent B1
US 9,171,073 · App. 13/618,192 · Granted Oct 27, 2015

Index mechanism for report generation

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,171,073
App. No.
13/618,192
Granted
Oct 27, 2015
Kind
B1
Abstract

Database query analysis technology, in which an input query is received that relates to multiple attribute classes of data records. An index that is descriptive of the data records in data storage is accessed and relative positions in the accessed index for the multiple attribute classes are identified. The accessed index is processed based on more than one of the multiple attribute classes and the identified relative positions, and the processed index is used to identify groups of data records that are included in the data records in the data storage and that share common values for the multiple attribute classes in the input query. Metrics corresponding to the data records included in each of the identified groups of data records are accessed, computations are performed on the accessed metrics, and a report is generated that reflects results of the computations.

Claims (70)

1. A computer-implemented method comprising:

receiving an input query that relates to multiple attribute classes of data records having attribute classes associated therewith in data storage;

identifying the multiple attribute classes related to the input query, the multiple attribute classes being a subset of less than all of the attribute classes associated with the data records in the data storage;

accessing, from electronic storage, an index that is descriptive of the data records in the data storage, the index defining positional relationships between the attributes classes of the data records;

identifying relative positions in the accessed index for the multiple attribute classes identified as being related to the input query;

modifying the accessed index based on the identified relative positions, wherein modifying the accessed index based on the identified relative positions comprises:

identifying portions of the accessed index that correspond to the multiple attribute classes identified as being related to the input query and removing portions of the accessed index that correspond to attribute classes other than the multiple attribute classes identified as being related to the input query;

based on the identified relative positions, selecting, from among the multiple attribute classes identified as being related to the input query, the attribute class that has the highest relative position within the accessed index; and

for each distinct value in the selected attribute class, assigning a distinct identifier to portions of the accessed index within the selected attribute class that correspond to the distinct value,

identifying, using the modified index, groups of data records that are included in the data records in the data storage and that share common values for the multiple attribute classes identified as being related to the input query;

accessing, from the data storage, metrics corresponding to the data records included in each of the identified groups of data records;

performing computations on the accessed metrics that distinguish among each of the identified groups of data records;

generating a report that reflects results of the computations; and

storing, in electronic storage, the generated report.

2. The method of claim 1 wherein modifying the accessed index based on the identified relative positions further comprises compressing redundancies in the accessed index that result from the identified relative positions.

3. The method of claim 1 :

wherein modifying the accessed index based on the identified relative positions comprises:

identifying portions of the index that correspond to the multiple attribute classes identified as being related to the input query and disregarding portions of the accessed index that correspond to attribute classes other than the multiple attribute classes identified as being related to the input query; and

generating an updated index using the identified portions of the index that correspond to the multiple attribute classes identified as being related to the input query; and

wherein identifying, using the modified index, groups of data records that are included in the data records in the data storage and that share common values for the multiple attribute classes identified as being related to the input query comprises identifying, using the updated index, groups of data records that are included in the data records in the data storage and that share common values for the multiple attribute classes identified as being related to the input query.

4. The method of claim 1 wherein modifying the accessed index based on the identified relative positions comprises:

building a connectivity graph based on the multiple attribute classes identified as being related to the input query and the identified relative positions; and

assigning group numbers to each node within the connectivity graph, each group number corresponding to a distinct combination of values for the multiple attribute classes identified as being related to the input query.

5. The method of claim 4 wherein identifying, using the modified index, groups of data records that are included in the data records in the data storage and that share common values for the multiple attribute classes identified as being related to the input query comprises identifying, using the connectivity graph and the assigned group numbers, groups of data records that are included in the data records in the data storage and that share common values for the multiple attribute classes identified as being related to the input query.

6. The method of claim 1 wherein accessing, from the data storage, metrics corresponding to the data records included in each of the identified groups of data records comprises:

automatically, without user intervention, generating database code for accessing data corresponding to the identified groups of data records; and

accessing the metrics using the generated database code.

7. The method of claim 1 :

wherein identifying, using the modified index, groups of data records that are included in the data records in the data storage and that share common values for the multiple attribute classes identified as being related to the input query comprises identifying addresses of data records mapped to by the processed index; and

wherein accessing, from the data storage, metrics corresponding to the data records included in each of the identified groups of data records comprises accessing, from the data storage, metrics corresponding to the identified addresses of data records mapped to by the processed index.

8. The method of claim 1 :

wherein performing computations on the accessed metrics that distinguish among each of the identified groups of data records comprises performing a computation for each group of the accessed metrics; and

wherein generating the report that reflects results of the computations comprises generating a report that includes the result of the computation for each group of the accessed metrics along with values for the multiple attribute classes identified as being related to the input query that correspond to the group of the accessed metrics.

9. The method of claim 1 wherein receiving the input query that relates to multiple attribute classes of data records having attribute classes associated therewith in data storage comprises receiving a report generation request that identifies multiple attribute classes to use in organizing the report.

10. An electronic system comprising:

at least one electronic data storage device; and

at least one processor configured to perform operations comprising:

receiving an input query that relates to multiple attribute classes of data records having attribute classes associated therewith in data storage;

identifying the multiple attribute classes related to the input query, the multiple attribute classes being a subset of less than all of the attribute classes associated with the data records in the data storage;

accessing, from electronic storage, an index that is descriptive of the data records in the data storage, the index defining positional relationships between the attributes classes of the data records;

identifying relative positions in the accessed index for the multiple attribute classes identified as being related to the input query;

modifying the accessed index based on the identified relative positions, wherein modifying the accessed index based on the identified relative positions comprises;

identifying portions of the accessed index that correspond to the multiple attribute classes identified as being related to the input query and removing portions of the accessed index that correspond to attribute classes other than the multiple attribute classes identified as being related to the input query;

based on the identified relative positions, selecting, from among the multiple attribute classes identified as being related to the input query, the attribute class that has the highest relative position within the accessed index; and

for each distinct value in the selected attribute class, assigning a distinct identifier to portions of the accessed index within the selected attribute class that correspond to the distinct value,

identifying, using the modified index, groups of data records that are included in the data records in the data storage and that share common values for the multiple attribute classes identified as being related to the input query;

accessing, from the data storage, metrics corresponding to the data records included in each of the identified groups of data records;

performing computations on the accessed metrics that distinguish among each of the identified groups of data records;

generating a report that reflects results of the computations; and

storing, in electronic storage, the generated report.

11. The system of claim 10 wherein modifying the accessed index based on the identified relative positions further comprises compressing redundancies in the accessed index that result from the identified relative positions.

12. The system of claim 10 :

wherein modifying the accessed index based on the identified relative positions comprises:

identifying portions of the index that correspond to the multiple attribute classes identified as being related to the input query and disregarding portions of the accessed index that correspond to attribute classes other than the multiple attribute classes identified as being related to the input query; and

generating an updated index using the identified portions of the index that correspond to the multiple attribute classes identified as being related to the input query; and

wherein identifying, using the modified index, groups of data records that are included in the data records in the data storage and that share common values for the multiple attribute classes identified as being related to the input query comprises identifying, using the updated index, groups of data records that are included in the data records in the data storage and that share common values for the multiple attribute classes identified as being related to the input query.

13. The system of claim 10 wherein modifying the accessed index based on the identified relative positions comprises:

building a connectivity graph based on the multiple attribute classes identified as being related to the input query and the identified relative positions; and

assigning group numbers to each node within the connectivity graph, each group number corresponding to a distinct combination of values for the multiple attribute classes identified as being related to the input query.

14. The system of claim 13 wherein identifying, using the modified index, groups of data records that are included in the data records in the data storage and that share common values for the multiple attribute classes identified as being related to the input query comprises identifying, using the connectivity graph and the assigned group numbers, groups of data records that are included in the data records in the data storage and that share common values for the multiple attribute classes identified as being related to the input query.

15. The system of claim 10 wherein accessing, from the data storage, metrics corresponding to the data records included in each of the identified groups of data records comprises:

automatically, without user intervention, generating database code for accessing data corresponding to the identified groups of data records; and

accessing the metrics using the generated database code.

16. The system of claim 10 :

wherein identifying, using the modified index, groups of data records that are included in the data records in the data storage and that share common values for the multiple attribute classes identified as being related to the input query comprises identifying addresses of data records mapped to by the processed index; and

wherein accessing, from the data storage, metrics corresponding to the data records included in each of the identified groups of data records comprises accessing, from the data storage, metrics corresponding to the identified addresses of data records mapped to by the processed index.

17. The system of claim 10 :

wherein performing computations on the accessed metrics that distinguish among each of the identified groups of data records comprises performing a computation for each group of the accessed metrics; and

wherein generating the report that reflects results of the computations comprises generating a report that includes the result of the computation for each group of the accessed metrics along with values for the multiple attribute classes identified as being related to the input query that correspond to the group of the accessed metrics.

18. The system of claim 10 wherein receiving the input query that relates to multiple attribute classes of data records having attribute classes associated therewith in data storage comprises receiving a report generation request that identifies multiple attribute classes to use in organizing the report.

Assignments (4)
CHANGE OF NAME Recorded Sep 19, 2025
From: MICROSTRATEGY INCORPORATED
To: STRATEGY INC
Reel/Frame 072909/0658 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT REEL/FRAME: 056647/0687, REEL/FRAME: 057435/0023, REEL/FRAME: 059256/0247, REEL/FRAME: 062794/0255 AND REEL/FRAME: 066663/0713 Recorded Sep 26, 2024
From: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION, AS SUCCESSOR IN INTEREST TO U.S. BANK NATIONAL ASSOCIATION, IN ITS CAPACITY AS COLLATERAL AGENT FOR THE SECURED PARTIES
To: MICROSTRATEGY INCORPORATED; MICROSTRATEGY SERVICES CORPORATION
Reel/Frame 069065/0539 →
SECURITY INTEREST Recorded Jun 22, 2021
From: MICROSTRATEGY INCORPORATED
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 056647/0687 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 15, 2014
From: YE, ALEX; LI, BENJAMIN Z.
To: MICROSTRATEGY INCORPORATED
Reel/Frame 033310/0555 →