基于DTS的数据库综合信息查询平台设计
来源:ahcit.com 更新时间:2012-04-15
 

由于管理和生产的需要,许多企业都建立了各种用途的数据库,数据库之间彼此相对独立,每个数据库也通常只为某一个软件系统提供数据支持。因此,各个数据库中的数据普遍存在利用率低、重复建设的问题,造成了企业资源的大量浪费。通过利用DTS技术,可将各种数据资源集中到一个逻辑数据库中,建立统一的信息查询平台,为有效利用数据资源提供一种有效的解决方案。

近几年来,许多企业开展了以数据库建设为核心的信息化、数字化工程,并取得了可喜成果。这些项目实施的同时,也暴露出了一个问题,即数据库往往只服务于某一系统,数据库之间缺乏联系。因此,不仅使个数据库成了一个个信息孤岛,无法有效地将各数据库中的大量信息、数据资源加以有效利用,还导致了大量重复工作,增加了管理成本,造成了企业资源的浪费。

综合信息查询平台的作用是在各种分散的数据库资源之上建立统一的查询平台,在用户和多个不同数据库之间提供一个透明的数据访问接口,实现一次登录便可对网络上不同物理节点的数据库进行查询或数据下载。通过综合信息查询平台,可以整合现有数据资源,提高资源利用率和工作效率,为上述问题的解决提供了有效途径。

1 抽取异构数据库中的数据

从异构数据库中抽取的数据,是建立综合信息查询平台的数据基础,主要包括:建立编码字典所需的数据、建立索引数据库所需的数据和用户索引数据等。抽取数据的作用是为了规避异构数据库的复杂性,将关键数据集中到统一的数据库系统中,便于管理、维护和系统开发,又减少了冲突和网络的信息流量,缩短了查询时间,提高处理的速度。

由于各异构数据库对数据库名、表名和字段名的编码规则不一致,有的用汉语拼音简写,有的用英语单词,还有的直接使用汉语,这就造成用户单凭编码,无法准确理解编码所表达的含义。因此,需要建立一套标准的全局编码字典,并以此为标准,在显示信息时,将数据库名、表名和字段名等数据库信息翻译成对应的汉语,使用户能明白信息的真实含义。

标准数据编码字典由独立数据库描述信息、数据表描述信息、字段描述信息、数据字段描述信息、分类描述信息、索引数据信息等构成。

2 索引数据的汇集

各个数据库在完成数据的抽取后,得到的数据需要通过数据转移技术来完成数据的汇集。“数据转移”就是把不同来源的数据进行相互转换,使之能够互相交流。SQL Server 2000专门提供了一个数据转移服务(Data Transformation Service,DTS)来实现数据转移的任务。DTS技术是建立在OLE DB基础之上的,通过OLE DB,DTS可以和所有支持OLE DB接口的数据源之间实现双向的数据转换。此外,SQL SERVER 2000还支持带有00BC驱动程序的数据源,由于ODBC在 Windows系列操作系统中的广泛应用,使得几乎所有的数据源都能通过ODBC驱动程序实现数据的转移。

DTS由包组成,包定义构成逻辑工作项的特定工作集,并且包含与数据源的多个连接、要执行的任务以及将连接与任务连起来的工作流。除了传输数据外,DTS还可以传输索引、视图、登录、存储过程、触发器、规则、默认值、约束以及用户定义的数据类型,另外还可以生成脚本以复制数据库对象。索引数据的抽取与汇集都可以通过定义好的DTS包自动完成。

为了即时反映源数据库中数据的变化情况,在创建DTS包时,通过SQL SERVER代理服务,设置执行周期,可周期性的将源数据库中数据的变化情况,动态反映到索引数据库中。创建DTS包,可以通过SQL Server提供的可视化工具结合T-SQL编码进行。

3 在索引数据库中建立全文索引

从不同源数据库中抽取的数据汇集到全文索引数据库中后,再通过SQL SERVER提供的全文索引功能来进行信息的检索。全文索引是一种对数据库中的VARCHAR、TEXT、NCHAR、NVCHAR、NTEXT等字符类型的字段进行索引的一种方法,可以实现海量数据的全文搜索查询。在大数据量的情况下,全文索引的搜索速度要远远高于使用SELECT与LIKE对字符类型的数据库字段进行查询。

SQL SERVER 的全文索引包含在全文目录中,必须在基表上定义,而不能在视图、系统表或临时表上定义。每个全文目录可以包含一个或多个表的全文索引,每个数据库可以包含一个或多个全文目录,而一个目录只能属于一个数据库,一个表只能有一个全文索引,因此每个有全文索引的表只属于一个全文目录(如图1 所示)。

图1 全文索引结构

SQL SERVER 2000提供的全文检索语句主要有CONTAINS和FREETEXT。 CONTAINS用于搜索包含基于字符的数据类型的列,该列与单个词和短语,以及与另一个词在一定范围之内的近似词精确或模糊(不太精确的)匹配或者加权匹配。FREETEXT用于搜索含有基于字符的数据类型的列,其中的值符合在搜索条件中所指定文本的含义,但不符合表达方式。使用 FREETEXT时,全文查询引擎内部将 freetext_string 拆分为若干个搜索词,并赋予每个词以不同的加权,然后查找匹配。在进行查询和进行全文检索之前,需要先建立和填充数据库全文索引。

