
前言
|
3
术语。以白话的形式来掌握这些抽象概念是一个捷径,这能帮助我们将注意力转移到其
他更高层次的问题上。
学习基本概念、证明和算法的一个优点是它们永不过时。当然,总会有新的东西出现,
但是新算法往往是在发现经典算法的缺陷或改进空间之后才被创造出来的。了解历史有
助于更好地理解这些算法之间的差异和它们的发明动机。
学习这些内容是鼓舞人心的。你将看到各种各样的算法,了解我们的工业界是如何一个
接一个地解决问题的,并开始欣赏数据系统。同时,学习这些是有回报的:你几乎可以
感觉到多个拼图碎片在脑海中移动到一起,最终形成一幅完整的图画,并且你将总是能
够与他人分享这幅图画。
本书的范畴
本书既不是关于关系型数据库的书,也不是关于 NoSQL 的书,而是关于在各种数据库
系统中使用的算法和概念的书,且重点是
存储引擎
和负责
数据分布
的组件。
诸如查询计划、查询优化、调度、关系模型等概念,在一些优秀的数据库系统教科书中
已均有涉及。这些概念中的一部分通常是从用户的角度进行描述的,而本书则着重于内
部结构。你可以在第二部分的总结和每章的小结中找到一些有用文献的推荐。这些文献
应该能回答很多与数据库相关的问题。
由于本书中提到的数据库系统之间没有一种通用的查询语言,所以本书将不讨论查询
语言。
为了收集本书的材料,我研究了 15 本书、300 多篇论文、无数的博客文章、源代码以及
几个开源数据库的文档。对于是否要在书中包含某个特定概念的原则,我常常会问自己
这样一个问题:“数据库工业界和学术界的人都在谈论这个概念吗?”如果答案是“是” ...