SQL Server 2005新特性
 
一、企业级数据管理

在当今的互联世界中,数据和管理数据的系统必须始终为用户可用且能够确保安全,有了SQL Server 2005,组织内的用户和IT专家将从减少应用程序宕机时间、提高可伸缩性及性能、更紧密的安全控制中获益。SQL Server 2005 也包括了很多新的和改进的功能来帮助企业的IT团队更有效率的工作。SQL Server 2005 包括了几个在企业级数据管理中关键的增强:

  • 易管理
  • 可用性
  • 可伸缩性
  • 安全性

1、易管理

SQL Server 2005 能够更为简单的部署、管理和优化企业数据和分析应用程序。作为一个企业数据管理平台,SQL Server 2005提供了一个唯一的管理控制台,使得数据管理人员能够在组织内的任何地方监视、管理和调谐企业中所有的数据库和相关的服务。它还提供了一个可扩展的管理架构,可以更容易的用SQL管理对象(SMO)来编程,使得用户可以定制和扩展他们的管理环境,独立软件开发商(ISV)也能够创建附加的工具和功能来更好的扩展应用。

SQL Server 管理工具集

SQL Server 2005 通过提供一个集成的管理控制台来管理和监视SQL Server关系型数据库、集成服务、分析服务、报表服务、通知服务、以及分布式服务器和数据库上的SQL Mobile,从而大大简化了管理的复杂度。数据库管理员可用同时执行如下任务:编写和执行查询,查看服务器对象,管理对象,监视系统活动,查看在线帮助。SQL Server 管理工具集包括一个使用T-SQL、MDX、XMLA和SQL Server Mobile版等来完成编写、编辑和管理脚本、存储过程的开发环境。管理工具集很容易和源码控制相集成,同时,管理工具集也包括一些工具可用来调度SQL Server Agent 作业和管理维护计划以自动化每日的维护和操作任务。管理和脚本编写集成在单一工具中,同时,该工具具有管理所有类型的服务器对象的能力,为数据库管理员们提供了更强的生产力。

主动性能监视和性能调谐

SQL Server 2005 开放了70多个新的内部数据库性能和资源使用的指标,包手内存、锁、到对交易、网络和磁盘I/O的调度等。新的动态管理视图(DMV)提供了对数据库和强大的基础架构的更大的透明度和可见性,可以实现主动监视数据库的健康和性能。

SQL 管理对象

SQL 管理对象 (SMO) 是一个新的可编程对象集,它可实现所有SQL Server数据库的管理功能。事实上,管理工具集就是构建在SMO之上的。SMO 是Microsoft .NET Framework assembly. 你可以使用SMO来自动化常用的SQL Server管理任务,如编程检索配置设置,创建新的数据库,应用T-SQL脚本,创建SQL Server Agent 作业,以及调度备份等。SMO 对象模型比以前SQL Server版本中的DMO更加安全、可靠并具有更高的可伸缩性。

2、可用性

在高可用技术、额外的备份和恢复功能,以及复制增强上的投资使企业能够构建和部署高可用的应用系统。SQL Server 2005在高可用上的创新有:数据镜像,故障转移集群,数据库快照和增强的联机操作,这有助于最小化宕机时间和确保企业的关键系统可用。下面我们将更为详细的介绍这些增强特性。

数据库镜像

数据库镜像允许事务日志以连续的方式从源服务器传递到单台目标服务器上。当主系统出现故障时,应用程序可以立即重新连接到辅助服务器上的数据库。辅助实例几秒钟内即可检测到主服务器发生了故障,并能立即接受数据库连接。数据库镜像工作在标准服务器硬件下,不需要特定的存储或控制器。图2显示了数据库镜像的基本配置。


图 2: 数据库镜像的基本配置

故障转移集群

故障转移集群是一个高可用解决方案,它使用Microsoft Windows® Clustering Services 创建容错虚拟服务器,一旦数据库服务器宕机,便可提供快速故障转移。在SQL Server 2005中, SQL Server 分析服务,通知服务,与SQL Server复制现在都已支持故障转移集群。集群节点的最大数量也增加到8个,SQL Server 故障转移集群现已是一个完整的容错服务器解决方案。

高可用特性 数据库镜像 故障转移集群
自动故障转移 Yes Yes
客户端透明重定向 Yes, 自动重定向 Yes, 重定向到同一个IP
对吞吐量的影响 极小 没有影响
零工作丢失 Yes Yes
要求特定硬件 No Yes
提供冗余数据 Yes No

