[Zope-DB] Relational Databases in Zope 2 and Zope 3

Charlie Clark charlie at egenix.com
Mon Jun 28 07:50:11 EDT 2004

On 2004-06-28 at 11:26:36 [+0200], Chris Withers <chris at simplistix.co.uk> 
> Hi All,
> Several people have commented on the rather archeic state of affairs of the
> standards for RDB integration in Zope 2. There's also Zope 3 to think about.
> How is RDB integration currently supported in Zope 3?
> What are the possibilities for a new standard for RDB integration in Zope 2?
> How can these two worlds be brought to meet, and should we be seeking to do 
> so?

Would love to get involved in this!

While we have a commercial imperative to improve RDBMs performance with Zope 
the same imperative will limit the amount of code we can contribute. It is 
our hope, however, that we can retain a commercial, close-source ZopeDA while 
contributing ideas, specifications and documentation to this project.

Recently at the Zope sprint after EuroPython I worked with Richard Waid to 
introduce support for positional parameters in ZSQL and we achieved 30% speed 
improvements over query strings on non-cached transactions. This proof of 
concept requires changes to Zope core but we intend to release a new version 
of mxODBCZopeDA which makes this possible.

We think that there is plenty of room for improvement in the current API and 
are prepared to drive this: improving RDBMs support in Zope will hopefully 
improve demand for the mxODBCZopeDA.

Suggested areas:

1) ZSQL - use property sheets and positional parameters. Personally I'd like 
to drop DTML support in ZSQL altogether. Jim Fulton made the suggestion that 
<dtml-sqlvar> parsing could be modified to return '?' and a tuple element to 
preserve backwards compatability but we think this would no longer be 
necessary. It might, however, be worthwhile to have something like ZPT for 
ZSQL to encourage reuse and embedding in applications.

2) DA / Zope integration. It is probably possible to interact directly with 
Transactional and drop most of the current ZRDB source passing the 
responsiblity of quoting to the driver. This would reduce the Zope codebase 
to be maintained, simplify DA development and improve performance.

3) Improve usability. It seems quite clear that despite the advantages of 
ZODB there are many people who need to access existing RDBMs and while this 
is very easy in Zope it is important to encourage and support best 
"relational" practice with the right tools and documentation.

We have not yet started to look at Zope 3 but our understanding is that Zope 
3 is still very much programmer-facing with what Zope-RDBMS integration there 
is essentially a straight port from Zope 2. In this case the work on Zope 2 
would be complimentary and hopefully relatively easy to include in Zope 3.

Charlie Clark

Professional Python Services directly from the Source
 >>> Python/Zope Consulting and Support ...        http://www.egenix.com/
 >>> mxODBC.Zope.Database.Adapter ...             http://zope.egenix.com/
 >>> mxODBC, mxDateTime, mxTextTools ...        http://python.egenix.com/

::: Try mxODBC.Zope.DA for Windows,Linux,Solaris,FreeBSD for free ! ::::

More information about the Zope-DB mailing list