第1部分 数据库概念
第1章 数据库系统 3
1.1 数据与信息 3
1.2 数据库和数据库管理系统
简介 5
1.2.1 DBMS的作用和
优势 5
1.2.2 数据库类型 7
1.3 数据库设计为什么很
重要 8
1.4 历史根源:文件和文件
系统 9
1.5 文件系统数据管理存在
的问题 12
1.5.1 结构依赖和数据
依赖 13
1.5.2 字段定义和命名
规范 13
1.5.3 数据冗余 15
1.6 数据库系统 16
1.6.1 数据库系统环境 17
1.6.2 DBMS功能 19
1.6.3 管理数据库系统:
焦点转移 21
本章小结 22
思考题 22
习题 23
第2章 数据模型 25
2.1 数据建模及数据模型 25
2.2 数据模型的重要性 26
2.3 数据模型基本组成 27
2.4 业务规则 28
2.4.1 发现业务规则 29
2.4.2 将业务规则转化成
数据模型组件 29
2.5 数据模型的发展 30
2.5.1 层次模型 30
2.5.2 网状模型 31
2.5.3 关系模型 32
2.5.4 实体联系模型 34
2.5.5 面向对象模型 35
2.5.6 数据模型合并 37
2.5.7 数据库模型和
互联网 38
2.5.8 数据模型:总结 38
2.6 数据抽象程度 41
2.6.1 外模型 41
2.6.2 概念模型 43
2.6.3 内模型 43
2.6.4 物理模型 44
本章总结 45
思考题 45
习题 46
第2部分 数据库设计概念
第3章 关系数据库模型 53
3.1 数据的逻辑视图 53
3.1.1 表及其特性 54
3.2 码 56
3.3 完整性规则 60
3.4 关系集合操作 62
3.5 数据字典和系统目录 67
3.6 关系数据库中的联系 68
3.6.1 1︰M联系 68
3.6.2 1︰1联系 69
3.6.3 M︰N联系 71
3.7 再论数据冗余 74
3.8 索引 76
3.9 Codd的关系数据库规则 77
本章总结 78
思考题 78
习题 79
第4章 实体联系(ER)模型 87
4.1 实体联系模型(ERM) 87
4.1.1 实体 88
4.1.2 属性 88
4.1.3 联系 92
4.1.4 互连和基数 93
4.1.5 存在依赖性 93
4.1.6 联系强度 94
4.1.7 弱实体 96
4.1.8 联系的参与 97
4.1.9 联系的度 99
4.1.10 递归联系 100
4.1.11 联合(复合)
实体 102
4.2 开发ER图 104
4.3 数据库设计挑战:
冲突目标 110
本章总结 112
思考题 112
习题 114
第5章 数据库表的规范化 117
5.1 数据库表和规范化 117
5.2 规范化的需求 118
5.3 规范化处理 120
5.3.1 转化为第一范式 121
5.3.2 转化为第二范式 124
5.3.3 转化为第三范式 125
5.4 改进数据库设计 126
5.5 代理码的考虑 130
5.6 高阶范式 131
5.6.1 鲍依斯-科得范式
(BCNF) 131
5.6.2 第四范式(4NF) 133
5.7 规范化和数据库设计 135
5.8 反规范化 138
本章总结 140
思考题 142
习题 143
第6章 高级数据建模 150
6.1 扩展实体关系模型 150
6.1.1 实体超类和实体
子类 150
6.1.2 特殊化层次结构 151
6.1.3 继承 152
6.1.4 子类辨识器 153
6.1.5 不相交/重叠约束 153
6.1.6 完备性约束 154
6.1.7 特殊化与一般化 155
6.2 实体簇 155
6.3 实体完整性与主码选择 156
6.3.1 自然码与主码 157
6.3.2 主码选择原则 157
6.6.3 什么时候使用
复合主码 158
6.3.4 什么时候使用
代理主码 159
6.4 设计实例:学习灵活的
数据库设计 160
6.4.1 设计示例#1:实现
1︰1型联系 160
6.4.2 设计示例#2:维护
时变数据的历史 161
6.4.3 设计示例#3:扇形
陷阱 163
6.4.4 设计示例#4:冗余
联系 164
6.5 数据建模一览表 165
本章总结 166
思考题 167
习题 167
第3部分 高级数据库设计与实现
第7章 结构化查询语言(SQL)
简介 177
7.1 SQL概述 177
7.2 数据定义命令 179
7.2.1 数据库模型 180
7.2.2 创建数据库 181
7.2.3 数据库模式 182
7.2.4 数据类型 182
7.2.5 创建表结构 185
7.2.6 SQL约束 188
7.2.7 SQL索引 192
7.3 数据操纵命令 193
7.3.1 添加表记录 193
7.3.2 保存表的修改 195
7.3.3 显示表记录 195
7.3.4 更新表记录 196
7.3.5 恢复表的内容 197
7.3.6 删除表记录 197
7.3.7 用SELECT子查询
插入表记录 198
7.4 SELECT查询 199
7.4.1 条件约束查询 199
7.4.2 算术运算符:优先级
规则 203
7.4.3 逻辑运算符:AND、
OR和NOT 204
7.4.4 特殊运算符 205
7.5 高级数据定义命令 209
7.5.1 修改字段的数据
类型 209
7.5.2 修改字段的数据
特征 210
7.5.3 增加字段 210
7.5.4 删除字段 210
7.5.5 高级数据更新 211
7.5.6 复制部分表 212
7.5.7 增加主码和外码 214
7.5.8 删除数据库中的表 215
7.6 高级SELECT查询 215
7.6.1 查询结果排序 215
7.6.2 显示唯一值 217
7.6.3 聚集函数 217
7.6.4 数据分组 221
7.7 虚拟表:创建视图 223
7.8 数据库表连接 224
7.8.1 带别名的表连接 227
7.8.2 递归连接 227
7.8.3 外连接 228
本章总结 229
思考题 230
习题 233
第8章 高级SQL 241
8.1 关系集合运算符 241
8.1.1 UNION 242
8.1.2 UNION ALL 243
8.1.3 INTERSECT 244
8.1.4 MINUS 245
8.1.5 语法替换 246
8.2 SQL连接运算符 248
8.2.1 交叉连接 249
8.2.2 自然连接 250
8.2.3 用子句连接 251
8.2.4 在子句中连接 251
8.2.5 外连接 252
8.3 子查询和关联查询 255
8.3.1 WHERE子查询 256
8.3.2 IN子查询 257
8.3.3 HAVING子查询 258
8.3.4 多行子查询运算符:
ANY和ALL 258
8.3.5 FROM子查询 260
8.3.6 属性列表子查询 261
8.3.7 关联查询 263
8.4 SQL函数 265
8.4.1 日期和时间函数 265
8.4.2 数字函数 268
8.4.3 字符串函数 269
8.4.4 转换函数 270
8.5 Oracle子查询 272
8.6 可更新的视图 275
8.7 过程SQL 277
8.7.1 触发器 281
8.7.2 存储过程 289
8.7.3 带游标的PL/SQL
处理 293
8.7.4 PL/SQL存储函数 295
8.8 嵌入式SQL 295
本章总结 299
思考题 301
习题 302
第9章 数据库设计 306
9.1 信息系统 306
9.2 信息系统开发生命周期 308
9.2.1 计划 308
9.2.2 分析 309
9.2.3 详细的系统设计 310
9.2.4 实现 310
9.2.5 维护 311
9.3 数据库生命周期 311
9.3.1 数据库初步研究 311
9.3.2 数据库设计 315
9.3.3 实现和装载 328
9.3.4 测试和评价 331
9.3.5 运行 332
9.3.6 维护和演化 332
9.4 数据库设计策略 333
9.5 集中式和分散式设计的
对比 335
本章总结 336
思考题 336
习题 336
第4部分 高级数据库概念
第10章 事务管理与并发控制 341
10.1 什么是事务 341
10.1.1 演化事务结果 343
10.1.2 事务的性质 345
10.1.3 用SQL的事务
管理 346
10.1.4 事务日志 346
10.2 并发控制 348
10.2.1 更新丢失 348
10.2.2 未提交数据 349
10.2.3 不一致检索 350
10.2.4 调度器 351
10.3 用锁方法进行并发控制 352
10.3.1 锁粒度 353
10.3.2 锁类型 355
10.3.3 两阶段加锁 357
10.3.4 死锁 357
10.4 用时间戳方法进行并发
控制 359
10.4.1 WAIT/DIE和
WOUND/WAIT
调度方案 359
10.5 用优化方法进行并发控制 360
10.6 数据库恢复管理 360
10.6.1 事务恢复 361
本章总结 364
思考题 365
习题 365
第11章 数据库性能调整与
查询优化器 368
11.1 数据库性能调整的概念 368
11.1.1 性能调整:客户和
服务器 369
11.1.2 DBMS架构 370
11.1.3 数据库统计 371
11.2 查询处理 373
11.2.1 SQL分析阶段 373
11.2.2 SQL执行阶段 375
11.2.3 SQL提取阶段 375
11.2.4 查询处理瓶颈 375
11.3 索引和查询优化 376
11.4 优化选择 378
11.4.1 使用提示影响优化
选择 379
11.5 SQL性能调整 380
11.5.1 索引选择性 380
11.5.2 条件表达式 381
11.6 查询制定 383
11.7 DBMS性能调整 384
11.8 查询优化示例 386
本章总结 391
思考题 392
习题 393
第12章 分布式数据库管理系统 397
12.1 分布式数据库管理系统
的发展 397
12.2 DDBMS的优点和缺点 399
12.3 分布式处理和分布式
数据库 400
12.4 分布式数据库管理系统
的特征 402
12.5 DDBMS的组成 403
12.6 数据层和分布式处理 404
12.6.1 单点处理与单点
数据 404
12.6.2 多点处理与单点
数据 405
12.6.3 多点处理与多点
数据 406
12.7 分布式数据库的透明性 407
12.8 分布透明性 408
12.9 事务处理透明性 410
12.9.1 分布式请求和
分布式事务 410
12.9.2 分布式并发控制 413
12.9.3 两阶段提交协议 414
12.10 性能透明性和查询优化 415
12.11 分布式数据库设计 416
12.11.1 数据分割 416
12.11.2 数据复制 419
12.11.3 数据放置 421
12.12 客户/服务器与DDBMS
的比较 421
12.13 C. J. Date关于分布式数
据库的12条告诫 422
本章总结 423
思考题 424
习题 424
第13章 业务智能和数据仓库 427
13.1 数据分析需求 427
13.2 业务智能 428
13.3 业务智能架构 429
13.4 决策支持数据 433
13.4.1 运营数据对决策
支持数据 433
13.4.2 决策支持数据库
需求 435
13.5 数据仓库 437
13.5.1 12条定义数据
仓库的规则 440
13.5.2 决策支持架构
风格 441
13.6 联机分析处理 442
13.6.1 多维数据分析
技术 442
13.6.2 高级数据库支持 443
13.6.3 易于使用的终端
用户界面 444
13.6.4 客户端/服务器端
架构 444
13.6.5 OLAP架构 445
13.6.6 关系联机分析
处理 448
13.6.7 多维联机分析
处理 450
13.6.8 ROLAP对
MOLAP 451
13.7 星形模式 452
13.7.1 事实 452
13.7.2 维度 453
13.7.3 属性 453
13.7.4 属性层次结构 455
13.7.5 星形模式表示 456
13.7.6 用于星形模式的
性能提高技术 458
13.8 实现数据仓库 461
13.8.1 数据仓库作为
一个积极的决策
支持框架 461
13.8.2 需要用户参与的
全公司范围的
努力 461
13.8.3 满意三部曲:
数据、分析和
用户 461
13.8.4 应用数据库
设计过程 462
13.9 数据挖掘 463
13.10 OLAP的SQL扩展 465
13.10.1 ROLLUP扩展 466
13.10.2 CUBE扩展 467
13.10.3 物化视图 468
本章小结 471
思考题 472
习题 473
第5部分 数据库与Internet
第14章 数据库互连和Web技术 479
14.1 数据库连接 479
14.1.1 本机SQL连接 480
14.1.2 ODBC、DAO和
RDO 481
14.1.3 OLE-DB 483
14.1.4 ADO.NET 485
14.1.5 Java数据库连接
(JDBC) 488
14.2 互联网数据库 489
14.2.1 Web到数据库
中间件:服务器
端的扩展 490
14.2.2 Web服务器接口 491
14.2.3 Web浏览器 492
14.2.4 客户端扩展 494
14.2.5 Web应用服务器 495
14.3 可扩展标记语言(XML) 495
14.3.1 文档类型定义
(DTD)与XML
模式 497
14.3.2 XML表示 500
14.3.3 XML应用程序 501
本章小结 503
思考题 504
习题 504
第6部分 数据库与管理
第15章 数据库管理和安全 509
15.1 数据是公司资产 509
15.2 机构中数据库的角色
需求 510
15.3 数据库引入:特定
考虑 511
15.4 数据库管理职能开发 512
15.5 数据库环境中人的构成 515
15.5.1 DBA的管理
角色 517
15.5.2 DBA的技术
角色 522
15.6 安全性 527
15.6.1 安全策略 528
15.6.2 安全漏洞 528
15.6.3 数据库安全 529
15.7 数据库管理工具 530
15.7.1 数据字典 531
15.7.2 CASE工具 533
15.8 开发数据管理策略 535
15.9 DBA工作:Oracle数据
库管理 536
15.9.1 Oracle数据库
管理工具 537
15.9.2 默认登录 537
15.9.3 保证RDBMS自动
开始 538
15.9.4 创建表空间和数据
文件 539
15.9.5 管理数据库对象:
表、视图、触发器和
存储过程 541
15.9.6 管理用户和构建
安全性 542
15.9.7 自定义数据库初
始化参数 543
15.9.8 创建新数据库 544
本章小结 549
思考题 550
词汇表 553
