数据库设计
作者 : (美)Ryan K.Stephens Ronald R.Plew
译者 : 何玉洁等译
丛书名 : 计算机科学丛书
出版日期 : 2001-09-01
ISBN : 7-111-09056-X
定价 : 35.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 333
开本 : 16开
原书名 : Datebase Dessign
原出版社:
属性分类: 教材
包含CD :
绝版 : 已绝版
图书简介

本书是一本介绍数据库设计技术的著作,数据库设计是开发一个好的数据库应用系统的基础,本书运用大量实例对数据库设计过程中所涉及到的技术和知识进行了详细的介绍。本书的内容包括:数据库的基本原理、常用的数据库模型、数据库设计方法和数据库生命周期;并介绍了如何获取业务需求以及根据业务需求建立业务模型并生成ERD,如何减少冗余数据,如何保证数据的完整性,如何设计视图以及数据库安全性方面的考虑等。
本书的最大特点就是所讲授的概念与实例紧密结合,书中运用了大量的图来说明问题,便于读者理解。
本书适合于作为从事或希望从事数据库设计的人士进行数据库设计的指南,也可作为大学本科学生学习数据库理论知识后的补充学习内容,同时也是讲授数据库课程的教师的一本非常有价值的参考书。

图书特色

1. 关于作者 Ryan K.Stephens  是美国印地安纳州首府—Indianapolis印第安纳波利斯的Perpetual技术公司的董事长和CEO。该公司主要从事Oracle数据库技术咨询和培训。同时,Stephens先生还在印地安纳州的Indiana University-Purdue University,以及在国防部和印地安纳中部商业区的一些公司中从事Oracle教学工作。Stephens先生是一位经验丰富的Oracle数据库管理员,他拥有10多年的Oracle数据库管理和开发经验。Stephens先生还参与了Sams出版社出版的诸多书籍的编写工作,其中包括:《Sams Teach Yourself SQL in 21 Days》(第2、第3版)、《Sams Teach Yourself SQL in 24 Hours》(第1、第2版)和《Oracle Unleashed》一书的部分章节。Stephens先生还是印地安纳国家军事防卫部的程序员和系统分析员。他和他的太太Tina、儿子Daniel以及即将出生的孩子生活在Indianapolis。 Ronald R.Plew  是Perpetual技术公司的副董事长和CIO。Plew先生在Indiana University-Purdue University从事Oracle教学工作,同时还为国防部提供Oracle数据库管理员的技术支持和咨询。他毕业于Indiana Institute of Technology。Plew先生还是印地安纳国家军事防卫部成员,在那里他是一名程序员和系统分析员。Plew先生从事Oracle相关工作15年。他也是《Sams Teach Yourself SQL in 21 Days》(第2、第3版)、《Sams Teach Yourself SQL in 24 Hours》(第1、第2版)的合著者。Plew先生和他的太太Linda生活在Indianapolis。 2. 相关作者 Charles Mesecher  1976年毕业于Western Illinois大学,获心理学和教育学学士学位,后又获该大学的MBA学位。目前,Mesecher先生受雇于美国国防部,从事防务财政数据库及其相关数据库系统管理员工作。他还是Indianapolis University信息系统系的助教,并且在Indiana University-Purdue University从事Oracle数据库的培训工作。同时,Mesecher先生还是Perpetual技术公司的技术指导。 Christopher Zeis  是Perprtual技术公司的技术总监。他同样也是Oracle数据库系统管理员,负责技术咨询、数据库配置和系统性能调试。Zeis先生是Indiana University-Purdue University的Oracle数据库课程讲师。同时,他也是印地安纳国家军事防卫部的Oracle数据库系统管理员。他和他的太太Shannon生活在Indianapolis。 John Newport  是Purdue University的理论物理学博士。获得博士学位后,他作为航空电子设备软件顾问,在美国海军工作了11年。Newport博士是Newport Systems公司的创始人,该公司主要从事软件需求分析和设计。Newport博士是电子电气工程师协会(IEEE)成员。他的太太Nancy是一个在线数据库系统公司的经理。

