数据库图书ABC

feilniu 2010-08-19 01:51:11
数据库相关的图书(包括各种图书、文档、手册,在此都以图书代称;并且这里只包含纯数据库方面的内容,不涉及前端开发、商业智能等相关内容),大体上可以分为ABC三类:
(每本图书之后的大括号中是我个人给出的一个推荐指数(R)和难度指数(D),分值为1-5;如{R5D3}表示强烈推荐,难度中等,{未知}表示这本书没看过。主观评价,仅供参考。)

A. 基础理论(fundamental theory)
A部分是数据库相关的基础理论,独立于各种DBMS的实现。

A1 基础原理
- 《数据库系统概念(第5版)》{R5D3}:这本书基本涵盖了数据库领域方方面面的问题,必读。
A2 理论深入
- 《离散数学及其应用(第5版)》{R4D3}:离散数学是与数据库理论关系最紧密的数学基础。特别是集合论、数理逻辑、关系几块内容,对于直观地理解数据模型和严谨地编写查询语句非常有用;图论部分对于用数据库实现类似数据模型(如树形结构、网状结构)也是必需的知识。
- 《深度探索关系数据库》{R3D5}:C.J.Date对关系理论的深入剖析,有助于提升对关系模型的理解层次。
A3 相关知识
这里是一些与数据库相关的其它计算机基础,想要深入技术值得去了解。但每块内容都是一个很大的领域,给出的难度指数仅指初步了解的难度;相关经典书目很多,不再开列。
- 数据结构{R3D4}:增加对排序、查找、B+树索引和Hash索引的理解。
- 操作系统{R3D4}:数据库系统是运行于操作系统之上的子系统。用好数据库也需要增加对存储管理、文件系统、权限控制的理解。
- 计算机网络{R3D3}:如今多数的数据库系统都是基于网络的。
- 计算机安全{R3D3}:包括操作系统安全、网络安全和数据库安全,整个系统的安全取决于最弱的一环。
- 编译原理{R3D5}:有助于理解SQL的语法解析过程。

B. 技术实践(technical practice)
B部分是针对某一个DBMS的技术实践。在此以SQL Server为例,其它平台的图书也可以有类似分类。

B1 技术入门(tutorial)
技术入门的书都大同小异,只要内容完整、条理清楚、自己看着顺眼即可。
- 《SQL Server 2005数据库管理与应用高手修炼指南》{R4D2}:这本书讲的是SQL Server的使用和T-SQL的开发,偏重DB Developer的角度。
- 《SQL Server 2005管理员必备指南》{R4D3}:这本书讲的是SQL Server的安装、配置和管理,偏重DBA的角度。这本书的2008版也出了。
- 《SQL Server 2008基础教程》{未知}
- 《SQL必知必会(第3版)》{R4D2}:这本书是SQL语言入门,较为独立于各种DBMS上的SQL方言。
B2 技术参考(reference)
- SQL Server联机丛书{R5D?}:这是SQL Server开发者的必备资料。
B3 技术原理(inside principle)
这是成为技术高手的必经之路。还是那句话:深入理解原理,一切表面问题都是浮云
- 《SQL Server 2005技术内幕》系列4本(前两本{R5D4} 后两本{R5D5}):Inside SQL Server系列是关于SQL Server技术原理的经典图书,不必多说。
- 《SQL Server 2008技术内幕》系列(截至20100818尚未出完){未知}

C. 经验素养(expertness)
C部分是关于数据库程序员的实践经验和综合素养。

C1 技术专题(subjects)
如何设计一个稳定、高效、安全、方便管理、可扩展的数据库系统,需要对数据库基础原理和DBMS实现机制有充分了解,还需要丰富的实战经验。以下几本书与此有关。
- 《数据库设计教程》{R4D3}
- 《SQL Server 2005性能调校》{R5D5}
- 《SQL Server 2005数据库服务器架构设计》{R5D5}
C2 心得技巧(tips)
以下是人们总结的关于数据库设计和SQL使用的一些心得技巧,可作锦上添花之用。
- 《SQL编程风格》{R4D4}
- 《SQL语言艺术》{R4D4}
- 《SQL Cookbook》{R3D4}
- 《SQL Hacks》{R3D4}
- 《SQL解惑(第2版)》{R3D4}
C3 综合经验(art/tao)
以下是关于程序员的经合经验,不限数据库领域。
- 《程序员修炼之道》{R5D?}:英文书名原意为“务实的程序员”,中文翻译成了“道”,但不为过。这是每个程序员都值得一看的书,被评为编程首要原则之一的DRY原则便出自此书,另一个KISS原则出自Unix编程艺术(这两本书相互引用,甚是有趣)。数据库设计的三范式可视为DRY原则的体现,而关系模型胜过层面模型和网状模型之处也在于关系模型在KISS原则上的优势。
- 《编程珠玑(第2版)》{R4D?}
- 《代码大全(第2版)》{R4D?}

