
前 言
作 者 简 介
Michael V. Mannino于1980年开始涉足数据库领域,从1983年起,他任教于佛罗里达大学、德州大学奥斯汀分校、华盛顿大学和科罗拉多大学丹佛分校等多所知名院校,为MIS大学生、MIS研究生、MBA学生、博士生及参加在职培训的员工讲授数据库管理课程。Michael V. Mannino一直活跃于数据库研究领域,并在IEEE(知识与数据工程学报以及软件工程学报)、ACM(通信和计算研究)以及INFORMS(计算和信息系统研究报告刊物)主流期刊上发表了论文,包括多篇通俗易懂的综述、教学论文以及包含创新成果的论文。他在“表单驱动”数据库设计方法上的实用研究成果被收入本书第12章。
案 例 研 究
Paul Hong先生是International Industrial Adhesives, Inc.的所有者,他虽然十分满意公司当前的经营业绩,但对公司发展远景持谨慎态度。目前公司的销售收入及赢利增长均超出了乐观的预测,而开支却并未相应增加,Paul Hong将这些归功于全球经济复苏,通过外包集中使用资源,以及具有战略意义的IT部署。面对一派喜人的景象,Paul Hong没有沾沾自喜,反倒疑虑起公司的前景来,他认真考虑了各种不利因素:业务的成功导致新竞争对手觊觎抢夺他的金牌客户;成本高昂的新兴电子商务行业的回报存在不确定性;政府的新法规将大幅增加上市公司的经营成本,从而影响他通过公开增发证券以筹集资金的计划。尽管对近期的业绩感到欢欣鼓舞,但Paul Hong在谨慎地思考如何把握新方向以确保业绩继续增长。
为保持在业内的领先地位,并控制行业及政府法规带来的成本,Paul Hong必须评估IT投资。为适应竞争需要,他必须获得更加详细及时的行业趋势、竞争对手活动及经销商交易数据。他要选择一个经济实惠的解决方案来支持行业的电子商务举措。为给上市做准备,他必须执行IT审计,并完成政府针对上市公司的其他报告要求。面对所有这些事项,Paul Hong在采用专有还是通用技术和标准的问题上感到犹豫不决。
上述事项涉及作为不断扩展的企业计算基础结构一部分的数据库技术的有效使用。企业DBMS的“事务处理”功能为确保可靠处理联机订单,以支持规模扩大的行业电子商务举措奠定基础。企业DBMS的“数据仓库”功能为支持大型数据仓库和及时捕获源数据奠定基础。“并行数据库”技术能通过循序渐进地添加计算能力,来提高事务处理和数据仓库查询的性能和可靠性。“对象数据库”具有管理电子商务行业首创生成的大量XML文档集合的能力。
然而,Paul Hong所关注事项的解决方案不仅在于技术方面。利用技术的等级是否适应涉及公司未来的远景、对技术的深入理解以及传统的风险管理技术。Paul Hong认识到最大的挑战是如何恰如其分地融合这些技术,以便为公司开发一个行之有效的解决方案。
内 容 简 介
本书介绍数据库技术的基础知识,旨在帮助您驾轻就熟地处理诸如Paul Hong遇到的企业计算事项。作为一名管理数据库的新手,首先要理解数据库管理和关系数据模型的基本概念,然后要熟练掌握数据库设计和数据库应用程序开发技能。本书提供了必需的工具,以帮助您理解关系数据库,并学会如何解决基本和复杂的查询公式化、数据建模、规范化、应用程序数据要求和自定义数据库应用程序问题。
掌握这些技能后,就可以学习数据库专家的任务以及数据库所在的处理环境了。本书介绍了处理环境下的每个基本数据库技术,并将这些技术与电子商务及企业计算的新进展联系在一起。您将学习数据库技术的术语、架构和设计问题,这些为深入研究每种数据库管理系统、电子商务应用程序和企业计算提供了背景知识。
新 增 内 容
第三版对第二版做了大幅修改,同时保留了前两个版本中获得读者认可的教学材料。根据从大学生和研究生教学中积累的经验,并结合读者的意见,扩充了新材料,并完善了现有材料。第三版中数据库开发章节(即第5~8章)的改动幅度最大:更改了数据建模的业务规则,更改了分析业务信息需求的指南,扩大了描述数据模型中的设计错误范围,扩大了描述函数依赖识别的范围,提供更大的查询优化提示范围。新范围巩固了第二版中的成熟方法:分离实体关联图和业务数据建模的结构,介绍用于消除表示法错误的自定义数据建模工具ER Assistant,重点介绍用作数据库开发完善工具的规范化过程。
在数据库应用程序开发方面,第三版浓墨重彩地描述SQL:2003(SQL:1999标准的演化),介绍SQL:200 3标准的范围以及新内容。在数据库应用程序方面的大量完善扩展了前两版的成熟内容:查询公式化指南、高级匹配问题、层次表单和报表的查询公式化提示以及软约束的触发器。
在数据库管理和处理环境方面,第三版扩大了SQL:2003和Oracle 10g的新技术范围。最重要的新主题有:并行数据库技术,物化视图查询重写的扩展描述,以及Oracle分布式数据库的透明性。重要的修订内容有:死锁控制,数据库恢复检查点,事务设计期间的用户交互时间,维度表中的时间表示,数据仓库成熟度,客户端-服务器数据库处理中的Web服务,以及对象数据库架构的商用。
除新增材料和修改现有材料外,第三版还增加了章节补充材料,添加了章末复习题和练习题,并概括了SQL:2003语法。本书Web站点上的新材料包括案例研究,初级和中级课程的课外作业及一些示例试题。
第三版的章节编排更合理,全书分7个部分,缩小了学习单元。第I部分简要介绍数据库管理和开发,以便为后续章节的详细知识和技术提供概念基础。第II部分介绍用于创建数据库的关系数据模型的基本元素以及查询公式化。第III部分和第IV部分介绍数据库开发,其中,第III部分介绍数据建模,第IV部分介绍逻辑和物理表的设计。第V部分介绍高级应用程序开发,内容包括高级匹配问题、数据库视图以及存储过程和触发器。第VI部分通过视图集成和一个全面详尽的案例讲述高级数据库开发。第VII部分描述数据库管理和DBMS处理环境(对应于本书第二版第IV部分的内容)。
本 书 特 色
本书具有同类书籍无可比拟的优势。本书特色有:详细介绍Access和Oracle的SQL语句,有助于您掌握关键技能的问题解决指南,精心设计的示例数据库和例子,全面详尽的案例研究,紧跟技术前沿的高级主题,集成的实验室材料以及ER Assistant。这些特色共同打造出一个完整的入门数据库课程包。以下列表逐一详述这些功能。表P-1按章节概括了本书优势。
表P-1 按章节描述本书优势
章 号
优 势
2
在概念层次上介绍数据库开发过程的特色章节
3
关系代数操作符的可视表示形式
4
查询公式化指导原则,范围涉及Oracle、Access和SQL:2003
5
重点描述EA Assistant支持的ERD表示法、业务规则和图表规则
6
分析业务信息需求的策略、转换数据建模、检查常见设计错误
7
规范化指导原则和过程
8
索引选择原则;SQL优化指导原则,采用综合方法介绍查询优化、文件结构和索引选择
9
查询公式化指导原则;范围涉及Oracle10g、Access和SQL:2003;有关嵌套查询、“除”问题和空值处理的高级主题
10
可更新视图的原则,表单和报表的数据要求指导原则
11
介绍数据库编程语言、存储过程及触发器概念和实践的特色章节
12
介绍视图集成及设计概念和实践的特色章节
13
全面详尽地介绍学生贷款处理的实例研究
14
有关数据库管理员所使用的重要过程的指导原则
15
事务设计指导原则高级主题
16
数据仓库成熟度模型(用来评估对组织的技术影响);有关数据仓库处理及数据仓库刷新过程的关系数据库方面的高级主题;扩展的Oracle10g数据仓库研究
17
综合描述客户端-服务器处理、并行数据库处理和分布式数据库
18
SQL:2003和Oracle10g关系对象方面的高级主题
SQL范围:本书介绍的SQL在深度和广度上均超出其他同类书籍。表P-2按章节概括了SQL范围。第II部分和第V部分详尽介绍了CREATE TABLE、SELECT、UPDATE、INSERT、DELETE、CREATE VIEW和CREATE TRIGGER语句。并针对基本、中等和复杂问题列举了大量例子。第VII部分的章节涉及用于管理数据库以及用于特定处理环境的SQL语句。
表P-2 按章节描述SQL语句
章 号
SQL语句
3
CREATE TABLE
4
SELECT、INSERT、DELETE、UPDATE
9
SELECT(嵌套查询、外连接和空值处理) ,范围涉及Access、Oracle 10g和SQL:2003
10
CREATE VIEW,使用视图的查询和操纵语句
11
CREATE PROCEDURE(Oracle)、CREATE TRIGGER(Oracle和SQL:2003)
14
GRANT、REVOKE、CREATE ROLE、CREATE ASSERTION、CREATE TABLE语句的CHECK子句、CREATE DOMAIN
15
COMMIT、ROLLBACK、SET TRANSACTION、SET CONSTRAINTS、SAVEPOINT
16
CREATE MATERIALIZED VIEW(Oracle)、GROUP BY子句扩展(Oracle及SQL:2003)、CREATE DIMENSION(Oracle)
18
CREATE TYPE、CREATE TABLE(类型表及子表)、SELECT(对象标识符、路径表达式和反引用操作符),范围涉及Oracle10g和SQL:2003
Access和Oracle范围:第II部分和第V部分的章节详细描述Access和Oracle的SQL。每个SELECT、INSERT、UPDATE、DELETE和CREATE VIEW语句的例子都针对这两种数据库管理系统进行显示。第8、9、11、15、16和18章描述全新的Oracle10g SQL功能。另外,第II部分和第V部分的章节讨论了SQL:2003语法,以帮助您了解其他主流数据库管理系统。
解决问题的指导原则:读者不仅需要解释概念和解决问题的例子,还需要在指导原则的帮助下理清思绪,以便有条不紊地处理问题。这些指导原则提供了思维模型,以帮助学习者运用概念解决基本和复杂问题。表P-3按章节概括了独具特色的解决问题的指导原则。
表P-3 按章节划分的解决问题的指导原则
章 号
解决问题的指导原则
3
关联以及关系代数操作符的可视表示形式
4
概念评估过程、查询公式化问题
5
图表原则
6
分析业务信息需求的指导原则、设计转化、识别常见设计错误、转换规则
(续表)
章 号
解决问题的指导原则
7
识别函数依赖的指导原则,简单合成过程
8
索引选择原则、SQL优化指导原则
9
“差”问题公式化指导原则、嵌套查询评估、“除”问题的计数方法
10
可更新连接查询规则,分析表单和报表数据要求的步骤
11
触发器执行过程
12
表单分析步骤,视图集成策略
14
管理存储过程和触发器的指导原则,数据计划过程,DBMS选择过程
15
事务时间线,事务设计指导原则
16
多维数据的关系数据库表示指导原则,多维表时间表示的指导原则,刷新数据仓库的权衡
17
分布式数据库的递增透明级别
18
对象数据库架构,关系与对象-关系表示之间的比较
示例数据库以及例子:为保持一致性和连续性,有两个示例数据库贯穿于第II部分和第V部分的章节。章节例子使用“大学”数据库,章末问题使用“订单输入”数据库。围绕这两个数据库的大量示例和问题描述查询公式化和应用程序数据要求的基本技能。这两个经过修改的数据库版本使初级和高级例子泾渭分明。本书Web站点包含用于这两个数据库的CREATE TABLE语句、示例数据、数据操纵语句和Access数据库文件。为更多呈现更广泛的业务情形,第III、IV和VII部分使用了附加数据库。通过接触多种业务情形,学习者可以掌握数据库设计技能,并了解对数据库专家至关重要的概念。其他数据库有“自来水公司业务”、“病人就诊”、“学术论文审查”、“个人理财记录”、“机票预订”、“就业指导业务”、“汽车保险”、“商店销售记录”以及“房地产销售”等数据库,以此来补充章节例子和章末问题中使用的“大学”数据库和“订单输入”数据库。
全面详尽的案例研究:第VI部分末尾是一个学生贷款有限公司案例。案例描述及其解决方案将前面12章中介绍的数据库设计和应用程序开发概念融合在一起。本章末尾的练习题为学习者提供了更多将知识运用于实践的机会。
供选用的集成实验室:将概念与使用商业DBMS设计和实现数据库的实践密切结合,是学习数据库管理的绝佳方法。Microsoft Access实验室将第II和第V部分介绍的应用程序开发概念与详尽的Access结合在一起。
免费的数据建模工具:配合第III部分章节讨论的数据建模,ER Assistant提供了绘制和分析实体关联图的简单界面。通过使用该软件,学习者能快速提高效率:不必专注于复杂CASE工具的细节,潜心考虑数据建模概念即可。为帮助学习者避免图表错误,ER Assistant支持第5章讨论的图表规则。
当前和前沿主题并存:本书收集了同类书籍缺乏的内容:高级查询公式化、可更新视图、存储过程及触发器的开发和管理、数据输入表单和报表的数据要求、视图集成、数据仓库刷新过程的管理、数据仓库成熟度模型、并行数据库架构、对象数据库架构、SQL:2003和Oracle10g中的数据仓库功能、SQL:2003和Oracle10g中的对象关系功能以及事务设计原理。这些主题使具有强烈学习愿望的学习者能更深刻地理解数据库管理知识。
完整的集成化课程包:根据课程要求,某些学习者可能要购买5本数据库入门书籍:一本讨论原理,一本详细介绍DBMS,一本分析CASE工具,一本SQL辅导书,以及一本列举具体实例的书。而本书及其配套材料为学习者提供了一个内容全面、完美结合且经济实惠的课程包。
读 者 对 象
本书是初级数据库管理书籍,面向主修或辅修信息系统的大学生,或对相关知识有浓厚兴趣的大学生。在两年制院校中,教师可能要略去高级主题,将重点更多地放在可选的Access实验室书籍上。大学生应参加过介绍一般信息系统概念、电子表格、文字处理和数据库简介的预备课程。全面学习第11章前,学习者需要具备计算机编程背景(否则只能了解基本概念)。其他章节虽然也引用某些计算机编程概念,但不涉及编码,故学习这些章节时,参加过计算机编程课程是一个有用的背景,但并不是必需的。
本书也面向MBA或信息系统理学硕士等研究生。其中的高级材料特别适用于理学硕士。
编 排 方 法
由书名可知,“数据库设计、应用程序开发和管理”重点介绍三套技能。在学习这些技能之前,学习者要具备了解基本概念的基础。第I部分为后面详细介绍数据库设计、数据库应用程序开发和数据库管理提供概念背景。第I部分的章节介绍数据库管理的原理,并且在概念层次上,简要介绍了数据库开发过程。
第II部分介绍关系数据模型的基础知识。第3章讨论表定义、完整性规则以及从关系数据库检索有用信息的操作符。第4章讨论查询公式化指导原则,并列举了大量SQL语句例子。
第III和第IV部分重点介绍数据库开发过程的实用技能和设计指导原则。有志于成为数据库专家的学习者应能完成数据库开发过程的每个步骤。应该学会数据建模、模式转换、规范化和物理数据库设计技能。第III部分(第5~6章)使用实体关联模型建立数据模型;其中,第5章介绍实体关联图的结构,第6章介绍使用实体关联图来分析业务信息需求。第IV部分(第7~8章)介绍了表设计原理以及逻辑和物理设计的实践;其中,第7章讨论数据规范化的动机、函数依赖、范式和实际考虑事项;第8章广泛介绍物理数据库设计,内容包括目标、输入、文件结构、查询优化背景和重要的设计选项。
第V部分帮助学习者掌握高级查询公式化技能,和数据输入表单和报表的数据要求规范,并帮助学习者编写触发器和存储过程代码等技能,从而为构建数据库应用程序奠定基础。第9章列举更多中高级SQL例子以及相应的查询公式化技能。第10章介绍了关系视图的动机、定义和用法,以及数据输入表单和报表的视图定义规范。第11章介绍用于自定义数据库应用程序的数据库编程语言、存储过程和触发器的概念和编码实践。
第VI部分介绍高级数据库开发主题。第12章描述视图设计和视图集成(大型数据库开发计划的数据模型概念)。第13章提供了一个全面详尽的案例研究,旨在使学习者深刻了解将数据库设计和应用程序开发技能应用于实际业务数据库的难点。
除了介绍数据库设计和应用程序开发技能外,本书还旨在帮助学习者成长为数据库专家。学习者需要了解数据管理员和数据库管理员的职责以及使用的工具和过程,还需要了解运行数据库的各种环境。
第VII部分重点介绍数据库专家的角色,以及在各种操作环境中管理数据库的详细信息。第14章通过介绍数据库管理员和数据管理员的职责以及使用的工具和过程,为其他章节提供了背景知识。第VII部分的其他章节为在重要环境中管理数据库提供了基础知识:第15章介绍事务处理,第16章讲述数据仓库,第17章讨论分布式处理和数据,第18章介绍对象数据库管理。这些章节重点讨论对数据库专家至关重要的概念、架构和设计选项。
行 文 方 式
为使学习者获得学习和了解应用程序开发、数据库设计和数据库管理的必备技能,本书秉持三个指导原则。
(1) 将概念与实践结合在一起。将概念与使用商业DBMS设计和实现数据库的实践密切结合,可以使数据库管理的学习变得更简单。本书具有以下特点,以便将概念和实践密切地结合起来:
● SQL例子的范围包括Access、Oracle和SQL:2003。
● 重点介绍应用程序开发与查询公式化之间的关联。
● 使用专业CASE工具支持的数据建模表示法,以及一个易用的教学工具ER Assistant。
● 补充的实验室实践章节,该章节将课本概念与商业DBMS细节结合在一起。
(2) 重点描述解决问题的技能。描述解决问题的指导原则是本书的一大特色,目的是帮助学习者掌握数据建模、规范化、查询公式化和应用程序开发的基本技能。本书及配套补充材料提供大量可供学生运用技能的复习题、练习题、案例研究和实验室实践。熟练掌握基本数据库技能后,学习者将为未来学习数据库做好准备,并改变日常计算思考方式。
(3) 提供基础材料和高级材料。使用本书的企业学员可能具有不同的背景。本书提供的材料具有足够的深度,可以满足对知识需求最迫切的学习者的需要。同时,本书分离了高级部分,以使普通学习者可以略去这些内容。
教 学 特 点
本书具有以下教学特点,旨在帮助学生井然有序地浏览和学习章节内容:
● “学习目标”重点介绍学生通过学习相应章节可以获得的知识和技能。
● “总览”帮助您预览相应章节的内容。
● “例子”与章节其他材料清晰地分开,以便学习者进行复习和研究。
● “运行数据库例子”。“大学”和“订单输入”示例数据库在页边空白处放置图标,以引起学习者对例子的注意。
● “小结”总结与学习目标相关的章节内容。
● “概念总汇”突出显示全章的重要概念,而不是简单的术语列表。
● “复习题”用来复习章节概念。
● “练习题”帮助学习者实践章节中介绍的详细技能。
● “资源”给学习者指出有关章节内容的附加资源。
● “附录”针对某些原理或实践,提供更多详细或简明扼要的总结。
在本书的最后,还可以看到以下的附加资源:
● “词汇表”提供全书使用的完整术语和定义列表。
另外,可以登录联机学习中心www.mhhe.com/mannino查看一系列相关的Web资源。
Access实验室
可以获取Microsoft Access97、2000、2002和2003实验室。这些实验室详述对数据库初学者至关重要的功能,以及大量高级功能。实验室章节融合了指南实践和引用材料,并编排成以下章节:
(1) Microsoft Access简介
(2) 数据库创建实验室
(3) 查询实验室
(4) 单表表单实验室
(5) 层次表单实验室
(6) 报表实验室
(7) 数据透视表和数据访问页(仅限于Access 2002和2003)
(8) 用户界面实验室
每个实验室章节与本书的教学方法保持一致,包含学习目标、总览、小结、补充实践练习和有用提示附录。大部分实验室章节引用本书的概念,以与相应章节密切集成。每个实验室还包含术语表和索引。
教 师 资 源
教师通过填写本书最后所附的“教辅资料申请及教师信息反馈表”可以获得本书和实验室手册的一系列综合性补充材料:
● Web站点/联机学习中心www.mhhe.com/mannino。这是一个密码保护的教师站点,包含练习题解决方案、课外作业、带演讲者注释的PowerPoint幻灯片、案例研究解决方案和实验室作业解决方案等。该站点还包含两种数据库的CREATE TABLE语句、示例数据、数据操纵语句和Access数据库文件。该站点供学生使用的内容包括完成作业和项目需要的所有数据集,以及特有的设计工具ER Assistant。
教 学 安 排
可以安排一至两个学期的课时,依多种顺序讲授本书。本书作者曾在一个学期,按应用程序开发、数据库开发和数据库处理环境的顺序讲授了本课程,这种做法的优势是首先讲述较具体的材料(应用程序开发),然后才讲述更抽象的材料(数据库开发)。实验室章节和作业用于超出本书章节范围的实践。为满足一学期课时的需要,略过了第8章以及第11~18章的高级主题。
第二种顺序首先讲述数据库开发,然后讲述应用程序开发。采用这种顺序时,可按第1、2、5、6、3、7、4、9、10章的顺序授课。第6章的模式转换内容最好放在第3章之后。这种安排允许更透彻地介绍数据库开发,而且不会忽略应用程序开发。同时,为满足一学期课时的需要,可略过第8章及第11~18章的高级主题。
第三种可能的顺序是使用两个学期的课时。第一学期讲授第I和第II部分的数据库管理基本原理,第III和第IV部分的数据建模和规范化,以及第V和第VI部分的高级查询公式化、使用视图开发应用程序和视图集成。第二学期重点介绍第IV部分包含物理数据库设计在内的数据库管理技能,第V部分的触发器和存储进程,第VII部分的处理环境,以及有关管理企业数据库的其他材料。第二学期最好使用一个综合性项目,以将应用程序开发、数据库开发和数据库管理结合起来。
学 生 资 源
● ER Assistant:可以从联机学习中心免费下载。这个方便易用的数据建模工具用于绘制和分析ERD。
● Aceess综合实验室:您可以根据需要选择Access97、2000、2002和2003实验室包,这些包含本书之外的其他示例数据库和练习。
● Web站点/联机学习中心www.mhhe.com/mannino:学习者中心包含学习要点,内容包括本书的学习目标、章节总览、小结和关键术语,以及自我测试题和其他有用的联机资源。●
??
VI
数据库设计、应用开发和管理(第3版)
XIII
前 言
目 录
第Ⅰ部分 数据库环境一览
第1章 数据库管理简介 3
1.1 数据库的特性 3
1.2 数据库管理系统的功能 6
1.2.1 数据库定义 7
1.2.2 非过程访问 8
1.2.3 “应用程序开发”和“程序
语言接口” 9
1.2.4 支持数据库操作的功能 11
1.2.5 第三方功能 11
1.3 数据库技术的发展和
市场状况 12
1.3.1 数据库技术的演化 12
1.3.2 数据库软件当前的
销售状况 13
1.4 数据库管理系统的架构 14
1.4.1 数据独立和三模式架构 14
1.4.2 分布式处理和“客户端
/服务器”架构 16
1.5 数据库技术对组织的影响 18
1.5.1 与数据库交互 18
1.5.2 信息资源管理 19
1.6 小结 20
1.7 概念总汇 21
1.8 复习题 21
1.9 练习题 22
1.10 资源 22
第2章 数据库开发简介 23
2.1 信息系统 23
2.1.1 信息系统的组件 23
2.1.2 信息系统开发过程 24
2.2 数据库开发的目标 26
2.2.1 开发通用词汇 26
2.2.2 定义数据含义 26
2.2.3 确保数据质量 27
2.2.4 找出有效的实现方法 28
2.3 数据库开发过程 28
2.3.1 数据库开发的各个阶段 28
2.3.2 数据库开发技能 32
2.4 数据库开发工具 33
2.4.1 图解 33
2.4.2 文档记录 33
2.4.3 分析 34
2.4.4 原型工具 34
2.4.5 商业CASE工具 34
2.5 小结 37
2.6 概念总汇 38
2.7 复习题 38
2.8 练习题 40
2.9 资源 40
第Ⅱ部分 了解关系数据库
第3章 关系数据模型 43
3.1 基本元素 43
3.1.1 表 44
3.1.2 将表连接起来 45
3.1.3 交替术语 47
3.2 完整性规则 47
3.2.1 完整性规则的定义 47
3.2.2 完整性规则的应用 48
3.2.3 引用完整性的图形表示 52
3.3 引用行的删除和更新操作 53
3.4 关系代数的操作符 54
3.4.1 限制和投影操作符 55
3.4.2 广义向量积操作符 56
3.4.3 连接操作符 57
3.4.4 外连接操作符 60
3.4.5 并、交和差操作符 63
3.4.6 汇总操作符 65
3.4.7 除操作符 66
3.4.8 操作符总结 67
3.5 小结 68
3.6 概念总汇 68
3.7 复习题 69
3.8 练习题 70
3.9 资源 73
附录 3.A 大学数据库各表的
CREATE TABLE语句 73
附录 3.B SQL:2003语法一览 74
附录 3.C 生成主键的唯一值 76
第4章 SQL查询公式化 78
4.1 背景信息 78
4.1.1 SQL的发展历程 79
4.1.2 SQL的作用范围 80
4.2 开始使用SELECT语句 81
4.2.1 单表问题 85
4.2.2 连接表 90
4.2.3 用GROUP BY和HAVING
汇总表 91
4.2.4 改进结果的显示效果 95
4.3 SELECT语句的概念
评估过程 97
4.4 查询公式化的关键问题 102
4.5 利用实例提高查询公式化
技能 104
4.5.1 利用向量积连接多个表 104
4.5.2 利用连接操作符连接
多个表 107
4.5.3 自身连接和两表间的
多连接 110
4.5.4 结合连接和分组 111
4.5.5 SQL中的传统集合操作符 112
4.6 SQL修改语句 114
4.7 小结 116
4.8 概念总汇 116
4.9 复习题 120
4.10 练习题 121
4.11 资源 131
附录4.A SQL:2003语法总结 131
附录4.B 主流DBMS产品的
语法差别 133
第Ⅲ部分 数 据 建 模
第5章 理解实体关联图 137
5.1 实体关联图简介 138
5.1.1 基本符号 138
5.1.2 关联基数 139
5.1.3 比较关系数据库图 141
5.2 理解关联 142
5.2.1 标识依赖(弱实体和
标识关联) 142
5.2.2 关联模式 143
5.2.3 1-M和M-N关联的
等价性 147
5.3 实体关联模型的分类 148
5.3.1 归纳层次 148
5.3.2 不相交和完全约束 149
5.3.3 多个归纳级别 149
5.4 表示符号总结和图形规则 150
5.4.1 表示符号一览 150
5.4.2 图形规则 152
5.5 与其他表示法的比较 155
5.5.1 ERD的变体 156
5.5.2 UML中的类图 156
5.6 小结 158
5.7 概念总汇 159
5.8 复习题 159
5.9 练习题 160
5.10 资源 165
第6章 为商业数据库开发
数据模型 166
6.1 分析业务数据建模问题 167
6.1.1 商业信息需求分析指南 167
6.1.2 分析“自来水公司”数据
库的信息需求 169
6.2 进一步完善ERD 172
6.2.1 将属性转化成实体类型 172
6.2.2 分开混合属性 172
6.2.3 扩展实体类型 172
6.2.4 将弱实体转化成强实体 173
6.2.5 添加历史细节 174
6.2.6 添加归纳层次 175
6.2.7 转化方式一览 176
6.3 最终完成ERD 176
6.3.1 ERD的文档记录 177
6.3.2 查找常见设计错误 178
6.4 将ERD转换成关系表 181
6.4.1 基本转换规则 181
6.4.2 转换可选的1-M关联 184
6.4.3 转换归纳层次 186
6.4.4 转换1-1关联 188
6.4.5 一个综合转换实例 188
6.5 小结 190
6.6 概念总汇 191
6.7 复习题 191
6.8 练习题 192
6.9 资源 208
第Ⅳ部分 关系数据库设计
第7章 关系表的规范化 211
7.1 关系数据库设计概述 211
7.1.1 避免更改异常 212
7.1.2 函数依赖 213
7.2 范式 215
7.2.1 第一范式 216
7.2.2 第二和第三范式 217
7.2.3 Boyce-Codd范式 220
7.2.4 简单合成过程 222
7.3 完善M路关联 225
7.3.1 关联依赖 225
7.3.2 多值依赖和第四范式 227
7.4 更高级的范式 229
7.4.1 第五范式 229
7.4.2 域键范式 230
7.5 规范化的实际考虑事项 230
7.5.1 规范化在数据库开发过程
中的角色 230
7.5.2 分析规范化的目标 231
7.6 小结 232
7.7 概念总汇 232
7.8 复习题 233
7.9 练习题 234
7.10 资源 242
第8章 物理数据库设计 243
8.1 物理数据库设计概览 244
8.1.1 数据库的存储级别 244
8.1.2 目标和约束 245
8.1.3 输入、输出和环境 246
8.1.4 难点 247
8.2 物理数据库设计的输入 248
8.2.1 表配置文件 248
8.2.2 应用程序配置文件 249
8.3 文件结构 250
8.3.1 顺序文件 250
8.3.2 散列文件 252
8.3.3 Btree文件 254
8.3.4 位图索引 260
8.3.5 文件结构汇总 262
8.4 查询优化 262
8.4.1 转化任务 262
8.4.2 改进优化决策 266
8.5 索引选择 268
8.5.1 问题定义 268
8.5.2 折衷和难点 270
8.5.3 选择规则 271
8.6 物理数据库设计的其他选项 274
8.6.1 反向规范化 275
8.6.2 记录格式化 277
8.6.3 并行处理 277
8.6.4 其他用来提高性能的方法 279
8.7 小结 279
8.8 概念总汇 280
8.9 复习题 280
8.10 练习题 282
8.11 资源 289
第Ⅴ部分 关系数据库的应用
程序开发
第9章 高级SQL查询公式化 293
9.1 外连接问题 294
9.1.1 SQL支持外连接问题 294
9.1.2 混合使用内连接和外连接 297
9.2 理解嵌套查询 299
9.2.1 Type I嵌套查询 300
9.2.2 用来解决“差”问题的限
制性SQL查询 302
9.2.3 为“差”问题使用Type II
嵌套查询 306
9.2.4 FROM子句中的嵌套查询 310
9.3 除问题查询公式化 312
9.3.1 回顾除操作符 313
9.3.2 最简单的除问题 314
9.3.3 高级除问题 315
9.4 空值方面的考虑 318
9.4.1 对简单条件的效果 318
9.4.2 对复合条件的影响 320
9.4.3 对聚合计算和分组的影响 321
9.5 小结 322
9.6 概念总汇 323
9.7 复习题 325
9.8 练习题 326
9.9 资源 331
附录9.A 在Microsoft Access中
使用多个语句 332
附录9.B SQL:2003语法汇总 332
附录9.C 用于外连接的Oracle
8i表示法 334
第10章 使用视图开发应用程序 336
10.1 背景 337
10.1.1 动机 337
10.1.2 视图定义 337
10.2 使用供检索的视图 340
10.2.1 在SELECT语句中
使用视图 340
10.2.2 处理带视图引用的查询 341
10.3 使用视图的更新 344
10.3.1 单表可更新视图 344
10.3.2 多表可更新视图 347
10.4 在层次表单中使用视图 351
10.4.1 层次表单的含义 351
10.4.2 层次表单和表之间
的关联 352
10.4.3 层次表单的查询公式化
技术 353
10.5 在报表中使用视图 356
10.5.1 层次报表的含义 356
10.5.2 层次报表的查询
公式化技术 358
10.6 小结 359
10.7 概念总汇 360
10.8 复习题 361
10.9 练习题 362
10.10 资源 370
附录10.A SQL:2003语法概要 370
附录10.B Oracle中的可更新
连接视图规则 371
第11章 存储过程和触发器 372
11.1 数据库编程语言和PL/SQL 373
11.1.1 数据库编程语言的动机 373
11.1.2 设计问题 375
11.1.3 PL/SQL语句 377
11.1.4 在匿名块中执行
PL/SQL语句 383
11.2 存储过程 385
11.2.1 PL/SQL过程 385
11.2.2 PL/SQL函数 388
11.2.3 使用游标 391
11.2.4 PL/SQL包 395
11.3 触发器 398
11.3.1 触发器的动机和分类 399
11.3.2 Oracle触发器 399
11.3.3 理解触发器执行 410
11.4 小结 413
11.5 概念总汇 413
11.6 复习题 414
11.7 练习题 416
11.8 资源 419
附录11.A SQL:2003语法摘要 419
第Ⅵ部分 高级数据库开发
第12章 视图设计和集成 423
12.1 视图设计和集成的动机 424
12.2 使用表单设计视图 425
12.2.1 分析表单 425
12.2.2 使用表单分析
M路关联 431
12.3 视图集成 434
12.3.1 增量和并行集成方法 434
12.3.2 视图集成示例 437
12.4 小结 439
12.5 概念总汇 440
12.6 复习题 440
12.7 练习题 441
12.8 资源 443
第13章 “助学贷款”有限公司的
数据库开发 444
13.1 案例描述 445
13.1.1 简介 445
13.1.2 工作流程 445
13.2 概念数据建模 449
13.2.1 贷款起始表单的ERD 449
13.2.2 在添加公开信之后
的增量集成 451
13.2.3 在添加对账单后的
增量集成 452
13.2.4 在添加贷款活动报表之
后的增量集成 453
13.3 完善概念模式 454
13.3.1 模式转换 454
13.3.2 规范化 456
13.4 物理数据库设计和应用
程序开发 457
13.4.1 应用程序和表配置文件 457
13.4.2 索引选择 460
13.4.3 派生数据和反向规范
化决策 461
13.4.4 其他实现决策 461
13.4.5 应用程序开发 461
13.5 小结 463
13.6 概念总汇 464
13.7 复习题 464
13.8 练习题 465
附录13.A 表单和报表字段的
术语表 466
附录13.B CREATE TABLE
语句 468
第Ⅶ部分 管理数据库环境
第14章 数据和数据库管理 475
14.1 管理数据库的组织背景 476
14.1.1 数据库对管理决策
的支持 476
14.1.2 从信息资源管理到
知识管理 477
14.1.3 数据管理员和数据库
管理员的职责 478
14.2 数据库管理工具 479
14.2.1 安全性 479
14.2.2 完整性约束 483
14.2.3 触发器和存储过程
的管理 486
14.2.4 数据词典操作 488
14.3 数据库专家执行的处理 491
14.3.1 数据计划 491
14.3.2 选择和评估数据库
管理系统 492
14.4 管理数据库环境 496
14.4.1 事务处理 496
14.4.2 数据仓库处理 497
14.4.3 分布式环境 497
14.4.4 对象数据库管理 498
14.5 小结 499
14.6 概念总汇 499
14.7 复习题 501
14.8 练习题 503
14.9 资源 504
附录14.A SQL:2003语法概要 504
第15章 事务管理 507
15.1 数据库事务的基础知识 508
15.1.1 事务示例 508
15.1.2 事务属性 510
15.2 并发控制 511
15.2.1 并发控制的目标 511
15.2.2 干扰问题 512
15.2.3 并发控制工具 515
15.3 恢复管理 519
15.3.1 数据存储设备和
故障类型 519
15.3.2 恢复工具 520
15.3.3 恢复过程 522
15.4 事务设计问题 527
15.4.1 事务边界和热点 527
15.4.2 隔离级别 530
15.4.3 执行完整性约束的时机 531
15.4.4 保存点 533
15.5 工作流管理 533
15.5.1 对工作流的描述 533
15.5.2 支持技术 535
15.6 小结 536
15.7 概念总汇 537
15.8 复习题 537
15.9 练习题 539
15.10 资源 546
附录15.A SQL:2003语法汇总 546
第16章 数据仓库技术和管理 548
16.1 基本概念 549
16.1.1 事务处理与决策支持 549
16.1.2 数据仓库的特点 549
16.1.3 数据仓库的架构 550
16.1.4 数据挖掘 552
16.1.5 数据仓库的应用 553
16.2 数据的多维表示 554
16.2.1 多维数据立方体示例 555
16.2.2 多维术语 557
16.2.3 时间序列数据 558
16.2.4 数据立方体操作 559
16.3 支持数据仓库的
关系DBMS 561
16.3.1 多维数据的关系
数据建模 561
16.3.2 维度表示 565
16.3.3 用于多维数据的
GROUP BY子句
的扩展 568
16.3.4 物化视图和查询重写 577
16.3.5 存储和优化技术 583
16.4 维护数据仓库 585
16.4.1 数据源 585
16.4.2 维护数据仓库的工作流 586
16.4.3 管理刷新过程 588
16.5 小结 590
16.6 概念总汇 590
16.7 复习题 591
16.8 练习题 592
第I部分:汽车保险问题 592
第II部分:商店销售问题 595
16.9 资源 597
第17章 客户端/服务器处理、并行
数据库处理和分布式
数据库 598
17.1 分布式处理和分布式
数据概述 599
17.1.1 客户端/服务器处理
的动机 599
17.1.2 并行数据库处理的动机 600
17.1.3 分布式数据的动机 601
17.1.4 优点和缺点摘要 601
17.2 客户端/服务器数据库架构 602
17.2.1 设计问题 602
17.2.2 架构描述 604
17.3 并行数据库处理 608
17.3.1 架构和设计问题 608
17.3.2 商业并行数据库技术 610
17.4 分布式数据库管理系统
的架构 612
17.4.1 组件架构 612
17.4.2 模式架构 614
17.5 分布式数据库处理的
透明性 616
17.5.1 动机实例 616
17.5.2 分段透明 618
17.5.3 位置透明 619
17.5.4 本地映射透明 621
17.5.5 Oracle分布式数据库
的透明 623
17.6 分布式数据库处理 624
17.6.1 分布式查询处理 624
17.6.2 分布式事务处理 626
17.7 小结 629
17.8 概念总汇 629
17.9 复习题 630
17.10 练习题 631
17.11 资源 633
第18章 对象数据库管理系统 634
18.1 对象数据库管理的动机 634
18.1.1 复杂数据 635
18.1.2 类型系统不匹配 635
18.1.3 应用程序示例 636
18.2 面向对象的基本原理 637
18.2.1 封装 637
18.2.2 继承 638
18.2.3 多态 640
18.2.4 编程语言与DBMS 641
18.3 面向对象管理的架构 642
18.3.1 大对象和外部软件 642
18.3.2 专用媒体服务器 643
18.3.3 对象数据库中间件 644
18.3.4 用户定义类型的对象
关系数据库管理系统 645
18.3.5 面向对象的数据库
管理系统 646
18.3.6 对象数据库架构摘要 647
18.4 SQL:2003中的对象数据库
功能 648
18.4.1 用户定义的类型 648
18.4.2 表定义 650
18.4.3 子表系列 653
18.4.4 管理复杂对象和子
表系列 654
18.5 Oracle 10g中的对象数据库
功能 656
18.5.1 在Oracle 10g中定义
用户定义类型和类型表 656
18.5.2 在Oracle 10g中使用
类型表 659
18.5.3 Oracle 10g中的其他
对象功能 661
18.6 小结 663
18.7 概念总汇 664
18.8 复习题 664
18.9 练习题 666
18.10 资源 670
术语表 673
??
XII
数据库设计、应用开发和管理(第3版)
XVII
目 录