第1章 数据库系统概论 1
1.1 数据库系统的应用 1
1.1.1 数据库系统的应用领域 1
1.1.2 数据库应用系统示例 3
1.2 数据管理技术的发展 4
1.2.1 人工管理阶段 5
1.2.2 文件系统阶段 5
1.2.3 数据库系统阶段 6
1.3 数据库系统的构成 8
1.3.1 数据库系统 8
1.3.2 数据库管理系统 9
1.3.3 数据库系统人员的构成 10
1.4 数据库系统的结构 11
1.4.1 数据的三级模式结构 11
1.4.2 数据独立性 13
1.4.3 SQL中的三级模式结构 14
1.4.4 面对用户的数据库系统体系结构 15
1.4.5 用户访问数据库的过程 16
1.5 数据库系统研究概述 17
1.6 小结 18
习题1 19
第2章 建立数据模型 20
2.1 现实世界的数据化过程 20
2.2 概念模型 21
2.2.1 概念模型的基本概念 21
2.2.2 E-R图的基本表示方法 22
2.2.3 联系 23
2.2.4 多元联系 24
2.2.5 联系的属性 25
2.2.6 自身联系 25
2.2.7 弱实体集 26
2.2.8 子类和Is-a层次联系 26
2.3 E-R模型的设计方法 27
2.4 数据模型 32
2.5 关系模型 32
2.5.1 关系模型数据结构及基本概念 33
2.5.2 关系模型的数据操作 35
2.5.3 关系的完整性约束 35
2.6 E-R模型向关系模型的转化 36
2.7 历史上有影响的数据模型 39
2.7.1 层次模型 39
2.7.2 网状模型 40
2.8 数据模型与数据库系统的发展 41
2.9 小结 44
习题2 45
第3章 SQL语言初步 48
3.1 SQL简介 48
3.2 基本的数据定义 50
3.2.1 创建基本表——CREATE TABLE 50
3.2.2 表结构的修改——ALTER TABLE 53
3.2.3 删除基本表——DROP TABLE 54
3.2.4 创建索引——CREATE INDEX 54
3.2.5 删除索引——DROP INDEX 55
3.3 基本的数据操作 56
3.3.1 表中增加元组——INSERT 56
3.3.2 修改表中数据——UPDATE 56
3.3.3 删除元组——DELETE 57
3.3.4 更新操作与数据库的一致性 57
3.4 数据查询——SELECT 58
3.4.1 无条件单关系查询 58
3.4.2 带条件单关系查询 61
3.4.3 分组查询 63
3.4.4 排序查询 64
3.4.5 多关系连接查询 65
3.4.6 嵌套查询 68
3.4.7 多个SELECT语句的集合操作 73
3.5 含有子查询的数据更新 73
3.5.1 INSERT与子查询的结合 74
3.5.2 UPDATE与子查询的结合 74
3.5.3 DELETE与子查询的结合 75
3.6 视图 75
3.6.1 定义视图——CREATE VIEW 75
3.6.2 删除视图——DROP VIEW 77
3.6.3 视图的查询 77
3.6.4 视图的更新 78
3.6.5 视图的作用 80
3.7 小结 80
习题3 81
第4章 完整性和安全性 85
4.1 完整性约束的SQL定义 85
4.1.1 实体完整性约束和主码 85
4.1.2 参照完整性约束和外部码 86
4.1.3 用户自定义完整性约束 88
4.1.4 约束的更新 90
4.2 SQL中的触发器 90
4.2.1 触发器的组成和类型 91
4.2.2 创建触发器 91
4.2.3 触发器创建实例 92
4.3 数据库安全 94
4.3.1 用户标识和鉴别 94
4.3.2 访问控制 95
4.3.3 强制存取控制方法 99
4.3.4 视图和查询修改 100
4.3.5 跟踪审计 100
4.3.6 数据加密 101
4.4 小结 101
习题4 102
第5章 数据库编程 104
5.1 客户机/服务器体系结构 104
5.2 数据库编程方法 107
5.3 嵌入式SQL的使用 108
5.3.1 嵌入式SQL的一般形式 109
5.3.2 嵌入式SQL与宿主语言之间的信息传递 109
5.3.3 游标 112
5.3.4 通过游标的更新和删除 114
5.3.5 动态SQL介绍 116
5.4 数据库接口技术 117
5.4.1 开放数据库互连——ODBC 117
5.4.2 ODBC实例分析 119
5.4.3 Java数据库连接——JDBC 122
5.5 SQL中的存储过程 123
5.5.1 存储过程的定义 124
5.5.2 存储过程的执行 126
5.6 SQL中的用户定义函数 127
5.6.1 函数的定义 127
5.6.2 函数的调用和执行 130
5.6.3 函数与存储过程 131
5.7 小结 131
习题5 132
第6章 关系数据模型及其运算基础 134
6.1 关系模型的基本概念 134
6.2 关系模式 136
6.3 关系代数 136
6.3.1 基于传统集合运算的关系运算 137
6.3.2 投影(Projection) 138
6.3.3 选择(Selection) 139
6.3.4 连接(Join) 139
6.3.5 更名(Rename) 142
6.3.6 除(Division) 142
6.3.7 综合运算举例 144
6.4 包 145
6.5 扩展关系代数 146
6.5.1 消除重复 146
6.5.2 聚集运算和分组运算 146
6.5.3 排序运算 147
6.5.4 广义投影运算 148
6.6 关系演算 149
6.6.1 元组关系演算 149
6.6.2 域关系演算 150
6.7 查询优化 151
6.7.1 查询处理概述 152
6.7.2 关系代数等价变换规则 153
6.7.3 查询优化的一般策略 154
6.7.4 关系代数表达式的优化算法 155
6.8 关系系统 157
6.8.1 全关系系统的基本准则 157
6.8.2 关系系统的定义 158
6.8.3 关系系统的分类 159
6.9 小结 160
习题6 161
第7章 关系数据库规范化理论 163
7.1 关系规范化的作用 163
7.2 函数依赖 165
7.2.1 属性间的联系 165
7.2.2 函数依赖 166
7.2.3 码的定义 167
7.3 关系模式的规范化 168
7.3.1 非规范化的关系 168
7.3.2 第一范式(1NF) 169
7.3.3 第二范式(2NF) 170
7.3.4 第三范式(3NF) 171
7.3.5 改进的3NF—— BCNF 171
7.4 多值依赖和第四范式 173
7.4.1 多值依赖(Multivalued Dependency) 173
7.4.2 第四范式(4NF) 176
7.5 关系的规范化程度 176
7.6 函数依赖公理系统 177
7.6.1 闭包及其计算 178
7.6.2 最小函数依赖集 180
7.6.3 关系模式的分解 181
7.7 小结 184
习题7 185
第8章 数据库设计 188
8.1 数据库设计简介 189
8.1.1 数据库设计的一般策略 189
8.1.2 数据库设计的步骤 189
8.1.3 数据库设计的主流方法 191
8.2 需求分析 192
8.2.1 需求调查 192
8.2.2 需求分析的方法 193
8.3 概念结构设计 196
8.4 逻辑结构设计 197
8.4.1 模式评价 198
8.4.2 逻辑模式的修正 198
8.4.3 设计用户外模式 199
8.5 物理结构设计 200
8.5.1 存储记录结构设计 200
8.5.2 存储记录布局 201
8.5.3 存取方法的设计 201
8.6 数据库的实施和维护 202
8.6.1 数据库的实施 203
8.6.2 数据库的维护 205
8.7 UML方法规范数据库设计 206
8.7.1 UML用于数据库设计 206
8.7.2 各种UML图 207
8.8 使用PowerDesigner工具设计数据库 211
8.8.1 PowerDesigner简介 212
8.8.2 概念数据模型 214
8.8.3 物理数据模型 215
8.9 小结 216
习题8 217
第9章 事务管理 220
9.1 事务概述 220
9.1.1 事务的概念 220
9.1.2 事务的特性 222
9.2 并发控制技术 224
9.2.1 并发可能出现的问题 224
9.2.2 封锁(Locking) 226
9.2.3 三级封锁协议 226
9.2.4 加锁请求的选择策略和活锁 227
9.2.5 死锁 228
9.2.6 并发调度的可串行性 229
9.2.7 两段封锁协议 230
9.2.8 多粒度封锁 231
9.2.9 意向锁 232
9.3 数据库恢复技术 233
9.3.1 故障的种类 233
9.3.2 故障恢复的手段 234
9.3.3 故障恢复的方法 235
9.4 小结 237
习题9 238
第10章 面向对象和对象-关系数据库 240
10.1 面向对象数据模型 240
10.1.1 对象 240
10.1.2 类和实例 241
10.1.3 类的继承 241
10.2 面向对象数据库建模 242
10.2.1 ODL的类说明 242
10.2.2 ODL中属性的说明 242
10.2.3 ODL中的联系 243
10.2.4 ODL中类的继承 244
10.2.5 ODL中方法的说明 245
10.2.6 E-R模型向面向对象数据模型的转换 246
10.3 对象-关系数据库 246
10.3.1 基本数据类型的扩充 247
10.3.2 支持复杂对象 248
10.3.3 支持继承 249
10.3.4 强大、通用的规则系统 250
10.4 小结 250
习题10 251
第11章 数据库新技术 252
11.1 分布式数据库 252
11.1.1 分布式数据库系统的定义 253
11.1.2 分布式数据库系统的特点 253
11.1.3 分布式数据库系统的模式结构 254
11.2 并行数据库 255
11.2.1 并行数据库系统的体系结构 256
11.2.2 并行处理技术 257
11.3 工程数据库 258
11.3.1 工程数据库的特点 258
11.3.2 工程数据库的系统结构 259
11.3.3 工程数据库的数据模型 260
11.3.4 版本和版本管理 261
11.4 数据仓库 262
11.4.1 数据仓库的定义与特征 262
11.4.2 数据仓库系统 263
11.4.3 数据仓库的数据库模式 264
11.4.4 数据仓库的分析工具 266
11.5 小结 267
习题11 267
附录A 上机实验指导 268
上机实验一 安装和了解SQL Server 2014 268
上机实验二 创建SQL Server数据库和表 274
上机实验三 基本表的建立和修改 279
上机实验四 SELECT语句基本格式的使用 280
上机实验五 SELECT语句高级格式和完整格式的使用 280
上机实验六 SQL的存储操作 281
上机实验七 视图的建立及操作 282
上机实验八 完整性约束的实现 282
上机实验九 安全性的实现 283
上机实验十 创建存储过程和用户定义函数 284
附录B PowerDesigner入门实验 285
参考文献 294