Patent ID: 8463736

Claim:
A database management system comprising: a relational data store storing fact data; a multi-dimensional data store configured to store aggregated fact data in a multi-dimensional data structure; a communication interface operably connected between the relational data store and the multi-dimensional data store for the communication of fact data from the relational data store to the multi-dimensional data store and for the communication of aggregated fact data from the multi-dimensional data store to the relational data store; and a computer system comprising computer hardware, the computer system programmed to implement: a multi-dimensional data store generation mechanism configured to generate the multi-dimensional data store by calculating aggregated fact data from data stored in the relational data store according to a multi-dimensional data aggregation process, and store the aggregated fact data in the multi-dimensional data store; a query servicing mechanism configured to service one or more natural language queries from a user, the query servicing mechanism comprising: a query processing mechanism configured to process a given natural language query, the query processing mechanism configured to: make a determination of whether servicing the given natural language query needs data stored in the relational data store or the multi-dimensional data store; and generate one or more structured query language (“SQL”) statements, wherein the SQL statements refer to the relational data store or the multi-dimensional data store based on said determination, wherein the multi-dimensional data aggregation process comprises: (i) determining if the aggregated fact data needed to service the given natural language query is already pre-calculated and stored within the multi-dimensional data store, and in response to determining that the aggregated fact data needed to service the given natural language query is already pre-calculated and stored within the multi-dimensional data store, retrieving the pre-calculated fact data and returning the retrieved pre-calculated fact data to the query processing mechanism; and (ii) in response to determining that the needed fact data is not already pre-calculated and stored within the multi-dimensional data store, calculating the needed aggregated fact data on demand, and automatically forwarding the aggregated fact data to the query processing mechanism.