ROLAP: Relational OLAP
As explained in the previous section, ROLAP accesses data stored in a data warehouse (relational database) to provide OLAP analyses. The premise of ROLAP is that OLAP capabilities are best provided directly against the relational database.
After defining the data model for the data warehouse, data from OLTP systems is loaded into the database. Database routines are run to aggregate the data, if required by the data model. Then indices are created to optimize query access time. Users submit multidimensional analyses to the ROLAP engine, which then dynamically transforms the requests into SQL execution plans. The SQL is submitted to the relational database for processing, the relational query results are cross-tabulated. A multidimensional result set is returned to the users. It is capable of utilizing pre-calculated results when they are available, or dynamically generating results from atomic information when necessary.
The ROLAP architecture was invented to directly access data from data warehouses, thereby supporting optimization techniques to meet batch window requirements and providing fast response time. These optimization techniques include application-level table partitioning, aggregate inferencing, denormalization support, and multiple fact table joins.
ROLAP is a three-tier, client/server architecture. The database layer utilizes relational databases for data storage, access, and retrieval processes. The application logic layer is the ROLAP engine which executes the multidimensional reports from multiple users. The ROLAP engine integrates with a variety of presentation layers, through which users perform OLAP analyses.
Figure 1. ROLAP architecture