第1部分 基础篇 2
第1章 数据库发展史 2
1.1 数据管理技术的发展 2
1.1.1 人工管理阶段 2
1.1.2 文件系统阶段 3
1.1.3 文件系统的缺陷 3
1.1.4 倒排文件系统阶段 4
1.2 数据库技术的产生和发展 5
1.2.1 数据库技术的产生 5
1.2.2 数据库阶段的特点 6
1.2.3 数据库技术的术语 8
1.2.4 数据库技术的发展 8
小结 10
习题1 10
第2章 数据库系统结构 11
2.1 数据描述 11
2.1.1 概念设计中的数据描述 11
2.1.2 逻辑设计中的数据描述 11
2.1.3 存储介质层次及数据描述 12
2.1.4 数据联系的描述 13
2.2 数据模型 15
2.2.1 数据模型的定义 15
2.2.2 实体联系模型 15
2.2.3 层次模型 17
2.2.4 网状模型 18
2.2.5 关系模型 19
2.2.6 面向对象模型 20
2.3 数据库的体系结构 21
2.3.1 三级模式结构 21
2.3.2 三级结构和两级映像 23
2.3.3 两级数据独立性 24
2.3.4 用户及用户界面 24
2.4 数据库管理系统 24
2.4.1 DBMS的工作模式 24
2.4.2 DBMS的主要功能 25
2.4.3 DBMS的模块组成 27
2.5 数据库系统 27
2.5.1 DBS的组成 27
2.5.2 DBS的全局结构 28
2.5.3 DBS结构的分类 30
2.5.4 DBS的效益 32
小结 32
习题2 33
第2部分 运算篇 36
第3章 关系运算 36
3.1 关系数据模型 36
3.1.1 关系数据模型的定义 36
3.1.2 关键码和表之间的联系 37
3.1.3 关系模式、关系子模式和存储模式 38
3.1.4 关系模型的完整性规则 40
3.1.5 关系模型的形式定义 41
3.2 关系代数 42
3.2.1 关系查询语言和关系运算 42
3.2.2 关系代数的五个基本操作 42
3.2.3 关系代数的组合操作 45
3.2.4 关系代数表达式及其应用实例 48
3.2.5 扩充的关系代数操作 50
3.3 关系演算 51
3.3.1 元组关系演算 51
3.3.2 域关系演算 54
3.3.3 关系运算的安全性和等价性 56
3.4 查询优化 57
3.4.1 关系代数表达式的优化问题 57
3.4.2 关系代数表达式的等价变换规则 58
3.4.3 优化的一般策略 60
3.4.4 优化算法 61
小结 64
习题3 65
第4章 结构化查询语言 67
4.1 SQL概述 67
4.1.1 SQL的发展历程 67
4.1.2 SQL数据库的体系结构 67
4.1.3 SQL的组成 68
4.2 SQL的数据定义 68
4.2.1 SQL模式的创建和撤销 69
4.2.2 SQL提供的基本数据类型 69
4.2.3 基本表的创建、修改和撤销 70
4.2.4 视图的创建和撤销 72
4.2.5 索引的创建和撤销 73
4.3 SQL的数据查询 74
4.3.1 SELECT语句格式 74
4.3.2 单表查询 76
4.3.3 多表查询 79
4.3.4 联接操作 82
4.3.5 聚合函数 84
4.3.6 数据分组 85
4.3.7 集合操作 86
4.4 SQL的数据更新 89
4.4.1 数据插入 89
4.4.2 数据删除 90
4.4.3 数据修改 91
4.4.4 对视图的更新操作 91
4.5 嵌入式SQL 93
4.5.1 SQL语言的运行环境 93
4.5.2 嵌入式SQL的使用规定 94
4.5.3 嵌入式SQL的使用技术 95
4.5.4 动态SQL语句 98
小结 99
习题4 100
第3部分 设计篇 104
第5章 规范化设计 104
5.1 关系模式的设计问题 104
5.1.1 关系模型的外延和内涵 104
5.1.2 泛关系模式与数据库模式 104
5.1.3 关系模式的冗余和异常问题 105
5.1.4 本章的符号规定 106
5.2 函数依赖 106
5.2.1 函数依赖的定义 107
5.2.2 FD的逻辑蕴涵 107
5.2.3 FD的推理规则 108
5.2.4 FD和关键码的联系 109
5.2.5 属性集的闭包 109
5.2.6 FD集的最小依赖集 110
5.3 关系模式的分解特性 110
5.3.1 模式分解问题 110
5.3.2 无损分解 111
5.3.3 无损分解的测试方法 113
5.3.4 保持函数依赖的分解 114
5.3.5 本节小结 115
5.4 关系模式的范式 116
5.4.1 第一范式 116
5.4.2 第二范式 116
5.4.3 第三范式 117
5.4.4 BCNF 118
5.4.5 分解成BCNF模式集的方法 118
5.4.6 分解成3NF模式集的方法 119
5.4.7 模式设计方法的原则 119
5.5 模式的进一步规范化 120
5.5.1 多值依赖的定义 120
5.5.2 关于FD和MVD的推理规则集 121
5.5.3 第四范式 122
5.5.4 联接依赖 122
5.5.5 第五范式 123
小结 123
习题5 124
第6章 实体联系模型 126
6.1 ER模型的基本元素 126
6.2 属性的分类 127
6.2.1 基本属性和复合属性 127
6.2.2 单值属性和多值属性 128
6.2.3 导出属性 129
6.2.4 空值 129
6.3 联系的设计 130
6.3.1 联系的元数 130
6.3.2 联系的连通词 130
6.3.3 联系的基数 132
6.4 ER模型的扩充 133
6.4.1 依赖联系与弱实体 133
6.4.2 子类和超类 134
6.5 ER模型实例分析 134
小结 137
习题6 138
第7章 数据库设计 140
7.1 数据库设计概述 140
7.1.1 软件生存期 140
7.1.2 数据库系统生存期 141
7.1.3 数据库设计的具体步骤 142
7.2 规划 143
7.3 需求分析 144
7.3.1 需求描述与分析 144
7.3.2 需求分析阶段的输入和输出 145
7.3.3 需求分析的步骤 145
7.4 概念设计 149
7.4.1 概念设计的必要性 149
7.4.2 概念模型 149
7.4.3 概念设计的主要步骤 150
7.4.4 数据抽象 151
7.4.5 ER模型的操作 153
7.4.6 采用ER方法的数据库概念设计 155
7.5 逻辑设计 161
7.5.1 逻辑设计环境 161
7.5.2 逻辑设计的步骤 162
7.5.3 ER模型向关系模型的转换 163
7.5.4 关系数据库的逻辑设计 165
7.6 物理设计 168
7.7 数据库的实现 169
7.8 数据库的运行和维护 169
小结 170
习题7 170
第8章 数据库的管理 172
8.1 事务的概念 172
8.1.1 事务的定义 172
8.1.2 事务的ACID性质 173
8.2 数据库的恢复 174
8.2.1 恢复的定义原则和方法 174
8.2.2 故障类型和恢复方法 175
8.2.3 检查点机制 175
8.2.4 运行记录优先原则 176
8.2.5 SQL对事务的支持 177
8.3 数据库的并发控制 177
8.3.1 并发操作带来的三个问题 177
8.3.2 封锁机制 179
8.3.3 活锁、饿死和死锁 182
8.3.4 并发调度的可串行化 183
8.3.5 SQL中事务的存取模式和隔离级别 184
8.4 数据库的完整性 185
8.4.1 完整性子系统和完整性规则 185
8.4.2 SQL中的完整性约束 186
8.4.3 SQL 3的触发器 189
8.5 数据库的安全性 191
8.5.1 安全性级别 191
8.5.2 权限 192
8.5.3 SQL中的安全性机制 192
8.5.4 数据加密 194
8.5.5 自然环境的安全性 194
小结 195
习题8 195
第4部分 发展篇 198
第9章 分布式数据库系统 198
9.1 DDBS概述 198
9.1.1 集中式系统与分布式系统 198
9.1.2 DDBS的定义 198
9.1.3 DDBS的特点 200
9.1.4 DDBS的优缺点 201
9.1.5 DDBS的分类 202
9.2 分布式数据存储 202
9.2.1 数据分片 203
9.2.2 数据分配 204
9.3 DDB的模式结构 205
9.3.1 六层模式结构 205
9.3.2 六层结构的特征 207
9.3.3 分布透明性 207
9.4 DDBMS的功能及组成 209
9.4.1 DDBS的组成 209
9.4.2 DDBMS的功能 209
9.4.3 DDBMS的组成 210
9.5 分布式查询处理 211
9.5.1 查询代价的估算方法 211
9.5.2 基于半联接的优化策略 211
9.5.3 基于联接的优化策略 213
小结 214
习题9 215
第10章 对象关系数据库 216
10.1 对象联系图 216
10.1.1 从关系到嵌套关系、复合对象 216
10.1.2 引用类型 218
10.1.3 对象联系图的成分 218
10.1.4 数据的泛化/细化 220
10.2 面向对象的类型系统 220
10.3 ORDB的定义语言 222
10.3.1 ORDB的定义 222
10.3.2 数据类型的定义 222
10.3.3 继承性的定义 223
10.3.4 引用类型的定义 224
10.3.5 SQL 3中的定义语言 225
10.4 ORDB的查询语言 226
10.4.1 SELECT语句的使用规定 226
10.4.2 嵌套与解除嵌套 228
10.4.3 函数的定义和使用 229
10.4.4 复合值的创建和查询 229
小结 230
习题10 230
第11章 面向对象数据库 232
11.1 面向对象数据库系统概述 232
11.1.1 ODMG组织和标准 232
11.1.2 OODBS的概念 233
11.2 面向对象数据模型的基本概念 233
11.2.1 对象 233
11.2.2 类 234
11.2.3 继承性 235
11.2.4 对象标识 236
11.2.5 对象包含 236
11.3 ODMG 93和持久化C++系统 237
11.3.1 持久化程序设计语言 237
11.3.2 ODMG C++对象定义语言 239
11.3.3 ODMG C++对象操纵语言 240
11.4 ODMG 97和对象语言 241
11.4.1 ODMG数据模型 241
11.4.2 ODMG ODL 242
11.4.3 ODMG OQL 243
11.5 OODB与ORDB的比较 248
11.6 使用UML类图来概念对象建模 249
11.6.1 统一建模语言概述 249
11.6.2 用类图表达类和关联 249
11.6.3 用类图表达关联类 252
11.6.4 用类图表达泛化/细化 253
11.6.5 用类图表达聚合 255
小结 255
习题11 256
第5部分 应用篇 260
第12章 SQL Server关系数据库系统 260
12.1 SQL Server概述 260
12.1.1 SQL Server的发展 260
12.1.2 SQL Server 2000的特性 261
12.1.3 安装SQL Server 2000的软硬件需求 261
12.1.4 SQL Server 2000的安装 262
12.1.5 SQL Server 2000的环境介绍 262
12.1.6 SQL Server 2000的工具介绍 264
12.2 数据库的创建、修改和删除 268
12.2.1 创建SQL Server数据库 268
12.2.2 修改数据库 270
12.2.3 删除数据库 271
12.3 表的建立 271
12.3.1 学生表S的建立 272
12.3.2 创建学生表S的主键 274
12.3.3 用SQL语句命令方式创建课程表C 274
12.3.4 用数据库关系图方式创建学习表SC 275
12.4 数据的增加、修改、删除和查询 280
12.4.1 数据的增加 280
12.4.2 数据的修改 282
12.4.3 数据的删除 282
12.4.4 数据的查询 282
12.5 数据库的备份和恢复 283
12.5.1 数据库的备份 283
12.5.2 数据库的恢复 283
12.6 Transact-SQL介绍 285
12.6.1 Transact-SQL语法要素 285
12.6.2 运算符 286
12.6.3 函数 287
12.6.4 流程控制语句 288
12.7 高级应用技术 291
12.7.1 存储过程 291
12.7.2 触发器 295
小结 300
实验题 300
实验一 SQL Server 2000系统了解和创建数据库 300
实验二 SQL Server 2000操纵数据和使用视图 302
实验三 SQL Server 2000高级技术的使用 303
第13章 PowerBuilder 10.0数据库应用开发简介 305
13.1 PowerBuilder概述 305
13.1.1 PowerBuilder的特点 305
13.1.2 PowerBuilder 10.0的新特性 306
13.2 PowerBuilder 10.0集成开发环境 306
13.2.1 工作空间、目标和库文件 306
13.2.2 PowerBuilder 10.0主窗口 307
13.2.3 系统树、剪贴和输出窗口 307
13.2.4 工具栏 309
13.2.5 画板 310
13.3 “学生选课成绩管理系统”的开发过程 311
13.3.1 规划 312
13.3.2 创建数据库 315
13.3.3 创建表和数据操作 316
13.3.4 建立工作空间 320
13.3.5 建立目标和应用对象 321
13.3.6 建立数据窗口 323
13.3.7 创建“学生选课”主窗口 336
13.3.8 编写事件驱动程序 339
13.3.9 运行应用程序 343
13.3.10 创建另外几个窗口 344
13.3.11 创建“成绩管理”主窗口 347
13.3.12 创建系统登录窗口 349
13.3.13 添加菜单 351
13.3.14 生成可执行程序 356
13.4 PowerBuilder 10.0连接SQL数据库实例 357
13.4.1 创建数据源 358
13.4.2 定义数据库描述文件 361
13.4.3 连接数据源 363
13.5 PowerScript编程语言 363
13.5.1 基本语法规则 363
13.5.2 运算符和数据类型 364
13.5.3 变量及其作用域 365
13.5.4 实例变量的访问权限 365
13.5.5 常量 366
13.5.6 数组 366
13.5.7 函数 367
13.5.8 代词 367
13.5.9 语句 368
小结 370
实验题 371
实验四 熟悉PowerBuilder开发环境 371
实验五 “学生选课成绩管理系统”示例程序验证 372
实验六 编程实施学分制教务管理信息系统 373
参考文献 374