第1部分 数据库管理的环境第1章 数据库环境 3
1.1 数据的重要性 3
1.2 介绍 5
1.3 基本概念和定义 6
1.3.1 数据 6
1.3.2 数据与信息 7
1.3.3 元数据 8
1.3.4 数据库管理系统 9
1.3.5 数据模型 9
1.3.6 关系数据库 11
1.4 传统的文件处理系统 12
1.4.1 Pine Valley家具公司的文件处理系统 12
1.4.2 文件处理系统的缺点 13
1.5 数据库方法 15
1.5.1 数据库方法的优点 16
1.5.2 关于数据库优点的告诫 19
1.5.3 数据库方法的成本和风险 19
1.6 数据库环境的组成部分 21
1.7 数据库应用的范围 22
1.7.1 个人数据库 23
1.7.2 工作组数据库 24
1.7.3 部门数据库 25
1.7.4 企业数据库 26
1.7.5 Web驱动数据库 28
1.7.6 数据库应用小结 29
1.8 数据库系统的发展历程 30
1.8.1 20世纪60年代 31
1.8.2 20世纪70年代 31
1.8.3 20世纪80年代 31
1.8.4 20世纪90年代 31
1.8.5 2000年以后 32
1.9 小结 33
1.10 关键术语 33
1.11 复习题 34
1.12 问题与练习 36
1.13 课外练习 38
1.14 参考文献 39
1.15 进一步阅读 39
1.16 Web资源 40
1.17 Mountain View社区医院案例 40
1.17.1 介绍 40
1.17.2 案例描述 41
1.17.3 案例问题 41
1.17.4 案例练习 42
1.17.5 项目任务 44
第2章 数据库开发过程 45
2.1 介绍 45
2.2 信息系统开发中的数据库开发 47
2.2.1 信息系统体系结构 47
2.2.2 信息工程 48
2.2.3 信息系统规划 49
2.3 数据库开发过程 54
2.3.1 系统开发生命周期 54
2.3.2 另一种信息系统(IS)开发方法 59
2.3.3 打包的数据模型的作用 60
2.3.4 CASE的作用和存储库 62
2.4 数据库开发中的人员管理 63
2.5 数据库开发的三层模式体系结构 65
2.5.1 三层模式组件 65
2.5.2 模式小结 66
2.5.3 开发策略 68
2.6 三层数据库定位体系结构 69
2.7 为Pine Valley家具公司开发数据库应用程序 71
2.7.1 简化的项目数据模型范例 73
2.7.2 Pine Valley家具公司当前的项目请求 76
2.7.3 匹配用户需要与信息系统体系结构 77
2.7.4 分析数据库需求 80
2.7.5 设计数据库 82
2.7.6 使用数据库 84
2.7.7 管理数据库 86
2.8 小结 86
2.9 关键术语 87
2.10 复习题 88
2.11 问题与练习 89
2.12 课外练习 92
2.13 参考文献 93
2.14 进一步阅读 94
2.15 Web资源 94
2.16 Mountain View社区医院案例 95
2.16.1 案例描述 95
2.16.2 案例问题 101
2.16.3 案例练习 101
2.16.4 项目任务 102
第Ⅱ部分 数据库分析第3章 组织机构的数据建模 107
3.1 介绍 107
3.2 组织机构的规则建模 109
3.2.1 业务规则概述 110
3.2.2 业务规则的范围 111
3.2.3 数据名称和数据定义 112
3.3 E-R模型概述 116
3.3.1 样例E-R图 116
3.3.2 E-R模型符号表示法 118
3.4 实体和属性的建模 120
3.4.1 实体 120
3.4.2 属性 125
3.5 关系建模 132
3.5.1 关系中的基本概念和定义 133
3.5.2 关系的度 136
3.5.3 属性还是实体 141
3.5.4 基数约束 142
3.5.5 时间依赖性数据的建模 146
3.5.6 多重关系 149
3.5.7 命名和定义关系 150
3.6 E-R建模范例:Pine Valley家具公司 152
3.7 Pine Valley家具公司的数据库处理 155
3.7.1 显示产品信息 155
3.7.2 显示客户信息 156
3.7.3 显示客户订单状态 156
3.7.4 显示产品销售 157
3.8 小结 158
3.9 关键术语 159
3.10 复习题 160
3.11 问题与练习 162
3.12 课外练习 171
3.13 参考文献 171
3.14 进一步阅读 173
3.15 Web资源 173
3.16 Mountain View社区医院案例 174
3.16.1 案例描述 174
3.16.2 案例问题 175
3.16.3 案例练习 176
3.16.4 项目任务 177
第4章 增强型E-R模型和业务规则 179
4.1 介绍 179
4.2 表示超类型和子类型 181
4.2.1 基本概念和符号表示法 181
4.2.2 表示特化和泛化 186
4.3 指定超类型/子类型关系中的约束 189
4.3.1 指定完整性约束 189
4.3.2 指定不相交约束 191
4.3.3 定义子类型鉴别符 192
4.3.4 定义超类型/子类型的分层结构 194
4.4 EER建模范例:Pine Valley家具公司 196
4.5 实体簇 200
4.6 打包的数据模型 203
4.7 再论业务规则 209
4.7.1 业务规则的分类 209
4.7.2 陈述结构断言 211
4.7.3 陈述动作断言 212
4.7.4 表示和实施业务规则 214
4.7.5 识别和测试业务规则 217
4.8 小结 218
4.9 关键术语 219
4.10 复习题 219
4.11 问题与练习 221
4.12 课外练习 226
4.13 参考文献 227
4.14 进一步阅读 228
4.15 Web资源 229
4.16 Mountain View社区医院案例 229
4.16.1 案例描述 229
4.16.2 案例问题 232
4.16.3 案例练习 233
4.16.4 项目任务 233
第Ⅲ部分 数据库设计第5章 逻辑数据库设计和关系模型 237
5.1 介绍 237
5.2 关系数据模型 238
5.2.1 基本定义 238
5.2.2 范例数据库 242
5.3 完整性约束 244
5.3.1 域约束 244
5.3.2 实体完整性 244
5.3.3 引用完整性 245
5.3.4 动作断言 246
5.3.5 创建关系表 246
5.3.6 结构良好的关系 248
5.4 将EER图转换为关系 249
5.4.1 步骤1:映射常规实体 250
5.4.2 步骤2:映射弱实体 252
5.4.3 步骤3:映射二元关系 253
5.4.4 步骤4:映射关联实体 256
5.4.5 步骤5:映射一元关系 258
5.4.6 映射三元和多元关系 260
5.4.7 映射超类型/子类型关系 262
5.4.8 小结EER到关系的转换 263
5.5 规范化介绍 264
5.5.1 规范化的步骤 265
5.5.2 函数依赖和键 266
5.6 规范化范例:Pine Valley家具公司 269
5.6.1 步骤0:以表格形式来表示视图 269
5.6.2 步骤1:转换成第一范式 270
5.6.3 步骤2:转换成第二范式 271
5.6.4 步骤3:转换成第三范式 273
5.6.5 决定因素和规范化 275
5.6.6 步骤4:进一步规范化 275
5.7 关系的合并 275
5.7.1 一个例子 276
5.7.2 视图集成问题 276
5.8 定义关系键的最后一步 278
5.9 小结 281
5.10 关键术语 282
5.11 复习题 282
5.12 问题与练习 285
5.13 课外练习 293
5.14 参考文献 294
5.15 进一步阅读 294
5.16 Web资源 295
5.17 Mountain View社区医院案例 295
5.17.1 案例问题 295
5.17.2 案例练习 296
5.17.3 项目任务 299
第6章 物理数据库设计和性能 301
6.1 介绍 301
6.2 物理数据库设计过程 302
6.3 设计字段 305
6.3.1 选择数据类型 306
6.3.2 控制数据完整性——遵守Sarbanes-Oxley法案的基础 308
6.4 设计物理记录和反规范化 310
6.5 设计物理文件 318
6.5.1 指针 320
6.5.2 文件组织 320
6.5.3 文件组织方式小结 329
6.5.4 簇文件 330
6.5.5 设计对文件的控制 331
6.6 使用和选择索引 331
6.6.1 创建唯一键索引 332
6.6.2 创建次(非唯一)键索引 332
6.6.3 何时使用索引 333
6.7 RAID:通过并行处理提高文件访问性能 334
6.8 设计数据库 337
6.9 优化查询性能 340
6.9.1 并行查询处理 340
6.9.2 重写自动查询优化 341
6.9.3 选定数据块大小 342
6.9.4 平衡各磁盘控制器的I/O操作 343
6.9.5 设计更好查询的指导方针 343
6.10 小结 345
6.11 关键术语 347
6.12 复习题 347
6.13 问题与练习 349
6.14 课外练习 352
6.15 参考文献 353
6.16 进一步阅读 354
6.17 Web资源 354
6.18 Mountain View社区医院案例 355
6.18.1 案例描述 355
6.18.2 案例问题 355
6.18.3 案例练习 356
6.18.4 项目任务 358
第Ⅳ部分 实现 363
第7章 SQL介绍 363
7.1 介绍 363
7.2 SQL标准的历史 365
7.3 SQL在数据库体系结构中的作用 366
7.4 SQL环境 368
7.5 用SQL定义数据库 373
7.5.1 生成SQL数据库定义 374
7.5.2 创建表 375
7.5.3 创建数据完整性控制 377
7.5.4 改变表定义 378
7.5.5 删除表 379
7.6 插入、更新和删除数据 380
7.6.1 批量输入 381
7.6.2 删除数据库内容 382
7.6.3 更新数据库内容 382
7.7 RDBMS中的内部模式定义 383
7.8 处理单表 384
7.8.1 SELECT语句的子句 385
7.8.2 使用表达式 387
7.8.3 使用函数 388
7.8.4 使用通配符 389
7.8.5 使用比较运算符 390
7.8.6 使用布尔运算符 391
7.8.7 使用范围进行限定 394
7.8.8 使用DISTINCT值 395
7.8.9 使用IN和NOT IN 396
7.8.10 使用ORDER BY子句对结果排序 397
7.8.11 使用GROUP BY子句对结果分类 398
7.8.12 使用HAVING子句对分类结果进行限定 399
7.8.13 使用和定义视图 401
7.9 小结 406
7.10 关键术语 407
7.11 复习题 407
7.12 问题与练习 409
7.13 课外练习 412
7.14 参考文献 413
7.15 进一步阅读 413
7.16 Web资源 414
7.17 Mountain View社区医院案例 415
7.17.1 案例问题 415
7.17.2 案例练习 415
7.17.3 项目任务 416
第8章 高级SQL 417
8.1 介绍 417
8.2 处理多表 418
8.2.1 等值连接 419
8.2.2 自然连接 421
8.2.3 外连接 421
8.2.4 合并连接 424
8.2.5 涉及4个表的多表连接样例 424
8.2.6 子查询 425
8.2.7 相关子查询 429
8.2.8 使用导出表 431
8.2.9 合并查询 431
8.2.10 条件表达式 432
8.2.11 更复杂的SQL查询 433
8.3 确保事务完整性 435
8.4 数据字典工具 436
8.5 SQL:2003对SQL的改进和扩展 439
8.5.1 分析函数 439
8.5.2 新增数据类型 440
8.5.3 其他改进 441
8.5.4 编程扩展 442
8.6 触发器和例程 443
8.6.1 触发器 444
8.6.2 例程 445
8.7 嵌入式SQL和动态SQL 448
8.8 小结 451
8.9 关键术语 451
8.10 复习题 452
8.11 问题与练习 453
8.12 课外练习 455
8.13 参考文献 456
8.14 进一步阅读 456
8.15 Web资源 457
8.16 Mountain View社区医院案例 457
8.16.1 案例问题 457
8.16.2 案例练习 457
8.16.3 项目任务 458
第9章 客户/服务器数据库环境 459
9.1 位置 459
9.2 介绍 460
9.3 客户/服务器体系结构 462
9.3.1 文件服务器体系结构 462
9.3.2 文件服务器的局限性 464
9.3.3 数据库服务器体系结构 464
9.4 三层体系结构 466
9.5 划分应用程序 468
9.6 大型主机的作用 471
9.7 使用中间件 472
9.8 客户/服务器问题 475
9.9 使用ODBC连接存储在数据库服务器上的外部表 476
9.10 使用JDBC链接存储在数据库服务器上的外部表 479
9.11 胸怀客户/服务器,展望未来 479
9.12 小结 480
9.13 关键术语 481
9.14 复习题 481
9.15 问题与练习 482
9.16 课外练习 483
9.17 参考文献 483
9.18 进一步阅读 484
9.19 Web资源 484
9.20 Mountain View社区医院案例 485
9.20.1 案例问题 486
9.20.2 案例练习 486
9.20.3 项目任务 487
第10章 因特网数据库环境 489
10.1 介绍 489
10.2 因特网与数据库的连接 490
10.3 因特网环境 491
10.4 常见因特网体系结构组件 493
10.4.1 因特网相关的语言 494
10.4.2 XML概述 496
10.4.3 服务器端扩展 498
10.4.4 Web服务器接口 499
10.4.5 Web服务器 500
10.4.6 客户端扩展 502
10.5 Web到数据库的工具 503
10.5.1 Web服务 507
10.5.2 面向服务架构(SOA) 513
10.5.3 语义Web 514
10.5.4 因特网技术的更新速度问题 514
10.6 小结 516
10.7 关键术语 516
10.8 复习题 517
10.9 问题与练习 518
10.10 课外练习 519
10.11 参考文献 519
10.12 进一步阅读 520
10.13 Web资源 520
10.14 Mountain View社区医院案例 521
10.14.1 案例问题 522
10.14.2 案例练习 522
10.14.3 项目任务 523
第11章 数据仓库 525
11.1 介绍 525
11.2 数据仓库的基本概念 528
11.2.1 数据仓库简史 528
11.2.2 数据仓库的需要 529
11.3 数据仓库体系结构 534
11.3.1 一般的两层体系结构 534
11.3.2 独立的数据集市数据仓库环境 535
11.3.3 依赖数据集市和操作型数据存储体系结构:三层方法 537
11.3.4 逻辑数据集市和实时数据仓库体系结构 540
11.3.5 三层数据体系结构 543
11.4 数据仓库数据的某些特性 544
11.4.1 状态数据与事件数据 544
11.4.2 临时数据与定期数据 545
11.4.3 临时数据与定期数据的范例 546
11.5 调和数据层 549
11.5.1 ETL后的数据特征 549
11.5.2 ETL过程 550
11.6 数据转换 556
11.6.1 数据转换功能 557
11.6.2 支持数据调和的工具 561
11.7 导出数据层 563
11.7.1 导出数据的特征 563
11.7.2 星模式 563
11.7.3 星模式的变体 570
11.7.4 规范化维度表 572
11.7.5 缓慢变化维度 576
11.8 用户界面 578
11.8.1 元数据的作用 579
11.8.2 查询工具 579
11.8.3 在线分析处理(OLAP)工具 580
11.8.4 数据挖掘工具 582
11.8.5 数据可视化 584
11.9 小结 584
11.10 关键术语 585
11.12 复习题 586
11.13 问题与练习 588
11.14 课外练习 593
11.15 参考文献 593
11.16 进一步阅读 596
11.17 Web资源 596
11.18 Mountain View社区医院案例 597
11.18.1 案例问题 598
11.18.2 案例练习 599
第Ⅴ部分 高级数据库主题第12章 数据和数据库管理 605
12.1 介绍 606
12.2 数据管理员和数据库管理员的作用 607
12.2.1 传统的数据管理 608
12.2.2 传统的数据库管理 609
12.2.3 发展中的数据管理方法 612
12.3 开放源代码运动 615
12.4 企业数据建模 617
12.4.1 组织的作用 617
12.4.2 信息系统体系结构的作用 617
12.5 管理数据安全 618
12.5.1 数据安全面临的威胁 619
12.5.2 建立客户/服务器安全 620
12.5.3 Web驱动数据库的客户/服务器安全问题 621
12.5.4 数据库软件数据安全特性 624
12.5.5 视图 625
12.5.6 完整性控制 626
12.5.7 授权规则 627
12.5.8 用户自定义的过程 629
12.5.9 加密 629
12.5.10 认证模式 631
12.5.11 安全策略和过程 633
12.6 数据库备份和恢复 635
12.6.1 基本的恢复工具 635
12.6.2 恢复和重启过程 638
12.6.3 数据库故障的类型 643
12.7 并发访问控制 645
12.7.1 丢失更新问题 646
12.7.2 串行化 647
12.7.3 加锁机制 648
12.7.4 版本化 652
12.8 数据质量管理 653
12.8.1 数据质量的状况 654
12.8.2 数据质量改进 655
12.9 数据字典和存储库 658
12.9.1 数据字典 658
12.9.2 存储库 659
12.10 数据库性能调整 661
12.10.1 DBMS的安装 661
12.10.2 内存和存储空间的使用 662
12.10.3 输入/输出(I/O)竞争 662
12.10.4 CPU使用情况 663
12.10.5 应用程序调整 663
12.11 数据可用性 664
12.11.1 停机造成的损失 664
12.11.2 确保可用性的措施 666
12.12 小结 666
12.13 关键术语 668
12.14 复习题 668
12.15 问题与练习 670
12.16 课外练习 674
12.17 参考文献 675
12.18 进一步阅读 677
12.19 Web资源 677
12.20 Mountain View社区医院案例 678
12.20.1 案例问题 679
12.20.2 案例练习 680
12.20.3 项目任务 680
第13章 分布式数据库概述 681
13.1 概述 681
13.1.1 目标和折衷方案 682
13.1.2 分布数据库时的选项 683
13.1.3 分布式DBMS 683
13.1.4 查询优化 685
13.2 本章回顾 685
13.3 参考文献 685
13.4 进一步阅读 686
13.5 Web资源 686
第14章 面向对象数据建模概述 687
14.1 概述 687
14.1.1 统一建模语言 688
14.1.2 面向对象数据建模 689
14.1.3 表示聚合 695
14.2 本章回顾 696
14.3 参考文献 696
14.4 进一步阅读 696
14.5 Web资源 697
第15章 面向对象数据库开发概述 699
15.1 概述 699
15.1.1 对象定义语言 700
15.1.2 创建对象实例 703
15.1.3 对象查询语言 704
15.2 本章回顾 705
15.3 参考文献 705
15.4 进一步阅读 706
15.5 Web资源 706
附录A 数据建模工具和符号表示法 707
附录B 高级范式 719
附录C 数据结构 727
附录D 对象-关系数据库 741
术语表 749