数据库快照

SQL Server 2005 所引入的这一功能使数据库管理员可以生成数据库的稳定的只读视图。数据库快照提供了一个稳定的视图,而不必花时间或存储开销来创建数据库的完整副本。由于主数据库背离了快照,快照将在原始页被更改时自行获取有关副本。快照可被用于快速恢复数据库的意外更改,只要通过对主数据库重新应用来自快照的页就能实现。

快速恢复

SQL Server 2005通过一个新的快速恢复选项提高了 SQL Server 数据库的可用性。在事务日志前滚之后,用户可以重新连接到恢复数据库。SQL Server早期版本要求即便用户无需访问数据库中受影响的部分,也需等到不完整的事务回滚之后才能进行重新连接。

专用的管理员连接

SQL Server 2005 引入了一个专用的管理员连接来访问正在运行的服务器,即便该服务器没有响应或不可用。这样,用户就可以执行诊断功能或 Transact-SQL 语句,以便对服务器进行故障诊断。该连接需通过 sysadmin 固定服务器角色的成员来激活,并仅通过 SQLCMD 命令提示符实用工具在本地或从远程计算机才能加以调用。

联机操作 (索引操作和恢复)

联机创建、重建或删除索引的功能是 SQL Server 2005的一个增强功能。SQL Server 2005 加强了 SQL Server 早期版本的索引功能。联机索引选项允许在执行索引数据定义语言 (DDL) 时,对基础表或聚集索引数据以及任何关联的索引进行并发修改(更新、删除和插入)。例如,当某个聚集索引正在重建时,可以继续更新基础数据并对这些数据执行查询。有了对联机索引操作的支持,用户可以在不干预对表或其他现有索引的访问的情况下添加索引。此外,服务器工作负荷允许索引操作充分利用并行处理的高效性。

SQL Server 2005 引入联机恢复功能以便在 SQL Server 实例运行时执行还原操作。联机还原功能提高了 SQL Server 的可用性,因为只有被还原的数据不可用。数据库的其他部分仍保持联机且可用。SQL Server 的早期版本要求用户在执行还原操作之前让数据库脱机。

复制

复制通过为多个数据库分发数据来提高数据的可用性。通过允许应用程序在数据库间外扩scale out SQL Server读负载,从而提高了可用性。通过使用一个新的点对点模型,SQL Server 2005增强了复制功能。这个新模型提供了一个新拓扑结构,使数据库可以与任何同级数据库进行事务同步。

#p# 3、可伸缩性

提供了诸如表分区、快照隔离、64位支持等方面的高级可伸缩性功能,使你能够使用SQL Server 2005构建和部署最关键的应用。表和索引的分区功能显著的增强了对大型数据库的查询性能。

表和索引分区

表和索引分区把数据库分成更小、更易管理的块,从而简化了大型数据库的管理。对数据库世界而言,在表、数据库和服务器之间的数据分区已不是一个新的概念,SQL Server 2005 提供了在数据库的文件组之间表分区的功能,水平分区允许把表按分区scheme分为多个小的组。表分区用于非常大的,从几百GB到TB、甚至更大的数据库。

快照隔离

  • 一旦数据被拷贝、转换和归档到一个面向分析的数据库,它必须被周期性的维护和重建。用户所看到的数据库版本是事务一致性的,然而,数据的版本不再是当前的。快照隔离级别通过使用一个数据库的事务一致视图来允许用户访问最后被提交的行,新的隔离级别提供了如下优点:
  • 为只读应用程序增加数据可用性。
  • 允许在OLTP环境对读操作不加锁。
  • 对写事务自动进行强制冲突检测。简化应用程序从Oracle移植到SQL Server复杂度。

复制监视工具

复制监视工具在管理复杂数据复制操作的易用性方面建立了新的标准,它提供了直观的用户界面和大量的数据指标。

对 64-Bit 系统 Itanium2 和 x64 的支持

SQL Server (64-bit)特别为 Intel Itanium processor进行过优化,因此它可以为一些基本资源如缓冲池、缓存、排序堆等利用高级内存寻址功能,从而减少密集I/O操作造成的数据在内存和磁盘之间交换。更大的处理能力也使应用程序的可伸缩性达到一个新的层次。

