本书面向的读者

本书源于计算机及应用软件教学第一线教师多年的随堂讲义和授课心得,面向SQL Server 2005的初、中级用户,全面系统地介绍了SQL Server 2005的编程开发特点、SQL Server 2005数据库需求分析与规划设计流程知识和具体的应用案例。全书由浅入深,层层深入的讲解了SQL Server 2005管理信息系统软件从SQL的基础知识,到高级阶段编程设计开发的具体知识,在学习中每章不仅有配套的电子文档和讲义,同样还有配套的学习资料与源代码。
本书以教师课堂实际授课案例为主线,融合关系型数据库理论和T-SQL编程开发设计理念于其中,不仅适合于希望了解并深入学习SQL Server 2005的读者,也适合于进行SQL Server 2005培训的专业教材。
SQL Server 2005数据库实践教程——开发与设计篇》学习指南

一、课程的性质与任务

SQL Server 2005是微软历时多年打造的数据库管理系统软件,作为业界著名数据库产品,与SQL Server 2000产品有很大的区别,但又保持着千丝万缕的联系。因为SQL Server 2005数据库产品的内容纷繁复杂,既需要阐述清楚SQL Server 2005与数据库理论之间的关联,又需要介绍该数据库产品的开发和规划设计,还需要说明清楚SQL Server 2005安装配置和管理,显然在一本教材之中很难将所有的SQL Server 2005的知识体系阐述清楚,因此编者在教材设计的时候特意将《SQL Server 2005数据库实践教程》分成“管理与维护篇”和“开发与设计篇”,分别适合于网络管理专业和软件开发专业。当然从知识体系上说,如果可以双书合一就是完整的SQL Server 2005数据库知识体系了。
本书的课程性质是是高等院校计算机类专业的一门主干专业课,是一本数据库编程与开发、规划及设计性质的书籍,主要的任务是介绍SQL Server 2005数据库产品的通过T-SQL进行的编程开发,基于.NET Framework的集成,以及与Service Broker的开发,数据库需求分析与规划等知识,努力打通C#应用开发与SQL Server 2005数据库之间的瓶颈,从一定程度上提高学生的数据库编程技能和素质,为适应软件研发中数据库编程开发的职业岗位和进一步学习打下一定的基础。本课程的教学目标是使学生能运用所学的SQL Server 2005编程技术,根据实际需要完成在一定网络环境下的数据库编程开发与数据库规划设计工作。

二、预备知识

在学习本课程之前,最好已经学习过以下课程:
1)程序设计语言,例如能够用C#进行简单的程序设计,了解程序设计的基本知识,掌握几种基本的程序结构(顺序结构、选择结构、循环结构)。
2)掌握数据库系统概论知识,可以通过ER图对数据库系统进行设计工作,掌握数据库的范式标准和好的数据库的设计原则,掌握数据库完整性概念,掌握数据库设计的基本过程和理论,掌握基本的SQL设计能力。
3)掌握Windows服务器操作系统的配置和网络管理。
4)已经在.NET Framework环境下学习过C#语言,并可以开发C# Winform应用程序或者ASP.NET基于WEB环境下的软件系统研发。为SQL Server 2005.NET Framework环境下的配置管理和开发工作奠定一定的基础。

三、学习提要

1. 重点难点