以上ABC三部分的划分,本质上是数据库相关知识范围的划分。有些书可能会包含各部分的内容,目前这种排布只是根据其侧重作出的粗略归类。

关于推荐指数(R)和难度指数(D)的说明
推荐指数:R5是强烈推荐,是搞数据库的人的必读书;R4是比较推荐,是值得一看的书;R3是一般介绍,如有机会(毕竟找书和看书都需要成本)可以一看,必定会有收获;R2和R1没有,不值得引见的书就不会在此开列了。然而各人的技术基础和学习目标不同,对书的需求就会不同,众口难调,不再细分。
难度指数:D1没有,学技术总归需要花些精力;D2和D3是入门级,零基础即可看懂;D4是稍难,最好有一定基础再看;D5是很难,要做好思想准备。D?表示难度无法评判,有的内容一看就懂,有的内容需要仔细思考钻研才能明白,有的内容则要有一定的基础和经验才能领悟。

初学者的学习路线图
争论实践与理论敦重敦轻没有意义,就像剑宗气宗之争,只会贻笑大方。只不过,有的人喜欢从具体到抽象,先装个DBMS,建个数据库,把基本的SQL练熟,再深入学习数据库设计相关的理论基础,即先B后A;有的人喜欢从抽象到具体,先把基本概念和原理搞清楚了,再去学具体的DBMS技术,即先A后B(一般来说,前一种类型的人数较多,而后一种类型则是高校计算机教育惯常的方式)。总之,只有A和B两部分的功夫深入了,对C部分才能有更高的领悟。
对于初学者而言,可从A1和B1两类的书入手(先A后B还是先B后A看个人喜好),对数据库和SQL有了基本认识,然后参考B2来建库、建表、写代码,多练则熟。此后,其它各类的书自可根据个人的喜好和需要去翻阅、钻研、体会。

杂谈
大脸师太在《武侠,从牛A到牛C》一书中用内功、招式和实战经验三个维度来评估一个人的武功水平。这三个维度与以上ABC三类有异曲同工之妙。

既然谈到了武侠,不妨再借用独孤前辈的阶段论来品评一下数据库技术水平:
- 熟练使用SQL实现所需功能,是为利剑;
- 能够写出相当花哨相当巧妙相当简炼的写法,是为软剑;(“紫薇软剑,误伤义士不祥……”,过于追求巧技,未尝不是一种歧途)
- 在数据库设计和SQL查询层面充分考虑性能、安全和可维护性,是为重剑;(“重剑无锋,大巧不工”,KISS原则,简单则意味着高效、安全、易维护)
- 至于竹剑和无剑就不生搬硬套了,这个层面意味着充分认识RDBMS的长处和不足,合理选择各种合适的工具实现业务需求。
顺便附送一个“程序员能力矩阵”:
- 原文:http://www.indiangeek.net/wp-content/uploads/Programmer%20competency%20matrix.htm
- 中译:http://static.icybear.net/[CN]Programmer%20competency%20matrix.htm


PS. 最近在整理一篇“如何学习SQL”的帖子,感觉关于图书的一节较为独立,放在其中略显突兀,故单独发此一帖。
...全文
6042 72 打赏 收藏 转发到动态 举报
写回复
用AI写文章
72 条回复
切换为时间正序
请发表友善的回复…
发表回复
Scorip 2013-03-25
  • 打赏
  • 举报
回复
引用 71 楼 yupeigu 的回复:
引用 23 楼 feilniu 的回复:引用 21 楼 claro 的回复: 嗯,搞开发是来对CSDN了,其次看的书应该有所侧重。 国人一是不善于对自己投资,而是不懂的高效学习。举例两件事: 1、台湾的朋友来内地交流,我推荐了几本书,结果全买了。我差异,因为除了书很好意外,主要是价格太贵。 结果后来去他家一问,满满两个书柜,当时就汗。 2、前不久,公司抽派几……
4、5 我膝盖中了一箭。、、、、最近会考虑买书。
LongRui888 2013-03-21
  • 打赏
  • 举报
