By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
440,345 Members | 1,746 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 440,345 IT Pros & Developers. It's quick & easy.

Book about database application development?

P: n/a
Hello,

does anyone know of a good book that about development of database
applications?

Preferrably language independent, if that's not available something
"readable" as the example language would be nice (Delphi is ok for me, not
any kind of C-dialect including Java and C#). Unfortunately there seems to be
nothing dedicated to database applications with Python.

I'm especially interested in such practical topics as e.g. how to implement
things such that the resulting application doesn't show the hourglass for
minutes on every mouseclick.

And, btw; "W** applications" are totally irrelevant for me.

TIA,

Sincerely,

Wolfgang Keller

--
My email-address is correct.
Do NOT remove ".nospam" to reply.

Oct 15 '06 #1
Share this Question
Share on Google+
16 Replies


P: n/a
Wolfgang Keller <wo********************@gmx.dewrites:
I'm especially interested in such practical topics as e.g. how to implement
things such that the resulting application doesn't show the hourglass for
minutes on every mouseclick.

And, btw; "W** applications" are totally irrelevant for me.
Here's a start:

http://philip.greenspun.com/sql/
Oct 15 '06 #2

P: n/a
Hello,

and thanks for your reply, but...
Here's a start:

http://philip.greenspun.com/sql/
....small misunderstanding: I already know a bit of SQL, and I intend to avoid
its use as far as possible (and use e.g. Modeling or SQLAlchemy).

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.

Sincerely,

Wolfgang Keller

--
My email-address is correct.
Do NOT remove ".nospam" to reply.

Oct 15 '06 #3

P: n/a
On 10/15/06, Wolfgang Keller <wo********************@gmx.dewrote:
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.
You've described Dabo perfectly. Have you looked into it yet? It's
written by a couple of database application developers.

--

# p.d.
Oct 15 '06 #4

P: n/a
Wolfgang Keller wrote:
Hello,

and thanks for your reply, but...
>Here's a start:

http://philip.greenspun.com/sql/

...small misunderstanding: I already know a bit of SQL,
Developping quality SQLDBMS-based applications requires more than "a
bit" of SQL knowledge.
and I intend to avoid
its use as far as possible (and use e.g. Modeling or SQLAlchemy).
I don't know Modeling, but have a bit of experience with SQLAlchemy, and
without SQL and relational model knowledge, you won't get very far.
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 answer starts with forgetting about
"connect(ing) a GUI to a database" IMHO and experience. Might be time to
google for MVC...
--
bruno desthuilliers
python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for
p in 'o****@xiludom.gro'.split('@')])"
Oct 16 '06 #5

P: n/a
Wolfgang Keller <wo********************@gmx.dewrites:
http://philip.greenspun.com/sql/

...small misunderstanding: I already know a bit of SQL, and I intend to avoid
its use as far as possible (and use e.g. Modeling or SQLAlchemy).
I'm not sure what you mean, that book isn't just an intro to SQL, it
discusses how to tune for performance, etc. It has quite a bit of
practical advice that you can tell came from hard-won experience by
the author. On the other hand, it's somewhat out of date by now and
it's Oracle-centered. Anyway it's online, you might spend a minute
looking at it to see if it's useful to you. It had sounded like the
type of thing you're asking for.
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.
Erm, I can't really tell what you're asking for here; the application
simply makes database queries as needed.
Oct 16 '06 #6

P: n/a
>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.

You've described Dabo perfectly. Have you looked into it yet? It's
written by a couple of database application developers.
Yes, thanks, I know about Dabo. As I know about Kiwi, Thyme, GNUe, TinyERP
and so on...

But I would still like to learn how to do things myself if I need to.

Sincerely,

Wolfgang Keller

--
My email-address is correct.
Do NOT remove ".nospam" to reply.

Oct 16 '06 #7

P: n/a
Paul Rubin wrote:
http://philip.greenspun.com/sql/
There was a time (some time in the mid 90s) when I thought that Philip
Greenspun had a Clue. Then I realised just how wrong he was (he started
off reasonably right, he just didn't keep up when the world moved on).
The highlight of this process was seeing him booed during a conference
keynote speech -- by angry librarians and museum curators (he deserved
it too).

I can't imagine any topic, except possibly dog grooming, where I'd
listen to his advice.

Oct 16 '06 #8

P: n/a
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. :-)
>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.
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. ;-)

I didn't say that this would be through a spaghetti-heap of SQL queries
hard-coded into the GUI event handlers.
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 (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.

Preferrably using a language for the examples that's readable for someone who
has learned programming ages ago with Pascal and is now using Python because
he _hates_ everything that remotely ressembles to any mutation of
C(++/#/Java).

Sincerely,

Wolfgang Keller

--
My email-address is correct.
Do NOT remove ".nospam" to reply.

Oct 16 '06 #9

P: n/a
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 'o****@xiludom.gro'.split('@')])"
Oct 17 '06 #10

