“Choosing the right OODB architecture can mean orders of magnitude difference in performance and scalability characteristics rather than a few percentage points as found in relational implementations.”
To achieve maximum performance and scalability the most important thing is choosing the right application architecture. OODBs give applications much more direct access to the persistent data, so application architecture has much more impact on performance than is the case with an RDB. Or to put it another way, when using an
OODB the application architect has much more power to optimize performance than when using an RDB. Consequently the application architecture has more effect on performance and scalability than the choice of OODB product.
To effectively exploit an OODB a use-case driven approach is recommended, as this informs the entire design of the application. The process architecture design should consider which processes are responsible for which use-cases. Partitioning of the dataset should aim to identify which objects are accessed by which of these processes.
Transactional analysis should analyse the transactional requirements of each use-case, and the objects that are accessed in each transaction. Object interaction diagrams are useful in this respect. The OO design phase should include the design of optimal access and index structures to support the navigation paths of the most important use cases, and the concurrency characteristics of the system should be explored with techniques such as CRUD charts. In short, using standard OO analysis and design techniques to produce the correct application architecture is essential when implementing large, high-performance, scalable and reliable OODB based applications.
Without this effort, the choice of OODB product is unlikely to change the performance characteristics by orders of magnitude one way or the other.
Motivation
The relational model is the basis of many
References: Documentations ➢ D. Maier and J. Stein, Indexing in an object-oriented DBMS. ➢ Alfons Kemper and Guido Moerkotte, Object-Oriented Database Management, 1994 Websites ➢ David Maier’s home page: www.cse.ogi.edu/~maier ➢ http://en.wikipedia.org/wiki/Object_database ➢ http://www.comptechdoc.org/independent/database/basicdb/dataobject.html