In order to manage large quantities of data, computer software applications known as relational database applications have been developed to organize and store the data in a logical manner. Typical relational database applications comprise a large number of records of interrelated information, wherein each record comprises a predetermined number of fields. In the context of a relational database, a database management system is typically used to provide the software tools to manipulate the database more simply. Example database management systems include Microsoft® Access, and Microsoft® SQL Server, among others. A database management system typically provides the user the ability to add, modify or delete data, and the ability to query, sort, or recombine records in the database. Moreover, the usual system also provides functionality related to maintaining the security and integrity of the database data.
An OLAP (Online Analytical Processing) database is a relational database system capable of handling queries more complex than those handled by standard relational databases. An OLAP database typically uses multidimensional access to data (viewing the data by several different criteria or “dimensions”), intensive calculation capability, and specialized indexing techniques. An OLAP database typically considers each data attribute (such as product, sales region, and time period) as a separate dimension. An OLAP database manager can compute the intersection of a plurality of dimensions (such as all products sold in a given region during a given time period within a certain range of retail prices) and display the intersection. OLAP databases typically allow users to query complex data interrelationships, and discover previously unknown patterns and relationships between data.
A cube is an OLAP data structure. A cube typically contains dimensions (such as a location dimension Country/Region/City, or a time dimension Hour/Minute/Second), in addition to data fields (such as Retail Price). Dimensions may be used to organize types of data into hierarchies with levels of detail, while data fields may be used to measure quantities. A cube may be used to aggregate (measure by way of performing mathematical operations) the facts within dimensions of a given OLAP schema so that queries may be accelerated.
OLAP cubes are typically static, and such a cube is therefore limited to a relatively small number of dimensions. Further, the dimensions in a static OLAP cube are typically predefined by the database management system developer, or by the database administrator. As a result, static OLAP cubes are inherently rigid which can limit their usefulness in many contexts. Further, security in OLAP cubes must typically be manually defined, regardless of whether security has already been specified for the OLAP database upon which the OLAP cube is based. As a result, database administrators must set up security once for the database, and then once again for each OLAP cube in use.
It is with respect to these considerations and others that the present invention has been made.