If I want to learn how to build a search engine I can read Tim Bray's excellent series "On Search". Not only is it good, but is also contains pointers into the literature.

I'm looking for recommendations for similar resources on building a database. Not using a database, but building one, as if I was going to go out tomorrow and rewrite mySQL or Berkeley DB from scratch. They can either be on-line resources like Tim's or they can be dead tree recommendations. Thanks.

Fundamentals of Database Systems (I have third edition) by Elmasri and Navathe covers lots of fundamental DB ground to get started. ISBN:0-201-54263-3

Posted by Ben Meadowcroft on 2005-08-22

hmmm difficult to answer, because a book is not only good by itself it also depends on the reader and the way he consumes information. :)

http://www.frick-cpa.com/ss7/default.htm

Maybe what you are not looking for, but some fundamental bases.

Posted by karl on 2005-08-22

For solid fundamentals, you can't beat Gray's book (Transaction Processing: Concepts and Techniques)

Posted by William Grosso on 2005-08-23

What you will be working with is probably "external memory" programming. For this, see e.g. http://www.cs.duke.edu/TPIE/ (note also all the links to papers)

Posted by Troels Arvin on 2005-08-23

'File Structures' is a book about building indexable files. I suspect that you can skip the first 5 chapters. The C++ presented in the book is definitely not quite production quality but is simple and readable:
<a href="http://www.amazon.com/exec/obidos/tg/detail/-/0201874016/qid=1124941675/sr=8-1/ref=pd_bbs_1/103-1118688-7030216?v=glance&s=books&n=507846">http://www.amazon.com/exec/obidos/tg/detail/-/0201874016/qid=1124941675/sr=8-1/ref=pd_bbs_1/103-1118688-7030216?v=glance&s=books&n=507846</a>

'File Organization and Processing' is a good addendum to 'File Structures'
<a href="http://www.amazon.com/exec/obidos/tg/detail/-/0471605212/qid=1124941675/sr=8-3/ref=pd_bbs_3/103-1118688-7030216?v=glance&s=books&n=507846">http://www.amazon.com/exec/obidos/tg/detail/-/0471605212/qid=1124941675/sr=8-3/ref=pd_bbs_3/103-1118688-7030216?v=glance&s=books&n=507846</a>

'Managing Gigabytes' is considered required reading for any engineer in the IR field but may not be entirely of interest to you:
<a href="http://www.amazon.com/exec/obidos/tg/detail/-/1558605703/qid=1124941972/sr=2-1/ref=pd_bbs_b_2_1/103-1118688-7030216?v=glance&s=books">http://www.amazon.com/exec/obidos/tg/detail/-/1558605703/qid=1124941972/sr=2-1/ref=pd_bbs_b_2_1/103-1118688-7030216?v=glance&s=books</a>

Happy Hacking!
Steve

Posted by Steve Jenson on 2005-08-25

If you'd like conceptual references, I'd recommend Chris Date's books:

<a href="http://www.amazon.com/exec/obidos/search-handle-url/index=books&field-author-exact=C.%20J.%20Date">http://www.amazon.com/exec/obidos/search-handle-url/index=books&field-author-exact=C.%20J.%20Date</a>

For wanting to learn from past mistakes in database systems, I've found "An Introduction to Database Systems" handy.

For wanting to think about what could be beyond what's been done so far, I've found "Foundation for Object / Relational Databases: The Third Manifesto" handy.

Posted by Jay Fienberg on 2005-09-12