(一)重点内容
Ø第一章. 关系数据库标准语言SQL
了解SQL的含义以及发展历程、语言的特点;掌握数据库文件的种类及数据库文件的命名方式,掌握数据文件页和区的概念;掌握数据库文件的类型,可以较熟练的在管理平台下建立数据库文件和文件组,通过SQL语句建立和修改数据库文件及日志文件,通过SQL语句对数据库的文件进行收缩;掌握通过SQL语句创建基本表,特别是完成关系逻辑模式的设计,对主键和外键关联性的定义;熟悉SQLServer的主要数据类型;掌握通过SQL语句修改基本表的模式结构以及通过SQL删除基本表;学习索引的基本概念和特性;掌握堆、聚簇索引、非聚簇索引、唯一性索引的内涵,可以建立与删除索引的SQL语句,可以获取及优化索引信息的方法 ;熟练掌握插入操作(insert),删除操作(delete),更新操作(update)的基本SQL语句;熟练掌握SQL查询的更名,取值重复行,条件查询,集函数与分组查询;熟练设计多表连接查询,单表的自身连接查询以及多表嵌套查询;掌握SQL86SQL92语法的异同点,掌握SQL86SQL92实现内连接查询、左外连接和右外连接查询;了解SQL交叉与无限制连接查询,SQL集合并与交的查询,关系整除的SQL查询方法,近似除与关系整除的查询以及全称谓词查询;掌握如何建立和删除视图的SQL语句,特别是参数WITH CHECK OPTION的使用特点;
Ø第二章. T-SQL 程序设计基础
了解T-SQL代码的基本格式及注释方式,学习T-SQL语法的全局变量与局部变量,了解T-SQL的临时表和全局表,掌握T-SQL的运算符号有哪些?熟练掌握T-SQL的基本语法格式,包括:IFELSE条件语句,WHILECONTINUEBREAK循环语句,CASE多条件分支语句,GOTO跳转语句,Try Catch错误与意外处理语句。重点掌握循环语句和意外处理语句,特别是学习防止死循环的技巧。学习系统函数、行集函数和Ranking函数;重点掌握字符串函数、日期时间函数和数学函数的使用参数以及使用技巧。重点掌握用户定义的标量函数以及自定义函数的执行方法,掌握用户定义的内嵌表值函数以及与用户定义的标量函数的主要区别。了解游标的基本概念及特点,学会使用游标的基本步骤;掌握两个系统全局变量:@@cursor_rows@@FETCH_ STATUS在定义游标中的作用,掌握在游标中使用FETCH获取游标技术,掌握FETCH语句使用过程中的移动关键词;掌握如何使用游标修改或删除数据;了解如何使用递归游标遍历树算法解决家族树的问题,了解改进的非游标查询策略。了解什么是全文检索,全文检索和普通索引的区别是什么;熟练掌握配置全文检索服务,了解配置全文检索服务意外处理办法;熟练掌握通过CONTAINSFREETEXT谓词进行查询的技巧,并可以区分二者之间的差异;了解全文检索中降噪词的作用。
Ø第三章. 事务处理,并发控制及数据库优化
掌握事务的四个基本特性,分别可以阐述各个特性的内涵;了解事务的类型包括那些内容;掌握事务处理的四种基本语句和具体的应用;了解如何编写有效的事务;数据库并发控制的概念;了解锁的四种不同模式及内涵;学习查看锁的基本信息,了解死锁及处理机制;了解数据库引擎优化顾问,并掌握数据库索引优化的基本步骤,掌握通过命令行的方式进行索引的优化DTA
Ø第四章. 管理触发器与存储过程
了解存储过程的基本特点及优势;重点学习如何创建存储过程,学习如何建立及执行存储过程的基本语法结构;特别是掌握存储过程输入参数附值的两个方法,即根据参数名称给输入参数附值和根据参数定义时候的顺序附值;掌握存储过程返回参数读取的方法,并学会熟练开发各种存储过程。了解触发器基本概念以及SQL Server 2005两大类触发器:DML触发器和DDL触发器;掌握创建触发器基本语法规则;掌握如何通过触发器确保数据的完整性,学习修改、查看和删除触发器及语法规则。
Ø第五章. SQL Server 2005 XML 开发
理解xml数据类型;掌握xml数据类型的用法;理解非类型化xml数据类型;掌握类型化xml数据类型具体用法;理解XML 架构;理解xml数据类型查询方法;灵活使用xml数据类型5种查询方法;理解FOR XML子句;掌握发布XML数据方法;通过XML的开发实训,熟练掌握XML架构设计的过程;通过XML查询方法实训,熟悉并掌握XML的查询方法。
Ø第六章. .NET Framework集成与Service Broker开发
了解.NET Framework;掌握数据库对象开发方法;理解数据库对象部署和应用方法;了解Service Broker技术概念;理解Service Broker体系结构;掌握Service Broker应用。
Ø第七章. 数据库需求分析与规划设计
了解数据库设计的要点;掌握事实的发现技术,基本步骤及完成数据库需求分析实验;了解PowerDesigner基本的特性和发展历程,其主要功能和应用范围以及主要模块;掌握通过PowerDesigner建立概念数据模型,认识其中的实体对象的属性、值域以及关键字,特别掌握实体之间关系的设计方法;掌握通过PowerDesigner建立物理数据模型,掌握配置PDM图的全过程;掌握将物理模型导入到数据库应用软件中的基本技术;掌握生成数据库报告的基本技术。
Ø第八章. SQL Server 2005综合应用开发
本章属于SQL Server 2005C# Winform联合开发实训部分内容,包括:CLR应用背景与SQL Server 2005CLR开发基于SQL Server 2005的存储过程;学习建立数据库访问层DataBase.cs文件;多控件的数据库信息综合处理;实现数据库插、查、删、改四项基本操作技能;用户表现层代码和数据访问层代码之间的互访;ADO.NET基本对象的操作及彼此之间的逻辑关联;Connection对象连接MS SQL Server数据库的方法;通过综合控件实现对数据库的插、查、删、改操作;数据集对象DataSetDataReader对象的使用;通过与数据库操控层文件的调用,增强代码的低耦合,提高编码效率;以多种方式实现下拉列表的数据联动效果;基于DataGridView控件的增、删、查、改数据操作技术;DataGridView控件与菜单等其他控件的组合应用;多窗体的数据传值;菜单技术在实际项目中的应用;通过与数据库操控层文件的调用,增强代码的低耦合,提高编码效率;根据数据库中的动态数据,使DataGridView控件每行呈现不同颜色;通过快捷菜单操作DataGridView控件中的每行数据;关系型数据库多表查询的实现。
(二)难点内容
本课程的难点内容是第一章的掌握通过SQL语句创建关系逻辑模式的设计,对主键和外键关联性的定义;熟练掌握SQL查询的单表的自身连接查询以及多表嵌套查询;掌握SQL86SQL92语法的异同点,掌握SQL86SQL92实现内连接查询、左外连接和右外连接查询;关系整除的SQL查询方法,近似除与关系整除的查询以及全称谓词查询;掌握视图参数WITH CHECK OPTION的使用特点。
第二章的T-SQLTry Catch错误与意外处理语句。重点掌握循环语句和意外处理语句,特别是学习防止死循环的技巧。重点掌握字符串函数、日期时间函数和数学函数的使用参数以及使用技巧。重点掌握用户定义的标量函数以及自定义函数的执行方法,掌握用户定义的内嵌表值函数以及与用户定义的标量函数的主要区别。掌握两个系统全局变量:@@cursor_rows@@FETCH_ STATUS在定义游标中的作用,掌握在游标中使用FETCH获取游标技术,掌握FETCH语句使用过程中的移动关键词;掌握如何使用游标修改或删除数据;
第三章的掌握事务处理的四种基本语句和具体的应用;掌握数据库索引优化的基本步骤,掌握通过命令行的方式进行索引的优化DTA
第四章的如何创建存储过程,特别是掌握存储过程输入参数附值的两个方法掌握存储过程返回参数读取的方法,并学会熟练开发各种存储过程。掌握如何通过触发器确保数据的完整性。
第五章的XML 架构及xml数据类型查询方法;灵活使用xml数据类型5种查询方法;理解FOR XML子句;掌握发布XML数据方法;
第六章的理解Service Broker体系结构;掌握Service Broker应用。
第七章的掌握通过PowerDesigner建立概念数据模型,掌握实体之间关系的设计方法;掌握通过PowerDesigner建立物理数据模型,掌握配置PDM图的全过程;