译者简介

何玉洁等译:暂无简介

译者序

计算机技术的发展是一个不断创新的过程,没有任何一种技术的发展速度能够赶上计算机技术的发展。而近几年,数据库技术是计算机科学技术发展最快的领域之一,同时也是应用最广泛的技术之一,在信息管理自动化程度日益提高的今天,数据库技术的应用领域也渗透到了我们工作和生活中的每一个方面。
本书是一本讲授数据库设计方法和技术的图书,本书的作者都从事过多年的数据库方面的技术工作,具有丰富的数据库设计和使用经验,曾出版过多部数据库方面的著作。虽然现在已经有许多关于数据库设计方面的书籍,但相当一部分书籍所介绍的技术都已经落后或理论偏多而与实际使用情况脱节,而且相当的书籍都没有介绍在实际数据库设计中很关键的概念,有些书只是泛泛地介绍了数据库的一般概念。正是由于这些原因,我们翻译了这本书,由于作者具有很丰富的数据库设计、开发和使用经验,因此他们所写书籍的内容都是开发人员在设计数据库时必须要面临和使用的非常实用的技术。这本书涵盖了以往书籍所忽略的特性,并包含了关系数据库不断发展的新特性。
本书共由四篇和五个附录组成。第一篇“数据库设计概述”主要介绍了数据库的基本原理、常用的数据库模型、数据库设计方法和数据库生命周期;第二篇“业务需求分析和建模”介绍了如何获取业务需求、如何根据这些需求建立业务模型、如何生成用户和开发人员易于交流的ERD以及减少冗余数据的方法;第三篇“数据库设计”介绍了如何将已建好的业务模型转换成关系数据库模型的表、如何保证数据的完整性以及如何设计视图;第四篇“设计之后的工作”介绍了一般数据库书籍经常忽略的问题:数据库的安全、实现数据库后的更改需求以及对过时数据库的处理。附录部分包含了一些数据库设计的实例以及一些流行的数据库设计工具等。
本书的最大特点就是所讲授的概念与实例紧密结合,图文并茂,帮助读者更好地领会数据库设计的精髓,相信读者学完本书之后一定会对数据库设计有一个比较清楚的认识,如果在实践当中能有意识地运用这些方法,一定会获益匪浅。本书非常适合于具有一定的数据库基础,但在数据库设计中又感觉不知如何下手的人士使用,它可以作为学习完数据库基础理论知识的学生的后续学习内容,也可作为数据库设计和开发人员的指南。
本书主要由何玉洁、武欣、邓一凡翻译,具体翻译情况为:第1、2、3、4、5、6、7章由武欣负责翻译,第8、9、10、11章由邓一凡负责翻译,第12、13、14、15、16、17及附录部分由何玉洁负责翻译。全书由何玉洁负责审校。参加本书翻译的还有:陈正林、迟育强、耿胜华、李迎等。由于译者水平有限,翻译不当之处,恳请读者批评指正。


译 者
2001年3月

图书目录

