Forum OpenACS Development: Book recommendations for learning database design?


I hope to eventually be able to build a fairly complex DB-backed
website using FreeBSD, OpenACS, and Postgres...

My problem:  I am what Greenspun would probably call "faintly
retarded" when it comes to SQL and database design (and Tcl and Unix,
for that matter.)  I have very little background in computer science
or programming (I'm more of a UI-type guy, using Photoshop, Flash,

I purchased a book called "SQL: The Complete Reference" and have
browsed a few others, but I'm looking for something that will bring
it all together for me.  Any suggestions?


- D.

SQL for Web Nerds by Philip Greenspun is great for starters and although it's written with Oracle in mind, one can learn a lot of general stuff. Another book that's online is Bruce Momjian's Introduction and Concepts (I haven't read this one). Of course also check out the PosgreSQL documentation and, maybe most important of all, lurking around this forum and those over at arsDigita has sure proven useful...
Graeme Simsion's "Data Modelling Essentials" is required reading for my analyst/programming staff.  I've read several data modelling books and this is the best by far.  If Phil Greenspun had read it early in his career we wouldn't be having the v3 to v4 grief today.

To get this back on a productive track, I liked teory's book [1], even though it was at times staggeringly dull.  It's pretty clearly written. And there isn't much fluff to distract you from the task at hand.


For a good, concise presentation of the analysis side of things:

Richard Barker, CASE Method Entity Relationship Modeling (Addison Wesley Publishing Company, 1990), clothbound; ISBN 0-201-41696-4.

The best discussion of database design with RDBMS I've seen has been the first half of the O'Reilly book, Oracle Design, by Dave Ensor and Ian Stevenson. The later part of the book gets into pretty esoteric aspects of building applications with Oracle, but the first half explains really basic and useful things like the up and downsides or concatenated keys. Very clearly written.


C. J. Date, An Introduction to Database Systems (Addison-Wesley Publishing Company, 1995), 839 pages; clothbound; ISBN 0-201-54329-X.

This book is a classic that you can sometimes get for $12 at used book stores, but it's fairly academic in its presentation, and it can be a lot of work to get the practical information you're after:

If you want to look farther afield check out the Applied Information Science Selected Bibliography.

While I'm sure all the books recommended are good, it might be worth your while to do the psets at and just build a couple of simple data models and play with them. Data modeling isn't trivial but it isn't too hard. The best way to do any of this stuff is to just jump into SQL and learn by doing.

Most comprehensive Oracle/SQL Tutorial under 64 pages, and it's FREE!

This is what we use for our introductory database design class.  Let me know what you think.

Two new boks have recently been published that deal with the PostgreSQL database:
  • Bruce Momjian's, PostgreSQL: Introduction and Concepts. $44.95. Paperback - 462 pages 1st edition (December 15, 2000) Addison-Wesley Pub Co; ISBN: 0201703319

  • PostgreSQL by Jeff Perkins. $39.99. Paperback - 450 pages 1st edition (December 15, 2000) Prima Publishing; ISBN: 0761524444

As others have pointed out, Momjian's book been available online for some time--now you can get the print version.

I've been using OpenACS and Postgres for months and the most valuable reference book for me is

Bruce Momjian's, PostgreSQL: Introduction and Concepts.

I've had a draft copy in PDF of his book that I keep on my desktop.
The Big Benefit is the ability of the PDF reader to search
for specific SQL words such as UNION or DISTINCT or....
AND be able to Quickly find the reference needed.
This is harder to do with the physical book and with the current HTML version on line.
Unfortunately, I don't see the PDF version on the postgreSQL site.

It would be nice if all reference books were PDF so I could use them this way.


Here is the PDF version of Bruce Momjian's, PostgreSQL: Introduction and Concepts.

Anybody here seconding the Teorey book?  more comments?

Don, what do you have in your bookshelf on this topic? :)


I would also recommend Teory's book.  It's well written and very easy to read.  The dullness that Adam talked about, comes mostly from the thorough treament that Teory gives the subject.  He starts out with the basic conecpts of ER modeling with some comparisons to object modeling, and he then follows that with an explanation of how to translate the ER model to sql statements.  It's almost cookbook in its approach.  It's definitely a good book for a beginner, as Teory doesn't assume too much about the reader's background.
I worked my way through the examples he provided and made time to email him the bugs--as I imagine many other readers do after they download the book from It's one way to give back if you learn something--but you aren't gonna buy the book soon. Bruce Momjian's book will not be filled with bugs--it's reviewed by just about every PostgreSQL programmer. That's pretty nice. I have seen books where EVERY illustration is mislabeled--books where there are LOTS of useless screen-shots. Bruce's book is not one of them.

Read Bruce's book after you read "The Practical SQL Handbook" by Judith S. Bowman. With them you'll learn the basics of SQL usage.