Book about database application development?

Bruno Desthuilliers onurb at xiludom.gro
Tue Oct 17 11:59:19 CEST 2006

Wolfgang Keller wrote:
>> Developping quality SQLDBMS-based applications requires more than "a
>> bit" of SQL knowledge.
> No doubt. :-) But my "bit" is enough to get me going and to know where to 
> look for further information if I hit a wall. Especially the people on the 
> Postgres mailinglists (as well as the excellent documentation of Postgres) 
> tend to be very helpful here. :-)

Well, this was intended as a general observation !-)

>>> What I'm interested in is rather how to connect a GUI to a database, with 
>>> quite a bit of application logic in between. And how to do it well.
>> This is more a general design question than a database-related (or even
>> Python-related) one.
> The question is specific to database applications in so far as these are 
> typically client-server aplications (multiple users working with the same 
> data with all the resulting concurrency nightmares), and as the volumes and 
> the complexity of the data to be handled are non-trivial.

This can be true for non "database-applications" (well... non "SQL DBMS
based applications" would be better here I think) as well.

>> The answer starts with forgetting about "connect(ing) a GUI to a database" 
>> IMHO 
> Well, _somehow_ the GUI _has_ to be connected to the database. ;-)

The GUI has to be connected to the application, which uses the database.
There's no need for the GUI code itself to know anything about the SQL DBMS.

> I didn't say that this would be through a spaghetti-heap of SQL queries 
> hard-coded into the GUI event handlers.

Hopefully not !-)

>> and experience. Might be time to google for MVC... 
> I know about the existence of MVC. But what I'm actually missing is a nice 
> textbook that teaches how to actually implement it 

Yes, this can be another problem. But FWIW, most modern GUI toolkits
already do a big part of the job.

> (and other design patterns 
> which are useful for database applications) in a real-world application in a 
> way that leads to non-ridiculous behaviour of the resulting application when 
> it gets actually used.

There are some known anti-patterns at least. Like selecting a whole
table (preferably with all attributes) then looping thru the result set
just to count the number of records in the table (don't laugh, I've
actually seens this (and even worse) in production code).

But given your concerns, I don't think you'd do such a thing anyway !-)

bruno desthuilliers
python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for
p in 'onurb at xiludom.gro'.split('@')])"

More information about the Python-list mailing list