第一部分 SQL Server基础 1
第1章 数据库系统和SQL Server 2005 1
1.1 数据库系统概述 3
1.1.1 数据库系统 3
1.1.2 数据库管理系统 6
1.2 关系数据库系统 7
1.2.1 数据模型的基本要素 7
1.2.2 几种典型的数据模型 8
1.2.3 关系数据库 11
1.3 SQL:一种关系数据库语言 12
1.4 关系数据理论 13
1.4.1 什么是函数依赖 14
1.4.2 候选码和主码 15
1.4.3 什么是范式 16
1.4.4 第一范式(1NF) 16
1.4.5 第二范式(2NF) 17
1.4.6 第三范式(3NF) 18
1.4.7 BC范式(BCNF) 19
1.4.8 关系模式的规范化和分解 21
1.5 数据库设计 24
1.5.1 需求分析 24
1.5.2 数据库结构设计 31
1.6 数据库的实施、运行和维护 38
1.6.1 数据库实施 39
1.6.2 数据库系统的运行和维护 40
1.7 SQL Server 2005概述 41
1.7.1 什么是SQL Server 2005 41
1.7.2 SQL Server 2005新增加的功能 42
1.8 SQL Server 2005版本和组件 46
1.8.1 SQL Server 2005的5种版本 46
1.8.2 SQL Server 2005组件和工具 47
1.9 小结 49
第2章 数据库语言SQL 50
2.1 SQL概述 50
2.1.1 SQL语言的发展 50
2.1.2 SQL语言的特点 51
2.1.3 SQL语言的基本功能 52
2.2 SQL语言的数据类型 52
2.2.1 字符串型 53
2.2.2 数值型 53
2.2.3 日期时间型 54
2.2.4 货币型 54
2.2.5 二进制型 54
2.2.6 其他数据类型 55
2.3 SQL的数据定义功能 55
2.3.1 CREATE TABLE语句 55
2.3.2 ALTER TABLE语句 57
2.3.3 DROP TABLE语句 58
2.3.4 CREATE INDEX语句 58
2.3.5 DROP INDEX语句 59
2.4 SQL的数据查询功能 59
2.4.1 SELECT基本查询 60
2.4.2 带DISTINCT的查询 62
2.4.3 带WHERE子句的条件查询 63
2.4.4 带BETWEEN的范围查询 63
2.4.5 带IN的范围查询 64
2.4.6 带GROUP的分组查询 65
2.4.7 带like的匹配查询和带is的空值查询 66
2.4.8 使用Order排序查询结果 67
2.4.9 连接查询 68
2.4.10 嵌套查询 72
2.4.11 查询的集合运算 76
2.5 SQL的数据操纵功能 77
2.5.1 使用INSERT语句插入数据 78
2.5.2 使用UPDATE语句更新数据 79
2.5.3 使用DELETE语句删除数据 80
2.6 SQL的数据控制功能 81
2.7 小结 83
第3章 Transact-SQL程序设计 84
3.1 Transact-SQL概述 84
3.1.1 什么是Transact-SQL语言 84
3.1.2 Transact-SQL的扩充 85
3.1.3 Transact-SQL元素 85
3.2 Transact-SQL的变量和常量 86
3.2.1 变量的定义和使用 87
3.2.2 Transact-SQL常量 89
3.3 Transact-SQL运算符 92
3.4 Transact-SQL流程控制 94
3.4.1 注释和语句块 94
3.4.2 IF语句 95
3.4.3 CASE语句 98
3.4.4 WHILE语句 100
3.4.5 GOTO语句 101
3.4.6 TRY...CATCH语句 101
3.4.7 RETURN语句 102
3.4.8 WAITFOR语句 102
3.5 事务编程 103
3.5.1 几种事务模式 103
3.5.2 事务编程方法 104
3.6 Transact-SQL函数 108
3.6.1 系统内置函数 108
3.6.2 用户自定义函数 114
3.7 小结 118
第二部分 SQL Server系统管理 121
第4章 SQL Server 2005的安装 121
4.1 安装SQL Server 2005的准备 121
4.1.1 安装SQL Server 2005的硬件要求 121
4.1.2 安装SQL Server 2005的操作系统要求 122
4.1.3 安装SQL Server 2005的其他要求 123
4.2 安装SQL Server 2005 124
4.2.1 安装必要的软件 124
4.2.2 SQL Server 2005安装过程 124
4.3 客户机的安装和使用 131
4.3.1 客户机和服务器的概念 131
4.3.2 SQL Server 2005客户机工具 131
4.3.3 安装SQL Server Management Studio(SSMS) 132
4.3.4 将SSMS连接到SQL Server 2005服务器 132
4.4 小结 133
第5章 SQL Server 2005体系结构与服务器管理 134
5.1 SQL Server 2005服务器的组成 134
5.2 SQL Server 2005数据库的体系结构 135
5.2.1 SQL Server 2005数据库的逻辑结构 135
5.2.2 SQL Server 2005数据库的物理结构 135
5.3 注册SQL Server 2005服务器 136
5.3.1 什么是服务器注册 136
5.3.2 如何查看已注册的服务器 136
5.3.3 如何注册服务器 137
5.3.4 管理和使用已注册的服务器 139
5.4 配置SQL Server 2005服务器 140
5.4.1 “常规”选项卡 140
5.4.2 “内存”选项卡 141
5.4.3 “处理器”选项卡 142
5.4.4 “安全性”选项卡 143
5.4.5 “连接”选项卡 144
5.4.6 “数据库设置”选项卡 145
5.4.7 “高级”选项卡 146
5.4.8 “权限”选项卡 147
5.5 SQL Server 2005服务器的暂停、关闭和启动 148
5.5.1 使用SQL Server配置管理器 148
5.5.2 使用SSMS 148
5.5.3 使用Windows控制面板 149
5.6 小结 149
第6章 SQL Server 2005管理及开发工具 151
6.1 SQL Server 2005管理工具简介 151
6.2 SQL Server Management Studio(SSMS) 152
6.2.1 启动SSMS 153
6.2.2 连接服务器 153
6.2.3 SSMS菜单 154
6.2.4 查询编辑器 158
6.2.5 对象资源管理器 160
6.3 Business Intelligence Development Studio 161
6.3.1 启动SQL Server Business Intelligence Development Studio 162
6.3.2 菜单 162
6.3.3 创建项目 164
6.3.4 配置环境、工具和窗口 165
6.3.5 使用源代码管理服务 165
6.4 SQL Server配置管理器 166
6.4.1 管理SQL Server 2005服务 166
6.4.2 配置服务器端的网络协议 167
6.4.3 配置客户端的网络协议和别名 167
6.5 Reporting Services配置 167
6.6 SQL Server 2005外围应用配置器 168
6.7 SQL Database Engine Tuning Advisor(数据库引擎优化顾问) 169
6.8 SQL Profiler 170
6.9 sqlcmd实用工具 172
6.10 小结 173
第7章 管理SQL Server 2005数据库 175
7.1 数据库文件 175
7.1.1 几个重要概念 175
7.1.2 什么是数据文件和文件组 176
7.1.3 什么是日志文件 178
7.2 如何创建数据库 178
7.2.1 使用SSMS创建数据库 179
7.2.2 使用Transact-SQL创建数据库 180
7.3 如何查看数据库 183
7.3.1 使用MSSMS查看数据库属性 183
7.3.2 使用系统存储过程查看数据库信息 185
7.3.3 使用Select语句查看数据库文件 186
7.4 如何修改数据库 188
7.4.1 扩充数据库 188
7.4.2 收缩数据库 190
7.4.3 数据库更名 192
7.4.4 添加和删除文件(组) 192
7.5 分离和附加数据库 196
7.5.1 分离数据库 196
7.5.2 附加数据库 197
7.6 如何删除数据库 198
7.6.1 使用SSMS删除数据库 198
7.6.2 使用Transact-SQL删除数据库 198
7.7 SQL Server 2005系统数据库 198
7.7.1 master数据库 198
7.7.2 model数据库 199
7.7.3 msdb数据库 200
7.7.4 tempdb数据库 200
7.7.5 resource数据库 200
7.8 小结 201
第8章 管理SQL Server 2005数据表 202
8.1 数据表的分类 202
8.2 定义数据表 203
8.2.1 基本数据类型 203
8.2.2 创建数据表 203
8.2.3 建立表间的外键关联 206
8.3 修改表结构 207
8.3.1 删除字段 207
8.3.2 添加字段 208
8.3.3 修改字段的定义和约束 208
8.4 插入数据 208
8.4.1 插入单独一行 208
8.4.2 插入多行 209
8.5 更新数据 210
8.6 删除数据 210
8.7 删除数据表 211
8.8 小结 211
第9章 SQL Server 2005索引与查询优化 212
9.1 索引概述 212
9.1.1 什么是索引 212
9.1.2 何种情况下需要创建索引 213
9.2 索引的类型 213
9.2.1 索引数据结构——B-树 213
9.2.2 聚类索引和非聚类索引 214
9.2.3 惟一索引 216
9.2.4 组合索引 216
9.3 创建索引 216
9.3.1 创建索引之前 217
9.3.2 使用SSMS创建索引 217
9.3.3 使用SQL语言创建索引 219
9.3.4 为计算列创建索引 224
9.3.5 为视图创建惟一聚类索引 225
9.4 查看和删除索引 226
9.4.1 查看对一个表所创建的索引 226
9.4.2 查看索引的使用情况 227
9.4.3 查看及修改索引的属性 227
9.4.4 删除索引 228
9.5 设计高效的查询语句 229
9.5.1 联接查询与其等效子查询 230
9.5.2 避免笛卡儿积查询 230
9.5.3 维护索引和列的统计信息 230
9.6 查询优化器 231
9.6.1 SQL Server对SELECT语句的处理过程 231
9.6.2 优化器的统计 232
9.6.3 联接操作 233
9.6.4 设置优化器提示 235
9.6.5 为优化器指定索引 236
9.6.6 为优化器指定联接方式 237
9.7 使用SQL Server 2005优化顾问 238
9.7.1 启动SQL Server 2005优化顾问 238
9.7.2 优化数据库 239
9.7.3 查看并实施建议 242
9.7.4 查看优化报告 243
9.7.5 dta命令提示实用工具 244
9.8 小结 249
第10章 管理SQL Server 2005视图 250
10.1 视图的概念 250
10.2 创建视图 251
10.2.1 使用SSMS创建视图 251
10.2.2 使用SQL语句创建视图 254
10.3 视图的查询与使用 255
10.3.1 查看视图的信息 255
10.3.2 查看视图的相关性 256
10.3.3 使用视图 256
10.4 视图中的数据更新 257
10.4.1 INSERT语句和视图 257
10.4.2 UPDATE语句和视图 259
10.4.3 DELETE语句和视图 259
10.4.4 更新操作应该注意什么 260
10.5 视图的修改和删除 260
10.5.1 修改视图 260
10.5.2 删除视图 262
10.6 小结 263
第11章 游标 264
11.1 游标概述 264
11.1.1 什么是游标 264
11.1.2 游标的类型 264
11.1.3 游标的分类 265
11.2 声明游标 266
11.3 打开游标 268
11.4 使用游标 269
11.4.1 使用游标读取数据 269
11.4.2 使用游标修改数据 273
11.4.3 使用游标删除数据 274
11.5 关闭和删除游标 274
11.5.1 关闭游标 274
11.5.2 删除游标 274
11.6 小结 275
第12章 存储过程和触发器 276
12.1 存储过程 276
12.1.1 什么是存储过程 276
12.1.2 存储过程的类型 277
12.1.3 存储过程的创建和执行 278
12.1.4 存储过程的修改和删除 282
12.2 触发器 283
12.2.1 什么是触发器 283
12.2.2 创建DML触发器 284
12.2.3 创建DDL触发器 287
12.2.4 修改触发器 288
12.2.5 禁用和启用触发器 289
12.2.6 删除触发器 290
12.3 小结 290
第13章 数据完整性 292
13.1 关于数据完整性 292
13.1.1 什么是数据完整性 292
13.1.2 数据完整性的分类 292
13.2 SQL Server 2005中完整性的实施方法 293
13.2.1 使用规则 293
13.2.2 使用默认值 296
13.2.3 使用约束 298
13.3 实施实体完整性 298
13.3.1 创建主键约束 298
13.3.2 创建惟一约束 299
13.3.3 使用Identity字段 299
13.3.4 实体完整性的检查 300
13.4 实施参照完整性 300
13.4.1 定义外键约束 300
13.4.2 检查参照完整性 301
13.5 实施用户定义完整性 302
13.5.1 域完整性约束的实现 303
13.5.2 表级完整性约束的实现 307
13.6 小结 307
第14章 SQL Server 2005安全性 309
14.1 SQL Server 2005的安全性机制 309
14.1.1 Windows级的安全机制 309
14.1.2 SQL Server级的安全机制 310
14.1.3 数据库级和数据对象级的安全机制 310
14.1.4 SQL Server 2005新增的安全策略 310
14.2 服务器的安全性 311
14.2.1 身份验证模式 311
14.2.2 如何更改身份验证模式 312
14.2.3 管理服务器的登录账号 313
14.2.4 服务器角色 316
14.3 数据库的安全性 318
14.3.1 架构 318
14.3.2 数据库角色 320
14.3.3 创建数据库用户 324
14.3.4 授予与回收用户权限 327
14.3.5 修改和删除数据库用户 327
14.4 数据对象的安全性 328
14.4.1 权限种类 328
14.4.2 对象权限的管理 329
14.5 小结 330
第15章 SQL Server 2005数据库备份与恢复 331
15.1 备份和恢复 331
15.1.1 为什么要备份 331
15.1.2 该备份哪个数据库 332
15.1.3 如何定期备份数据库 332
15.1.4 关键备份时间 333
15.1.5 备份类型 333
15.1.6 恢复 334
15.2 数据库备份 334
15.2.1 创建备份设备 335
15.2.2 执行备份操作 337
15.3 数据库恢复 344
15.3.1 三种恢复模式 345
15.3.2 数据库恢复命令 346
15.3.3 备份恢复案例——使用Transact-SQL语句 351
15.3.4 备份恢复案例——使用SSMSE 358
15.4 小结 360
第三部分 SQL Server 2005应用 363
第16章 SQL Server 2005数据库的访问技术 363
16.1 使用ODBC连接数据库 363
16.1.1 数据访问接口 363
16.1.2 ODBC体系结构 364
16.1.3 创建ODBC数据源 364
16.2 使用OLE DB和ADO访问数据库 368
16.2.1 理解OLE DB和ADO 368
16.2.2 Connection对象 370
16.2.3 Parameter对象 377
16.2.4 Recordset对象 378
16.3 使用ADO访问数据库实例(ADO+ASP) 389
16.3.1 连接数据库 389
16.3.2 浏览数据 390
16.3.3 添加数据 391
16.3.4 查询与修改 394
16.3.5 删除数据 401
16.4 使用ADO.NET访问数据库 404
16.4.1 什么是ADO.NET 404
16.4.2 SqlConnection对象 405
16.4.3 Command对象 407
16.4.4 DataReader对象 408
16.4.5 DataSet对象 408
16.5 小结 411
第17章 人才储备管理系统 412
17.1 总体设计 412
17.1.1 系统功能设计 412
17.1.2 系统功能模块的划分 413
17.2 数据库设计 414
17.2.1 系统的概念结构设计 414
17.2.2 数据库逻辑结构设计 416
17.2.3 创建数据库和数据表 417
17.2.4 创建数据视图 421
17.3 系统结构设计 422
17.3.1 系统结构 422
17.3.2 安装和配置IIS 423
17.4 各个功能模块的设计与实现 427
17.4.1 创建数据库连接对象 427
17.4.2 人才基本信息管理模块 428
17.4.3 教育经历信息管理模块 445
17.4.4 职位变更信息管理模块 451
17.4.5 工作成果信息管理模块 460
17.4.6 人才信息多维查询模块 465
17.4.7 系统登录与用户管理 477
17.5 小结 480
第18章 物资管理系统 481
18.1 系统的总体设计 481
18.1.1 系统功能模块的划分 481
18.1.2 系统模块功能描述 482
18.1.3 系统流程 483
18.1.4 系统包图与类图 484
18.1.5 系统设计分析 485
18.2 数据库设计 487
18.2.1 创建数据库 487
18.2.2 数据库的逻辑结构 488
18.2.3 创建数据表 491
18.3 应用程序的设计与实现 493
18.3.1 创建工程框架 493
18.3.2 添加Data Module 494
18.3.3 表操作类的实现 494
18.3.4 登录模块与系统主界面 514
18.3.5 基础数据管理模块 516
18.3.6 出入库管理模块 533
18.3.7 库作业信息管理模块 539
18.3.8 库信息查询模块 544
18.3.9 库存控制管理模块 550
18.3.10 系统管理模块 558
18.4 小结 562
第四部分 SQL Server 2005智能数据处理 565
第19章 数据仓库技术 565
19.1 数据仓库与联机分析处理 565
19.1.1 什么是数据库仓库 565
19.1.2 联机分析处理(OLAP) 566
19.1.3 数据库系统与数据仓库系统 566
19.2 多维数据模型(数据立方体) 567
19.3 数据仓库设计 570
19.3.1 数据仓库的组成及其设计 570
19.3.2 设计数据仓库的结构 571
19.4 数据挖掘与知识发现 572
19.4.1 什么是知识发现 572
19.4.2 知识发现的一般处理过程 573
19.4.3 数据挖掘与知识发现的关系 575
19.4.4 数据挖掘任务 575
19.5 如何发现关联规则 578
19.5.1 什么是关联规则 578
19.5.2 如何发现频繁项集 580
19.5.3 产生强关联规则 582
19.6 数据分类 584
19.6.1 什么是决策树 585
19.6.2 决策树学习 586
19.6.3 如何从决策树中提取分类规则 590
19.7 聚类分析 590
19.7.1 聚类问题一般模型 590
19.7.2 基于划分的聚类分析 592
19.8 小结 594
第20章 SQL Server Integration Services(数据集成服务) 595
20.1 SQL Server 2005 Integration Services概述 595
20.1.1 什么是SQL Server 2005 Integration Services(SSIS) 595
20.1.2 SSIS的作用 595
20.1.3 SSIS体系结构 596
20.2 使用BI Development Studio创建和设计包 598
20.2.1 什么是包 598
20.2.2 在创建包之前 599
20.2.3 通过创建IS项目来创建包 599
20.2.4 添加数据流任务 600
20.2.5 添加和配置连接管理器 601
20.2.6 添加平面文件源组件 605
20.2.7 添加派生列组件和排序组件 606
20.2.8 添加OLE DB目标组件 608
20.2.9 运行SSIS包 610
20.3 扩展SSIS包的功能 611
20.3.1 容器、任务与优先约束 611
20.3.2 Foreach循环容器 612
20.3.3 变量 615
20.3.4 For循环容器 617
20.3.5 包配置 621
20.3.6 包部署与执行 625
20.4 在SSMS中管理包 629
20.4.1 监视包的运行 629
20.4.2 管理存储包 629
20.4.3 包的导出和导入 630
20.5 小结 631
第21章 SQL Server Analysis Services(数据分析服务) 632
21.1 SQL Server Analysis Services概述 632
21.2 在BI Development Studio中创建Analysis Serviece 2005数据库 633
21.2.1 创建Analysis Services项目 633
21.2.2 定义数据源 634
21.2.3 创建数据源视图 636
21.2.4 创建多维数据集 639
21.2.5 部署Analysis Services项目 644
21.3 浏览多维数据集 646
21.3.1 查看维度设计 646
21.3.2 查看维度的度量值分布 647
21.4 修改多维数据集 650
21.4.1 修改维度属性 650
21.4.2 删除维度属性 651
21.4.3 修改层次结构 651
21.4.4 使多维数据集的修改生效 652
21.5 增强多维数据集功能 652
21.5.1 定义和使用计算成员 652
21.6 数据挖掘 654
21.6.1 在关联规则发现之前 654
21.6.2 创建用于关联规则发现的AS项目 656
21.6.3 创建到数据库AdventureWorksDW的数据源 656
21.6.4 创建数据源视图 657
21.6.5 生成面向规则发现的解决方案 657
21.6.6 浏览关联模型 660
21.6.7 决策树方法 663
21.7 小结 668
第22章 SQL Server Reporting Services(报表服务) 669
22.1 SQL Server Reporting Services 2005的新功能 669
22.2 使用报表向导创建报表 670
22.2.1 创建Reporting Services项目 670
22.2.2 创建报表的步骤 671
22.2.3 浏览报表的设计效果 676
22.3 在报表设计器中创建和设计报表 676
22.3.1 创建空报表 676
22.3.2 添加数据源 677
22.3.3 定义报表查询 678
22.3.4 添加报表标题 679
22.3.5 添加“列表”组件 680
22.3.6 添加并设置“表”组件 682
22.4 将报表发布到服务器 686
22.5 报表模型与Report Builder 688
22.5.1 什么是Report Builder 688
22.5.2 创建报表模型 688
22.5.3 发布报表模型 694
22.5.4 使用Report Builder设计报表 696
22.5.5 如何设计带参数的报表 699
22.6 使用报表管理器 700
22.6.1 表管理器主界面中的元素 701
22.6.2 如何浏览报表 701
22.6.3 如何删除对象 702
22.6.4 如何转移对象 702
22.6.5 如何更新对象 703
22.6.6 如何启用“我的报表” 703
22.7 小结 704
第23章 XML支持 705
23.1 SQL Server 2005与XML 705
23.1.1 什么是XML 705
23.1.2 SQL Server 2005对XML功能的增强 707
23.2 XML语法 708
23.2.1 一个XML例子与XML术语 709
23.2.2 XML声明 712
23.2.3 XML标记与元素 712
23.2.4 元素属性 713
23.2.5 DTD文件 715
23.2.6 一个DTD例子及其验证 719
23.2.7 内部DTD与外部DTD 722
23.2.8 CDATA段 723
23.2.9 XML注释 725
23.3 XML Schema 725
23.3.1 什么是XML Schema 725
23.3.2 一个XML Schema例子 726
23.3.3 进行XML验证 727
23.3.4 Schema的元素声明 729
23.3.5 Schema的属性声明 730
23.4 XQuery 731
23.4.1 按节点查询XML数据 732
23.4.2 按元素属性查询XML数据 732
23.4.3 FLWOR语句 733
23.4.4 XQuery语言中的IF语句 735
23.4.5 XML数据类型方法 736
23.5 XML索引 743
23.5.1 创建XML索引 743
23.5.2 修改XML索引 746
23.5.3 删除XML索引 746
23.6 小结 746