【问题标题】:Database Internals - Where to Begin? [closed]数据库内部——从哪里开始? [关闭]
【发布时间】:2010-10-20 16:40:00
【问题描述】:

假设您想了解一些有关数据库内部的知识。什么是最好的源代码?最好买的书?

前几天我和一个朋友谈论这个,他推荐:
Art of Computer Programming, Volume 3: Sorting and Searching

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

【问题讨论】:

    标签: database theory internals


    【解决方案1】:

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

    或者:Architecture of a Database System Hellerstein、Stonebraker 和 Hamilton。

    生产代码:PostgreSQL

    (我比 SQLite 更喜欢 PG 代码,它更完整,而且我认为更有条理。SQLite 的功能很棒,但还有很多东西没有做到)。

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

    【讨论】:

    • 就文档化代码而言,如果你问我,BerkleyDB 是最好的。
    • 这可能是真的,但它不是我认为原始发布者的意思的关系数据库。
    • 不一定非得是传统关系数据库。如果还有一些基本概念,我可以从中摸索。 +1
    【解决方案2】:

    如果你真的很认真,尽管已故伟大的 Jim Gray 和 Reuter 读了一本很难读的书:

    事务处理、概念和技术

    再一次,如果是认真的,不要理会其他任何事情。它不属于这个世界,当然也不属于 IBM 或 Oracle 追逐的 mySQL..

    【讨论】:

      【解决方案3】:

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

      PostgreSQL 是一个写得非常好的软件,比 SQLite 复杂度更高。

      【讨论】:

      • 我想我正在寻找合适的客户端/服务器数据库来查看。由于 SQLite 通常由单个客户端嵌入或绑定,因此我不确定这里有很多关于会话、用户和冲突请求/锁定的知识。
      • 我想知道 Postgres 是不是太复杂了,我无法开始。
      【解决方案4】:

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

      【讨论】:

      • 这是一本很棒的书,但几乎没有文件 I/O 级别。
      【解决方案5】:

      看看 Hector Garcia-Molina、Jeffrey D. Ullman、Jennifer D. Widom 的 Database Systems: The Complete Book。它专门针对 DBMS 的内部结构。

      SquareCog 的回答也包含一些明智的建议;我没有看过上面提到的两本书(尽管根据亚马逊的说法,Stonebreaker “架构”一书只有 136 页,这似乎有点轻量级)。

      【讨论】:

      • 斯坦福的书涵盖了许多主题,但我发现其中大部分内容都非常肤浅。它为您提供了所有的指针,但并没有真正深入细节。这就是为什么我更喜欢 Ramakrishnan & Gehrke。不过,这不是一个糟糕的文本。 YMMV。
      • 好的 - 我没有看过 R&G,所以我不能评论它。我有来自 Ullman 等人(数据库系统内部)的旧书,它在文件 i/o 级别上比其他一些建议更详细几个级别。我也没有将 D.S.I 与 DS:TCB 进行比较(几年来我也没有看过它),所以我可能有错误的印象。
      【解决方案6】:

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

      【讨论】:

        【解决方案7】:

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

        【讨论】:

          【解决方案8】:

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

          【讨论】:

          • 这是一本有趣的书,但它没有解决问题所涉及的文件 i/o 和内存管理问题。
          【解决方案9】:

          确保您获得的所有内容都涵盖关系代数和关系微积分。如果您没有基本的理论背景,那么深入研究数据库内部是没有意义的。除此之外,任何大学风格的数据库教科书都可能就足够了。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2017-08-16
            • 1970-01-01
            • 2011-03-23
            • 2010-12-25
            • 2010-09-30
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多