图书简介:
目 录
第1章 数据库基础和数据库设计 1
1.1 数据库系统 1
1.1.1 数据、信息、数据库 1
1.1.2 数据库管理系统 2
1.2 数据库系统结构 2
1.2.1 数据库系统模式的概念 2
1.2.2 数据库系统的三级模式结构 3
1.2.3 数据库的二级映像功能与数据
独立性 4
1.2.4 数据库系统用户结构 4
1.3 关系数据库及其设计 6
1.3.1 关系数据库 6
1.3.2 关系数据库设计 6
1.3.3 关系数据库的完整性 12
1.4 教学管理数据库操作任务 13
实验与思考 15
第2章 服务器安装配置和使用 17
2.1 SQL Server概述 17
2.1.1 SQL Server版本和环境需求 17
2.1.2 SQL Server的特点和组成 17
2.1.3 SQL Server 安装需注意 19
2.1.4 SQL Server Management Studio
介绍 21
2.1.5 分离和附加数据库文件 22
2.2 网络协议配置 23
2.2.1 SQL Server通信结构 23
2.2.2 配置服务器端网络协议 24
2.2.3 配置客户端网络协议 25
2.3 添加新的注册服务器 25
2.3.1 新建注册服务器 25
2.3.2 连接到数据库服务器 26
2.4 链接服务器建立及其使用 26
2.4.1 链接服务器简介 26
2.4.2 创建链接服务器 27
2.4.3 创建链接服务器登录标志 28
2.4.4 访问链接服务器 29
2.4.5 访问链接服务器的实例 30
实验与思考 31
第3章 SQL Server数据库结构和管理 33
3.1 数据库物理存储结构 33
3.1.1 数据库文件和文件组 33
3.1.2 数据文件的使用分配 35
3.1.3 事务日志文件结构 37
3.2 数据库的逻辑组织 39
3.2.1 数据库构架 39
3.2.2 系统数据库 40
3.2.3 用户数据库 41
3.3 数据库创建与管理 41
3.3.1 创建数据库 41
3.3.2 管理数据库 44
实验与思考 49
第4章 表的存储原理及完整性创建管理 50
4.1 SQL Server表的类型 50
4.1.1 SQL Server的临时表 50
4.1.2 SQL Server的系统表和系统视图 51
4.2 表的存储原理 52
4.2.1 内部存储概述 52
4.2.2 SQL Server数据记录结构 53
4.3 SQL Server数据类型 56
4.3.1 数值型数据 56
4.3.2 货币型数据 56
4.3.3 字符型数据 57
4.3.4 日期/时间数据类型 57
4.4 数据表的创建和管理 57
4.4.1 数据表结构的创建 57
4.4.2 数据表结构的管理 64
实验与思考 66
第5章 查询处理和表数据编辑 68
5.1 查询数据 68
5.1.1 简单查询 68
5.1.2 统计 75
5.1.3 连接查询 78
5.1.4 子查询 80
5.1.5 联合查询 83
5.2 表数据编辑 83
5.2.1 插入数据 83
5.2.2 修改数据 85
5.2.3 删除数据 86
实验与思考 87
第6章 索引的机理、规划和管理 89
6.1 索引的作用与结构 89
6.1.1 索引概述 89
6.1.2 SQL Server索引下的数据组织
结构 90
6.2 索引类型 92
6.2.1 聚集索引和非聚集索引 93
6.2.2 主键索引和非主键索引 93
6.2.3 唯一索引和非唯一索引 93
6.2.4 单列索引和复合索引 93
6.3 规划设计索引的一般原则 94
6.3.1 什么类型查询适合建立索引 94
6.3.2 索引设计的其他准则 94
6.3.3 索引的特征 95
6.3.4 在文件组上合理放置索引 95
6.3.5 索引优化建议 96
6.4 索引的创建和删除 96
6.4.1 创建索引 96
6.4.2 删除索引 99
6.5 查询中的执行计划 100
6.5.1 查看查询执行计划 101
6.5.2 索引和未索引执行计划的比较 102
6.6 索引使用中的维护 105
6.6.1 维护索引的统计信息 105
6.6.2 维护索引碎片 106
实验与思考 108
第7章 SQL Server事务和并发控制 109
7.1 事务 109
7.1.1 事务与并发控制的关系 109
7.1.2 事务对保障数据一致和完整性
的作用 110
7.2 事务的分类和控制 111
7.2.1 事务的分类 111
7.2.2 事务控制 112
7.3 编写有效事务的建议 114
7.3.1 编写有效事务的指导原则 114
7.3.2 避免并发问题 114
7.4 事务处理实例分析 115
7.5 分布式事务 118
7.5.1 分布式事务的两阶段提交 118
7.5.2 分布式事务的处理过程 119
7.5.3 分布式事务实例分析 119
7.6 并发控制 120
7.6.1 SQL Server锁的粒度及模式 120
7.6.2 封锁协议 123
7.6.3 事务隔离 124
7.6.4 死锁处理 126
实验与思考 127
第8章 Transact-SQL程序结构 129
8.1 注释和变量 129
8.1.1 T-SQL程序的基本结构 129
8.1.2 注释 131
8.1.3 变量 132
8.1.4 变量赋值 132
8.2 运算符和表达式 133
8.2.1 算术运算符 133
8.2.2 位运算符 133
8.2.3 连接运算符 133
8.2.4 比较运算符 133
8.2.5 逻辑运算符 133
8.2.6 表达式 134
8.3 函数 134
8.3.1 数学函数 134
8.3.2 字符串函数 135
8.3.3 时间日期函数 137
8.3.4 转换函数 138
8.3.5 配置函数 139
8.4 流程控制 140
8.4.1 块语句 140
8.4.2 条件语句 141
8.4.3 CASE语句 141
8.4.4 循环语句 143
8.4.5 等待语句 143
8.4.6 GOTO语句 144
8.4.7 返回语句 144
8.5 程序应用实例分析 145
实验与思考 147
第9章 视图的规划与操作 148
9.1 视图的作用与规划 148
9.1.1 视图的作用 148
9.1.2 视图的规划 149
9.2 视图操作 150
9.2.1 创建视图 150
9.2.2 视图的修改、重命名和删除 154
9.2.3 查询视图 156
9.2.4 更新视图 157
9.2.5 特殊类型视图简介 160
9.3 视图应用综合实例分析 164
实验与思考 167
第10章 游标操作和应用 168
10.1 游标声明 169
10.1.1 游标声明 169
10.1.2 游标变量 171
10.2 游标数据操作 172
10.2.1 打开游标 172
10.2.2 读取游标数据 173
10.2.3 关闭游标 175
10.2.4 释放游标 175
10.2.5 游标定位修改和删除操作 177
10.3 游标应用实例分析 178
实验与思考 180
第11章 用户自定义函数设计 181
11.1 用户自定义函数概述 181
11.1.1 用户自定义函数的特点 181
11.1.2 用户自定义函数的类型 181
11.2 创建用户自定义函数 182
11.2.1 使用对象资源管理器 182
11.2.2 使用CREATE FUNCTION命令
创建用户自定义函数 183
11.3 用户自定义函数的调用 187
11.4 修改和删除用户自定义函数 188
11.4.1 修改用户自定义函数 188
11.4.2 删除用户自定义函数 190
11.5 用户自定义函数实例分析 190
实验与思考 192
第12章 存储过程和用户存储过程设计 194
12.1 存储过程概述 194
12.1.1 存储过程的概念和分类 194
12.1.2 存储过程的优点 194
12.2 系统存储过程 195
12.2.1 系统存储过程分类 195
12.2.2 一些常用的系统存储过程 196
12.3 创建和执行用户存储过程 197
12.3.1 创建用户存储过程 197
12.3.2 执行用户存储过程 199
12.4 带状态参数的存储过程及实例
分析 203
12.4.1 存储过程执行状态值的返回 203
12.4.2 实例分析 203
12.5 修改和删除存储过程 205
12.5.1 修改存储过程 205
12.5.2 删除存储过程 206
12.6 存储过程设计实例分析 207
实验与思考 211
第13章 触发器原理及使用 212
13.1 触发器基本概念 212
13.1.1 触发器的概念及作用 212
13.1.2 触发器的种类 213
13.2 触发器原理 213
13.2.1 插入表的功能 213
13.2.2 删除表的功能 214
13.2.3 插入视图和删除视图 214
13.3 触发器的创建和管理 214
13.3.1 创建触发器 214
13.3.2 管理触发器 218
13.3.3 修改、删除触发器 219
13.4 使用触发器实现强制业务规则 220
13.4.1 INSERT触发器 220
13.4.2 UPDATE触发器 221
13.4.3 DELETE 触发器 222
13.4.4 INSTEAD OF 触发器 223
13.4.5 递归触发器 225
13.4.6 嵌套触发器 225
13.5 使用触发器的T-SQL限制 225
13.6 触发器应用实例分析 226
实验与思考 229
第14章 数据库安全及访问控制 231
14.1 SQL Server安全认证模式 231
14.2 SQL Server登录账户的管理 232
14.2.1 Windows登录账户的建立
与删除 232
14.2.2 SQL Server登录账户建立
与删除 234
14.3 数据库访问权限的建立与删除 236
14.3.1 建立用户访问数据库的权限 236
14.3.2 删除用户访问数据库的权限 237
14.4 角色管理 238
14.4.1 固定服务器角色 238
14.4.2 数据库角色 240
14.5 数据库权限管理 246
14.5.1 权限种类 246
14.5.2 授予权限 247
14.5.3 禁止权限 249
14.5.4 取消权限 250
14.6 安全控制设置的实例分析 251
实验与思考 253
第15章 数据备份与恢复 255
15.1 数据备份概述 255
15.1.1 备份策略规划 255
15.1.2 数据一致性检查 257
15.2 备份前的准备 258
15.2.1 设置恢复模式 258
15.2.2 掌握备份设备管理 259
15.3 数据库备份 261
15.3.1 BACKUP语句的语法格式 261
15.3.2 执行数据库备份 262
15.4 数据库恢复概述 266
15.4.1 系统自启动的恢复进程 266
15.4.2 用户手工恢复数据库的准备 266
15.5 数据库恢复 267
15.5.1 RESTORE语句的语法格式 267
15.5.2 数据库恢复 268
15.6 备份与恢复数据库实例分析 271
15.6.1 用户数据库备份恢复 271
15.6.2 系统数据库恢复方法 272
实验与思考 273
第16章 数据复制与转换 274
16.1 复制概述 274
16.1.1 复制结构 274
16.1.2 复制类型 276
16.1.3 复制代理 277
16.1.4 可更新订阅 277
16.2 配置复制 278
16.2.1 创建服务器角色和分发数据库 278
16.2.2 配置复制选项 279
16.2.3 删除复制配置信息 279
16.3 创建发布出版物 280
16.4 订阅出版物 280
16.5 管理复制选项 280
16.5.1 可更新的订阅选项 280
16.5.2 筛选复制数据 282
16.5.3 可选同步伙伴 282
16.6 复制监视器 283
16.7 数据导入导出 283
16.7.1 SQL Server数据表数据导出 283
16.7.2 SQL Server数据表数据导入 284
16.8 复制实例 284
实验与思考 287
附录A 样例数据库创建及数据输入 288
参考文献 293
展开
第三版前言
当下我们处在信息社会已经是毋容置疑的了。从淘宝一天网上几百亿的交易金额,到春晚几百亿次“摇一摇”微信红包,或是公众一天上亿次对“穹顶之下”的刷屏,再到大数据下的精准广告投放,还有国家大力倡导的互联网+,这里面都有一个技术在支撑,那就是数据库技术。
数据库管理系统是数据库技术中的核心,她是一个数据管理软件,具有数据定义、数据操作、数据库运行管理和数据库维护等功能。近年,为了适应信息社会快速发展的需要,各种数据库管理系统不断升级换代,增加新的技术。
SQL Server2000到SQL Server2005经历了5年,再到SQL Server2008用了3年,然后是SQL Server2012,现在SQL Server2014已经开始面世。不可否认,每推出一个新的版本,都会有新的技术在里面体现,如果作为数据库管理系统的高级应用人员,关注新的功能是必须的。但是,这本教材面向的是本科生或研究生,讲述的是如何进行数据库设计、创建和使用,是数据库管理系统中最基本最核心的知识和技术。纵观SQL Server发展变化,数据库操纵和T-SQL变化并不大,因此,这次修订淡化了SQL Server具体版本的概念,对某些只是在某个SQL Server版本上才能操作的章节进行了删除,仅保留了个别必须用具体版本才能说明的例子。书中除个别程序特殊必须在某些版本上使用外,几乎所有程序均可在SQL Server 2000到SQL Server 2012系统上运行。
随着数据库承载数据量的不断加大和数据库管理系统对应功能的扩展和增强,数据库优化越来越重要,书中对数据查询优化做了入门介绍。如果读者需要了数据库优化更深入的知识和技术,欢迎和作者探讨。
本书第1版于2008年7月出版,2011年进行了第2版修订,架构做了比较大的改动,在经过多次印刷使用的基础上,现再次进行修订并改正了原来存在的错误,尽管如此,仍然会有不合理或错误的地方,恳请读者批评指正!
感谢一贯支持的读者和同事!
孟先虎
2016年3月于慧鸣湖
前 言
本书是普通高等教育“十一五”国家级规划教材。
大型数据库管理系统SQL Server是近年来国内外广泛使用的数据库管理系统,它既支持C/S模式系统,也支持B/S模式系统,是开发管理信息系统常用的主流数据库管理系统之一。国内许多高等学校已陆续开设了这门课程。但是,对于SQL Server,市场上大量的相关书籍有的是围绕实用技术讲解的,有些类似于帮助说明书、专题介绍,而有些偏重于程序设计,有些主要讲解原理。对于专门学习大型数据库管理系统技术的高年级本科生和研究生在有限的时间内学到各种需要的知识点,明显不方便,因此在教学中不得不准备多本相关参考书。
基于上述原因,将大型数据库管理系统的基本原理和在这些原理指导下的数据库管理、技术和程序设计结合起来是本书作者想要得到的结果,也是学生参加工作前急需掌握的一门重要技术。因此,作者基于多年该门课程教学的体会和经验,参考了众多数据库和SQL Server相关书籍及其他资料,编写了这本教材。
本书可作为高等学校计算机应用和信息管理与信息系统等相关专业本科生和研究生的教材,也可作为社会相关从业人员的自学培训教材,对于开发信息管理系统的技术人员具有较高的参考价值。
本书具有以下特色:
(1)原理、管理、程序设计并重,使得内容全面,例题丰富,概念清晰,循序渐进,易于学习。
(2)分解难点,设计成16个专题,既独立成章,又前后关联,便于教师教学。
(3)采用通俗易懂、容易理解的方法叙述复杂的概念,结合实例分析,帮助读者逐步掌握必要的技术知识。
(4)采用一个实例贯穿全书,使学生可以通过本书学习,彻底明白如何用SQL Server技术完成数据库应用系统的设计、实现和管理。
本书主要内容包括:数据库基础知识、数据库应用设计、SQL Server 2005安装、配置与管理、SQL Server数据库存储原理和创建、表的结构分析及完整性创建管理、SQL Server查询处理和表数据编辑、T-SQL程序结构、SQL Server事务和并发控制、视图的规划与操作、索引的机理、规划和设计、游标操作和应用、存储过程和用户存储过程设计、触发器原理及使用、用户自定义函数设计、数据库安全及访问控制、数据备份与恢复、数据复制等,每章均配有针对性实验。
本书向使用本书作为教材的教师提供配套电子课件、实例数据库、习题参考答案,请登录华信教育资源网(http://www.hxedu.com.cn)注册下载。
本书第1版于2008年7月出版,经过3年实践教学的检验,结合广大使用本书作为教材的老师和同学提出的建议和意见,我对全书内容进行了整体修订。本次修订引用或参考了第1版的重要内容成果,在此向马雪英老师和邓绪斌老师深表谢意!
本书在编写过程中同时得到了浙江财经学院领导和信息学院领导及全体同事的大力支持,在此向他们和所有帮助和关心本书编写的朋友致以衷心的感谢!
在编写本书的过程中,我们参考了众多相关参考书、资料和SQL Server联机帮助,为了表示尊敬和感谢,在本书的最后我们尽量罗列说明,如有遗漏敬请谅解。
书中难免有许多不足和错误之处,恳请读者批评指正!
孟宪虎
2011年5月
展开