数据库设计教程
作者 : Thomas M.Connolly, Carolyn E.Begg
译者 : 何玉洁 梁琦
丛书名 : 计算机科学丛书
出版日期 : 2003-06-01
ISBN : 7-111-12151-1
定价 : 35.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 261
开本 : 16开
原书名 : Database Solutions: A Step by Step Guide to Building Databases
原出版社:
属性分类: 教材
包含CD :
绝版 : 已绝版
图书简介

数据库设计是数据库技术的一个重要方面。目前有很多书籍介绍了通用DBMS的理论知识,但阐述数据库设计过程的书籍却寥寥无几。本书作者具有丰富的数据库设计和教学经验,以通俗易懂的语言描述了分析、设计、实现数据库的整个设计过程,因此本书是一本真正意义上的数据库理论与实践相结合的书籍,可用于数据库基础理论之后的后续学习。
  本书主题:
  数据库的基本知识和相关概念
  全面介绍了数据库设计方法学
  用实例引导读者掌握从需求分析、逻辑建模到物理实现的全过程
  包含常用应用领域的数据模型,读者可以在此基础上建立自己的数据模型
  常用的数据建模表示法、重点介绍了UML表示法
  光盘中包含本书实例所用的脚本及常用数据模型

图书特色

Thomas M.Connolly英国Paisley大学信息与通信学院副院长,是世界上第一个可移植的商用数据库管理系统RAPPORT的设计者,也是LIFESPAN配置管理工具的设计者,他也因设计了这个管理工具而获得英国设计大奖(British Design Award)。
  Carolyn E.Begg英国Paisley大学讲师,专门从事生物学领域的数据库系统应用程序的研究。这两位作者曾合著了Addison-Wesley公司的畅销书《Database Systems》。

图书前言

