贯通SQL Server 2008数据库系统开发
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.1 SQL Server 2008概述

SQL Server 2008是用于大规模联机事务处理(On-Line Transaction Processing,OLTP)、数据仓库和电子商务应用的数据库平台;也是用于数据集成、分析和报表解决方案的商业智能平台。

SQL Server 2008组件包括数据库引擎、报表服务、分析服务、通知服务、集成服务、全文搜索、复制和Service Broker等。

SQL Server 2008使用一些组件工具来帮助实现开发和管理任务,例如SQL Server Management Studio和SQL Server Business Intelligence Development Studio。在SQL Server Management Studio中,可以开发和管理SQL Server数据库引擎和通知解决方案,管理已部署的Analysis Services(分析服务)解决方案,管理和运行Integration Services(集成服务)包,以及管理报表服务器和Reporting Services报表与报表模型,同时可以可视化管理数据库,以及编辑和执行SQL语句。在BIDS(Business Intelligence Development Studio,商业智能开发工具)中,可以使用以下项目来开发商业智能解决方案:使用Analysis Services项目开发多维数据集、维度和挖掘结构;使用Reporting Services项目创建报表;使用报表模型项目定义报表的模型;使用Integration Services项目创建包。这两个项目与Microsoft Visual Studio开发工具包和Microsoft Office办公软件组件紧密结合,使得SQL Server 2008的功能得到了极大的扩展。

SQL Server 2008提供了设计、开发、部署和管理关系数据库、分析对象、数据转换包、报表服务器和报表,以及通知服务器所需的图形工具;提供了多种用于提交有关产品和文档反馈的方式,还提供了用于自动向Microsoft发送错误报告和功能使用情况数据的方式。

下面对SQL Server 2008包含的各组件一一进行简单的介绍。

1.1.1 数据库引擎

数据库引擎是用于存储、处理和保护数据的核心组件。可以利用数据库引擎控制访问权限并快速处理事务,以满足企业内要求极高而且需要处理大量数据的应用需要。使用数据库引擎创建用于联机事务处理或联机分析处理数据的关系数据库,这包括创建用于存储数据的表和用于查看、管理和保护数据安全的数据库对象(如索引、视图和存储过程)。

1.1.2 分析服务

Analysis Services(分析服务)是一种核心组件服务,支持对业务数据的快速分析,以及为商业智能应用程序提供联机分析处理(OLAP)和数据挖掘功能。可以使用Analysis Services来设计、创建和管理包含来自多个数据源的详细数据和聚合数据的多维结构,其中这些数据源(如关系数据库)都存在于内置计算支持的单个统一逻辑模型中。Analysis Services为根据统一的数据模型构建的大量数据提供快速、直观、由上至下的分析,这样可以采用多种语言向用户提供数据。Analysis Services使用数据仓库、数据集市、生产数据库和操作数据存储区来支持历史数据和实时数据分析。

Analysis Services包含创建复杂数据挖掘解决方案所需的功能和工具,如下所示。

(1)一组行业标准数据挖掘算法。

(2)数据挖掘设计器,可用于创建、管理和浏览挖掘模型,并根据挖掘模型创建预测查询。

(3)DMX语言,可用于管理挖掘模型和创建复杂的预测查询。

可以组合使用这些功能和工具,以发现数据中存在的趋势和模式,然后使用这些趋势和模式来处理业务难题,支持高层决策。

1.1.3 集成服务

SQL Server 2008 Integration Services(SSIS)是SQL Server 2008的提取、转换和加载(ETL)组件,它取代了早期的SQL Server ETL组件DTS(Data Transformation Services)。

Integration Services(集成服务)是用于生成企业级数据集成和数据转换解决方案的平台。使用Integration Services可解决复杂的业务问题,方法是复制或下载文件,发送电子邮件以响应事件,更新数据仓库,清除和挖掘数据以及管理SQL Server对象和数据。这些包可以独立使用,也可以与其他包一起使用来满足复杂多样的业务需求。Integration Services可以提取和转换来自多种数据源(如XML数据文件、平面文件和关系数据源)的数据,然后将这些数据加载到一个或多个目标。

Integration Services 包含一组丰富的内置任务和构造包的工具,以及用于运行和管理包的Integration Services服务。可以使用Integration Services图形工具来方便地创建解决方案,此时无须编写代码;也可以对Integration Services对象模型进行编程,通过编程方式创建包并编写自定义任务以及其他包对象的代码,这样可以大大提高工作效率。

1.1.4 复制

