目录 2
第1部分 数据库概念 2
第1章 数据库系统 2
1.1 数据与信息 2
1.2 数据库和DBMS简介 3
1.3 数据库设计为什么重要 5
1.4 数据库的历史根源:文件和文件系统 6
1.5 文件系统数据管理的问题 10
1.5.1 结构和数据依赖性 12
1.5.2 字段定义和命名约定 12
1.5.3 数据冗余性 14
1.6 数据库系统 15
1.6.1 数据库系统的环境 16
1.6.2 DBMS的功能 18
1.6.3 管理数据库系统:重心转移 21
1.6.4 数据库的设计和建模 21
1.7 复习题 22
1.8 问题 22
第2章 数据模型 24
2.1 数据模型的重要性 24
2.2 数据模型的基本构件 25
2.3 商务规则 26
2.4 数据模型的演化 28
2.4.1 分层模型 28
2.4.2 网络模型 32
2.4.3 关系模型 35
2.4.4 实体关系模型 39
2.4.5 面向对象的模型 43
2.4.6 其他模型 46
2.4.7 数据模型总结 47
2.5 数据抽象的等级 50
2.5.1 概念模型 51
2.5.2 内部模型 53
2.5.3 外部模型 54
2.5.4 物理模型 56
2.6 复习题 57
2.7 问题 58
3.1 数据的逻辑视图 64
第2部分 设计概念 64
第3章 关系数据库模型 64
3.2 键 68
3.3 完整性规则详解 73
3.4 关系数据库运算符 74
5.4 非规范化 1 78
3.5 数据字典和系统目录 80
3.6 关系数据库中的关系 81
3.6.1 1∶1关系 82
3.6.2 1∶M关系 84
3.6.3 M∶N关系 86
3.7 数据冗余详解 90
3.8 索引 93
3.9 复习题 94
3.10 问题 96
4.1 实体关系(ER)模型 103
第4章 实体关系建模 103
4.1.1 实体 104
4.1.2 属性 104
4.1.3 关系 109
4.1.4 连接性和基数 110
4.1.5 关系强度 111
4.1.6 关系参与 114
4.1.7 关系强度和弱实体 117
4.1.8 关系级别 120
4.1.9 复合实体 124
4.1.10 实体父型和子型 127
4.2 ER建模符号对比 129
4.3 开发ER图 133
4.4 数据库设计的挑战:相互冲突的目标 140
4.5 复习题 143
4.6 问题 145
第5章 数据库表的规范化 156
5.1 数据库表和规范化 156
5.1.1 规范化需要 157
5.1.2 转换为第一范式 160
5.1.3 较换为第二范式 162
5.1.4 转换为第三范式 164
5.1.5 改进设计 165
5.1.6 对系统指定值的限制 169
5.1.7 Boyce-Codd范式 170
5.2 规范化和数据库设计 172
5.3 更高级别范式 176
5.5 复习题 179
5.6 问题 180
第3部分 高级设计和实现 188
第6章 SQL基础 188
6.1 SQL基础知识 188
6.2 数据定义命令 191
6.2.1 数据库模型 191
6.2.2 创建数据库 193
6.2.3 数据库模式 194
6.2.4 数据类型 194
6.2.5 创建表结构 197
6.2.6 SQL约束 201
6.2.7 SQL索引 204
6.3 数据操作命令 205
6.3.1 添加表行 205
6.3.2 保存表修改 207
6.3.3 显示表行 208
6.3.4 更新表行 209
6.3.6 删除表行 210
6.3.5 恢复表内容 210
6.3.7 使用SELECT子查询插入表行 211
6.4 SELECT查询 212
6.4.1 使用条件限制来选择行 213
6.4.2 算术运算符:优先级规则 219
6.4.3 逻辑运算符:AND、OR和NOT 219
6.4.4 特殊运算符 221
6.5 高级数据定义命令 224
6.5.1 修改列的数据类型 225
6.5.2 改变列的数据特性 225
6.5.3 添加列 226
6.5.4 删除列 226
6.5.5 高级数据更新 227
6.5.6 复制表的一部分 230
6.5.7 添加主键和外键指定 232
6.5.8 从数据库中删除表 232
6.6 高级SELECT查询 233
6.6.1 排序列表 233
6.6.2 显示惟一值 235
6.6.3 合计函数 236
6.6.4 分组数据 240
6.7 虚表:创建视图 243
6.8 联接数据库表 245
6.8.1 使用别名联接表 247
6.8.2 递归联接 248
6.8.3 外部联接 249
6.9 将ER模型转换为数据库结构 250
6.10 复习题 255
6.11 问题 260
第7章 高级SQL 271
7.1 关系集合运算符 271
7.1.1 UNION 272
7.1.2 UNION ALL 274
7.1.3 INTERSECT 274
7.1.4 MINUS 275
7.1.5 语法替代 277
7.2 SQL联接运算符 278
7.2.1 CROSS JOIN 279
7.2.2 NATURAL JOIN 280
7.2.3 JOIN USING子句 281
7.2.4 JOIN ON子句 282
7.2.5 外部联接 283
7.3 子查询和关联查询 285
7.3.1 WHERE子查询 287
7.3.2 IN子查询 288
7.3.3 HAVING子查询 289
7.3.4 多行子查询运算符:ANY和ALL 290
7.3.5 FROM子查询 291
7.3.6 属性列表子查询 292
7.3.7 关联子查询 294
7.4 SQL函数 297
7.4.1 日期和时间函数 298
7.4.2 数值函数 300
7.4.3 字符串函数 301
7.4.4 转换函数 301
7.5 Oracle顺序 303
7.6 可更新视图 306
7.7 程序化SQL 309
7.7.1 触发器 313
7.7.2 存储过程 322
7.7.3 PL/SQL游标处理 327
7.8 嵌入式SQL 330
7.7.4 PL/SQL存储函数 330
7.9 复习题 334
7.10 问题 335
第8章 数据库设计 340
8.1 从数据到信息 340
8.2 信息系统 341
8.3 系统开发生命周期 342
8.3.1 规划 343
8.3.2 分析 344
8.3.3 详细的系统设计 344
8.3.5 维护 345
8.4 数据库生命周期 345
8.3.4 实现 345
8.4.1 数据库初步研究 346
8.4.2 数据库设计 350
8.4.3 实现和加载 363
8.4.4 测试和评估 366
8.4.5 运行 367
8.4.6 维护和演化 367
8.5 关于数据库设计策略的特别提示 368
8.6 集中式与分散式设计 369
8.7 复习题 371
8.8 问题 372
9.1 事务的概念 376
第9章 事务管理和并发控制 376
第4部分 高级数据库概念 376
9.1.1 评估事务的结果 378
9.1.2 事务的性质 380
9.1.3 SQL的事务管理 381
9.1.4 事务日志 382
9.2 并发控制 383
9.2.1 更新丢失 383
9.2.2 未提交数据 384
9.2.3 不一致检索 385
9.2.4 调度程序 387
9.3 使用锁定方法的并发控制 388
9.3.1 锁的粒度 388
9.3.2 锁的类型 390
9.3.3 确保可串行性的两阶段锁定技术 392
9.3.4 死锁 393
9.4 使用时间戳方法的并发控制 394
9.5 使用优化方法的并发控制 395
9.6 数据库恢复管理 396
9.7 复习题 400
9.8 问题 400
第10章 分布式数据库管理系统 403
10.1 分布式数据库管理系统的演化 403
10.2 DDBMS的优点 405
10.3 DDBMS的缺点 406
10.4 分布式处理和分布式数据库 407
10.5 分布式数据库管理系统的特性 408
10.6 DDBMS组件 410
10.7 数据和处理的分布等级 411
10.7.1 SPSD 411
10.7.2 MPSD 412
10.7.3 MPMD 413
10.8 分布式数据库的透明性 414
10.9 分布透明性 415
10.10 事务透明性 417
10.10.1 分布式请求和分布式事务 417
10.10.2 分布式并发控制 420
10.10.3 两阶段提交协议 421
10.11 性能透明性和查询优化 422
10.12 分布式数据库设计 423
10.12.1 数据分段 423
10.12.2 数据重复 426
10.12.3 数据分配 428
10.13 客户机/服务器与DDBMS 429
10.14 C.J.Date提出的12条分布式数据库准则 429
10.15 复习题 430
10.16 问题 431
第11章 面向对象的数据库 434
11.1 面向对象及其益处 434
11.2 面向对象概念的演化 435
11.3 面向对象的概念 436
11.3.1 对象:组件和特征 436
11.3.2 对象标识 437
11.3.3 属性:实例变量 437
11.3.4 对象状态 438
11.3.5 消息和方法 438
11.3.6 类 440
11.3.7 协议 441
11.3.8 超类、子类和继承 442
11.3.9 方法重载和多态 444
11.3.10 抽象数据类型 446
11.4 面向对象数据模型的特征 447
11.3.11 对象分类 447
11.4.1 对象模式:对象的图形表示 448
11.4.2 类与子类的关系 451
11.4.3 对象间关系:属性与类的链接 451
11.4.4 后期绑定和先期绑定:用途和重要性 457
11.4.5 支持版本管理 458
11.5 OODM和以前的数据模型:相似性和差异 459
11.5.1 对象、实体和元组 459
11.5.2 类、实体集和表 459
11.5.6 访问方法 460
11.5.5 关系 460
11.5.4 对象ID 460
11.5.3 封装和继承 460
11.6 面向对象的数据库管理系统 462
11.6.1 OODBMS的功能 463
11.6.2 Oracle对象示例 465
11.7 面向对象技术怎样影响数据库的设计 470
11.8 OODBMS:优点和缺点 471
11.9 OO概念怎样影响关系模型 473
11.10 下一代数据库管理系统 474
11.11 复习题 474
11.12 问题 475
第12章 数据仓库 479
12.1 对数据分析的需求 479
12.2 决策支持系统 481
12.2.1 运行数据与决策支持数据 482
12.2.2 DSS数据库的需求 485
12.3 数据仓库 488
12.3.1 DSS体系结构样式 491
12.3.2 定义数据仓库的 492
12条规则 492
12.4 在线分析处理 492
12.4.1 多维数据分析技术 492
12.4.2 先进的数据库支持 494
12.4.3 易于使用的终端用户界面 495
12.4.4 客户机/服务器体系结构 495
12.4.5 OLAP的体系结构 495
12.4.6 ROLAP 498
12.4.7 MOLAP 500
12.4.8 关系OLAP与多维OLAP 502
12.5 星型模式 502
12.5.1 事实 503
12.5.2 维 503
12.5.3 属性 504
12.5.4 属性层次 505
12.5.5 星型模式的表示方法 507
12.5.6 星型模式的性能提升技术 509
12.6 实现数据仓库 511
12.6.1 数据仓库是活动的决策支持架构 511
12.6.3 满足三步曲:数据、分析和用户 512
12.6.4 应用数据库设计方法 512
12.6.2 实现数据仓库是全公司范围且需要用户参与的工作 512
12.7 数据提炼 513
12.8 复习题 516
12.9 问题 517
第5部分 数据库与Internet 522
第13章 电子商务中的数据库 522
13.1 什么是电子商务 523
13.2 电子商务之路 524
13.3 电子商务的影响 526
13.3.1 电子商务的优点 527
13.3.2 电子商务的缺点 527
13.4 电子商务系统 528
13.4.1 B2B 529
13.4.2 B2C 532
13.4.3 内联网和外联网 532
13.5 电子商务体系结构 533
13.5.1 基本的Internet服务 533
13.5.2 商务支持服务 537
13.5.3 电子商务商业服务 538
13.6 安全性 539
13.6.1 身份验证 540
13.6.2 加密 541
13.6.3 事务安全性 542
13.6.4 资源安全性 544
13.7.1 数字现金 546
13.7.2 信用卡处理 546
13.7 Web支付处理 546
13.7.3 电子钱包 547
13.8 电子商务应用的数据库设计 548
13.8.1 CUSTOMER表 550
13.8.2 PRODUCT表 552
13.8.3 PRODTYPE表 553
13.8.4 ORDER表 553
13.8.5 ORDLINE表 554
13.8.6 SHOPCART表 555
13.8.9 TAXRATE表 556
13.8.7 PMTTYPE表 556
13.8.8 SHIPTYPE表 556
13.8.10 STATE表 557
13.8.11 PROMOTION表 557
13.8.12 PRICEWATCH表 557
13.8.13 PRODPRICE表 558
13.9 扩展标记语言 558
13.9.1 文档类型定义和XML模式 560
13.9.2 XML表示法 563
13.9.3 XML应用程序 565
13.10 复习题 567
13.11 问题 567
14.1 Internet技术和数据库 569
第14章 Web数据库开发 569
14.2 Internet数据库的典型使用 570
14.3 Web到数据库中间件:服务器端扩展 571
14.3.1 Web服务器接口 573
14.3.2 开放式数据库连接(ODBC) 574
14.4 Web浏览器 576
14.5 使用一种Web到数据库的开发工具:ColdFusion 577
14.5.1 ColdFusion的工作方式 578
14.5.2 ROBCOR样本数据库 579
14.5.3 使用CFQUERY和FOUTPUT创建简单查询 580
14.5.4 使用CFQUERY和CFTABLE创建简单查询 583
14.5.5 创建动态搜索页面 584
14.5.6 无状态系统的Web 588
14.5.7 插入数据 589
14.5.8 数据更新 593
14.5.9 删除数据 598
14.6 Internet数据库系统:特殊事项 603
14.6.1 所支持的数据类型 603
14.6.2 数据安全 604
14.6.3 事务管理 605
14.6.4 数据库表的非正常化 605
14.7 复习题 606
14.8 问题 606
第15章 数据库管理 610
15.1 作为公司资产的数据 610
第6部分 数据库管理 610
15.2 组织需要数据库的原因和数据库的作用 611
15.3 介绍数据库:特殊事项 612
15.4 数据库管理功能的演化 613
15.5 数据库环境中的人的因素 616
15.5.1 DBA的管理角色 619
15.5.2 DBA的技术作用 625
15.6 数据库管理工具 630
15.6.1 数据字典 630
15.6.2 CASE工具 632
15.7 开发数据管理策略 634
15.8.1 Oracle数据库管理工具 636
15.8 运行中的DBA:使用ORACLE管理数据库 636
15.8.2 默认登录 637
15.8.3 确保自动启动RDBMS 638
15.8.4 使用存储管理员创建表空间和数据文件 639
15.8.5 管理数据库对象:表、视图、触发器和过程 641
15.8.6 管理用户和建立安全性 642
15.8.7 定制数据库初始化参数 644
15.8.8 创建新数据库 645
15.9 复习题 650
附录 654
附录A Visio Professional数据库设计指南 654
附录B UML简介 678
附录C 客户机/服务器系统 686
附录D 客户机/服务器网络的底层结构 715