4 访问安全控制

(1)用户标识与鉴别

用户标识与鉴别是系统提供的最外层安全保护措施。系统用一个用户名或者用户标识来标明用户身份,而系统内部则记录了所有合法用户的标识,当用户请求进入系统时,系统鉴别该用户是否是合法用户,若是,则进入下一步,若不是,则被系统拒绝。

(2)访问控制

为了保证系统的访问安全,防止非法访问,本系统采样了基于角色的访问控制机制。系统管理员根据用户访问的需要,定义不同的角色(即创建角色后,授权使用一定的功能或访问权限),并授予不同的用户。如此,用户只能使用该角色定义的相应权限,管理员也只需通过修改角色的权限,来达到控制该类用户访问的目的。

系统在用户登录后,根据其访问的权限,自动将不允许访问的信息屏蔽掉,可以较好的保证数据资源的安全。权限对用户访问的控制主要从两个方面体现出来:

●授权数据库:根据需要对数据库的访问进行授权,管理员可以决定哪些用户可以访问哪些数据库;

●授权表级别:各个数据库中的数据表,都按照其重要性或保密性分为若干个级别(1~N),其中1级的安全级别最高,如果用户授权访问的表的级别是K(1 ≤ K ≤ N),那么该用户可以访问所有级别≥K的数据表;

(3)登录日志

出于系统安全考虑,对于使用系统的每个用户,系统将自动记录其登录信息,包括:登录的日期、时间、用户帐号,以及用来登录系统的计算机的IP地址、机器名等。安全日志记录用户的登录情况,以作为其访问系统的依据。同时,为日志审计提供数据,以便在出现意外情况时,给管理员提供事故分析的线索。

5 数据库访问接口

综合查询平台的数据提供者多种多样,有不同类别、不同版本的数据库管理系统,也有各种桌面数据库或文件,例如:SQL SERVER 2000、ORACLE 8i、ORACLE9i、Access、Excel、Xml 等。系统专门设计提供一个数据库连接接口,这个接口在物理上分为两层(数据库连接适配器和ADO.NET),当需要连接数据库时,系统通过数据库连接适配器自动分辨需要连接的数据库的类型及参数,再通过ADO.NET建立相应的数据库连接(如图2所示)。通过ADO.NET提供的SQL SERVER.NET/OLE DB.NET/ODBC.NET接口,ADO.NET可以用于多种不同的数据源,用于XML数据,或用于管理应用程序本地数据。

图2 数据库访问接口模型

6 查询平台的设计与实现

查询平台的软件结构主要分为:综合信息查询、后台数据处理、访问安全控制、数据库访问接口四个模块(如图3所示)。下面是对这四个模块的详细说明:

(1) 访问安全控制:访问安全控制负责对用户的身份进行认证,区分用户的角色及访问权限,并对访问信息进行记录。

用户登录系统后,系统的访问控制管理模块从数据库中查找用户的角色,根据其角色可用的功能和数据资源,自动生成系统访问界面。基于角色的访问控制,控制着用户对系统功能的使用和数据访问,管理员可以灵活的组合用户的功能和对权限进行管理。

(2) 信息查询:综合信息查询是综合查询平台的核心,给用户提供查询信息的功能。用户使用“综合信息查询平台”提供的各种查询功能(全文查询、基本查询、高级查询)与系统的交互,从数据库中检索所需的信息。

全文查询的作用是在索引数据库中检索信息,给用户提供概括性的信息或信息的线索,以便用户进一步查询。基本查询最为简单,对用户的要求不高,用户可以根据需要,通过关键词,快速检索表中的信息,并对显示字段进行筛选。在高级查询中,平台提供了组合查询工具和统计功能,由用户根据需要定义T-SQL查询语句,查询相关信息,这种查询要求用户具有较高的操作能力。

当面对众多而陌生的数据库,用户最初并不清楚从哪里可查到自己需要的数据,于是通过全文查询,逐步缩小搜索的范围,当把范围缩小到数据表时,用户就可以利用其它的查询手段获得所需信息。

图3 综合查询平台的体系结构

(3) 数据库访问接口:给综合查询平台提供了一个数据访问接口,使系统能在不同的数据库中获取数据。通过基于ADO.NET技术的异种数据库访问接口,用户可以方便地访问索引数据库或源数据库,并利用系统提供的各种技术进行查询。

(4) 后台数据处理:后台数据处理是综合查询平台的基础,主要功能包括数据的抽取和汇集,以及进行全文检索。系统通过“后台数据处理”完成异构数据的抽取、索引数据的汇集、建立并更新全文索引。从各个源数据库中收集的数据,按统一的标准、格式进行处理之后,汇集到索引数据库中,再按照关键字建立全文索引。

7 小结

将不同数据库中的数据在逻辑上统一集中到一个平台下,通过全文索引技术从海量数据中查询信息,能最大限度地使数据资源得到利用,避开由于不同的数据库作为数据源给查询带来的困难。平台采用基于角色的访问控制,针对不同用户赋予相应的权限,能有效的对系统敏感数据进行保护。