背景
如今,数据库是信息系统的基本框架并且从根本上改变了许多公司和个人的工作方式。数据库技术经过多年的发展已经创造出了更强大、更易用的数据库系统,使用户无需具备开发高效系统的知识便可创建数据库并实现其应用。目前的参考文献中,有许多优秀的、阐述了数据库的部分发展生命周期的著作。然而,我们发现很少有书籍介绍数据库的分析、设计以及执行,并且很少有书籍采用专业和非专业读者都易懂的方式描述数据库的开发过程。
因此,本书的创作初衷是尽可能清楚地为读者解释如何分析、设计及实现数据库,包括从仅含几张表的简单数据库到包括数十至数百张表的大型数据库。实际上本书对进行理论研究人士也非常有用,而且简单明了地阐述了数据库设计的方法学。
本书所介绍的用于关系数据库管理系统(当今商业应用中的主要系统)的方法学已经通过业界和学术界多年的检验。这种方法学分为两个阶段:
逻辑数据库设计阶段。在这个阶段,我们开发了一个模型来描述所需要的内容,忽略了实现的细节。
物理数据库设计阶段。在这个阶段,我们确定如何在目标数据库管理系统(DBMS)实现这些需求,如Access、Paradox、Oracle、Informix或者SQL Server。
我们为每个阶段都提供了易学的步骤,缺乏经验的设计者可以按照所提供的步骤进行学习。此外,一些指导方针也可以用于完成这个学习过程。对于经验丰富的设计者,这种方法学更多地成为了一种框架或者检查列表,而其说明性则极少。
帮助理解数据库的设计
为了帮助读者应用方法学、理解重要的问题,我们提供了一个综合的工作示例,该示例是基于一家称为StayHome的录像出租公司,这个示例将贯穿本书始终。为更完善地补充方法学,我们在第18章和第19章中选取了另外一个名为Perfect Pets的宠物诊所作为示例。
为了帮助读者理解得更加深入,我们在附录D增加了数据库的解决方案(本书配套光盘上包含相应SQL脚本)。每个方案都有一个简短的介绍,读者可以参照这个介绍,在阅读样例之前试着自己进行数据库的设计。
常见的数据模型
在提供数据库设计经验的同时,附录D还提供了许多常见的且有用的数据模型。实际上,据统计约有1/3的数据模型包含了适用于大多数公司的公共结构,而其余的2/3则用于特殊产业或者特殊单位。因此,大多数数据库设计工作包含了重建那些被其他公司创建了多次的结构。这些具有特征性的模型也许并不能完全地满足你的公司的需求,但是,它们可以作为开发的起点,在此基础上,你可以建立更适合本公司特殊需要的模型。我们所提供的模型覆盖了以下的常见业务领域:
消费者订购。
库存控制。
资产管理。
项目管理。
课程管理。
人力资源管理。
工资管理。
统一建模语言
越来越多的公司正在采用标准化的方法。使用标准化的方法,他们可以选择一种特定的方法进行数据建模,并将这种方法贯穿于数据库开发过程的始终。本书采用一种常用于逻辑数据库设计的高级数据模型,这种模型是建立在实体-关系(ER)概念上的模型。目前,ER模型没有标准的表示法。大多数书籍在提及关系数据库管理系统(DBMS)的数据库设计时会用到以下两种传统的表示法之一:
Chen氏表示法,它由代表实体的矩形和代表关系的菱形以及连接矩形和菱形的连线组成。
Crow的Feet(标注)表示法,它由代表实体的矩形以及代表实体间关系的连线组成。连线一端的标注代表一对多的关系。
当今的CASE工具能很好地支持这两种表示法。但是,它们应用起来比较麻烦而且难以解释。在本书中,我们采用最新的面向对象建模语言中的类图表示法,这种建模语言称为UML(Unified Modeling Language,统一建模语言)。UML表示法结合了三种主要的面向对象设计的要素:Rumbaugh的OMT建模,Booch的面向对象分析和设计以及Jacobson的对象论。可以预计,UML将会成为一种标准,而且对象管理组(OMG)已经采用了UML作为对象方法的标准表示法。
我们相信这种表示法更易于理解和使用。为了便于理解,我们在本书光盘中提供了评估版本的可视化建模工具Rational Rose。这种工具支持UML,并且可以创建自己的ER图。
说明怎样执行一个设计
我们认为说明怎样将数据库设计转换为物理实现是非常重要的。在本书中,我们说明了如何用Microsoft Access 97实现第一个示例(名为StayHome的录像租借公司),第二个示例(名为Perfect Pets的宠物诊所)说明了如何用Oracle 8实现数据库设计。
本书的读者对象
哪些人应该阅读本书?我们试图以独立的方式编写这本书,但物理数据库设计是个例外,因为在这一部分,你应该很好地理解目标数据库管理系统是怎样运转的。我们的读者就是那些希望开发数据库的人,包括如下但并非仅仅如下所示的一些人:
信息模型设计者和数据库设计者。
数据库应用设计者和实现者。
数据库制造商。
数据和数据库管理者。
专门从事数据库设计的学者。
数据库专业的学生,包括大学生和研究生。
希望设计并开发数据库应用的人。
本书的结构
本书共有六个部分:
第一部分—相关知识介绍。在第1章和第2章,我们介绍了数据库管理系统和关系模型。第3章提供了数据库应用生命周期的概述。
第二部分—数据库分析与设计技术。我们在第4章讨论了数据库分析技术,说明了怎样用其中的一些技术来分析录像租借公司StayHome的需求。在第5章说明了怎样用UML画实体-关系(ER)图。怎样应用规范化规则的内容将在第6章中阐述。ER模型和规范化都是第三部分描述的方法学中非常重要的技术。
第三部分—逻辑数据库设计。我们用循序渐进的方式描述了逻辑数据库的设计。第1步,为每个公司的视图创建局部逻辑数据库。第2步,将每一个模型映射为数据库表。第3步,将局部数据模型组合起来创造本公司的全局数据模型。
第四部分—物理数据库设计。我们依然用循序渐进的方式介绍物理数据库的设计。第4步,为目标数据库管理系统设计一些基本表。第5步,选择文件组织和索引。第6步,引入受控冗余以获得改进的性能。第7步,设计安全性控制来保护数据免受未授权者的访问。最后,第8步,监控和调整操作系统。正如刚才所讲,我们将在Microsoft Access 97中说明怎样实现StayHome数据库应用。
第五部分—第二个实例。第二个宠物诊所示例贯穿于第18章和第19章。我们将说明怎样在Oracle 8中实现Perfect Pets 数据库的设计。
第六部分—附录。附录A说明了两种主要的ER表示法:Chen氏表示法和Crow的Feet表示法。附录B提供了方法学的总结。附录C提供了文件组织和存储结构的背景知识,这些知识可以帮助读者理解第三部分所讲的物理数据库设计方法学的某些内容。附录D提供了15种常见的数据模型。
为增强本书的可读性,本书采用了下列风格和结构:
在每章的开头,清晰地给出每章的主题。
在每章的结束,概括主要知识点。
引入的每一个重要概念都被清晰地定义。
采用一系列的注意和提示来显示重点。
大量地使用图表,以便更清晰地说明和表示概念。
非常实用的方式,每章都包含一些工作示例来说明这些知识点的使用方式。
书末附有术语表,可以快速找到相关概念,还提供了每一部分所涉及概念的参考文献。
随书光盘
随书光盘包含下述内容:
方便地得到最新的可视化模型工具Rational Rose的评估版本。
StayHome数据库应用在Microsoft Access 97中的实现。
创建Perfect Pets数据库应用实现的SQL脚本。这个脚本可用来在许多关系数据库管理系统(如Oracle、Informix和SQL)中创建数据库。
附录D中常见的数据模型的SQL脚本可用于为数据库应用创建相应的基本表。而且,这些脚本还可用来在许多其他关系数据库管理系统中创建数据库。
修正与建议
由于此类型的书籍难免存在错误,因此你的指正对本书以后的再版很重要。请把意见、改正和有建设性的建议发邮件至:thomas.connolly@paisley.ac.uk。

