数据库内部 - 从哪里开始?

时间:2009-04-20 21:55:14

标签: database theory internals

所以我想说你想学习一些关于数据库内部的东西。什么是最好的源代码?最好买的书?

前几天我和一个好友谈论这件事,他建议:
Art of Computer Programming, Volume 3: Sorting and Searching

还有哪些书可以帮助我了解所有文件IO和内存问题,页面,锁定等等。?

9 个答案:

答案 0 :(得分:14)

教科书:由Ramakrishnan和Gehrke撰写的Database Management Systems

或者:Hellerstein,Stonebraker和Hamilton的Architecture of a Database System

生产代码:PostgreSQL

(我比PGite更喜欢PG代码,它更完整,而且我认为更有条理.SQLite对于它的功能非常棒,但有很多它没有用。)

额外学分:Readings in Database Systems, 4th edition由Hellerstein编辑。

答案 1 :(得分:7)

如果你真的很认真,虽然已经和已故的吉姆格雷和路透社一起读了一篇艰难的话:

交易处理,概念和技术

如果说是严肃的话,不要再为其他任何事情烦恼了......它已经离开了这个世界,当然也是出于我对IBM或甲骨文的追逐......

答案 2 :(得分:4)

SQLite源非常易于了解数据库实现。

PostgreSQL是一个写得很好的软件,比SQLite的复杂性更高。

答案 3 :(得分:2)

一位同事和我从Database in Depth: Relational Theory for Practitioners非常低级别的东西中获得了大量信息,但听起来这就是你正在寻找的东西。

答案 4 :(得分:2)

由Hector Garcia-Molina,Jeffrey D. Ullman,Jennifer D. Widom看看Database Systems: The Complete Book。它具体是关于DBMS的内部。

SquareCog的回答也包含明智的建议;我没看过上面提到的两本书(虽然根据亚马逊的说法,Stonebreaker“建筑”书只有136页,这看起来有点轻巧。)

答案 5 :(得分:1)

Here's an interesting read关于SQLOS,它驱动Microsoft SQL Server 2005 +。

答案 6 :(得分:1)

有关内部的深入信息是特定于数据库的,这里是SQL Server 2008的源代码: http://www.amazon.com/Microsoft%C2%AE-SQL-Server%C2%AE-2008-Internals/dp/0735626243

答案 7 :(得分:1)

并非所有人都喜欢他的风格,但我发现Joe Celko在解释驱动SQL数据库的基于集合的逻辑方面做得很好。如果您已经掌握了一点SQL经验,那么您应该阅读SQL for Smarties

答案 8 :(得分:0)

确保无论你得到什么都包括关系代数和关系演算。如果您没有基本的理论背景,那就无需深入研究数据库内部。过去,任何大学风格的数据库教科书都可能就足够了。