本书通过大量翔实的示例,向读者展示了
SQL Server
2005数据库的原理、开发、应用及管理的相关
技术和技巧。全书15章,可分为3大部分:第1部分(第1、2章)概述了数据库的基本原理,包括数据处理的
基础知识、数据库的基本体系结构、开发过程、关系数据库的
设计理论等内容;第2部分(第3~9章)是本书的重点,也是读者深入学习SQL Server 2005的基础,详细介绍了SQL Server 2005的
安装和配置过程,如何创建和管理数据库、数据表,以及如何对数据进行查询、修改、输出等内容;第3部分(第10~14章)详细介绍了SQL Server 2005的一些高级话题,如存储过程、触发器、约束、同义词,以及数据库的备份和还原、安全管理技术,数据的
分析与挖掘等内容。为提高读者的应用开发能力,本书第15章提供了
电子相册系统的具体开发过程,以供学习和参考。
本书内容丰富,结构清晰,核心概念和关键技术讲解清楚,同时提供了丰富的示例以展示具体应用。本书具有很强的操作性和实用性,可作为高等院校、高职学校“SQL Server数据库原理与应用”课程的
教材,或社会培训班“SQL Server 2005”的基础入门教材,同时对从事数据库开发和管理的人员也具有较高参考价值。
前 言
高职高专教育以就业为导向,以技术应用型人才为培养目标,担负着为国家经济高速发展输送一线高素质技术应用人才的重任。近年来,随着我国高等职业教育的发展,高职院校数量和在校生人数均有了大幅激增,已经成为我国高等教育的重要组成部分。
根据目前我国高级应用型人才的紧缺情况,教育部联合六部委推出“国家技能型紧缺人才培养培训项目”,并从
2004年秋季起,在全国两百多所学校的
计算机应用与
软件技术、数控项目、汽车维修与护理等专业推行两年制和三年制改革。
为了配合高职高专院校的学制改革和教材建设,清华大学出版社在主管部门的指导下,组织了一批工作在高等职业教育第一线的资深教师和相关行业的优秀工程师,编写了适应新教学要求的计算机系列高职高专教材——《计算机应用能力培养丛书》。该丛书主要面向高等职业教育,遵循“以就业为导向”的原则,根据企业的实际需求来进行课程体系设置和教材内容选取。根据教材所对应的专业,以“实用”为基础,以“必需”为尺度,为教材选取理论知识;注重和提高
案例教学的比重,突出培养人才的应用能力和实际问题解决能力,满足高等职业教育“学校评估”和“社会评估”的双重教学特征。
每本教材的内容均由“授课”和“实训”两个互为联系和支持的部分组成,“授课”部分介绍在相应课程中,学生必须掌握或了解的基础知识,每章都设有“学习目标”、“实用问题解答”、“小结”、“
习题”等特色段落;“实训”部分设置了一组源于实际应用的上机实例,用于强化学生的计算机操作使用能力和解决实际问题的能力。每本教材配套的习题答案、电子教案和一些教学课件均可在该丛书的
信息支持网站(http://www.tupwk.com.cn/GZGZ)上下载或通过Email(wkservice@tup.tsinghua.edu.cn)索取,读者在使用过程中遇到了疑惑或困难可以在支持网站的互动论坛上留言,本丛书的作者或技术编辑会提供相应的技术支持。
作为当前使用最流行的关系型数据库,SQL Server在大型数据库开发和管理、企业业务数据处理等方面具有广泛应用,SQL Server 2005相对于
2000及以前版本,功能和安全等方面性能有了很大提升,已经从单纯的数据库系统发展为数据处理平台,包括数据库引擎、Analysis Services、Reporting Services、Integration Services、Notification Services等服务,提供了更加专业级的商务智能解决方案,成为企业处理和管理业务数据的首选商业数据平台。
本书依据教育部《高职高专教育计算机公共基础课程教学基本要求》编写而成,基于SQL Server 2005数据库,在注重讲解基础知识和开发、管理技术的同时,注重体现其
最新特色,并提供精彩的示例,展示SQL Server 2005的开发和管理过程。
本书结构紧凑,内容承上启下,共15章,可分为3大部分:第1部分(第1、2章)概述了数据库的基本原理,包括数据处理的基础知识、数据库的基本体系结构、开发过程,以及关系数据库的设计理论等内容;第2部分(第3~9章)是本书的重点,也是读者深入学习SQL Server 2005的基础,详细介绍了SQL Server 2005的安装和配置过程,如何创建和管理数据库、数据表,以及如何对数据进行查询、修改、输出等内容;第3部分(第10~14章)详细介绍了SQL Server 2005的一些高级话题,如存储过程、触发器、约束、同义词,以及数据库的备份和还原、安全管理技术、数据的分析与挖掘等内容。为提高读者的应用开发能力,本书第15章提供了电子相册系统的具体开发过程,以供学习和参考。
由于计算机科学技术发展迅速,再者受自身水平和编写时间所限,书中如有错误或不足之处,欢迎广大读者对我们提出意见或建议。
作 者
2006年11月
目 录
第1章 数据库基础知识 1
1.1 数据库概述 1
1.1.1 基本概念 1
1.1.2 数据管理技术的产生和发展 3
1.1.3 数据库系统的应用 6
1.1.4 常见的数据库管理系统 7
1.2 数据库系统的结构 8
1.2.1 模式(Schema)的概念 8
1.2.2 数据库的三级模式结构 8
1.3 数据库系统的组成 9
1.4 数据库的设计流程 10
1.4.1 需求分析 11
1.4.2 概念结构设计 11
1.4.3 逻辑结构设计 11
1.4.4
物理结构设计 12
1.4.5 数据库的实施 12
1.4.6 数据库的运行和维护 12
本章小结 12
习题 13
第2章 关系数据库及其设计理论 14
2.1 关系模型 14
2.1.1 数据模型 14
2.1.2 关系模型的
数据结构 16
2.1.3 关系模型的特点 17
2.2 关系数据库 17
2.2.1 关系操作 17
2.2.2 关系的完整性 20
2.3 关系数据库的设计理论 21
2.3.1 函数依赖 21
2.3.2 关系模式的范式(NF,
Normal Form) 22
2.3.3 关系模式的
规范化 23
2.3.4 范式应用——设计论坛数据库 24
2.4 数据库的恢复与并发
控制 25
2.4.1 事务的基础知识 25
2.4.2 数据库的恢复 26
2.4.3 数据库的并发控制 27
本章小结 31
习题 31
第3章 安装与配置SQL Server 2005 33
3.1 初识SQL Server 2005 33
3.1.1 OLTP和OLAP 33
3.1.2 客户机/服务器(C/S)架构 34
3.1.3 SQL Server 2005数据平台 35
3.2 安装SQL Server 2005 37
3.2.1 安装前的准备工作 37
3.2.2 SQL Server 2005的安装过程 39
3.2.3 验证安装是否成功 43
3.3
注册、配置和管理SQL Server
2005服务器 43
3.3.1 Management Studio概述 44
3.3.2 注册服务器 45
3.3.3 配置SQL Server 2005服务器 47
3.3.4 管理SQL Server 2005服务器 54
3.4 配置SQL Server 2005
网络环境 56
3.4.1 配置本地共享内存的SQL
Server 2005网络环境 56
3.4.2 配置TCP/IP协议的SQL
Server 2005网络环境 57
3.4.3 配置命名管道的SQL Server
2005网络环境 59
本章小结 60
习题 60
第4章 创建和管理SQL Server 2005
数据库 62
4.1 适合数据库存储的数据类型 62
4.2 重要的数据对象 63
4.3 设计与创建数据库 66
4.3.1 规划数据库 66
4.3.2 确定数据库类型 66
4.3.3 估计数据库规模 67
4.3.4 使用Management Studio
创建数据库 67
4.4 管理数据库 70
4.4.1 查看数据库信息 70
4.4.2 增大数据库容量 71
4.4.3 压缩数据库容量 73
4.4.4 分离和附加数据库 74
4.4.5 数据库的脱机和联机使用 76
4.4.6 数据库的并发访问 76
4.4.7 设置数据库
故障恢复模型 76
4.4.8 设置数据库排序规则 77
4.4.9 重命名和删除数据库 77
本章小结 78
习题 78
第5章 创建和管理SQL Server 2005
数据表 79
5.1 准备工作 79
5.1.1 数据表的常见类型 79
5.1.2 数据表的特点 80
5.1.3 规划表结构 80
5.2 创建和修改数据表 81
5.2.1 创建数据表 81
5.2.2 查看数据表属性 83
5.2.3 修改数据表结构 84
5.3 添加和修改表数据 85
5.3.1 添加数据表数据 85
5.3.2 查看数据表记录 86
5.3.3 插入一行记录 86
5.3.4 更新数据 87
5.3.5 删除数据 88
本章小结 89
习题 89
第6章 数据查询 90
6.1 选择查询 90
6.2 条件查询 93
6.2.1 带not的条件查询 94
6.2.2 带搜索范围的条件查询 94
6.2.3 带搜索列表的条件查询 94
6.2.4 带模糊匹配的条件查询 94
6.2.5 多重条件查询 95
6.3 连接查询 95
6.3.1 等值与非等值连接查询 95
6.3.2 自然连接查询 96
6.3.3 自连接查询 96
6.3.4 外连接查询 97
6.3.5 复合条件连接查询 98
6.4 嵌套查询 98
6.4.1 带有in的嵌套查询 98
6.4.2 带有比较运算符的嵌套查询 99
6.4.3 带有any或all的嵌套查询 100
6.4.4 带有exists的嵌套查询 100
6.5 集合查询 101
6.5.1 union(并)操作 101
6.5.2 intersect(交)操作 101
6.5.3 except(差)操作 101
6.6 数据的排序 102
6.7 数据的成组 103
6.8 利用可视化编辑器设计查询 104
6.9 嵌入式Transact-SQL与动态
查询技术 105
6.9.1 嵌入式Transact-SQL的一般
形式 105
6.9.2 动态查询技术 106
本章小结 107
习题 107
第7章 查询的优化——索引和视图 108
7.1 索引(Index) 108
7.1.1 索引的结构和基本类型 109
7.1.2 创建索引时的考虑因素和
基本原则 112
7.1.3 在Management Studio中
创建索引 113
7.1.4 检测与处理索引碎片 117
7.1.5 查看与维护索引统计信息 121
7.1.6 重命名和删除索引 122
7.2 视图(View) 122
7.2.1 视图的作用和基本类型 123
7.2.2 创建视图的基本原则 124
7.2.3 在Management Studio中
创建
标准视图 124
7.2.4 通过视图修改数据 125
7.2.5 修改和删除视图 128
本章小结 129
习题 129
第8章 数据的修改与计算——事务
和函数 131
8.1 数据修改 131
8.1.1 数据修改与事务 131
8.1.2 自动提交事务 132
8.1.3 显式事务 132
8.1.4 隐式事务 134
8.1.5 如何避免阻塞和死锁 135
8.2 计算和汇总数据 135
8.2.1 GUID(全局唯一性标识符) 136
8.2.2 聚合函数 136
8.2.3 字符串函数 136
8.2.4 日期与时间函数 137
8.2.5
数学函数 137
8.2.6 系统与元数据函数 138
本章小结 138
习题 139
第9章 数据输出——Reporting
Services 140
9.1 Reporting Services概述 140
9.1.1 Reporting Services的
需求分析 140
9.1.2 Reporting Services的
基本概念 141
9.1.3 Reporting Services的核心
组件和工具 143
9.1.4 报表的设计流程 146
9.2 创建和修改报表 146
9.2.1 使用报表生成器创建报表 146
9.2.2 使用报表设计器创建报表 151
9.2.3 修改报表 159
9.3 发布和管理报表 160
9.3.1 发布报表 160
9.3.2 使用报表管理器管理发布
报表 161
9.3.3 使用Management Studio
管理报表 169
9.4 报表的传递技术 171
9.4.1 报表的订阅功能 171
9.4.2 共享计划 175
本章小结 176
习题 176
第10章 存储过程和触发器 178
10.1 存储过程 178
10.1.1 存储过程的特点和基本
类型 178
10.1.2 创建存储过程的基本原则 179
10.1.3 创建和调用存储过程 180
10.1.4 修改和删除存储过程 184
10.1.5 存储过程的执行过程和
重编译 185
10.1.6 加密存储过程 186
10.1.7 使用系统存储过程和
扩展存储过程 187
10.2 触发器 192
10.2.1 触发器的特点和基本类型 192
10.2.2 创建触发器的基本原则 193
10.2.3 创建和激活DML触发器 193
10.2.4 创建和激活DDL触发器 201
10.2.5 使用RAISEERROR()命令
报告错误 202
10.2.6 禁用和重新激活触发器 203
10.2.7 修改和删除触发器 204
本章小结 205
习题 206
第11章 约束、同义词和自定义函数 208
11.1 约束 208
11.1.1 创建DEFAULT约束 208
11.1.2 创建CHECK约束 210
11.1.3 创建主键约束 211
11.1.4 创建唯一约束 212
11.1.5 创建外键约束 213
11.1.6 管理约束 213
11.2 同义词 214
11.2.1 同义词简介 215
11.2.2 创建和管理同义词 215
11.3 用户自定义函数 218
11.3.1 含义和特点 218
11.3.2 组成 219
11.3.3 类型 219
11.3.4 设计原则 219
11.3.5 创建和调用表值函数 220
11.3.6 创建和调用标量值函数 223
11.3.7 管理用户自定义函数 224
11.3.8 在用户自定义函数中语句
的使用限制 226
本章小结 226
习题 227
第12章 数据库安全与角色管理 228
12.1 SQL Server 2005的安全机制 228
12.2 基本概念 229
12.3 管理服务器安全 230
12.3.1 SQL Server 2005服务器
的登录模式 230
12.3.2 创建和管理登录名 231
12.3.3 服务器角色管理 233
12.4 管理数据库安全 235
12.4.1 数据库架构管理 235
12.4.2 数据库用户名管理 237
12.4.3 数据库角色管理 238
12.5 SQL Server 2005的安全
层次机制 243
本章小结 245
习题 246
第13章 数据库的备份和恢复 247
13.1 数据库备份概述 247
13.1.1 数据库常见故障 247
13.1.2 备份及其工作原理 248
13.1.3 数据恢复模型 248
13.2 备份数据库 250
13.2.1 创建备份
设备 250
13.2.2 完整备份 251
13.2.3 差异备份 253
13.2.4 事务日志备份 254
13.2.5 文件/文件组备份 255
13.3 恢复数据库 257
13.3.1 标准恢复 257
13.3.2 文件/文件组恢复 259
13.3.3 时间点恢复 260
13.4 选择备份和恢复策略 261
13.4.1 确定恢复目标和要求 261
13.4.2 纯完整备份和恢复策略 262
13.4.3 完整兼差异备份和恢复
策略 262
13.4.4 完整兼事务日志备份和
恢复策略 262
13.4.5 完整、差异兼事务日志
备份和恢复策略 262
13.4.6 文件组备份和恢复策略 263
本章小结 263
习题 263
第14章 数据的分析与
挖掘——Analysis Services 265
14.1 Analysis Services概述 265
14.1.1 Analysis Services的
基本概念 265
14.1.2 Analysis Services的
基本对象 268
14.1.3 Analysis Services的
体系结构 271
14.2 使用Analysis Services进行
数据分析 274
14.2.1 创建Analysis Services
项目 274
14.2.2 定义多维数据集 279
14.2.3 部署Analysis Services
项目 281
14.2.4 查看和分析数据 282
14.3 使用数据挖掘 285
14.3.1 准备Analysis Services
数据库 286
14.3.2 生成目标邮件方案 287
14.3.3 生成预测方案 292
14.4 Integration Services和
Notification Services 296
14.4.1 Integration Services
(集成服务) 296
14.4.2 Notification Services
(通知服务) 296
本章小结 297
习题 297
第15章 实训——开发“电子相册”
数据库系统 299
15.1 系统设计 299
15.1.1 需求分析 299
15.1.2 功能模块划分 300
15.1.3 流程分析 300
15.2 设计数据库 300
15.3 项目的创建和设计 302
15.3.1 创建项目并添加数据源 303
15.3.2 用户登录模块设计 304
15.3.3 照片列表模块设计 309
15.3.4 照片查询模块设计 317
15.3.5 照片浏览模块设计 321
15.3.6 照片添加模块设计 323
15.3.7 照片修改模块设计 325
15.3.8 照片删除模块设计 327
15.4
调试和运行系统 328
15.5 安装和部署项目 330
附录A Transact-SQL语言 333
A.1 Transact-SQL语言的分类和
语法约定 333
A.2 Transact-SQL的数据对象
命名方法 334
A.3 Transact-SQL变量和常量 334
A.4 Transact-SQL表达式 337
A.5 Transact-SQL数据定义语言 337
A.6 Transact-SQL数据操纵语言 338
A.7 Transact-SQL控制语句 339
A.8 Transact-SQL流程控制语言 340
A.9 Transact-SQL函数 340
A.10 Transact-SQL注释 342
附录B 安装AdventureWorksDW示例
数据库 343