DB support?

Christopher Browne cbbrowne@localhost.brownes.org
Mon, 25 Sep 2000 07:55:51 -0500


On Mon, 25 Sep 2000 09:36:10 +0300, the world broke into rejoicing as
"Tom K. Weckstrom" <Tom.K.Weckstrom@F-Secure.com>  said:
> Has there been plans to support free relational SQL databases like mySQL
> or PostgreSQL in GnuCash?
> 
> DB support would make the solution "universal" or at least more
> independent of file formats - and definitely easier to store and move to
> another system when necessary. Also reporting capabilities would
> increase.
> 
> No comments about the effort involved. ;-)

There are the vestiges of the beginnings of support for PostgreSQL; see
src/engine/sql for "vestiges."

The _problem_ with this idea is at least threefold:

a) There are considerable variances between the way different SQL
   databases behave, both in terms of performance, and in what sorts
   of queries they accept, which means that the term "generic," which
   is probably what you intended rather than "universal/independent,"
   really isn't true.

b) SQL engines involve considerable overhead, so that performance
   will decidedly degrade over something that doesn't pretend to
   genericity.

c) SQL systems involve a degree of _administrative_ overhead, including
   as notable tasks:
    - Setting up users;
    - Setting up the location of the database;
    - Backing up the database;
    - Configuring security for user access.

  This isn't considered onerous for a complex system like SAP's R/3
  application, where you normally have _multiple_ people responsible
  for system administration, or in the analagous situation where a web
  application needs to have some competent administrators around, but
  it surely will be onerous to Granny Who Doesn't Really Understand What
  RPM Is.

I would suggest the thought that GnuCash should _not_ try to make use
of any database system that requires extensive setting-up-of-services,
as is true for MySQL and PostgreSQL; that is definitely _not_ friendly
to anyone that doesn't want the High Committment matter of administering
a DBMS system.

The appropriate kind of database to use is the "embedded DBMS," that
keeps the database subservient to GnuCash.  Reasonable options would
include:
  a) The DBM variations, where all you need is to include a library
     or two, and where the database(s) fully reside in places
     specified within the application.

     Note that Sleepycat DB allows this to support such notable features
     as transactions that may be rolled back, _clean_ networked access,
     and such...

  b) In the SQL arena, Interbase might become something acceptable; it
     is designed to allow low-maintenance access to databases where
     the application on top controls where things go...
--
aa454@freenet.carleton.ca - <http://www.ntlug.org/~cbbrowne/linux.html>
"Bother,"  said Pooh,  "Eeyore, ready  two photon  torpedoes  and lock
phasers on the Heffalump, Piglet, meet me in transporter room three"