第1章 绪论 1
1.1 数据管理技术的产生和发展 1
1.1.1 人工管理数据阶段 1
1.1.2 文件管理数据阶段 2
1.1.3 数据库管理阶段 3
1.1.4 大数据阶段 5
1.2 数据库的基本概念 6
1.2.1 数据(信息) 6
1.2.2 数据库、数据库管理系统 6
1.2.3 数据库系统 7
1.3 数据模型 7
1.3.1 数据模型的组成要素 8
1.3.2 数据建模 8
1.4 数据库系统结构 13
1.4.1 三级模式 13
1.4.2 二级映像 14
1.4.3 采用三级模型二级映像结构的优点 14
1.5 数据库管理系统的功能、组成、工作方式 15
1.5.1 功能 15
1.5.2 组成 15
1.5.3 工作方式 16
1.6 数据库产品及传统的关系型数据库系统面临的挑战 17
1.6.1 数据库产品 17
1.6.2 传统的关系型数据库系统面临的挑战 19
1.7 小结 20
习题1 20
第2章 关系型数据库基础 21
2.1 关系模型的基本概念 21
2.1.1 域、笛卡儿积、关系、关系模式 21
2.1.2 码 24
2.2 关系模型的完整性约束 25
2.2.1 实体完整性规则 26
2.2.2 参照完整性规则 26
2.2.3 用户自定义完整性规则 27
2.3 关系操作 27
2.3.1 关系数据语言 27
2.3.2 关系代数 27
2.4 小结 36
习题2 36
第3章 SQL的数据定义和完整性约束 38
3.1 SQL概述 38
3.1.1 SQL的发展历史 38
3.1.2 SQL的特点 39
3.1.3 SQL数据库的体系结构 40
3.2 SQL Server介绍 40
3.2.1 SQLServer的发展历史 41
3.2.2 Transact-SQL 42
3.3 SQL的数据定义 46
3.3.1 数据库的定义与删除 46
3.3.2 基本表的定义、修改和删除 47
3.3.3 索引的建立和删除 51
3.4 SQL的数据操纵和完整性约束的作用 52
3.4.1 插入数据和完整性约束的作用 52
3.4.2 删除数据和完整性约束的作用 53
3.4.3 修改数据和完整性约束的作用 54
3.5 小结 55
习题3 55
第4章 SQL的数据查询 56
4.1 SQL的数据查询命令 56
4.2 简单查询 57
4.2.1 简单无条件查询 57
4.2.2 简单条件查询 57
4.2.3 使用BETWEEN…AND…的查询 58
4.2.4 字符串匹配查询 59
4.2.5 空值查询 60
4.2.6 使用IN的查询 60
4.2.7 DISTINCT短语的作用 61
4.2.8 存储查询结果 61
4.2.9 查询结果的排序 61
4.2.10 TOP短语的作用 62
4.2.11 集合运算 62
4.3 连接查询 64
4.3.1 一般连接 64
4.3.2 别名和自连接查询 66
4.3.3 外连接查询 66
4.4 分组及汇总查询 67
4.4.1 一般汇总查询 67
4.4.2 使用GROUP BY的分组汇总查询 67
4.4.3 带明细的分组汇总查询 68
4.5 嵌套查询 69
4.5.1 内外层不相关的嵌套查询 69
4.5.2 内外层互相关的嵌套查询 71
4.5.3 使用EXISTS的嵌套查询 72
4.6 需要查询支持的数据操作 74
4.6.1 插入操作 74
4.6.2 修改操作 75
4.6.3 删除操作 75
4.7 视图及其操作 75
4.7.1 视图的建立和删除 76
4.7.2 视图的使用 77
4.7.3 视图的作用 79
4.8 小结 79
习题4 80
第5章 关系型数据库编程基础 81
5.1 应用程序访问数据库 81
5.1.1 嵌入式SQL 81
5.1.2 DAO和OLE DB 85
5.1.3 ODBC 86
5.1.4 JDBC 87
5.1.5 ADO和ADO.NET 89
5.2 存储过程 91
5.2.1 基本概念 91
5.2.2 Transact-SQL基本语法 92
5.2.3 创建和执行存储过程 94
5.2.4 存储过程的修改和删除 97
5.2.5 获得有关存储过程的信息 98
5.3 触发器 98
5.3.1 基本概念 98
5.3.2 创建触发器 99
5.3.3 禁止和启用触发器 101
5.3.4 修改和删除触发器 101
5.4 小结 102
习题5 102
第6章 关系数据及其规范化理论 103
6.1 问题的提出 103
6.1.1 关系模式中可能存在的问题 103
6.1.2 解决的方法 104
6.2 函数依赖 104
6.2.1 函数依赖的基本概念 105
6.2.2 函数依赖的推理规则 106
6.2.3 码的函数依赖表示 109
6.2.4 最小函数依赖集 109
6.3 规范化 111
6.3.1 范式 111
6.3.2 模式分解 115
6.3.3 关系模式规范化步骤 120
6.4 小结 121
习题6 121
第7章 数据库设计 122
7.1 数据库设计概述 122
7.1.1 数据库设计的任务和特点 122
7.1.2 数据库设计方法 123
7.1.3 数据库设计步骤 123
7.1.4 数据库设计过程中的各级模式 125
7.2 需求分析 125
7.2.1 需求分析的任务 125
7.2.2 需求分析的方法和工具 126
7.2.3 需求分析的结果 127
7.3 概念结构设计 127
7.3.1 概念模型及表示方法 127
7.3.2 概念结构设计的方法 130
7.3.3 概念设计的步骤 131
7.4 逻辑结构设计 136
7.4.1 从E-R模型到关系模式的转换 136
7.4.2 逻辑结构的优化 138
7.4.3 设计用户子模式 139
7.5 数据库的物理设计 140
7.5.1 数据库物理设计的内容和方法 140
7.5.2 确定数据库的物理结构 140
7.5.3 评价物理结构 141
7.6 数据库的实施和维护 142
7.6.1 建立数据库和应用程序的调试 142
7.6.2 数据库的试运行和测试 142
7.6.3 数据库的运行和维护 143
7.7 数据库设计实例 144
7.7.1 需求分析 144
7.7.2 概念结构设计 147
7.7.3 逻辑结构设计 150
7.7.4 数据库的物理设计和实施 152
7.8 小结 154
习题7 154
第8章 数据库的安全性 155
8.1 数据库安全性概述 155
8.2 用户标识与鉴别 156
8.3 存取控制 157
8.3.1 自主存取控制(DAC)方法 157
8.3.2 强制存取控制(MAC)方法 161
8.3.3 基于角色的存取控制(RBAC)模型 162
8.4 其他安全控制方法 164
8.4.1 视图机制 164
8.4.2 审计 165
8.4.3 数据加密 166
8.4.4 统计数据库安全性 166
8.5 常见数据库管理系统的安全控制 167
8.5.1 SQLServer的安全控制 167
8.5.2 Oracle的安全控制 170
8.5 小结 173
习题8 173
第9章 数据库恢复和并发控制 175
9.1 事务 175
9.1.1 事务的基本概念 175
9.1.2 事务的性质 175
9.2 数据库恢复技术 176
9.2.1 故障的种类 176
9.2.2 恢复的实现技术 177
9.2.3 故障恢复策略 179
9.3 常见数据库的恢复技术 182
9.3.1 SQLServer数据库的恢复技术 182
9.3.2 Oracle数据库的恢复技术 183
9.4 并发控制 185
9.4.1 并发操作带来的问题 185
9.4.2 封锁 186
9.4.3 并发调度的可串行性 189
9.4.4 两段锁协议 190
9.4.5 封锁的粒度 191
9.5 常见数据库的并发控制技术 193
9.5.1 SQLServer的封锁方式 193
9.5.2 Oracle的封锁方式 193
9.6 小结 194
习题9 194
第10章 基于关系型数据库的Web应用 196
10.1 数据库应用体系结构概述 196
10.1.1 基于C/S模式的体系结构 196
10.1.2 基于B/S模式的体系结构 197
10.2 常见的Web服务器简介 198
10.2.1 IIS 198
10.2.2 Tomcat 199
10.2.3 WebLogic 200
10.3 服务器端的动态网页技术 200
10.3.1 JSP 200
10.3.2 基于ASP.NET构建Web应用程序 204
10.4 客户端网页设计相关技术简介 204
10.4.1 基于CSS+DIV构建网页 205
10.4.2 客户端脚本语言JavaScript简介 206
10.5 基于XML的数据库信息管理 209
10.5.1 XML及其与数据库的互操作 210
10.5.2 XML的基本规范和简单结构 211
10.5.3 XML数据的显示 211
10.5.4 将数据库信息转换为XML 212
10.6 小结 214
习题10 215
第11章 大数据应用背景下的数据管理技术 216
11.1 大数据及其主要特点 216
11.2 传统数据处理方式面临的挑战 217
11.3 大数据应用背景下的数据管理特点及部分数据管理产品 218
11.3.1 大数据应用背景下的数据管理特点 218
11.3.2 基于文档数据模型的数据管理产品 218
11.3.3 基于键-值对数据模型的数据管理产品 220
11.3.4 分布式缓存数据管理产品MemCached 221
11.3.5 基于倒排索引的数据管理产品及ELK架构 224
11.4 小结 224
习题11 224
第12章 关系型数据库应用系统案例分析 225
12.1 系统设计 225
12.1.1 需求分析 225
12.1.2 概念结构设计 226
12.1.3 数据库设计 227
12.2 功能模块设计 230
12.2.1 系统功能模块 230
12.2.2 界面设计 230
12.3 功能实现步骤 231
12.3.1 数据库创建 231
12.3.2 公用模块设计 231
12.3.3 添加app.config文件 236
12.4 管理员端程序设计步骤 236
12.4.1 用户管理界面 236
12.4.2 用户管理信息编辑界面设计 239
12.4.3 登录窗体的设计 242
12.5 系统运行与调试 244
12.5.1 调试方法 244
12.5.2 调试过程 245
12.5.3 排错 246
12.6 小结 247
习题12 247
附录A 实验 248
实验1 初识SQL Server2012 248
实验2 数据定义和数据操纵 250
实验3 数据查询 252
实验4 视图的创建与使用 253
实验5 存储过程和触发器 255
实验6 数据库的安全性 255
参考文献 257
后记 259