Well, understand that most OO dbms's are implemented right on top of the class objects. So imagine myobject.Name = "Courageous"; being automatically persistent. This is done in a highly efficient way, by marking the memory associated with the object as "dirty," and then flushing entire pages at a time to disk in native binary form (no serialization) on an organized basis. To pull stuff off of disk and into memory, they do things like intercept the "." operator between object references, in hashtables, and the like. You're probably wondering how they do all this, yes?
It's through code generation, and by representing the objects in an intermediate format, something like IDL.
C//