Forum OpenACS Q&A: Beginner-to-Intermediate Books on Data Modelling

Hey, I'm new to the hi-tech industry and have an economics background
with a little bit of HTML programming experience.  I understand
simple database concepts, but I'm looking for a good book that will
help me get a better understanding of data modelling.

Any suggestions would be much appreciated.

Thanks!

I think the best way to learn real-world data modeling, once you have the basics down,
is by reading well-regarded data models. To get the basics down (I assume you're new to SQL too), I suggest Joe Celko's "SQL for Smarties 2ed". It's clear, concise, readable, with plenty of DM info. In short, it's the best SQL book I've seen.

Most "DM+SQL" books are just not worth picking up off the shelf...

Since you're here, I'm guessing you already know this one, but just to be sure: SQL for web nerds. Just anything residing in the /books/ directory, really.

Apart from that, I'd like to recommend The Sql Guide to Oracle. It is bit old (February 1992), but I find it to be good for beginners who need to get a hold of SQL programming. It starts from very basics and takes you to pretty high level. Despite the "Oracle" in the title, almost none of it is Oracle-specific.

For more OpenACS4-specific data modelling advice, I'd first read through the (now outdated) docs on datamodels and the object system, fire up your favorite editor, read some datamodels from OpenACS 4 and try to make the connection. The need for documention on OpenACS 4 is bad.

Oh, and look at the bookshelf, too. Are the any other people out there maintaining bookshelves on OpenACS/ACS matters?

From your bio description, I'd place you in the 'beginner' category, more than the 'intermediate'. Just for reference.

As a beginner I got a lot of milage out of Toby Teorey's "Database Modeling & Design", which is still the one I throw at friends when they start on databases. It's fairly light, too, so when I throw it they don't get hurt. Fast read, too.

Teorey is published by Morgan Kaufmann, which I think makes the best DB books hands down. They also publish a book on representing temporal data in SQL databases that is hands-down amazing. I'll find the box I packed it in and get the name off that soon.

I disagree with Arjun that the best way to learn is just to read well-regarded data models. Data models themselves are not fantastically descriptive to novices, nor do they educate well. Continue to learn formally about design while taking that route. Props on the Celko book, though.

I also have the MK book that Todd referred to. It's called Developing Time-Oriented Database Applications in SQL. It's definitely not for beginners and has sat on my shelf since I last tried to read it and fried my brain somewhere around chapter 3.
Hi Ryan, like Todd, I am guessing that you are more beginner than intermediate.

Before you fork out for books, there are a lot of resources on the web that provide introductions to good database design. In my not-so-extensive experience teaching databases (ms-access), I found that the relational concept was the most difficult for a lot of students to grasp. Those that did, went on to create databases that were useful and extensible, and not just uber-spreadsheets.

My recommendation is that you start with this. Learn the relational model, data normalization, denormalizing for performance etc. Until you have understood this, don't even bother looking at data models, or trying to learn SQL..... they won't make sense, and you will probably just end up creating elaborate spreadsheets.

Here are some introductions to database design. Most of them are one of two pages long. The last two are ms-access centered but are really good at introducing databse design and modelling. Hope this helps

Just to say the first recommendation is good(Joe Cleko, SQL For Smaties 2ed, Morgan Kaufman). In the programming job I had my boss who has used RDBMS' since day one said read this, its all you need. He was right.
To my memory the book doesn't address data modelling per se but it does for RDBMS'. Also offers several tips and methodologies for using SQL. Just a good book to start with.

Alex.

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.

PS: I posted the above 15 Months ago on this forum and I still refer to this book. Ok, there is not much coverage about data modeling but when your ready to "Just Do It", this is a good book.

Ye Olde Post! Titled: Book recommendations for learning database design?

-Bob

You might want to take a look at the recommendations in this post, although it's not beginner-specific.
Although this book has a lot of Oracle-specific information in it, it also has an unusually clear and cogent discussion of database design that's worth (IMO) the price of the book:

Oracle Design by Ensor and Stevenson

I agree that "SQL For Smarties" is an excellent book. However, I'd recommend C.J. Date's "An Introduction to Database Systems" before reading anything SQL-specific. Date's book will give you the run-down on database systems, including relational ones. After that, read Celko's book (or you may want to read "SQL For Web Nerds" before going to Celko's book).