译者简介

何玉洁 梁琦:暂无简介

译者序

随着计算机技术的飞速发展和信息管理领域的日益扩大,数据库技术得到了空前的发展,数据库技术的应用领域也日趋扩大和深入。数据库是用科学的方法管理和组织数据的技术,是计算机科学的一个重要分支。
本书讲述了数据库设计方法学。全书由六个部分组成。第一部分由第1章到第3章组成,分别介绍了数据库使用示例,数据库管理系统的功能,关系数据库的一些基本概念,包括关系数据模型和关系完整性,以及数据库应用程序的生命周期等。这部分内容是后续数据库设计部分的预备知识。第二部分由第4章到第6章组成,介绍了进行数据库设计首先要做的事情—事实发现,包括事实发现所使用的技术和方法,整理所发现的事实并建立数据库模型的方法以及如何在数据模型的基础上设计规范化的关系数据库表。第三部分由第7章到第11章组成,第7章全面介绍了本书使用的数据库设计方法学,从第8章到第10章用一个完整的例子介绍了逻辑数据库设计过程中的三个步骤,第11章进一步介绍了一些高级建模技术。第四部分由第12章到第17章组成,其中从第12章到第16章使用前面讲述逻辑数据库设计的例子介绍了物理数据库设计阶段的五个步骤,第17章介绍了使用SQL和QBE实现所举示例的查询。第五部分由第18章和第19章组成,该部分进一步利用了前边章节介绍的数据库设计方法学的步骤,用另一个例子再次说明了本书所介绍的数据库设计方法学的应用。第六部分包含四个附录。附录A介绍了其他一些较常用的表示数据模型的方法。附录B对本书所介绍的数据库设计方法学中的步骤进行了归纳和总结,便于读者快速参考和查阅。附录C介绍了一些常用的数据库文件和索引的组织方式。附录D介绍了15个常用应用领域的数据模型,读者在解决类似问题时可以参考这些模型。
本书的作者从事过多年的数据库方面的工作,具有丰富的数据库设计和使用经验,因此本书将数据库技术与实际应用密切地结合起来,弥补了现在很多数据库图书重视理论介绍,忽视解决实际问题的缺点。本书融合了作者多年的数据库设计、开发和使用的经验,因此所介绍的内容非常有效和实用,非常适合数据库设计人员使用。
本书将抽象枯燥的数据库设计方法用一个很容易理解的例子贯穿起来,一点一点地展开,直至使用完数据库设计方法学的全部步骤,因此很容易激发起读者的阅读兴趣,使读者能更好地理解这些方法学的运用。在读者已经基本熟悉了这些方法学的过程之后,再举出第二个例子,第二个例子快速地将前边介绍的方法学又贯穿一遍,使读者能进一步加深对方法学的理解。此外,本书图文并茂,读者能很直观地理解数据库设计的概念和方法。
本书适合于有一定数据库理论基础,又非常希望能将理论知识应用到实际使用过程中的读者阅读,尤其适合于那些在数据库设计中不知如何下手或者经验不足的数据库设计新手参考。本书可作为学习完数据库理论知识之后的后续学习内容,也可作为数据库设计和开发人员的参考书。本书也可作为大专院校数据库课程的教材或参考读物。
本书全书由何玉洁负责组织翻译和审校,主要由何玉洁和梁琦翻译完成,李艳华、余佐、崔晗、杨永刚、种王景、刘斌、卢立能、陈正林、何玉书、李迎、李钊等参加了本书的部分翻译工作。
限于译者水平,译文中难免有疏漏和不妥之处,欢迎读者批评指正。
译  者
2002年11月

