暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

推荐一本数据库原理方面的书

白鳝的洞穴 2022-03-28
4116
以前经常有网友留言让我推荐数据库原理方面的入门书籍,实际上这类书籍还真的不好推荐,因为每个人对数据库原理的理解深度以及读书的目的各不相同,因此在不了解情况的时候很难推荐十分适合的书籍。另外一个原因是,最近这十年我的大部分技术资料的阅读都是碎片式的,并没有多么认真的从头到尾去完整的阅读某一本书,一方面是自己太懒,一方面是确实没有那么多时间。
说起数据库原理,实际上大学教材《数据库原理》里的大部分基本理论目前还没有过时,不过这些原理太过于抽象,对于现在喜欢碎片化学习的我们,可能很难耐下心来一点点阅读这些老古董。实际上我至今为止的很多数据库的基础理论还是来自于大学的课本。
今天我给大家推荐一本阿列克谢-彼得洛夫的著作《Database Internals》,这本书有中译本,中文译名是《数据库系统内幕》。彼得洛夫是个生活在美国的俄国人,我以前看过不少他的博客文章,不少都是俄文的,用谷歌翻译后才能阅读。我对于分布式数据库的一些基础概念的认知很多都来自于他的博客。
我最近也才从朋友那里得知他写过一本这方面的书,于是这些天认真拜读了一下,感觉受益匪浅。作为Cassandra的commitor、项目管理委员会(PMC)成员之一,彼得洛夫在分布式事务和数据库存储引擎方面的造诣是令人高山仰止的。
这本书不厚,300多页,正文部分内容不足300页,十分适合时间不充裕,但是对分布式数据库的基本原理有兴趣的朋友阅读,当然如果你不是对所有的知识点都感兴趣,也可以跳跃式阅读其中的某些你感兴趣的章节,这有点像我学习相关知识时候进行的碎片化的阅读。从这里你可以了解B存储结构的存储引擎的基本实现原理、日志存储结构LSM-TREE的基本原理,以及分布式系统的一些入门性的知识。内容很全,虽然没有铺开讲解,不过还是有一定的深度的。
《数据库系统内幕》实际上并不是一本介绍数据库的具体实现原理的书,而是一本解释数据库系统的一些概念的书籍,因此可以看做是入门的书籍。通过阅读本书,可以让我们更快更全面的去理解数据库系统。目前DB-ENGINES收录的数据库系统有近400个,不同的数据库系统的基础架构、技术术语都存在不同。类型更是五花八门。前阵子我们梳理某个用户在使用的数据库系统,得到了下面的一张表格。
上面的数据库清单还只是不完全统计,这就说明了数据库的复杂性,想要通过一本300多页的书来介绍数据库的一切是不现实的,不过通过阅读一本300多页的书就能掌握一些我们以前可能一知半解的概念,不是很好吗。
Database Internals在第一章里阐述了数据库是什么,我以前在《DBA的思想天空》里也有类似的阐述,因为理解什么是数据库对于理解数据库的一些基本概念十分重要。不过彼得洛夫的阐述角度与我以程序为基础的角度完全不同,他是从数据的角度去谈的。不管是什么样的数据库,一个数据库的目的不外乎满足一系列数据存储与访问的需求。而不同类型的数据库系统会满足某些需求。如果你的数据库系统只是存储一些临时的热数据的,那么内存数据库是比较好的选择,而如果数据库主要存储长期的冷数据,访问不频繁,那么带有高压缩比的列数据库更适合你的场景;如果是带有复杂分析查询的在线交易系统,那么具有强大CBO优化器、混合存储引擎的数据库系统会更适合你。同样仅仅键值访问为主的应用促进了具有高并发读写能力的键值数据库的发展,而物联网等具有时序特征数据访问需求为时序数据库提供了广阔的市场。
如果你是一个已经对分布式数据库有初步了解,不过不是很深入,很多概念还有些模糊的读者,那么我十分推荐你从头到尾系统的阅读这本书,这会让你构建起分布数据看系统的一个完整的视图。如果你对数据库及分布式数据库的总体概念比较清晰,但是对于某些原理性的概念还一知半解的话,请跳跃式的学习你所不知道的知识点。而如果你想特别深入的去学习相关的算法和原理,那么这本书可能对你来说太浅了一点。
最后赠送一个我读书的小技巧,现在很多知识纷繁复杂,经常读了前面忘了后面,很可能一本书读完,也就忘记得差不多了。特别是我,上了岁数后读书就更困难了。从几年前开始我,我学会了一种读书做笔记的方法,就是用思维导图记录一些关键要点。看完书,再回头看看这个导图,很多忘记的东西很肯就会回忆起来,而且是按照一个你自己梳理的知识体系重新记忆的。这张导图不一定要按照书的目录来记录。因为很多这方面的书,同一个概念会在很多个章节中出现,由浅入深,你可以在记录思维导图的时候把这些内容汇总起来。等到后面回顾的时候,还可以加以整理。
文章转载自白鳝的洞穴,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论