数据库设计

数据库设计
作 者: Ryan Stephens Ronald Plew 何玉洁
出版社: 机械工业出版社
丛编项: 计算机科学丛书
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: 数据库设计
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  Ryan K.Stephens 是美国印地安纳州首府—Indianapolis印第安纳波利斯的Perpetual技术公司的董事长和CEO。该公司主要从事Orscle数据库技术咨询和培训。同时,Stephens先生还在印地安纳州的Insiana University-Purdue University,以及在国防部和印地安纳中部商业区的一些公司从事Oracle教学工作。Stephens先生还参与了Sams出版社出版的诸多书籍的编写工作,其中包括:《Sams Teach Yourself SQL in 21 Days》、《Sams Teach Yourself SQL in 24 Hours》和《Oracle Unleashed》一书的部分章节。Stephens先生还是印地安纳国家军事防卫部的程序员和系统分析员。他和人了的太太Tina、儿子Danie以及即将出生的孩子生活在Indianapolis。 Ronald R.Plew 是Perpetual技术公司的副董事长和CIO。Plew先生在Insiana University Purdue University从事Orcle 教学工作,同时还为国防部Oracle数据库管理员的技术支持和咨询。他毕业于Indiana Institute of Technology。Plew先生还是印地安纳国家军事防卫部成员, 在那里他是一名程序员和系统分析员。Plew先生是从事Oracle相关工作15年。他也是:《Sams Teach Yourself SQL in 21 Days》、《Sams Teach Yourself SQL in 24 Hours》的合著作。Plew先生和他的太太Linda生活在Indianapolis。

内容简介

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

图书目录

译者序

作者介绍

绪论

第一篇 数据库设计概述

第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