<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Efficient Query Processing with Associated Horizontal Class Partitioning in an Object Relational Data Warehousing Environment</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Qing</forename><surname>Li</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">Department of Computer Science</orgName>
								<orgName type="institution">University of Science and Technology Clear Water Bay</orgName>
								<address>
									<settlement>Hong Kong</settlement>
									<country>PRC</country>
								</address>
							</affiliation>
							<affiliation key="aff2">
								<orgName type="department">Department of Computer Science</orgName>
								<orgName type="institution">City University of Hong Kong</orgName>
								<address>
									<settlement>Kowloon, Hong Kong</settlement>
									<country>PRC</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Kamalakar</forename><surname>Karlapalem</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">Department of Computer Science</orgName>
								<orgName type="institution">University of Science and Technology Clear Water Bay</orgName>
								<address>
									<settlement>Hong Kong</settlement>
									<country>PRC</country>
								</address>
							</affiliation>
							<affiliation key="aff0">
								<orgName type="department">Department of Computer Science</orgName>
								<orgName type="institution">University of Science and Technology Clear Water Bay</orgName>
								<address>
									<settlement>Hong Kong</settlement>
									<country>PRC</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Vivekanand</forename><surname>Gopalkrishnan</surname></persName>
							<affiliation key="aff1">
								<orgName type="department">Department of Computer Science</orgName>
								<orgName type="institution">City University of Hong Kong</orgName>
								<address>
									<settlement>Kowloon, Hong Kong</settlement>
									<country>PRC</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">M</forename><surname>Jeusfeld</surname></persName>
							<affiliation key="aff3">
								<address>
									<addrLine>June</addrLine>
									<settlement>Stockholm</settlement>
									<country key="SE">Sweden</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">H</forename><surname>Shu</surname></persName>
							<affiliation key="aff4">
								<address>
									<addrLine>-6</addrLine>
									<postCode>2000</postCode>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">M</forename><surname>Staudt</surname></persName>
							<affiliation key="aff4">
								<address>
									<addrLine>-6</addrLine>
									<postCode>2000</postCode>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><roleName>eds.</roleName><forename type="first">G</forename><surname>Vossen</surname></persName>
							<affiliation key="aff4">
								<address>
									<addrLine>-6</addrLine>
									<postCode>2000</postCode>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Efficient Query Processing with Associated Horizontal Class Partitioning in an Object Relational Data Warehousing Environment</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">7BFD5329313A3181D484590796EB1A2E</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T11:25+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>In an Object Relational Data Warehousing (ORDW) environment, the semantics of data and queries can be explicitly captured, represented, and utilized based on is-a and class composition hierarchies, thereby resulting in more efficient OLAP query processing. In this paper, we show the efficacy in building semantic-rich hybrid class partitions by incorporating the Associated Horizontal Class Partitioning (AHCP) technique on the ORDW schema. Given a set of queries, we use primary and derived partitioning algorithms to select (near) optimal AHCPs, thereby embedding query semantics into the partitioned framework. Finally, by a cost model, we analyze the effectiveness of our approach visa-vis the unpartitioned approach.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">Introduction</head><p>Data warehouse (DW) equips users with more effective decision support tools by integrating enterprise-wide corporate data into a single repository from which business end-users can run reports and perform ad hoc data analysis <ref type="bibr" target="#b1">[CD97]</ref>. As DWs contain enormous amount of data, often from different sources, we need highly efficient indexing structures <ref type="bibr" target="#b13">[Sar97]</ref>, <ref type="bibr" target="#b8">[GHRU97]</ref>, <ref type="bibr" target="#b16">[VLK00]</ref>, materialized (stored) Views <ref type="bibr" target="#b12">[Rou97]</ref>, and query processing techniques <ref type="bibr" target="#b15">[VLK99]</ref> to efficiently answer on-line analytical processing (OLAP) queries. Materialized Views represent integrated data based on complex aggregate queries, and should be available consistently and instantaneously. Maintaining the integrity of these Indexes and Views <ref type="bibr" target="#b9">[GM95]</ref>, <ref type="bibr" target="#b10">[MK99]</ref> imposes a challenging problem when the source data changes frequently, when the size of the DW keeps growing, and/or when the user queries become increasingly complex. An extensible framework that can accommodate dynamic warehousing <ref type="bibr" target="#b3">[Dayal99]</ref> of changing data gracefully, and have adaptive handles for processing OLAP queries efficiently is needed.</p><p>In <ref type="bibr" target="#b14">[VLK98]</ref>, we showed that besides establishing a semantically richer framework for multi-dimension hierarchies, the Object Relational View (ORV) model provides excellent support for complex object retrieval. In <ref type="bibr" target="#b15">[VLK99]</ref> we presented the Object Relational Data Warehousing (ORDW) approach to address some of the issues discussed in <ref type="bibr" target="#b14">[VLK98]</ref> on data warehousing. More specifically, we devised a translation mechanism from the star/snowflake schema to an object oriented (O-O) representation. In <ref type="bibr" target="#b16">[VLK00]</ref>, we advocated a query processing strategy implementing the Structural Join Index Hierarchy (SJIH) on ORDW.</p><p>In this paper, we show the efficacy in building semanticrich hybrid class partitions by incorporating the Associated Horizontal Class Partitioning (AHCP) technique on the ORDW schema. Given a set of queries, we use primary and derived partitioning algorithms to select (near) optimal AHCPs, thereby embedding query semantics into the partitioned framework. Finally, by a cost model, we analyze the effectiveness of our approach vis-a-vis the unpartitioned approach.</p><p>To put our research in perspective, we review some related work and briefly outline our previous work in the field of ORDW and Class Partitioning on OODBs in section 2. We further motivate our study by presenting on the ORDW schema some sample queries whose patterns are classified based on DW operations and by OO concepts. Obtaining an optimal partitioning scheme to process this set of queries is the focus of section 3, where we employ a hill-climbing heuristic algorithm to select a (near) optimal AHCPs. This algorithm is profiling driven, and can be further extended to incorporate other semantics. In section 4, we compare results of retrieval costs using the AHCPs vs. the unpartitioned case. Section 5 concludes the paper with a brief look at future work. Recently, we have conducted some preliminary studies on developing an ORDW framework. In <ref type="bibr" target="#b14">[VLK98]</ref>, we showed that the ORV (Object Relational View) model offers inherent features that are conducive to managing a data warehouse. We listed the various issues that arise during the design of an OR-DWMS (Object Relational Data Warehouse Management Systems). Here, OR means an object-oriented front-end or views to underlying relational data sources. Based on the issues discussed in <ref type="bibr" target="#b14">[VLK98]</ref>, we put forward a three-phase design approach in <ref type="bibr" target="#b15">[VLK99]</ref>, which also provided a query-driven translation mechanism from the star/snowflake schema to an object oriented (O-O) representation. Some query processing strategies utilizing Structural Join Index Hierarchy (SJIH) techniques for complex queries on composite objects were addressed in <ref type="bibr" target="#b16">[VLK00]</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">Background and Motivating Example</head></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.2">Motivating Query Examples</head><p>To further motivate our subsequent discussions, let us consider the sample ORDW schema as shown in Figure <ref type="figure" target="#fig_0">1</ref>, taken from <ref type="bibr" target="#b15">[VLK99]</ref>. This schema is a simple singlestar/snowflake schema, for a sales application. As seen in the figure, dimension classes (DCs) are connected by solid arrows (composition hierarchies) to the main fact class (FC). In addition, there are other inter-dimension hierarchies (as obtained by vertical partitioning<ref type="foot" target="#foot_0">1</ref> ), and other composition links. Moreover, we also demonstrate is-a hierarchies (denoted by dotted lines) obtained by horizontally partitioning the ORDW schema. The figure shows the class composition hierarchy for the Time dimension, and the is-a hierarchy (shaded area) for the Customer dimension.</p><p>A Fact is the "subject" of the OLAP queries, and is quantified by its dimensions and "values". Dimensions can be hierarchical and composite in nature, whereas Values are numerical data. When a Dimension is complex enough to contain various other components that can themselves be classified as Dimensions and Values then that Dimension can be a "Fact" of another OLAP query. In this case, we can consider the schema to be that of "Nested Fact" or "Fact within Fact".</p><p>Whereas when two (or more) Facts share (one or more) Dimensions, then the OLAP queries can be considered as "Inter-Fact". To support OLAP applications, we define a group of OLAP queries OQG (modified from <ref type="bibr" target="#b16">[VLK00]</ref> by adding predicates), which are invoked as a set (not necessarily in an order). Query patterns in the OQG may not be restricted to a particular composition hierarchy or inheritance hierarchy. The access paths may involve multiple paths emanating from the same complex object, as well as interact with entities in completely unrelated complex objects.</p><p>For this discussion, queries involving Nested Facts can be considered as subsets of inter-Fact queries. They are distinguished by the presence of a semantic disjointness between the Facts involved. It must be noted though that this disjointedness does not preclude the Facts from sharing the same component objects. A query-processing scheme built on separate Facts will inadvertently need costly joins. This inefficiency is amplified for queries with low selectivity and high frequency. This calls for a need for a partitioning scheme that transcends Facts and is not restricted by the hierarchies mentioned. It must be noted that such a partitioning scheme may well be overlapping and hence will suffer on the storage space. Some OLAP queries could be on the entire range of Sales and would need to access multiple dimensions for the "Group BY". However, as seen above, some queries could have a predicate range such as "Categ=Elec" or "Country=US". In such cases, the search space on the Fact "Sales" is reduced by a factor equal to the selectivity of the predicate. However, this does not help during query processing (normal unpartitioned case), as the entire FC is processed while searching for relevant tuples. Even in cases where indexes are built <ref type="bibr" target="#b16">[VLK00]</ref>, the benefit could be reduced, as index creation takes up more time due to the enormity of the FC. Further, as the OLAP queries involve multiple paths (multiple selections and group bys), the size of the Forward and Reverse Joins is dependent on the size of the Root (FC). This calls for the need to partition the FC according to the query characteristics.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Based on classifications by DW operations &amp; by OO concepts, we consider the following queries listed in</head></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">AHCP Selection Methodology</head><p>The Associated Horizontal Class Partitioning (AHCP) methodology creates semantic-rich hybrid class partitions for efficient query processing. It is a technique by which several classes can be partitioned according to the semantics of another class in its aggregation hierarchy. We employ the AHCP on our ORDW schema, and propose to extend its applicability from class composition hierarchies to also include is-a hierarchies and links quantified by partial participation, thereby encompassing the Complete Warehouse Schema (CWS) in the ORDW.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1">AHCP fundamentals</head><p>The total cost of the AHCP framework can be broadly categorized as partition storage cost, retrieval cost and maintenance cost. In this paper, we also incorporate query-centric information including selectivity and frequency to determine the selection of minimal complete set of partition fragments for optimal storage, maintenance and retrieval costs.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1.1">Primary Horizontal Partitions (PHP)</head><p>Classes in the ORDW schema can be denoted as C i p , which indicates the i th class in the p th path. The root class (FC) is denoted as C 0 . Primary Horizontal Partitions on these classes can be denoted as sub-classes and placed in the is-a hierarchy under the original partitioned class. Note that the (sub) is-a hierarchy in our examples is denoted by the subscript i.j , which denotes the j th subclass of the i th class (in the p th path). The Primary Horizontal Partitioning (PHP) operation is denoted as :</p><formula xml:id="formula_0">PHP(C i p ) p1 → { C i.1 p , C i.2 p ,..., C i.n p }</formula><p>where (C i p ) is the Class that is Primary Horizontally Partitioned according to a predicate (p1), resulting in n fragments which are treated as classes {C i.n p }. Note however, that since FC is the only root in the realm of our OLAP OQGs, any primary partition of the root need not display the path suffix; ie. (C 0.1 0 = C 0.1 ).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Fig. 2. An AHCP example on the Fact and Dimensions</head><p>The example in figure <ref type="figure">2</ref> shows classes C 0 , C 2 1 and C 1 2 in the class composition hierarchy (CCH). Some of the PHPs are { C 1.1 2 , C 1.2 2 and C 1.3 2 }, connected by dashed lines (is-a) to the super-class C 1 2 which was partitioned.</p><p>As the PHPs can be considered as subclasses of the class on which the PHP were performed, they are placed in the is-a hierarchy of the schema. We can have any no. of PHPs on a single class based on a number of predicates. For a single simple predicate, the PHPs are disjoint, i.e. they don't share any objects. PHP schemes based on multiple or complex predicates on the same class, may induce overlapping fragments, however we do not consider such schemes in this work to avoid complexity.</p><formula xml:id="formula_1">C 0 C 1.2 2 C 1 2 C 1 3 C 1 1 C 2 3 C 2 1 C 1.1 2 C 1.3 2 Is-a CCH LEGEND C 2.1 1 C 2.2 1 C 0.21 1 C 0.22 1 C 0.11 2 C 0.12 2 C 0.13 2 C 0.1 0 C 0.2 0 C 3 2.21 1 C 3 2.22 1 C i.j p AHCP Fragment ation Join</formula></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1.2">Associated Horizontal Class Partitions (AHCP)</head><p>After the PHPs are created, the AHCP operation may be performed on some other classes in the schema. As noted above, most queries in the OQG access the root (FC) for its value based attributes, and hence this paper deals primarily with AHCP of the root class. The AHCP operation can be denoted as follows : The result is shown in shaded boxes under C 2 3 in the figure <ref type="figure">.</ref> An important point to be noted here is that while the Fragments obtained by any single AHCP operation on the root are always disjoint, the same cannot be said about Fragments obtained by AHCP on any other (Dimension) class. This indicates the storage overhead to be incurred while performing AHCPs on the Dimension classes, and must be taken into account by the cost model.</p><formula xml:id="formula_2">AHCP (C j q , PHP(C i p ) p1 ) → { C q j.i1 p , C q j.</formula></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2">AHCP cost model</head><p>In an ORDW, partitioning can be implemented by means of Method Induced Partitioning techniques <ref type="bibr" target="#b6">[KL00]</ref>. Moreover, due to the structural and cardinal differences inherent between Dimension Classes (DC) and the Fact Class (FC), we can assume that the DCs need not be physically partitioned as they may be wholly or partially stored in memory (under both medium and large memory hypothesis). Hence, the cost of the traditional join between the PHP fragments and the AHCP fragments can be ignored. This join can be achieved by employing the methods of the FC.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2.1">Storage Cost</head><p>The Storage cost (SC) has two components : Primary Horizontal Partition (PHP), and the Associated Horizontal Class Partition (AHCP). It can be stated as : SC = SC PHP + SC AHCP They are given as follows :</p><p>1. SC PHP (C 1 ) :</p><p>We assume that in most cases, and especially in this paper, we consider only one PHP per class. This ensures that the partitions are disjoint for simple predicates. In such cases, there's negligible overhead for storage cost as SC PHP (C 1 ) = | C 1 | (no. of pages occupied by the class C 1 + catalog entries for the no. of PHPs of C 1 . These catalog entries give details of the partitioned Class structure, extent and qualifying rules. Hence, they're very small and can easily be accommodated in memory (in both the medium and large memory hypothesis.</p><p>In case of multiple complex predicates on a Dimension (C 1 ), resulting in overlapping fragments, we propose not to replicate the entire class extent, but rather only replicate the Class OIDs (and some frequently accessed attributes) in the separate Partitions.</p><p>In this case, the storage overhead can be estimated as : Given a maximum of 2 replicated attributes or 20% of the class structure, and a uniform size of attributes, we can accommodate up to 5 different Partitioning schemes for an increase of 100% in SC PHP (C 1 ).</p><formula xml:id="formula_3">SC PHP (C 1 ) = || C 1 || x No</formula></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.">SC AHCP (C 0 ) :</head><p>This is by far the biggest increment for storage cost in the AHCP ORDW. As noted above, the root (C 0 ) would be the widely used as the candidate for performing AHCP.</p><p>Since any predicate on a single dimension can only induce disjoint partitions in the root, the partitioning overhead is negligible for multiple partitioning schemes in a single DC.</p><formula xml:id="formula_4">SC AHCP (C 0 ) = | C 0 | + No PHP x Size Cat (PHP i ).</formula><p>where Size Cat = Catalog entry size (structure, extent, qualifying rules).</p><p>However, as we incorporate multiple predicates on different dimension classes, SC AHCP (C 0 ) grows linearly as the no. of dimensions (assuming only single complex predicates on each dimension). This can be a large overhead, as C 0 as the FC, is very large (~order of Gigabytes). Hence, we intend to reduce this overhead by means of a Multiple Partition Processing Plan (MP 3 ), based on MVPP <ref type="bibr" target="#b17">[YKL97]</ref>. This would entail a compromise between duplication and efficiency of the partitions, as sub-fragments will have to be created to support the AHCPs. The Join needed to produce the final result from these sub-fragments constitutes the increase in retrieval cost.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2.2">Maintenance cost</head><p>As noted above, since inter-fragment join is avoided between the PHP and AHCP fragments, maintenance cost is considerably simplified due to the AHCP operation.</p><p>As the ORDW is a read mostly and append only environment, we can safely estimate the maintenance cost even though the schema is vastly enhanced (and complicated) by semantics. For example, once the Warehouse has achieved full functionality, in each update cycle of the ORDW, we can expect up to 0.5% addition of the FC (this is a very conservative estimate based on our same DW, maintaining 10 years worth of "Sales" data and updated daily). The updates to DCs can be ignored mainly because their percentage will be even smaller and also because most of the DCs will be in memory anyway. Only these 0.5% FC objects have to be processed in order to maintain the Partitioning scheme.</p><p>The Maintenance cost for the AHCP partitioning scheme (MC) can be defined as the extra cost of maintaining the AHCPs and the PHPs catalogs.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>MC = MC Cat (AHCP i ) + MC Cat (PHP i )</head><p>Since MC Cat (PHP i ) is negligible as the PHPs are in memory, the main cost is on the AHCP maintenance, which is comprised of maintaining catalog entries of the AHCP, Generally this meta-information is small enough to be stored completely in memory.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2.3">Retrieval cost</head><p>To determine retrieval cost, we break up the complex queries into smaller atomic sub-query expressions. We denote this by means of a MQO (Multiple Query Optimization) graph in the MP 3 , which is further explained in section 3.3.</p><p>The Retrieval Cost (RC) is the cost of parsing the catalog, accessing the relevant AHCPs (as union) and the cost of the join with corresponding PHPs.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>RC = RC Cat + RC AHCP + RC PHP + RC join</head><p>However, as we store the PHPs and the join in memory, and the Catalog is relatively small, RC is mainly composed of AHCP loading cost. Since this is smaller than the complete FC by a factor of min (sel pi ), where sel pi indicates the selectivity of the predicates on query Q i , we achieve a considerable savings in retrieval cost.</p><p>This saving is also obtained when indexing schemes like the SJIH <ref type="bibr" target="#b16">[VLK00]</ref> are built on top of the AHCPs, and also when aggregate views have to be developed.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.3">AHCP selection procedure</head><p>We approach the problem of performing AHCP in the ORDW in a different manner from the case of DHCP in a normal OODB <ref type="bibr" target="#b0">[BKS98]</ref>. IN <ref type="bibr" target="#b0">[BKS98]</ref>, various techniques (candidates) were considered to decide the best PHP candidate for performing DHCP. Here we consider all the PHP candidates, and our AHCP algorithm generates a optimal combination of complete and minimal set of AHCPs.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.3.1">AHCP Algorithm (also called MP3 algorithm)</head><p>The algorithm can be broken into three parts :</p><p>1. Generating an exhaustive set of AHCPs based on query characteristics (selectivity, fan-out) obtained from the entire query space.</p><p>1.1 For each query Q i in the OQG, generate logical associated fragments {C 0.j p } from {C j p } that satisfies sub-expressions of Q i completely. 1.2 Perform an intersection of the C 0.j p fragments for all Q i . This creates the complete disjoint AHCP set, on which the queries will be based.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.">Assigning query weights depending on priority and importance (frequency).</head><p>2.1 For each query Q i , evaluate the minimal set of query processing fragments : QPF i = { C 0.j1 p1 , C 0.j2 p2 , … , C 0.jm pm } 2.2 Create query plans for each Q i having nodes involving unions of fragments, which exist in multiple QPF i . 2.3 Assign cumulative weights to the nodes depending on their utility to consecutive Q i (based on frequency and cardinality).</p><p>3. Selecting a minimal complete set of AHCPs based on the query weights, subject to storage and maintenance cost.</p><p>3.1 For each Q i , perform top-down evaluation of nodes in its query plan. 3.2 Select lower nodes (breakup) if the retrieval cost is lesser. This part is similar to that of the Algorithm for selecting views to be materialized given an MVPP <ref type="bibr" target="#b17">[YKL97]</ref>. Figure <ref type="figure" target="#fig_3">3</ref> shows examples of AHCPs (AHCP-1, AHCP-2) and PHPs (PHP-1) on the Fact Class (C 0 ). These fragements can then be merged by intersecting them to generate a complete disjoint set of Partitions. It must be noted that this is obtained from the query characteristics, and the Partitions are very exhaustive. Due to this reason, it may not be feasible to materialize the fragments all, and hence the MP 3 is used to determine which should be materialized and which should be kept virtual <ref type="bibr" target="#b14">[VLK98]</ref>. The cost model is based on the MVPP [YKL97] and incorporates SC, MC and RC. As shown in the figure, the shaded classes are materialized.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">AHCP evaluation</head><p>In this section, we analyze the fragment retrieval cost for processing queries in OQG using AHCP. A comparison of the results with that of plain query processing approach using pointer chasing is then conducted.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.1">Fragment retrieval cost</head><p>In order to evaluate the AHCP methodology, we use the sample ORDW schema and queries as detailed in section 2. Here we note that there are eight queries in the OQG, and we assume them all to be of equal importance.</p><p>Running our example through the algorithm given in section 3.3 :</p><p>Step 1.1 : For each query Q i in the OQG, generate logical associated fragments {C 0.j p } from {C j p } that satisfies sub-expressions of Q i completely.</p><p>We see that there are 4 main predicates by which the Dimensions are partitioned, viz. p1 : "Country = US", p2a : "Customer = Teen " , p2b : "Customer = Adult", p3a : "Product = P1 ", p3b : "Product = P2", and p4 : "Categ = Elec". Performing the AHCP function with respect to these PHPs as shown in section 3.1, we arrive at an exhaustive set of AHCPs of the Sales Class (FC).</p><p>Step 1.2 : Perform an intersection of the C 0.j p fragments for all Q i .</p><p>Consequently, by intersection as shown in table 2, we see that a complete set of 16 different AHCPs of the FC (Sales) can be created based on these 4 predicates, encompassing all possible and non-empty fragments : Table <ref type="table">2</ref>. Fragments obtained after intersection</p><formula xml:id="formula_5">F1 p1 ^ p2a ^ p3a p4 F9 !p1 ^ p2a ^ p3a p4 F2 p1 ^ p2a ^ p3b p4 F10 !p1 ^ p2a ^ p3b p4 F3 p1 ^ p2a ^ !p3a !p3b ^ p4 F11 !p1 ^ p2a ^ !p3a !p3b ^ p4 F4 p1 ^ p2a ^ !p4 F12 !p1 ^ p2a ^ !p4 F5 p1 ^ p2b ^ p3a p4 F13 !p1 ^ p2b ^ p3a p4 F6 p1 ^ p2b ^ p3b p4 F14 !p1 ^ p2b ^ p3b p4 F7 p1 ^ p2b ^ !p3a !p3b ^ p4 F15 !p1 ^ p2b ^ !p3a !p3a ^ p4 F8 p1 ^ p2b ^ !p4 F16 !p1 ^ p2b ^ !p4</formula><p>Step 2.1: For each query Q i of the OQG, evaluate the minimal set of query processing fragments.</p><p>The query processing fragments (QPF ) are shown in table <ref type="table" target="#tab_2">3</ref>  </p><formula xml:id="formula_6">Q 1 Q 4 Q 2 Q 3 Q 5 Q 6 AHCP -1 PHP -1 Complete disjoint AHCP AHCP -2 MQO - Intermediate nodes</formula><p>Step 1.2</p><p>Step 1.1</p><p>Steps 2-3 any query in the OQG.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Table 4. Intermediate Nodes</head></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Node Definition</head><p>Node Definition</p><formula xml:id="formula_7">N1 F1 U F2 N7 N2 U N6 U N9 N2 N1 U F3 N8 F9 U F10 N3 F5 U F6 N9 N1 U N8 N4 N2 U N3 N10 F11 U F13 U F14 U F15 N5 N3 U F7 N11 N5 U N8 U N10 N6 N5 U F4 U F8 N12 F12 U F16</formula><p>Step 2.3 : Assign cumulative weights to the nodes depending on their utility to consecutive Q i (based on frequency and cardinality).</p><p>For each of the queries Q i , we know the optimal query processing plan op i , which is an ordered list of nodes and fragments. We also know the frequency (f qi ) of each query, and the selectivity (sel pj ) of the clause that its (sub-query) is based on. Depending on those parameters, we give weights to the nodes in the op i of each query.</p><p>For example, processing for Q1, we have : &lt;op 1 &gt; = &lt;N7, N6, N2, N9, N3, N5, N8, N1, F1, F2, F4, F5, F6, F7, F8, F9, F10&gt; ∴ the weights for all these nodes (and fragments) is</p><formula xml:id="formula_8">f 1 * sel 1 .</formula><p>Processing for Q6, we have : &lt;op 6 &gt; = &lt;N2, N1, F1, F2, F3&gt; ∴ the weights for all these nodes (and fragments) is f 6 * sel 6 . .. and so on.</p><p>For simplification, we consider equal frequencies and 100% selectivity in the fragments, hence at the end of this step, we have weights as shown in table 5: Table <ref type="table">5</ref>. Weights for the Fragments and Nodes</p><formula xml:id="formula_9">Frag Weight Frag Weight Node Weight F 1 4 F 1 1 1 N 5 2 F 2 4 F 1 2 0 N 6 1 F 3 2 F 1 3 1 N 7 1 F 4 1 F 1 4 1 N 8 3 F 5 3 F 1 5 1 N 9 2 F6 3 F16 0 N10 1 F7 1 N1 4 N11 1 F8 1 N2 2 N12 0 F9 3 N3 3 F10 3 N4<label>1</label></formula><p>Step 3.1 : For each Q i , perform top-down evaluation of nodes in its query plan.</p><p>As the &lt;op i &gt; are ordered (tree structured), for each Q i , we can traverse the list in a top-down manner.</p><p>Initially all top -level nodes can be considered marked for materialization.</p><p>Step 3.2 : Select lower nodes (breakup) if the retrieval cost is lesser. This is a recursive step, in which the node is unmarked (for materialization) if any node under it has a weight higher than itself. In that case, the lower nodes are considered marked for materialization, and the process is repeated with them.</p><p>For example, processing for Q 8 , we mark N4 as it's the first node : but the weights are : N4 : 1, N2 : 2, N3 : 3. hence N4 is discarded for N2 and N3. Now N2 : 2, N1 : 4, F3 : 2. So N2 is discarded for N1 and F3. .. and so on.</p><p>Repeating this process for all the queries, the following nodes are materialized : F3, F4, F7, F8, N1, N3, N8, N10. This is our optimal minimal AHCP set.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.2">Comparing HCF retrieval cost with pointer traversal cost</head><p>In this section, we evaluate our AHCP scheme for its performance gain over the un-partitioned case during query retrieval. As noted in the previous section, we have derived an optimal complete minimal AHCP set of the Sales FC.</p><p>The DCs and associated joins are in memory and evaluating a query branch dealing with them would involve CPU cost. This is ignored here, as the disk I/O cost is the major component of response time in most query retrieval costs.</p><p>The following study shows disk i/o cost ratios for varying relative frequencies of queries in the OQG. cost ratio (CR) = cost of disk i/o for unpartitioned case cost of disk i/o after AHCP</p><p>The query frequencies are varied from 10% to 90%. As these are relative frequencies, it must be noted that the frequencies of the other queries in OQG are modified equally in each case. The parameters for the study are stated in the Appendix.</p><p>As can be seen from table 6, there's always a minimum gain obtained when the ORDW is partitioned; the range of the gain varies from 1% to 50% in this case study.</p><p>Note that these results appear to exhibit a linear relation between the selectivity of the query and the cost gain obtained from the AHCP operation. However this should be interpreted only as the best-case scenario, because in real-world cases some level of data replication is expected which can cause redundant data access. This may lead to higher cost for the partitioned case than what this example indicates, although the difference will not be too significant. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5">Conclusions and future work</head><p>In this paper, we have presented a methodology towards efficient query processing in an object-relational data warehousing (ORDW) environment, through devising and incorporating Associated Horizontal Class Partitioning (AHCP) techniques over the ORDW schema.</p><p>Our methodology starts with a given set of data warehouse queries, comes up a near-optimal AHCP scheme for the queries, and selects AHCP fragments as materialized views to facilitate efficient evaluation of these queries. Through an initial analytical study, we are already able to demonstrate the gains of our approach vis-a-vis the unpartitioned approach in terms of disk I/O in the ORDW environment.</p><p>Note that the work we have described in this paper (hence the result obtained) should be only regarded as an intermediate stage towards efficient ORDW query processing; further advanced techniques and mechanisms should and can be naturally added. In particular, an adaptive and extensible indexing framework is currently being developed, so as to better accommodate the requirements of dynamic data warehousing <ref type="bibr" target="#b3">[Dayal99]</ref> which demands to incorporate more semantics into the data warehouse schemata. As shown in <ref type="bibr" target="#b16">[VLK00]</ref>, a query-driven indexing mechanism built on the SJIH (structural join index hierarchy) <ref type="bibr" target="#b5">[FKL98]</ref> seems to be very effective, and is supplementary to the work described in this paper. Moreover, the creation and maintenance algorithms of materialized views and OLAP cubes benefit from the reduced search space obtained due to the AHCP scheme. Since OLAP queries involve multiple paths (multiple selections and group bys), the Forward and Reverse Joins are considerably reduced by employing them on a subset of the AHCP fragments instead of the entire Fact table. We are currently in the process of combining these complementary approaches into a single framework. We are building an experimental ORDW prototype system that will be validated by empirical studies based on TPC-H benchmark queries.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>2. 1</head><label>1</label><figDesc>Related Work Partitioning has been vastly researched in Relational and OO database systems. Excellent work has been done in Vertical Partitioning (VP) and Horizontal Partitioning (HP) in both systems, but the unique features of OO systems have made it possible to experiment with different variations such as Derived Horizontal Class Partitioning (DHCP), Associated Horizontal Class Partitioning (AHCP), Path Partitioning (PP) and Method Induced Partitioning (MIP). [KL00] presents a comprehensive framework for devising partitioning schemes based on different types of methods and their classification. The issue of fragmentation transparency is addressed by considering appropriate method transformation techniques. While those methods were extremely successful in the transactional environment of an OODB, to the best of our knowledge, no work has been done in partitioning of an Object Relational DB or Object Relational Data Warehouse (ORDW).</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Fig. 1 .</head><label>1</label><figDesc>Fig. 1. The ORDW Schema.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head></head><label></label><figDesc>Attr x (sizeof(Attr)) x No PHP where No Attr = No.of Attributes replicated. where No PHP = No.of Partition schemes.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head>Fig. 3 .</head><label>3</label><figDesc>Fig.3. Multiple Partition Processing Plan (MP3)</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_0"><head></head><label></label><figDesc>Table 1 as our sample OQG for subsequent discussions.</figDesc><table><row><cell></cell><cell cols="2">Table 1. Sample OLAP queries -OQG</cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell>No.</cell><cell>Query</cell><cell>Query type</cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell>Q1</cell><cell>Sales by Prod by State in US</cell><cell>Only along cch</cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell></cell><cell></cell><cell>(pivot)</cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell>Q2</cell><cell>Sales by Prod by State by Year</cell><cell>-&gt; Drill-down</cell><cell></cell><cell></cell><cell>Sales</cell><cell></cell><cell>Order</cell><cell></cell></row><row><cell></cell><cell>in US</cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell>Q3</cell><cell>Sales by Prod for Categ=Elec</cell><cell>-&gt; Roll-up</cell><cell>Product</cell><cell>Retailer</cell><cell></cell><cell></cell><cell></cell><cell>Date</cell></row><row><cell>Q4</cell><cell>Sales by Prod by City for</cell><cell>Only along cch,</cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell></cell><cell>Categ=Elec</cell><cell>Drill-down</cell><cell></cell><cell>City</cell><cell cols="2">Customer</cell><cell>Month</cell><cell>Week</cell></row><row><cell>Q5 Q6</cell><cell>Sales by Prod by Country for Categ=Elec Sales by Prod to Teenagers by State for Categ=Elec &amp; in US</cell><cell>Only along cch, Roll-up Only along cch, Slice_and_dice</cell><cell>Product Category Type</cell><cell>State Country Address</cell><cell>Teenager</cell><cell>Adult Customer</cell><cell>Season</cell><cell>Time Quarter Year</cell></row><row><cell>Q7</cell><cell>Sales of Prod 1 compared with</cell><cell>Only along cch,</cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell></cell><cell>Sales of Prod 2 to Teenagers</cell><cell>Drill-down,</cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell></cell><cell>for Categ=Elec</cell><cell>Slice_and_dice</cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell>Q8</cell><cell>% increase in Sales to</cell><cell>Combination of is-</cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell></cell><cell>Teenagers over Sales to</cell><cell>a &amp; cch, Drill-</cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell></cell><cell>Adults, of Prod 1 / 2 for</cell><cell>down,</cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell></cell><cell>Categ=Elec &amp; in US</cell><cell>Slice_and_dice</cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell></row></table></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_2"><head>Table 3 .</head><label>3</label><figDesc>: Query Processing Fragments (QPF)</figDesc><table><row><cell>QPF 1 , QPF 2</cell><cell>F1, F2, F3, F4, F5, F6, F7,</cell></row><row><cell></cell><cell>F8</cell></row><row><cell cols="2">QPF 3 , QPF 4 , QPF 5 F1, F2, F3, F4, F5, F6, F7,</cell></row><row><cell></cell><cell>F9, F10, F11, F13, F14, F15</cell></row><row><cell>QPF 6</cell><cell>F1, F2, F3</cell></row><row><cell>QPF 7</cell><cell>F1, F2, F9, F10</cell></row><row><cell>QPF 8</cell><cell>F1, F2, F5, F6</cell></row><row><cell cols="2">Step 2.2 : Create query plans for each Q i having nodes</cell></row><row><cell cols="2">involving unions of fragments which exist in multiple</cell></row><row><cell>QPF i .</cell><cell></cell></row><row><cell cols="2">The intermediate nodes are created by a</cell></row><row><cell cols="2">combination of fragments noting their affinity in the</cell></row><row><cell cols="2">QPFs. For the sake of completeness, we also create</cell></row><row><cell cols="2">unaccessed nodes as shown in table 4, for example, N12</cell></row><row><cell cols="2">(F12 U F16), though these fragments are not accessed by</cell></row></table></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_3"><head>Table 6</head><label>6</label><figDesc></figDesc><table><row><cell></cell><cell cols="2">. Cost Ratio observations</cell></row><row><cell>relative</cell><cell cols="2">10% 30% 50% 70% 90%</cell></row><row><cell>frequency</cell><cell></cell><cell></cell></row><row><cell>Q1</cell><cell cols="2">0.05 0.15 0.25 0.35 0.45</cell></row><row><cell>Q2</cell><cell cols="2">0.05 0.15 0.25 0.35 0.45</cell></row><row><cell>Q3</cell><cell cols="2">0.03 0.09 0.15 0.21 0.27</cell></row><row><cell>Q4</cell><cell cols="2">0.03 0.09 0.15 0.21 0.27</cell></row><row><cell>Q5</cell><cell cols="2">0.03 0.09 0.15 0.21 0.27</cell></row><row><cell>Q6</cell><cell>0.02 0.06</cell><cell>0.1 0.14 0.18</cell></row><row><cell>Q7</cell><cell cols="2">0.01 0.03 0.05 0.07 0.09</cell></row><row><cell>Q8</cell><cell cols="2">0.01 0.03 0.05 0.07 0.09</cell></row></table></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="1" xml:id="foot_0">This paper deals only with Associated Horizontal Partitioning techniques, and the above schema has been arrived at using other techniques.</note>
		</body>
		<back>

			<div type="acknowledgement">
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Acknowledgement -This work has been supported</head><p>by City University of Hong Kong under grant# 7100078.</p></div>
			</div>

			<div type="annex">
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Appendix</head></div>			</div>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">Algorithms and Support for Horizontal Class Partitioning in Object-Oriented Databases</title>
		<author>
			<persName><forename type="first">L</forename><surname>Bellatreche</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Karlapalem</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Simonet</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Distributed and Parallel Databases</title>
				<imprint>
			<publisher>Kluwer Academic Publishers</publisher>
		</imprint>
	</monogr>
	<note>accepted in 1998 (to appear)</note>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">An Overview of Data Warehousing and OLAP Technology</title>
		<author>
			<persName><forename type="first">Surajit</forename><surname>Chaudhuri</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Umeshwar</forename><surname>Dayal</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">ACM SIGMOD Record</title>
		<imprint>
			<biblScope unit="volume">26</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="65" to="74" />
			<date type="published" when="1997-03">March 1997</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<monogr>
		<author>
			<persName><forename type="first">E</forename><forename type="middle">F</forename><surname>Codd</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><forename type="middle">B</forename><surname>Codd</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><forename type="middle">T</forename><surname>Salley</surname></persName>
		</author>
		<title level="m">Providing OLAP (on-line analytical processing) to user-analysts: An IT mandate</title>
				<imprint>
			<date type="published" when="1993">1993</date>
		</imprint>
	</monogr>
	<note type="report_type">Tech. Report</note>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Dynamic Data Warehousing</title>
		<author>
			<persName><forename type="first">Umeshwar</forename><surname>Dayal</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. First International Conference on Data Warehousing and Knowledge Discovery (DaWaK)</title>
				<meeting>First International Conference on Data Warehousing and Knowledge Discovery (DaWaK)<address><addrLine>Florence, Italy</addrLine></address></meeting>
		<imprint>
			<date type="published" when="1999">1999</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<monogr>
		<title level="m" type="main">Vertical Class Partitioning and Complex Object Retrieval in Object Oriented Databases</title>
		<author>
			<persName><forename type="first">Chi-Wai</forename><surname>Fung</surname></persName>
		</author>
		<imprint>
			<date type="published" when="1998-12">Dec 1998</date>
		</imprint>
		<respStmt>
			<orgName>Department of Computer Science, HKUST</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">PhD. Thesis</note>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Structural Join Index Hierarchy: A Mechanism for Efficient Complex Object Retrieval</title>
		<author>
			<persName><forename type="first">Chi-Wai</forename><surname>Fung</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Kamalakar</forename><surname>Karlapalem</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Qing</forename><surname>Li</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. FODO Conference</title>
				<meeting>FODO Conference</meeting>
		<imprint>
			<date type="published" when="1998">1998</date>
			<biblScope unit="page" from="127" to="136" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">A Framework for Class Partitioning in Object-Oriented Databases</title>
		<author>
			<persName><forename type="first">K</forename><surname>Karlapalem</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Q</forename><surname>Li</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Distributed and Parallel Databases</title>
				<imprint>
			<publisher>Kluwer Academic Publishers</publisher>
			<date type="published" when="2000">2000</date>
			<biblScope unit="volume">8</biblScope>
			<biblScope unit="page" from="317" to="350" />
		</imprint>
	</monogr>
	<note>in press</note>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">Costbased Selection of Path Expression Processing Algorithms in Object-Oriented Databases</title>
		<author>
			<persName><forename type="first">G</forename><surname>Gardarin</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">R</forename><surname>Gruser</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Z</forename><forename type="middle">H</forename><surname>Tang</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. VLDB 1996</title>
				<meeting>VLDB 1996</meeting>
		<imprint>
			<biblScope unit="page" from="390" to="401" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">Index Selection for OLAP</title>
		<author>
			<persName><forename type="first">H</forename><surname>Gupta</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Harinarayanan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Rajaraman</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">D</forename><surname>Ullman</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. ICDE 1997</title>
				<meeting>ICDE 1997</meeting>
		<imprint>
			<biblScope unit="page" from="208" to="219" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">Maintenance of Materialized Views: Problems, Techniques, and Applications</title>
		<author>
			<persName><forename type="first">A</forename><surname>Gupta</surname></persName>
		</author>
		<author>
			<persName><forename type="first">I</forename><forename type="middle">S</forename><surname>Mumick</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">IEEE Data Eng. Bulletin</title>
		<imprint>
			<date type="published" when="1995-06">June 1995</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">Making Aggregate Views Self-Maintainable</title>
		<author>
			<persName><forename type="first">Mukesh</forename><surname>Mohania</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><surname>Kambayashi</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Data and Knowledge Engineering</title>
				<imprint/>
	</monogr>
	<note>accepted in 1999 (to appear</note>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">Improved query performance with variant indexes</title>
		<author>
			<persName><forename type="first">P</forename><surname>O'neil</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Quass</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. ACM SIGMOD &apos;97</title>
				<meeting>ACM SIGMOD &apos;97</meeting>
		<imprint>
			<biblScope unit="page" from="38" to="49" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<analytic>
		<title level="a" type="main">Materialized Views and Data Warehouses</title>
		<author>
			<persName><forename type="first">Nick</forename><surname>Roussopoulos</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. KRDB</title>
				<meeting>KRDB</meeting>
		<imprint>
			<date type="published" when="1997">1997</date>
			<biblScope unit="page">6</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b13">
	<analytic>
		<title level="a" type="main">Indexing OLAP Data</title>
		<author>
			<persName><forename type="first">Sunita</forename><surname>Sarawagi</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">IEEE Data Engineering Bulletin</title>
		<imprint>
			<biblScope unit="volume">20</biblScope>
			<biblScope unit="page" from="36" to="43" />
			<date type="published" when="1997">1997</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b14">
	<analytic>
		<title level="a" type="main">Issues of Object-Relational View Design in Data Warehousing Environment</title>
		<author>
			<persName><forename type="first">Qing</forename><surname>Vivekanand Gopalkrishnan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Kamalakar</forename><surname>Li</surname></persName>
		</author>
		<author>
			<persName><surname>Karlapalcem</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. IEEE SMC Conference</title>
				<meeting>IEEE SMC Conference</meeting>
		<imprint>
			<date type="published" when="1998">1998</date>
			<biblScope unit="page" from="2732" to="2737" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b15">
	<analytic>
		<title level="a" type="main">Star/Snow-flake Schema Driven Object-Relational Data Warehouse Design and Query Processing Strategies</title>
		<author>
			<persName><forename type="first">Qing</forename><surname>Vivekanand Gopalkrishnan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Kamalakar</forename><surname>Li</surname></persName>
		</author>
		<author>
			<persName><surname>Karlapalem</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. First Int&apos;l Conference on Data Warehousing and Knowledge Discovery (DaWaK)</title>
		<title level="s">LNCS</title>
		<meeting>First Int&apos;l Conference on Data Warehousing and Knowledge Discovery (DaWaK)<address><addrLine>Florence, Italy</addrLine></address></meeting>
		<imprint>
			<date type="published" when="1999">1999</date>
			<biblScope unit="volume">1676</biblScope>
			<biblScope unit="page" from="11" to="22" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b16">
	<analytic>
		<title level="a" type="main">Efficient Query Processing with Structural Join Indexing in an Object Relational Data Warehousing Environment</title>
		<author>
			<persName><forename type="first">Qing</forename><surname>Vivekanand Gopalkrishnan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Kamalakar</forename><surname>Li</surname></persName>
		</author>
		<author>
			<persName><surname>Karlapalem</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. 11 th Information Resources Management Association Int&apos;l Conference (IRMA&apos;00)</title>
				<meeting>11 th Information Resources Management Association Int&apos;l Conference (IRMA&apos;00)<address><addrLine>Anchorage, Alaska</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2000">May 21-24, 2000</date>
		</imprint>
	</monogr>
	<note>to appear</note>
</biblStruct>

<biblStruct xml:id="b17">
	<analytic>
		<title level="a" type="main">Algorithms for Materialized View Design in Data Warehousing Environment</title>
		<author>
			<persName><forename type="first">Jian</forename><surname>Yang</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Kamalakar</forename><surname>Karlapalem</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Qing</forename><surname>Li</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. VLDB</title>
				<meeting>VLDB</meeting>
		<imprint>
			<date type="published" when="1997">1997</date>
			<biblScope unit="page" from="136" to="145" />
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
