<?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">On Support of Ordering in Multidimensional Data Structures</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Filip</forename><surname>Křižka</surname></persName>
							<email>filip.krizka@vsb.cz</email>
							<affiliation key="aff0">
								<orgName type="department">Department of Computer Science</orgName>
								<orgName type="institution">V ŠB -Technical University of Ostrava</orgName>
								<address>
									<addrLine>17. listopadu 15</addrLine>
									<settlement>Ostrava</settlement>
									<country key="CZ">Czech Republic</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Michal</forename><surname>Krátký</surname></persName>
							<email>michal.kratky@vsb.cz</email>
							<affiliation key="aff0">
								<orgName type="department">Department of Computer Science</orgName>
								<orgName type="institution">V ŠB -Technical University of Ostrava</orgName>
								<address>
									<addrLine>17. listopadu 15</addrLine>
									<settlement>Ostrava</settlement>
									<country key="CZ">Czech Republic</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Radim</forename><surname>Bača</surname></persName>
							<email>radim.baca@vsb.cz</email>
							<affiliation key="aff0">
								<orgName type="department">Department of Computer Science</orgName>
								<orgName type="institution">V ŠB -Technical University of Ostrava</orgName>
								<address>
									<addrLine>17. listopadu 15</addrLine>
									<settlement>Ostrava</settlement>
									<country key="CZ">Czech Republic</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">On Support of Ordering in Multidimensional Data Structures</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">B2BEBDB516ED614CD7469083378215BC</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T12:11+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>
			<textClass>
				<keywords>
					<term>multidimensional data structures</term>
					<term>ordered tuples of the range query result</term>
					<term>R-tree</term>
					<term>Ordered R-tree</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Multidimensional data structures are applied in many areas, e.g. in data mining, indexing multimedia data and text documents, and so on. There are some applications where the range query result must be ordered. A typical case is the result with tuples sorted according to values in one dimension defined by the ORDER BY clause of an SQL statement. If we use a multidimensional data structure, the result set is sorted after the range query is processed. Since the sort operation must often be processed on tuples stored in the secondary storage, an external sorting algorithm must be utilized. Therefore, this operation is time consuming especially for a large result set. In this paper, we introduce a new data structure, a variant of the R-tree, supporting a storage of ordered tuples.</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>Multidimensional data structures <ref type="bibr" target="#b24">[25,</ref><ref type="bibr" target="#b29">30]</ref> have been widely applied in many data management areas. Indexing spatial data is their natural application but there are many applications in different domain areas. In the case of spatial data, structures often store two-and three-dimensional objects. In the case of multimedia data, there are spaces with dimension values of up to 100,000 to be indexed. There have been many data structures introduced in the past, e.g. R-tree <ref type="bibr" target="#b9">[10]</ref>, R * -tree <ref type="bibr" target="#b2">[3]</ref>, UB-tree <ref type="bibr" target="#b1">[2]</ref>, X-tree <ref type="bibr" target="#b4">[5]</ref>, and BUB-tree <ref type="bibr" target="#b6">[7]</ref>. These data structures have been applied in many areas; the well-known R-tree is included in Oracle Spatial<ref type="foot" target="#foot_0">1</ref> -an Oracle option for indexing spatial data. UB-tree <ref type="bibr" target="#b1">[2]</ref> is applied for an implementation of more indices related to one table in the relational data model <ref type="bibr" target="#b22">[23]</ref>. In addition, multidimensional data structures are applied in a wide range of applications, e.g. indexing XML data <ref type="bibr" target="#b8">[9,</ref><ref type="bibr" target="#b14">15,</ref><ref type="bibr" target="#b13">14]</ref>, terms <ref type="bibr" target="#b15">[16,</ref><ref type="bibr" target="#b5">6]</ref>, etc.</p><p>In the case of the R-tree, tuples are clustered in a tree's page when MBRs (Minimal Bounding Rectangles) are built. It supports various types of queries, e.g. point and range queries. As mentioned previously, multidimensional data structures may be applied as index data structures supporting the storage of tuples in relational or object-relational DBMS <ref type="bibr" target="#b7">[8]</ref>. If B-tree or B + -tree are applied for the support, we must create one tree for each attribute to be indexed. Another alternative is to use the so-called compound-key which includes more attributes. In this case, some queries are processed by an often inefficient sequential scan. When we consider multidimensional data structures, one index is created for all attributes to be indexed. In this case, random accesses may influence the efficiency of query processing <ref type="bibr" target="#b18">[19]</ref>. We must observe that the efficiency of range query processing in the B-tree is also influenced by this issue.</p><p>There are some applications where ordering of tuples in the result set is required. This order may be defined by ordering of values of one attribute. A common example is an SQL statement with the ORDER BY clause. In this case, we often define a restriction of attribute values, which means the range query can be applied for the processing of this query; however, we often require an ordering defined by the ORDER BY clause. If we consider multidimensional data structures, there is no support for the ordering; the result tuples must be sorted after the query is processed. Since the number of sort operations and the number of tuples in the result may be high in the case of DBMS, we must utilize an external sorting algorithm <ref type="bibr" target="#b12">[13,</ref><ref type="bibr" target="#b28">29]</ref>. If large result sets are sorted, this operation is time consuming. When we consider a data structure without a support of ordering, we can not utilize lazy query processing. In the case of lazy query processing, a query is progressively processed and we can not store all tuples of the result in an additional data structure. When we consider multidimensional data structures without a support of ordering, this lazy evaluation is not possible; the query must be processed in one and result tuples must be inserted in a persistent data structure and sorted <ref type="bibr" target="#b19">[20]</ref>.</p><p>In this article, we introduce a multidimensional data structure with a support of ordering. A cost-based relational query optimizer <ref type="bibr" target="#b7">[8]</ref> can simply utilize this data structure and decide when it is appropriate to utilize this data structure instead of common query processing and sorting of the result set. Since the Rtree is the most popular data structure we present the support of ordering for the R-tree.</p><p>Although it can be seen that there is a relation between multidimensional data structures and ordering, we only find data structures which enable the indexing of multidimensional data using an order. Such data structures include UB-tree <ref type="bibr" target="#b1">[2,</ref><ref type="bibr" target="#b21">22]</ref> and BUB-tree <ref type="bibr" target="#b6">[7]</ref> which utilize Z-ordering for indexing of multidimensional data. On the other hand, if we apply B-tree or B + -tree as the solution of this issue, a range query will be processed by an often inefficient sequential scan.</p><p>This paper is organized as follows: In Section 2, we present R-tree and its variants. We describe the motivation to the support of ordering in Section 3 in more detail. Section 4 includes some notices to ordering of the range query result. In Section 5, we describe our new variant of the R-tree and show the basic principles of this data structure. Experimental results are put forward in Section 6. In the last section we summarize the paper content and outline possibilities of our future work.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">R-tree and its Variants</head><p>R-tree <ref type="bibr" target="#b9">[10]</ref> can be thought of as an extension of B + -trees in a multi-dimensional space. It corresponds to a hierarchy of nested n-dimensional MBRs. If N is an inner page, it contains couples of the form (R i , P i ), where P i is a pointer to a child of the page N . If R is its MBR, then the rectangles R i corresponding to the children N i of N are contained in R. Rectangles at the same tree level may overlap. In this article, we consider only tuples stored in leaf nodes due to the fact that it corresponds to our application domain. Unless a page of the R-tree is the root, its number of entries is between m and M and it corresponds to a disk page. Other properties of the R-tree include the following:</p><p>-Whenever the number of a page's children drops below m, the page is deleted and its descendants are distributed among the sibling pages. The upper bound M depends on the size of the disk page. -The root page has at least two entries, unless it is a leaf.</p><p>-The R-tree is height-balanced; i.e. all leaves are at the same level. The height of an R-tree is at most log m N − 1 for N index records (N &gt; 1).</p><p>Given a set of M +1 entries, each entry is assigned to one of the two produced pages, according to the criterion of minimum area, i.e. the selected page is the one that will be enlarged the least in order to include the new entry. It significantly affects the index performance. Three split techniques (Linear, Quadratic, and Exponential ) proposed in <ref type="bibr" target="#b9">[10]</ref> are based on a heuristic optimization. R-tree performance is usually measured with respect to the retrieval cost (in terms of DAC) of queries. The majority of performance studies concerns point, range, and k-NN queries. Considering the R-tree performance, the concepts of page coverage and overlap between pages are important. Obviously, an efficient R-tree search requires that both the overlap and coverage are minimized. Minimal coverage reduces the amount of dead area covered by R-tree pages. The minimal overlap is even more critical than the minimal coverage, searching to objects falling in the area of k overlapping pages; up to k paths to the leaf pages, may have to be processed in such a way.</p><p>Variants of R-trees differ in the way they perform the split algorithm during insertions, i.e. which minimization criteria are used. Literature has identified a variety of criteria for the layout of keys on pages that affect retrieval performance. These criteria are: minimal page area, minimal overlap between pages, minimal page margins or maximized page utilization. It is impossible to optimize all of these parameters simultaneously.</p><p>Authors of <ref type="bibr" target="#b20">[21,</ref><ref type="bibr" target="#b24">25]</ref> put forward many variants of the R-tree. The main feature of R * -trees <ref type="bibr" target="#b2">[3]</ref> involves the page-splitting policy. Therefore, the R * -tree differs from the R-trees mainly in the insertion algorithm. Although original R-tree algorithms tried only to minimize the area covered by MBRs, the R * -tree algorithms also take other objectives into account. Clipping-based schemes do not allow any overlaps between bucket regions; they have to be mutually disjointed. A typical access method of this kind is the R + -tree <ref type="bibr" target="#b25">[26]</ref> which allows no overlap between regions corresponding to pages at the same tree level and an object can be stored in more than one leaf page.</p><p>Other approaches to an improvement of original R-trees release some of their basic features. For example, the MBRs have been replaced by minimum bounding spheres or polygons. In <ref type="bibr" target="#b3">[4]</ref>, R + -trees are extended to support k-NN queries. In <ref type="bibr" target="#b16">[17]</ref>, authors introduce a variant for efficient processing of narrow range queries. In our best knowledge, R-tree variant supporting the ordered multidimensional data or multidimensional data structure supporting a general ordering do not exist in the literature.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">Motivation</head><p>Although it can be seen that multidimensional indexing and ordering are in contradiction, there are real applications where we need to sort the range query result. Let us consider an implementation of indices in an RDBMS. Multidimensional data structures can be utilized for the implementation instead of more B-tree or B + -tree indices. Then an SQL statement is processed by a range query. Users often applied the ORDER BY clause which sorts a result set according to values of one or more attributes. In other words, we define an order on tuples of the result set.</p><p>A common way to evaluate these queries is to process the range query in a multidimensional data structure and sort the result set of the range query. Since the number of sort operations and tuples in the result can be high, we must utilize an external sorting algorithm <ref type="bibr" target="#b12">[13,</ref><ref type="bibr" target="#b28">29]</ref>. In the case of large result sets the sorting is the time consuming operation. In this article, we introduce a multidimensional data structure supporting an order on multidimensional tuples. Since the R-tree is the most popular data structure, we present the support of ordering for the R-tree; we introduce the Ordered R-tree.</p><p>We assume that there are applications where we need always (or very often) use the ordering of a result set according the same attributes. We can apply B-tree or B + -tree indices for the support, but we must create one tree for each attribute to be indexed. Another alternative is to use so called compound-key which includes more attributes. In these cases some queries are processed by an often inefficient sequential scan. For example, let us consider the compound key </p><formula xml:id="formula_0">{A 1 , A 2 , A 3 } of a</formula></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Range Query Processing in R-tree</head><p>A range query is processed by a depth-first search algorithm <ref type="bibr" target="#b9">[10]</ref>. If the query rectangle intersects an MBR then the node related to the MBR is retrieved and searched. In general, there is no order; therefore, tuples of a result set are sorted in the same order in which these tuples were inserted into leaf nodes and new MBRs were inserted into inner nodes. In the case of bulk-load algorithms, tuples are often sorted under an order and MBRs are created for these tuples <ref type="bibr" target="#b10">[11]</ref>. We will show that the ordering of tuples in leaf nodes does not guarantee the ordered result set.</p><p>Example 1. (Range Query Processing) Let us consider two MBRs in Figure <ref type="figure">1</ref>. A depth-first search range query algorithm retrieves tuples of M BR 0 1 (T 1 and T 2 ) and then it retrieves tuples of M BR 0 2 (T 3 and T 4 ); consequently, the result set includes:</p><formula xml:id="formula_1">T 1 , T 2 , T 3 , T 4 .</formula><p>When we consider the previous depicted motivation, the ORDER BY clause, we want to retrieve tuples under the well-known Lexicographical order of tuples. This order is often utilized in the case of term ordering, however the ORDER BY clause applied on a set of ordered attributes works in the same way.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Definition 1. Lexicographical Order</head><p>Let Ω be an n-dimensional space and t 1 = (a 1,1 , a 1,2 , . . . , a 1,n ) and t 2 = (b 2,1 , b 2,2 , . . . , b 2,n ) be two tuples of this space. The Lexicographical order is defined:</p><formula xml:id="formula_2">t 1 &lt; t 2 ⇐⇒ (∃m &gt; 0)(∀i &lt; m)(a 1,i = b 2,i ) ∧ (a 1,m &lt; b 2,m ).</formula><p>Example 2. Let us consider the space in Figure <ref type="figure">1</ref> and the Lexicographical order which prefers the attribute A 1 before the attribute A 2 . The tuples are sorted under this order as is follows: T 1 , T 3 , T 2 , T 4 . Let us consider space filling curves like C-curve, Z-curve or Hilbert curve <ref type="bibr" target="#b23">[24]</ref> depicted in Figure <ref type="figure">2</ref>. It is clear that the Lexicographical order is equivalent to C-ordering. One class of multidimensional data structures utilizes space filling curves. UB-tree <ref type="bibr" target="#b1">[2,</ref><ref type="bibr" target="#b21">22]</ref> and BUB-tree <ref type="bibr" target="#b6">[7]</ref> utilize Z-curve to order tuples, regions included in inner nodes are defined as intervals of the Z-curve. Another way is to use a space filling curve for clustering of tuples in a multidimensional space; however, regions are created according to a known data structure like R-tree. Examples of this way are Hilbert R-tree <ref type="bibr" target="#b11">[12]</ref> or some bulk-loaded algorithms <ref type="bibr" target="#b10">[11]</ref>. There are other data structures utilizing ordering to index multidimensional data <ref type="bibr" target="#b17">[18]</ref> or applications which utilize ordering to multidimensional data processing, e.g. in <ref type="bibr" target="#b0">[1]</ref> authors introduced a clustering methods based on an order.</p><p>There are two ways how to develop a data structure supporting an order. The first way is to create regions as intervals of the order used. The main problem of this way is that it is necessary to develop an algorithm checking if the MBR and the regions are intersected. This algorithm is then used by the range query algorithm. In <ref type="bibr" target="#b21">[22,</ref><ref type="bibr" target="#b27">28]</ref> authors introduced this algorithm of UB-tree and Z-ordering. The similar algorithm must be implemented for each order used. The second way is to use a known data structure and change the build algorithm to guarantee the ordered result set. Since the R-tree is the most popular data structure we present the support of ordering for the R-tree.</p><p>5 Ordered R-tree</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.1">Introduction</head><p>Let us consider a total order O on a set of all tuples in a multidimensional space Ω = D 1 × D 2 × . . . × D n , where n is the space dimension. An MBR is defined by two tuples Q L and Q H . An MBR includes other MBRs in the case of inner nodes or tuples in the case of leaf nodes.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Definition 2. (MBR Order Condition)</head><p>Let us consider a total order O on all tuples of Ω. Let M BR 1 and M BR 2 be minimal bounding rectangles in the same level of the tree. MBR Order condition is defined as follows: M BR 1 ≤ M BR 2 iff each tuple of M BR 1 is lower or equal to all tuples of M BR 2 .</p><p>It is clear that if all couples of MBR's in each level of the tree meet the MBR Order condition, the result set of each range query is ordered under O. The first step to guarantee the order on tuples is to order tuples in each leaf node. The second step is to sort MBRs in each inner node. Since the R-tree is built by a hierarchy of MBR's which create different space regions compared to the regions created by the order, we can not order MBR's according to their Q L . In the next example, we show why we can not utilize Q L to the guarantee of the order on tuples in the R-tree.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Example 3. (Violation of the MBR Order Condition in the R-tree)</head><p>Let us suppose the M BR R in Figure <ref type="figure" target="#fig_1">3</ref>(a) including tuples T 1 -T 4 . We use the order which prefers values of the first dimension before values of the second dimension. In this case, it is possible to split this node so that</p><formula xml:id="formula_3">Q L M BR1 ≤ Q L M BR2</formula><p>and the MBR Order condition is met. A range query containing both MBRs returns the following correct result T 1 ,T 2 , T 3 , T 4 , where</p><formula xml:id="formula_4">T i ≤ T i+1 , 1 ≤ i ≤ 3.</formula><p>After the tuple T 5 is inserted, M BR 1 and M BR 2 must be created to guarantee the order (see Figure <ref type="figure" target="#fig_1">3(b)</ref>). In this case,</p><formula xml:id="formula_5">Q L M BR1 = (2, 3), Q L M BR2 = (2, 0), Q L M BR1 ≥ Q L M BR2</formula><p>. A range query containing both MBRs, e.g. the range query represented by this statement: SELECT * FROM Ω WHERE A1 BETWEEN (2,4) and A2 BETWEEN(0,7) ORDER BY (A1,A2), where A i is the attribute corresponding to D i , 1 ≤ i ≤ 2, returns the following unordered result T 3 , T 5 , T 4 , T 1 , T 2 although tuples in both MBR's are ordered. It means, we can not utilize Q L to the guarantee of the order on tuples in the R-tree. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.2">First Tuple Concept</head><p>To guarantee the MBR Order condition we must introduce the first tuple concept.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Definition 3. (The first tuple of an MBR)</head><p>Let O be an order on tuples of Ω and MBR be a minimal bounding rectangle. The first tuple of the MBR, F T M BR , is defined as follows:  Since MBR of each node is stored in its parent node, we must handle first tuple of each node, except the root node, in an array to guarantee the tuple order.</p><formula xml:id="formula_6">F T M BR =</formula></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.3">Operations of the Ordered R-tree</head><p>The main operation influenced by the Fist Tuple concept is the insert operation. In Algorithm 1 we see an algorithm of the insert operation including the first tuple management. For the sake of simplicity we do not differentiate between inner and leaf nodes as well as between inner and leaf items, therefore, we use overloading functions Insert and Split as well as overloading items and nodes. In Lines 1-6, the proper leaf node is found by an iteration through inner nodes, each inner node is put on the stack. In Lines 7-23, item is inserted in the node (Line 12) and indices are modified. The variable flagInsert is true if the Insert and Split operations are invocated in the current level of the tree. In this way, the changes of MBR are propagated to the root node.</p><p>On the other hand, the variable flagFirstTuple controls the propagation of FT to the root node. The procedure InsertOrUpdateFirstTuple works in this way: if the inserted tuple is the first tuple of the node, then insert or update this first tuple. In the procedure Insert, tuple (or MBR) is inserted in the leaf node (inner node). Items are sort-inserted in the both cases; in the case of inner nodes first tuples must be utilized. Obviously, the split operation utilizes the ordering when a node is split; the second node includes tuples &gt; all tuples of the first node.</p><p>The find and range query operations are without any change. In the case of the delete operation, we must manage the update of first tuples. Consequently, find and delete operations work in O(log M ), where M is the number of tuples in the tree.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.4">First Tuple Storage</head><p>To manage first tuples for all MBR's we can use a persistent array including all first tuples. This array contains couples (node id, first tuple), where node id references the tree node related to the first tuple. In Figure <ref type="figure" target="#fig_3">4</ref>, we see an example of the proposed data structure. Since the size of the array is equal to the number of all nodes in the R-tree, we can often manage this data structure in the main memory; pages of this data structure are not retrieved from the secondary storage. For example, if the R-tree includes 10 6 tuples, the maximum number of items in leaf nodes is 200 and the maximum number of items in inner nodes is 100. The array includes approximately 12,000 items. Let us consider the space dimension=5, 4 B for one attribute value and node id, we get the total size of the array: 288,000 B = 281,25 kB. When we consider the delete operation, we can utilize hashing or B-tree for the implementation of the array. Fig. <ref type="figure" target="#fig_3">4</ref>. A structure of the Ordered R-Tree</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="6">Experimental Results</head><p>In our experiments<ref type="foot" target="#foot_2">3</ref> , we used the proposed real collection of meteorological data including 1,391,049 records. The scheme contains 6 attributes: STATION, ELEMENT, YEAR, MONTH, DAY, TIME. It means the space dimension is 6. The number of stations is 10; therefore, the attribute STATION has 10 possible values. The number of elements is 2. Other attributes include the time of the measurement for the station and element. All data structures have been implemented in C++. We built 2 data structures: R * -tree and Ordered R-tree. Their parameters are shown in Table <ref type="table" target="#tab_2">1</ref>. The page size 2,048 B is used for all trees. Data structures were built by a common tuple-by-tuple way. Since R-tree and Ordered R-tree create different regions, both build times are different for the same order of the inserted tuples.</p><p>In our experiments, we used 30 range queries with various selectivities; the result set includes 0-548,725 tuples. In Table <ref type="table" target="#tab_3">2</ref>, we show some queries in more detail. Terms min and max denote the minimum and maximum values of the domain, respectively. As usual, tests are processed with a cold cache (OS cache as well as cache buffer of indices). For all tests we measure query processing time and Disk Access Cost (DAC). Since in the case of R * -tree the range query's result set must be sorted, we measure the sorting time and DAC of the sort operation. For the time measurement, we repeat the tests 10× and calculate the average time. Since the range query is processed by random disk accesses, DAC is equal to the number of disk accesses during query processing <ref type="bibr" target="#b26">[27]</ref>. We used Merge sort <ref type="bibr" target="#b12">[13]</ref> as the algorithm sorting the result set. Although we show results of 10 queries in more detail, average results are calculated for all 30 queries. DAC results are shown in Table <ref type="table" target="#tab_4">3</ref> and Figure <ref type="figure" target="#fig_4">5</ref>(a). Whereas Table <ref type="table" target="#tab_4">3</ref> includes DAC of the range query as well as sort operation, Figure <ref type="figure" target="#fig_4">5</ref>(a) includes only DAC of the range query. Let us consider DAC of range query processing. We see that the DAC for the Ordered R-tree is 125% of DAC for the R * -tree. It is because the order influences the tree building. Although DAC for the range query and sort operation are not comparable due to the fact that it is simply possible to reduce the number of disk accesses using a cache buffer in the case of the sort operation, we see that DAC of the sort operation is enormous especially for queries with a large result set. Query processing time is shown in Table <ref type="table" target="#tab_4">3</ref> and Figure <ref type="figure" target="#fig_4">5</ref>(b). Moreover, Table <ref type="table" target="#tab_4">3</ref> includes the time of the sort operation. We see that this time influences the query processing time especially for range queries with the large result set. We see that our Orderer R-tree saves 35% of the query processing time compared to the R *tree.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>DAC of range query processing</head></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="7">Conclusion</head><p>In this article, we introduced a new data structure, a variant of the R-tree, supporting a storage of ordered tuples. In this way, the range query result is ordered without an application of any time consuming sort operation. Our experiments show an improvement of this data structure in comparison with the R-tree. Orderer R-tree saves 35% of the query processing time compared to the R * -tree. The new data structure is particularly efficient in the case of large result sets or in the case of lazy query processing when tuples are not retrieved immediately. In the case of the R-tree, range query must be processed completely and then the result set must be sorted. In our future work, we want to adopt this data structure for indexing XML data where the lazy query processing of ordered tuples can be applied.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Fig. 1 .Fig. 2 .</head><label>12</label><figDesc>Fig. 1. Example of a depth-first search range query algorithm: (a) 2-dimensional space (b) R-tree</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Fig. 3 .</head><label>3</label><figDesc>Fig. 3. Violation of the MBR Order Condition in the R-tree -the situation (a) before the insert (b) after the insert</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head></head><label></label><figDesc>the minimal tuple of the MBR if the MBR is the leaf node MBR the minimal first tuple of all child MBRs if the MBR is the inner node MBR Theorem 1. (Ordered Result Set of the Range Query)If MBRs in each inner node of an R-tree are sorted according to their FT and the MBR condition is met for all neighbor MBR's in each level of the Rtree, then the result set of each range query processed by a depth-first technique is ordered.Proof. Let us suppose an arbitrary M BR i of a page N including m tuples. If we choose an M BR j where i &lt; j ≤ m then F T M BRi &lt; F T M BRj since MBRs are sorted. Since the MBR Order condition is met, all tuples of M BR j &gt; F T M BRi . It means that a range query algorithm utilizing the depth-first search technique retrieves ordered tuples.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head>Example 4 .</head><label>4</label><figDesc>(First Tuple) Let us suppose M BR R in Figure 3(b), F T M BR1 = T 1 , F T M BR2 = T 3 . If we sort M BR 1 and M BR 2 in M BR R then we get the ordered set: {M BR 1 , M BR 2 } since F T M BR1 &lt; F T M BR2 . A range query containing both MBRs returns the following ordered result set: T 1 , T 2 , T 3 , T 4 , T 5 .</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_4"><head>Fig. 5 .</head><label>5</label><figDesc>Fig. 5. (a) DAC and (b) Query processing time for tested range queries</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_0"><head></head><label></label><figDesc>table. The following query: must be processed by an efficient sequential scan of the whole table. Another example of the SQL query which retrieves the ordered result is as follows: This statement is an example of the query over the climatological database Clidata 2 . In this case, meteorological stations product data of measured elements for a period. Data has been measured in the Czech Republic from 1775. Elements include: Temperature, Pressure, Wind speed, Wind direction, Precipitation and so on. It means, the main attributes of this table are as follows: STATION, ELEMENT, DAY, MONTH, YEAR, TIME, VALUE. We need always or very often select tuples of the table in the same order: {STATION, ELEMENT, YEAR, MONTH, DAY, TIME}. This real application represents a motivation to introduce the Ordered R-tree.</figDesc><table><row><cell>SELECT * FROM V_DAY_N</cell></row><row><cell>WHERE YEAR BETWEEN 2000 AND 2010 AND MONTH BETWEEN 2 and 4</cell></row><row><cell>ORDER BY STATION, ELEMENT, YEAR, MONTH, DAY, TIME;</cell></row><row><cell>SELECT * FROM TABLE_NAME</cell></row><row><cell>WHERE A1 BETWEEN VAL_A1_LOW AND VAL_A1_HI</cell></row><row><cell>ORDER BY A1,A2,A3;</cell></row><row><cell>is processed by a range query and no irrelevant tuples are retrieved. However,</cell></row><row><cell>the following query:</cell></row><row><cell>SELECT * FROM TABLE_NAME</cell></row><row><cell>WHERE A3 BETWEEN VAL_A3_LOW AND VAL_A3_LOW</cell></row><row><cell>ORDER BY A1,A2,A3;</cell></row></table></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_2"><head>Table 1 .</head><label>1</label><figDesc>R-trees statistics</figDesc><table><row><cell></cell><cell cols="2">R  *  -tree Ordered</cell></row><row><cell></cell><cell></cell><cell>R-tree</cell></row><row><cell>Tree Height</cell><cell>4</cell><cell>4</cell></row><row><cell>Build Time [s]</cell><cell>233</cell><cell>159</cell></row><row><cell># Inner Nodes</cell><cell>1,318</cell><cell>1,372</cell></row><row><cell># Leaf Nodes</cell><cell cols="2">27,826 29,663</cell></row><row><cell>Index Size [kB]</cell><cell cols="2">58,290 62,072</cell></row><row><cell>FT Index Size [kB]</cell><cell>-</cell><cell>794</cell></row></table></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_3"><head>Table 2 .</head><label>2</label><figDesc>Some tested range queries</figDesc><table><row><cell>Query Range query defined by Q l :Q h</cell><cell>Result Size</cell></row><row><cell>Q1 (4, 2, 1960, min, min, min) : (4, 2, 1980, max, max, max)</cell><cell>30,684</cell></row><row><cell>Q5 (min, 2, 2000, 2, 3, min):(max, 2, 2000, 2, 3, max)</cell><cell>36</cell></row><row><cell>Q8 (3, min, min, 10, min, min):(8, max, max, 10, max, max)</cell><cell>47,531</cell></row><row><cell>Q10 (6, min, 1980, 2, min, min):(8, max, 2005, 5, max, max)</cell><cell>32,475</cell></row><row><cell>Q11 (5, min, min, min, min, min):(5, max, max, max, max, max)</cell><cell>92,111</cell></row><row><cell>Q17 (5, min, min, min, 2, min):(5, max, max, max, 2, max)</cell><cell>3,030</cell></row><row><cell>Q18 (min, 1, min, min, min, 900):(max, 1, max, max, max, 1200)</cell><cell>0</cell></row><row><cell>Q22 (9, min, min, min, min, 900):(10, max, max, max, max, 1500)</cell><cell>166,514</cell></row><row><cell>Q23 (3, 2, 1990, min, min, min):(5, 2, 1995, max, max, max)</cell><cell>26,292</cell></row><row><cell>Q27 (min, min, 1980, 7, 5, min):(max, max, 2100, 7, 5, max)</cell><cell>1,372</cell></row></table></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_4"><head>Table 3 .</head><label>3</label><figDesc>DAC and times [s] for tested range queries</figDesc><table><row><cell>Q</cell><cell></cell><cell></cell><cell></cell><cell></cell><cell cols="2">Ordered</cell></row><row><cell>u</cell><cell></cell><cell cols="2">R  *  -tree</cell><cell></cell><cell cols="2">R  *  -tree</cell></row><row><cell>e</cell><cell cols="2">DAC</cell><cell cols="2">Time [s]</cell><cell cols="2">DAC Time [s]</cell></row><row><cell>r</cell><cell></cell><cell></cell><cell>Complete</cell><cell></cell><cell></cell><cell></cell></row><row><cell cols="3">y Query Sort</cell><cell cols="2">Query Sort</cell><cell></cell><cell></cell></row><row><cell cols="3">Q1 2,279 17,408</cell><cell>3.1</cell><cell cols="2">0.8 1,545</cell><cell>0.8</cell></row><row><cell>Q5</cell><cell>201</cell><cell>205</cell><cell>0.4</cell><cell>0</cell><cell>221</cell><cell>0.6</cell></row><row><cell cols="3">Q8 7,600 31,795</cell><cell>7.2</cell><cell cols="2">1.3 5,372</cell><cell>2.9</cell></row><row><cell cols="3">Q10 2,252 18,176</cell><cell>2.2</cell><cell cols="2">0.8 2,025</cell><cell>1.1</cell></row><row><cell>. . .</cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell cols="3">Avg. 6,297 56,627</cell><cell>8.1</cell><cell cols="2">2.8 8,478</cell><cell>5.2</cell></row></table></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="1" xml:id="foot_0">http://www.oracle.com/database/spatial.html</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="2" xml:id="foot_1">http://portal.chmi.cz</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="3" xml:id="foot_2">The experiments were executed on an Intel Core 2 Duo 2.4 Ghz, 512 kB L2 cache; 3 GB RAM; Windows 7.</note>
		</body>
		<back>

			<div type="funding">
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Work is partially supported by Grant of GACR No. P202/10/0573.</p></div>
			</div>

			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<monogr>
		<title level="m" type="main">Global Ordering For Multi-Dimensional Data: Comparison with K-means Clustering</title>
		<author>
			<persName><forename type="first">Ilya</forename><surname>Muchnik</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Baiyang</forename><surname>Liu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Casimir</forename><surname>Kulikowski</surname></persName>
		</author>
		<idno>2009-13</idno>
		<imprint>
			<date type="published" when="2009">2009</date>
		</imprint>
	</monogr>
	<note type="report_type">DIMACS Technical Report</note>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">The Universal B-Tree for multidimensional indexing: General Concepts</title>
		<author>
			<persName><forename type="first">Rudolf</forename><surname>Bayer</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of World-Wide Computing and Its Applications (WWCA 1997)</title>
		<title level="s">LNCS</title>
		<meeting>World-Wide Computing and Its Applications (WWCA 1997)<address><addrLine>Tsukuba, Japan</addrLine></address></meeting>
		<imprint>
			<publisher>Springer-Verlag</publisher>
			<date type="published" when="1997">1997</date>
			<biblScope unit="page" from="198" to="209" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">The R * -tree: An efficient and robust access method for points and rectangles</title>
		<author>
			<persName><forename type="first">Norbert</forename><surname>Beckmann</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Hans-Peter</forename><surname>Kriegel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Ralf</forename><surname>Schneider</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Bernhard</forename><surname>Seeger</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the ACM International Conference on Management of Data</title>
				<meeting>the ACM International Conference on Management of Data</meeting>
		<imprint>
			<publisher>SIGMOD</publisher>
			<date type="published" when="1990">1990. 1990</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Using Spatial Data Access Structures for Filtering Nearest Neighbor Queries</title>
		<author>
			<persName><forename type="first">A</forename><surname>Belussi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Bertino</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Cataniac</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Data &amp; Knowledge Engineering</title>
		<imprint>
			<biblScope unit="volume">40</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="1" to="31" />
			<date type="published" when="2002">2002</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">The X-tree : An Index Structure for High-Dimensional Data</title>
		<author>
			<persName><forename type="first">Stefan</forename><surname>Berchtold</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Daniel</forename><forename type="middle">A</forename><surname>Keim</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Hans-Peter</forename><surname>Kriegel</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of 22th International Conference on Very Large Data Bases (VLDB 1996)</title>
				<meeting>22th International Conference on Very Large Data Bases (VLDB 1996)</meeting>
		<imprint>
			<date type="published" when="1996">1996</date>
			<biblScope unit="page" from="28" to="39" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">A Metric Index for Approximate Text Management</title>
		<author>
			<persName><forename type="first">Vlastislav</forename><surname>Dohnal</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Claudio</forename><surname>Gennaro</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Pavel</forename><surname>Zezula</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of IASTED International Conference Information Systems and Database (ISDB 2002)</title>
				<meeting>IASTED International Conference Information Systems and Database (ISDB 2002)</meeting>
		<imprint>
			<publisher>ACTA Press</publisher>
			<date type="published" when="2002">2002</date>
			<biblScope unit="page" from="37" to="42" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">The BUB-Tree</title>
		<author>
			<persName><forename type="first">Robert</forename><surname>Fenk</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of 28rd VLDB International Conference on Very Large Data Bases (VLDB 2002)</title>
				<meeting>28rd VLDB International Conference on Very Large Data Bases (VLDB 2002)<address><addrLine>Hongkong, China</addrLine></address></meeting>
		<imprint>
			<publisher>Morgan Kaufmann</publisher>
			<date type="published" when="2002">2002</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<monogr>
		<title level="m" type="main">Database Systems: The Complete Book</title>
		<author>
			<persName><forename type="first">H</forename><surname>Garcia-Molina</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">D</forename><surname>Ullman</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Widom</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2002">2002</date>
			<publisher>Prentice Hall</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">Accelerating XPath Location Steps</title>
		<author>
			<persName><forename type="first">Torsten</forename><surname>Grüst</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of ACM International Conference on Management of Data (SIGMOD 2002)</title>
				<meeting>ACM International Conference on Management of Data (SIGMOD 2002)</meeting>
		<imprint>
			<date type="published" when="2002">2002</date>
			<biblScope unit="page" from="109" to="120" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">R-Trees: A Dynamic Index Structure for Spatial Searching</title>
		<author>
			<persName><forename type="first">Antonin</forename><surname>Guttman</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of ACM International Conference on Management of Data (SIGMOD 1984)</title>
				<meeting>ACM International Conference on Management of Data (SIGMOD 1984)</meeting>
		<imprint>
			<publisher>ACM Press</publisher>
			<date type="published" when="1984-06">June 1984</date>
			<biblScope unit="page" from="47" to="57" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">On packing R-trees</title>
		<author>
			<persName><forename type="first">Ibrahim</forename><surname>Kamel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Christos</forename><surname>Faloutsos</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 2nd International Conference on Information and Knowledge Management (CIKM 1993)</title>
				<meeting>the 2nd International Conference on Information and Knowledge Management (CIKM 1993)</meeting>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="1993">1993</date>
			<biblScope unit="page" from="490" to="499" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">Hilbert R-tree: An Improved R-tree using Fractals</title>
		<author>
			<persName><forename type="first">Ibrahim</forename><surname>Kamel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Christos</forename><surname>Faloutsos</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 20th International Conference on Very Large Data Bases (VLDB 1994)</title>
				<meeting>the 20th International Conference on Very Large Data Bases (VLDB 1994)</meeting>
		<imprint>
			<date type="published" when="1994">1994</date>
			<biblScope unit="page" from="500" to="509" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<analytic>
		<title level="a" type="main">The Art of Computer Programming</title>
		<author>
			<persName><forename type="first">Donald</forename><surname>Knuth</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Sorting and Searching, Second Edition</title>
				<imprint>
			<publisher>Addison-Wesley</publisher>
			<date type="published" when="1998">1998</date>
			<biblScope unit="volume">3</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b13">
	<analytic>
		<title level="a" type="main">On the Efficient Processing Regular Path Expressions of an Enormous Volume of XML Data</title>
		<author>
			<persName><forename type="first">Michal</forename><surname>Krátký</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Radim</forename><surname>Bača</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Václav</forename><surname>Snášel</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of DEXA 2007</title>
				<meeting>DEXA 2007</meeting>
		<imprint>
			<publisher>Springer-Verlag</publisher>
			<date type="published" when="2007">2007. 2007</date>
			<biblScope unit="volume">4653</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b14">
	<analytic>
		<title level="a" type="main">Implementation of XPath Axes in the Multi-dimensional Approach to Indexing XML Data</title>
		<author>
			<persName><forename type="first">Michal</forename><surname>Krátký</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Jaroslav</forename><surname>Pokorný</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Václav</forename><surname>Snášel</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Current Trends in Database Technology</title>
				<imprint>
			<publisher>Springer-Verlag</publisher>
			<date type="published" when="2004">2004</date>
			<biblScope unit="volume">3268</biblScope>
		</imprint>
	</monogr>
	<note>EDBT 2004</note>
