Persistence strategies in ODBMS

After some frustrating time to understand the different persistence strategies in ODBMS and ODMG-93
[1], I made this list. One of the reasons to use a pure ODBMS instead of a RDBMS is to totally remove the impedance mismatch (IM) (also called paradigm mismatch) between your object-oriented programming language and the DBMS language. If this is achieved then you have orthogonal persistence which is only possible through persistence-by-reachability, but not necessarily. If you want to read more about this check [2][3].

C++ Java SmalltalkLisp
Poet p-b-reap-b-rea------
Versant p-b-inhp-b-reap-b-rea---
Jasmine ? ? ------
GemStone --- p-b-reap-b-rea---

Last updated 22 May 1998

Persitence-by-instantion: An object is made persistent and gets its persistent capabilities when instantiated. Some (all ?) ODBMS needs to specify the persistence classes (persistence capable classes), but can make these objects transient too.

Persistence-by-inheritance: A class inherit persistence capabilities from a pre defined persistent class. When you want to make the objects persistent you need to do it explicit, but some (all ?) decide at instation if an object should be transient or transient. This strategy is supported in the ODMG-93 standard for C++.

Persistence-by-reachability: An object is made persistent when it's reachable from another persistent object (db root), also called "transitive persistence". This strategy is supported in the ODMG-93 standard for Java and Smalltalk, but the Java version is based on persistence capable classes as the C++ version.

To read more about these strategies and IM, check [3]. This essay gives you a good introduction to this area and is where I have got some part of the definitions from.

[1] ODMG-93. Object Database Management Group.
[2] Suad Alagic. The ODMG Object Model: Does it Make Sense ? In OOPLSA '97 ACM., 1997.
[3] Asbjørn Danielsen. The Evolution Of Data Models And Approaches To Persistence In Database Systems, Essay 1998.

If you know the answers to any of the ?, if you find some errors or and have some additional information that can be included, please let me know. Thanks!. Thanks also to everyone that has helped me with this list.

Good luck with ODBMS !
Erlend Bjørge