P: n/a
Wolfgang Keller wrote:
I know about the existence of MVC. But what I'm actually missing is a nice
textbook that teaches how to actually implement it (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.
Maybe you would like Martin Fowler's "Patterns of Enterprise Application
Architecture"
http://martinfowler.com/books.html#eaa
Preferrably using a language for the examples that's readable for someone who
has learned programming ages ago with Pascal and is now using Python because
he _hates_ everything that remotely ressembles to any mutation of
C(++/#/Java).
Examples are mostly Java and C#, sorry!

Kent
Oct 17 '06 #11

P: n/a
Maybe you would like Martin Fowler's "Patterns of Enterprise Application
Architecture" http://martinfowler.com/books.html#eaa
Thanks, this one is already on my list, just like "Data Access Patterns" from
the same publisher.
Examples are mostly Java and C#, sorry!
Which is precisely the reason why I wanted to make sure there really is
nothing else before I buy.

*sigh* I thought with Delphi being quite popular for database applications,
there should be _something_.

Sincerely,

Wolfgang Keller

--
My email-address is correct.
Do NOT remove ".nospam" to reply.

Oct 17 '06 #12

P: n/a
Dennis Lee Bieber wrote:
>
Python has a half dozen GUI toolkits, and multiple adapters for
databases (some don't even follow DB-API2 specs). All independently
written. So no, you are not going to find, say, a grid widget that
automatically links to a database table/view/cursor, with bi-directional
updates.
Aren't we going round in circles here? There presumably are grid
widgets connected to database tables/views/cursors, if only exposed via
user interface toolkits and other frameworks such as PyQt, Dabo and so
on, but I thought the questioner wanted to know how to implement these
things from the ground up.

Paul

Oct 18 '06 #13

P: n/a
Dennis Lee Bieber wrote:
On 18 Oct 2006 02:20:15 -0700, "Paul Boddie" <pa**@boddie.org.uk>
declaimed the following in comp.lang.python:

Aren't we going round in circles here? There presumably are grid

Possibly -- it was the fairly recent lamentation about Delphi that
made me think the initial desire had been for some such "automatic"
linkage between GUI and database that would have been preferred...
I think it's about finding the right level: the stated toolkits (Kiwi,
Thyme, GNUe, TinyERP) are probably quite high-level or mix in various
application-specific bonus material, and perhaps a fairly elementary
datagrid widget is what is being sought.
widgets connected to database tables/views/cursors, if only exposed via
user interface toolkits and other frameworks such as PyQt, Dabo and so
on, but I thought the questioner wanted to know how to implement these
things from the ground up.
... lacking such automation, a search for books on how to do this was
next. But given so many combinations of toolkits, I didn't think a
general (cookbook?) solution would be available.
True. Still, I can only point to things which might provide useful
building blocks in developing some of the solutions mentioned above.
For example, PyQt's QSqlRelationalTableModel and QTableView might be
acceptable building blocks:

http://www.riverbankcomputing.com/Do...ablemodel.html

See here for Python-based examples:

http://indico.cern.ch/contributionDi...d=41&confId=44

I'm sure other people can provide links to resources for other toolkits
and frameworks.

Paul

Oct 19 '06 #14

P: n/a
Wolfgang Keller wrote:
does anyone know of a good book that about development of database
applications?
Scott Ambler's "Agile Database Techniques"

Regardless of whether you'll actually use a full MVC framework or
not, I suggest that you write model classes that are fully decoupled
from the UI. Work in a test-driven fashion, writing tests first
and just coding until the test goes through, and then write the
next test. See e.g. Kent Beck's "Test-Driven Development". If
you use an SQL database below some ORM, you can use SQLite with
an in-memory database ":memory:" for your functional test. Fast
and simple.

I'd make the GUI as thin as possible, since GUI code it typically
more complicated to test automatically.
Oct 19 '06 #15

P: n/a
>does anyone know of a good book that about development of database
>applications?

Scott Ambler's "Agile Database Techniques"
Thanks for the hint, the summaries indicate that this one could be very
useful indeed.

Sincerely,

Wolfgang Keller

--
My email-address is correct.
Do NOT remove ".nospam" to reply.

Oct 20 '06 #16

P: n/a
and perhaps a fairly elementary datagrid widget is what is being sought.

*snip*
I'm sure other people can provide links to resources for other toolkits
and frameworks.
Err, slight misunderstanding. I am _not_ searching for a toolkit or framework
for database applications.

What I am searching for is a _book_ (or other learning material) about how to
implement database applications. See subject.

I want to learn this because I want to be able to

- understand the existing frameworks and be able to choos ethe one that suits
my needs best
- be able to fix bugs
- be able to implement missing things myself
- be able to do things "from scratch" if nothing else helps.

I mentioned Delphi just as an example for a language that I am able to read
easily.

TIA,

Sincerely,

Wolfgang Keller

--
My email-address is correct.
Do NOT remove ".nospam" to reply.

Oct 23 '06 #17

This discussion thread is closed

Replies have been disabled for this discussion.