第1章 数据库概述 1
1.1 一些基本概念 1
1.1.1 数据 1
1.1.2 数据库 2
1.1.3 数据库管理系统 2
1.1.4 数据库系统 3
1.2 数据管理技术的发展 3
1.2.1 文件管理 3
1.2.2 数据库管理 6
1.3 数据独立性 9
1.4 数据库系统的组成 10
小结 11
习题 11
第2章 数据模型与数据库系统结构 12
2.1 数据和数据模型 12
2.1.1 数据与信息 12
2.1.2 数据模型 13
2.2 概念层数据模型 14
2.2.1 基本概念 14
2.2.2 实体-联系模型 15
2.3 组织层数据模型 17
2.3.1 层次数据模型 17
2.3.2 网状数据模型 19
2.3.3 关系数据模型 20
2.4 数据库系统结构 21
2.4.1 模式的基本概念 21
2.4.2 三级模式结构 22
2.4.3 模式映像与数据独立性 23
2.5 数据库管理系统 24
小结 26
习题 26
第3章 关系数据库 27
3.1 关系数据模型的组成 27
3.1.1 关系数据结构 27
3.1.2 关系操作 27
3.1.3 数据完整性约束 29
3.2 关系模型的基本术语 30
3.3 关系模型的形式化定义 31
3.3.1 形式化定义 31
3.3.2 对关系的限定 33
3.4 关系模型的完整性约束 33
3.4.1 实体完整性 33
3.4.2 参照完整性 35
3.4.3 用户定义的完整性 36
3.5 关系代数 36
3.5.1 传统的集合运算 37
3.5.2 专门的关系运算 39
3.5.3 关系代数操作总结 45
小结 46
习题 46
第4章 SQL Server 2012基础 48
4.1 SQL Server 2012预备知识 48
4.1.1 主要服务器组件 48
4.1.2 管理工具 49
4.1.3 主要版本 49
4.1.4 软/硬件要求 50
4.1.5 实例 51
4.2 安装SQL Server 2012 52
4.3 管理工具 60
4.3.1 SQL Server配置管理器 60
4.3.2 SQL Server Management Studio 62
4.4 创建数据库 65
4.4.1 SQL Server数据库的组成 65
4.4.2 数据库文件的属性 66
4.4.3 创建数据库的图形化方法 66
小结 69
习题 70
上机练习 70
第5章 数据类型及关系表创建 71
5.1 基本概念 71
5.1.1 SQL的发展 71
5.1.2 SQL的特点 71
5.1.3 SQL功能概述 72
5.2 SQL Server提供的主要数据类型 72
5.2.1 数字类型 73
5.2.2 字符串类型 73
5.2.3 日期和时间类型 75
5.3 关系表的创建与维护 75
5.3.1 创建关系表 76
5.3.2 删除关系表 78
5.3.3 修改关系表 78
5.4 数据完整性 79
5.4.1 完整性约束条件的作用对象 79
5.4.2 实现数据完整性 79
小结 81
习题 81
上机练习 82
第6章 数据操作语句 83
6.1 数据查询 83
6.1.1 查询语句的基本结构 84
6.1.2 单表查询 84
6.1.3 多表连接查询 101
6.1.4 使用TOP限制结果集 107
6.1.5 子查询 109
6.1.6 将查询结果保存到新表中 118
6.1.7 查询结果的并、交、差运算 119
6.2 数据更改 122
6.2.1 插入数据 122
6.2.2 更新数据 122
6.2.3 删除数据 124
小结 125
习题 126
上机练习 126
第7章 索引和视图 128
7.1 索引 128
7.1.1 基本概念 128
7.1.2 索引的存储结构及分类 129
7.1.3 创建和删除索引 134
7.2 视图 135
7.2.1 基本概念 135
7.2.2 定义视图 135
7.2.3 通过视图查询数据 138
7.2.4 修改和删除视图 139
7.2.5 视图的作用 140
小结 141
习题 141
第8章 关系数据库规范化理论 143
8.1 函数依赖 143
8.1.1 基本概念 143
8.1.2 一些术语和符号 144
8.1.3 为什么要讨论函数依赖 144
8.2 关系规范化 146
8.2.1 关系模式中的键 146
8.2.2 范式 147
8.3 关系模式的分解准则 151
小结 153
习题 154
第9章 事务与并发控制 155
9.1 事务 155
9.1.1 基本概念 155
9.1.2 事务的特征 156
9.1.3 事务处理模型 156
9.2 并发控制 157
9.2.1 并发控制概述 157
9.2.2 并发控制措施 159
9.2.3 封锁协议 160
9.2.4 活锁和死锁 162
9.2.5 并发调度的可串行性 164
9.2.6 两段锁协议 165
小结 166
习题 166
第10章 数据库设计 168
10.1 数据库设计概述 168
10.1.1 数据库设计的特点 169
10.1.2 数据库设计方法概述 169
10.1.3 数据库设计的全过程 170
10.2 数据库需求分析 171
10.2.1 需求分析的任务 171
10.2.2 需求分析的方法 172
10.3 数据库结构设计 173
10.3.1 概念结构设计 173
10.3.2 逻辑结构设计 176
10.3.3 物理结构设计 180
10.4 数据库行为设计 182
10.4.1 功能分析 183
10.4.2 功能设计 183
10.4.3 事务设计 184
10.5 数据库实施 184
10.6 数据库的运行和维护 185
小结 186
习题 186
第11章 存储过程和触发器 188
11.1 变量及流程控制语句 188
11.1.1 变量 188
11.1.2 流程控制语句 189
11.2 存储过程 190
11.2.1 基本概念 190
11.2.2 创建和执行存储过程 191
11.2.3 查看和修改存储过程 196
11.2.4 删除存储过程 196
11.3 触发器 197
11.3.1 创建触发器 198
11.3.2 后触发型触发器 198
11.3.3 前触发型触发器 200
11.3.4 查看和修改触发器 200
11.3.5 删除触发器 201
小结 201
习题 201
上机练习 202
第12章 函数和游标 203
12.1 系统提供的内置函数 203
12.1.1 日期和时间函数 203
12.1.2 字符串函数 207
12.1.3 类型转换函数 209
12.2 用户自定义函数 210
12.2.1 基本概念 210
12.2.2 标量函数 211
12.2.3 内联表值函数 213
12.2.4 多语句表值函数 214
12.2.5 查看和修改用户自定义函数 215
12.2.6 删除用户自定义函数 216
12.3 游标 217
12.3.1 基本概念 217
12.3.2 使用游标 217
12.3.3 游标示例 220
小结 223
习题 223
上机练习 223
第13章 安全管理 225
13.1 安全控制概述 225
13.1.1 安全控制模型 225
13.1.2 SQL Server安全控制过程 226
13.2 登录名 226
13.2.1 身份验证模式 226
13.2.2 建立登录名 227
13.2.3 删除登录名 231
13.3 数据库用户 232
13.3.1 建立数据库用户 233
13.3.2 删除数据库用户 235
13.4 权限的种类和管理 236
13.4.1 权限种类及用户分类 236
13.4.2 权限管理 237
13.5 角色 247
13.5.1 建立用户定义的角色 247
13.5.2 为用户定义的角色授权 248
13.5.3 为用户定义的角色添加成员 248
13.5.4 删除用户定义角色中的成员 251
小结 252
习题 252
上机练习 253
第14章 备份和恢复数据库 254
14.1 备份数据库 254
14.1.1 备份内容及备份时间 254
14.1.2 备份设备 255
14.1.3 SQL Server支持的备份类型 256
14.1.4 备份策略 258
14.1.5 实现备份 259
14.2 恢复数据库 264
14.2.1 恢复的顺序 264
14.2.2 实现恢复 265
小结 271
习题 271
上机练习 271
第15章 NoSQL数据库 274
15.1 NoSQL简介 274
15.2 NoSQL数据库常见分类 275
15.3 NoSQL的优缺点 276
15.3.1 优点 276
15.3.2 缺点 276
15.4 目前一些常见的NoSQL数据库 276
15.4.1 Hypertable 276
15.4.2 MongoDB 277
15.4.3 HBase 279
15.4.4 MemcacheDB 279
15.4.5 Redis 280
15.4.6 Tokyo Cabinet/Tokyo Tyant 280
15.4.7 db4o 280
15.4.8 Versant 281
15.4.9 CouchDB 281
15.4.10 DynamoDB 282
15.4.11 Cassandra 282
15.4.12 Flare 282
15.4.13 Berkeley DB 283
15.4.14 Memlink 283
15.4.15 BaseX 283
15.4.16 Neo4j 283
15.4.17 NoSQL Database 284
15.5 NoSQL数据库发展现状及挑战 284
小结 285
习题 285
附录 数据库分析与设计示例 286
参考文献 295