Windows Server™ 2003 x64 为同一个系统上的32-bit 和 64-bit 应用提供了很高的性能。基于 64-bit 基础架构扩展了x86指令集,允许现在的32-bit应用自然的运行在x64处理器上。同时,新的执行在64-bit模式下的64-bit应用每个时钟周期可以处理更多数据,允许对内存的更多访问,更快的数字计算。最终结果是它提升了现存的大量32-bit应用程序的同时,也提供了一个平滑迁移到64-bit计算的途径。

4、安全性

SQL Server 2005 在数据库平台的安全模型上有了显著的增强,由于提供了更为精确和灵活的控制,数据安全更为严格。为了给企业数据提供更高级别的安全,微软做了相当多的投资,实现了很多特性:

  • 在认证空间里强制SQL Server login密码策略
  • 在认证空间里可根据不同的范围上指定的权限来提供更细的粒度
  • 在安全管理空间中允许分离所有者和模式(schema)

授权

一个SQL Server 2005中新的安全模型允许管理员在某个粒度等级上和某个指定范围内管理权限,这样,管理权限更加容易并且权限最低原则得到遵循。SQL Server 2005允许为一个模块中语句的执行指定上下文。这个功能同时也在细化权限管理时起了很重要的作用。

认证

SQL Server 2005集群支持针对SQL Server 2005虚拟服务器的Kerberos身份验证。管理员能够对标准登录帐号指定和Windows类型的策略,这样,同一个策略就能应用到域中所有的帐号上了。

本机加密

SQL Server 2005本身就具有加密功能,它完全集成了一个密钥管理架构。默认情况下,客户端/服务器之间的通讯是被加密的。为了保证安全,服务器端策略可定义为拒绝不加密的通讯。

SQL 可信赖计算

“可信赖计算计划”详细描述了支持安全计算的必要步骤和部署及维护一个安全环境的有益措施。这些步骤能在软件生命周期的每一阶段——从设计、发布到维护,保护您的系统和数据的机密性、完整性和可用性。为了遵循可信赖计算的4个原则,微软和SQL Server团队采取以下步骤:

  • 设计安全。SQL Server开发团队进行了多次安全审计,花了超过两个月的时间彻底研究了SQL Server各个组件以及它们之间的关联性。对每一个潜在的安全威胁,开发人员都会做一个威胁模型分析进行评估,再针对它做相应的设计和测试工作以完全消除隐患。正是由于这样的工作,SQL Server 2005将会包括许多新的安全特性。
  • 默认安全。在安装SQL Server 2005时,安装程序将会为每个安装选项选择恰当的配置,使得一个新的系统安装结束时,默认处于一个安全的状态。
  • 部署安全。微软将提供相应的技术资源来指导用户在部署SQL Server时使用正确的安全凭证,帮助用户充分理解必需的步骤和权限。对于如何理解在安装过程中所需要做出的决策,SQL Server部署工具将提供必要的信息。另外,如果您选择了相应的选项,安全更新功能将会自动安装。如果您不得不面对跨机构的分布式环境,也有相应的工具能帮助您评估和管理这其中的安全风险。

#p#二、开发者的能力

SQL Server 2005 包含了多个能显著提高开发者能力的新技术。从支持.NET Framework 到和Visual Studio?的紧密集成,这些新特性使开发人员能够以更低的成本,更容易地创建安全、强大的数据库应用程序。SQL Server 2005 提供了一个端到端的数据库开发环境,使开发人员能够更有效的利用其已有的开发技能。本机XML功能也使开发人员能够创建运行在不同平台或设备上的新型应用程序。

开发人员能力的增强包括:

  • 扩展的语言支持
  • 改进的开发工具
  • 可扩展能力
  • 改进的数据访问
  • XML 和 Web services
  • 应用程序Framework

1、扩展的语言支持

因为通用语言运行时(CLR)被集成在数据库引擎中,所以开发人员现在可以利用多种他们熟悉的语言来开放数据库应用程序,包括: 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 数据库上。

#p# 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使数据访问和操作更加可伸缩和灵活。

#p#三、查询通知

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) 的支持也将更方便的让整个企业系统互通。

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。

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对象。它支持XQuery 1.0 工作草案(2003年11页15日制定)的一个静态类型子集。

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 架构。

XML for Analysis Services (XML/A)

用于分析的XML(XML/A)是一个本机的、基于标准的协议,被用于和Analysis Services服务器通信。通过它,可以非常容易的开发出新型的应用程序——集成分析和实时操作,可以从任何平台,任何语言来访问数据。采用XML/A本机协议,分析服务客户端无需任何配置,每一个服务器自动的成为一个Web Services。一个轻量的Win32层可用于向后兼容,如Analysis Services 2000 的 OLE DB for OLAP,ADOMD和ADOMD.NET。大多数用户也还能使用ADOMD.NET对象模型创建分析服务上的定制应用。

