第1章 数据库方法 3
1.1 学习目标 3
第Ⅰ部分 数据库基本概念 3
1.2 数据系统的演化过程 4
1.2.1 技术发展 5
1.2.2 信息需求 6
1.2.3 发展历程 7
1.3.1 驱动力 8
1.3 数据库系统 8
1.2.4 面向文件的数据系统 8
1.3.2 早期数据系统的不足 9
1.3.3 数据库系统满足要求 12
1.4.2 数据驱动 14
1.4.1 数据库的定义 14
1.4 数据库方法 14
1.4.3 基本概念 15
1.4.4 数据库的使用 16
1.5.1 层次结构模型 17
1.5 数据模型简介 17
1.5.2 网状结构模型 18
1.5.3 关系模型 19
1.5.4 对象-关系模型 20
1.6.1 集中式数据库 21
1.6 数据库类型 21
1.7 数据库产业概述 22
1.6.2 分布式数据库 22
1.7.1 简史 23
1.7.3 未来展望 24
1.7.2 主要商业数据库 24
1.9 复习题 25
1.8 本章小结 25
1.10 练习题 26
2.1 学习目标 27
第2章 主要组件概览 27
2.2 数据库环境的组件 28
2.2.1 总体系结构 29
2.2.3 支持软件 30
2.2.2 硬件基础结构 30
2.3 数据库和数据库管理系统(DBMS) 31
2.2.4 人员和过程 31
2.3.2 使用DBMS的原因 32
2.3.1 数据库和DBMS的区别 32
2.3.4 语言和接口 34
2.3.3 DBMS分类 34
2.4.1 硬件 36
2.4 功能和特性 36
2.4.3 操作系统软件 37
2.4.2 数据存储 37
2.4.5 用户 38
2.4.4 数据库软件 38
2.4.7 方法和过程 39
2.4.6 专业人员 39
2.4.8 数据库的用法 40
2.5.1 数据库引擎 41
2.5 DBMS详解 41
2.5.3 查询处理器 43
2.5.2 数据词典 43
2.5.4 窗体生成器 44
2.5.5 报表编写器 45
2.5.6 应用程序开发者 46
2.5.8 实用程序 47
2.5.7 通信接口 47
2.8 练习题 48
2.7 复习题 48
2.6 本章小结 48
3.1 学习目标 53
第3章 数据库环境的重要性 53
第Ⅱ部分 数据库开发过程 53
3.2.2 主要流程 54
3.2.1 核心业务 54
3.2 组织机构 54
3.2.3 信息是主要资产 55
3.2.4 机构中的数据库系统 56
3.3 信息需求 57
3.3.1 根据用户级别分组 58
3.3.3 按地理位置分组 59
3.3.2 按职能部门分组 59
3.4 信息共享 60
3.3.4 提供信息 60
3.4.1 共享信息的原因 61
3.4.2 主要益处 62
3.4.3 信息共享方案 63
3.4.4 数据库系统作为支持者 64
3.5.1 数据存储 65
3.5 数据库系统的枢纽角色 65
3.5.3 应用程序的基础 66
3.5.2 信息传送 66
3.6 本章小结 67
3.5.4 现代企业必不可少的工具 67
3.8 练习题 68
3.7 复习题 68
4.2 主要开发步骤 69
4.1 学习目标 69
第4章 数据库开发周期 69
4.2.1 开始过程 70
4.2.2 设计和开发 71
4.2.3 开发和实现 72
4.2.5 角色和责任 73
4.2.4 步骤和任务 73
4.2.6 管理和控制 75
4.3 数据库系统规划 76
4.3.2 规划者 77
4.3.1 总体规划范围 77
4.3.3 业务规划的影响 78
4.3.5 关键规划问题 79
4.3.4 数据库规划 79
4.4.1 目标和范围 80
4.4 可行性研究 80
4.4.2 技术基础结构 81
4.4.3 技能分析 82
4.4.4 成本评估 83
4.4.5 收益评估 84
4.4.6 权衡选项 85
4.5 需求定义 86
4.5.2 用户采访 87
4.5.1 需求收集方法 87
4.5.4 分析应用程序 91
4.5.3 流程观察 91
4.5.6 合并信息需求 92
4.5.5 研究文档 92
4.6 设计阶段 93
4.5.7 需求定义文档 93
4.6.2 逻辑设计与物理设计 94
4.6.1 设计目标 94
4.6.3 外部模式 95
4.6.5 内部模式 96
4.6.4 概念模式 96
4.7 实现和部署 97
4.7.4 填充数据库 98
4.7.3 创建数据词典 98
4.7.1 从概念模式到内部模式 98
4.7.2 DBMS的安装 98
4.8.1 管理工具 99
4.8 维护和成长 99
4.7.5 开发应用程序接口 99
4.8.3 性能调整 100
4.8.2 持续监控 100
4.10 复习题 101
4.9 本章小结 101
4.8.4 管理成长 101
4.11 练习题 102
5.1 学习目标 105
第5章 数据建模基础 105
第Ⅲ部分 概念数据建模 105
5.2.1 建立数据模型的原因 106
5.2 数据模型的含义 106
5.2.3 数据模型是复制品 107
5.2.2 现实信息需求 107
5.2.4 数据模型组件 108
5.3 数据建模概念 109
5.3.2 过滤无关信息 110
5.3.1 信息需求的表示 110
5.3.4 数据模型到数据设计 111
5.3.3 组件映射 111
5.4 数据建模式样 112
5.4.2 基于对象的建模技术 113
5.4.1 高级别数据模型 113
5.5 数据视图 114
5.4.4 数据建模辅助工具 114
5.4.3 实体.关系建模技术 114
5.5.2 信息需求的集合 115
5.5.1 数据视图的含义 115
5.5.3 透过窗户看数据系统 116
5.6 视图集成 117
5.5.4 数据视图:两种理解 117
5.6.1 合并个体用户视图 118
5.6.3 增强和验证 119
5.6.2 集成局部数据模型 119
5.6.4 统一数据模型 120
5.9 练习题 121
5.8 复习题 121
5.7 本章小结 121
6.2 基于对象的建模技术简介 123
6.1 学习目标 123
第6章 基于对象建模的原理和组件 123
6.2.2 基于对象的数据模型的益处 124
6.2.1 通用数据模型 124
6.2.3 组件简介 125
6.2.4 现实信息映射 126
6.2.5 模型图示例 128
6.3.1 对象组和实例 130
6.3 业务对象 130
6.3.3 识别对象组 131
6.3.2 对象类型 131
6.3.4 属性 132
6.3.5 实例标识符 133
6.4.1 关系的角色 134
6.4 对象之间的关系 134
6.4.2 关系中的基数 136
6.4.3 聚合对象 139
6.5 归纳和专化 141
6.4.4 关系的度 141
6.5.1 超组和子组 142
6.5.3 属性继承 143
6.5.2 归纳层次 143
6.5.4 关系继承 144
6.5.5 特例 145
6.6.1 概念和物理对象 147
6.6 特殊对象类型和关系 147
6.6.2 递归关系 148
6.7.2 完整数据模型图 149
6.7.1 组件总览 149
6.6.3 装配结构 149
6.7 回顾基于对象的数据模型 149
6.9 复习题 150
6.8 本章小结 150
6.10 练习题 151
7.1 学习目标 153
第7章 实体-关系数据模型 153
7.2.2 数据建模过程 154
7.2.1 基本概念 154
7.2 E-R模型简介 154
7.2.3 主要组件 155
7.3.1 实体定义 156
7.3 实体 156
7.3.3 实体组 157
7.3.2 实体类型 157
7.3.4 弱实体类型 158
7.4.1 属性规范 159
7.4 属性 159
7.4.3 属性类型 160
7.4.2 值和域 160
7.5 关系 163
7.4.4 候选键和主键 163
7.5.2 关系的度 164
7.5.1 实体之间的关联 164
7.5.4 可选和强制条件 165
7.5.3 关系的基数 165
7.6.1 建模依赖于时间的组件 168
7.6 特例 168
7.6.2 标识和非标识关系 169
7.6.4 使用动名词 170
7.6.3 关系类型的属性 170
7.7.1 重述组件及符号 171
7.7 实体-关系图 171
7.6.5 归纳和专化 171
7.7.2 示例ERD 172
7.8 本章小结 173
7.7.3 分析示例ERD 173
7.10 练习题 174
7.9 复习题 174
8.1 学习目标 177
第8章 关系数据模型基础 177
第Ⅳ部分 关系数据模型 177
8.2.2 关系表:一个建模概念 178
8.2.1 关系模型的优点 178
8.2 结构和组件 178
8.2.3 列表示属性 179
8.2.5 主键 180
8.2.4 行表示实例 180
8.2.6 通过外键建立关系 181
8.2.7 关系模型的符号 182
8.3.2 基本关系属性 183
8.3.1 确保数据完整性的原因 183
8.3 数据完整性约束 183
8.3.3 实体完整性 184
8.3.5 函数依赖 185
8.3.4 引用完整性 185
8.4.1 数据语言的角色 186
8.4 数据操纵 186
8.4.3 关系代数 187
8.4.2 数据操纵语言 187
8.4.4 关系演算 195
8.4.5 通用语言比较 196
8.5 关系模型设计 197
8.5.3 从语义模型到关系模型 198
8.5.2 设计方法 198
8.5.1 数据模型的要求 198
8.5.5 评估两种设计方法 199
8.5.4 传统方法 199
8.7 复习题 200
8.6 本章小结 200
8.8 练习题 201
9.1 学习目标 203
第9章 从语义数据模型到关系数据模型 203
9.2.1 优点 204
9.2 模型转换方法 204
9.2.3 步骤和任务 205
9.2.2 转换方法的适用范围 205
9.3 组件映射 206
9.2.4 关键问题 206
9.3.2 对象组到关系表的映射 207
9.3.1 映射和转换 207
9.3.3 属性 208
9.4 关系转换 209
9.3.4 实例标识符 209
9.4.1 一对一关系 210
9.4.2 一对多关系 211
9.4.3 多对多关系 213
9.4.4 强制和可选条件 217
9.4.5 将聚合对象作为关系 220
9.4.7 超组和子组 221
9.4.6 标识关系 221
9.5.1 模型比较 222
9.5 模型转换的结果 222
9.6 本章小结 223
9.5.2 转换归纳 223
9.8 练习题 224
9.7 复习题 224
10.2 非正式设计 225
10.1 学习目标 225
第10章 数据规范化方法 225
10.2.2 非正式设计的缺陷 226
10.2.1 根据需求建立关系表 226
10.2.4 删除异常 228
10.2.3 更新异常 228
10.3.1 目标和优点 229
10.3 规范化方法 229
10.2.5 添加异常 229
10.3.3 步骤和任务 230
10.3.2 规范化方法的用法 230
10.4.1 第一范式 231
10.4 基本范式 231
10.4.2 第二范式 232
10.4.3 第三范式 234
10.4.4 Boyce-Codd范式 236
10.5.1 第四范式 237
10.5 高级范式 237
10.5.2 第五范式 238
10.6 规范化方法综述 240
10.5.3 域-键范式 240
10.6.1 步骤分析 241
10.6.3 规范化的示例 242
10.6.2 关键问题 242
10.9 练习题 244
10.8 复习题 244
10.7 本章小结 244
11.1 学习目标 249
第11章 完成逻辑设计 249
第Ⅴ部分 设计和实现 249
11.2.1 逻辑设计和物理设计 250
11.2 逻辑设计的重要性 250
11.2.3 逻辑设计阶段的必要性 251
11.2.2 DDLC中的逻辑设计阶段 251
11.2.5 确保设计的完整性 252
11.2.4 物理设计的输入 252
11.3 逻辑设计中的数据建模 253
11.3.2 表示实体 254
11.3.1 完成逻辑设计的步骤 254
11.3.3 表示属性 255
11.3.5 规则和约束 256
11.4 关系数据模型的设计 256
11.3.4 表示关系 256
11.4.2 逻辑设计组件 257
11.4.1 将关系表作为单个设计概念 257
11.4.4 特殊注意事项 258
11.4.3 逻辑模式 258
11.5.2 输出的用法 259
11.5.1 逻辑设计输出 259
11.5 逻辑设计的文档记录 259
11.5.4 文档记录纲要 260
11.5.3 使用CASE工具 260
11.8 练习题 261
11.7 复习题 261
11.6 本章小结 261
12.1 学习目标 263
第12章 物理设计过程 263
12.2.1 从逻辑设计到物理设计 264
12.2 物理设计简介 264
12.2.2 目标和设计决策 265
12.2.5 数据词典的用法 266
12.2.4 物理设计任务 266
12.2.3 物理设计组件 266
12.3 数据存储和访问 268
12.3.2 访问物理数据 269
12.3.1 存储管理 269
12.3.3 文件、块和记录 270
12.3.4 文件组织 272
12.3.5 链接相关数据元素 274
12.3.6 RAID技术基础 275
12.4 索引技术 278
12.4.1 主索引 279
12.4.2 折半查找 280
12.4.4 辅助索引 281
12.4.3 对称树索引 281
12.4.5 位图索引 282
12.5.1 聚集 284
12.5 其他性能考虑事项 284
12.5.3 拆分 285
12.5.2 反向规范化 285
12.5.4 内存缓冲管理 286
12.6 本章小结 287
12.5.5 预建联接 287
12.8 练习题 288
12.7 复习题 288
13.1 学习目标 291
第13章 特殊的实现注意事项 291
13.2.2 语言的角色 292
13.2.1 模型实现的含义 292
13.2 实现语言 292
13.2.3 用于关系模型的语言 294
13.3 SQL 296
13.3.2 发展简史 297
13.3.1 总体特性 297
13.3.3 SQL的数据定义 298
13.3.4 SQL的数据检索 300
13.3.5 SQL的数据维护 302
13.3.6 SQL中的数据控制 303
13.3.7 查询 305
13.3.8 SQL查询组件概览 308
13.3.9 从应用程序访问数据库 309
13.4 查询处理 310
13.4.2 查询优化器 311
13.4.1 查询处理步骤 311
13.4.3 诱导方法 312
13.4.4 基于成本的优化 314
13.5 数据库系统部署 315
13.5.2 在集中式体系结构中实现 316
13.5.1 部署任务 316
13.5.3 在客户机/服务器中实现 317
13.6 本章小结 318
13.8 练习题 319
13.7 复习题 319
14.1 学习目标 323
第14章 管理职能概述 323
第Ⅵ部分 数据库管理和维护 323
14.2.1 管理的必要性 324
14.2 管理的重要性 324
14.2.2 管理目标 326
14.2.3 数据管理 327
14.3 技能和责任 328
14.2.4 数据库管理 328
14.3.1 管理角色 329
14.3.2 责任范围 330
14.3.4 与用户和专业人员交互 331
14.3.3 技能、知识和经验 331
14.4 在开发周期各阶段的任务和责任 332
14.4.2 需求定义 333
14.4.1 规划和可行性研究 333
14.4.4 物理设计 334
14.4.3 逻辑设计 334
14.5.1 持续职能 335
14.5 完成部署后的任务 335
14.4.5 实现和部署 335
14.5.4 数据库系统的成长和变化 336
14.5.3 数据库系统的增强 336
14.5.2 维护服务级别 336
14.8 练习题 337
14.7 复习题 337
14.6 本章小结 337
15.1 学习目标 339
第15章 数据完整性 339
15.2.1 事务概念 340
15.2 事务处理 340
15.2.2 事务属性 341
15.2.3 事务状态 343
15.2.5 完整性考虑事项 344
15.2.4 事务处理 344
15.3 并发事务 347
15.3.2 并发问题 348
15.3.1 并发处理事务的原因 348
15.3.3 事务和调度 349
15.3.4 可串行性 350
15.3.5 可恢复性 353
15.4.1 基于锁的解决方法 354
15.4 并发控制 354
15.4.2 基于锁的技术的应用 356
15.4.3 死锁的防止和检测 359
15.4.4 基于时间戳的解决方案 361
15.4.5 乐观技术 363
15.5.1 故障分类 364
15.5 数据库故障和恢复 364
15.5.2 恢复概念 365
15.5.3 日志记录 366
15.5.4 检查点 367
15.5.5 基于日志的恢复技术 368
15.5.6 阴影分页 371
15.5.7 恢复示例 372
15.7 复习题 373
15.6 本章小结 373
15.8 练习题 374
16.1 学习目标 375
第16章 数据库安全 375
16.2.1 目标和目的 376
16.2 安全问题 376
16.2.3 解决方案选项 377
16.2.2 安全问题 377
16.3 访问控制 379
16.2.5 Web安全 379
16.2.4 隐私问题 379
16.3.1 数据访问级别和类型 380
16.3.2 任意控制 381
16.3.4 SQL示例 383
16.3.3 使用视图 383
16.3.5 强制控制 384
16.4.1 授权 385
16.4 特殊的安全考虑事项 385
16.4.2 身份验证 387
16.4.4 统计数据库 388
16.4.3 DBA的角色 388
16.5 加密 389
16.5.1 加密的含义 390
16.5.2 加密方法 391
16.5.3 数据加密标准 392
16.5.4 公钥加密 393
16.6 本章小结 394
16.8 练习题 395
16.7 复习题 395
17.1 学习目标 397
第17章 持续维护和成长 397
17.2.1 备份和恢复 398
17.2 日常维护 398
17.2.2 安全维护 401
17.2.4 并发控制 402
17.2.3 空间管理 402
17.3.1 监控目的 403
17.3 监控和分析 403
17.2.5 问题解决方案 403
17.3.2 监控过程 404
17.3.4 分析操作 405
17.3.3 收集统计数据 405
17.4 成长和增强 406
17.3.5 基准的用法 406
17.4.2 应用程序增强 407
17.4.1 持续成长和增强 407
17.4.3 模式修正 408
17.4.4 DBMS版本升级 409
17.5.1 目标和解决方案选项 410
17.5 调整性能 410
17.5.2 调整索引 411
17.5.4 调整模式 412
17.5.3 调整查询和事务 412
17.6 本章小结 413
17.8 练习题 414
17.7 复习题 414
18.1 学习目标 417
第18章 分布式数据库系统 417
第Ⅶ部分 高级篇 417
18.2.1 分布式数据库的含义 418
18.2 基本原理 418
18.2.2 基本概念 419
18.2.4 优点和缺点 420
18.2.3 动机和目标 420
18.3.1 类型和配置 421
18.3 分布式数据库 421
18.3.2 DDBMS 423
18.3.3 网络组件 426
18.3.4 数据分布 427
18.3.5 体系结构选项 430
18.3.6 设计和实现问题 432
18.4.1 透明是重要理念 433
18.4 透明 433
18.4.3 复制透明 434
18.4.2 拆分透明 434
18.5 分布式处理 435
18.4.7 故障透明 435
18.4.4 位置透明 435
18.4.5 网络透明 435
18.4.6 命名透明 435
18.5.1 查询处理 436
18.5.2 事务处理 440
18.5.3 并发控制 442
18.5.4 分布恢复 445
18.6 本章小结 447
18.8 练习题 448
18.7 复习题 448
19.1 学习目标 449
第19章 数据库系统和Web 449
19.2.1 Internet和Web 450
19.2 Web技术回顾 450
19.2.2 HTTP 451
19.2.4 HTML 452
19.2.3 URL 452
19.2.5 超越HTML 454
19.2.6 内部网和外部网 455
19.3.1 集成动机 456
19.3 Web和数据库集成 456
19.3.3 集成的体系结构 457
19.3.2 集成的必要条件 457
19.3.4 优缺点 459
19.4.1 CGI 460
19.4 集成方法 460
19.4.2 API 462
19.4.3 SSI 463
19.4.5 使用Java应用程序 464
19.4.4 cookie 464
19.4.6 使用脚本语言 466
19.4.7 数据库工具 467
19.5.1 保护的意义 468
19.5 安全选项 468
19.5.2 防火墙、包装器和代理 469
19.5.4 SET和SST 471
19.5.3 数字签名和数字证书 471
19.5.6 Java安全 472
19.5.5 SSL和S-HTTP 472
19.6 本章小结 474
19.8 练习题 475
19.7 复习题 475
20.1 学习目标 477
第20章 数据库技术发展趋势 477
20.2.1 基本概念 478
20.2 面向对象的数据库 478
20.2.2 对象和类 479
20.2.3 方法和消息 481
20.2.4 继承 482
20.2.6 面向对象的数据模型 483
20.2.5 多态 483
20.3.1 驱动力 485
20.3 对象-关系数据库 485
20.3.3 ORDBMS的特性 486
20.3.2 ORDBMS的含义 486
20.4 支持决策的数据库 487
20.3.4 SQL-3的对象-关系支持 487
20.4.1 数据仓库 488
20.4.2 联机分析处理 496
20.4.3 数据挖掘 500
20.5.1 并行数据库 504
20.5 主要趋势概述 504
20.5.2 主动数据库 505
20.5.4 推论数据库 506
20.5.3 智能数据库 506
20.5.5 多媒体数据库 507
20.5.6 移动数据库 508
20.5.7 地理数据库 510
20.6 本章小结 511
20.7 复习题 512
20.8 练习题 512
第Ⅷ部分 附录 517
附录A 传统系统模型:层次和网状结构 517
附录B Codd的关系规则 521
附录C 图示和符号 523
附录D CASE工具的用法 529
附录E 主要商业数据库管理系统 533
附录F 数据库设计和开发概览 539
术语表 543