Database management method and apparatus
First Claim
1. A method to be used with a database and an interface, the interface for specifying reports to be generated, the database capable of including a hierarchy of point slices where each point slice includes a data segment and at least a subset of the data segments can be combined to instantiate each specified report, the method for expediting the report generating process and comprising the steps of:
- (a) receiving a report request;
(b) identifying at least one required point slice required to instantiate the report;
(c) searching the database for the at least one required point slice;
(d) where the at least one required point slice does not exist, identifying an intermediate subset that includes intermediate point slices required to generate the at least one required point slice;
(e) determining if the intermediate subset point slices exist;
(f) for each non-existent intermediate subset point slice, using existing point slices to generate the non-existent intermediate point slice;
(g) combining the intermediate subset point slices to generate the at least one required point slice; and
(h) instantiating the report using the at least one required point slice.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for arranging and accessing database data in a manner such that massive amounts of data can be aggregated and manipulated in many different ways to generate reports of many different types in a rapid manner, the method including storing data in point slices where each slice includes data having similar attributes, receiving a report request from which data attributes corresponding to the data needed to instantiate the report can be gleaned, identifying at least one required point slice including the needed data, determining if the point slice exists, where the point slice does not exist, accessing other data and generating the point slice and perhaps some intervening point slices, storing the newly generated point slices and then using the required point slice to instantiate and provide the report.
77 Citations
87 Claims
-
1. A method to be used with a database and an interface, the interface for specifying reports to be generated, the database capable of including a hierarchy of point slices where each point slice includes a data segment and at least a subset of the data segments can be combined to instantiate each specified report, the method for expediting the report generating process and comprising the steps of:
-
(a) receiving a report request;
(b) identifying at least one required point slice required to instantiate the report;
(c) searching the database for the at least one required point slice;
(d) where the at least one required point slice does not exist, identifying an intermediate subset that includes intermediate point slices required to generate the at least one required point slice;
(e) determining if the intermediate subset point slices exist;
(f) for each non-existent intermediate subset point slice, using existing point slices to generate the non-existent intermediate point slice;
(g) combining the intermediate subset point slices to generate the at least one required point slice; and
(h) instantiating the report using the at least one required point slice. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 68)
-
-
11. A method to be used with a database and an interface, the interface for specifying reports to be generated, the database capable of storing a hierarchy of points slices where each point slice corresponds to a data segment and where a subset of the data segments can be combined to instantiate each specified report, the method for automatically modifying a database structure as a function of specified reports to speed subsequent report generation and comprising the steps of:
-
(a) receiving a report request;
(b) identifying at least one required point slice needed to instantiate the report;
(c) searching the database for the at least one required point slice;
(d) where the at least one required point slice does not exist, identifying an intermediate subset that includes intermediate point slices required to generate the at least one required point slice;
(e) determining if the intermediate subset point slices exist;
(f) for each non-existent intermediate subset point slice, using existing point slices to generate the non-existent intermediate subset point slice;
(g) combining the intermediate subset point slices to generate the at least one required point slice; and
(h) storing the at least one required point slice for use when subsequent reports are requested. - View Dependent Claims (12, 13)
-
-
14. A database for use with a processor, an interface and a plurality of source elements, the interface for specifying report requests, each report request including request information that can be used to identify point slices and corresponding data values where a sub-set of the data values are needed to instantiate each report, the source elements periodically generating raw data values and providing the raw data values to the processor, the processor for receiving data values and report requests, combining the data values to generate combined data values as a function of the report requests and storing the data values in corresponding point slices for subsequent use in generating subsequent reports pursuant to subsequent requests and generating reports using the data values, the database comprising:
-
an existing point slice identifier identifying existing point slices; and
a point slice specifier indicating how to combine existing data values to generate non-existing data values and corresponding point slices. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23)
-
-
24. A method to be used with a database where a plurality of data segments are stored in the database, at least some of the data segments correlated with point slices in the database, the method for expediting the process of accessing combinations of the data segments upon request and comprising the steps of:
-
receiving a report request;
identifying at least one required point slice required to instantiate the requested report;
if the at least one required point slice does not exist, identifying intermediate point slices that can be combined to provide the required point slice;
combining the intermediate point slices to generate the required point slice;
during the step of combining the intermediate point slices, determining if the combining process generates intermediate point slices that may be useful during subsequent requests; and
where there are useful intermediate point slices, storing the useful intermediate point slices for subsequent use. - View Dependent Claims (25, 26, 27, 28)
-
-
29. A method to be used with a database where a plurality of data segments are stored in the database, at least some of the data segments correlated with point slices in the database, the method for expediting the process of accessing combinations of the data segments upon request and comprising the steps of:
-
receiving a report request including a first time period over which data having a first set of attributes is needed to instantiate the requested report;
determining if there is an existing first point slice having the first set of attributes over a second time period where the first time period includes at least a time segment in addition to the second time period;
where the first point slice exists, generating a second point slice having the first set of attributes and including data corresponding to a new period including the first and second periods and any intervening period. - View Dependent Claims (30, 31, 32, 33, 34, 35)
-
-
36. A database construct for storing data values corresponding to specific source elements, the construct comprising:
a plurality of point slices wherein each point slice includes at least one data value, each slice correlated with unit, function, interval and time period attributes, the unit attribute indicating the source elements that produce raw data used to generate corresponding point slice data values, the period attribute indicating a period to which the slice corresponds, the interval attribute indicating a duration between data values in the point slice and the function attribute indicating a function applied to data values to generate the point slice data values. - View Dependent Claims (37, 38, 39, 40)
-
41. An apparatus to be used with a database and an interface, the interface for specifying reports to be generated, the database capable of including a hierarchy of point slices where each point slice includes a data segment and at least a subset of the data segments can be combined to instantiate each specified report, the apparatus for expediting the report generating process and comprising:
-
a processor running a pulse sequencing program to perform the steps of;
(a) receiving a report request;
(b) identifying at least one required point slice required to instantiate the report;
(c) searching the database for the at least one required point slice;
(d) where the at least one required point slice does not exist, identifying an intermediate subset that includes intermediate point slices required to generate the at least one required point slice;
(e) determining if the intermediate subset point slices exist;
(f) for each non-existent intermediate subset point slice, using existing point slices to generate the non-existent intermediate point slice;
(g) combining the intermediate subset point slices to generate the at least one required point slice; and
(h) instantiating the report using the at least one required point slice. - View Dependent Claims (42, 43, 44, 45, 46, 47)
-
-
48. An apparatus to be used with a database and an interface, the interface for specifying reports to be generated, the database capable of storing a hierarchy of points slices where each point slice corresponds to a data segment and where a subset of the data segments can be combined to instantiate each specified report, the apparatus for automatically modifying a database structure as a function of specified reports to speed subsequent report generation and comprising:
-
a processor running a pulse sequencing program to perform the steps of;
(a) receiving a report request;
(b) identifying at least one required point slice needed to instantiate the report;
(c) searching the database for the at least one required point slice;
(d) where the at least one required point slice does not exist, identifying an intermediate subset that includes intermediate point slices required to generate the at least one required point slice;
(e) determining if the intermediate subset point slices exist;
(f) for each non-existent intermediate subset point slice, using existing point slices to generate the non-existent intermediate subset point slice;
(g) combining the intermediate subset point slices to generate the at least one required point slice; and
(h) storing the at least one required point slice. - View Dependent Claims (49, 50)
-
-
51. An apparatus to be used with a database where a plurality of data segments are stored in the database, at least some of the data segments correlated with point slices in the database, the apparatus for expediting the process of accessing combinations of the data segments upon request and comprising the steps of:
-
receiving a report request;
identifying at least one required point slice required to instantiate the requested report;
if the at least one required point slice does not exist, identifying intermediate point slices that can be combined to provide the required point slice;
combining the intermediate point slices to generate the required point slice;
during the step of combining the intermediate point slices, determining if the combining process generates intermediate point slices that may be useful during subsequent requests; and
where there are useful intermediate point slices, storing the useful intermediate point slices for subsequent use. - View Dependent Claims (52, 53, 54, 55)
-
-
56. An apparatus to be used with a database where a plurality of data segments are stored in the database, at least some of the data segments correlated with point slices in the database, the apparatus for expediting the process of accessing combinations of the data segments upon request and comprising:
-
a processor running a pulse sequencing program to perform the steps of;
receiving a report request including a first time period over which data having a first set of attributes is needed to instantiate the requested report;
determining if there is an existing first point slice having the first set of attributes over a second time period where the first time period includes at least a time segment in addition to the second time period; and
where the first point slice exists, generating a second point slice having the first set of attributes and including data corresponding to a new period including the first and second periods and any intervening period. - View Dependent Claims (57, 58, 59, 60, 61, 62)
-
-
63. An apparatus to be used with a database and an interface, the interface for specifying reports to be generated, the database capable of including a hierarchy of point slices where each point slice includes a data segment and at least a subset of the data segments can be combined to instantiate each specified report, the apparatus for expediting the report generating process and comprising:
-
(a) means for receiving a report request;
(b) means for identifying at least one required point slice required to instantiate the report;
(c) means for searching the database for the at least one required point slice;
(d) where the at least one required point slice does not exist, means for identifying an intermediate subset that includes intermediate point slices required to generate the at least one required point slice;
(e) means for determining if the intermediate subset point slices exist;
(f) for each non-existent intermediate subset point slice, means for using existing point slices to generate the non-existent intermediate point slice;
(g) means for combining the intermediate subset point slices to generate the at least one required point slice; and
(h) means for instantiating the report using the at least one required point slice. - View Dependent Claims (64, 65, 66, 67, 69, 70, 71, 72)
-
-
73. An apparatus to be used with a database and an interface, the interface for specifying reports to be generated, the database capable of storing a hierarchy of points slices where each point slice corresponds to a data segment and where a subset of the data segments can be combined to instantiate each specified report, the apparatus for automatically modifying a database structure as a function of specified reports to speed subsequent report generation and comprising:
-
(a) means for receiving a report request;
(b) means for identifying at least one required point slice needed to instantiate the report;
(c) means for searching the database for the at least one required point slice (d) means for where the at least one required point slice does not exist, identifying an intermediate subset that includes intermediate point slices required to generate the at least one required point slice;
(e) means for determining if the intermediate subset point slices exist;
(f) means for each non-existent intermediate subset point slice, using existing point slices to generate the non-existent intermediate subset point slice;
(g) means for combining the intermediate subset point slices to generate the at least one required point slice; and
(h) means for storing the at least one required point slice. - View Dependent Claims (74, 75)
-
-
76. An apparatus to be used with a database where a plurality of data segments are stored in the database, at least some of the data segments correlated with point slices in the database, the apparatus for expediting the process of accessing combinations of the data segments upon request and comprising:
-
means for receiving a report request;
means for identifying at least one required point slice required to instantiate the requested report;
means for if the at least one required point slice does not exist, identifying intermediate point slices that can be combined to provide the required point slice;
means for combining the intermediate point slices to generate the required point slice;
means for during the step of combining the intermediate point slices, determining if the combining process generates intermediate point slices that may be useful during subsequent requests; and
where there are useful intermediate point slices, means for storing the useful intermediate point slices for subsequent use. - View Dependent Claims (77, 78, 79, 80)
-
-
81. An apparatus to be used with a database where a plurality of data segments are stored in the database, at least some of the data segments correlated with point slices in the database, the apparatus for expediting the process of accessing combinations of the data segments upon request and comprising:
-
means for receiving a report request including a first time period over which data having a first set of attributes is needed to instantiate the requested report;
means for determining if there is an existing first point slice having the first set of attributes over a second time period where the first time period includes at least a time segment in addition to the second time period;
where the first point slice exists, means for generating a second point slice having the first set of attributes and including data corresponding to a new period including the first and second periods and any intervening period. - View Dependent Claims (82, 83, 84, 85, 86, 87)
-
Specification