译者序
作者介绍
绪论
第一篇   数据库设计概述
第1章  数据库基本原理 1
1.1  数据库是什么 2
1.1.1  数据库的用途 3
1.1.2  数据库的使用者 4
1.2  数据库环境 5
1.2.1  主机环境 5
1.2.2  客户/服务器环境 6
1.2.3  互联网计算环境 6
1.3  数据库的起源 7
1.3.1  业务规则 8
1.3.2  业务处理 8
1.3.3  信息与数据 8
1.3.4  需求分析 9
1.3.5  实体 9
1.3.6  属性 9
1.3.7  业务处理的再工程化 10
1.4  数据库组成 10
1.4.1  数据库模式 10
1.4.2  表 11
1.4.3  列 11
1.4.4  行 12
1.4.5  数据类型 12
1.5  数据库的完整性 13
1.5.1  主键码 13
1.5.2  外键码 13
1.5.3  关系 14
1.6  数据库设计的重要概念 14
1.6.1  设计方法 14
1.6.2  将业务模型转换成数据库设计 15
1.6.3  应用软件的设计 15
1.7  优秀的数据库的特点 16
1.7.1  满足数据存储需求 16
1.7.2  数据的可用性 17
1.7.3  数据保护 17
1.7.4  数据的准确性 18
1.7.5  合适的数据库性能 18
1.7.6  尽可能减少冗余数据 19
1.8  小结 19
第2章  数据库模型概述 21
2.1  数据库类型 21
2.1.1  平面文件数据库模型 22
2.1.2  层次数据库模型 23
2.1.3  网状数据库模型 24
2.1.4  关系数据库模型 25
2.1.5  面向对象数据库模型 26
2.1.6  对象关系数据库模型 28
2.2  可供选择的流行数据库 29
2.2.1  关系数据库的特点 29
2.2.2  关系数据库的对象 30
2.2.3  SQL:关系数据库语言 30
2.2.4  关于数据库模型的网上信息资源 31
2.3  选择合适的数据库 32
2.4  小结 32
第3章  数据库设计方案 34
3.1  什么是数据库设计 34
3.2  数据库设计的重要性 35
3.3  数据库设计方案的制定 36
3.3.1  任务描述 36
3.3.2  制定工作计划 38
3.3.3  设置“里程碑”和时间期限 38
3.3.4  组建设计小组和分配任务 39
3.4  设计成功的数据库系统所具备的特点 40
3.5  设计方法概述 41
3.6  逻辑建模与物理建模 42
3.6.1  逻辑建模 42
3.6.2  物理建模 43
3.7  自动化设计工具 44
3.7.1  为什么要使用自动化设计工具 45
3.7.2  自动化设计工具的功能 46
3.8  小结 47
第4章  数据库设计生命周期 49
4.1  系统开发过程 49
4.1.1  传统的设计方法 50
4.1.2  Barker方法 54
4.1.3  改进的设计方法 58
4.2  设计过程概述 60
4.2.1  定义数据 60
4.2.2  创建数据结构 61
4.2.3  定义数据关系 61
4.2.4  定义视图 62
4.3  现有数据库的二次设计 63
4.4  数据库生命周期概述 65
4.4.1  开发环境 65
4.4.2  测试环境 67
4.4.3  产品环境 67
4.5  小结 69
第二篇   业务需求分析和建模
第5章  业务需求和系统需求的获得 71
5.1  需求类型 72
5.1.1  业务需求 72
5.1.2  系统需求 73
5.2  需求分析概述 74
5.3  业务需求的确定 74
5.3.1  谁有“发言权” 75
5.3.2  调研客户 78
5.3.3  调研最终用户 80
5.3.4  研究现有的业务处理 82
5.4  业务需求分析 82
5.5  确定系统需求 84
5.5.1  标识数据 84
5.5.2  数据的分类 85
5.5.3  建立字段列表 85
5.5.4  建立数据关系 87
5.6  确定数据库设计方向 88
5.6.1  确定数据库模型的类型 88
5.6.2  选择实现方法 88
5.6.3  定义命名规则和标准 89
5.6.4  制定工作进度和时间期限 90
5.6.5  设计小组成员工作的分配 90
5.7  先期文档 91
5.7.1  高层工作计划 92
5.7.2  策略文档 92
5.7.3  详细的需求文档 92
5.8  评估分析 93
5.9  小结 94
第6章  建立业务模型 96
6.1  理解业务建模概念 96
6.2  使用所收集的信息 96
6.3  业务模型图 97
6.4  通用业务模型 99
6.5  业务模型的组成示例 100
6.6  小结 101
第7章  理解实体和关系 103
7.1  实体和实体关系概述 103
7.1.1  一对一关系 104
7.1.2  一对多关系 105
7.1.3  多对多关系 106
7.1.4  递归关系 107
7.1.5  强制关系 108
7.1.6  可选关系 109
7.2  设计过程中对实体的转换 109
7.3  用户如何访问数据 110
7.3.1  避免拙劣的关系结构 112
7.3.2  理解关系和表的连接 112
7.4  小结 118
第8章  规范化:消除冗余数据 120
8.1  规范化概览 120
8.1.1  规范化的优点 122
8.1.2  规范化的缺点 123
8.2  范式概览 123
8.2.1  第一范式:码 124
8.2.2  第二范式:全部码 125
8.2.3  第三范式:仅仅是码 126
8.2.4  Boyce-Codd范式 127
8.2.5  第四范式 127
8.2.6  第五范式 128
8.3  反规范化 128
8.4  规范化示例1 130
8.5  规范化示例2 132
8.6  自检测规范化 135
8.7  小结 136
第9章  实体联系模型 138
9.1  商务实体的逻辑模型 139
9.2  在ERD中构造实体 139
9.3  定义实体联系 140
9.3.1  查看是否存在联系 141
9.3.2  确定联系的动词 142
9.3.3  确定联系的可选性 142
9.3.4  确定联系的种类 143
9.3.5  验证联系 145
9.4  定义实体的属性 147
9.5  如何使用ERD 150
9.6  典型的ERD符号 151
9.7  TrainTech示例公司的ERD 152
9.8  小结 153
第10章  业务处理建模 154
10.1  业务处理是如何影响数据库设计的 154
10.2  定义业务处理 155
10.3  处理模型概览 156
10.3.1  处理模型 157
10.3.2  功能层次模型 158
10.3.3  数据流图 159
10.4  我们能从处理模型中得到什么 161
10.5  典型的处理模型符号 161
10.6  在数据库设计中使用处理模型 162
10.7  TrainTech公司的处理模型 163
10.8  小结 167
第三篇  数据库设计
第11章  设计关系表 169
11.1  表的类型 170
11.1.1  数据表 170
11.1.2  连接表 171
11.1.3  子表 173
11.1.4  校验表 173
11.2  表的基本结构 174
11.3  定义表 175
11.3.1  命名规则的回顾 177
11.3.2  创建表列表 178
11.4  确定列规范 178
11.4.1  常规层 179
11.4.2  物理层 179
11.4.3  逻辑层 180
11.4.4  建立列的列表 180
11.5  设计表需要考虑的因素 183
11.5.1  表设计中的引用完整性 184
11.5.2  表设计中逻辑模型的重要性 185
11.5.3  物理设计过程的反规范化处理 185
11.6  存储考虑 186
11.6.1  表空间的增加和调整 187
11.6.2  表大小的增加和监控 187
11.6.3  视图和复制 188
11.6.4  RAID 188
11.7  表的所有者 189
11.8  表设计的例子—TrainTech 190
11.9  小结 194
第12章  业务规则和数据完整性的结合 196
12.1  业务规则如何影响数据库 196
12.1.1  主码约束在SQL中的使用 198
12.1.2  外码约束在SQL中的使用 199
12.1.3  唯一性约束在SQL中的使用 200
12.1.4  检查约束在SQL中的使用 201
12.2  从逻辑模型中抽取业务规则 201
12.3  数据的本性 202
12.3.1  数据的数据类型 202
12.3.2  数据的唯一性 203
12.3.3  数据的大小写 203
12.3.4  数据的引用 204
12.4  维护历史数据 204
12.5  增强业务规则 205
12.5.1  使用触发器增强业务规则 206
12.5.2  使用确认表来增强业务规则 206
12.6  在N-层级上集成业务规则 207
12.7  使用AD工具产生约束 208
12.8  TrainTech示例公司的集成约束 209
12.9  小结 212
第13章  设计视图 214
13.1  视图概览 214
13.2  为什么要使用视图 216
13.2.1  数据总结 216
13.2.2  过滤数据 218
13.2.3  数据库安全性 219
13.2.4  数据转换 220
13.2.5  数据分割 221
13.3  视图性能以及其他的考虑 224
13.3.1  视图定义中的连接操作 225
13.3.2  视图限制 227
13.4  视图联系 227
13.5  管理视图 228
13.6  避免设计拙劣的视图 229
13.7  定义TrainTech公司的视图 230
13.8  小结 231
第14章  数据库设计概念的应用 232
14.1  数据库设计实例研究 233
14.2  分析反馈信息 235
14.2.1  杂货店员工的分类 235
14.2.2  数据需求的分析 236
14.3  任务描述和设计目标的确定 236
14.3.1  定义部门单位 237
14.3.2  定义数据 237
14.3.3  定义处理过程 238
14.4  开始数据库设计 241
14.4.1  构造ERD图 242
14.4.2  构造处理模型 249
14.4.3  定义表 251
14.4.4  定义约束 258
14.4.5  定义视图 259
14.5  小结 260
第四篇  设计之后的工作
第15章  实现数据库安全 261
15.1  安全性对数据库设计的重要性 261
15.2  谁需要访问数据库 262
15.2.1  访问级别 263
15.2.2  权限 264
15.2.3  角色 266
15.3  谁管理安全性 267
15.3.1  系统级管理 268
15.3.2  数据库级管理 268
15.3.3  应用程序级管理 270
15.4  使用视图和存储过程来增强安全性 271
15.5  设计安全管理系统 272
15.6  采取其他的预防措施 272
15.6.1  网络安全性 272
15.6.2  网络防火墙 273
15.6.3  加密套接字协议层 273
15.7  安全性中的漏洞 273
15.8  小结 274
第16章  更改控制 276
16.1  在数据库设计中更改控制的必要性 276
16.1.1  因业务需要而更改 277
16.1.2  因系统需要而更改 277
16.1.3  提高数据完整性 278
16.1.4  实现敏感数据的安全性 278
16.1.5  基于需求的测试 278
16.1.6  改进文档的一致性 278
16.1.7  改进系统性能 278
16.2  更改控制的形式化方法 279
16.2.1  版本控制 280
16.2.2  改变优先级 281
16.2.3  跟踪更改需求 281
16.3  更改控制的参与者 281
16.4  更改过程的实现 281
16.5  传播更改的基本指南 284
16.6  考虑使用自动化的配置管理工具 286
16.7  小结 287
第17章  过时数据库的分析和重设计 288
17.1  过时数据库概览 288
17.2  值得重新设计吗 289
17.2.1  用技术跟上当前的发展 290
17.2.2  硬件和软件需求 290
17.2.3  成本 291
17.2.4  业务中断 292
17.2.5  培训的考虑 292
17.2.6  性能问题 292
17.3  对现存数据库的评价 293
17.4  业务处理二次工程的结果 294
17.5  设计新系统 295
17.5.1  要使用的数据库设计方法 295
17.5.2  要使用的数据库软件 295
17.5.3  重新设计数据结构 296
17.5.4  移植遗留数据 296
17.6  遗留数据转换的例子 297
17.7  文档 298
17.8  新数据库的未来 298
17.9  小结 299
附  录
附录A  物理数据库实现示例 301
附录B  流行的数据库设计工具 314
附录C  有关数据库设计问题 315
附录D  数据库设计示例 323
附录E  表大小的考虑 332

教学资源推荐
作者: (加)Jiawei Han, Micheline Kamber
作者: [美] 翟成祥(Chengxiang Zhai) 肖恩·马森(Sean Massung) 著
作者: 郭晓平 朱鸣华 著
参考读物推荐