</biblStruct>

<biblStruct xml:id="b15">
	<analytic>
		<title level="a" type="main">Multidimensional Term Indexing for Efficient Processing of Complex Queries</title>
		<author>
			<persName><forename type="first">Michal</forename><surname>Krátký</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Tomáš</forename><surname>Skopal</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Václav</forename><surname>Snášel</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Kybernetika, Journal</title>
		<imprint>
			<biblScope unit="volume">40</biblScope>
			<biblScope unit="issue">3</biblScope>
			<biblScope unit="page" from="381" to="396" />
			<date type="published" when="2004">2004</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b16">
	<analytic>
		<title level="a" type="main">Efficient Processing of Narrow Range Queries in the R-Tree</title>
		<author>
			<persName><forename type="first">Michal</forename><surname>Krátký</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Václav</forename><surname>Snášel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Zezula</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Jaroslav</forename><surname>Pokorný</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 10th International Database Engineering and Applications Symposium (IDEAS 2006)</title>
				<meeting>the 10th International Database Engineering and Applications Symposium (IDEAS 2006)</meeting>
		<imprint>
			<publisher>IEEE</publisher>
			<date type="published" when="2006">2006</date>
			<biblScope unit="page" from="69" to="79" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b17">
	<analytic>
		<title level="a" type="main">G-Tree: A New Data Structure for Organizing Multidimensional Data</title>
		<author>
			<persName><forename type="first">A</forename><surname>Kumar</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">IEEE Transactions on Knowledge and Data Engineering</title>
		<imprint>
			<biblScope unit="volume">6</biblScope>
			<biblScope unit="issue">2</biblScope>
			<biblScope unit="page" from="341" to="347" />
			<date type="published" when="1994">1994</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b18">
	<monogr>
		<title level="m" type="main">Relational Database Index Design and the Optimizers</title>
		<author>
			<persName><forename type="first">Tapio</forename><surname>Lahdenmäki</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Michael</forename><surname>Leach</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2005">2005</date>
			<publisher>John Wiley and Sons</publisher>
			<pubPlace>New Jersey</pubPlace>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b19">
	<monogr>
		<title level="m" type="main">Physical Database Design: the Database Professional&apos;s Guide</title>
		<author>
			<persName><forename type="first">Sam</forename><forename type="middle">S</forename><surname>Lightstone</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Toby</forename><forename type="middle">J</forename><surname>Teorey</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Tom</forename><surname>Nadeau</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2007">2007</date>
			<publisher>Morgan Kaufmann</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b20">
	<monogr>
		<author>
			<persName><forename type="first">Y</forename><surname>Manolopoulos</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Alexandros</forename><surname>Nanopoulos</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Apostolos</forename><forename type="middle">N</forename><surname>Papadopoulos</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><surname>Theodoridis</surname></persName>
		</author>
		<title level="m">R-Trees: Theory and Applications</title>
				<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2005">2005</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b21">
	<monogr>
		<title level="m" type="main">Mistral: Processing Relational Queries using a Multidimensional Access Technique</title>
		<author>
			<persName><forename type="first">Markl</forename><surname>Volker</surname></persName>
		</author>
		<ptr target="http://mistral.in.tum.de/results/publications/Mar99.pdf" />
		<imprint>
			<date type="published" when="1999">1999</date>
			<pubPlace>Germany</pubPlace>
		</imprint>
		<respStmt>
			<orgName>Technical University München</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">Ph.D. thesis</note>
