首页>参考读物>计算机科学与技术>数据库

HikariCP数据库连接池实战
作者 : 朱政科 著
出版日期 : 2019-08-07
ISBN : 978-7-111-63321-1
定价 : 99.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 357
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

内容简介
这是一本从设计思想、功能使用、原理实现、工程实践、技术扩展5个维度全面讲解数据库连接池HikariCP的著作。得到了褚霸、德哥、张亮、吴晟等近10位来自阿里、京东等互联网企业的技术专家的高度评价,同时也在社区里获得广泛好评。
系统性上,从基本功能,到扩展技术,内容涵盖HikariCP的方方面面;深度上,从原理阐述到源码分析,直击HikariCP的本质;实操性上,不仅有小案例和综合性的大案例,还有对疑难问题的解决方案。
全书共14章,在逻辑上分为四大部分:
准备篇(1~3章) 以阿里连接池极致优化案例展示了不使用连接池和使用连接池的QPS天壤之别,带领读者了解数据库连接池的背景、原理及历史,以及本书的主角HikariCP。
基础篇(4~5章) 系统梳理HikariCP的基础知识,包含参数配置、JDBC等核心模块,这些内容都是HikariCP基础的重中之重。
原理篇(6~9章) 直击HikariCP的“灵魂”,深入浅出地分析了HikariCP的原理。首先,全方位的剖析了HikariCP性能极致的原因,这些都会成为读者面试、工作中的谈资; 其次,从连接原理、参数原理、动态代理与字节码技术等三个维度作为切入口,分别对HikariCP进行了源码级别的解析,这样全方位的剖析不同于单视角的源码解析,更能将HikariCP的原理立体化的展示在读者面前。
实战篇(10~14章) 这是本书的精华部分。HikariCP的监控、扩展技术、常见问题等都是读者工作中较为迫切了解到、使用到的知识点,这些内容大多来自作者多年实战经验的积累及大量文献资料的收集整理,内容包罗万象、精妙绝伦。

图书特色

褚霸、德哥、张亮、吴晟等近10位来自阿里、京东等知名企业的专家高度评价并推荐

图书前言

