- 论坛徽章:
- 0
|
SQL Server 2005 新增功能
开发人员的生产效率
SQL Server 2005 包含许多可以显著提高开发人员生产效率的新技术。从对 .NET Framework 的支持到与 Visual Studio 的紧密集成,这些功能使开发人员能够以较低的成本更轻松地创建安全、强大的数据库应用程序。SQL Server 2005 使开发人员可以利用现有的跨多种开发语言的技巧并且为数据库提供端对端开发环境。本机 XML 功能也使开发人员能够创建运行在不同平台或设备上的新型应用程序。
对开发人员生产效率的增强包括以下方面:
• 扩展的语言支持
• 改进的开发工具
• 扩展性
• 改进的数据访问
• XML 和 Web services
• 应用程序框架
扩展的语言支持
由于公共语言运行时 (CLR) 承载于数据库引擎之中,开发人员可以选择他们熟悉的语言来开发数据库应用程序,包括 Transact-SQL、Microsoft Visual Basic .NET 和 Microsoft Visual C# .NET。此外,通过用户自定义的类型和函数,CLR 宿主为开发人员提供更高的灵活性。CLR 还提供使用非 Microsoft 代码快速开发数据库应用程序的机会。
CLR/.NET Framework 集成
随着 SQL Server 2005 的发布,数据库编程人员现在可以充分利用 Microsoft .NET Framework 类库和现代编程语言来实现服务器中的功能。通过集成的 CLR,您可以使用所选择的 .NET Framework 语言对存储过程、函数和触发器进行编码。Microsoft Visual Basic .NET 和 C# 编程语言都提供面向对象的结构、结构化的异常处理、数组、命名空间和类。此外,.NET Framework 提供的数千个类和方法也扩展了内置功能,使您能够更容易地在服务器端使用。许多之前用 Transact-SQL 代码难以实现的任务,现在可以更容易地用托管代码实现。同时,系统还新增了两个数据库对象类型:聚合和用户自定义类型。现在,您可以更好地使用已掌握的新知识和技巧编写进程内代码。总之,SQL Server 2005 能够使您扩展数据库服务器,以便更容易地在后端执行适当的计算和操作。
SQL Server 和 CLR 间的集成提供了几个主要优点:
• 增强的编程模型。.NET Framework 兼容的编程语言在许多方面要比 Transact-SQL 更强大,它提供 SQL Server 开发人员之前不能使用的结构和功能。
• 增强的安全性。在 CLR 环境下运行的托管代码被数据库引擎所控制,这使得 .NET Framework 数据库对象比早期版本的 SQL Server 中的扩展存储过程运行更安全,并具备更好的安全性。
• 用户自定义类型和聚合。借助 CLR 宿主,这两个新的数据库对象扩展了 SQL Server 的存储和查询能力。
• 通用开发环境。数据库开发已集成到 Microsoft Visual Studio 2005 开发环境中。可以使用与编写中间层或客户层 .NET Framework 组件和服务相同的工具来开发和调试数据库对象和脚本。
• 性能和可伸缩性。因为托管代码被编译为本机代码得以优先执行,在某些场合性能可以得到显著的提升。
利用 CLR 集成,您可以用 Visual Basic .NET 和 C# 这样的语言写出具有更复杂逻辑的代码和更适用于计算型任务的代码。而且,Visual Basic .NET 和 C# 还提供了诸如封装、继承、多态这样的面向对象的功能。您可以轻松地将相关代码组织到类和命名空间中,这意味着可以在使用大量代码时更轻松地组织和维护代码投入。这种在逻辑上和物理上将代码组织到程序集和命名空间中的功能非常有用,它将使您能够更好地在一个大型数据库实现项目中发现和关联不同的代码块。
托管代码在处理数字和管理复杂执行逻辑上比 Transact-SQL 更有效,它还提供对字符串处理、正则表达式等的额外支持。此外,由于现在可以利用 .NET Framework 类库的功能,您可以更容易地从存储过程、触发器、用户自定义函数中访问几千个内置的类和例程。通过托管存储过程、函数、触发器和聚合,可以更容易地实现改进的字符串处理函数、数学函数、日期操作、系统资源的访问、高级加密算法、文件访问、图像处理和 XML 数据操作等功能。
托管代码的一个主要优点就是类型安全。在托管代码执行之前,CLR 将执行一些检查,通过一个被称之为“验证”的处理过程来保证所运行的代码是安全的。例如,会检查代码以确保不会读未写的内存。
Transact-SQL 增强
Transact-SQL 长期以来已成为所有 SQL Server 可编程性的基础。SQL Server 2005 提供了许多新的语言功能,可用于开发可伸缩的数据库应用程序。这些增强包括错误处理、新的递归查询功能和对新 SQL Server 数据库引擎功能的支持。SQL Server 2005 中的 Transact-SQL 的增强可提高您在查询编写上的表达能力,使您可以提高代码性能和扩展错误管理能力。对增强 Transact-SQL 所投入的不断努力体现了对它在 SQL Server 中的重要作用所持有的坚定信念。
改进的开发工具
开发人员可将一种开发工具用于 Transact-SQL、XML、多维表达式 (MDX) 和 XML for Analysis (XMLA)。与 Visual Studio 开发环境的集成将使行业和商业智能 (BI) 应用程序的开发和调试更有效。
Business Intelligence Development Studio
Business Intelligence Development Studio 是一个通用开发环境,它可根据包含数据库引擎、分析服务和报表服务的 Visual Studio 来生成 BI 解决方案。使用 Business Intelligence Development Studio 图形用户界面 (GUI) 可为数据管理应用程序设计 SQL Server Integration Services (SSIS) 包。通过从工具箱拖动任务,设置它们的属性并用优先约束将任务进行连接,您可以在 Business Intelligence Development Studio 中设计、开发和调试 SSIS 包。图 2 显示 Visual Studio 中的 Business Intelligence Development Studio 界面。
图 2:Visual Studio 中的 Business Intelligence Development Studio 界面
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 和 Transact-SQL 代码进行无缝调试,并从 CLR 到 Transact-SQL 进行调试以及进行反向调试,这些都与代码的位置无关,不管代码是在开发人员计算机上还是存储在 SQL Server 数据库中。
扩展性
用户自定义类型和聚合
SQL Server 2005 中的用户自定义类型不是与对象相关的扩展性机制。它们是一种扩展数据库标量类型系统的方式。标量类型系统包括 SQL Server 附带的纵栏式类型(如 int、nvarchar、uniqueidentifier 等类型)。您可使用用户自定义类型定义自己的类型,例如,用于列定义的类型。如果您的类型的确是适合被建模为列的原子类型,那么可创建一个用户自定义类型。
如果需要定义自己的标量类型,那么可使用用户自定义类型。这种类型的示例包括各种日历中的自定义日期/时间数据类型以及货币数据类型。使用用户自定义类型,您可创建单一的对象,它显示该类型所有可用的行为并将类型存储的基础数据封装(或隐藏)起来。任何需要访问这些数据的用户都必须使用此用户自定义类型的编程界面。利用 .NET Framework 中现有功能是考虑将类型实现为用户自定义类型的另一个重要原因。
在许多情况中,可能需要执行数据的聚合。这包括执行统计计算(如 avg、stddev 等)。如果不直接支持所需的聚合函数作为内置聚合函数,那么在 SQL Server 2005 中有三种方法可以执行自定义聚合:
• 将聚合编写为用户自定义的聚合。
• 使用 CLR 存储过程编写聚合。
• 使用服务器端游标。
SQL 管理对象
SQL 管理对象 (SMO) 是 SQL Server 2005 的管理对象模型。SMO 大幅改进了 SQL Server 管理对象模型的设计和体系结构。它是基于 .NET Framework 托管代码的既丰富又易于使用的对象模型。SMO 是使用 .NET Framework 开发数据库管理应用程序的主要工具。在 SQL Server Management Studio 中,每个对话框都使用 SMO,并且在 SQL Server Management Studio 中执行的每个管理操作都可以用 SMO 完成。
新的 SMO 对象模型和 Microsoft Windows Management Instrumentation (WMI) 应用程序编程接口 (API) 取代了 SQL-DMO。只要可能,SMO 就会合并类似于 SQL-DMO 的对象以便于轻松使用。您仍然可以使用 SQL Server 2005 中的 SQL-DMO,但 SQL-DMO 并不包含特定于 SQL Server 2005 的管理特性。
分析管理对象
使用能够提供对象级验证功能的对象库,分析管理对象 (AMO) 使客户端应用程序可以访问各种管理命令和 Analysis Services 可使用的功能,这就避免了必须为 Analysis Services 命令手动生成 DDL 脚本和通常很长的 Analysis Services 脚本语言 (ASSL) 对象定义元素的内容。使用 AMO 的应用程序要么可以连接和直接使用 Analysis Services 实例上的对象,要么可以在没有现有连接时创建这样的对象并保留元数据用于以后进行部署。AMO 还“包装”了 ASSL 命令和元素。
改进的数据访问和 Web Services
在 SQL Server 2005 中,可以开发数据库层中的 XML Web services,把 SQL Server 作为 HTTP 侦听器。这对那些以 Web services 为中心的应用程序提供了新型的数据访问功能。在 SQL Server 2005 中,可使用 HTTP 直接访问 SQL Server,无需使用 Microsoft Internet 信息服务 (IIS) 这样的中间层侦听器。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、开放式数据库连接 (ODBC)、Microsoft ActiveX 数据对象 (ADO) 或简单对象访问协议 (SOAP))发送到服务器的命令可能包含通知请求的标签。对于作为请求的一部分执行的每个语句,服务器都会创建一个通知订阅,它对包含在请求中的每个语句触发一次。通知通过应用程序可以轮询的 SQL Service Broker 队列进行传递,并且使用无论何时获得通知都会返回的激活服务或阻碍语句。查询通知对于在那些数据库驱动的 Web 站点应用程序中启用结果缓存非常有用。图 3 显示查询通知进程。
图 3:查询通知
MARS
多个活动结果集 (MARS) 允许每个连接有超过 1 个的挂起请求,特别是允许每个连接有超过 1 个的打开的默认结果集。默认结果集是一种前向的、只读的结果集。采用默认结果集,客户端驱动程序可以透明地检索大型数据块(表格数据流缓冲区大小的数据块)以满足应用程序的需求,而无需在服务器往返(就像使用服务器游标)。应用程序不需要牺牲性能即可实现一种简单的一次一行的编程方法。MARS 功能消除了当前的这一限制:一个打开的默认结果集将阻止驱动程序向服务器发送新的请求,直到整个结果集用完为止。
透明的数据镜像的故障转移
SQL Server 2005 可通过数据库镜像来支持“热备”功能。如果一个 SQL Server 实例失效,工作可被自动转移到备份服务器上。这要求一个实例来见证此故障转移,它就是所谓的(正如大家所料)见证实例。热备方案要求现有客户端连接必须“知道”故障转移(和新的服务器实例建立连接)。如果客户端连接在尝试下一次访问时发生错误,必须使用客户端编程手动进行“故障转移”,这并非好的方案。ADO.NET 2.0 中的 SqlClient 无需对应用程序进行特殊编程即可支持客户端故障转移。
XML 支持
像本机 XML 数据类型和 XQuery 之类的先进功能使组织能够无缝地连接内部和外部系统。SQL Server 2005 将完全支持关系型和 XML 数据,这样企业可以以最适合其需求的格式来存储、管理和分析数据。对于那些已存在的和新兴的开放标准,如超文本传输协议 (HTTP)、XML、简单对象访问协议 (SOAP)、XQuery 和 XML 方案定义语言 (XSD) 的支持也有助于让整个企业系统相互通信。
XML 数据类型
XML 能够比 SQL Server 所支持的那些标量数据类型更好地对复杂数据进行建模。同样,基于字符串的内置数据类型(如 char 或 varchar)并不能够充分有效地利用 XML 数据的大量优点。例如,如果 XML 被存储为字符串,那么您可以插入或选择整个文档,甚至能够从中检索连续字节,但却不能查询文档本身的内容。通过提供 XML 数据类型,SQL Server 2005 使您可以查询 XML 文档的部分内容,验证文档是否满足 XML 架构,甚至能够定位修改 XML 文档中的内容。它也将传统的关系数据与非结构化或半结构化 XML 文档中的数据集成在一起,而这在 SQL Server 2000 中是不可能的。在 SQL Server 2005 中,XML 数据被作为二进制大型对象 (BLOB) 存储于内部,可有效地进行重新分析和压缩。
一个 XML 架构的集合可以和类型化 XML 的一列关联起来,这样就能够对已存储的 XML 数据中的约束、插入、更新和值的类型进行校验,也能够优化存储和查询处理性能。SQL Server 2005 还提供了多个 DDL 语句用于管理服务器上的架构。
XQuery
XML 查询语言,或者 XQuery,是一种专为查询各种类型的 XML 数据的智能和高效的语言。使用 XQuery,您可以通过后者关联的方法对 XML 数据类型的变量和列运行查询。和许多 XML 标准一样,World Wide Web Consortium (W3C) 组织监督着 XQuery 的开发。XQuery 由 Quilt 这种查询语言发展而来,它基于其他多种查询语言,如 XML Path 语言 (XPath) 1.0 版、XML 查询语言 (XQL) 和 SQL。它也把 XPath 2.0 包含为一个子集。因此,如果您有使用 XPath 1.0 的经历,就可以优化您的技能而不必学习全新的查询语言。然而,它比 XPath 1.0 有些显著的增强,例如,类型化、特别的函数、支持更好的迭代、结果的排序、结构等。
SQL Server 2005 提供了更多的 XQuery 功能,它允许在数据层操作 XML 对象。它支持 XQuery 1.0 Working Draft of November 15, 2003 的一个静态类型子集。
Web Services 支持
在 SQL Server 2005 中,可以开发数据库层中的 XML Web services,把 SQL Server 作为 HTTP 侦听器。这对那些以 Web services 为中心的应用程序提供了新型的数据访问功能。在 SQL Server 2005 中,可使用 HTTP 直接访问 SQL Server,无需使用 Microsoft Internet 信息服务 (IIS) 这样的中间层侦听器。SQL Server 开放了一个 Web service 接口,可以执行 SQL 语句和调用函数和过程。查询结果可用 XML 格式返回,并且可以利用 Visual Studio Web services 基础架构。
XML for Analysis Services
XML for Analysis Services (XMLA) 是一个本机的、基于标准的协议,用于同 Analysis Services 服务器通信。通过它,可以非常容易的开发出新型的应用程序—将分析和实时操作集成起来的应用程序。采用 XMLA 作为本机协议,Analysis Services 客户端无需进行任何配置,而每一个服务器可自动成为一个 Web Services。一个轻量级 Win32 层可用于向后兼容在 OLE DB for OLAP、ADOMD 和 ADOMD.NET 使用 Analysis Services 2000 的工具。大多数用户将可以继续使用 ADOMD.NET 对象模型创建 Analysis Services 上的自定义应用程序。
应用程序框架
SQL Server 2005 引入了新的 SQL Server 应用程序框架,包括:Service Broker、Notification Services、SQL Server Mobile 和 SQL Server Express。Service Broker 是一个分布式应用程序框架,它可在数据库到数据库级上提供可靠的异步消息传递。
Service Broker
过去 10年 来,电子商务应用的繁荣产生了在数据库应用程序间改进工作流管理的需求。当在线客户发出购书订单后,此订单需要在库存、送货、信用卡系统中提交事务,同时需要使用另一个 Web 应用程序发出订单确认信息。仅仅等待这些过程依次完成并不是好的方法,SQL Server 2005 提供了一个新的可伸缩的体系结构用来构建异步消息路由。图 4 是 Service Broker 体系结构的大纲图
图 4:Service Broker 体系结构
Service Broker 技术借助普通 Transact-SQL 数据操作语言的扩展,使内部或外部进程可以发送和接收可靠、异步的消息流。消息可以发送到发送者所在数据库的队列中,或发送到相同 SQL Server 实例中的另一个数据库,或发送到相同服务器或远程服务器上的另一个 SQL Server 实例。
借助 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 Edition 数据库。也可以从 Management Studio 中直接操作 SQL Server Mobile Edition 数据库的架构,而无需考虑此数据库是驻留在移动设备还是桌面上。可以使用 SQL Server Management Studio 查询设备或桌面上的 SQL Server Mobile Edition 数据库。您也可以充分利用新的 SQL Server Mobile Edition 的功能,包括以图形用户界面格式呈现的,看起来就像本机 SQL Server 的 XML 显示计划,也可使用查询提示来覆盖 SQL Server Mobile Edition 的查询优化器。这使您第一次可以在设备上控制优化计划。
• 您现在可以对 SQL Server Integration Services (SSIS) 对象进行编码以交换数据。
• SQL Server 2005 中的 SQLResult 集派生出新的 SqlCeResult 集。这使 SQL Server Mobile Edition 真正具有了可滚动的、可更新的游标。它也允许绑定到设备上的数据对象。
• 您可以在保持主应用程序打开的同时编写应用程序代码以同步数据。这意味着可以在同一时间用两个不同的应用程序来访问设备上的同一个数据库。
• 可以将通知代码编入将给出同步状态的状态栏,以获取同步状态通知。而在以前,您无法获知同步的进度以通知用户设备还没有停止响应。
• 可以通过更为主动的页回收策略来维护小型数据库。
• 可以使用 SQL Server 语法来共享参数化查询代码。
SQL Server Express
比以前任何时候更多的开发人员正在充分利用关系数据库以提供丰富的最终用户体验。对应用程序内的信息的保护和管理非常重要。Microsoft SQL Server Express 为开发人员提供了免费、易于使用和功能强大的数据库,使其能够创建强大的、可靠的应用程序。通常,数据库系统对于创建简单的应用程序而言显得过于复杂。Microsoft Visual Studio 2005 和 SQL Server Express 通过简单但强大的开法环境,减少了创建数据驱动应用程序的复杂度。开发人员可以完全在 Visual Studio 2005 环境内设计架构、增加数据和查询本地数据库。如果开发人员需要更高级的数据库功能,SQL Server Express 可以无缝升级到更高级的 SQL Server 版本。图 5 显示了 SQL Server Express Manager 中的查询编辑器界面。
图 5:SQL Server Express Manager 中的查询编辑器
SQL Server Express Manager (XM) 这一新的图形用户界面工具是免费可用的,可从 Web 上单独下载,下载包的大小也较小,还可以免费再发行。XM 提供了易于使用的数据库管理和查询分析功能,可以连接到 SQL Server Express 和其他 SQL Server 2005 版本、SQL Server 2000 和 MSDE 2000 上。一个简化的连接对话框将指导用户选择实例和要使用的身份认证方式。可使用 XM 进行本地和远程连接。对象资源管理器以层次结构方式枚举和显示所用的常用对象,如实例、表、存储进程等,以帮助用户直观地访问数据库。
通过调用对象资源管理器的右击上下文菜单,可使用所有的数据库管理功能。有些数据库管理选项是开放的,这包括创建和修改数据库、表、登录和用户。对于许多常用的数据库操作,可通过任务向导来指导用户完成,同时许多其他的常用的数据库操则提供了选项卡式窗口文档。例如,XM 为创建新的数据库和编辑已有数据库提供了新建/编辑数据库文档。
许多数据库用户倾向于用 Transact-SQL 来管理他们的服务器,因为这种方法比图形用户界面能够提供更精确的控制。XM 的查询编辑器使用户可以开发和执行 Transact-SQL 语句和脚本。查询分析器具有丰富的功能,如,关键字颜色编码,以数据网格方式返回结果的结果窗格。如果有任何错误信息,它们也将显示在结果区中。 |
|