回复
引用 23 楼 feilniu 的回复:
引用 21 楼 claro 的回复: 嗯,搞开发是来对CSDN了,其次看的书应该有所侧重。 国人一是不善于对自己投资,而是不懂的高效学习。举例两件事: 1、台湾的朋友来内地交流,我推荐了几本书,结果全买了。我差异,因为除了书很好意外,主要是价格太贵。 结果后来去他家一问,满满两个书柜,当时就汗。 2、前不久,公司抽派几人去北京参加会议,行程安排是4天(2天游玩),其中有安排一个讲座,……
说的太对了,也是我想说的,其实你买一本书可能几十块钱,如果你工作比较忙,那么要看完的话,估计也得几个月的时间,挺值得的,其实想想一个月的手机费也得几十块呢。 不过我看到的周围同事,可能有几种情况: 1.有些人是对看文字没耐心,说一看到文字,就晕了。 2.有些人是想提高自己的水平,但懒得看书,或者是没耐心坚持看下去,或者是想看但看不懂。 3.有些人是想提高自己的水平,但希望通过别人来教他,但就算别人有空来教你,问题是别人不会教你, 他没有理由来教你,要教也只是教一些皮毛。 4.也有些人是觉得工作用到时网上搜索一下就行,根本没必要看书。 5.其实很多人上班都挺累的,几乎每天加班到很晚,也没时间看书,要有时间也是休息一下,而不是看书。
brucetong 2013-03-10
  • 打赏
  • 举报
回复
俺正全力消化!
马伯恩 2013-01-31
  • 打赏
  • 举报
回复
新手学习,感谢分享!
andy052374 2013-01-26
  • 打赏
  • 举报
回复
谢谢LZ!!!
love灵灵 2012-08-08
  • 打赏
  • 举报
回复
楼主,连接怎么不是电子版的下载地址呢?
xiaowen31237 2012-04-20
  • 打赏
  • 举报
回复
好的,支持啊!
xiaowen31237 2012-04-20
  • 打赏
  • 举报
回复
牛人,楼主,学习了!
liujiahuan1990 2012-04-10
  • 打赏
  • 举报
回复
你们都好厉害,我什么时候能向你们这么牛X呐!!!
yangcong90 2011-12-29
  • 打赏
  • 举报
回复
真可谓是青年才俊,我们什么时候才能赶上
java_zf 2011-10-03
  • 打赏
  • 举报
回复
这么多书!!!!
程序兔 2011-09-19
  • 打赏
  • 举报
回复
留着 —_—
  • 打赏
  • 举报
回复
好贴,学习了!
feilniu 2011-04-11
  • 打赏
  • 举报
回复
[Quote=引用 58 楼 candy_daj 的回复:]

请问LZ《 数据库系统概论》第四版和第五版有何区别??
[/Quote]

理论部分相差不大,最后的实例部分会举各种DBMS的最新版本。

如果想买,最好买最新版。
但如果已经有老版,那就看老版好了,不必刻意再买新版本。
Candy_DAJ 2011-04-09
  • 打赏
  • 举报
回复
请问LZ《 数据库系统概论》第四版和第五版有何区别??
rfq 2011-04-07
  • 打赏
  • 举报
回复
理论要学 实践 也是非常重要
多上 csdn.net 网
emouby 2010-12-30
  • 打赏
  • 举报
回复
此贴真是有拨开乌云现天日之奇妙作用啊
feilniu 2010-12-21
  • 打赏
  • 举报
回复
选书的话:
看作者(选外国人写的或是中国那几个知名的人写的,选“XXX 著”不要选“XXX 编”);
看版次(好书才会再版,如果是第5版以上,那肯定是经典);
看出版社(计算机的书,国内认准清华、机工、电工这几个出版社);
看书评(到豆瓣看书的打分和评论,上万人的评价比较具有参考性);
最重要的,自己的判断。看得越多,判断越准。

如果不是书,是在线文档的话:
首选官方文档;
其次选网上评价较高的教程。
那句-诺言 2010-11-16
  • 打赏
  • 举报
回复
楼主大牛人
zhaobaokeji 2010-11-08
  • 打赏
  • 举报
回复
孔夫子搬家呀、、、、这么多书、、、
加载更多回复(43)

34,591

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