Application 架构

SQL Server 2005 带来了新的SQL Server 应用程序架构,包括: Service Broker, Notification Services, SQL Server Mobile, SQL Server Express。Service Broker 是一个分布式应用程序框架,它在数据库到数据库级上提供了可靠的异步通讯。

#p# Service Broker

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

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

图 5是Service Broker结构的大纲视图:


图 5: Service Broker 结构

通知服务

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

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

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

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

SQL Server Mobile Edition

在SQL Server 2000 中出现的 SQL Server 2000 Windows CE 版现已是SQL Server Mobile 3.0版。在其中有很多和开发人员有关的新的关键特性:

  • 你现在可以直接用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的查询优化器。你第一次可以在设备上控制优化计划。
  • 你现在可以对DTS对象编码来交换数据。
  • 在SQL Server 2005中从SQLResult 集派生出新的SqlCeResult 集。这将使得SQL Server Mobile版有个真正可滚动的、可更新的光标。它也允许绑定到设备上的数据对象。
  • 你可以在主应用程序打开的同时编写一个应用程序来同步数据,你现在可以在同一时刻用两个不同的应用程序来访问设备上的同一个数据库。
  • 你可以对同步状态栏进行编程以得到同步状态通知,以前没有办法做到这一点,无法通知用户设备并没有停止响应。
  • 你可以通过更为主动的页回收策略来维护一个更小的数据库。
  • 你可以使用SQL Server语法来共享参数查询代码。

SQL Server Express

越来越多的开发人员正在改进关系型数据库以提供更丰富的用户体验。对应用信息的保护和管理是关键,微软 SQL Server Express 为开发人员提供了一个免费的、易于使用的、功能强大的数据库,使其能够创建强大的、可靠的应用程序。很多数据库系统对于创建简单的应用而言显得过于复杂了,微软 Visual Studio 2005 和 SQL Server Express 通过一个简单,但是强大的开放环境,从而减少了创建数据驱动应用的复杂度。开发人员可以在Visual Studio 2005开发环境里设计模式,增加数据,对本地数据库查询,如果开发人员需要更高级的数据库特性,SQL Server Express 可以无缝的升级到更高级的SQL Server版本。图6 显示了在SQL Server Express 管理器中的查询编辑器接口。


图 6: 在SQL Server Express 管理器中的查询编辑器接口

SQL Server Express 管理器 (XM) 这一新的GUI工具是完全免费的,可用从Web上下载,下载包的大小也较小,分发也是免费的。XM 提供了易使用的数据库管理和查询分析功能,它可以连接到SQL Server Express 和其他SQL Server 2005 版本、SQL Server 2000 和 MSDE 2000上。一个简单的连接对话框可以指导用户选择实例和认证方式,本地和远程的连接都可使用XM。对象浏览器列举和显示了常用的对象,如实例、表、存储过程等,它们以层次的方式来展示,可用使用户直观的访问数据库。

所有的数据库管理功能都可在对象浏览器的右击菜单中找到,有的数据库管理选项是开放的,如创建和修改数据库,表,登录,用户等。这些常用的数据库操作有的还有任务向导来指导用户,有的则是提供了文档。例如, XM 将提供一个New/Edit 数据库文档来创建新的数据库和编辑已有数据库。

许多数据库管理员倾向于用T-SQL来管理他们的服务器,因为这样要比GUI方式提供更细的控制。XM的查询编辑器允许用户开发和执行T-SQL语句和脚本,查询分析器有着强大的功能,如提供了关键字颜色标示,返回结果可用Grid显示,如果有错误,错误信息也可显示在结果区中。

#p#六、商业智能

SQL Server 2005 通过在可伸缩性、数据集成、开发工具和强大的分析等方面的革新更好的确立了微软在BI领域的领导地位。SQL Server 2005 能够把关键的信息及时的传递到组织内员工的手中,从而实现了可伸缩的商业智能。从CEO 到信息工作者,员工可以快速的、容易的处理数据,以更快更好的做出决策。SQL Server 2005全面的集成、分析和报表功能使企业能够提高他们已有应用的价值,即便这些应用是在不同的平台上。

商业智能增强体现在以下几个方面:

  • 端到端的集成BI平台
  • 集成服务
  • 分析服务
  • 报表服务
  • Microsoft Office System的集成

