=Paper=
{{Paper
|id=Vol-28/paper-10
|storemode=property
|title=View materialization for nested GPSJ queries
|pdfUrl=https://ceur-ws.org/Vol-28/paper10.pdf
|volume=Vol-28
|dblpUrl=https://dblp.org/rec/conf/dmdw/GolfarelliR00
}}
==View materialization for nested GPSJ queries==
View Materialization for Nested GPSJ Queries
Matteo Golfarelli Stefano Rizzi
DEIS Ð University of Bologna DEIS, CSITE CNR Ð University of Bologna
Viale Risorgimento 2, Bologna, Italy Viale Risorgimento 2, Bologna, Italy
mgolfarelli@deis.unibo.it srizzi@deis.unibo.it
are typical dimensions while quantity sold and retail price
are measures.
Abstract A DW implemented on a relational DBMS is usually
organized according to the so-called star scheme [Kim96],
View materialization is a central issue in logical composed by one fact table containing the measures and
design of data warehouses since it is one of the one denormalized dimension table for each dimension of
most powerful techniques to improve the analysis. The primary key of each dimension table is
response to the workload. Most approaches in the imported into the fact table; the primary key of the fact
literature only focus on the aggregation patterns table is defined by the set of these foreign keys. Each
required by the queries in the workload; in this dimension table contains a set of dimension attributes
paper we propose an original approach to defining a hierarchy of aggregation levels for the
materialization in which the workload is corresponding dimension.
characterized by the presence of complex queries The basic mechanism to extract useful information
which cannot be effectively described only by from elemental data in DWs is aggregation. In principle,
their aggregation pattern. In particular, we all queries could be solved by directly aggregating the
consider queries represented by nested GPSJ elemental data in the base fact table; for efficiency reasons,
(Generalized Projection / Selection / Join) a DW typically stores, besides the elemental values of
expressions, in which sequences of aggregate measures, also values summarized according to some
operators may be applied to measures and aggregation pattern, i.e., to a set of dimension attributes
selection predicates may be formulated, at defining the coarseness of aggregation. Even summarized
different granularities, on both dimensions and data are organized into a star scheme, whose fact table is
measures. Other specific issues taken into account usually called a view; measure values are obtained by
are related to the need for materializing derived applying an aggregation operator to the data in the base
measures as well as support measures to make fact table or in another view with a finer pattern. Of
algebraic operators distributive. Based on this course, the larger the number of queries a view can be
query model, an efficient algorithm to determine used to answer, the more effective materializing it [Coh99,
a restricted set of candidate views for Yan95].
materialization, to be fed into an optimization Since pre-computing all the possible views is
algorithm, is proposed. Finally, the effectiveness unfeasible, several techniques to select an appropriate
of our approach is discussed with reference to a subset of views to materialize have been proposed. While
sample workload. most approaches only focus on the aggregation patterns
required by queries, very few works analyze how the
1 Introduction presence of different operators affects aggregation. On the
other hand, using only one operator (typically, the sum)
A data warehouse (DW) is a repository which provides to aggregate measures when materializing views, makes
an integrated environment for decision support. From a them useless for several queries.
logical point of view, a DW can be seen as a In this paper we propose an original approach to
multidimensional cube where each cell contains materialization in which the workload is characterized by
information useful for the decision process, i.e., a set of the presence of complex queries which cannot be
numerical attributes called measures, while each axis effectively described only by their aggregation pattern. In
represents a possible dimension for analysis. For example, particular, we consider queries represented by Nested
in a DW modeling a chain store, time, product and store Generalized Projection / Selection / Join (NGPSJ)
expressions, in which sequences of aggregate operators
The copyright of this paper belongs to the paperÕs authors. Permission to
may be applied to measures and selection predicates may
copy without fee all or part of this material is granted provided that the be defined, at different granularities, on both dimensions
copies are not made or distributed for direct commercial advantage. and measures. As a result, the correspondence between
Proceedings of the International Workshop on Design measures in the views and in the base fact table is not
and Management of Data Warehouses (DMDW'2000) necessarily one-to-one: some measures in the base fact
Stockholm, Sweden, June 5-6, 2000 table may not be present at all in a view, while others
(M. Jeusfeld, H. Shu, M. Staudt, G. Vossen, eds.) may correspond to several measures in the view;
furthermore, additional (either support or derived)
http://sunsite.informatik.rwth-aachen.de/Publications/CEUR-WS/Vol-28/
M. Golfarelli, S. Rizzi 10-1
measures may be included in the view in order to aggregate on {PName} calculating the maximum quantity
correctly compute aggregations. Particular emphasis is and the average price. Query q2 aggregates foodstuff sales
given to the effects on materialization of the contemporary on {TMonth, PType}, calculating for each month the
presence of multiple aggregation operators in a query. average price and the sum of the derived measure R =
Under these assumptions, an efficient algorithm to Qty ´ Prc . Query q3 requires to aggregate on {TMonth,
determine the restricted set of views which could be PName} calculating the monthly sums of the quantities
usefully materialized (candidate views) is proposed. The and that of the revenues, then to aggregate on {TYear,
algorithm builds a query view graph whose vertices PName} calculating the sums of the monthly quantities
represent candidate views and whose arcs denote the and the averages of the monthly revenues.
possibility of computing a view from another. The query These examples give rise to some considerations:
view graph may then be fed into an optimization
algorithm like the ones proposed in [Gup97, Gup99] 1. Different aggregate operators may be applied to the
which select, from the set of the candidate views, the same measure (e.g., SUM(Qty), MAX(Qty)).
subset which minimizes the response to the workload 2. Sequences of aggregate operators may be applied to a
under a given space constraint. measure (e.g., the maximum of the sums).
After discussing NGPSJ expressions in Section 2 and 3. Some aggregations may require support measures in
classifying aggregate operators in Section 3, in Section 4 order to be correctly calculated from partial aggregates
we define how views will be structured. The algorithm for (e.g., the average operator requires the cardinality of
determining candidate views is outlined in Section 5, each partial aggregate).
while Section 6 discusses the experimental results. 4. Calculating a derived measure from its component
measures may determine a wrong result if the query is
1.1 Motivating Example not solved directly on the base fact table (e.g.,
SUM(Qty)*AVG(Prc) ¹ SUM(Qty*Prc)).
The simple Sales star scheme used as a working example
is defined below:
In all these cases, in order to take full advantage of
materialization, it may be necessary to include additional
STORE (StoreId, SName, SCity) measures in views. Besides:
TIME (TimeId, TDay, TMonth, TYear)
PRODUCT (ProductId, PName, PType, PCategory) 5. The results of aggregation are affected by the
SALE (TimeId, StoreId, ProductId, Qty, Prc) selections which operate on its source data.
where the denormalized dimension tables leave out the 1.2 Related Literature
following hierarchies of functional dependencies:
Several works adopt graph-like structures to represent
views, but a few focus on how to build it. In [The97] an
SName®SCity, TDay®TMonth®TYear,
algorithm to build a multiquery graph is outlined; the
PName®PType®PCategory approach deals with the problem of building base fact
tables from operational databases. Besides, since only
Tuples in dimension tables are typically identified by join, selection and classical projection operators are
surrogate keys; in the rest of the paper, for the sake of involved, and no aggregation semantics is introduced, the
simplicity, surrogate keys will never be considered, approach cannot be used to determine aggregate views.
assuming that tuples are identified by an attribute of the The approach which is most closely related to ours is
hierarchy. the one described in [Aki99]. That work is improved by
As to the workload, consider the following queries on ours with reference to the class of queries considered
the Sales star scheme: (GPSJ queries with distributive operators vs. NGPSJ
queries with distributive, algebraic and holistic operators)
q1: ÒFor each product, find the average selling price and to the computational cost of the graph-building
and the maximum total quantity sold for the stores algorithm. In [Aki99] the complexity is always
which sold more then 1000 units of that productÓ exponential since, for each query, all the possible
q2: ÒFor each month and for each type of food evaluation strategies are built and organized into a graph;
product, find the average selling price and the total the query view graph is then obtained by applying a set of
revenueÓ rules that prune non-candidate views. The complexity of
our algorithm is exponential only in the worst case, to
q3: ÒFor product of type beverage and for each year, become polynomial in the best case.
find the total quantity sold and the average of the Query nesting is considered in [Ros98], where
total monthly revenuesÓ subqueries involve multiple dependent aggregates at
multiple granularities (multi-feature cubes). Though
Query q1 requires to first aggregate data on pattern interesting results concerning distributive and algebraic
{SName, PName} , calculating the average price and the cubes are provided, the queries considered are quite
sum of the quantities sold, then to select the stores for different from NGPSJ queries, since no nesting of distinct
which this sum is greater than 1000, finally to further aggregation operators at different granularities is possible.
M. Golfarelli, S. Rizzi 10-2
2 Query Modeling · the necessary joins are pushed below all projections
and selections;
In principle, the workload for a DW is dynamic and · projection and selections are coalesced as much as
unpredictable. A possible approach to cope with this fact possible;
consists in monitoring the actual workload while the DW · selections on dimensional attributes are pushed below
1
is operating. Otherwise, the designer may try to determine all projections and selections on measures .
a core workload a priori: in fact, on the one hand, the user
typically knows in advance which kind of data analysis In the rest of the paper we will consider NGPSJ
(s)he will carry out more often for decisional or statistical expressions in normal form applied to a star scheme S
purposes; on the other, a substantial amount of queries are with base fact table FT and dimension tables DT 1,...DT n,
aimed at extracting summary data to fill standard reports. structured as follows:
Basically, the approaches to view materialization differ
in the level of detail they adopt to model the queries in e: sPredMh(pPh,Mh(... sPredM1(pP1,M1(sPredA Ù PredM0
the workload. Some approaches only consider the ( FT >< DT 1 ... >< DTn)))...))
aggregation patterns [Bar97], while others analyze the
query features in more detail [Gup97]. where:
Our approach falls in the second group; in particular,
we consider queries represented by nested GPSJ · M j (j=1,...h) is a set of aggregate measures, each
expressions. A GPSJ (Generalized Projection / Selection / defined as OP(m1,ÉmmaxOP) where OP is an aggregate
Join) expression [Gup95] is a selection s1 over a operator, maxOP is the number of arguments of OP
generalized projection p over a selection s2 over a set of and mi is an algebraic expression involving measures
joins c: s 1ps 2c. The generalized projection operator, in Mj-1; M0 denotes the set of measures in FT.
p P,M(R), is an extension of duplicate eliminating · PredMj (j=0,...h) is a conjunction/disjunction of
projection, where P denotes an aggregation pattern, i.e., Boolean predicates expressed on measures in Mj;
the set of group-by attributes, and M denotes a set of · Pj (j=1,...h) is an aggregation pattern.
aggregate operators applied to the attributes in R. Thus, · PredA is a conjunction/disjunction of Boolean
GPSJ expressions extend select-joins expressions with predicates expressed on dimension attributes of
aggregation grouping and group selection. DT 1,...DT n.
Nesting GPSJ expressions means using the result from
an expression as the input for another; it adds expressive We wish to emphasize that, in this paper, we are not
power to GPSJ expressions since it allows sequences of interested in determining optimal execution plans.
aggregate operators to be used on a measure. For instance, Expressions are written in normal form for the sake of
the queries in Section 1 can be formulated as follows: clarity and in order to simplify their management in the
algorithm for building the query view graph; the order in
q 1: pPName,WAVG(P,C),MAX(Q)(sQ>1000 which operators appear within the expressions does not
( pPName,SName,Q=SUM(Qty),P=AVG(Prc),C=COUNT(*) reflect the execution plans that will be used to calculate
( SALE >< PRODUCT >< STORE))) them. For instance, pushing all the joins below the other
q2: pPType,TMonth,AVG(Prc),SUM(Qty×Prc)(sPCategory=ÕFoodstuffsÕ operators would obviously be inefficient in several cases,
( SALE >< PRODUCT >< TIME)) and pushing some projections/selections down might be
q3: pTYear,PName,SUM(Q),AVG(R) highly preferable.
( pTYear,TMonth,PName,Q=SUM(Qty),R=SUM(Qty×Prc) For the same reason, we will assume for simplicity
( sPType=ÕBevÕ(SALE >< PRODUCT >< TIME))) that the fact table is always joined to all the dimension
tables (though in some queries, depending on the
where WAVG(m,w) computes the weighted average of aggregation pattern required, it may be possible to omit
measure m based on the weights w. The SQL formulation one or more of them; see q1, q2 and q3 for instance). As to
of q1 is the following: aggregation patterns, we will write them in a concise non-
redundant form by dropping all the attributes functionally
determined by other attributes in the pattern. For instance,
SELECT PN,SUM(P*C)/SUM(C),MAX(Q)
FROM ( SELECT PRODUCT.PName AS PN,
q3 can be rewritten in concise form as
STORE.SName AS SN,SUM(SALE.Qty) AS Q,
AVG(SALE.Prc) AS P,COUNT(*) AS C
pTYear,PName,SUM(Q),AVG(R)(pTMonth,PName,Q=SUM(Qty),R=SUM(Qty×Prc)
FROM SALE,PRODUCT,STORE ( sPType=ÕBevÕ(SALE >< PRODUCT >< TIME)))
WHERE <...join conditions...>
GROUP BY PRODUCT.PName,STORE.SName )
by dropping attribute TYear from the intermediate pattern
WHERE Q>1000
since TMonth®TYear.
GROUP BY PN 1
While in general moving a selection on a measure in different positions
of an expression affects the expression semantics, selections on dimensional
attributes can be placed indifferently in any position outside the joins. Placing
The expressions above are in normal form [Gup95], them in the innermost possible position makes the materialization algorithm
i.e.: simpler since no push-downs or pull-ups are required to compare couples of
expressions.
M. Golfarelli, S. Rizzi 10-3
Definition 1. Given two NGPSJ expressions e i, ej determining if a conjunction of aggregation constraints is
defined on star scheme S, we say that ej can be derived feasible, and [Cab99], which presents a theoretical
from ei (ei³ej) if, by applying a sequence of generalized framework for studying aggregations from a declarative
projections and selections to e i, it is possible to and operational point of view.
obtain a NGPSJ expression which, put in normal
form, is equivalent to ej. 3.1 Support Measures
Query q can be solved on a view v if the NGPSJ
Derivability holds when every measure returned in ej can
expression representing q can be derived from the one
be calculated from those returned in e i. In evaluating
which defines v (v³q). If a distributive operator is used,
derivability, three factors must be taken into account:
aggregation can be equivalently carried out by steps; thus,
aggregation patterns, selections on both dimension
attributes and measures, and the aggregation operators
pTYear,SUM(Qty)(SALE >< STORE >< PRODUCT >< TIME)
applied to measures. For instance, expression
can be derived from
pPType,TYear,SUM(Q)(sQ>2000(pPName,TMonth,Q=SUM(Qty)
( sPCategory=ÕFoodstuffsÕ Ù TYear>Õ1997Õ R = pTMonth,Q=SUM(Qty)
( SALE >< PRODUCT >< TIME)))) ( SALE >< STORE >< PRODUCT >< TIME)
can be derived from by computing pTYear,SUM(Q)(R).
On the other hand, if an algebraic operator is used for
R = sQ>1000(pPName,TMonth,Q=SUM(Qty) aggregation, derivability holds only if the necessary
( SALE >< PRODUCT >< TIME)) support measures are added to the view. For instance, in
order to calculate the average of a set of elemental values
by computing from a set of partial aggregates of those values, the
cardinality of each single partial aggregate must be
pPType,TYear,SUM(Q)(sPCategory=ÕFoodstuffsÕ Ù TYear>Õ1997Õ Ù Q>2000(R)). known. Thus,
On the other hand, expression pTYear,AVG(Qty)(SALE >< STORE >< PRODUCT >< TIME)
sQ>1000(pPName,TMonth,Q=SUM(Qty) can be derived from
( sTDay>ÕFeb15,97Õ Ù Prc>10(SALE >< PRODUCT >< TIME)))
R = pTMonth,Q=AVG(Qty),C=COUNT(*)
cannot be derived from R since it specifies additional ( SALE >< STORE >< PRODUCT >< TIME)
selections on a dimension attribute which did not appear
in R due to aggregation (TDay) and on a measure which by computing pTYear,WAVG(Q,C)(R). Obviously, computing
in R is not available at the granularity required (Prc). pTYear,AVG(Q)(R) leads to a different result.
Finally, for a holistic operator, aggregation can never
3 Aggregate Operators be carried out by steps since the number of necessary
support measures is not bounded.
An aggregate operator is a function mapping a multiset of
values into a single value. An attempt to define rules for 3.2 Aggregation Sequences
aggregation of measures is presented in [Len97] and
[Sho96]: measures are classified into flow, stock and Aggregation sequences increase the query language
value-per-unit, and a table defines when each class of expressivity in two ways: by allowing two or more
measures can be aggregated depending on the operators different aggregate operators to be applied in sequence on a
used and on the type of hierarchy (temporal, non- measure, and by allowing selections to be applied on
temporal). A classification of aggregation functions which partially aggregated measures.
is relevant to our approach is presented in [Gra95]: Consider the following query:
· Distributive, that allows aggregates to be computed pP2,m2=OP2(m1)(pP1,m1=OP1(m)(pP0,m(...)))
directly from partial aggregates.
· Algebraic, that require additional information where OP1¹OP2. In general, there is no way of computing
(support measures) to calculate aggregates from m2 directly from m by coalescing OP1 and OP2. Besides,
partial aggregates. the aggregation sequence determines the query result: in
· Holistic, that do not allow aggregates to be computed fact, swapping OP1 and OP2 in q would change the
from partial aggregates through a finite number of semantics of m2; the semantics also depends on the
support measures. intermediate pattern P 1, which determines the partial
aggregates on which OP2 operates.
Other works demonstrating the importance of aggregation As to the use of selections, consider the query
operators are [Ros98b], which studies the problem of
pP1,m1=OP(m)(spredm(pP0,m(...)))
M. Golfarelli, S. Rizzi 10-4
pPName,MAX(Q1),(sQ1>1000(pPName,SName,Q1=SUM(Q),(v12)))
WAVG(P1,C1) P1=WAVG(P,C),C1=SUM(C)
q1 q2
pPName,MAX(Q)(sQ>1000(pPName,SName,Q=SUM(Qty),(v0))) pPType,TMonth,AVG(Prc),(sPCategory='Foodstuffs'(v0))
WAVG(P,C) P=AVG(Prc),C=COUNT(*) SUM(Qty.Prc)
v12
pPName,SName,TMonth,Q=SUM(Qty),P=AVG(Prc),(v0) pPType,TMonth,SUM(R),(sPCategory='Foodstuffs'(v12))
C=COUNT(*),R =SUM(Qty.Prc) WAVG(P,C)
v0
Figure 1: QVG for queries q1 and q2 (v0 = SALE >< STORE >< PRODUCT >< TIME).
in which the selection predicate on m reduces the set of · contain a subset of the tuples at a given aggregation
partial aggregates on which OP operates. In general, both pattern as a consequence of selections on dimension
pushing down and pulling up the selection operator alter attributes and measures;
the query semantics. · contain only a subset of the measures in the base fact
The different semantics which may be induced by table as a result of projections;
aggregation sequences play a central role in determining · include measures obtained by applying different
derivability between NGPSJ expressions; as shown in aggregation sequences to the same measure;
Section 5, this may lead to a dramatic increase in the · include derived measures and support measures
number of candidate views. necessary to support queries based on algebraic
operators.
4 Views
The widened definition of views given in our approach
View materialization consists in selecting, among all the may lead to proliferation of measures; very large tables
possible views, those that optimize the response to the may entail poor performance. In order to avoid this, it
workload under both a disk space and a maintenance cost may be convenient to adopt vertical partitioning
constraint; this can be formulated as a knapsack problem, techniques capable of splitting views into smaller
and is obviously NP-hard. Most methods in the literature fragments aimed at optimizing performance for a given
aim at determining the subset of views that could be workload [Gol00].
useful with reference to the workload (candidate views), The candidate views and the relationships between
then adopt heuristic algorithms to find sub-optimal them can be represented in a graph:
solutions [Gup97, Gup99]. In [Aki99], this is done with
reference to distributive aggregate functions; neither Definition 3. The query view graph (QVG) for
derived/support measures nor nesting of GPSJ queries are workload Q is the directed acyclic graph G=(V,A) such
considered. Within this paper we focus on determining that:
candidate views; the exponential dimension of the space of · V={v0,...vp}, where v0 is the base fact table joined
the possible views makes this step more complex and with the dimension tables and v1,...vp are the
crucial than that of selecting the candidate views to be candidate views.
materialized. · Each arc aijÎA denotes that vi³vj. Only the
elemental derivability relationships are
Definition 2. Given a star scheme S and a workload represented in A; those which can be obtained by
Q={q1,...qm} on S, a candidate view is a fact table transitivity are omitted.
defined by a NGPSJ expression e on S such that:
($ qiÎQ | e = qi) Ú ($ qi, qj ÎQ | (e ³ qi) Ù (e ³ qj) Ù The QVG for a given workload is necessarily unique,
/ | (e ³ eÕ) Ù (eÕ ³ qi) Ù (eÕ ³ qj)))
( $eÕ since the set of candidate views is univocally determined
by the set of queries2. Figure 1 represents the QVG for
In other words, a candidate view is a fact table which queries q1 and q2 in Section 1; to help the reader, also the
either includes exactly the tuples returned by one query or expressions which allow one view to be computed from
is the ÔcoarsestÕ table including all the tuples allowing another are shown (in dashed call-outs).
two or more queries to be solved. In [Bar97] the authors
prove that candidate views defined as above are the only
relevant views for materialization, i.e., that materializing
2
non-candidate views may never decrease the workload Actually, since some aggregation operators can be expressed in terms of
others (e.g., AVG can be computed from SUM and COUNT), some candidate
cost. In our approach, candidate views may: views can be rewritten using different operators; nevertheless, the QVG is still
unique since the set of queries which can be computed on each candidate view
does not change.
M. Golfarelli, S. Rizzi 10-5
v vcurr v vcurr
v vcurr
vcurr v vt
Case A Case B Case C Case D
Figure 2: Different relationships between couples of views.
5 Building the Query View Graph Merge(S,v,vcurr):
The QVG for star scheme S and workload Q={q1,...qm} is { Drel=Æ; // vertices in relationship D with v
built incrementally by merging each query with the QVG for each v currÎS do
according to the expression which defines it: { inserted=FALSE;
if ExploreSubGraph(v,vcurr,NULL,inserted)
// case A holds
QVGBuilder(Q,v0):
then return;
{ V={v0,q1};
if not inserted then DrelÈ={vcurr};
A={(v0,q1)};
}
QVG=(V,A);
if (Drel¹Æ) then // case D holds
for each qiÎQ, i>1 do
for each vjÎDrel do
{ S={vjÎV| Child(vj)=Æ};
{ vt=Ancestor(vj,v);
// S set of the leaves in QVG;
VÈ={vt};
// function Child(vj)
AÈ={(vt,v)};
// returns {vkÎV|(vj,vk)ÎA}
SÕ={vk|vjÎChild(vk)};
VÈ={qi};
AÈ={(vt,vj)};
Merge(S,qi,NULL);
Merge(SÕ,vt,vj); // merge vt
}
}
}
}
Merging rules are aimed at determining if and how a
query can be answered on a view belonging to the QVG. Figure 3: The Merge algorithm.
In general, the four possible relationships between two
candidate views v and vcurr as entailed by Definition 1 are Boolean ExploreSubGraph(v,vcurr,vsucc,inserted):
presented in Figure 2. In case A, v and vcurr are equivalent; // returns TRUE if v is already present
in cases B and C, one of the views can be derived from // among the predecessors of vcurr
the other; in case D no derivation relationship can be { Case Compare(v,vcurr) of:
established. In case D, vt is defined as follows: { ÔAÕ: { V-={v};
for each vjÎChild(v) do
Definition 4. Given two candidate views vi and vj, // v already exists as vcurr
the ancestor of vi and vj is the candidate view vt such { A-={(v,vj)}; AÈ={(vcurr,vj)}; }
that (1) both vi and vj can be derived from vt and (2) RemoveRedundantArcs();
for each other candidate view vtÕ which satisfies (1), it return TRUE;
is vtÕ³vt (in the worst case, it is vt º v0). }
ÔBÕ: { AÈ={(vcurr,v)}; // vcurr³v
The pseudo-code for the Merge algorithm is shown in if vsucc¹NULL then A-={(vcurr,vsucc)};
Figure 3. The algorithm finds the correct position for inserted=TRUE;
inserting v in the QVG, starting from its leaves and }
descending towards its root v0. If v is already present (case ÔCÕ: { AÈ={(v,vcurr)}; // v³vcurr
A), no additional views must be inserted and Merge if vsucc¹NULL then A-={(v,vsucc)};
terminates. Otherwise, if while descending a path a for each vj|vcurrÎChild(vj) do
derivability relationship (case B) with v is found, the if ExploreSubGraph(v,vj,vcurr)
correct insertion position on that path has been reached; if then return TRUE;
a D relationship (no derivability) among v and some view }
vcurr is found, the path is abandoned and vcurr is inserted ÔDÕ: // no derivability relationship
into a set Drel to be further examined. At the end, for each }
view in Drel, a new candidate view vt is determined by return FALSE;
function Ancestor and recursively merged into the QVG. }
The ExploreSubGraph function carries out a depth-
first exploration of the sub-graph including all the
predecessors of vcurr; its pseudo-code is shown in Figure 4. Figure 4: The ExploreSubGraph function.
M. Golfarelli, S. Rizzi 10-6
pPType,TMonth,SUM(R),(sPCategory='Foodstuffs'(v12)) p TYear,PName, (pTMonth,PName,Q1=SUM(Q),(sPType='Bev'(v13)))
WAVG(P,C) AVG(R1),SUM(Q1) R1=SUM(R)
q1 q2 q1 q2 q3
v12 v12 v13
pPName,SName,TMonth,Q=SUM(Qty),P=AVG(Prc),(v0)
C=COUNT(*),R =SUM(Qty.Prc) pPName,SName,TMonth,Q=SUM(Qty),P=AVG(Prc),(v0)
C=COUNT(*),R =SUM(Qty.Prc)
v0 v0
pPName,MAX(Q1),(sQ1>1000(pPName,SName,Q1=SUM(Q),(v12)))
WAVG(P1,C1) P1=WAVG(P,C),C1=SUM(C)
p TYear,PName,(sPType='Bev'(v23)) pPType,TMonth,SUM(R),(sPCategory='Foodstuffs'(v23))
WAVG(P,C)
AVG(R),SUM(Q)
q1 q2 q3
q1 q2 q3
v23
v23
v12 pPName,TMonth,Q=SUM(Qty),P=AVG(Prc),(v0)
C=COUNT(*),R =SUM(Qty.Prc) v12
pPName,TMonth,SUM(Q),WAVG(P,C),(v12)
SUM(C),SUM(R)
v0 v0
Figure 5: Construction of the QVG for queries q1, q2, q3.
In Figure 5, the steps of the QVGBuilder algorithm for search space is pruned by neglecting all the vertices for
the queries proposed in Section 1 are shown. View v13 which a derivability relationship with the new vertex to
does not appear in the final QVG since it is equivalent to be positioned can be inferred from the graph structure.
v12 (case A). As to v23, the search is restricted to arc
(q2,v12) since a derivability relationship (case B) is found 6 Experimental Tests
and the other can be inferred.
If we restrict to considering only the aggregation We tested our approach on the TPC-D benchmark; the
patterns, the QVG resulting from the algorithm workload includes four standard TPC-D queries and three
degenerates to the MDred Lattice presented in [Bar97]. additional NGPSJ queries. In order to demonstrate the
With reference to that approach, ours has a lower effectiveness of our approach, we compared the results
computation complexity (in terms of comparisons obtained by applying the same materialization heuristics
between expressions) since the derivability relationships [Bar97] to our QVG and to the lattice defined in [Bar97]
expressed by the QVG are actively used to restrict the (considering the same global space constraint). The cost
search to the sub-graph where the new vertex can be function adopted expresses the total number of disk pages
inserted. In fact, the complexity of Merge for adding the which must be accessed in order to solve each query,
(i+1)-th query to the QVG reaches O(2i) only in the worst taking both the view size and the query selectivity into
case, in which (1) the QVG already contains 2 i views and account. The results are summarized in Figure 6.
(2) all the candidate views solving both qi+1 and each The low execution cost for the QVG-based approach is
element in the power set of the i queries in the QVG must mainly due to the fact that, since NPSGJ views can
be created, i.e., relationship D holds for all the views in express the nesting of aggregation operators, queries can
the QVG. In the best case the QVG degenerates into a be executed on views aggregated at a ÒhigherÓ pattern.
path, and the complexity drops to O(1). In the other Besides, since NPSGJ views are more closely tailored on
cases, the complexity depends on the specific queries than classical views, more NPSGJ views typically
characteristics of the queries and on the order in which fit the same space constraint. These considerations are
they are merged. The algorithm is efficient since the further supported by observing how, in Figure 6,
M. Golfarelli, S. Rizzi 10-7
materializing the maximum number of useful NPSGJ [Bar97] E. Baralis, S. Paraboschi and E. Teniente.
views (7, one for each query in the workload) requires Materialized view selection in
only 1.1 GB, and entails a lower cost than materializing multidimensional database. Proc. 23rd Int.
the same number of classical views. Conf. on Very Large Data Bases, Athens,
Greece, pp. 156-165, 1997.
7 Conclusions [Cab99] L. Cabibbo and R. Torlone. A framework for
In this paper we have presented an original approach to the investigation of aggregate functions in
view materialization in which NGPSJ expressions are database queries. Proc. Int. Conf. on Database
used to model both queries and candidate views. An Theory, Jerusalem, Israel, 1999.
algorithm for selecting the minimal set of candidate views [Coh99] S. Cohen, W. Nutt and A. Serebrenik.
by incrementally inserting queries into a directed acyclic Algorithms for rewriting aggregate queries
graph has been proposed; the algorithm is efficient since, using views. Proc. Int. Workshop on Design
every time a query is inserted, only a portion of the graph and Management of Data Warehouses,
is visited. Heidelberg, Germany, 1999.
Our approach relies on the existence of a method for
comparing two relational algebra expressions and [Gol00] M. Golfarelli, D. Maio and S. Rizzi. Applying
determining their ancestor [Nut98]. The procedure for Vertical Fragmentation Techniques in Logical
comparing two NGPSJ expressions can be seen as an Design of Multidimensional Databases. To
nd
iteration of the comparison between two GPSJ appear in Proc. 2 Int. Conf. on Data
expressions, which was proposed in [Gup95]. Warehousing and Knowledge Discovery,
Comparison proceeds from inside the two nested Greenwich, 2000.
expressions, considering at each step two units having the [Gra95] J. Gray, A. Bosworth, A. Lyman and H.
form p(s(R)); while in [Gup95] R denotes a set of joins, Pirahesh. Data-Cube: a relational aggregation
here it denotes the result of the NGPSJ expressions operator generalizing group-by, cross-tab and
analyzed up to the previous step. Since the problem of sub-totals. Technical Report MSR-TR-95-22,
comparing two GPSJ expression is undecidable [Ros98b], Microsoft Research, 1995.
the ancestor determined will sometimes be sub-optimal.
Our future work will focus on devising a comparison [Gup95] A. Gupta, V. Harinarayan and D. Quass.
algorithm specifically oriented to NGPSJ expressions, by Aggregate-query processing in data-
taking their peculiarities into account. warehousing environments. Proc. 21st Int.
Conf. on Very Large Data Bases, Zurich,
Switzerland, 1995.
QVG LAT
[Gup97] H. Gupta. Selection of views to materialize in a
300 data warehouse. Proc. Int. Conf. on Database
Theory, Delphi, Greece, pp. 98-112, 1997.
250 4
thousands of pages
5
[Gup99] H. Gupta and I.S. Mumick. Selection of views
200 to materialize under a maintenance cost
5 constraint. Proc. Int. Conf. on Database
150 6
5 Theory, Jerusalem, Israel, 1999.
6 6
100 6 6 7
[Kim96] R. Kimball. The data warehouse toolkit. John
Wiley & Sons, 1996.
50 6 7 7 7 7 7
[Len97] H.J. Lenz and A. Shoshani. Summarizability
0
in OLAP and statistical databases. Proc.
0.8 0.9 1.0 1.1 1.2 1.3 1.4 1.5
Statistical and Scientific Database
GB
Management, Washington, 1997.
Figure 6: Execution costs for the QVG-based and the [Nut98] W. Nutt, Y. Sagiv and S. Shurin. Deciding
lattice-based approaches, on a sample workload, in equivalences among aggregate queries. Proc.
function of the global space constraint. Besides each value 17th Symposium on Principles of Database
point, the number of views materialized. Systems, 1998.
[Ros98] K. A. Ross, D. Srivastava, and D.
Chatziantoniou. Complex aggregation at
References multiple granularities. Proc. Int. Conf. on
Extending Database Technology, 1998.
[Aki99] M. Akinde and M. Bšhlen. Constructing
GPSJ view graphs. Proc. Int. Workshop on [Ros98b] K. A. Ross, D. Srivastava, P. J. Stuckey and
Design and Management of Data Warehouses, S. Sudarshan. Foundations of aggregation
Heidelberg, Germany, 1999.
M. Golfarelli, S. Rizzi 10-8
constraints. Theoretical Computer Science,
193(1-2):149-179, 1998.
[Sho96] A. Shoshani. OLAP and statistical databases:
similarities and differences. Proc. Int. Conf. on
Information and Knowledge Management,
Rockville, Maryland, 1996.
[The97] D. Theodoratos and T. Sellis. Data warehouse
configuration. Proc. 23rd Int. Conf. on Very
Large Data Bases, Athens, Greece, pp. 126-
135, 1997.
[Yan95] W.P. Yan and P. Larson. Eager and lazy
aggregation. Proc. 21st Int. Conf. on Very
Large Data Bases, Zurich, Switzerland, pp.
345-357, 1995.
M. Golfarelli, S. Rizzi 10-9