第1章 数据库系统概论 1
1.1 基本概念 1
1.1.1 数据 1
1.1.2 数据库 1
1.1.3 数据库管理系统 2
1.1.4 数据库系统 2
1.2 数据管理技术的产生和发展 3
1.2.1 人工管理阶段 3
1.2.2 文件系统阶段 3
1.2.3 数据库系统阶段 4
1.3 数据库系统结构 6
1.3.1 三级模式结构 6
1.3.2 两级映像和数据独立性 7
1.4 数据库系统的组成 8
本章小结 9
练习题 9
实验1 熟悉SQL Server 10
第2章 数据模型 11
2.1 数据模型概述 11
2.2 数据模型的组成要素 12
2.2.1 数据结构 12
2.2.2 数据操作 12
2.2.3 完整性约束条件 12
2.3 概念模型 12
2.3.1 信息世界的基本概念 12
2.3.2 实体之间的联系 13
2.3.3 概念模型的表示方法 13
2.4 逻辑模型 14
2.4.1 层次模型 14
2.4.2 网状模型 15
2.4.3 关系数据模型 16
2.4.4 面向对象模型 17
2.5 物理模型 18
本章小结 18
练习题 19
实验2 使用SQL Server Management Studio 19
第3章 关系数据库 21
3.1 关系数据结构及形式化定义 21
3.1.1 关系 21
3.1.2 关系模式 24
3.1.3 关系数据库 24
3.2 关系操作 25
3.2.1 基本的关系操作 25
3.2.2 关系数据语言的分类 25
3.3 关系模型的完整性 26
3.3.1 实体完整性 26
3.3.2 参照完整性 26
3.3.3 用户定义完整性 26
3.4 关系代数 27
3.4.1 传统的集合运算 27
3.4.2 专门的关系运算 28
3.4.3 关系代数表达式 33
本章小结 33
练习题 33
实验3 关系代数表达式 34
第4章 关系数据库标准语言SQL 36
4.1 SQL概述 36
4.1.1 SQL的产生与发展 36
4.1.2 SQL的特点 37
4.1.3 SQL运行环境 37
4.2 网上书城示例数据库 38
4.3 数据定义 41
4.3.1 数据库的定义与删除 41
4.3.2 基本表的定义、删除与修改 42
4.3.3 模式的定义与删除 44
4.4 数据更新 45
4.4.1 插入数据 45
4.4.2 修改数据 45
4.4.3 删除数据 45
4.5 数据查询 46
4.5.1 SELECT语句的结构 46
4.5.2 单表查询 46
4.5.3 多表连接查询 51
4.5.4 嵌套查询 53
4.5.5 集合查询 55
4.5.6 基于派生表的查询 56
4.6 带子查询的数据更新 56
4.6.1 带有子查询的数据插入 56
4.6.2 带子查询的数据修改 57
4.6.3 带子查询的数据删除 57
4.7 索引 57
4.7.1 索引类型 58
4.7.2 建立索引 58
4.7.3 删除索引 58
4.8 视图 58
4.8.1 定义视图 59
4.8.2 查询视图 60
4.8.3 更新视图 60
4.8.4 视图的作用 61
本章小结 61
练习题 62
实验4 创建数据库 62
实验5 数据查询 63
实验6 数据更新和视图 64
第5章 数据库安全性 66
5.1 安全性概述 66
5.1.1 安全性定义 66
5.1.2 安全性措施 66
5.1.3 安全标准简介 67
5.2 用户管理 68
5.3 角色和权限 69
5.3.1 权限 69
5.3.2 授权与回收 69
5.4 视图机制 71
5.5 数据加密 71
5.5.1 替换方法 71
5.5.2 置换方法 72
5.6 审计 72
5.7 SQL Server安全管理 73
5.7.1 概述 73
5.7.2 服务器身份验证 74
5.7.3 数据库用户 76
5.7.4 角色 77
本章小结 78
练习题 79
实验7 数据库安全性 79
第6章 数据库完整性 80
6.1 数据库完整性概述 80
6.2 实体完整性 81
6.2.1 定义实体完整性 81
6.2.2 实体完整性检查和违约处理 81
6.3 参照完整性 81
6.3.1 定义参照完整性 81
6.3.2 参照完整性检查和违约处理 82
6.4 用户定义完整性 83
6.4.1 非空约束 84
6.4.2 唯一值约束 84
6.4.3 默认值约束 84
6.4.4 CHECK约束 85
6.5 完整性约束命名子句 85
6.6 触发器 85
6.6.1 触发器的基本概念 85
6.6.2 创建触发器 86
6.6.3 触发器的管理 87
本章小结 87
练习题 87
实验8 数据库完整性 88
第7章 关系规范化理论 89
7.1 规范的必要性 89
7.1.1 存在的问题 89
7.1.2 解决方法 90
7.2 函数依赖 91
7.2.1 函数依赖 91
7.2.2 码 92
7.2.3 函数依赖集的闭包 93
7.2.4 函数依赖的推理规则 93
7.2.5 属性集的闭包 94
7.2.6 最小函数依赖集 95
7.2.7 候选键的求解方法 97
7.3 关系的范式 97
7.3.1 关系的范式简介 97
7.3.2 关系的范式定义 98
7.4 多值依赖及第四范式 101
7.4.1 多值依赖 102
7.4.2 第四范式 103
7.5 关系模式的分解 103
本章小结 106
练习题 106
实验9 关系规范化 107
第8章 数据库设计 108
8.1 数据库设计概述 108
8.1.1 数据库设计的任务与特点 108
8.1.2 数据库设计的方法和步骤 110
8.2 需求分析概述 111
8.2.1 需求分析的任务与方法 111
8.2.2 需求分析 112
8.2.3 需求分析的结果 113
8.3 概念结构设计 114
8.3.1 概念模型 114
8.3.2 概念模型设计 114
8.4 逻辑结构设计 117
8.4.1 E-R模型向关系模型的转换 117
8.4.2 数据模型的优化 118
8.4.3 设计用户子模式 118
8.5 物理结构设计 119
8.5.1 物理结构设计概述 119
8.5.2 存取方法选择 119
8.5.3 存储结构确定 120
8.6 实施、运行与维护 121
8.6.1 数据库的实施 121
8.6.2 数据库的维护 122
本章小结 123
练习题 123
实验10 数据库设计 123
第9章 Transact-SQL编程 124
9.1 批处理 124
9.1.1 批处理使用规则 124
9.1.2 批处理错误处理 125
9.1.3 批处理示例 125
9.2 注释 125
9.3 常量与变量 126
9.3.1 常量 126
9.3.2 变量 127
9.4 流程控制语句 129
9.4.1 选择结构 130
9.4.2 循环结构 131
9.4.3 其他流程控制语句 132
9.5 游标 133
9.5.1 游标概述 133
9.5.2 游标的基本操作 133
9.5.3 游标使用实例 135
9.6 函数 136
9.6.1 函数概述 136
9.6.2 系统提供的内置函数 136
9.6.3 用户函数的创建 138
9.6.4 用户函数的使用与管理 140
9.7 存储过程 140
9.7.1 存储过程概述 140
9.7.2 存储过程的定义 141
9.7.3 存储过程的执行与管理 142
本章小结 143
练习题 144
实验11 Transact-SQL编程 144
第10章 关系查询处理和查询优化 145
10.1 关系数据库系统的查询处理 145
10.1.1 查询处理步骤 145
10.1.2 实现查询操作的算法示例 147
10.2 关系数据库系统的查询优化 149
10.2.1 查询优化概述 149
10.2.2 一个实例 150
10.3 代数优化 151
10.3.1 关系代数表达式等价变换规则 152
10.3.2 查询树的启发式优化 153
10.4 物理优化 154
10.4.1 基于启发式规则的存取路径选择优化 154
10.4.2 基于代价估算的优化 155
本章小结 156
练习题 157
实验12 查询处理和查询优化 157
第11章 并发控制 159
11.1 事务 159
11.1.1 事务的概念 159
11.1.2 事务的性质 159
11.2 并发控制概述 160
11.2.1 丢失修改 161
11.2.2 不可重复读 161
11.2.3 读“脏”数据 161
11.3 封锁及封锁协议 162
11.3.1 基本锁类型 162
11.3.2 封锁协议 162
11.4 活锁和死锁 164
11.4.1 活锁 164
11.4.2 死锁 165
11.5 并发调度的可串行性 167
11.6 两段锁协议 168
11.7 封锁的粒度 169
11.7.1 多粒度封锁 170
11.7.2 意向锁 170
本章小结 171
练习题 172
实验13 数据库并发控制 172
第12章 数据库恢复技术 173
12.1 故障种类 173
12.2 恢复的实现技术 174
12.2.1 数据转储 175
12.2.2 登记日志文件 175
12.3 恢复策略 177
12.3.1 事务故障的恢复 177
12.3.2 系统故障的恢复 177
12.3.3 介质故障的恢复 178
12.4 具有检查点的恢复技术 178
12.5 SQL Server备份与恢复 179
12.5.1 备份的基本概念 179
12.5.2 备份操作和备份命令 181
12.5.3 恢复操作和恢复命令 183
本章小结 185
练习题 185
实验14 数据库备份和恢复 185
第13章 数据库编程接口 186
13.1 ODBC编程 186
13.1.1 ODBC概述 186
13.1.2 ODBC编程接口 188
13.1.3 ODBC开发实例 191
13.2 JDBC编程 195
13.2.1 JDBC概述 195
13.2.2 JDBC主要接口 198
13.2.3 JDBC开发实例 202
13.3 ADO.NET编程 203
13.3.1 ADO.NET概述 203
13.3.2 ADO.NET对象模型 204
13.3.3 ADO.NET开发实例 206
本章小结 208
练习题 208
实验15 连接数据库 208
第14章 ORM技术 209
14.1 ORM技术概述 209
14.2 Hibernate简介 210
14.2.1 Hibernate的对象关系映射机制 210
14.2.2 HIbernate的主要组件 211
14.2.3 Hibernate简单例子 212
14.3 Entity Framework简介 216
14.3.1 Entity Framework实现原理 217
14.3.2 Entity Framework主要组件 217
14.3.3 DbContext和Entity类 218
14.3.4 Entity Framework简单例子 218
本章小结 222
练习题 223
实验16 使用ORM框架 223
第15章 应用系统开发实例 224
15.1 系统简介 224
15.2 用例模型分析 224
15.2.1 用户分析 224
15.2.2 用例分析 225
15.3 数据库设计 225
15.4 系统设计 228
15.4.1 系统架构设计 228
15.4.2 功能模块设计 229
15.4.3 系统详细设计 229
15.5 系统实现 232
15.5.1 系统登录及主界面 232
15.5.2 专业信息管理 234
15.5.3 课程信息管理 234
15.5.4 班级信息管理 235
15.5.5 教师信息管理 235
15.5.6 学生信息管理 236
15.5.7 教学班级管理 236
15.5.8 学生成绩管理 237
本章小结 238
练习题 238
实验17 应用系统开发 238