图书目录

第一部分  相关知识介绍
第1章  引言 1
1.1  数据库系统使用示例 1
1.2  数据库概述 2
1.2.1  数据库 2
1.2.2  数据库管理系统 3
1.2.3  视图 3
1.2.4  DBMS环境的组成 4
1.2.5  DBMS架构 4
1.3  DBMS的功能 6
1.4  数据库设计 9
1.5  DBMS的优缺点 9
1.6  本章小结 10
第2章  关系模型 12
2.1  数据模型 12
2.2  术语 12
2.2.1  关系数据结构 13
2.2.2  关系表的属性 14
2.2.3  关系键 15
2.2.4  关系数据库的表示 16
2.3  关系完整性 18
2.3.1  空值 18
2.3.2  实体完整性 19
2.3.3  参照完整性 19
2.3.4  业务规则 19
2.4  关系语言 19
2.5  本章小结 21
第3章  数据库应用程序生命周期 22
3.1  软件危机 22
3.2  信息系统生命周期 23
3.3  数据库应用程序生命周期 23
3.4  数据库规划 23
3.5  系统定义 23
3.6  需求的收集与分析 26
3.7  数据库设计 28
3.8  选择DBMS 28
3.9  应用程序设计 28
3.9.1  事务设计 29
3.9.2  用户界面设计 29
3.10  构建原型 30
3.11  实现 30
3.12  数据转换与加载 30
3.13  测试 31
3.14  操作性维护 31
3.15  本章小结 31
第二部分  数据库分析与设计技术
第4章  事实发现 33
4.1  什么时候使用事实发现技术 33
4.2  收集哪些事实 34
4.3  事实发现技术 34
4.3.1  检查文档 35
4.3.2  面谈 35
4.3.3  观察业务的运转 36
4.3.4  研究 36
4.3.5  问卷调查 36
4.4  StayHome案例研究 37
4.4.1  StayHome案例研究—概览 37
4.4.2  StayHome案例研究—数据库规划 40
4.4.3  StayHome案例研究—系统定义 44
4.4.4  StayHome案例研究—需求收集
和分析 46
4.4.5  StayHome案例研究—数据库设计 51
4.5  本章小结 51
第5章  实体-关系建模 52
5.1  实体 52
5.2  关系 53
5.2.1  关系的度 54
5.2.2  递归关系 54
5.3  属性 54
5.3.1  简单属性和复合属性 55
5.3.2  单值属性和多值属性 55
5.3.3  派生属性 55
5.3.4  键 56
5.4  强实体和弱实体 57
5.5  关系的多样性约束 57
5.5.1  一对一关系 58
5.5.2  一对多关系 59
5.5.3  多对多关系 59
5.5.4  非二元关系的多样性约束 60
5.5.5  基数约束与参与约束 62
5.6  关系上的属性 62
5.7  ER模型中的设计问题 63
5.7.1  扇形陷阱 63
5.7.2  深坑陷阱 64
5.8  本章小结 66
第6章  规范化 67
6.1  简介 67
6.2  数据冗余和更新异常 67
6.2.1  插入异常 68
6.2.2  删除异常 69
6.2.3  更新异常 69
6.3  第一范式 69
6.4  第二范式 71
6.5  第三范式 74
6.6  本章小结 75
第三部分  逻辑数据库设计
第7章  方法学概述 77
7.1  数据库设计方法学简介 77
7.1.1  什么是数据库设计方法学 77
7.1.2  数据库设计方法学的目标 78
7.1.3  为什么构建数据模型 78
7.1.4  数据库设计中的关键成功因素 80
7.2  数据库设计方法学概述 80
7.3  本章小结 82
第8章  逻辑数据库设计—步骤1 84
8.1  为每个视图构建逻辑数据库模型 84
8.1.1  步骤1.1:标识实体 85
8.1.2  步骤1.2:标识关系 86
8.1.3  步骤1.3:标识实体或关系的
有关属性 89
8.1.4  步骤1.4:确定属性域 92
8.1.5  步骤1.5:确定候选键和主键属性 92
8.1.6  步骤1.6:特化/泛化实体 94
8.1.7  步骤1.7:删除与关系模型不相容
的特性 94
8.1.8  步骤1.8:检查模型是否支持
用户事务 100
8.2  本章小结 101
第9章  逻辑数据库设计—步骤2 102
9.1  步骤2:为每个局部逻辑数据模型
创建并检查表 102
9.1.1  步骤2.1:为局部逻辑数据模型
创建表 102
9.1.2  步骤2.2:用规范化方法检查表
结构 110
9.1.3  步骤2.3:检查表是否支持用户
事务 110
9.1.4  步骤2.4:定义完整性约束 112
9.1.5  步骤2.5:与用户讨论局部逻辑
数据模型 115
9.2  本章小结 115
第10章  逻辑数据库设计—步骤3 116
10.1  StayHome的业务视图 116
10.1.1  用户的需求说明 116
10.1.2  局部逻辑数据模型 117
10.2  步骤3:构建并检查全局逻辑
数据模型 118
10.2.1  步骤3.1:合并局部逻辑数据
模型为全局模型 119
10.2.2  步骤3.2:检查全局逻辑数据
模型 124
10.2.3  步骤3.3:检查未来的可变性 124
10.2.4  步骤3.4:与用户讨论全局逻辑
数据模型 124
10.3  本章小结 124
第11章  高级建模技术 125
11.1  特化/泛化 125
11.1.1  超类和子类 125
11.1.2  超类/子类关系 125
11.1.3  属性继承 126
11.1.4  特化过程 127
11.1.5  泛化过程 127
11.1.6  超类/子类关系的约束 129
11.2  创建表达特化/泛化的表 130
11.3  本章小结 131
第四部分  物理数据库设计
第12章  物理数据库设计—步骤4 133
12.1  逻辑与物理数据库设计的比较 134
12.2  物理数据库设计方法学概述 134
12.3  步骤4:为目标DBMS转换全局
逻辑数据模型 135
12.3.1  步骤4.1:为目标DBMS设计
基本表 135
12.3.2  步骤4.2:为目标DBMS设计
业务规则 140
12.4  本章小结 143
第13章  物理数据设计—步骤5 144
13.1  理解系统资源 144
13.2  步骤5:设计物理表示 145
13.2.1  步骤5.1:分析事务 146
13.2.2  步骤5.2:选择文件组织方式 150
13.2.3  步骤5.3:选择索引 151
13.3  使用Microsoft Access 97的StayHome
文件的组织与索引 154
13.3.1  选择索引指南 154
13.3.2  StayHome的索引 155
13.4  本章小结 156
第14章  物理数据库设计—步骤6 157
14.1  步骤6:受控冗余的考虑 157
14.1.1  步骤6.1:考虑派生的数据 158
14.1.2  步骤6.2:同时考虑重复列或
连接表 159
14.2  本章小结 167
第15章  物理数据库设计—步骤7 169
15.1  步骤7:设计安全机制 169
15.1.1  步骤7.1:设计用户视图 169
15.1.2  步骤7.2:设计访问规则 170
15.2  本章小结 174
第16章  物理数据库设计—步骤8 175
16.1  步骤8:监视并调整操作系统 175
16.2  本章小结 176
第17章  使用SQL和QBE查询
StayHome示例 177
17.1  Microsoft SQL和QBE介绍 177
17.1.1  SQL 177
17.1.2  QBE 178
17.2  StayHome查询示例 178
17.3  本章小结 184
第五部分  第二个实例
第18章  Perfect Pets—逻辑数据库设计 185
18.1  Perfect Pets实例 185
18.1.1  数据需求 185
18.1.2  事务需求 187
18.2  使用逻辑数据库设计方法 187
18.2.1  步骤1.1:标识实体 188
18.2.2  步骤1.2:标识关系 188
18.2.3  步骤1.3:标识实体或关系的
有关属性 189
18.2.4  步骤1.4:确定属性域 191
18.2.5  步骤1.5:确定候选键和主键属性 192
18.2.6  步骤1.6:特化和泛化实体 192
18.2.7  步骤1.7:删除与关系模型不相容
的特性 192
18.2.8  步骤1.8:检查模型是否支持
用户事务 194
18.2.9  步骤2.1:为局部逻辑数据模型
创建表 194
18.2.10  步骤2.2:用规范化方法检查表 194
18.2.11  步骤2.3:检查模型是否支持
用户事务 194
18.2.12  步骤2.4:定义完整性约束 197
18.2.13  步骤2.5:与用户一起讨论局部
逻辑数据模型 198
第19章  Perfect Pets—物理数据库设计 199
19.1  使用物理数据库设计方法学 199
19.1.1  步骤4.1:为目标DBMS设计基本表 199
19.1.2  步骤4.2:为目标DBMS设计
业务规则 202
19.1.3  步骤5.1:分析事务 204
19.1.4  步骤5.2:选择文件组织方式 204
19.1.5  步骤5.3:选择索引 211
19.1.6  步骤6.1:考虑派生的数据 212
19.1.7  步骤6.2:同时考虑重复列或
连接表 212
19.1.8  步骤7.1:设计用户视图 212
19.1.9  步骤7.2:设计访问规则 213
19.2  后续内容介绍 216
第六部分  附   录
附录A  可选的数据建模表示法 217
附录B  数据库设计方法学总结 222
附录C  文件组织和索引 227
附录D  常用数据模型 234
术语表 256
参考文献 262

教学资源推荐
作者: Abraham Silberschatz Henry F.Korth S.Sudarshan
作者: [美]尼娜·朱梅尔(Nina Zumel) 约翰·芒特(John Mount) 著
作者: 何宁 黄文斌 熊建强
作者: (美)Abraham Silberschatz,Henry F.Korth,S.Sudarshan 著