第1部分 数据库概念 3
第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部分 数据库设计概念 53
第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部分 高级数据库设计与实现 177
第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部分 高级数据库概念 341
第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 479
第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 ADONET 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部分 数据库与管理 509
第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