Paul, Please excuse this belated response to your question.
Thus my question: How much would allowing record storage and management in something you might trust (e.g. bsddb) alleviate the black-box feeling?
Your question was made in the context of the current and future forms of Zope persistent storage.
From my POV, most stores are black boxes, whether they are SQL servers, object databases, or some hybrid.
Although each type of database has its particular uses and relevance, the common thread for me has always been can I reliably conduct the following operations: 1. Populate the database. For object databases, the originating data may be some external non-object source, so it may be necessary to populate in stages. (i.e. First drop in the low-level, bottom-of-the-tree stuff, then work my way up the branches, wiring whatever linkages along the way. It's possible this must be done in multiple passes -- a staged build.) 2. Replicate the database. Given the database has been populated with information, I want to export it to a format of my choice(*): flat file, pickle, whatever; copy it to a new location a re-populate a fresh database from scratch. (*) "my choice" implies I'm responsible for implementing it. 3. Perform maintenance ("fix") the database. Despite best efforts, occasionally some corruption may occur, possibly as the result of a poorly designed user application. Items 1 & 2 imply the possibility of fixing these problems, independent of the application code. 4. Schema evolution. This tends to be my biggest hassle with object databases, especially in maintaining production systems. Pickles are pleasantly permissive, but I'm mostly comfortable with systems that I can easily populate from scratch. I've been remiss in keeping up with Jim's work, although I did review his description of BoboPOS3. [Slightly off-topic, but I'm also wondering if anybody has considered using the Zope database for any non-Zope projects.] Best regards, Jeff Bauer Rubicon, Inc.