首页 > 数据库 > SQL Server > 正文

SQL Server 2005数据库开发概述

2024-08-31 00:49:59
字体:
来源:转载
供稿:网友


  本文讨论了一些sql server 2005的新特性,这些新特性将帮助你创建一个新型的数据库应用程序。

  随着microsoft sql server 2005 beta 2的发布,数据库开发的方式正在改变中。作为一个数据库开发人员,现在你可以更好的把工作关注在功能、对本机格式的数据的访问(如xml)、以及利用强大的数据库服务器创建更复杂的系统上。数据库开发工作正前所未有的越来越集成,你所需要的所有工具都触手可及。

  .net framework集成

  随着microsoft sqlserver2005 beta2的发布,数据库编程人员现在可以充分利用microsoft .netframework 类库和现代编程语言来开发数据库应用。 通过集成的clr,你可以用.netframework language 里的visual basic.net 和c#中面向对象的结构、结构化的错误处理、数组、命名空间和类来编写存储过程、函数和触发器。此外,.netframework所提供的几千个类和方法也扩展了服务器功能,使你能够更容易的在服务器端使用。许多之前我们用t-sql难以实现的任务现在可以更容易的用托管代码实现。同时,系统还新增了两个数据库对象类型:聚合和用户自定义类型。你现在能够更好的利用已掌握的知识和技能编写in-process 代码。总之,sql server2005 beta2 能够使你的数据库服务器更方便地在后台执行适当的计算和操作。

  sql server 和 clr 的集成主要提供了如下好处:

  1.增强的编程模型:.netframework 兼容的编程语言在很多方面要比t-sql更强大,它提供给sql 开发人员之前没有的架构和功能。

  2.增强的安全性: 在clr环境下运行的托管代码被数据库引擎所控制,这使得.netframework 数据库对象能够比以前版本的sql server中的扩展存储过程运行的更安全,并具备更好的安全性。

|||

  3.用户自定义类型和聚合: 借助宿主clr,这两个新的数据库对象扩展了sql server 的存储和查询能力。

  4.通用开发环境: 数据库开发被集成到microsoft visual studio2005 开发环境中。 用来开发中间层和客户层.netframework组件和服务的工具同样可以被用来开发和调试数据库对象和脚本。

  5.性能和可伸缩性: 因为托管代码被编译为本机代码得以优先执行,在某些场合性能可以得到显著的提升。

  6.利用clr集成,你可以用visual basic.net 和 c#这样的语言写出具有更复杂逻辑的代码和更适用于计算型任务的代码。而且,visual basic.net 和 c# 还提供了诸如封装、继承、多态这样的面向对象的功能。你现在可以更容易的把代码和类、命名空间组织在一起,这意味着你更容易组织和维护在工作中产生的大量代码。这种从逻辑上和物理上把代码组织到程序集和命名空间中的功能非常有用,它将使你能够更好的在一个大型数据库实现项目中发现和关联不同的代码块。

  托管代码在处理运算和管理复杂执行逻辑上比t-sql更有效,并且提供了对字符串处理、正则表达式之类功能的额外支持。此外,由于现在可以利用.net framework类库的功能,你可以更容易的从存储过程、触发器、用户定义函数中访问几千个内置的类和例程(routines)。通过托管存储过程、函数、触发器、聚合,可以更容易的实现字符串处理、数学函数、日期操作、系统自由访问、高级加密算法、文件访问、图像处理、xml数据操作等功能。

  托管代码的一个主要好处就是类型安全。在托管代码执行前,clr将执行一些检查,通过一个被称之为“验证”的处理过程来保证所执行的代码是安全的。例如,会检查代码以确保不会读未写的内存地址。

