ODMSs make database objects appear as programming language objects in one or more existing (object-oriented)programming languages, and ODMSs extend the programming language with transparently persistent data, concurrency control, recovery, associative queries, and other database capabilities (Cattell, 2000).