1、端到端的集成BI平台

Microsoft SQL Server 2005 是一个完整的商务智能 (BI) 平台,其中为用户提供了可用于构建典型和创新的分析应用程序所需的各种特性、工具和功能。本文简要介绍了您在构建分析应用程序时将要用到的一些工具,并着重介绍了一些新增功能,这些新增功能使复杂 BI 系统的构建和管理比以往更加轻松。

SQL Server 2005 Business Intelligence 工具集提供了一种端到端的 BI 应用程序集成:

  • 设计:Business Intelligence Development Studio 是第一款专门为商务智能系统开发人员设计的集成开发环境。Business Intelligence Development Studio 构建于 Visual Studio 2005 技术之上,它为 BI 系统开发人员提供了一个丰富、完整的专业开发平台。BI 平台上所有组件的调试、源代码控制以及脚本和代码的开发它都支持。
  • 集成:“数据转换服务”已被重新编写,现在的 DTS 可以高速执行超大数据量的复杂数据集成、转换和合成。Business Intelligence Development Studio 使程序包的构建和调试变得更加生动有趣。DTS、Analysis Services 和 Reporting Services 共同提供了一个异类数据源的无缝数据视图。
  • 分析:一直以来,Microsoft 的数据挖掘都十分简单易用。现在,结合了其他的重要新算法(包括关联规则、时间序列、回归树、序列群集、神经网络和贝叶斯算法),使得这一功能更加完美。SQL Server 2005模糊了关系型数据库和多维数据之间的界限,你可以存储数据在关系型数据库,也可以存在多维数据库,或使用新的主动缓存功能取其最佳。而在 Analysis Services 多维数据集中也添加了一些重要的新增功能:关键绩效指标框架、MDX 脚本,以及其他的内置高级业务分析方法。Reporting Services 报表提交和管理框架使得复杂的分析方法更易于向最广泛的潜在受众分发。
  • 报表:Reporting Services 将 Microsoft Business Intelligence 平台的用户群体延伸至那些需要使用分析功能的商务用户。Reporting Services 是一种企业级报表环境,它通过 web 服务进行报表嵌入和管理。您可以用大量的交互和打印选项,以各种不同的格式个性化设置和提交报告。通过将报告以数据源的形式分发至下游商务智能,复杂分析可以覆盖更广泛的受众。SQL Server 2005 还提供了新的报表工具: Report Builder。
  • 管理:SQL Server Management Studio 集成了对 SQL Server 2005 所有组件的管理。Business Intelligence 从业者都将得益于 Microsoft 服务器“能力”扩展这一用户盼望已久的功能增强,即从关系引擎(伸缩性、可靠性、可用性、可编程性,等等)扩展为全套的 BI 平台组件。

2、Integration Services

SQL Server 2005带来了一个全新的企业级数据整合平台。此平台具有出色的ETL和整合能力,使得组织机构能更加容易地管理来自于不同的关系型和非关系型数据源的数据。通过SQL Server Integration Services(SSIS),组织机构能以整体的视角去考察它们的商业运营情况,从而能具有竞争优势。

企业级数据整合平台

SQL Server Integration Services取代了SQL Server 2000中一个非常受欢迎的功能模块——数据转换服务(DTS)。但SSIS并不是DTS的简单升级,它是SQL Server 2005中的一个全新的组件,它提供了构建企业级ETL应用程序所需的功能和性能。SSIS是可编程的、可嵌入的和可扩展的,这些特性使其成为理想的ETL平台。

传统 ETL 之外的

SQL Server 2005 支持非传统的数据(Web Service,XML):

  • SSIS 可对不持续的数据进行分析
  • 在数据流中的数据挖掘和文本挖掘
  • 数据流中的数据挖掘和分析可用于数据质量和数据清洗

3、Analysis Services

在SQL Server 2005中,分析服务(Analysis Services)第一次提供了一个统一和集成的商业数据视图,可被用做所有传统报表、OLAP分析、关键绩效指标(KPI)记分卡和数据挖掘的基础。

统一空间模型Unified Dimensional Model

通过结合传统OLAP分析和关系型报表中的最佳点,Analysis Services 2005提供了一个元数据模型用于满足不同需求。Analysis Services 2005中的所有多维数据集和维度定义都可从统一空间模型UDM中查阅。UDM是一个中心元数据库,其中定义了业务实体、业务逻辑、计算和metrics,可被作为所有报表、电子表格、OLAP浏览器、KPI和分析应用程序的源来使用。