|||
  • 网站运营seo文章大全
  • 提供全面的站长运营经验及seo技术!
  •   在transact-sql 和 托管代码之间的选择

      当编写存储过程、触发器、用户自定义函数时,你现在要决定是使用传统的transact-sql 还是.netframework兼容的编程语言,如visual basic.net or c#来编写它们。这个问题的答案依赖于使用的场合,在某些情形下,你会使用transact-sql,而另外一些情形下,你将使用托管代码。

      transact-sql 更适合代码主要是进行数据访问、没有逻辑或逻辑简单的场合。托管代码更适合密集计算和复杂逻辑的场合,或者是那些你想利用.net framework 类库的场合。

      代码放置也很重要。你可以把transact-sql 和 托管代码都放在服务器上运行,代码和数据的紧密结合使你能够充分利用服务器的处理能力。而且因为它减少了数据层和中间层之间的流量,所以这非常有益。特别是对i/o密集的系统,可能会有显著的好处。clr 函数也可以利用到sql server 查询处理器的并行和优化功能。另一方面,你可能不希望把密集计算的任务放在数据库服务器上,现在的大多数客户端计算机都很强大,你可能希望把尽可能多的代码放到客户端来利用其处理能力。这没有一成不变的答案。

      web services

      在sql server2005中,你可以开发数据库层的xml web services,把sql server 作为一个http listener。这对那些以web services为中心的应用程序提供了新型的数据访问功能。在sql server2005 beta2中,你可以使用http直接访问sql server,无需使用iis这样的中间层listener。sql server 开放了一个 web service 接口, 可以执行sql语句和调用函数和过程,查询结果可用xml格式返回,并且可以利用visual studio 的web services 架构。

      ado.net

      很多新的功能出现在下一个版本的ado.net中。从查询改变通知到多活动结果集(mars),ado.net使数据访问和操作更加可伸缩和灵活。

    |||

    最大的网站源码资源下载站,

      ado.net 通知支持

      sql server2005 beta2 引入了对sql server 查询的通知支持。你可以使用这一功能来发送一个命令到sql server,并且要求当其后运行的同样命令产生不同的结果时,sql server生成一个通知。这一功能是通过从属对象检测到基础数据的改变来实现的。可用通过多种客户端api将命令发送到服务器,如:ado.net, ole db, open database connectivity (odbc), microsoft activex data objects (ado), 或 soap等,这些命令可能包含一个通知请求的tag。对于被作为请求一部分的被执行的每一条语句,服务器都会为请求中的每一条语句创建一个“通知订阅”。通知通过一个sql service broker 队列传递,应用程序可以轮询,并且无论通知是否可用,都可以使用活动服务,或者阻碍语句的返回。 查询通知对于在那些数据库驱动web 站点应用程序中启用结果缓存非常有用。

      多活动结果集

      多活动结果集 (mars)允许每个连接有超过1个的挂起请求,特别是允许每个连接有超过1个的打开的默认结果集。默认结果集是一种前向的、只读的结果集,采用默认结果集,客户端驱动可以透明的接受数据块(表格数据流buffer大小的数据块)以满足应用程序的要求,而无需在服务器往返(就像使用服务器光标)。 应用程序不需要牺牲性能即可实现一种简单的一次一行的编程方法。

      多活动结果集消除了这一当前的限制:一个打开的默认结果集将阻止发送新的请求给服务器,直到整个结果集关闭为止。

      快照隔离支持

      sql server 2005 beta 2 引入了新的快照隔离级别。快照隔离是一种行级数据版本化机制,行数据版本被存储以供读取。这种新的隔离级别提供了以下优点:

      1.对于只读应用程序提高了数据的可用性,在oltp环境下,读操作不会被阻塞。

    |||

    最大的网站源码资源下载站,

      2.写事务的自动强制冲突检测。

      3.简化oracle到sql server的应用程序移植。

      例如,当同时读写同样数据时,锁将造成程序堵塞。如果一个事务中改变了一行,另一个事务将不能读这行,直到前一事务的改写提交为止。有了快照隔离,读依然可以访问到改写前的值。

      快照隔离级别在以下技术中被支持: ado, ole db, sqloledb, shape provider, sqlodbc, ole db managed provider, sql managed provider。

      sql 管理对象

      sql管理对象 (smo)模型是sql server 2005的管理对象模型。smo 在sql server管理对象模型上有显著的设计和结构上的提升。它是一个简单易用的,有着丰富的基于.net framework托管代码的对象模型。smo 是开发数据库管理应用程序的主要的工具。sql server 管理工具集的每一个功能都可以用smo来实现。

      新的smo对象模型和microsoft windows management instrumentation (wmi) apis 替代了sql-dmo,smo比sql-dmo更易使用。你依然可以使用sql server 2005 beta 2中的sql-dmo,但sql-dmo 并不包含sql server 2005的特有的管理特性。

      smo 和 sql-dmo

      smo 对象模型是sql-dmo 的延续。smo和sql-dmo 在特性上是兼容的,包含很多相同的对象。where possible, the original sql-dmo design is followed, 但是smo 有很多sql-dmo 没有的附加特性。为了实现sql server 2005中更多的ddl和管理功能,smo增加了150多个新类。

      smo的主要优点是性能和可伸缩性。smo有缓存对象模型,它允许在对sql server应用改变之前改变对象的一些属性。因此,smo会更少的和服务器往返通讯,而且使得对象更加灵活。smo也有优化过的实例,这意味着你可以部分或全部的实例化一个对象,这样你就不用实例化对象的所有属性,从而可以快速的装载多个对象。

    |||,欢迎访问网页设计爱好者web开发。

      和sql-dmo只有一个单一的应用程序根目录来保持对所有创建的服务器对象的引用不同的是,smo允许为多个服务器建立多个根,而无需建立一个新的连接。smo除了支持sql-dmo类型的脚本外,还支持先进的多段脚本。你也可以把一个对象转入捕获模式来捕获所有施加在这个对象上的ddl,无需对服务器做实际的改变。

      为了支持"wmi监控"和"通过smo对象接口的服务端配置",sql-dmo也有一个可控制的计算机对象,这个对象能够简化到wmi的接口。

      

      xml 技术

      xml已经成为一种存储和交换数据的通用格式,是那些带标记的、结构化或半结构化信息的常用选择,如:文本(带有标示文档结构和重点的标记),嵌套对象(结构化的),异类数据(半结构化的)。xml也是一种用来在网络上不同应用程序间散布数据的重要的、被广为接受的标准。

      microsoft sql server2000 支持通过microsoft sqlxml来使用xml, 它允许你把关系型数据转换为xml,把xml数据存在关系型表中。microsoft sql server 2005 beta 2通过把xml作为一类数据类型来实现这一功能,此外,它还提供了针对xml文档的新的查询语句和定位修改。

      为了更好的满足用户使用xml数据的要求,microsoft sql server 2005 beta 2引入了一种新的xml数据类型。这种数据类型有多种方法—query(), exist(), value(), nodes()和 modify(),它们实现了xml查询 (xquery)规范中最重要的子集部分。事实上,sql server 2005 beta 2已经扩充了这一规范的xml数据修改部分。为了支持xml类型,增加了相应的关键字用于注册和管理xml schema。for xml 和openxml也有所改变,它们在sql server 2000中被引入用来在关系型数据和xml之间互相转换,在sql server 2005 beta 2中对此有所增强以更好的支持xml数据类型。

    |||国内最大的酷站演示中心!

      xml 数据类型

      xml能够比sql server所支持的那些标量数据类型更好的对复杂数据进行建模。例如那些基于字符串的内置数据类型char 或者是varchar并不能够充分有效的利用xml数据的大量优点。举例来说,如果xml被存储为一个字符串,那么你可以插入或检索整个xml文档,甚至能够从中检索连续的字符,但你不能定位查询文档中内容。通过xml数据类型,sql server 2005使我们能够查询xml文档中的一部分,校验文档是否满足xml schema,甚至能够定位修改文档中的内容。 它也将传统的关系型数据和非结构化和半结构化的数据集成在一起,而这在sql server 2000中是不可能的。在sql server 2005中, xml数据被作为二进制大对象 (blobs)内部存放,使得重解析和压缩更有效。

      一个xml schema集可以和类型化xml的一列相关联,这样便能够对已存储的xml数据的约束、插入、改写、值的类型进行校验,也能够优化存储和查询性能。sql server 2005 也提供了一些ddl 语句用于管理服务器上的schema。

      读写 xml

      sql server 2005 beta 2 也对在sql server 2000中引入的for xml 和 openxml 功能作了增强。

      for xml

      sql server 2000 中的for xml 字句并不支持在服务器上处理xml结果,你不能把xml结果存在表中,或分配给一个变量。sql server2005 beta2 通过支持xml数据类型和在服务器端处理xml增强了for xml功能,实现这一点是通过在for xml中增加type 指示。例如,select...for xml type 语句所生成的xml数据类型的结果集可被分配给一个本地的xml变量,也可被用在insert 语句中用来插入xml数据类型列。 path 样式指定了列的值如何表现在xml数的路径中。包含在for xml中的type和path选项简化了复杂xml的生成,比for xml explicit查询更易使用。

    |||中国最大的web开发资源网站及技术社区,

      openxml

      sql server 2000 基本上把for xml 子句和openxml 行集函数配对使用。也就是说,可以用for xml把关系型数据检索为xml,用openxml可以把xml转为关系型数据,从而设置sql连接和执行查询。sql server 2005 beta 2 增强了openxml的功能。处理xml数据类型外,还支持几种新的数据类型,如用户定义类型(udts)。你可以在openxml with子句中使用它,你也可以传递一个xml数据类型实例给sp_preparedocument。

      xquery 支持

      xml 查询语言,或者xquery是一种专为查询各种类型xml数据的智能和高效的语言。使用xquery,你可以对xml数据类型列和变量进行查询。. 和许多xml 标准一样, world wide web consortium (w3c) 组织监督着xquery的开发。 xquery由 quilt 这种查询语言发展而来,它基于多种查询语言,如, xml path language (xpath) 1.0, xql, 和 sql, 它也把xpath 2.0 包含为一个子集。因此,如果你有使用xpath 1.0的经历,你可以不用从头学起。然而,它比xpath1.0有些显著的增强,如:类型化,特别的函数,支持更好的反复,结果集排序,结构等。

      sql server 2005 beta 2 提供了更多的xquery 功能,它允许在数据层操作xml对象。它支持xquery1.0 working draft of november 15, 2003的一个静态类型子集。

      dml 扩展

      当前的 xquery 规范包括查询的语法和语义词,但没有xml文档修改的部分。xml数据修改语言(dml)是xquery数据修改特性的扩展, sql server2005 beta2 增加了3个关键字: insert, update和 delete,他们都被用在xml数据类型的modify() 方法中。

      新的应用程序框架

      sql server 2005引入了新的sql server应用程序框:service broker。 service broker 是一个分布式应用程序框架,它在数据库到数据库级上提供了可靠的异步通讯。

    |||

    商业源码热门下载www.html.org.cn

      sql service broker

      在过去10年来,电子商务应用的发展提出了在数据库应用程序间管理工作流的需求。当一个在线客户发出一个购书订单,这个订单需要提交在库存、送货、信用卡系统中提交事务,也需要使用另一个web应用程序发出订单确认信息。等待这些应用依次完成并不是好的方法,sql server 2005 提供了一个新的可伸缩的架构用来构建异步信息处理。

      service broker 技术通过使用t-sql dml语言扩展允许内部或外部应用程序发送和接收可靠、异步的信息流。信息可以被发送到发送者所在数据库的队列中,获发送到同一sql server实例的另一个数据库,或发送到同一服务器或不同服务器的另一个实例。

      reporting services

      随着sql server 2005的发布, 微软在它集成商业智能平台上扩展了一个主要的组件。sql server reporting services 可以在任何商业环境中,非常容易的把正确的数据传递给正确的人,从而扩展了微软商业智能的前景。

      reporting services 是一个创建、管理和发布传统和交互式报表的完全基于服务器的平台。它包括你创建、分发和管理报表所需的所有功能。与此同时,它的模块化设计和可扩展的应用程序编程接口(apis)使软件开发者、数据提供者和企业能够把报表集成在现有系统和第三方应用程序中。

      sql server 2005中的reporting services包括:

      1.一个完整的用来创建、管理和查看报表的工具。

      2.一个用来存储和处理报表的引擎。

      3.一个可扩展架构和开放接口,可在不同it环境中嵌入报表和集成解决方案。

      通知服务

      microsoft sql server 通知服务是一个用来开发和部署消息通知应用程序的平台。通知是个性化、时效性的信息,可以被发送给多种不同的设备。

    |||

      通知反映了订阅者的喜好,订阅者可以进入他感兴趣的订阅。如,“当adventure works股票价格达到$70.00时通知我”,或“当我这个团队的策略文档被更新时通知我”。

      一旦触发事件发生,通知便被生成并发送给用户,通知也可根据用户预定义的调度来生成和发送。用户的订阅规定了何时通知被生成和发送。

      通知可以被分送给不同的设备,如,一个通知可以被发送给用户的移动电话,个人数字助手(pda),microsoft windows messenger, 或 e-mail 账户。因为用户常使用这些设备,所以通知是理想的发送高优先级信息的手段。

      sql server mobile edition

      在sql server 2000 中出现的 sqlserver2000 windowsce 版现已是sqlserver mobile 3.0版。在其中有很多和开发人员有关的新的关键特性:

      1.你现在可以直接用sql server management studio 在桌面或设备上创建一个sql server mobile 版数据库。你也可以直接从sql server management studio中操作这个数据库的模式,而无需考虑这个数据库是在桌面还是在移动设备上。你可以使用sql server management studio来对设备或桌面上的sql server mobile 版数据库允许查询。你可以充分利用新的sql server mobile 版的特性:一个gui界面的xml showplan,就像本机sql server一样,可以使用查询暗示来覆盖sql server mobile的查询优化器。这是第一次可以在设备上控制优化计划。

      2.你现在可以对dts对象编码来交换数据。

      3.在sql server 2005中从sqlresult 集派生出新的sqlceresult 集。这将使得sql server mobile版有个真正可滚动的、可更新的光标。它也允许绑定到设备上的数据对象。

      4.你可以在主应用程序打开的同时编写一个应用程序来同步数据,你现在可以在同一时刻用两个不同的应用程序来访问设备上的同一个数据库。

    发表评论 共有条评论
    用户名: 密码:
    验证码: 匿名发表