[Zope-DB] SQL optimisation: follow up

Charlie Clark charlie@begeistert.org
Fri, 08 Nov 2002 12:08:08 +0100

On 2002-11-08 at 09:32:46 [+0100], M.-A. Lemburg wrote:
> Funny that nobody ever considers using the open-source SAP DB. That's a 
> full-blown RDBMS with a long history of being reliable and fast.

I know you (Marc-Andr=E9) recommend the SAP DB as I noted in a previous 
post. I can't use it on my current project as it's not supported by my ISP.=
Whether I could get it to work on my notebook is a different matter as is 
whether I should be doing this myself at all... There is a Zope DA for it
which is in development stage for those interested.

My post was not really supposed to be pro PostgreSQL. It is actually pro 
ACID databases and anti-quick fixes and default installs. Referential 
integrity is really important even though I was close to removing it in my 
SQL as I got one error after another. It was good to perservere and I've 
now got some examples to help explain things with examples to other people.

The internet "revolution" is full of people like me coming to IT with some 
useful skills but insufficient knowledge of software issues. A lot of 
things are done because they are "easy" and the market has oriented itself 
to address this group. When I started to work with databases this year I 
knew I would need help and good literature to do it. I went into the 
biggest bookshop in D=FCsseldorf to look for stuff on SQL databases: there 
are loads on individual databases mainly MySQL, Oracle, MS SQL Server and 
DB/2 but virtually nothing on database design which is probably the biggest=
problem. Most books are just full of bits of SQL or stored procedures but 
little addressing the questions before implementation. I picked up an SQL 
in a Nutshell (which is really weird to read in German) and PostgreSQL: 
professionell und praxisnah. There wasn't anything on the SAP DB although a=
book is due for publication by the end of the year. A how-to on Zope.org is=
pretty much a must as well as are compiled versions for Windows for those 
who don't have a compiler.

Using a non-ACID database fits in with the LAMP approach which I don't 
agree with: quick fixes which are difficult to adapt to changing 
requirements. That's why I'm using PostgreSQL, Python and Zope.

I'm using Zope because I use Python because I use the BeOS because I liked 
the idea of OO and clean APIs in OS/2s OpenDoc and NextSTEP (before I could=
write a line of code). I'm using PostgreSQL because I understood the need 
for referential integrity and it was possible for this project and the 
support in the community seems to be good: I need that support!

I guess one of things I haven't taken into consideration is the way the 
RDBMS, Python and Zope work together. It seems there are considerable 
differences between the way the Python driver / Zope DA combination work 
which might be important when choosing a DB particularly how connections 
are pooled. The standard Zope connection pooling is apparently somewhat 
flakey. psycopg talks about pooling a lot and I know that the upcoming 
mxODBC-DA has its own connection pooling and being able to use ODBC could 
make life a lot easier.

Any ideas which RDBMS people are using with Zope?
Judging by the list it seems Oracle is very common for commercial work and 
PostgreSQL seems to be very common as well.

So what combination are you using and why?