5 CONCLUSIONS
The ODRA OODBMS is a proof of concept
prototype as well as the implemented Index
Updating Mechanism. The fair comparison can be
conducted considering general properties to the
index maintenance and its influence on capabilities
of a database indexing.
An undoubtful advantage of the index updating
approach in majority of relational and object-
relational databases is an economic usage of the data
store. In the implemented solution for the ODRA
OODBMS index update triggers are in many cases
written together with complex objects and objects
containing single values. This situation is acceptable
considering that nowadays databases administer a
very large amount of memory (or disk) space.
Improving performance among other depends on
the diversity of used index structures and flexibility
in defining an index. The properties of the SBQL
language, i.e. orthogonality and compositionality,
enable easy formulating of complex selection
predicates (including usage of complex expressions
with polymorphic methods and aggregate operators).
The proposed organization of indexing in ODRA
OODBMS provides all necessary mechanisms for
creating indices with keys based on such predicates.
As it was shown, the most popular DBMSs do not
provide similar indexing capabilities and flexibility.
Furthermore, attempts to extend the power of
indexing facilities (Oracle function-based indices)
lead to mistakes in obtaining queries results and
erroneous work of database applications.
In contrast to all implemented solutions to the
automatic index updating issue presented in research
literature or incorporated in commercial products,
the authors approach based on Index Update
Triggers implemented in ODRA OODBMS provides
transparent, complete and generic support for variety
of index definitions. Moreover, the additional data
modification costs associated with the index
maintenance concerns exclusively objects used to
access the indexed objects or to determine a key
value. One can argue about increased storage cost
caused by IUTs. Nevertheless, as it is shown in
(Bertino, 1997) the maintenance of indices defined
using complex expressions require introducing a lot
of additional information in the index structure.
Other advantage of the authors IUTs set on objects
used to determine a key value is that they include
direct reference to an indexed object, whereas other
solutions are often forced to identify it indirectly
(e.g. by reverse navigation methods) (Bertino,
1997)(Henrich, 1997).
The presented solution to index updating in
OODBMS is generic and versatile; however, it
requires optimizations to avoid unnecessary
performance deterioration particularly in simple
updating cases. Such optimizations have been
developed and partially implemented. Discussion
concerning this subject is omitted due to the paper
size restrictions.
ACKNOWLEDGEMENTS
This research work is funded from the science
finances in years 2008/2009 as a research project nr
N516 383334.
R. Adamus and J. Wislicki are scholarship holders
of project entitled "Innovative education..."
supported by European Social Fund.
REFERENCES
Adamus R., Kowalski T.M., Subieta K., et al., 2008.
Overview of the Project ODRA. Proceedings of the
First International Conference on Object Databases,
ICOODB 2008, Berlin, ISBN 078-7399-412-9, pp.
179-197.
Bertino E. et al., 1997. Indexing Techniques for Advanced
Database Systems. Kluwer Academic Publishers,
Boston Dordrecht London.
db4objects Inc., 2008. db4o Tutorial for Java. Production
Release V6.3.
Elmasri R. and Navathe S. B., 2004. Fundamentals of
Database Systems 4th ed. Pearson Education, Inc.,
ISBN: 83-7361-716-7
GemStone, 2008. GemFire Enterprise Developer’s Guide,
Version 5.7.
Henrich A., 1997. The Update of Index Structures in
Object-Oriented DBMS. Proceedings of the Sixth
International Conference on Information and
Knowledge Management (CIKM'97), Las Vegas,
ACM 1997, ISBN 0-89791-970-X: pp. 136-143.
Hwang D. J., 1994. Function-based indexing for object-
oriented databases. PhD thesis, Massachusetts
Institute of Technology.
Objectivity, 2006. Objectivity/SQL++. Part Number: 93-
SQLPP-0, Release 9.3.
Płodzień J., 2000. Optimization Methods In Object Query
Languages. PhD Thesis. IPIPAN, Warszawa.
Progress Software Corporation, 2008. ObjectStore Java
API User Guide. ObjectStore, Release 7.1 for all
platforms.
SBA & SBQL Web pages: http://www.sbql.pl/
Strohm R., et al., 2008. Oracle® Database Concepts. 11g
Release 1 (11.1), Part Number B28318-05.
ICEIS 2009 - International Conference on Enterprise Information Systems
260