OODB basics
2005-10-08
Oleg Broytmann2005-10-08
Patrick K. O'Brien2005-10-09
David Binger2005-10-09
Patrick K. O'Brien2005-10-09
David Binger2005-10-09
Patrick K. O'Brien2005-10-09
Oleg Broytmann2005-10-09
David Binger2005-10-09
Oleg Broytmann2005-10-09
Oleg Broytmann2005-10-09
Patrick K. O'Brien2005-10-09
Oleg Broytmann2005-10-09
mario ruggierOODB vs SQL
2005-10-09
Oleg Broytmann2005-10-09
Patrick K. O'Brien2005-10-09
Oleg Broytmann2005-10-09
Patrick K. O'Brien2005-10-09
Oleg Broytmann2005-10-09
John Miller2005-10-09
Patrick K. O'Brien2005-10-12
mario ruggier2005-10-09
David Binger2005-10-09
Oleg Broytmann2005-10-10
Rodrigo Dias Arruda Senra2005-10-10
David Binger2005-10-11
mario ruggier2005-10-11
Rodrigo Dias Arruda Senra2005-10-11
A.M. Kuchling2005-10-11
Rodrigo Dias Arruda Senra2005-10-11
Roger E. Masse2005-10-11
Rodrigo Dias Arruda Senra2005-10-11
Roger E. MasseRe: OODB vs SQL
2005-10-11
Michael Watkins2005-10-11
Michael Watkins2005-10-11
Patrick K. O'Brien2005-10-11
Patrick K. O'Brien2005-10-11
David Binger2005-10-11
Patrick K. O'Brien2005-10-15
Patrick K. O'Brien2005-10-12
Michael Watkins2005-10-12
Patrick K. O'Brien2005-10-12
mario ruggier2005-10-12
Michael Watkins2005-10-12
Patrick K. O'BrienDemo application [was: Re: [Durus-users] Re: OODB vs SQL]
2005-10-13
mario ruggier2005-10-12
Patrick K. O'BrienRe: OODB vs SQL
2005-10-11
Michael Watkins2005-10-11
Rodrigo Dias Arruda SenraDurus basics
2005-10-09
Oleg Broytmann2005-10-09
David BingerRe: OODB basics
2005-10-13
Oleg BroytmannOODB basics
Oleg Broytmann
Hello!
I have started to experiment with Durus. First, I'd like to understand
what are object-oriented databases in general. I have some (very little)
experience with ZODB; I did a search on papers on OODBs; I spent some time
reading the source code of some Zope Products that use ZODB, most notable
is TextIndexNG. Below is what I've found. Would you be so kind to look at
it and say if I get it right?
Thank you in advance!
My English is a bit rough, sorry. Any correction will be appreciated.
BTW, is "OODBs" the correct plural form?
Object-oriented databases.
An OODB stores objects; actually serialized images of objects, and
serializes and deserializes objects at needs. An OODB assigns every object
an OID (object ID) and stores a global mapping from OIDs to objects.
A user can and should create "indices" - mappings from keys to objects (or
OIDs). These indices help to fetch objects; they also are there to be
iterated over, so the user does not need to fetch and test an every object
in the loop (which can be quite memory- and time-consuming) - it is enough
to iterate over an index and fetch only those objects that the user really
needs; the index iteration is usually optimized time- and memory-wise.
Serialized objects are the only "things" in a database. Indices are also
such objects.
Storing and fetching objects are the only operations (beside administration
tasks, like packing) of an OODB. Removing objects is (sometimes? usually?
always?) implemented as a modification of the parent object - the OODB
breaks the link between the parent and the child, and stores the modified
parent object. Index iteration is not a task of the OODB - indices are just
special iterable objects (sequences or enumerators), usually implemented as
(binary) trees for efficiency.
Creating and deleting objects (including indices), and iterating over
indices are main (if not the only) tasks related to OODBs that a user
performs. All other manipulations with objects are outside the scope of
OODBs, though OODBs that support automatic persistence take notes when
objects are modified and store (serialize) new and modified objects at the
end of a transaction.
When developing programs a user is mainly confronted with the following 4
problems related to OODBs:
* devise an object scheme - classes, attributes, object hierarchies;
* name the objects (create indices);
* upgrade (change) the object scheme;
* remember to update all indices whenever an object is created, modified or
deleted.
Oleg.
--
Oleg Broytmann http://phd.pp.ru/ phd@phd.pp.ru
Programmers don't die, they just GOSUB without RETURN.