</biblStruct>

<biblStruct xml:id="b22">
	<analytic>
		<title level="a" type="main">Integrating the UB-tree into a Database System Kernel</title>
		<author>
			<persName><forename type="first">F</forename><surname>Ramsak</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Markl</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Fenk</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Zirkel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Elhardt</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Bayer</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of 26th International Conference on Very Large Data Bases (VLDB 2000)</title>
				<meeting>26th International Conference on Very Large Data Bases (VLDB 2000)</meeting>
		<imprint>
			<date type="published" when="2000">2000</date>
			<biblScope unit="page" from="263" to="272" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b23">
	<monogr>
		<title level="m" type="main">Space Filling Curves</title>
		<author>
			<persName><forename type="first">Hans</forename><surname>Sagan</surname></persName>
		</author>
		<imprint>
			<date type="published" when="1994">1994</date>
			<publisher>Springer-Verlag</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b24">
	<monogr>
		<title level="m" type="main">Foundations of Multidimensional and Metric Data Structures</title>
		<author>
			<persName><forename type="first">Hanan</forename><surname>Samet</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2006">2006</date>
			<publisher>Morgan Kaufmann</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b25">
	<analytic>
		<title level="a" type="main">The R + -Tree: A Dynamic Index For Multi-Dimensional Objects</title>
		<author>
			<persName><forename type="first">K</forename><surname>Timos</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Nick</forename><surname>Sellis</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Christos</forename><surname>Roussopoulos</surname></persName>
		</author>
		<author>
			<persName><surname>Faloutsos</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 23rd International Conference on Very Large Data Bases (VLDB 1997)</title>
				<meeting>the 23rd International Conference on Very Large Data Bases (VLDB 1997)</meeting>
		<imprint>
			<date type="published" when="1997">1997</date>
			<biblScope unit="page" from="507" to="518" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b26">
	<analytic>
		<title level="a" type="main">Database Tuning: Principles, Experiments, and Troubleshooting Techniques</title>
		<author>
			<persName><forename type="first">Dennis</forename><surname>Shasha</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Philippe</forename><surname>Bonnet</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">The Morgan Kaufmann Series in Data Management Systems</title>
				<imprint>
			<date type="published" when="2002">2002</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b27">
	<analytic>
		<title level="a" type="main">A New Range Query Algorithm for the Universal B-trees</title>
		<author>
			<persName><forename type="first">Tomáš</forename><surname>Skopal</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Michal</forename><surname>Krátký</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Václav</forename><surname>Snášel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Jaroslav</forename><surname>Pokorný</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Information Systems</title>
		<imprint>
			<biblScope unit="volume">31</biblScope>
			<biblScope unit="issue">6</biblScope>
			<biblScope unit="page" from="489" to="511" />
			<date type="published" when="2006">2006</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b28">
	<analytic>
		<title level="a" type="main">Algorithms and Data Structures for External Memory</title>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">S</forename><surname>Vitter</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Series on Foundations and Trends in Theoretical Computer Science</title>
				<imprint>
			<publisher>Now Publisher</publisher>
			<date type="published" when="2008">2008</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b29">
	<analytic>
		<title level="a" type="main">High-Dimensional Indexing</title>
		<author>
			<persName><forename type="first">Cui</forename><surname>Yu</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="s">Lecture Notes in Computer Science</title>
		<imprint>
			<biblScope unit="volume">2341</biblScope>
			<date type="published" when="2002">2002</date>
			<publisher>Springer-Verlag</publisher>
		</imprint>
	</monogr>
</biblStruct>

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