Eventually, you are going to need persistent objects, or just some way to store and retrieve data. The approach you use depends on many factors, such as:
Do you have a lot of data to store?
Must you work with an existing database schema, or can you start from scratch with a new schema?
Do you need/want to have a traditional relational model so that you or your users can use standard report generating tools?
Do you need close control over the database schema for purposes of optimization?
If you must use an RDBMS, does it have object-relational features (e.g., inheritance) like say, PostgreSQL?
Do you need support for transactions to commit changes to one or more objects/data fields atomically?
Do you care about ACID compliance (because your data and/or transactions are mission critical)?
Do you care about closed source vs. open source?
Must you support ad-hoc online queries, report generation, hot database backups, and heavy multi-user or transaction intensive use?
How much do you want to spend?
The following is a list of possible solutions:
Use an object-oriented database or object store like ZODB
Use an RDBMS and the Webware MiddleKit object-relational mapper
Use an RDBMS and some other object-relational mapper. Possibilities include: * PyDO * Database Objects (dbObj) * SQLObject * Modeling
Forget about object-relational mapping--use the Python DB API and an RDBMS directly
Use DBUtils on top of the Python DB API
Use Python's pickle and shelve modules
Roll your own system with a flat file
dbObj
Python's pickle and shelve modules
Informix (proprietary)
InterBase (open source)
MySQL (open source)
Oracle (proprietary)
PostgreSQL (open source)
SAP DB (now open source, based on ADABAS code)
SQL Server (proprietary)
Sybase (proprietary)
Database Debunkings is a great place to look for intelligent discussion about database issues by people like C.J. Date and Fabian Pascal.
searchDatabase.com seems to be another great site to start exploring the literature on databases.
When will they ever learn is a critique (by Fabian Pascal) of an exchange on whether MySQL and Innobase are DBMSs, or even relational. C.J. Date makes an appearance, and you get to hear the horses speak directly.
Linux RDBMS Library Compilation of free readings on Linux relational databases.
What exactly is a relational database? C.J. Date explains in A Closer Look at Relational Database. This site requires free registration.
Fabian Pascal explains why SQL sucks and why all SQL DBMS violate important relational features, some more than others in Little Relationship to Relational.
Think OODBMS are the bee's-knees? Better read this first.
-- EdmundLian - 30 Dec 2001