[Zope-DB] Relational Databases in Zope 2 and Zope 3
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
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.
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.
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