[SQLServer2008与Microsoft数据平台开发]一、前言:目前,随着数据库系统和编程语言的不断发展,它们各自都有了自己专注的特定的功能而逐渐分离开。这导致产生了在现今的应用程序中的数据存储和业务逻辑之间的阻抗失谐...+阅读
SQL Server 2005 在核心引擎中加入了 . 的公共语言执行环境CLR (mon Language Runtime)。一直以来 SQL Server 核心引擎只有两大引擎:关系引擎(Relational Engine)和存储引擎(Storage Engine),现在变成三个,其改变不可谓不大。本章将介绍 SQL Server 2005 引入 . 引擎后的开发方式与用途。
由于 . Framework 自身非常巨大,而且又不是本书的探讨主题,若你有兴趣深入研究 . Framework 可以参照 . Magazine 网站(: .mag..tw/)。
11.1 开发给SQL Server 2005用的Assembly
SQL Server 2005 让存储过程、触发器、用户自定义函数、用户自定义类型以及用户自定义聚合函数(Aggregate)等五种 SQL Server 对象皆可以通过 . 的程序集(assembly)来定义。以往必须要通过 C/C++ 才能办到的扩展存储过程(Extended Stored Procedures)而今你只要通过自己所熟悉的 . 语言,如 C&emsp 或 VB. 来完成即可(但要放入 SQL Server 2005 的只能是 dll 函数库类型,不可以是 exe 执行文件)。而 . 自身强大的功能皆可以融入到 SQL Server 2005 中。
将.开发的程序集成到SQL Server中有以下的好处:
l 更强的程序设计逻辑:. Framework 中包罗万象的各种类型功能,你大都能够引用,但不是全部的类型都被允许调用使用,你可以在 Visual Studio 2005 打开数据库项目后,通过“添加引用”查看能使用的类。
l 更安全:由于 . 对于程序编写与执行环境的安全下了很大的功夫,不管是执行时潜在的类型安全检查(type safety check)还是管理员所设置的程序代码访问安全(Code Access Security)与角色基础安全(Role Base Security)等等诸多机制,都加强了程序执行环境的安全。SQL Server 使用根植于 CLR 的组件执行起来也就更安全与稳定。
l 统一的开发与调试环境:Visual Studio 2005 开发环境提供编写 SQL Server 2005 对象的模板,同时支持部署到 SQL Server 2005 的功能,由于 Visual Studio 2005 自身的便利性,将可以提升开发 SQL Server 2005 对象的品质与性能。
l 性能和扩充性:通过 . 所开发出来的程序集(Assembly)是已经编译过的程序,若是以 T-SQL 编写商业应用,则是以解释的方式执行。所以较为复杂的商业应用当然用 . 的语言编写更好。
l 多语言选择:由于 . 将程序语言与功能分开,因此挑选语言并没有很大的意义,不管是 Visual Basic、C&emsp等语言,还是其他的语言,只要你熟悉该种语法,即可开发 SQL Server 可用的对象,而不像以往一定要使用 C/C++ 才行。
虽然用 . 程序语言开发 SQL Server 的对象有很多好处,但它仍无法取代 SQL 语言,以及纯用 T-SQL 编写的的 SQL Server 对象。复杂的商业逻辑,需要面向对象分析设计,结构化处理,访问文件、网络等周边设备,对数据加解密等诸多程序功能,自然用 . 语言更好。
但若纯粹访问数据,都是集合(set)方便进行添加、修改、删除和查询数据的工作,此种仍用 T-SQL 较为适合,这样才能发挥关系引擎化执行 SQL 语法的功能。若将所有的商业逻辑都搬进到 SQL Server 势必大幅增加服务器的负担,因此仍要慎选程序逻辑的执行位置。
首先通过一般的集成开发环境(例如 Visual Studio 2005)新建所需的程序集,当编写并编译完当作函数库(.dll 格式)的程序集后,你可以通过 T-SQL 语法或是 Visual Studio 2005 直接将其部署到 SQL Server 2005 中,SQL Server 会把该程序集存放在数据库内,而与外部文件系统上的程序集不再有关系。也就是说若你有新的改版,需要先将 SQL Server 内的程序集删除,重新部署才可以。
当程序集部署到 SQL Server 后,通过 Create Function、Create Procedure等T-SQL 语法可以设置存储过程、用户自定义函数、触发器、用户自定义数据类型以及聚合函数等五种对象是来自该程序集,然后就当作一般的对象搭配 T-SQL 来使用。
大致了解系统架构后,接着,我们就通过 Visual Studio 2005 来开发 SQL Server 2005 内的各种对象,通过 SQL Server 2005 Management Studio 来管理设置这些对象。让你先熟悉一下这些全新的环境后,我们再进一步讨论程序编写的技术细节。
以下为关联文档:
1.5结语SQLServer2005数据库开发详解1.5 结语 很多朋友在各种场合询问笔者:透过通过 SQL Server 2005 的各种功能设计,应用程式程序的架构是什么?大哉斯问?!。SQL Server 2005 提供了很多新的功能,但都还需要市场的...
SQLServer开发问题前十名1在SQL Server中进行开发会让你身处险地,并且寻找快速解决方案。我们编辑了前十名关于SQL Server开发的常见问题。对常见的针对表和字段的名字约束进行探究。学习如何解决并发...
SQLServer开发问题前十名2接下来的字母可以是以下的任意几种:· Unicode Standard 2.0定义的字母· 来自基础拉丁文或者其他语音的十进制数字· at符号(#),美元符号($),数字符号(#),或者下划线标识...
SQLServer开发问题前十名4SQL Server2005中取代了查询分析器问题提交于2005年12月9日我知道SQL Server2005中不再会有查询分析器了。那么还有什么工具具有类似的功能?专家回答:你是对的。查询分...