为什么要写这本书
2017年我开始从事数据库连接池中间件的研发和架构工作,并在公司内部写了一系列数据库连接池HikariCP源码解析和实战的文章。在老板张聪的建议下,我申请了微信公众号并坚持分享技术,公众号的初心是:“写的内容要有人阅读,这样才会引发互动交流;有朋友就不会觉得孤独,而且互相探讨也有助于自身提高”。
我从事的底层数据库中间件采用了HikariCP这款数据库连接池,这让我和HikariCP结下了不解之缘。非常幸运的是,在长达近一年的时间里,每天都有大量的业务开发人员向我咨询数据库连接池的问题,最多的时候可以达到十多位同学排队咨询,使我颇有老中医开堂坐诊的感觉。我是一个细心的人,大家的疑问和最后的解决方式都会一一记录下来,我也会协助网友以及其他公司的技术人员分析定位数据库连接池问题,帮助他们的项目顺利上线我也同样感到喜悦,这段经历是我技术之路上宝贵的财富。
我毕业于哈工大,哈工大的校训是“规格严格,功夫到家”,母校影响着我的做事风格,我是一个追求极致的人。但每当我协助业务开发人员排查问题时,却常常发现糟糕的事情。比如很多业务项目里充斥着HikariCP、Druid、BoneCP、c3p0、Tomcat JDBC等多种数据库连接池依赖项,而开发人员却并不知道自己究竟使用的是哪款数据库连接池,而将依赖做到精简是中间件岗位最基本的素养。美国童子军有一条 “让营地比你来时更干净”的军规,这也是《Clean Code》这本经典书强烈建议的。比如,我发现很多业务开发同学咨询的问题如果总结下来是可以分门别类的,但是部分人解决了问题却不会分享、传播、传承,进而造成其他人接二连三地因为类似的问题再度陷入费时费力的排查之中;再比如,很多技术人员在学习使用数据库连接池之后想对更深入的技术进行探索,然而市面上却没有系统、深入地介绍数据库连接池的书,导致他们不得不投入到其他项目中从而没有实现深入了解数据库连接池的梦。因此,我决定撰写一本相关的图书。这是一本介绍数据库连接池的书,由于这本书中更多凝结的是我多年的实践经验、我对于社区数据库连接池上千条问题讨论的研读等,所以这本书称为“HikariCP数据库连接池实战”。
Hikari在日语中的意思是光,代表了极致。极致无处不在,极致可以小到一次代码提交,也可以大到整个研发流程;极致可以小到一行JDK底层代码,也可以大到整个电商系统架构;极致可以运用在技术选型,也可以运用在团队管理。极致也是分场景的,有些是大规模高并发的要求,有些原则上不到一定的数量级不能用。极致的追求,不仅需要对基础技术原理有足够深入的了解,还需要配套的中间件支持,相关的业务协助改造。极致之路,没有银弹,不要想一招毙命,一口吃成个胖子,而是要审时度势,根据当前的现状来裁定。在和HikariCP打交道的期间,我发现这是数据库连接池界一款以追求极致为初心的艺术作品。不论是从相关文献资料、问题讨论、源码更新,还是从HikariCP多年来不辞辛劳一步一个脚印的社区贡献,我都能深深感受到HikariCP在极致之路上一次又一次地超越自我,以追求卓越的状态面对未来的技术发展方向。
光不但是极致,更是希望。这些年,尤其是写这本书的期间,我承受了不少的委屈,也遭遇了很多的坎坷,经历了生离,也经历了死别。然而我坚持将自己的梦实现,希望能活成一束光,能够温暖别人,也能够照亮别人,这才是真正的正能量。《HikariCP数据库连接池实战》,是我的孩子,也是我梦想的实现,但我希望它不再是属于我一个人的梦,更希望能够将HikariCP的光亮照进每一名读者心中。
最后送大家一段话:在一无所有时,也请坚持做一名追光者,愿大家都能找到自己内心深处的光,接近并成为它,去发光发亮,成为别人眼中的和照亮别人的光,用更亮的光芒照亮世界的每一个角落。你就是太阳,蒸发了彷徨,有你的地方就是天堂。
读者对象
本书适合所有Java程序员阅读,尤其适合以下读者:
Java初中级开发者。
系统架构师。
中间件开发者。
Java多线程、并发开发者。
使用HikariCP参与工作流程的公司与集体。
开设Java相关课程的大专院校师生。
其他对数据库连接池技术感兴趣的人员。
本书特色
在本书写作的过程中,我尽量避免让这本书成为“代码书”或者“概念书”,用自己的实战经验和大量文献涉猎将本书凝结为一本高内涵、高价值的实战书籍。这本书准确地说写了两年的时间,第一年我在数据库连接池方面进行实践并形成零散的文字记录,第二年较为体系化地将各种经验、总结、记录梳理成册。本书的目录结构也经过了好几个版本的迭代修改,旨在让读者用最短的时间循序渐进地学完相关知识点。本书的篇幅也做过很多的压缩、删减,目的是聚焦核心内容,像“瑞士军刀”一样短小锋利,可以帮助读者快速学习并解决问题。
本书以阿里大型消息中间件的无池化TCP调优开篇,这也是我在阿里晋升答辩的内容之一,在扩展性能调优知识的同时顺带引出Java平台下性能调优的利器——数据库连接池。这样的开篇可以让读者真真切切感受到数据库连接池出现的必要性。接着,从数据库连接池出现的背景、原因入手,循序渐进地为大家盘点了主流的数据库连接池并进行了对比,这也弥补了市面上没有一本书体系化介绍各种数据库连接池的遗憾。
当然,这还只是“前戏”,本书还剖析了HikariCP这款数据库连接池的设计理念和原理,并对其重点功能和模块逐一进行了讲解。在分析之余,这本书还对HikariCP的关联技术、具体实战、扩展内容等进行了补充说明,旨在帮助读者举一反三、触类旁通。本书最后以一个疑难问题为例,通过排查问题,帮助大家一起对HikariCP的相关内容回顾和展望,以求融会贯通,温故而知新。
如何阅读本书
本书分为四大部分:
第一部分为准备篇,以阿里连接池极致优化案例引入,帮助读者了解数据库连接池的背景、原理,并全面了解主流的数据库连接池,包含本书的主角HikariCP。
第二部分为基础篇,着重讲解HikariCP参数配置、JDBC等核心模块。这些内容都是HikariCP的重中之重。除了原理性介绍以外,为了帮助读者夯实数据库连接池的基础,本书还特地对技术细节、设计理念、实战扩展等进行了补充。
第三部分为原理篇,首先,全方位剖析了HikariCP性能极致的原因,这些都会成为读者面试、工作中的谈资;其次,将连接原理、参数原理、动态代理与字节码技术这三个维度作为切入口,对HikariCP进行源码级别的解析,这样全方位地进行剖析不同于单视角的源码解析,更能将HikariCP的原理立体化地展示在读者面前。
第四部分为实战篇,这是本书精华的部分。HikariCP的监控、扩展技术、常见问题等都是读者工作中较为常用的知识点,这些内容大多来自我实战经验的积累及大量文献资料的收集整理。本部分可以独立阅读,作为案头的工具书使用。
勘误和支持
由于作者的水平有限,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。为此,我在GitHub网站上专门新建了一个issue项目(https://github.com/CharlesMaster/Hikari/issues)。你可以将书中的错误、疑问、改进建议以GitHub Issue的形式发布在Bug勘误表页面中,我将尽量在线上为读者提供最满意的解答。当然,更希望大家可以通过issue对HikariCP展开讨论,互相切磋和共同成长。如果你有更多的宝贵意见,也欢迎发送邮件至邮箱just_love_zzk@126.com,期待能够得到你的真挚反馈。
致谢
首先要感谢伟大的HikariCP的作者Brett Wooldridge,他开创了一款影响我整个人生的软件。
感谢Apache ShardingSphere PPMC张亮、Apache SkyWalking PPMC吴晟在我从事数据库连接池工作过程中给予的指导与帮助。感谢奇点云应用研发总监、首席架构师张聪,其作为引路人将我领入了数据库连接池领域,同时也是在他的支持与鼓励下才促成了这本书的撰写与出版。
感谢技术圈子中每一位充满创意和活力的朋友——何涛、程超、右军、李艳鹏、杨俊,以及名单之外的更多朋友,感谢你们长期对我的帮助与信任。
感谢笙笙对我写本书的支持。
感谢机械工业出版社华章分社的编辑杨福川老师和孙海亮老师,在这一年多的时间中始终支持我的写作,你们的鼓励和帮助引导我顺利完成全部书稿。
感谢王玉婵老师为本书付出的劳动。
最后感谢我的爸爸、妈妈、小姨、姨夫、爷爷、奶奶、外公、外婆,感谢你们将我培养成人,并时时刻刻为我灌输着信心和力量!
谨以此书献给我最亲爱的家人,以及众多热爱HikariCP的朋友们!

专家评论

数据库连接池是程序员接触最多但又最容易忽略的重要技术组件,并不是随意找个数据库池连接池就可以让应用发挥最大功效,我们需要从性能、扩展性、连接池管理、监控及社区的活跃度等方面进行甄别。本书不仅对市面上常见的连接池组件进行了全方位比较和分析,还以实战的角度深入介绍了高性能HikariCP连接池的使用、原理与维护。政科是我多年的好友,他在技术上面严谨、执着和一丝不苟,传承的是一种工匠精神,相信读者通过本书会受益匪浅。
程超  
《高可用可伸缩微服务架构》联合作者  
《深入分布式缓存》联合作者  

本书从HikariCP入手,串起点、线、面,行文生动,内容翔实丰满。本书以一个性能相关案例开篇,接着比较了各大数据库连接池,最后对HikariCP配置、性能揭秘、监控等多方面展开描述。本书较好地诠释了从原理到实践这一思想,对于使用HikariCP的朋友可以成为居家旅行必备,对于想了解整体池化技术或者性能优化的朋友,亦有他山之石之效。
于君泽  
《深入分布式缓存》联合作者  
公众号《技术琐话》运营者  

HikariCP作为Spring Boot 2.0的默认数据库连接池,实现了从不为人知到一日爆红。乘着Spring Boot这艘大船,其必定会成为Java开发的主流数据库连接池。
本书通过庖丁解牛式的技术分解,对JDBC和数据库连接池涉及的技术实现细节及一些常见问题进行了梳理。通过阅读本书可以有更深入、系统地掌握Java数据库开发技术。
构建一个高性能的网络应用需要从网络协议层、应用协议层进行全链路推敲,另外连接池的设计和线程工作模型的设计是关键点。数据库连接池麻雀虽小五脏俱全。通过本书可学习一个优秀的数据库连接池产品的使用方法及其相关的技术,这是掌握高性能网络开发相关技术的一种非常好的学习方式。
随着开源软件的成熟,作为淘宝去IOE后处理海量数据请求的最重要技术——分库分表技术不再是大型互联网公司的专享技术。如果你正遇到大数据量导致的数据库性能瓶颈,或者希望到大型互联网公司去从事相关工作,那么“自研集成HikariCP和Sharding-JDBC数据库中间件”这一节应重点关注。
本书不仅是一本告诉读者如何使用HikariCP数据库连接池的入门书籍,更是一本围绕数据库连接池相关技术展开的高性能Java开发技术实战书,任何一个对技术有好奇心的Java开发者都可以从本书中收获良多。
杨俊  
阿里技术专家  
2014年阿里中间件性能挑战赛JAVA组第二名  

资源的复用能够提升资源利用率,降低成本,其中数据库连接池的作用便是对数据库连接资源进行复用。对数据库连接池原理的了解及使用,基本上已经成为软件从业人员必备技能。目前市面上已经有很多数据库连接池的组件,在数据库连接池红海市场中,HikariCP作为后起之秀之所以能够实现浴血突围,是因为其有非常多的独到之处。本书全面描述了HikariCP的独到设计,在软件的设计和性能优化等方面会给你打开一扇新的窗口。
  何涛  
  网联架构师  

第一次看到本书的名字时,就在想连接池有啥可讲的,我天天都在使用。当我翻开本书阅读时却被作者讲述的阿里中间件实战经验深深吸引了。书中的案例个个都是鲜活的高并发案例,而支撑这些高并发的就是数据库连接池性能。在本书中,作者从Linux内核网络参数调优和TCP原理入手,通过JDBC剖析、SPI实战、动态代理与字节码技术等,由浅入深地介绍了HikariCP“简单、极致、可靠”的设计哲学。
杨彪  
《分布式服务架构:原理、设计与实战》作者  
《可伸缩服务架构:框架与中间件》作者  
原蚂蚁金服专家,高级架构师 

上架指导

计算机\数据库

封底文字

在应用系统中,对象池、连接池、线程池等池化技术被广泛用来提升应用的性能,数据库的性能对应用系统的重要性不言而喻,数据库连接池是影响数据库性能的关键因素之一。HikariCP凭借优异的性能在众多的数据库连接池中脱颖而出,并成为SpringBoot的默认数据库连接池。本书对HikariCP做了详细讲解,希望能给需要的朋友带来帮助。
—— 余锋(褚霸)

市面上开源的连接池很多,不同连接池有不同的特色。HikariCP是业界非常有名的一款以性能著称的连接池,感谢作者给我们带来了一本全面解析HikariCP的好书。本书对HikariCP的历史、原理、应用实践进行了非常详细的介绍,相信通过本书可以对HikariCP以及连接池技术有非常深刻的了解。
—— 周中正(德哥digoal) PostgreSQL社区成员

经历过漫长的发展之后,新一代的数据库连接池翘楚HikariCP已经受到越来越广泛的关注,并且逐渐成为应用开发的首选。我主导的开源项目Apache ShardingSphere也因为它极致的性能而采用它为默认的数据库连接池。一直以来,业界都缺少一本关于HikariCP的专业书籍,本书弥补了这一空白,希望读者能够和我一样,通过阅读本书更加全面地了解数据库连接池的运行原理和实现机制。
—— 张亮 京东数科数据研发负责人/Apache ShardingSphere发起人 & PPMC/《未来架构》作者

连接池作为应用系统中最常用、压力最大的组件库之一,对整个系统的稳定起到了至关重要的作用。在APM监控中,性能与数据库访问、连接池使用有直接的联系,也是影响系统性能的10大因素之一。HikariCP是一个优秀的开源连接池项目,深入学习和理解它能很好地保证项目的功能和性能稳定。通过本书,读者能够更好地了解HikariCP连接池的原理、配置和使用方法,学到实用的工程实践经验。
—— 吴晟 Apache SkyWalking 创始人&VP

数据是互联网的核心价值,一款好用且高效的数据库及相关中间件则是这份核心价值的重要保障,也是值得技术工程师们深入学习和研究的对象。始于2013年的HikariCP,在众多连接池中间件项目中脱颖而出,得到越来越多互联网公司及从业人员的青睐。本书对HikariCP的各种技术原理和实现细节做了深入剖析,同时本书还包括Linux内核、TCP网络以及性能调优的相关内容。无论是初学者,还是有一定基础的读者,都能从中汲取到养分。
    —— 张聪 前阿里巴巴、滴滴出行架构师/奇点云应用研发总监兼首席架构师

作者简介

朱政科 著:作者简介
朱政科
资深架构师,十年IT老兵,对各种数据库连接池有深入的研究。
曾在阿里等一线互联网公司长期从事中间件的研发及团队管理工作,连续经历过3年“双11”大促,在大量的实践中积累了丰富的经验。
热爱开源,热爱新技术,对Apache ShardingSphere、Apache Skywalking等技术社区都做出过贡献。除了中间件技术,先后主导和参与了多个重要的物联网、人工智能等大型项目,对软件系统架构有深刻的积累和沉淀。
运营公众号《工匠人生》和知识星球《猪猪的架构师私密圈》。

图书目录

赞誉
前言
第一篇 准备篇
第1章 阿里中间件实战,第一个案例 2
1.1 物联网MQTT单机压测130万参数调优 2
1.2 阿里中间件TCP四次挥手性能调优实战 4
1.2.1 亿级消息网关Rowan架构 4
1.2.2 人脸识别服务:异曲同工的架构 6
1.2.3 “双十一大促”全链路压测发现TCP问题 9
1.2.4 Linux内核网络参数调优 11
1.2.5 Linux TCP参数调优 12
1.2.6 一行代码大幅提升QPS 13
1.3 技术驱动业务,结果为导向 16
1.4 本章小结 17
第2章 数据库连接池江湖 19
2.1 为什么使用数据库连接池 19
2.2 数据库连接池原理 22
2.3 数据库连接池百晓生《兵器谱》 23
2.3.1 c3p0 24
2.3.2 Proxool 29
2.3.3 XAPool 30
2.3.4 DBCP 32
2.3.5 Tomcat JDBC Pool 34
2.3.6 BoneCP 36
2.3.7 Druid 38
2.4 主流数据库连接池对比 41
2.4.1 性能对比 41
2.4.2 代码复杂度 42
2.4.3 功能对比 42
2.4.4 数据库中断 43
2.5 本章小结 46
第3章 初识HikariCP 47
3.1 Hikari背景、特色及前景 47
3.2 SpringBoot数据库连接池加载顺序剖析 51
3.3 SpringBoot整合HikariCP实战 53
3.3.1 Spring Initializr 53
3.3.2 添加HikariCP依赖 55
3.3.3 JdbcTemplate 56
3.3.4 Database Initialization 57
3.3.5 启动运行 59
3.4 本章小结 60
第二篇 基础篇
第4章 HikariCP参数配置 64
4.1 校时 64
4.2 HikariCP配置手册 68
4.2.1 必需配置 69
4.2.2 非必需配置 72
4.3 HikariCP连接池配置多大合适 78
4.4 Fixed Pool Design思想 81
4.5 MySQL高性能配置 82
4.6 Hibernate配置 83
4.7 JNDI配置 85
4.8 本章小结 86
第5章 HikariCP与JDBC 87
5.1 HikariCP JDBC Logging 87
5.2 JDBC 90
5.2.1 JDBC定义 91
5.2.2 JDBC实战案例 93
5.2.3 JDBC剖析 95
5.2.4 PreparedStatement和Statement 100
5.3 JDBC与SPI 101
5.3.1 SPI简介 101
5.3.2 SPI实战案例 102
5.3.3 JDBC的SPI机制 104
5.3.4 SPI高级实战:基于Dubbo的分布式日志链路TraceID追踪 106
5.4 拓展:线程池技术 109
5.4.1 MySQL线程池简介 110
5.4.2 MySQL线程池技术内幕 111
5.4.3 MySQL线程池实战 114
5.5 本章小结 117
第三篇 原理篇
第6章 HikariCP性能揭秘 120
6.1 华山论剑 120
6.2 第三方测评 124
6.2.1 环境配置 125
6.2.2 获取关闭连接性能测试 125
6.2.3 查询一条语句性能测试 127
6.2.4 psCache性能对比 128
6.2.5 测试结论 129
6.3 HikariCP为什么这么快 129
6.3.1 精简字节码 130
6.3.2 FastList 132
6.3.3 ConcurrentBag 134
6.4 本章小结 147
第7章 HikariCP连接原理 148
7.1 获取连接 148
7.2 归还连接 155
7.3 关闭连接 158
7.4 生成连接 163
7.5 扩展阅读:DCL为什么要加volatile 166
7.6 扩展阅读:Log4j2为何性能优秀 169
7.7 本章小结 173
第8章 HikariCP参数源码解析 174
8.1 SpringBoot 2.x HikariCP参数加载原理 174
8.2 allowPoolSuspension 181
8.3 validationTimeout 187
8.4 leakDetectionThreshold 189
8.5 本章小结 202
第9章 HikariCP动态代理与字节码技术 203
9.1 HikariCP字节码工程 203
9.1.1 HikariCP的字节码技术 204
9.1.2 代理技术原理 209
9.1.3 HikariCP JIT方法内联优化 213
9.2 JMH基准测试 216
9.2.1 JMH常用注解 216
9.2.2 JMH实战案例Orika 219
9.3 本章小结 223
第四篇 实战篇
第10章 HikariCP监控实战 226
10.1 监控体系层次 226
10.2 为什么需要数据库连接池监控 228
10.3 HikariCP监控指标 231
10.3.1 hikaricp_pending_threads 233
10.3.2 hikaricp_connection_acquired_nanos 234
10.3.3 hikaricp_idle_connections 235
10.3.4 hikaricp_active_connections 235
10.3.5 hikaricp_connection_usage_millis 235
10.3.6 hikaricp_connection_timeout_total 235
10.3.7 hikaricp_connection_creation_millis 236
10.4 HikariCP监控指标实战 236
10.4.1 连接风暴 236
10.4.2 慢SQL 237
10.4.3 监控指标与参数配置 237
10.5 SpringBoot 2.0暴露HikariCP Metrics 238
10.6 SpringBoot 2.0监控HikariCP JMX 241
10.7 微服务架构下的监控平台选型 246
10.8 本章小结 250
第11章 从HikariCP Metrics谈微服务监控架构实战 252
11.1 HikariCP Metrics 253
11.2 Micrometer 258
11.3 SpringBoot 2.x自定义埋点实战 260
11.3.1 引入依赖 260
11.3.2 配置application.properties 261
11.3.3 注册Metrics 261
11.3.4 支付接口埋点统计总次数 262
11.3.5 查看指标数据 262
11.4 SpringBoot 2.x集成Micrometer源码解析 266
11.5 SpringBoot 1.5.x自定义埋点实战 269
11.5.1 引入Micrometer依赖 269
11.5.2 创建Bean并注册Metrics指标 270
11.5.3 在Controller中进行支付业务埋点 271
11.6 监控架构重点 272
11.6.1 Prometheus 272
11.6.2 Grafana 275
11.7 本章小结 278
第12章 HikariCP扩展技术 280
12.1 Flexy-Pool 280
12.2 Apache ShardingSphere 284
12.3 自研集成HikariCP和Sharding-JDBC数据库中间件 295
12.4 时钟回拨 300
12.5 本章小结 311
第13章 HikariCP常见问题 312
13.1 HikariCP故障分析技巧 312
13.2 leakDetectionThreshold参数解决Spark/Scala连接池泄露 318
13.3 详解JDBC超时 320
13.4 快速恢复 323
13.5 Oracle Connection Reset问题 327
13.6 HikariCP关闭连接的5种情况 329
13.7 如何获取HikariDataSource的active connection 330
13.8 如何对HikariCP配置文件中的服务器名、用户名、密码加密 330
13.9 HikariCP神奇的配置dataSourceProperties 330
13.10 如何获取HikariCP连接池中的原始连接 332
13.11 HikariCP并不是万能工具 332
13.12 本章小结 333
第14章 HikariCP诡案实录 334
14.1 问题描述 334
14.2 Brett经典回答 336
14.3 另一个类似的案例 337
14.4 分析问题 338
14.5 解决问题 344
14.6 本章小结 344

教学资源推荐
作者: William H. Inmon
作者: Abraham Silberschatz;Henry F. Korth;S. Sudarshan
参考读物推荐
作者: [美]朱尔斯·J. 伯曼(Jules J. Berman) 著
作者: 红丸 著
作者: (美)丹·苏利文(Dan Sullivan) 著
作者: (丹)Sten E.Vesterli