Hacker News new | past | comments | ask | show | jobs | submit login

Not long ago I submitted an Ask HN that requested information on database design practices but it never got popular. It seems like it would be quite obvious to most here on how to perform quality database design, but I cannot find any good resources online. If any or you here have that info, or more specifically standard practices that are not necessarily in books, please reply because I tend to feel somewhat lost on the topic.



Articles that always seem to bubble up on HN:

1. Paul Graham was wrong in that essay, and also he's an idiot.

2. Anything by Jeff Atwood

3. Jeff Atwood was wrong in that blog post, and also he's an idiot.

4. How I made my startup (succeed|fail) by working 114 hours a day and eating only cardboard and pocket lint.

4a. How we built a web app in 4 minutes for only $0.37

5. Being a (programmer|hacker|founder) is teh awesome.

Not saying that all the articles are on those subjects, but they are HN gold, that's for sure. If you could somehow work some of these topics in to your question, it might do better.



Well look at the demographic of the HN user and the obvious becomes even more obvious.


I hear ya, notdarkyet. A post about the price of oil in Yemen will get 200 comments but a post about database design practices will get 5 comments on hacker news. Go figure.

There are millions of references on the subject, but perhaps you could start with a good intro, one of my favorites:

http://www.amazon.com/Database-Design-Mere-Mortals-Hands/dp/...

Hope that helps.

And keep on posting. Sooner or later the crowd oughta pick up on it a get your ball rolling.


It's tricky because most database writing is about SQL and OLTP and other practical things, but studying those things without first understanding the basic concepts of set theory and predicate logic is kind of like studying C and pointers without first learning about computer hardware. If you learn about pointers first they're confusing, but if you learn about hardware first they're obvious.

Ted Codd's big idea is fairly simple: "we can store data in logical, rather than physical, structures and then use logic statements, rather than algorithms, to retrieve the data."

Wikipedia can often end being more confusing than enlightening but the "informal introduction" on this page is a place to start:

http://en.wikipedia.org/wiki/Relation_(mathematics)

Here's a page I just found about predicate/first-order logic:

http://www.rbjones.com/rbjpub/logic/log019.htm

This book by Chris Date covers a lot of basic relational database ideas, but his writing is a bit tedious:

http://www.amazon.com/dp/159059746X

After that the main mental challenge is just learning to think in sets. Joe Celko has some writings specifically about that in his various books.

After that, the best book I've seen for SQL and practical issues is The Art of SQL:

http://oreilly.com/catalog/9780596008949/

Hope that helps. There's a lot of really bad writing about relational databases out there.


Celko used to post on usenet. I was looking to see if had anything useful to say and someone asked what books he recommended. He replied:

"The real trick is to spend some time with a good theory book first (I like my DATA & DATABASES), so you have an overview of RDBMS concepts. It makes the language much easier. Can you imagine trying to larn Fortran without knowing algebra?

I like Rick van der Lans book for a language reference and intro. Then move on to Hernandez and Viescas. And finish up with my stuff."

Rick has a book specifically for MySQL:

http://www.amazon.com/dp/0131497359/


Oh! These might be interesting. Charles Peirce was Tedd Codd's teacher and clearly had a big influence on his thinking:

http://en.wikipedia.org/wiki/Charles_Peirce#Mathematics

And, in the beginning there were 2 different teams at IBM trying to implement Ted Codds ideas. The ISBL team stuck faithfully to Codds ideas and the Sequel team kind of bastardized them. But SQL won in the marketplace. Hugh Darwen is still bitter:

http://www.dcs.warwick.ac.uk/~hugh/TTM/HAVING-A-Blunderful-T...


If you read the mySQL manual it pretty much lays out the various performance issues for you.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: