【发布时间】:2010-10-20 16:40:00
【问题描述】:
假设您想了解一些有关数据库内部的知识。什么是最好的源代码?最好买的书?
前几天我和一个朋友谈论这个,他推荐:
Art of Computer Programming, Volume 3: Sorting and Searching
还有哪些书可以帮助我了解所有文件 IO 和内存问题、页面、锁定等...?
【问题讨论】:
假设您想了解一些有关数据库内部的知识。什么是最好的源代码?最好买的书?
前几天我和一个朋友谈论这个,他推荐:
Art of Computer Programming, Volume 3: Sorting and Searching
还有哪些书可以帮助我了解所有文件 IO 和内存问题、页面、锁定等...?
【问题讨论】:
教科书:Database Management Systems 由 Ramakrishnan 和 Gehrke 撰写。
或者:Architecture of a Database System Hellerstein、Stonebraker 和 Hamilton。
生产代码:PostgreSQL
(我比 SQLite 更喜欢 PG 代码,它更完整,而且我认为更有条理。SQLite 的功能很棒,但还有很多东西没有做到)。
额外感谢:Readings in Database Systems, 4th edition 由 Hellerstein 编辑。
【讨论】:
如果你真的很认真,尽管已故伟大的 Jim Gray 和 Reuter 读了一本很难读的书:
事务处理、概念和技术
再一次,如果是认真的,不要理会其他任何事情。它不属于这个世界,当然也不属于 IBM 或 Oracle 追逐的 mySQL..
【讨论】:
SQLite 源代码非常易于了解数据库实现。
PostgreSQL 是一个写得非常好的软件,比 SQLite 复杂度更高。
【讨论】:
我和一位同事从 Database in Depth: Relational Theory for Practitioners 中获得了大量信息 非常低级的东西,但听起来这就是你正在寻找的东西。
【讨论】:
看看 Hector Garcia-Molina、Jeffrey D. Ullman、Jennifer D. Widom 的 Database Systems: The Complete Book。它专门针对 DBMS 的内部结构。
SquareCog 的回答也包含一些明智的建议;我没有看过上面提到的两本书(尽管根据亚马逊的说法,Stonebreaker “架构”一书只有 136 页,这似乎有点轻量级)。
【讨论】:
Here's an interesting read 关于驱动 Microsoft SQL Server 2005+ 的 SQLOS。
【讨论】:
关于内部的深入信息是特定于数据库的,这里是 SQL Server 2008 的来源: http://www.amazon.com/Microsoft%C2%AE-SQL-Server%C2%AE-2008-Internals/dp/0735626243
【讨论】:
不是每个人都喜欢他的风格,但我发现 Joe Celko 在解释驱动 SQL 数据库的基于集合的逻辑方面做得很好。如果您已经有一点 SQL 经验,您应该阅读SQL for Smarties。
【讨论】:
确保您获得的所有内容都涵盖关系代数和关系微积分。如果您没有基本的理论背景,那么深入研究数据库内部是没有意义的。除此之外,任何大学风格的数据库教科书都可能就足够了。
【讨论】: