Random Database in Python

Alessandro Bottoni alessandro.bottoni at infinito.it
Thu Oct 24 10:25:20 CEST 2002

Alle 09:42, mercoledì 23 ottobre 2002, David LeBlanc ha scritto:
> Is there any example of the type of database used by programs like Lotus
> Agenda or InfoSelect in Python? Sometimes described as a "random"
> database...
> Failing that, does anyone have a notion of how they work or can point me to
> information on them?
> TIA,
> David LeBlanc
> Seattle, WA USA

I do not use neither Lotus Agenda nor InfoSelect (I use the KDE Office 
programs) but I think they should work in one of these ways:

- a linked (or double linked) list of "event" objects, implemented and stored 
as a collections of linked Python objects. This is the most likely solution 
for a small agenda-oriented applications.
- a regular RDBMS, like MySQL, used to store the agenda events and the 
related info into linked tables (using "foreign keys" to link the table each 
other). This requires an external RDBMS or an internal RDBMS engine. It is 
meaningful only if you plan to manage a large, multi-user application.
- an OODMS, like ZODB (the OO database used by Zope). Same as above.
- a B-Tree internal database engine. I just cannot help you with this item 
because I do not use this technology.

You can find the related info by searching for the mentioned terms with 
google. Try something like: +"linked list" +python +database, for example.

Python have a few different built-in facilities for dealing with data on the 
disk, starting from simple database engines like Gadfly to much more 
sophisticated OO DMS engines like ZODB. Have a look at "marshall", "pickle" 
and "dictionaries" into the Python doc, for example. Of course, "linked 
lists" and other internal data structures are described in many beginner's 
guide for programmers that are devoted to data structures, as well. 

Have a look at ASPN.activestate.com web site, as well. The "database" section 
of the activestate's Python cookbook contains a lot of info and examples on 
marshalling, pickling, dictinaries, small and large database engines and 
related technologies.

Alessandro Bottoni

More information about the Python-list mailing list