views:

174

answers:

2

Hi, are there any books on designing and building database software (not organizing table layouts), like optimum file formats etc.

+4  A: 

Here are a few starting points

Gray and Reuter's Transaction Processing: Concepts and Techniques goes into database systems architecture amongst other things. There are a few other textbooks on the subject, of which Stonebraker et. al's Readings in database systems and Kim & Lochovsky's Object-Oriented Concepts, Databases and Applications come to mind. The former is a bit of a classic work on the subject and the latter was actually highly influential on the design of an OODBMS product that was the precursor to Cardinal's JADE.

There is quite a body of documentation about DBMS architecture in the electronic documentation around PostgreSQL. A good start is the 'internals' section of the manual.

The third book in Ken Henderson's Guru's Guide series has a fairly detailed dissection of SQL Server 2000.

There are quite a lot of academic papers on the subject such as this one. The bulk of the literature on this subject really lives in academic papers. Quite a few CS schools also have postgraduate courses on the subject.

You might also get some mileage from poking through the source code one of the simpler open-source DBMS packages such as SQLite.

ConcernedOfTunbridgeWells
+2  A: 

Gray & Reuter as NXC says is an excellent book and should be your first port of call.

Jim Gray also wrote one of my favourite papers: "Why computers fail and what we can do about it." Understanding the importance of the transaction goes beyond databases and is a critical implementation technique at many levels.

There is also Wiekum & Vossen, "Transactional Information Systems: Theory, Algorithms, and the Practice of Concurrency Control"

Works by Philip Bernstein; there are a few.

Betty Salzberg, "File Structures: An Analytic Approach" goes into the detail of file structures. She also "guest wrote" the chapters in G&R on access methods (b-trees, etc.)

An ACM SIGMOD membership is very useful; the anthology DVDs have all kinds of stuff. The VLDB Journal, ACM Transactions on Database Systems, and the IEEE Transactions on Knowledge and Data Engineering journals all have good stuff as you go further back; you do have to do a bit of weeding.

It really depends on where you want to go. Once you start on this path you can follow the references for a long time.

janm
+1 to your last paragraph - database management systems are amongst the most complex software systems around. Like Stonebraker, you can make an entire career in the field.
ConcernedOfTunbridgeWells
Yes, there is lots of stuff out there. Was it enough to go from being "NXC" to being "concerned"?
janm
No, I just had a doctor's appointment there which gave me the idea for the nick. 'Concerned of Tunbridge Wells' was the (possibly fictitious) author of letters to the editor of the Times and became a running joke sometime in the 1960s or 1970s.
ConcernedOfTunbridgeWells