[Zope] A Suitable RDBMS?

Ken Kinder kkinder@messagemedia.com
Wed, 15 Mar 2000 14:40:09 -0700


This is a multi-part message in MIME format.
--------------0FB96D5F2172D719BD08CA69
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

MySQL takes a lot of criticism because it is (a) non-free, (b)
non-transactional. Non-fre I won't get into.

Non-transactional means that it doesn't support transactions. :) So what
are transactions? Say you own a bank and Joe transfers $50 from his
checking account to his savings account. The program removes $50 from
this checking account, but the disk is out of space and an error occurs
putting it into a savings account. Is Joe out $50? Not if it was a
"transaction" where all-or-none of a sequence of events happens. If at
any point an error occurs in the transaction, everything is rolled back
($50 is back in his checking account and the error is reported). MySQL's
lack of transactions rule it out IF you need transactions.

Another limitation of MySQL is that it doesn't support very large
databases. This usually isn't an issue.

Another solution is PostgreSQL, which is a free relational database
system (see http://www.postgresql.org). Postgres is very powerful and is
probably the most powerful free db by far! There are some drawbacks:
 * Last I heard, the PYTHON INTERFACE (not PG itself) for postgresql is
not threads compliant. You will have to kludge something with locks to
use it(?)... any ideas on this one, anyone?
 * You cannot remove or modify a column on your database. You can rename
the column and let it hang, or recreate the table. For changing schemes,
this can be a real pain.
 * Text beyond 16K must be stored in a large object - this is a pain.

It has some advantages:
 * Transactions
 * Super docs
 * Great reliability
 * Most of ANSI SQL Compliance
 * Stored procedures
 * Some real nice datatypes for everything from money to geometry

Alas, there is Oracle8i. It has some drawbacks:
 * Installation is a bitch! You usually have to edit kernel header
files, recompile, set mount points, apply patches, arg!!
 * Complexity; Oracle VERY complex even after you get it up and running
 * The Oracle/ZOPE interface does not have a Setup file for 8i. You'll
have to write one to compile it. (Or, email me for the one I got a hold
of)
 * Fewer column types than postgres

And the advantages:
 * Transactions, great reliability, and great SQL support
 * Java support
 * Plenty of docs. My favorite Oracle stuff is at photo.net (the web
page of some MIT guy)
 * Good interfacing with Zope, thread safe

In general, if you're willing to spend the overhead of a killer learning
curve, use Oracle8i.

Daniel Fairs wrote:
> 
> Hi,
> 
> I saw a posting today that MySQL was not recommended as an RDBMS for use
> with Zope. I'd like to use and external database for storing customers'
> price lists and product galleries; what (preferably free :) database would
> people recommend? What are the pros and cons of each?
> 
> Thanks,
> Dan
> 
> Daniel Fairs
> danfairs@hotmail.com
> 
> http://listen.to/agentorange
> http://www.darkalley.co.uk
> 
> ______________________________________________________
> Get Your Private, Free Email at http://www.hotmail.com
> 
> _______________________________________________
> Zope maillist  -  Zope@zope.org
> http://lists.zope.org/mailman/listinfo/zope
> **   No cross posts or HTML encoding!  **
> (Related lists -
>  http://lists.zope.org/mailman/listinfo/zope-announce
>  http://lists.zope.org/mailman/listinfo/zope-dev )

-- 
Ken Kinder
303.381.7631
--------------0FB96D5F2172D719BD08CA69
Content-Type: text/x-vcard; charset=us-ascii;
 name="kkinder.vcf"
Content-Transfer-Encoding: 7bit
Content-Description: Card for Ken Kinder
Content-Disposition: attachment;
 filename="kkinder.vcf"

begin:vcard 
n:Kinder;Ken
tel;pager:888.639.9337
tel;work:303.381.7631
x-mozilla-html:FALSE
url:http://www.messagemedia.com/
org:Messagemedia, Inc.;Data Services
adr:;;6060 Spine Road;Boulder;CO;80301;US
version:2.1
email;internet:kkinder@messagemedia.com
title:Database Developer
fn:Ken Kinder
end:vcard

--------------0FB96D5F2172D719BD08CA69--