第一篇 基础理论 1
第1章 数据库技术概述 3
1.1 数据库的相关概念 3
1.1.1 数据 3
1.1.2 数据库 3
1.1.3 数据库管理系统 4
1.1.4 数据库系统 5
1.1.5 数据库技术 5
1.2 数据库管理系统概述 5
1.2.1 数据库管理系统的目标 6
1.2.2 数据库管理系统的功能 7
1.2.3 用户访问数据库的过程 8
1.2.4 数据库管理和数据库管理员 9
1.3 数据库系统概述 10
1.3.1 数据库系统的微观结构 10
1.3.2 数据库系统的宏观结构 13
1.4 数据库技术概述 15
1.4.1 数据库技术的发展历史 15
1.4.2 数据库技术的研究与应用领域和发展方向 18
习题1 21
第2章 数据模型 22
2.1 数据描述 22
2.1.1 数据的三种范畴 22
2.1.2 实体之间的联系 24
2.1.3 三种世界的概念转换 25
2.2 数据模型概述 26
2.2.1 数据模型的分类 26
2.2.2 数据模型的三要素 27
2.3 概念模型与E-R表示方法 28
2.3.1 概念模型的基本概念 28
2.3.2 概念模型的E-R表示方法 28
2.3.3 概念数据模型实例 31
2.4 逻辑数据模型 34
2.4.1 层次模型 34
2.4.2 网状模型 35
2.4.3 关系模型 37
2.4.4 面向对象模型 40
习题2 40
第3章 关系数据库理论及查询优化 42
3.1 关系数据库 42
3.1.1 关系模型的组成 42
3.1.2 关系模式的形式化定义 42
3.2 关系代数 43
3.2.1 五种基本运算 43
3.2.2 关系代数的其他操作 45
3.3 关系查询优化 48
3.3.1 关系系统及其查询优化 48
3.3.2 查询优化的一般准则 50
3.3.3 关系代数等价变换规则 51
3.3.4 关系代数表达式的优化算法 52
习题3 54
第二篇 设计理论 55
第4章 关系数据库设计理论 57
4.1 问题的提出 57
4.1.1 关系模式 57
4.1.2 关系 57
4.1.3 插入异常、删除异常、更新异常 59
4.2 关系模式的函数依赖 59
4.2.1 函数依赖 59
4.2.2 键(key) 61
4.2.3 函数依赖的公理体系 62
4.3 关系模式的规范化 67
4.3.1 第一范式(1NF) 67
4.3.2 第二范式(2NF) 68
4.3.3 第三范式(3NF) 69
4.3.4 BCNF范式 69
4.3.5 多值依赖与第四范式 70
4.3.6 各范式之间的关系 73
4.4.关系模式的分解特性 73
4.4.1 关系模式的分解 73
4.4.2 分解的无损连接性 74
4.4.3 关系模式分解算法 80
4.5 关系模式的优化 84
4.5.1 水平分解 85
4.5.2 垂直分解 85
习题4 86
第5章 数据库的设计与实施 88
5.1 数据库设计概述 88
5.1.1 数据库设计的特点 88
5.1.2 数据库设计方法 89
5.1.3 数据库设计的步骤 90
5.2 数据库规划 91
5.3 需求分析 91
5.3.1 需求分析的任务 92
5.3.2 需求分析的方法 92
5.3.3 需求分析的步骤 93
5.4 概念结构设计 96
5.4.1 设计各局部应用的E-R模型 96
5.4.2 全局E-R模型的设计 98
5.5 逻辑结构设计 98
5.5.1 E-R图向关系模型的转换 99
5.5.2 关系模型向特定的RDBMS的转换 100
5.5.3 逻辑数据模型的优化 100
5.5.4 外模式的设计 101
5.6 物理结构设计 103
5.6.1 关系模式存取方法选择 103
5.6.2 确定系统的存储结构 106
5.7 数据库实施 107
5.8 数据库运行和维护 108
5.9 数据库设计实例——图书管理系统数据库设计 109
习题5 111
第三篇 安全与保护理论 113
第6章 数据库的安全性控制 115
6.1 数据库安全性控制概述 115
6.2 SQL Server的安全性措施概述 116
6.3 SQL Server身份验证 117
6.3.1 身份验证概述 117
6.3.2 身份验证方模式设置 118
6.3.3 登录名管理 120
6.4 SQL Server数据库身份验证 123
6.5 SQL Server数据库对象安全验证 124
6.5.1 角色 124
6.5.2 授权的主体 127
6.5.3 架构 127
6.5.4 授权的安全对象 128
6.5.5 权限操作 130
6.5.6 命令行方式进行权限管理 131
习题6 133
第7章 数据的完整性控制 135
7.1 完整性约束条件 135
7.2 完整性控制 137
7.3 SQL Server的完整性实现 140
7.3.1 约束 141
7.3.2 其他方法 144
习题7 144
第8章 事务 145
8.1 事务的概念 145
8.2 事务的调度 147
8.3 事务的隔离级别 149
8.4 SQL Server中的事务定义 152
习题8 154
第9章 并发控制 155
9.1 封锁技术 155
9.2 事务隔离级别与封锁规则 156
9.3 封锁的粒度 158
9.4 封锁带来的问题 159
9.5 两段锁协议 161
9.6 悲观并发控制与乐观并发控制 162
9.7 SQL Server的并发控制 162
习题9 164
第10章 数据库恢复 165
10.1 数据库恢复技术 165
10.1.1 故障种类 165
10.1.2 恢复的实现技术 166
10.1.3 SQL Server基于日志的恢复策略 168
10.1.4 SQL Server检查点 170
10.2 SQL Server的备份与恢复 172
习题10 178
第四篇 基础应用 179
第11章 SQL Server 2012基本知识 181
11.1 SQL Server 2012发展简介 181
11.2 SQL Server 2012组件和管理工具 182
11.2.1 服务器组件 182
11.2.2 管理工具 183
11.2.3 文档 184
11.3 SQL Server 2012服务器的管理 184
11.3.1 启动/停止服务器 184
11.3.2 配置管理器 185
11.3.3 服务器的注册 186
习题11 187
第12章 数据库操作 188
12.1 SQL Server实例 188
12.2 数据库基本概念 188
12.2.1 物理数据库 189
12.2.2 逻辑数据库 190
12.2.3 系统数据库和用户数据库 193
12.3 创建数据库 194
12.3.1 管理工具交互方式创建数据库 195
12.3.2 命令行方式创建数据库 197
12.4 修改数据库 198
12.4.1 管理工具交互方式修改数据库 198
12.4.2 命令行方式修改数据库 199
12.5 删除数据库 200
12.5.1 管理工具交互方式删除数据库 200
12.5.2 命令行方式删除数据库 200
12.6 数据库的分离和附加 201
12.6.1 分离数据库 201
12.6.2 附加数据库 201
12.7 数据库的快速备份与恢复 202
12.8 数据库的收缩 203
12.8.1 手动收缩 203
12.8.2 自动收缩 204
12.9 移动数据库 204
12.10 数据库快照 205
12.10.1 数据库快照的优点 205
12.10.2 数据库快照的操作 206
习题12 207
第13章 表和表数据操作 208
13.1 表概念 208
13.1.1 表结构 208
13.1.2 表类型 209
13.2 创建表 210
13.2.1 列的数据类型 210
13.2.2 列的其他属性 215
13.2.3 交互方式创建表 216
13.2.4 命令行方式创建表 217
13.3 修改表 218
13.3.1 交互方式修改表 218
13.3.2 命令行方式修改表 220
13.4 删除表 221
13.5 表数据操作 221
13.5.1 交互方式操作表数据 221
13.5.2 命令行方式操作表数据 223
习题13 225
第14章 数据查询 226
14.1 数据查询语句 226
14.1.1 投影列 227
14.1.2 选择行 229
14.1.3 连接 231
14.2 排序 234
14.3 简单统计 235
14.4 分组统计 236
14.5 子查询 237
14.5.1 无关子查询 237
14.5.2 相关子查询 238
14.5.3 子查询作数据项 240
14.6 集合操作 241
14.7 存储查询结果 242
习题14 243
第15章 视图 245
15.1 视图概述 245
15.2 视图的类型 246
15.3 创建视图 246
15.4 查询视图 248
15.5 可更新视图 249
15.6 修改视图定义 250
15.7 删除视图 251
15.8 视图小结 251
15.8.1 创建视图准则 251
15.8.2 视图的优点和作用 252
习题15 253
第16章 数据完整性、索引和关系图 254
16.1 数据完整性的约束 254
16.1.1 PRIMARY KEY主键约束 254
16.1.2 UNIQUE唯一性约束 256
16.1.3 FOREIGN KEY引用完整性约束 257
16.1.4 CHECK检查约束 259
16.2 索引 260
16.2.1 索引的分类 261
16.2.2 创建索引 261
16.2.3 查看索引 263
16.2.4 修改索引 264
16.2.5 删除索引 264
16.2.6 其他类型索引 265
16.2.7 优化索引 267
16.3 数据库关系图 269
习题16 270
第五篇 高级应用 273
第17章 T-SQL语言 275
17.1 SQL语言基本元素 275
17.1.1 T-SQL语言简介 275
17.1.2 T-SQL语言的语法约定 275
17.1.3 标识符 276
17.1.4 常量和变量 277
17.1.5 注释 279
17.1.6 运算符 279
17.1.7 函数 280
17.1.8 表达式 283
17.2 流程控制语句 287
17.2.1 SET语句 287
17.2.2 BEGIN END语句 289
17.2.3 IF-ELSE语句 289
17.2.4 WHILE、 BREAK、 CONTINUE语句 289
17.2.5 RETURN语句 290
17.2.6 WAITFOR语句 290
17.2.7 GOTO语句 291
17.2.8 TRY CATCH语句 291
17.2.9 GO语句 292
17.2.10 EXECUTE语句 292
17.2.11 T -SQL语句的解析、编译和执行 292
17.3 数据定义、操纵及控制语言 293
17.3.1 数据定义语言 293
17.3.2 数据操纵语言 294
17.3.3 数据控制语言 297
习题17 299
第18章 存储过程、自定义函数、触发器和游标 300
18.1 存储过程 300
18.1.1 存储过程概述 300
18.1.2 创建存储过程 300
18.1.3 调用存储过程 301
18.1.4 获取存储过程信息 302
18.1.5 修改和重命名存储过程 302
18.1.6 重新编译存储过程 303
18.1.7 删除存储过程 304
18.2 用户定义函数 304
18.2.1 标量值函数 304
18.2.2 内嵌表值函数 305
18.2.3 多语句表值函数 305
18.2.4 修改和重命名用户定义函数 306
18.2.5 删除用户定义函数 307
18.3 触发器 307
18.3.1 触发器概述 307
18.3.2 触发器的类型 308
18.3.3 触发器的设计规则 309
18.3.4 使用触发器 311
18.3.5 启用、禁用和删除触发器 313
18.3.6 触发器的用途 314
18.4 游标 315
18.4.1 游标概述 315
18.4.2 游标的类型 316
18.4.3 游标的使用 317
习题18 322
附录A本书中示例数据库的结构及数据 323
附录B上机实验题 327
附录C课程设计要求 336
参考文献 339