关于我们
书单推荐
新书推荐
|
数据库系统:设计、实现与管理(进阶篇)(原书第6版)
本书是数据库领域的经典畅销著作,被世界多所大学选为教材,同时被广大技术人员和管理人员视为必读书。本书作者曾在工业界致力于数据库系统的设计,后进入学术界精耕于教学,深谙专业人士和非专业人士在使用和学习数据库时的痛点。因此,本书采用这两类读者都易于接受和理解的方式,全面介绍数据库设计、实现和管理的基本理论、方法和技术。
前言背景在过去的30年中,数据库的研究带来了巨大的生产力,使得数据库系统成为软件工程领域最重要的成果。目前,数据库作为信息系统的基本框架,已从根本上改变了许多公司的运作方式。特别是在最近几年里,随着这项技术本身的发展,产生了一些功能更强大、使用更方便的系统。这使得数据库系统变得越来越普及,用户类型也越来越广泛。遗憾的是,正是由于数据库系统的简单性,许多用户有可能尚缺乏必要的知识,还不懂得如何开发正确且高效的系统,就开始创建数据库及其应用程序了。这样很可能导致所谓的“软件危机”(software crisis,有时也称为“软件抑郁”(software depression))的延续。
编写本书的最初动因是我们在工业界的工作经历,当时我们为新软件系统中数据库的设计提供咨询,间或也解决遗留系统中存在的种种问题。进入学术界后,我们从另一类用户—学生那里发现了类似的问题。因此,本书的目标就是给出一本教程,尽可能清楚地介绍数据库的基础理论,并给出一套既能为专业技术人员亦能为非技术人员所用的数据库设计方法学。
本书针对当前主流的商用产品—关系数据库管理系统(DBMS)给出的设计方法学,已在学术界和工业界测试和使用了许多年。它包括三个主要阶段:数据库的概念设计、逻辑设计和物理设计。第一个阶段在不考虑任何物理因素的前提下设计概念数据模型,得到的数据模型在第二阶段被细化为逻辑数据模型,细化过程主要是去除在关系系统中无法表示的结构。在第三阶段,逻辑数据模型被转换成针对目标DBMS的物理设计,物理设计阶段主要考虑如何设计存储结构和访问方法,以便有效并安全地访问存储在辅存中的数据库。
该方法学按阶段被分为一系列步骤。对于缺少经验的设计者,最好按步骤进行设计,这里所提供的指南可帮助你完成整个过程。对于有经验的设计者,该方法学的指导作用显然会弱化,但经常可用于开发框架和检查列表。为了帮助读者学习使用上述方法学并理解其要点,整个方法学的描述中始终贯穿一个完整的DreamHome案例研究。附录B还给出了另外三个案例,供读者自行研究。
UML(统一建模语言)越来越多的公司都在规范各自的数据建模方法,即选择一种特定的建模方法并在整个数据库开发项目中始终如一地使用它。一种在数据库概念设计和逻辑设计阶段较为通用的高级数据模型是ER(实体-联系)模型,这也是本书采用的模型。由于当前还没有表示ER模型的标准方法,因此大部分书籍在描述关系DBMS的数据库设计时,常常使用下述两种表示方法之一:
Chen氏表示方法,即用矩形表示实体,用菱形表示联系,用线段连接矩形和菱形。
Crow Feet(鸦爪)表示方法,仍用矩形表示实体,用实体间的连线表示联系,在一对多联系连线的多端有一个鸦爪标记。
当前,这两种表示方法都有计算机辅助软件工程(CASE)工具。然而,它们都难于使用和解释。本书的较早版本曾使用Chen氏表示方法,而在随后培生教育出版集团进行的一次问卷调查中,比较一致的意见是应该使用最新的称为UML(Unified Modeling Language,统一建模语言)的面向对象建模语言。UML表示方法结合了面向对象设计三大流派的成分:Rumbaugh的OMT建模语言,Booch的面向对象分析和面向对象设计,以及Jacobson的Objectory。
换用表示方法主要有以下三个原因:(1)UML正成为一种工业标准,例如,对象管理组(OMG)已经采纳UML作为对象方法的标准表示方法;(2)UML表达清楚并易于使用;(3)UML目前已被学术界用于面向对象分析与设计的教学,在数据库模块的教学中也使用UML将会更加一致。因此,在这个版本中,我们将采用UML的类图作为ER模型的表示方法。读者将会发现这种表示方法更加容易理解和使用。
第6版的更新之处扩展了第3章“数据库的结构与Web”,增加了云计算。
修改了第21章“数据管理中的职业、法律与道德问题”。
增加了“数据仓库与时态数据库”(31.5节)。
每章后增加了新的思考题和习题。
修改了与SQL相关的章节,全面反映2011年公布的新标准SQL:2011。
修订了第26章“复制与移动数据库”。
修改了关于Web-DBMS集成和XML的章节。
与Oracle相关的内容一律修改为针对Oracle 11g。
读者对象本书可作为本科生数据库管理或数据库设计的导论性教材,也可作为研究生或高年级本科生相关课程的教材,学时可分为一到两个学期。通常信息系统、商业IT或计算机科学等专业都包含这类课程。
本书还可以作为一些IT专业人士的参考书,如系统分析和设计人员、应用程序开发人员、系统程序员、数据库从业人员及独立的自学者。随着当今数据库系统的广泛使用,这些专业人士可能来自于需要数据库的任何类型的公司。
读者在学习关于物理数据库设计的第18章和关于查询处理的第23章之前,如果对附录F中介绍的文件组织和数据结构相关概念有清楚的了解,那么将会有所帮助。理想的情况是这些背景知识已从前导课程中获得。如果不具备这个条件,则可以在开始数据库课程后,学完第1章立即学习附录F。
如果读者已经掌握了一门高级编程语言,比如C,那么在学习附录I的嵌入式与动态SQL和28.3节的ObjectStore时会更有成效。
突出特点(1)为数据库逻辑设计和概念设计提供了易用、逐步指导的方法学,该方法学基于广泛采用的实体-联系模型并将规范化作为验证技术。此外,通过一个完整的案例研究来说明如何使用这套方法学。
(2)为数据库物理设计提供了易用、逐步指导的方法学,包括:逻辑设计到物理实现的映射,文件组织方法的选择,适合应用程序的索引结构,以及何时引入可控冗余。此外,通过一个完整的案例研究来说明如何使用这套方法学。
(3)用独立的章节来讲解以下三个主题:数据库设计阶段在整个系统开发生命周期中的位置与作用;如何使用实况发现技术来获取系统需求;如何将UML用于整个方法学。
(4)每章都采用清晰且易于理解的表述方法,如突出显示定义,明确给出各章学习目标,在各章最后进行小结。通篇使用了大量示例和图表来说明概念。来自现实生活的DreamHome案例研究贯穿全书,另外还给出若干案例供学生选作课程实践题目。
(5)扩充了下列最新的正式标准及事实标准:结构化查询语言(SQL),举例查询(QBE),面向对象数据库的对象数据管理组(ODMG)标准。
(6)利用三章的篇幅,以教程式风格介绍SQL标准,包含交互式和嵌入式SQL。
(7)专设一章讨论IT和数据库中的职业、法律与道德问题。
(8)全面讨论了与分布式DBMS和复制服务器相关的概念和问题。
(9)全面介绍了基于对象的DBMS中的一些概念和问题。回顾了ODMG标准,介绍了在最新公布的SQL版本SQL:2011中出现的各种对象管理机制。
(10)扩展了作为数据库应用平台的Web部分的内容,并给出多个Web数据库访问的代码示例。具体包括容器管理持久性(CMP)、Java数据对象(JDO)、Java持久性API(JPA)、JDBC、SQLJ、ActiveX数据对象(ADO)、ADO.NET和Oracle PL/SQL Pages(PSP)。
(11)介绍了半结构化数据及其与XML的关系,扩展了XML的内容和相关术语,包括XML Schema、XQuery、XQuery数据模型和形式语义。还讨论了在数据库中集成XML,以及为发布XML而在SQL:2008和SQL:2011中所做的扩展。
(12)全面介绍了数据仓库、联机分析处理(OLAP)和数据挖掘。
(13)全面介绍了用于数据仓库数据库设计的维度建模技术,并且通过一个完整的案例来演示如何使用该方法进行数据仓库数据库设计。
(14)介绍了DBMS系统实现的有关概念,包括并发技术和恢复控制、安全以及查询处理和查询优化。
教学方法在开始撰写本书之前,我们的目标之一就是写一本让读者容易接受和理解的教材,而不管读者具备怎样的背景知识和经验。根据我们使用教材的经验以及从很多同事、客户和学生中吸收的意见,实际上存在若干读者喜爱和不喜爱的设计特性。考虑到这些因素,本书决定采用如下的风格和结构:
在每章的开头明确说明该章的学习目标。
清楚定义每一个重要的概念,并用特殊格式突出显示。
通篇大量使用图表来支持和阐明概念。
面向实际应用:为了做到这点,每章都包含了许多实际有效的示例以说明所描述的概念。
每章最后配有小结,涉及该章所有主要的概念。
每章最后配有思考题,问题的答案都可以在书中找到。
每章最后配有习题,教师可用其测试学生对章节内容的理解,自学者也可进行自测。全部习题的答案可以在原书配套的教辅资源“教师答案手册”中找到。
教辅资源适用于本教材的教辅资源包括:
课程PPT。
教师答案手册,包括所有课后思考题和习题的答案示例。
其他资源的配套网站:www.pearsonhighered.com/connolly-begg。
上述资源仅提供给在www.pearsonhighered.com/irc上注册过的教师。请与当地的销售代表联系。
本书结构第一部分背景本书的第一部分介绍数据库系统和数据库设计。
第1章引入数据库管理的概念。主要阐述了数据库前身,即基于文件的系统之不足及数据库方法所具备的优势。
第2章总览数据库环境。主要讨论了三层ANSI-SPARC体系结构的优点,介绍了目前最通用的数据模型,列出了多用户DBMS应提供的各种功能。
第3章考察各种多用户DBMS结构,讨论了数据库领域不同类型的中间件。分析Web服务,它能为用户和SOA(面向服务的结构)提供新型的业务服务。该章简要描述分布式DBMS和数据仓库的结构,后面还将详细讨论。该章还给出一个抽象DBMS的内部结构以及Oracle DBMS的逻辑结构和物理结构,这一部分内容在数据库管理初级课程中可以略去。
第二部分关系模型与语言本书的第二部分介绍关系模型和关系语言,即关系代数和关系演算、QBE(举例查询)和SQL(结构化查询语言)。这部分还介绍了两种非常流行的商用系统:Microsoft Access和Oracle。
第4章介绍当前最流行的数据模型—关系模型背后的概念,这是最常被选作商用标准的模型。具体安排是首先介绍术语并说明其与数学上的关系的联系,然后讨论关系完整性规则,包括实体完整性和引用完整性。这一章最后概述视图,第7章还将进一步讨论视图。
第5章介绍关系代数和关系演算,并
目 录
出版者的话
译者序
前言
第六部分 分布式DBMS与复制
第24章 DDBMS—概念与设计2
24.1 引言3
24.1.1 概念3
24.1.2 DDBMS的优缺点6
24.1.3同构DDBMS和异构DDBMS8
24.2 网络概述10
24.3 DDBMS的功能和体系结构13
24.3.1 DDBMS的功能13
24.3.2 DDBMS的参考体系结构13
24.3.3 联邦MDBS的参考体系结构14
24.3.4 DDBMS的组成结构15
24.4 分布式关系数据库设计16
24.4.1 数据分配17
24.4.2 分段18
24.5 DDBMS的透明性24
24.5.1 分布透明性24
24.5.2 事务透明性26
24.5.3 性能透明性29
24.5.4 DBMS透明性31
24.5.5 DDBMS的透明性小结31
24.6 Date 关于DDBMS的12条规则31
本章小结32
思考题33
习题34
第25章 DDBMS—高级概念35
25.1 分布式事务管理36
25.2 分布式并发控制36
25.2.1 目标36
25.2.2 分布串行性37
25.2.3 锁协议37
25.3 分布式死锁管理39
25.4 分布式数据库恢复42
25.4.1 分布式环境中的故障42
25.4.2 故障对恢复的影响43
25.4.3 两段式提交44
25.4.4 三段式提交48
25.4.5 网络分区51
25.5 X/Open分布式事务处理模型53
25.6 分布式查询优化55
25.6.1 数据定位56
25.6.2 分布式连接58
25.6.3全局优化59
25.7 Oracle中的分布特性62
本章小结67
思考题67
习题68
第26章 复制与移动数据库69
26.1 数据库复制简介70
26.1.1 复制的应用71
26.1.2 复制模型71
26.1.3 复制协议的功能模型71
26.1.4 一致性72
26.2 复制的体系结构73
26.2.1 基于内核的复制73
26.2.2 基于中间件的复制73
26.2.3 更新处理74
26.2.4 更新传播75
26.2.5 更新场所(数据所有权)76
26.2.6 终止协议78
26.3 复制模式79
26.3.1 积极主备份79
26.3.2 懒惰主备份83
26.3.3 积极随处更新86
26.3.4 懒惰随处更新86
26.3.5 使用统一全序广播的随处更新89
26.3.6 SI与统一全序广播复制92
26.4 移动数据库简介97
26.4.1 移动DBMS98
26.4.2 与移动 DBMS相关的问题98
26.5 Oracle中的复制108
本章小结113
思考题114
习题114
第七部分 对象DBMS
第27章 OODBMS——概念与设计118
27.1 下一代数据库系统119
27.2 OODBMS简介120
27.2.1 面向对象DBMS的定义120
27.2.2 函数数据模型122
27.2.3 持久型编程语言125
27.2.4 开发OODBMS的可选策略126
27.3 OODBMS的持久性127
27.3.1 指针切换技术128
27.3.2 访问对象131
27.3.3 持久性模式132
27.3.4 正交持久性133
27.4 OODBMS中的问题135
27.4.1 事务135
27.4.2 版本135
27.4.3 模式演化136
27.4.4 体系结构139
27.4.5 基准测试141
27.5 OODBMS的优点和缺点142
27.5.1 优点143
27.5.2 缺点144
27.6 ORDBMS与OODBMS的比较145
27.7 面向对象数据库设计146
27.7.1 面向对象数据建模与概念数据建模的比较146
27.7.2 联系和引用完整性147
27.7.3 行为设计149
27.8 采用UML的面向对象分析与设计150
27.8.1 UML图151
27.8.2 UML在数据库设计方法学中的应用155
本章小结156
思考题157
习题158
第28章 OODBMS——标准与系统159
28.1 对象管理组159
28.1.1 背景160
28.1.2 公共对象请求代理架构162
28.1.3 其他OMG规范166
28.1.4 模型驱动的架构167
28.2 对象数据标准ODMG 3.0170
28.2.1 对象数据管理组170
28.2.2 对象模型171
28.2.3 对象定义语言177
28.2.4 对象查询语言178
28.2.5 ODMG标准的其他部分183
28.2.6 将概念设计映射为逻辑(面向对象的)设计186
28.3 ObjectStore187
28.3.1 总体结构187
28.3.2 构建ObjectStore应用程序189
28.3.3 ObjectStore中的数据定义190
28.3.4 ObjectStore中的数据操作193
本章小结196
思考题197
习题197
第八部分 Web与DBMS
第29章 Web技术与DBMS200
29.1 Internet和Web简介201
29.1.1 企业内联网与外联网202
29.1.2 电子贸易和电子商务203
29.2 Web203
29.2.1 超文本传输协议204
29.2.2 超文本标记语言206
29.2.3 统一资源定位符207
29.2.4 静态和动态网页208
29.2.5 Web服务208
29.2.6 对Web与DBMS集成的需求209
29.2.7 Web-DBMS方案的优缺点210
29.2.8 集成Web与DBMS的方法212
29.3 脚本语言213
29.3.1 JavaScript和JScript213
29.3.2 VBScript214
29.3.3 Perl和PHP214
29.4 公共网关接口215
29.4.1 向CGI脚本传递信息216
29.4.2 CGI的优缺点217
29.5 HTTP Cookie218
29.6 扩展Web服务器219
29.7 Java220
29.7.1 JDBC223
29.7.2 SQLJ227
29.7.3 JDBC和SQLJ的比较227
29.7.4 管理容器持久性228
29.7.5 JDO231
29.7.6 JPA237
29.7.7 Java servlet243
29.7.8 JSP244
29.7.9 Java Web服务245
29.8 Microsoft的Web解决平台246
29.8.1 通用数据访问247
29.8.2 ASP和ADO248
29.8.3 远程数据服务250
29.8.4 ASP和JSP的比较251
29.8.5 Microsoft .NET251
29.8.6 Microsoft Web服务255
29.9 Oracle Internet平台255
29.9.
你还可能感兴趣
我要评论
|