I found myself repeatedly need to explain “What is a cube?” in writing post for this blog. So I decided to write a short post explaining what a cube is. So next time I use the term ‘cube’ in my blog post, I just have to refer/link to this post.
In SQL Server world, practically speaking, a cube is an Analysis Services database. People often use the word ‘cube’ as the short form of ‘SSAS cube’.
In computer science world, an OLAP cube, or just ‘cube’ for short, is a multidimensional database. A multidimensional database (MDB) is a structure designed to store measure data (fact) and hierarchical data (dimension), where the combination of members of each dimension points to zero, one or many measure values. This relationship can be described as a discreet function m[1..n] = f (d1, …, dn), in other words m is a function of d1 to dn, where m is the measure value and d1 to dn are the dimension members. The structure stores the aggregate values as well as the base values, typically in compressed multidimensional array format, rather than in RDBMS tables. Aggregate values are pre-computed summary or calculations of the base values. Examples of multidimensional database are Microsoft Analysis Services, Hyperion Essbase and Cognos PowerCube. The terms that people use for multidimensional database are hypercube, cube, OLAP cube, multi-dimensional database (abbreviated as MDB, MDD or MDDB) and multi-dimensional data store (MDDS).