您的位置:首页 > 数据库

Sql Server 2005新特性《2》

2007-11-29 22:18 363 查看
以利用多种他们熟悉的语言来开放数据库应用程序,包括: Transact-SQL, Microsoft Visual Basic? .NET, Microsoft Visual C#? .NET。此外,通过使用用户定义类型和函数,CLR集成也为开发人员提供了更多的灵活性。 CLR 为快速数据库应用开放提供了使用第三方代码的选择。
  
  CLR/.NET Framework 集成
  
  随着Microsoft SQL Server 2005的发布,数据库编程人员现在可以充分利用Microsoft .NET Framework 类库和现代编程语言来开发数据库应用。 通过集成的CLR,你可以用.NET Framework language 里的Visual Basic .NET 和C#中的面向对象的结构、结构化的错误处理、数组、名字空间和类来编写存储过程、函数和触发器。此外,.NET Framework所提供的几千个类和方法也扩展了服务器功能,并且能够非常容易的在服务器端使用它。许多之前我们用T-SQL难以实现的任务现在可以更容易的用托管代码实现。此外,还新增了两个数据库对象类型:聚合和用户自定义类型。现在,你能够更好的利用已掌握的知识和技能编写in-process 代码。 总之,SQL Server 2005能够扩展你的数据库服务器,使其更容易在后台执行适当的计算和操作。
  
  SQL Server 和 CLR 的集成主要提供了如下好处:
  
  增强的编程模型:.NET Framework 兼容的编程语言在很多方面要比T-SQL更强大,它提供给SQL 开发人员之前没有的架构和功能。
  增强的安全性: 在CLR环境下运行的托管代码被数据库引擎所控制,这使得 .NET Framework 数据库对象能够比以前版本的SQL Server中的扩展存储过程运行的更安全和具备更好的安全性。
  用户自定义类型和聚合: 借助宿主CLR,这两个新的数据库对象扩展了SQL Server 的存储和查询能力。
  通用开发环境: 数据库开发被集成到Microsoft Visual Studio 2005 开发环境中。 你用来开发中间层和客户层.NET Framework组件和服务的工具同样可以被用来开发和调试数据库对象和脚本。
  性能和可伸缩性: 因为托管代码被编译为本机代码得以优先执行,在某些场合你可以得到显著的性能提升。
  
  利用CLR集成,你可以用Visual Basic .NET 和 C#这样的语言写出具有更复杂逻辑的代码和更适用于计算型任务的代码。而且, Visual Basic .NET 和 C# 还提供了诸如封装、继承、多态这样的面向对象的功能。你现在可以更容易的把代码和类、名字空间组织在一起,这意味着你更容易组织和维护工作产生的大量代码。这种从逻辑上和物理上把代码组织到装配件和名字空间中的功能非常有用,它将使你能够更好的在一个大型数据库实现项目中发现和关联不同的代码块。
  
  托管代码在处理运算和管理复杂执行逻辑上比T-SQL更有效,并且提供了对字符串处理、正则表达式之类功能的额外支持。此外,由于现在可以利用.NET Framework类库的功能,你可以更容易的从存储过程、触发器、用户定义函数中访问几千个内置的类和例程(routines)。通过托管存储过程、函数、触发器、聚合,可以更容易的实现字符串处理、数学函数、日期操作、系统自由访问、高级加密算法、文件访问、图像处理、XML数据操作等功能。
  
  托管代码的一个主要好处就是类型安全。在托管代码执行前,CLR将执行一些检查,通过一个被称之为“验证”的处理过程来保证所执行的代码是安全的。例如,会检查代码以确保不会读未写的内存地址。
  
  Transact-SQL 增强
  
  Transact-SQL 一直以来就是SQL Server所有编程的基础。SQL Server 2005 提供了很多新的语言功能用以开发可伸缩的数据库应用程序。这些增强包括错误处理、新的递归查询功能、对新的SQL Server数据库引擎功能的支持等。SQL Server 2005中的 Transact-SQL 增强功能提高了您在编写查询时的表达能力,使您可以改善代码的性能,并且扩充了您的错误管理能力。Microsoft 在增强 Transact-SQL 方面不断付出的努力显示了对它在 SQL Server 中具有的重要作用、它的威力以及它的将来所怀有的坚定信念。
  
  2、改进的开发工具
  
  开发人员现在能够用一个开发工具开发Transact-SQL, XML, Multidimensional Expressions (MDX), and XML for Analysis (XML/A)应用。和Visual Studio 开放环境的集成也为关键业务应用和商业智能应用提供了更有效的开发和调试环境。
  
  商业智能开发工具集
  
  商业智能开发工具集是一个基于Visual Studio 的通用开发环境,可用于创建BI解决方案,包括:数据库引擎,分析服务,报表服务等。也可以利用BI开发工具集的图形化用户界面来设计数据管理程序的SQL Server Integration Services (SSIS) 包,在BI开发工具集中,可以通过从工具栏中拖放任务,设置属性,用先后次序连接任务等操作来设计、开发和调试SSIS 包。图 3 显示了这一接口。
  



  图 3: 在Visual Studio中的BI开放工具集接口

  
  Visual Studio 集成
  
  SQL Server 2005 和 Visual Studio 2005 在数据库和应用程序开发之间提供了前所未有的深度集成。开发人员现在可以在Visual Studio开发环境中直接创建CLR 存储过程,函数,用户定义类型,用户定义聚合等,他们还可以直接从Visual Studio中部署这些新的数据库类型,而无需用别的工具。Visual Studio 2005 支持所有新的SQL Server 数据类型,诸如本机XML等。你也能够把CLR数据库对象加入到和别的Visual Studio 项目一样的源码控制系统中,这样为你的开发过程提供了更好的集成和安全。
  
  交叉层和交叉语言调试
  
  SQL Server 2005 和 Visual Studio 2005 在应用程序调试领域提供了更为紧密的集成。现在你可以使用同样的Visual Studio调试接口无缝的调试CLR和T-SQL代码,而无需关心代码的位置是存在开发人员的机器上还是SQL Server 数据库上。
  
  3、可扩展性
  
  用户定义类型和聚合
  
  SQL Server 2005中的用户定义类型并非对象的关系型扩展机制。它们是一种扩展数据库标量类型系统的方法。标量类型系统包括列类型是SQL Server自带的(像int, nvarchar, uniqueidentifier等)。使用用户定义类型,你可以定义可用在列定义上的自己的类型,如,Create a user-defined type if your type really is an atomic value that is appropriate to be modeled as a column.
  
  如果你需要定义自己的标量类型,你可用使用用户定义类型。这些类型的例子包括在不同日历中定制的日期/时间数据类型,货币类型。使用用户定义类型,你可以创建一个单一的对象,把该类型的所有可用的行为开放出来,并且封装或隐藏存在类型中的基础数据,需要访问数据的每个人必须使用用户定义类型编程接口。如果你能利用.NET Framework 中的函数(如国际化或日历函数),这倒是另一个使用用户定义类型的好理由。
  
  这还有很多关于聚合的例子,包括执行统计计算,如平均,方差等。如果需要的聚合函数不能直接由内建的聚合函数而得,在SQL Server 2005中,有三种方法来执行定制的聚合:
  
  编写用户定义聚合
  用CLR存储过程来写聚合
  使用服务器端游标
  
  SQL 管理对象(SMO)
  
  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的特有的管理特性。
  
  分析管理对象
  
  分析管理对象 (AMO) 允许客户端应用程序使用一个对象库来访问分析服务的管理命令和管理功能。该对象库提供了对象级的校验功能,而不是手工的生成分析服务命令的DDL脚本。应用程序通过AMO能够连接到分析服务实例,且能直接操作其上的对象,或者在没有连接的情况下创建对象,保持元数据供以后的部署。
  
  4、改进的数据访问和Web Services
  
  在SQL Server 2005中,你可以开发数据库层的XML Web services,把SQL Server 作为一个HTTP listener。这对那些以Web services为中心的应用程序提供了新型的数据访问功能。在SQL Server 2005中,你可以使用HTTP直接访问SQL Server,无需使用IIS这样的中间层listener。SQL Server 开放了一个 Web service 接口, 可以执行SQL语句和调用函数和过程,查询结果可用XML格式返回,并且可以利用Visual Studio 的Web services 架构。
  
  ADO.NET 2.0/ADOMD.NET
  
  很多新的功能出现在下一个版本的ADO.NET中。从查询改变通知到多活动结果集(MARS),ADO.NET使数据访问和操作更加可伸缩和灵活。

  三、查询通知
  
  SQL Server 2005引入了对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 站点应用程序中启用结果缓存非常有用。图 4 显示了查询通知处理过程。
  



  图 4: 查询通知

  
  四、MARS
  
  多活动结果集 (MARS)允许每个连接有超过1个的挂起请求,特别是允许每个连接有超过1个的打开的默认结果集。默认结果集是一种前向的、只读的结果集,采用默认结果集,客户端驱动可以透明的接受数据块(表格数据流buffer大小的数据块)以满足应用程序的要求,而无需在服务器往返(就像使用服务器游标)。 应用程序可用使用一种简单的一次一行的编程方法而不会有性能上的损失。多活动结果集消除了这一当前的限制:一个打开的默认结果集将阻止发送新的请求给服务器,直到整个结果集关闭为止。
  
  五、数据镜像中的透明的故障转移
  
  SQL Server 2005 可通过数据库镜像来支持热备功能。如果一个SQL Server 实例失效,工作可以被自动的转移到备份服务器上。这要求一个实例见证故障转移,该实例被称为见证实例。热备例子要求已存在的客户端连接必须知道故障转移(和新的服务器实例建立连接),如果客户端在下一次访问中发生错误,必须手工编程来故障转移,这并非好的方案,ADO.NET 2.0中的SqlClient 无需特别的编程便可支持客户端的故障转移。
  
  XML Support
  
  像本机XML数据类型和XQuery之类的先进功能使组织能够无缝的连接内部和外部的系统。SQL Server 2005 将完全支持关系型和XML 数据,这样企业可以以最适合的格式来存储,管理和分析数据。对于那些已存在的和开放的标准如: Hypertext Transfer Protocol (HTTP), XML, Simple Object Access Protocol (SOAP), XQuery, 和 XML Schema definition language (XSD) 的支持也将更方便的让整个企
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: