3.2 Dicing

Dicing (it may be called also down-sizing) a n-dimensional datacube means to select a (possibly empty) subset of members from each dimension and discard all tuples which contains at least one member not in the selection (see Figure 3

Figure 3: Dicing a Cube

Note that the resulting datacube has the same dimension as the datacube before applying the operation. Even if the selection on a particular dimension contains a single member, it is not the same as slicing. The dimension is not reduced and a set containing a single member after all is also a set.

If no member is selected of any dimension, we get the empty cube. (Note that the empty cube is not the same than a 0-dimensional cube, which contains a single cell.) If all members are selected from all dimensions, the resulting cube is the same as the original cube.

Mathematically, the operation is simply stated as follows. As above, let’s start again with the 3-dimensional cube ai,j,k. Let Pi,j,k be a predicate (relation) which is true for some (i,j,k)-triples and false for the others. Then dicing ai,j,k on Pi,j,k means to create a cube di,j,k that contains all the (i,j,k)-triples of ai,j,k for which Pi,j,k is true. The result is an assignment:

di,j,k  ←  ai,j,k   forall (i,j,k) ∈ Pi,j,k

A shorter notation is :

di,j,k|P  ←   ai,j,k