
本书结合SQL Server 2000数据库管理系统,基于“与企业应用、岗位技能相符”的原则,按照项目教学的基本规律编写。全书以项目为导向、以工作任务为主线,以SQL Server 2000数据库的管理与应用开发活动为载体,重点介绍以下知识与技能:SQL Server 2000数据库环境的建立及其主要管理工具的作用;数据库及各种数据库对象的创建与管理;数据库的备份与恢复、导入与导出等操作;数据库的安全体系以及管理方法;Transact-SQL语言及其应用编程技术;利用Visual C++, JSP和ASP.NET开发数据库应用程序的方法。
本书注重理论联系实践,语言浅显易懂,具有较强的实用性和操作性。本书结构组织合理,便于教学取舍;选材实用,示例丰富,便于理解和操作。
本书可作为高等职业技术学校计算机相关专业及办公自动化、电子商务、物流管理等专业的教材,也可作为普通高校或成人院校本科非计算机专业的专业课教材,也是SQL Server 2000及其应用编程初学者理想的入门读物,对计算机工作者及爱好者也有很好的参考价值。
1. 关于本书
本书是根据教育部及清华大学有关“高职项目课程教材建设”的指导精神而编写的,是作者多年来在教学实践中对课程项目教学内容、项目教学方法及项目教学效果研究成果的具体体现。
在以往基于知识体系的教学模式下,学生学习后普遍反映理论知识偏多,要掌握的技能不够明确,拿到实际项目不能很快上手,遇到新问题也不知道如何解决。如果将学生的学习活动与具体的项目相结合,以工作任务导向来组织教学,既能使理论知识和工作技能紧密融合,减少和分散理论知识;又能使学生更快地获得规划、实施和管理中小型数据库应用系统的方法与技能,提高解决实际问题的能力。为此,作者基于“与企业应用、岗位技能相符”的原则,按照项目教学的基本规律,并结合实际应用SQL Server数据库管理系统的经验编写了此教材。希望本书的出版能有助于提高项目教学的实际应用效果,让学生真正体会到“学中做”、“做中学”的乐趣。
2. 内容与结构
本书以学生成绩管理系统为主线、以SQL Server 2000为教学环境,分10个项目重点介绍以下知识与技能:SQL Server 2000数据库环境的建立及其主要管理工具的作用;SQL Server数据库和表的创建与管理;数据库的备份与恢复;数据的导入与导出及其高级管理;数据库安全性控制;T-SQL语言在数据定义、数据操纵及查询中的应用;T-SQL程序设计及其在数据库编程对象(如函数、存储过程、触发器等)中的应用;数据库应用系统的设计与开发方法等。
另外,本书为了兼顾不同层次、不同平台下的读者需求,在项目10中较为详细地介绍了Visual C++ 6.0, JSP 2.0和ASP.NET三种编程环境下的数据库访问技术及应用程序开发方法,使学生对数据库应用系统的开发有一个较为全面的认识,在掌握数据库基本概念和SQL Server的基本操作技能的同时,能进行中小型管理系统的设计与开发。 教材中各项目均包括完整的教学环节:知识目标、技能目标、若干工作任务、与任务相关的知识讲解、完成任务的方法和步骤、疑难解析、小结和课后习题等。其中,每一个工作任务又包括“任务描述”、“任务分析”、“任务实现”和“任务总结”部分(部分任务没有“任务分析”或“任务总结”环节);课后习题包括能巩固所学知识点的选择题、填空题、判断题和问答题,以及与所学技能相配套的实训题。
3. 编写思路
本书不仅注重知识与技能的传授,还注重教会学生怎么学、如何做,从而使学生学后就能很快上手。这些做法都是作者多年来从事计算机课程教学的体会,并在教学中收到了较好的教学效果。具体体现在以下几方面:
(1) 强调以学生为主体。以学生的学、练、思为教学主体,特别注重对学生实际操作能力的培养,既让学生了解数据库管理与设计方法,又使学生掌握如何去做,使学生学后会用,学以致用。
(2) 合理编排内容,把握认知规律。教材打破常规章节的编排顺序,在讲解数据库知识和训练操作技能的过程中,充分考虑学生的接受能力,按照由浅入深、由感性认识到理性认识的规律组织项目内容。
(3) 强化技能操作,突出知识重点。每个项目都分为若干任务,围绕任务进行技能和知识的传授。工作任务设置的总原则为从工作需求出发,选择相关的任务并确定相应的知识点,其目标不是储备知识,而是在任务的完成过程中学习和应用知识。
(4) 定位于职业岗位需求,适用面广。整个教材分成两大块,前半部分属于数据库管理部分,可为学生日后从事数据库管理员工作打下基础;后半部分属于数据库设计与开发部分,可为在今后的岗位上从事数据库应用系统的开发提供保证。
4. 教材特色
(1) 采用全新的体系结构。篇章结构采用“项目导向,任务驱动”来组织教学内容,整个教材结构合理,便于教学取舍。
(2) 突出实用性和可操作性。以岗位需求和职业能力为目标,以工作任务为主线,以数据库管理与应用开发活动为载体进行内容讲授。所选项目和任务难易适中,具有实用性。
(3) 注重实践、兼顾理论。教材在突出实用性和操作性的基础上也不失系统性和科学性,使学生能在掌握应用技能的同时提高知识的创新能力。
(4) 在教材内容的表述上,行文朴实流畅、浅显易懂,图文并茂,示例丰富,既便于理解和操作,也便于自学和模仿。
5. 教材适用对象
本书可以作为高等职业院校计算机相关专业以及电子商务、物流管理、国际贸易等专业的数据库技术基础、数据库应用开发课程的教材,也可以作为计算机培训及自学教材。学生在学完本教材后,应能熟练掌握SQL Server数据库的基本知识,会操作SQL Server数据库,并具有开发一般复杂程度的数据库应用系统的能力。
本书由苏州经贸职业技术学院的刘芳主编。其中,项目1、项目2、项目4~项目9以及项目10的10.1节、10.2节、10.5节、10.6节由刘芳执笔;项目3、项目10的10.3节和附录由马铭惠执笔;项目10的10.4节由谢丽萍执笔;全书由刘芳统稿。在本书的编写过程中,得到了有关部门专家和教师的大力支持,在此一并表示衷心感谢。
由于作者水平有限,书中肯定存在疏漏和不足之处,恳望广大读者不吝赐教。如对书中内容有疑问或其他意见,请与作者联系。
E-mail: liuf_0606@163.com, fliu@szjm.edu.cn
编 者2009年9月
项目1 SQL Server 数据库环境的建立1
1.1 数据库和数据库管理系统1
1.2 SQL Server版本的选择2
1.2.1 SQL Server的发展历史2
1.2.2 SQL Server 2000的特性2
1.2.3 SQL Server 2000的版本3
1.3 SQL Server 2000的安装3
1.3.1 安装SQL Server 2000的环境要求3
1.3.2 SQL Server 2000的主要组件13
1.4 SQL Server 2000的网络配置15
1.4.1 SQL Server 2000网络采用的通信协议18
1.4.2 SQL Server 2000的网络库19
1.5 疑难解答19
习题一20
项目2 SQL Server服务器的管理和配置22
2.1 SQL Server 2000的启动22
2.1.1 SQL Server 2000提供哪些服务24
2.1.2 SQL Server 2000的体系结构25
2.2 注册SQL Server 2000服务器29
2.2.1 SQL Server服务器组的概念29
2.2.2 注册服务器的概念29
2.3 暂停、启动和停止SQL Server服务33
2.3.1 为何要暂停SQL Server服务34
2.3.2 暂停和停止SQL Server服务有何区别34
2.4 配置服务器35
2.5 疑难解答36
习题二37SQL Server数据库技术及应用项目教程目 录项目3 SQL Server数据库和表的管理39
3.1 创建和管理SQL Server数据库39
3.1.1 SQL Server数据库文件和文件组39
3.1.2 SQL Server数据库初始大小的估算方法42
3.2 创建和管理SQL Server数据表58
3.2.1 SQL Server的数据类型60
3.2.2 NULL, NOT NULL和Identity64
3.3 数据完整性的实现67
3.3.1 SQL Server的完整性控制机制67
3.3.2 为数据库建立约束68
3.4 建立索引80
3.5 生成脚本82
3.6 疑难解答84
习题三85
项目4 数据库的备份与恢复89
4.1 数据库备份与恢复前的准备工作89
4.1.1 数据库备份的概念90
4.1.2 数据库恢复的概念92
4.1.3 数据库备份方法的选择93
4.1.4 数据库的定期备份与不定期备份95
4.2 数据库的备份97
4.2.1 数据库备份设备97
4.2.2 系统数据库的备份104
4.3 数据库的恢复105
4.4 疑难解答111
习题四111
项目5 SQL Server的代理与数据转换服务114
5.1 SQL Server代理服务114
5.1.1 SQL Server的代理服务机制114
5.1.2 SQL Server的作业122
5.1.3 SQL Server的警报125
5.2 数据的导入和导出125
5.3 数据库的分离与附加136
5.4 疑难解答137
习题五138
项目6 数据库安全设置140
6.1 数据库安全性的认识141
6.2 SQL Server数据安全的实现142
6.2.1 SQL Server安全体系结构142
6.2.2 SQL Server的登录账户145
6.2.3 SQL Server的数据库用户149
6.2.4 SQL Server的角色151
6.2.5 SQL Server的权限154
6.2.6 SQL Server的审核功能157
6.3 疑难解答160
习题六161
项目7 学生成绩数据库的设计163
7.1 项目设计概述163
7.1.1 数据库系统及其体系结构163
7.1.2 数据库设计的任务、内容和方法165
7.2 系统需求分析167
7.3 系统概念设计169
7.3.1 概念设计中数据及数据联系的描述169
7.3.2 数据模型的概念171
7.3.3 概念设计的方法171
7.4 系统逻辑设计173
7.4.1 逻辑设计中的数据描述173
7.4.2 关系模型的基本概念173
7.4.3 逻辑设计的方法177
7.5 系统物理设计179
7.5.1 数据库管理系统的功能与组成179
7.5.2 物理设计的方法180
7.6 疑难解答182
习题七182
项目8 Transact-SQL语言在学生成绩管理系统中的使用185
8.1 Transact-SQL语言基础186
8.1.1 SQL的功能与特点186
8.1.2 T-SQL中的函数和表达式186
8.1.3 T-SQL语句在SQL Server中的执行方式189
8.2 数据定义语句在学生成绩系统中的使用190
8.3 数据查询语句在学生成绩系统中的使用199
8.3.1 SELECT语句的完整语法结构199
8.3.2 连接查询的概念及其种类209
8.3.3 嵌套查询的概念及其种类213
8.3.4 合并查询的概念及其语法结构218
8.4 数据更新语句在学生成绩系统中的使用220
8.4.1 插入数据220
8.4.2 修改数据221
8.4.3 删除数据222
8.5 在学生成绩系统中使用视图223
8.5.1 视图的基本概念223
8.5.2 创建视图的注意事项226
8.6 疑难解答230
习题八231
项目9 Transact-SQL程序设计在学生成绩系统中的使用234
9.1 Transact-SQL语言编程基础知识235
9.1.1 常量和变量235
9.1.2 批处理的概念及其限制238
9.1.3 使用流程控制语句239
9.2 用户自定义函数的使用245
9.3 游标的使用251
9.3.1 游标的基本概念251
9.3.2 游标的种类252
9.3.3 游标的基本操作253
9.4 存储过程的使用256
9.4.1 存储过程的基本概念256
9.4.2 存储过程的创建与执行257
9.5 触发器的使用264
9.5.1 触发器的基本概念264
9.5.2 触发器的创建与执行266
9.6 事务的使用271
9.6.1 事务的基本概念271
9.6.2 SQL Server 2000的事务机制272
9.7 疑难解答277
习题九278
项目10 学生成绩数据库系统的开发280
10.1 数据库应用系统的体系结构280
10.2 数据库访问技术283
10.2.1 数据库API283
10.2.2 数据库访问对象接口284
10.3 使用Visual C++开发学生成绩管理系统288
10.3.1 Visual C++编程知识简介288
10.3.2 在Visual C++中访问SQL Server295
10.4 应用JSP开发学生成绩管理系统317
10.4.1 JSP编程知识简介317
10.4.2 在JSP中访问SQL Server321
10.5 使用ASP.NET开发学生成绩管理系统331
10.5.1 ASP.NET编程知识简介331
10.5.2 在ASP.NET中访问SQL Server334
10.6 疑难解答343
习题十344
附录A StudentScore数据库各数据表数据实例346
任务实训题
项目1 SQL Server 数据库环境的建立1
任务1.1 SQL Server 2000版本的选择3
任务1.2 安装环境的准备4
任务1.3 安装SQL Server 2000企业版5
任务1.4 验证安装结果13
任务1.5 卸载SQL Server 2000企业版15
任务1.6 配置TCP/IP的SQL Server 2000网络16
项目2 SQL Server服务器的管理和配置22
任务2.1 启动SQL Server服务器22
任务2.2 使用SQL Server 2000企业管理器24
任务2.3 创建SQL Server服务器组29
任务2.4 注册SQL Server服务器30
任务2.5 暂停SQL Server服务33
任务2.6 停止SQL Server服务34
任务2.7 启动和停止SQL Server 2000的其他服务35
任务2.8 查看服务器的环境信息35
项目3 SQL Server数据库和表的管理39
任务3.1 创建学生成绩数据库前的准备工作41
任务3.2 创建学生成绩数据库43
任务3.3 配置与修改学生成绩数据库48
任务3.4 收缩学生成绩数据库50
任务3.5 为学生成绩数据库创建维护计划52
任务3.6 创建学生成绩数据库表前的准备工作58
任务3.7 创建学生成绩数据库中的表65
任务3.8 数据的输入与编辑66
任务3.9 管理学生成绩数据库中的表66 任务3.10-1 为学生成绩数据库表建立约束--主键约束69
SQL Server数据库技术及应用项目教程任务实训题任务3.10-2 为学生成绩数据库表建立约束--外键约束70
任务3.10-3 为学生成绩数据库表建立约束--惟一性约束72
任务3.10-4 为学生成绩数据库表建立约束--检查约束73
任务3.10-5 为学生成绩数据库表建立约束--默认约束74
任务3.11 利用SQL Server数据库关系图建立约束76
任务3.12 为学生成绩数据库表创建规则78
任务3.13 为学生成绩数据库表建立索引81
任务3.14 将学生成绩数据库表生成脚本83
项目4 数据库的备份与恢复89
任务4.1 备份与恢复的需求分析89
任务4.2 制定数据库备份与恢复方案93
任务4.3 设置数据库的恢复模型95
任务4.4 设置SQL Server Agent自动启动95
任务4.5 创建和查看备份设备98
任务4.6 执行数据库备份101
任务4.7 用户数据库的恢复105
任务4.8 系统数据库的恢复110
项目5 SQL Server的代理与数据转换服务114
任务5.1 配置SQL Server的代理服务属性115
任务5.2 创建操作员117
任务5.3 创建作业119
任务5.4 创建警报122
任务5.5 利用向导进行数据的导入126
任务5.6 利用向导进行数据的导出131
任务5.7 利用DTS设计器进行数据的导入/导出133
任务5.8 分离数据库136
任务5.9 附加数据库137
项目6 数据库安全设置140
任务6.1 学生成绩数据库安全策略的选择141
任务6.2 系统安全认证模式的设置144
任务6.3 创建Windows NT/2000登录账户146
任务6.4 创建SQL Server登录账户148
任务6.5 修改和删除登录账户148
任务6.6 创建数据库用户149
任务6.7 查看、修改和删除数据库用户150
任务6.8 服务器角色的设置152
任务6.9 创建数据库角色153
任务6.10 查看、修改和删除数据库角色154
任务6.11 语句权限的设置与管理155
任务6.12 对象权限的设置与管理155
任务6.13 审核用户活动157
项目7 学生成绩数据库的设计163
任务7.1 项目设计背景描述166
任务7.2 确定数据库设计的内容和方法166
任务7.3 确定系统的功能需求167
任务7.4 确定系统的数据需求168
任务7.5 确定系统的性能需求169
任务7.6 系统的概念设计172
任务7.7 系统的逻辑设计177
任务7.8 系统的物理设计181
项目8 Transact-SQL语言在学生成绩管理系统中的使用185
任务8.1 使用T-SQL创建、修改和删除学生成绩数据库190
任务8.2 使用T-SQL创建、修改和删除学生信息表192
任务8.3 使用T-SQL实现数据完整性控制194
任务8.4 使用T-SQL建立和删除索引198
任务8.5 在学生成绩数据库中实现基本查询199
任务8.6 对查询结果的排序、汇总和分组206
任务8.7-1 在学生成绩数据库中实现连接查询--内连接查询210
任务8.7-2 在学生成绩数据库中实现连接查询--外连接查询211
任务8.7-3 在学生成绩数据库中实现连接查询--自身连接查询212
任务8.8-1 在学生成绩数据库中实现嵌套查询--使用比较运算符的
子查询213
任务8.8-2 在学生成绩数据库中实现嵌套查询--使用SOME, ANY和
ALL谓词的子查询214
任务8.8-3 在学生成绩数据库中实现嵌套查询--使用IN谓词的
子查询215
任务8.8-4 在学生成绩数据库中实现嵌套查询--使用EXISTS谓词的
子查询216
任务8.8-5 在学生成绩数据库中实现嵌套查询--多层嵌套子查询216
任务8.8-6 在学生成绩数据库中实现嵌套查询--相关子查询218
任务8.9 在学生成绩数据库中实现合并查询219
任务8.10-1 在学生成绩数据库表中插入数据--插入单个记录220
任务8.10-2 在学生成绩数据库表中插入数据--插入与查询结果221
任务8.11 在学生成绩数据库表中修改数据222
任务8.12 在学生成绩数据库表中删除数据223
任务8.13 为学生成绩数据库系统创建视图224
任务8.14 管理学生成绩数据库系统中的视图226
任务8.15 在学生成绩数据库系统中使用视图229
项目9 Transact-SQL程序设计在学生成绩系统中的使用234
任务9.1 在学生成绩数据库中创建和使用局部变量238
任务9.2 在学生成绩数据库中创建和使用批处理239
任务9.3-1 在学生成绩数据库中使用流程控制语句240
任务9.3-2 在学生成绩数据库中使用流程控制语句--CASE语句242
任务9.3-3 在学生成绩数据库中使用流程控制语句--WHILE...
CONTINUE...BREAK语句243
任务9.3-4 在学生成绩数据库中使用流程控制语句--GOTO语句244
任务9.4 为学生成绩数据库创建用户自定义函数246
任务9.5 管理学生成绩数据库中的用户自定义函数251
任务9.6 在学生成绩数据库中使用游标255
任务9.7 为学生成绩数据库创建存储过程258
任务9.8 管理学生成绩数据库中的存储过程263
任务9.9 为学生成绩数据库创建触发器267
任务9.10 管理学生成绩数据库中的触发器270
任务9.11 为学生成绩数据库设计事务273
项目10 学生成绩数据库系统的开发280
任务10.1 确定学生成绩管理系统的体系结构及其前台开发工具282
任务10.2 确定系统的数据库访问技术(包括连接技术和
数据库访问对象)287
任务10.3 使用Visual C++开发学生成绩管理系统301
任务10.4 使用JSP开发学生成绩管理系统324
任务10.5 使用ASP.NET开发学生成绩管理系统337