复制是一组技术,用于在数据库间复制和分发数据及数据库对象,然后在数据库间进行同步操作以维持数据一致性。使用复制可以将数据通过局域网和Internet 分发到不同位置,以及分发给远程用户或移动用户。SQL Server 2008提供3种功能各不相同的复制类型:事务复制、合并复制和快照复制。

事务复制通常用于需要高吞吐量的服务器到服务器方案(包括:提高伸缩性和可用性、数据仓库和报告、集成多个站点的数据、集成异类数据以及卸载批处理)。合并复制主要为可能存在数据冲突的移动应用程序或分步式服务器应用程序而设计的。常见应用场景包括:与移动用户交换数据、POS(终端销售)应用程序,以及集成来自多个站点的数据。快照复制用于为事务性复制和合并复制提供初始数据集;在适合数据完全刷新时也可以使用快照复制。利用这3种复制类型,SQL Server提供功能强大且灵活的系统,以便使企业数据得以同步。

1.1.5 报表服务

SQL Server 2008 Reporting Services(SSRS)是基于服务器的报表平台,提供来自关系和多维数据源的综合数据报表。Reporting Services(报表服务)包含处理组件、一整套可用于创建和管理报表的工具,以及允许开发人员在自定义应用程序中集成和扩展数据及报表处理的应用程序编程接口(API)。生成的报表可以基于SQL Server、Analysis Services、Oracle或任何Microsoft .NET Framework数据访问接口(如ODBC或OLE DB)提供的关系数据或多维数据。利用Reporting Services(报表服务),可以创建交互式报表、表格报表或自由格式报表,可以根据计划的时间间隔检索数据或在用户打开报表时按需检索数据。Reporting Services还允许用户基于预定义模型创建即席报表,并且允许通过交互方式浏览模型中的数据。所有报表可以按桌面格式或Web的格式呈现,可以从许多查看格式中进行选择,按需呈现报表。

Reporting Services是基于服务器的解决方案,因此通过它可以集中存储和管理报表,安全地访问报表、模型和文件夹,控制报表的处理和分发方式,并使报表在企业内的使用方式标准化。

1.1.6 通知服务

SQL Server 2008 Notification Services(通知服务)是用于开发生成并发送通知的应用程序的平台,也是运行这些应用程序的引擎。可以使用Notification Services生成并向大量订阅方及时发送个性化的消息,还可以向各种各样的应用程序和设备传递消息。使用Notification Services平台,可以开发功能齐全的通知应用程序。订阅表达了订阅方在特定信息(称为事件)方面的兴趣,可以根据事件的到达或计划对其进行评估。事件数据本身可以源自数据库内部、其他数据库或外部源。通知是事件和订阅匹配的结果,在发送给订阅方之前,可以采用各种格式。

Notification Services引擎与SQL Server数据库引擎协同工作。数据库引擎存储应用程序数据,并执行事件和订阅之间的匹配。Notification Services引擎控制数据流和数据处理,并且可以扩展到多台计算机。这可以改进要求极高的应用程序的性能。

1.1.7 全文搜索

SQL Server 2008包含对 SQL Server表中基于纯字符的数据进行全文查询所需的功能。全文查询可以包括字词和短语,或者一个字词或短语的多种形式。使用全文搜索可以快速、灵活地为存储在Microsoft SQL Server数据库中的文本数据的基于关键字的查询创建索引。在SQL Server 2008中,全文搜索提供企业级搜索功能。使用全文搜索可以同时在多个表的多个字段中搜索基于字符的纯文本数据。对大量非结构化的文本数据进行查询时,使用全文搜索获得的性能优势会得到充分的表现。例如,对数百万行文本数据执行的Transact-SQL LIKE查询可能需要花费几分钟时间才能返回结果;但对同样的数据,全文查询只需要几秒或更少的时间,具体取决于返回的行数。可以对存储在char、varchar或nvarchar 等列中的数据或存储在varbinary(max)或 image 列中的格式化二进制数据(如Microsoft Word文档)创建全文搜索。

1.1.8 Service Broker

SQL Server 2008 Service Broker为消息和队列应用程序提供SQL Server数据库引擎本地支持。这使开发人员可以轻松地创建使用数据库引擎组件在完全不同的数据库之间进行通信的复杂应用程序。开发人员可以使用Service Broker轻松生成可靠的分布式应用程序。

使用Service Broker的应用程序,开发人员无须编写复杂的内部通信和消息,即可跨多个数据库分发数据工作负荷。由于Service Broker处理会话上下文中的通信路径,所以降低了开发和测试工作,同时还提高了性能。例如,支持网站的前端数据库可以记录信息并将处理密集型任务发送到后端数据库以进行排队。Service Broker确保在事务上下文中管理所有任务,以确保可靠性和一致性。