目 录
第1章 认识数据库 1
1.1 数据管理技术的发展 2
1.1.1 数据处理技术 2
1.1.2 数据库技术的发展阶段 2
1.1.3 数据库技术的新进展 4
1.2 数据库系统 6
1.2.1 数据库系统的组成 6
1.2.2 数据库系统的模式结构 6
1.2.3 数据库系统的体系结构 9
1.3 SQL Server 数据库管理系统 11
1.3.1 SQL Server 2008简介 11
1.3.2 配置SQL Server 2008 13
1.3.3 SQL Server 2008主要管理工具 15
1.3.4 SQL概述 18
1.4 数据库的基本操作 22
1.4.1 SQL Sever数据库的存储结构 22
1.4.2 SQL Server系统数据库 24
1.4.3 创建数据库 25
1.4.4 修改数据库 28
1.4.5 删除数据库 30
1.4.6 数据备份与还原 31
1.5 数据库的其他操作 35
1.5.1 分离和附加数据库 35
1.5.2 脱机和联机数据库 37
1.5.3 收缩数据库 37
思考与练习 38
第2章 管理与维护表 39
2.1 关系模型 39
2.1.1 关系模型的基本术语 39
2.1.2 关系的键 40
2.1.3 关系的完整性 41
2.2 表结构与数据类型 43
2.2.1 数据类型 43
2.2.2 约束 47
2.2.3 表结构设计 49
2.3 表的创建、修改和删除 50
2.3.1 表的创建 50
2.3.2 表的修改 51
2.3.3 表的删除 52
2.4 表的数据操作 53
2.4.1 插入数据 53
2.4.2 修改数据 54
2.4.3 删除数据 54
2.4.4 更新操作与数据库的一致性 55
2.5 实例——学籍管理数据库中表的创建 57
思考与练习 59
第3章 查询、视图和索引 61
3.1 关系代数 61
3.1.1 传统的集合运算 64
3.1.2 专门的关系运算 65
3.1.3 关系代数查询综合举例 70
3.2 简单查询 71
3.2.1 选择表中的若干列 71
3.2.2 选择表中的若干元组 74
3.2.3 对查询结果排序 79
3.3 连接查询 80
3.3.1 等值与非等值连接查询 80
3.3.2 自身连接 83
3.3.3 外连接 83
3.4 分组及汇总查询 85
3.4.1 聚合函数 85
3.4.2 分组聚合 86
3.5 嵌套查询 88
3.5.1 使用IN的子查询 89
3.5.2 使用比较运算符的子查询 91
3.5.3 使用ANY或ALL的子查询 92
3.5.4 使用存在量词EXISTS的子查询 93
3.6 集合查询 95
3.7 SQL查询的一般格式 96
3.8 视图 97
3.8.1 创建视图 97
3.8.2 管理视图 100
3.8.3 查询视图 101
3.8.4 更新视图 102
3.8.5 视图的作用 105
3.9 索引 106
3.9.1 索引的概念 106
3.9.2 索引的分类 107
3.9.3 创建索引 107
3.9.4 管理索引 109
思考与练习 110
第4章 数据库设计 112
4.1 数据库设计概述 112
4.1.1 数据库设计任务及方法 112
4.1.2 数据库设计阶段划分 114
4.2 需求分析 114
4.2.1 需求分析方法 115
4.2.2 数据流图与数据字典 116
4.2.3 实例——学籍管理需求分析 119
4.3 概念结构设计 123
4.3.1 概念结构设计的特点和方法 123
4.3.2 概念模型 123
4.3.3 数据抽象与局部视图设计 125
4.3.4 视图的集成 126
4.3.5 实例——学籍管理概念结构设计 127
4.4 逻辑结构设计 129
4.4.1 E-R图向关系数据模型的转换 129
4.4.2 函数依赖 133
4.4.3 范式 136
4.4.4 关系模式的规范化 145
4.4.5 设计用户子模式 148
4.4.6 实例——学籍管理逻辑结构设计 149
4.5 物理结构设计 150
4.5.1 分析影响数据库物理设计的因素 151
4.5.2 关系模式存取方法选择 152
4.5.3 确定系统配置 153
4.5.4 评价物理结构 153
4.6 数据库实施与维护 153
4.6.1 创建数据库 153
4.6.2 组织数据入库 154
4.6.3 数据库试运行 154
4.6.4 数据库运行与维护 154
4.7 数据库建模工具 155
思考与练习 157
第5章 SQL程序设计与开发 158
5.1 批处理与脚本 159
5.1.1 批处理 159
5.1.2 脚本 160
5.2 SQL程序设计基础 160
5.2.1 SQL程序基本成分 161
5.2.2 SQL程序编写规范 163
5.3 流程控制语句 164
5.3.1 语句块:BEGIN…END 165
5.3.2 条件执行:IF…ELSE语句 165
5.3.3 多分支CASE表达式 166
5.3.4 循环:WHILE语句 167
5.3.5 非条件执行:GOTO 语句 168
5.3.6 调度执行:WAITFOR 168
5.4 游标 168
5.4.1 游标 168
5.4.2 声明游标 169
5.4.3 打开游标 170
5.4.4 读取数据 170
5.4.5 关闭游标 172
5.4.6 释放游标 172
5.5 SQL程序的调试与错误处理 174
5.5.1 SQL程序的错误类型 174
5.5.2 SQL程序的错误处理 174
5.6 SQL程序实例 175
5.6.1 自定义函数 175
5.6.2 存储过程 176
5.6.3 触发器 179
思考与练习 180
第6章 管理数据库 182
6.1 数据库的安全管理 183
6.1.1 安全性概述 183
6.1.2 数据库管理系统的身份识别机制 183
6.1.3 SOL Server的用户和角色管理 184
6.1.4 SQL Server的安全认证模式 192
6.2 数据库的完整性管理 193
6.2.1 完整性约束 193
6.2.2 完整性控制 195
6.2.3 SQL Server数据完整性的实现方法 197
6.3 SQL Server数据库恢复 200
6.3.1 恢复的原理 201
6.3.2 恢复的实现 202
6.3.3 数据库镜像 207
6.4 并发控制 208
6.4.1 并发控制概述 209
6.4.2 并发调度的可串行性 211
6.4.3 封锁协议 212
6.4.4 死锁和活锁 214
思考与练习 215
第7章 应用实例——学籍管理系统 217
7.1 系统开发环境 217
7.2 系统功能结构设计 218
7.3 数据库设计 218
7.4 ADO.NET数据库访问SQL Server技术 219
7.4.1 ADO.NET的数据处理类 219
7.4.2 ADO.NET的数据处理类的常用属性和方法 220
7.4.3 ADO.NET访问数据库的步骤 221
7.5 系统实现 222
7.5.1 系统主框架布局设计 223
7.5.2 系统页面模板设计 223
7.5.3 设置数据库连接信息 223
7.5.4 系统公共类 224
7.5.5 系统部分存储过程、自定义函数、视图 230
7.5.6 系统部分页面 233
附录A SQL Server支持的运算符与函数 241
附录B 学籍管理数据表结构 245
参考文献 248