第1章 数据库系统概述 1
1.1 数据库系统概述 1
1.1.1 数据库的基本概念 1
1.1.2 数据库技术的发展概述 3
1.1.3 数据库系统的特点 5
1.1.4 数据库系统的应用 6
1.2 数据模型 7
1.2.1 数据模型的组成三要素 7
1.2.2 数据抽象的过程 8
1.2.3 概念模型 9
1.2.4 逻辑模型 11
1.3 数据库体系结构 13
1.3.1 数据库系统三级模式结构 13
1.3.2 数据库系统的二级映射与数据独立性 14
习题1 14
第2章 关系模型基本理论 16
2.1 关系模型 16
2.1.1 关系数据库的基本概念 16
2.1.2 关系的完整性 18
2.2 关系代数 19
2.2.1 传统的关系运算 20
2.2.2 专门的关系运算 21
2.2.3 关系代数操作实例 23
习题2 24
第3章 结构化查询语言SQL 26
3.1 SQL语言介绍 26
3.1.1 SQL的产生与发展 26
3.1.2 SQL的特点 27
3.1.3 SQL的语句结构 27
3.1.4 T-SQL 28
3.2 数据库对象 30
3.3 示例数据库 32
3.4 SQL Server数据库的存储结构 34
3.4.1 逻辑存储结构 34
3.4.2 物理存储结构 35
3.5 数据定义 37
3.5.1 数据库的创建和管理 37
3.5.2 表的创建和管理 46
3.5.3 表的完整性管理 50
3.5.4 索引的创建和管理 53
课堂练习 55
3.6 数据更新 55
3.6.1 插入数据 56
3.6.2 更新数据 57
3.6.3 删除数据 58
课堂练习 59
3.7 数据查询 59
3.7.1 基本查询 59
3.7.2 连接查询 67
3.7.3 嵌套查询 70
3.7.4 集合查询 75
3.7.5 SELECT各子句的编写顺序和执行顺序 78
课堂练习 79
3.8 视图 79
习题3 82
第4章 T-SQL编程 85
4.1 T-SQL编程基础 85
4.1.1 运算符与表达式 85
4.1.2 语句块和注释 91
4.1.3 流程控制语句 91
课堂练习 96
4.2 函数的使用 97
4.2.1 内置函数 97
4.2.2 用户定义函数 101
课堂练习 104
4.3 存储过程 104
4.3.1 存储过程的特点和类型 104
4.3.2 存储过程的创建和执行 105
4.3.3 存储过程的参数和执行状态 108
4.3.4 存储过程的管理 111
课堂练习 112
4.4 触发器 113
4.4.1 触发器简介 113
4.4.2 触发器分类 113
4.4.3 创建触发器 115
4.4.4 管理触发器 118
课堂练习 119
4.5 游标 120
4.5.1 游标简介 120
4.5.2 游标的操作 121
4.5.3 游标应用举例 127
课堂练习 129
4.6 异常处理 129
4.6.1 异常捕获与异常抛出 129
4.6.2 异常处理 131
习题4 133
第5章 关系数据库的规范化理论 134
5.1 关系模式的设计问题 134
5.1.1 关系模式可能存在的异常 134
5.1.2 关系模式中存在异常的原因 135
5.1.3 关系模式规范化 136
5.2 函数依赖 137
5.2.1 关系模式的简化表示 137
5.2.2 函数依赖的基本概念 137
5.2.3 码的函数依赖表示 139
5.2.4 函数依赖和码的唯一性 139
5.3 函数依赖的公理系统 140
5.3.1 属性的闭包与F逻辑蕴含的充要条件 140
5.3.2 最小函数依赖集Fmin 141
5.4 关系模式的规范化 142
5.4.1 规范化的含义 143
5.4.2 第一范式 143
5.4.3 第二范式 145
5.4.4 第三范式 146
5.4.5 BCNF范式 146
5.5 多值依赖与4NF 147
5.5.1 问题的引入 147
5.5.2 多值依赖的基本概念 149
5.5.3 第四范式 150
5.6 关系模式分解 151
5.6.1 无损分解 151
5.6.2 保持函数依赖 154
5.7 连接依赖与5NF 156
5.7.1 连接依赖 156
5.7.2 第五范式——5NF 158
5.8 关系模式规范化的步骤 158
习题五 159
第6章 数据库的安全性与完整性 161
6.1 问题的提出 161
6.2 数据库的安全性 162
6.2.1 数据库安全性问题的概述 162
6.2.2 数据库的安全性机制 163
6.2.3 SQL Server的安全性策略 167
6.3 数据库的完整性 174
6.3.1 数据库完整性的概述 174
6.3.2 数据库完整性的分类 175
6.3.3 数据库完整性的定义与验证 177
6.3.4 SQL Server的完整性策略 178
习题6 178
第7章 事务与并发控制 179
7.1 事务概述 179
7.1.1 事务的特性 179
7.1.2 事务的类型 180
7.2 事务的控制 181
7.2.1 启动事务 182
7.2.2 终止事务 183
7.2.3 事务控制语句的使用 184
7.2.4 事务和批的差别 185
7.3 事务处理实例分析 186
7.4 并发控制 189
7.4.1 并发控制概述 189
7.4.2 封锁协议 190
7.4.3 活锁和死锁 193
7.4.4 并发调度的可串行性 193
7.4.5 两段锁协议 194
7.4.6 基于时标的并发控制 196
习题7 197
第8章 SQL查询优化与系统调优 198
8.1 概述 198
8.2 关系数据库查询处理 198
8.2.1 查询处理步骤 198
8.2.2 实现查询操作的算法示例 200
8.3 SQL查询处理优化方法 202
8.3.1 基于索引的优化 202
8.3.2 SQL语句优化 203
8.4 其他优化方法 207
8.5 计算机硬件调优 211
8.5.1 数据库对象的放置策略 211
8.5.2 使用磁盘硬件优化数据库 211
习题8 212
第9章 数据库设计 214
9.1 数据库设计概述 214
9.1.1 数据库设计的特点 214
9.1.2 数据库设计的方法 214
9.1.3 数据库设计的过程 215
9.2 需求分析 215
9.2.1 需求分析的任务 215
9.2.2 需求分析的方法 216
9.2.3 用户需求调查的方法 216
9.2.4 数据流图 216
9.2.5 数据字典 217
9.3 概念结构设计 218
9.3.1 数据模型 218
9.3.2 概念模型 219
9.3.3 概念结构设计的方法与步骤 221
9.4 逻辑结构设计 232
9.4.1 E-R模型向关系模型的转换 232
9.4.2 关系模型的优化 235
9.4.3 设计用户子模式 236
9.5 物理设计 236
9.5.1 确定数据库的物理结构 237
9.5.2 评价物理结构 238
9.6 数据库的实施与维护 238
9.6.1 数据库的建立与调整 239
9.6.2 数据库系统的试运行 239
9.6.3 数据库系统的运行和维护 240
习题9 241