通过使用新的、功能强大的数据源视图特性、UDM可被映射成后台异构数据源宿主,这样便可无需考虑数据的位置。

利用UDM中对业务实体的友好描述、等级导航、多视角、自动平滑翻译为本机语言这些功能,最终用户将会发现浏览公司业务数据是一件容易的事情。

数据挖掘

Microsoft SQL Server 2005 Data Mining(数据挖掘)属于商务智能技术,它可帮助您构建复杂的分析模型,并使其与您的业务操作相集成。Microsoft SQL Server 2005分析服务中构建了新的数据挖掘平台——一个易于使用的、容易扩展的、方便访问的、非常灵活的平台。对于以前从未考虑过采用数据挖掘的组织机构,这无疑是个非常容易接受的解决方案。

企业级产品的架构,与SQL Server产品家族商业智能功能的紧密集成,丰富的工具、API和算法,这一切使得我们能基于SQL Server创建新型的商业智能应用程序。通过它所提供的针对各种商业问题的自定义的数据驱动解决方案,能达到提高生产力、增加利润和减少支出的目的。

#p# 4、Reporting Services

SQL Server 2005 Reporting Services扩展了微软商业智能(BI)平台,以迎合那些需要访问商业数据的信息工作者。Reporting Services是一个基于服务器的企业级报表环境,可借助web services进行管理。报表可以用不同的格式发布,并可带多种交互和打印选项。通过把报表作为更进一步的商业智能的数据源来分发,复杂的分析可被更多的用户所用。

  • 作为SQL Server 2005 的一个集成组件,Reporting Services提供了:
  • 一个高性能引擎用来处理和格式化报表。
  • 一个完整的工具集用来创建、管理和查看报表。
  • 一个可扩展架构和开放式接口可将报表嵌入或集成报表解决方案到不同的IT环境中。

关系型和OLAP报表

在关系型数据上创建报表固然有用,但如能增加更多的分析能力就十分强大了。Reporting Services允许你在关系型和OLAP上创建报表,单独的、或结合的。SQL Server 2005 支持关系型和OLAP数据,其分别提供了SQL Query Editor 和 MDX Query Editor。

报表生成器Report Builder

作为微软SQL SERVER 2005 Reporting Services的一个新组件,Report Builder允许商业用户使用界面友好的数据模型来创建他们自己的报表。报表生成器使Reporting Services平台能够为所有最终用户创建即席查询(ad hoc)报表。用户可以使用报表生成器客户端来创建和编辑报表。报表生成器用户界面是构建在大家熟知的微软office产品之上的,如Excel和PowerPoint。图 7 显示了一个示例


图 7: 用Report Builder设计报表


报表生成器是一种由浏览器来部署的ClickOnce应用程序。用户可以通过选择报表布局模板来开始创建报表,这些模板包含预定义的数据区,如:表格、矩阵表和图表。接着用户可以从模型中拖放报表项到设计界面,并可设置约束来过滤数据。报表生成器自动生成源查询和检索请求数据所需要的所有信息都包含在这个模型中。报表生成器还允许用户:

  • 向报表增加文本和格式
  • 使用模型创建新的字段和计算定义
  • 预览、打印和发布报表
  • 把报表数据导出为如Excel之类的格式

5、和Microsoft Office System的集成

Reporting Services 中的报表可运行在Microsoft SharePoint® Portal Server 和 Microsoft Office System 应用程序中,你可用使用SharePoint 中的特性来订阅报表,创建新的报表和分发报表,你也可以在Word 或 Excel 中以HTML格式打开报表。

七、升级到SQL Server 2005

下面是一些升级到SQL Server 2005的小技巧。

  • 可以从SQL Server 7.0 或 SQL Server 2000升级到SQL Server 2005。
  • 在升级之前运行升级顾问程序来判断是否有产品上的变化而导致现有的程序中断。
  • 数据库引擎,分析服务,报表服务可以在安装时升级。
  • SQL Server集成服务(DTS的替代品)是和DTS并行安装的,你可以使用DTS运行时组件来运行DTS包。
  • SQL Server 2005 Notification Services 是和Notification Services 2.0并行安装的,当你升级数据库引擎时,你必须移植Notification Services 实例到SQL Server 2005。
  • 在升级后,使用Surface Area Configuration 工具来启用或禁用SQL Server 2005服务, 网络协议和特性。