Virtual cubes are analogous of views in a relational database: They are built on top of one or multiple cubes. Virtual cubes expose a combination (or a subset) of dimensions and measures available in regular cubes. For example, the Sales cube within the foodmart sample application exposes measures such as Unit Sales, Store cost, and Profit, whereas the Warehouse cube has measures Units Shipped and Units Ordered. The Warehouse_Sales virtual cube lets you analyze all of these measures through a single cube. Similarly, I could have a cube that counts the number of visits to my website, and another cube that counts purchases. A virtual cube could be used to calculate the average sales per visit, thereby allowing me to correlate data from multiple fact tables.
Virtual cubes also provide a handy tool for implementing cube security. For example, a human resources application could contain private information such as salary and commission rates along with employee names and demographics. You might want to expose the financial background only to the privileged individuals such as sales managers and vice presidents, whereas the demographic information could be available to all data warehouse users. If so, you could build a virtual cube based on the HR cube that exposes only the demographics, such as employee’s office location, marital status, job title, and hire date. You could grant access to this virtual cube to any user, whereas the HR cube that contains sensitive information could be made available only to a few individuals.