OODB indexing by class-division

Indexing a class hierarchy, in order to efficiently search or update the objects of a class according to a (range of) value(s) of an attribute, impacts OODB performance heavily. For this indexing problem, most systems use the class hierarchy index (CH) technique of [15] implemented using B+-trees. Other techniques, such as those of [14, 18,31], can lead to improved average-case performance but involve the implementation of new data-structures. As a special form of external dynamic two-dimensional range searching, this OODB indexing problem is solvable within reasonable worst-case bounds [12]. Based on this insight, we have developed a technique, called indexing by class-division (CD), which we believe can be used as a practical alternative to CH. We present an optimized implementation and experimental validation of CD's average-case performance. The main advantages of the CD technique are: (1) CD is an extension of CH that provides a significant speed-up over CH for a wide spectrum of range queries--this speed-up is at least linear in the number of classes queried for uniform data and larger otherwise; and (2) CD queries, updates and concurrent use are implementable using existing B+-tree technology. The basic idea of class-division involves a time-space tradeoff and CD requires some space and update overhead in comparison to CH. In practice, this overhead is a small factor (2 to 3) and, in worst-case, is bounded by the depth of the hierarchy and the logarithm of its size.

[1]  J. T. Robinson,et al.  The K-D-B-tree: a search structure for large multidimensional dynamic indexes , 1981, SIGMOD '81.

[2]  Beng Chin Ooi,et al.  H-trees: a dynamic associative search index for OODB , 1992, SIGMOD '92.

[3]  Oliver Günther,et al.  The design of the cell tree: an object-oriented index structure for geometric databases , 1989, [1989] Proceedings. Fifth International Conference on Data Engineering.

[4]  B. Sreenath,et al.  The hcC-tree: An Efficient Index Structure for Object Oriented Databases , 1994, VLDB.

[5]  Hanan Samet,et al.  Hierarchical Spatial Data Structures , 1989, SSD.

[6]  Hiroyuki Kitagawa,et al.  Evaluation of signature files as set access facilities in OODBs , 1993, SIGMOD '93.

[7]  E. F. Codd,et al.  A relational model of data for large shared data banks , 1970, CACM.

[8]  David Maier,et al.  Readings in Object-Oriented Database Systems , 1989 .

[9]  Sridhar Ramaswamy,et al.  Indexing for data models with constraints and classes (extended abstract) , 1993, PODS '93.

[10]  E. F. Codd,et al.  A Relational Model for Large Shared Data Banks , 1970 .

[11]  Elisa Bertino,et al.  Indexing Techniques for Queries on Nested Objects , 1989, IEEE Trans. Knowl. Data Eng..

[12]  Won Kim,et al.  Object-Oriented Concepts, Databases, and Applications , 1989 .

[13]  François Bancilhon,et al.  Building an Object-Oriented Database System, The Story of O2 , 1992 .

[14]  Guido Moerkotte,et al.  Indexing Multiple Sets , 1994, VLDB.

[15]  Sridhar Ramaswamy Indexing for data models with classes and constraints , 1996 .

[16]  Ryuichi Kitagawa Progress of urology during recent 10 years , 1993 .

[17]  David B. Lomet,et al.  The hB-tree: a multiattribute indexing method with good guaranteed performance , 1990, TODS.

[18]  A. Guttman,et al.  A Dynamic Index Structure for Spatial Searching , 1984, SIGMOD 1984.

[19]  Jürg Nievergelt,et al.  The Grid File: An Adaptable, Symmetric Multikey File Structure , 1984, TODS.

[20]  Antonin Guttman,et al.  R-trees: a dynamic index structure for spatial searching , 1984, SIGMOD '84.

[21]  Douglas Comer,et al.  Ubiquitous B-Tree , 1979, CSUR.

[22]  Jon Louis Bentley,et al.  Multidimensional divide-and-conquer , 1980, CACM.

[23]  Jack A. Orenstein Spatial query processing in an object-oriented database system , 1986, SIGMOD '86.

[24]  Hanan Samet,et al.  The Design and Analysis of Spatial Data Structures , 1989 .

[25]  Michael Stonebraker,et al.  The design of POSTGRES , 1986, SIGMOD '86.

[26]  David Maier,et al.  Indexing in an Object-Oriented DBMS , 1986, OODBS.

[27]  Elisa Bertino,et al.  An indexing techniques for object-oriented databases , 1991, [1991] Proceedings. Seventh International Conference on Data Engineering.

[28]  Guido Moerkotte,et al.  Access support in object bases , 1990, SIGMOD '90.

[29]  Sridhar Ramaswamy,et al.  Indexing for Data Models with Constraints and Classes , 1996, J. Comput. Syst. Sci..

[30]  Christos Faloutsos,et al.  The R+-Tree: A Dynamic Index for Multi-Dimensional Objects , 1987, VLDB.

[31]  M. J. van Kreveld,et al.  Maintaining range trees in secondary memory. Part I: Partitions , 1987 .