数据库图书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”的帖子,感觉关于图书的一节较为独立,放在其中略显突兀,故单独发此一帖。
...全文
6037 72 打赏 收藏 转发到动态 举报
写回复
用AI写文章
72 条回复
切换为时间正序
请发表友善的回复…
发表回复
Scorip 2013-03-25
  • 打赏
  • 举报
回复
引用 71 楼 yupeigu 的回复:
引用 23 楼 feilniu 的回复:引用 21 楼 claro 的回复: 嗯,搞开发是来对CSDN了,其次看的书应该有所侧重。 国人一是不善于对自己投资,而是不懂的高效学习。举例两件事: 1、台湾的朋友来内地交流,我推荐了几本书,结果全买了。我差异,因为除了书很好意外,主要是价格太贵。 结果后来去他家一问,满满两个书柜,当时就汗。 2、前不久,公司抽派几……
4、5 我膝盖中了一箭。、、、、最近会考虑买书。
  • 打赏
  • 举报
回复
引用 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)
实验二 基本数据查询 一、实验目的 1.熟悉大型数据库实验环境,以MS SQL SERVER为例。 2.掌握MS SQL SERVER的查询分析器的用法。 3.能够完成对单表的查询操作。 4.能够完成对多表的联合查询操作。 5.能够完成带数据聚合函数的查询。 二、实验内容 (1)以实验一中创建的数据库abc作为查询对象,完成如下查询要求: 1.查询2001年12月31日之后的销售情况,要求列出销售人员姓名、销售的产品名以及销售日期。 2.查询销售电冰箱的销售人员的最大年龄。 3.统计每个产品的销售总数量,要求只列出销售数量前3名的产品号和销售总数量。 4.查询销售人员的销售情况,包括有销售记录的销售人员和没有销售记录的销售人员,要求列出销售人员姓名、销售的产品号、销售数量和销售日期。 5.列出2000年1月1日以后销售总量第一的产品的名称和生产厂家。 (2)以MS SQL SERVER的例子数据库pubs为查询对象,完成如下查询: 6.Pubs数据库:没有写过business或者popular_comp类型书籍的作者编号和姓名 7.Pubs数据库:查询出版物价格在20元以上的作者编号和姓名 8.Pub数据库:版税大于80%且state=ks的作者信息 9.Pub数据库:查询作者数量小于5的州 10.Pub数据库:查询价格最高的书的作者,和他写的所有书的名称 11.Pub数据库:查询销量较少的10本书的作者编写的所有书的书名 12.Pubs数据库:查询写了价格PRICE高于平均价的书,而且所在的州STATE=CA的作者名称,图书名称,价格。 注意:如果数据库服务器中的pubs例子数据库被破坏,请用SQL Server 2000 Sample Databases.rar中的instpubs.sql还原
数据库系统 信息技术基础-数据库管理系统全文共24页,当前为第1页。 信息资源管理 管理信息系统 MIS 数据库系统 DBS 数据库系统 DBS:是储存和管理数据的计算机系统, DBS能为多种应用服务,为多个用户所共享。 情报检索系统IRS 情报检索系统包括主题检索、关键字检索和全文检索 2 网上数据管理:日常的网络应用中,通常涉及网上数据库的操作,例如:搜索引擎程序、列车时刻查询网站、论坛(BBS)、在线图书馆、邮箱和博客系统、QQ、微信等。 信息技术基础-数据库管理系统全文共24页,当前为第2页。 网页查询 登记信息的APP 数据库管理系统 ACCESS 数据库 .accdb 职工信息查询系统 1.数据共享 2.数据独立性高 3.更安全 为什么采用数据库管理系统? 数据库系统(DBS):由数据库数据库管理系统、计算机软、硬件以及系统人员和用户等组成。 数据集合 能被共享、 可动态改变 建立、使用和维护数据库的管理软件 具特定功能 和数据库的配套的应用软件 信息技术基础-数据库管理系统全文共24页,当前为第3页。 几个常用概念 1、数据库:是指有组织地、动态地存储在辅助存储器上的,能为多个用户共享的、与应用程序能彼此独立的一组相互联着的数据集合。 2、数据库管理系统:是为了建立、使用和维护数据库而设计的数据库管理软件。Oracle、SQLsever、DB2大型数据库管理系统;FoxPro、Access小型的数据库管理软件。 3、数据库应用系统:按用户的应用需求或为某一特定的用户设计和数据库的配套的应用程序系统 信息技术基础-数据库管理系统全文共24页,当前为第4页。 信息技术基础-数据库管理系统全文共24页,当前为第5页。 Access数据库管理系统 6 数据表是关于特定主题数据的集合,是一张由行和列构成的二维表。 记录:每一行(除了标题行)是一条记录 字段:每一列称为字段。 2.区分字段和字段值 1.区分数据库和数据表 4.每行的字段数相同,每列的数据类型相同,且显示格式相同 一个数据库可由若干张数据表组成。一张数据表用来存储同一类型或同一主题的相关数据。每张表相互间可以有一定的联系 3.区分字段类型 信息技术基础-数据库管理系统全文共24页,当前为第6页。 7 打开的数据库名称是_______。该数据库共有_________张数据表,当前状态下打开了______张数据表 表删除与重命名前,先关闭数据表 信息技术基础-数据库管理系统全文共24页,当前为第7页。 8 同一张表 设计视图 数据表视图 在数据表视图中添加、修改、删除记录,新记录只能添加到*处 可以通过导入的方式添加记录 新字段可以添加在中间,也可以调整字段的顺序 信息技术基础-数据库管理系统全文共24页,当前为第8页。 9 数据类型:文本、备注、数字、日期/时间、货币、自动编号、是/否等。 数据类型 说 明 字段值 文本 文字或不需要计算的数字 姓名、手机号码、身份证号码 备注 长文本 个人简介、文章内容 数字 可计算的数值 ,可设置小数位 只能输入数字 日期/时间 日期与时间类型的值 1995/6/5、2015-9-1,输入分隔符可以为 / - . , 空格 货币 货币类型的值,自动添加货币符号,可以设置为不显示货币符号 商品价格、工资,输入数字 信息技术基础-数据库管理系统全文共24页,当前为第9页。 10 数据类型:文本、备注、数字、日期/时间、货币、自动编号、是/否等。 数据类型 说 明 字段值 自动编号 自动添加一个唯一的序号,按1递增或随机整数,通过设置格式可以添加前缀,如添加前缀ABC后,显示为ABC001、ABC002 不可以手动输入和修改,不可粘贴 是/否 逻辑值,打勾,字段值占用1位存储 性别(男或女) OLE对象 存储嵌入的对象,例如Word文档、图像、声音或其它二进制数据 对象 信息技术基础-数据库管理系统全文共24页,当前为第10页。 原始数据如上图所示,创建一张Access数据表用以存储以上数据,为每个字段选择适合字段类型 文本 文本 是/否 日期时间 是/否 文本 信息技术基础-数据库管理系统全文共24页,当前为第11页。 12 如果字段的类型是自动编号, 则无法手工输入和编辑,字段值都是自动生成的(不会重复),即使删掉的值也不会再次生成。 不管在哪里添加新的记录,最新的记录都会显示在最下面一行 信息技术基础-数据库管理系统全文共24页,当前为第12页。 13 在Access2010中,可以设定自动编号的数值格式或在自动编号中增加文字。如:在"字段属性"的"格式"中设置为"0000",自动编号会产生"0001"、"0002"格式的自动编号。如下图1,格式设置为"浙0000",会产生"浙0001"、"浙0002"格式的自动编号。 信

34,587

社区成员

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

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