So lets say that you want to learn some stuff about database internals. What's the best source code to look at? the best books to buy?
I was talking about this with a buddy the other day and he recommended:
Art of Computer Programming, Volume 3: Sorting and Searching
What other books would help me learn about all the File IO and memory issues, pages, locking, etc.... ?
Textbook: Database Management Systems by Ramakrishnan and Gehrke.
Or: Architecture of a Database System by Hellerstein, Stonebraker, and Hamilton.
Production Code: PostgreSQL
(I like the PG code better than SQLite , it's far more complete and, I think, better organized. SQLite is awesome for what it does, but there is a lot it doesn't take on).
Extra Credit: Readings in Database Systems, 4th edition edited by Hellerstein.
If you are really serious, and although a tough read none other by the late and great Jim Gray and Reuter:
Transaction Processing, Concepts and Techniques
Again if serious, do not bother with anything else.. it's out of this world and certainly out of mySQL chasing by IBM or Oracle..
The SQLite source is very approachable to learn about database implementations.
PostgreSQL is a very well written piece of software, with higher complexity than SQLite.
A colleague and I got a great deal of information out of Database in Depth: Relational Theory for Practitioners Very low level stuff but it sounds like that is the sort of thing you are looking for.
Take a look at Database Systems: The Complete Book by by Hector Garcia-Molina, Jeffrey D. Ullman, Jennifer D. Widom. It is specifically about the internals of the DBMS.
The answer by SquareCog also contains sensible suggestions; I've not looked at the two books mentioned (though the Stonebreaker "Architecture" book is only 136 pages according to Amazon, which seems a tad lightweight).
Here's an interesting read about SQLOS, which drives Microsoft SQL Server 2005+.
In depth information about internals is database specific, here's a source on SQL Server 2008: http://www.amazon.com/Microsoft%C2%AE-SQL-Server%C2%AE-2008-Internals/dp/0735626243
Not everybody likes his style, but I find that Joe Celko does a fine job of explaining the set-based logic that drives SQL databases. If you already have a little SQL experience under your belt, you should read SQL for Smarties.
Make sure that whatever you get covers relational algebra and relational calculus. No point delving into database internals if you don't have the basic theoretical background. Past that, any college style databases textbook will probably suffice.
来源:https://stackoverflow.com/questions/770273/database-internals-where-to-begin