一种关系型数据库系统及其查询和报表方法.pdf

上传人:111****11 文档编号:644114 上传时间:2018-03-01 格式:PDF 页数:29 大小:1.38MB
返回 下载 相关 举报
摘要
申请专利号:

CN200410074521.8

申请日:

2004.09.06

公开号:

CN1588369A

公开日:

2005.03.02

当前法律状态:

驳回

有效性:

无权

法律详情:

发明专利申请公布后的驳回IPC(主分类):G06F 17/30公开日:20050302|||实质审查的生效|||公开

IPC分类号:

G06F17/30

主分类号:

G06F17/30

申请人:

杭州恒生电子股份有限公司;

发明人:

郑炜; 胡德海

地址:

310009浙江省杭州市文三路259号昌地火炬大厦B幢2号901室

优先权:

专利代理机构:

北京集佳知识产权代理有限公司

代理人:

王学强

PDF下载: PDF下载
内容摘要

本发明公开一种关系型数据库系统,包括数据中心,用于存储数据对象;元数据库,用于存储元数据;客户端;报表服务器,连接该客户端;中间件服务器,连接该数据中心、元数据库和报表服务器;其中,客户端实现查询和报表请求的输入,报表服务器根据所述请求发起元数据查找请求,中间件服务器根据元数据查找请求从元数据库获取元数据;报表服务器发送元数据到客户端;客户端根据元数据实现查询和报表的条件的输入,报表服务器根据元数据、输入条件生成执行命令,中间件服务器在数据中心执行该执行命令、并将结果返回报表服务器;报表服务器缓存该结果,并返回客户端;客户端显示结果。本发明还公开一种基于关系型数据库系统的查询和报表方法。

权利要求书

1.  一种关系型数据库系统,其特征在于,包括:
数据中心,用于存储原始的数据对象;
元数据库,用于存储元数据,所述元数据包含数据对象的描述、查询和报表的定义;
客户端;
报表服务器,连接所述客户端;
中间件服务器,连接所述数据中心、元数据库和报表服务器;
其中,所述客户端实现查询和报表请求的输入,所述报表服务器根据所述查询和报表请求发起查找元数据的请求,所述中间件服务器根据所述查找元数据的请求从元数据库获取元数据;所述报表服务器将获取的元数据转换为标准格式发送到客户端;所述客户端根据前述元数据中的查询和报表的定义实现查询和报表的条件的输入,所述报表服务器根据所述元数据中的数据对象的描述、输入的查询和报表的条件生成执行命令,所述中间件服务器在数据中心执行所述执行命令、并将结果返回报表服务器;所述报表服务器缓存所述查询和报表的结果,并返回客户端;所述客户端显示查询和报表的结果。

2.
  根据权利要求1所述的关系型数据库系统,其特征在于:所述报表服务器包括执行单元、元数据载入单元;所述执行单元用于生成执行命令并递交至中间件服务器,并将获得的结果缓存;所述元数据载入单元用于向中间件服务器请求元数据,将获得的元数据转换为标准格式。

3.
  根据权利要求2所述的关系型数据库系统,其特征在于:所述报表服务器还包括二次处理单元,用于对缓存的查询和报表的结果进行分析。

4.
  根据权利要求2所述的关系型数据库系统,其特征在于:所述报表服务器还包括界面处理单元,用于生成条件界面和结果显示界面。

5.
  根据权利要求1所述的关系型数据库系统,其特征在于:所述客户端包括导出单元和格式过滤单元;所述导出单元用于将缓存的查询和报表的结果转换为目标格式并存储;所述格式过滤单元用于在显示查询和报表的结果时实现格式转换。

6.
  根据权利要求1所述的关系型数据库系统,其特征在于:所述客户端还包括界面输入控件,用于实现前述请求和条件的输入。

7.
  根据权利要求1至6任一项所述的关系型数据库系统,其特征在于:还包括应用路由服务器,连接所述报表服务器和中间件服务器,用于转发报表服务器和中间件服务器之间的数据。

8.
  根据权利要求1所述的关系型数据库系统,其特征在于:所述数据中心存储的原始的数据对象包括数据表、视图、存储过程和存储函数。

9.
  一种基于关系型数据库系统的查询和报表方法,其特征在于,包括步骤:
1)选择数据中心的数据对象,生成对应的元数据并存储,所述无数据包括所述数据对象的描述、查询和报表的定义;
2)客户端向报表服务器请求执行查询和报表;所述报表服务器根据所述请求向中间件服务器请求元数据;所述中间件服务器获取元数据并返回报表服务器;所述报表服务器将获取的元数据转换为标准格式发送到客户端;
3)所述客户端根据所述元数据实现查询和报表的条件的输入,并将该输入的条件发送到报表服务器;所述报表服务器根据所述元数据、查询和报表的条件生成执行命令发送到中间件服务器;所述中间件服务器在数据中心执行所述执行命令、并将结果返回报表服务器;
4)所述报表服务器缓存所述查询和报表的结果,并返回客户端;所述客户端显示查询和报表的结果。

10.
  根据权利要求9所述的查询和报表方法,其特征在于,所述步骤1)中,所述生成元数据的过程具体是:选择数据对象;生成数据对象描述;生成查询和报表本身的定义;生成条件字段描述;生成查询和报表的条件定义;生成结果字段描述;生成查询和报表的结果展示定义;所述存储元数据的过程具体是将元数据存放于数据库或配置文件中。

11.
  根据权利要求10所述的查询和报表方法,其特征在于,所述步骤2)中,实现查询和报表条件的输入具体是:解析返回的元数据,根据查询和报表本身的定义、查询和报表的条件定义、查询和报表的结果展示定义生成条件输入接口;所述步骤3)中,生成执行命令的过程具体是:根据结果字段描述和输入的条件拼接结果字段;根据数据对象描述和输入的条件指定数据对象;根据条件字段描述和输入的条件拼接条件字段;将结果字段、数据对象和条件字段组合为完整的执行命令。

12.
  根据权利要求10所述的查询和报表方法,其特征在于,所述步骤2)中,实现查询和报表条件的输入具体是:解析返回的元数据,根据查询和报表本身的定义、查询和报表的条件定义、查询和报表的结果展示定义生成条件输入接口;所述步骤3)中,生成执行命令的过程具体是:根据条件字段描述和输入的条件拼接条件字段;根据数据对象描述和输入的条件指定数据对象;将数据对象和条件字段组合为完整的执行命令。

13.
  根据权利要求9所述的查询和报表方法,其特征在于:所述步骤4)中,在显示查询和报表的结果时执行格式过滤,实现数据的格式转换。

14.
  根据权利要求9所述的查询和报表方法,其特征在于:还包括将所述缓存的查询和报表的结果转换为目标格式进行导出。

15.
  根据权利要求9所述的查询和报表方法,其特征在于:还包括对所述缓存的查询和报表的结果进行二次处理。

16.
  根据权利要求9所述的查询和报表方法,其特征在于:还包括应用路由服务器转发所述报表服务器和中间件服务器之间的数据的步骤。

说明书

一种关系型数据库系统及其查询和报表方法
技术领域
本发明涉及数据的存储及处理技术,特别是涉及一种关系型数据库系统及其查询和报表方法。
背景技术
数据库技术已经广泛应用于各种管理信息系统,成为决策支持系统和专家系统的基础。特别是关系型数据库系统(RDBMS,Relation DataBase System)已日益受到重视。
关系型数据库系统以数据的关系模型为基础,根据自定义的关系来存储、处理和管理数据库信息。通常,关系型数据库中包含大量数据信息,但是,实际应用中并不是需要所有的数据信息,而是需要符合某些条件的一些数据信息,此时,可以通过查询来检索符合条件的数据信息。此外,还可以通过报表来实现数据的计算、归类、汇总和排序。
近来,大型企业、股票交易商、信用卡公司、保险公司以及电话公司等单位均由总部和分布于各地的分公司或营业部组成,而且各分公司的业务一般采用单独数据库运行模式,独立完成整个业务流程并存放原始数据。考虑到该模式存在资源分散、管理难度大、信息不对称和风险控制能力差等种种问题,业界普遍在总部建设数据中心,用于将这些位于不同数据库的业务数据复制并集中存放,进行综合的应用,同时又不影响原来的业务系统的功能。以证券公司为例,普遍在总部建设一个集中各营业部交易数据的数据中心,在此基础上,数据中心往往还包括了财务、法人清算、交易所、银行对帐等各种业务数据。因此,如何更好地使用这些业务数据实现风险控制、决策支持等应用,成为越来越受关注的话题。
目前,现有技术中,基于关系型数据库的查询和报表技术的实现主要有两类。一类是基于数据仓库的技术,具有代表性的有BO、Micro Strategy、MicrosoftReport Server等;另一类是基于业务的查询和报表系统。
请参阅图1,是一种采用Micro Strategy技术的系统的拓扑结构图。其中,数据仓库810用于将来自其它系统的有用资料存放在一整合的储存区内,其实质就是经过处理整合且容量特别大的关系型数据库;为了便于数据分析、数据挖掘等的应用,数据仓库810存放的是经过整理和清洗的业务数据。
所述元数据库820用于存储数据模型。所述数据模型基于数据仓库建立,该系统中通过数据模型来实现查询和报表。
请参阅图2,是Micro Strategy的数据模型的层次。由于该数据模型的某些层次之间可以有相互的嵌套,为了表述清楚,只给出最基本的层次及层次关系。其中,各部分的功能是:表(Table):对于原始数据表的直接定义,主要是字段及其类型;事实(Fact):可计算的字段,可以是字段或表达式,主要是数量,金额等内容;度量(Metric):加上聚合计算的Fact的表达式,如SUM(F1*F2),MIN(F1)/AVG(F1)等;纬度(Attribute):用来确定聚合程度的字段,如日期的年、月、日,地区的省、市、县等;过滤(Filter):用于过滤数据,用大小比较,包含等方式进行数据的过滤,如[年]=2004;提示(Prompt):可以由用户输入条件的Filter,在执行报表时由用户输入一定的条件;报表(Report):报表的定义,包括报表包含基本元素的,显示布局、格式等。
基于该系统的查询和报表的实现过程是:专用客户端860事先生成报表元数据,存放到元数据库820;用户通过客户端850发起查看报表的动作;WEB服务器840接收请求,通过报表服务器830从元数据库820取得报表条件定义,并生成条件页面,返回给客户端;用户输入条件,发送到WEB服务器840;WEB服务器840接收条件,并向报表服务器830发起执行报表的命令;报表服务器830根据用户输入的条件和元数据生成SQL语句,并到数据仓库810上执行;报表服务器830将执行结果连同元数据定义生成标准的数据格式(XML),返回给WEB服务器840;WEB服务器840根据执行结果和元数据定义生成结果页面,返回给客户端850。
该系统虽然可以实现查询和报表,但是并不适用于数据中心的建设。这是因为:首先,该系统过于依赖于数据仓库的数据模型,要求对数据有较好的整理和清洗,而数据中心则需要尽量保证数据的完整性,因此整理和清洗程度很小;其次,该系统的数据模型的结构比较复杂,生成一个交互式报表最少也需要7个层次的模型对象;再次,该系统对于复杂的查询和报表的支持比较差,由于过度依赖于数据模型,对于一些无法简单用模型描述的复杂的查询和报表,支持就非常差,往往需要生搬硬套,还不一定能达到预期的效果;再次,此类技术常见国外的软件系统,对中国式的报表展示格式缺乏支持;此外,报表服务器采用直接连接数据库的方式,对多层结构支持较差,难以实现数据库和报表服务器在网络上的分离,安全性较差。
请参阅图3,是基于业务的查询和报表系统的网络拓扑结构图。该系统常见于交易系统、财务系统、法人清算系统等各种业务系统。
该系统的查询和报表的实现过程如下:首先,用户发起查看报表的动作;其次,客户端910通过代码实现报表的定义,生成条件界面,接收用户的输入;随后,客户端910根据用户输入地条件通过代码生成SQL语句,并通过应用路由服务器920发送到中间件服务器930上执行;中间件服务器930在数据库940执行SQL语句,将执行结果返回给客户端910;客户端910通过代码将执行结果生成结果界面以显示结果。
该系统在应用于数据中心时存在一些缺陷:首先,该系统最主要的特点在于针对某一个业务的需求而采用硬编码的形式,通过程序代码实现各种查询和报表的需求,如报表的定义用程序代码来实现(可以在程序代码里写入报表的条件、结果等),因此开发工作量大;并且扩展性差,如需要修改报表的定义就必须通过修改程序代码、重新编译来实现,只适合特定业务的实现。而对于数据中心这种集成各种业务数据,并且可以随时增加新的业务数据的系统,应用的可扩展性是非常重要的。其次,其开发工作量相当于针对每套业务系统单独进行开发的总和,工作量和整个系统的规模成正比,且每加入一套业务数据都会引起每个节点的改变。
发明内容
本发明解决的技术问题是提供一种关系型数据库系统和基于关系型数据库系统的查询和报表方法;其实现与业务无关、且可扩展性较好。
为此,本发明解决技术问题的技术方案是:提供一种关系型数据库系统,包括:
数据中心,用于存储原始的数据对象;
元数据库,用于存储元数据,所述元数据包含数据对象的描述、查询和报表的定义;
客户端;
报表服务器,连接所述客户端;
中间件服务器,连接所述数据中心、元数据库和报表服务器;
其中,所述客户端实现查询和报表请求的输入,所述报表服务器根据所述查询和报表请求发起查找元数据的请求,所述中间件服务器根据所述查找元数据的请求从元数据库获取元数据;所述报表服务器将获取的元数据转换为标准格式发送到客户端;所述客户端根据前述元数据中的查询和报表的定义实现查询和报表的条件的输入,所述报表服务器根据所述元数据中的数据对象的描述、输入的查询和报表的条件生成执行命令,所述中间件服务器在数据中心执行所述执行命令、并将结果返回报表服务器;所述报表服务器缓存所述查询和报表的结果,并返回客户端;所述客户端显示查询和报表的结果。
优选地,所述报表服务器包括执行单元、元数据载入单元;所述执行单元用于生成执行命令并递交至中间件服务器,并将获得的结果缓存;所述元数据载入单元用于向中间件服务器请求元数据,将获得的元数据转换为标准格式。
优选地,所述报表服务器还包括二次处理单元,用于对缓存的查询和报表的结果进行分析。
优选地,所述报表服务器还包括界面处理单元,用于生成条件界面和结果显示界面。
优选地,所述客户端包括导出单元和格式过滤单元;所述导出单元用于将缓存的查询和报表的结果转换为目标格式并存储;所述格式过滤单元用于在显示查询和报表的结果时实现格式转换。
优选地,所述客户端还包括界面输入控件,用于实现前述请求和条件的输入。
优选地,还包括应用路由服务器,连接所述报表服务器和中间件服务器,用于转发报表服务器和中间件服务器之间的数据。
优选地,所述数据中心存储的原始的数据对象包括数据表、视图、存储过程和存储函数。
本发明还提供一种基于关系型数据库系统的查询和报表方法,包括步骤:
1)选择数据中心的数据对象,生成对应的元数据并存储,所述元数据包括所述数据对象的描述、查询和报表的定义;
2)客户端向报表服务器请求执行查询和报表;所述报表服务器根据所述请求向中间件服务器请求元数据;所述中间件服务器获取元数据并返回报表服务器;所述报表服务器将获取的元数据转换为标准格式发送到客户端;
3)所述客户端根据所述元数据实现查询和报表的条件的输入,并将该输入的条件发送到报表服务器;所述报表服务器根据所述元数据、查询和报表的条件生成执行命令发送到中间件服务器;所述中间件服务器在数据中心执行所述执行命令、并将结果返回报表服务器;
4)所述报表服务器缓存所述查询和报表的结果,并返回客户端;所述客户端显示查询和报表的结果。
优选地,所述步骤1)中,所述生成元数据的过程具体是:选择数据对象;生成数据对象描述;生成查询和报表本身的定义;生成条件字段描述;生成查询和报表的条件定义;生成结果字段描述;生成查询和报表的结果展示定义;所述存储元数据的过程具体是将元数据存放于数据库或配置文件中。
优选地,所述步骤2)中,实现查询和报表条件的输入具体是:解析返回的元数据,根据查询和报表本身的定义、查询和报表的条件定义、查询和报表的结果展示定义生成条件输入接口;所述步骤3)中,生成执行命令的过程具体是:根据结果字段描述和输入的条件拼接结果字段;根据数据对象描述和输入的条件指定数据对象;根据条件字段描述和输入的条件拼接条件字段;将结果字段、数据对象和条件字段组合为完整的执行命令。
优选地,所述步骤2)中,实现查询和报表条件的输入具体是:解析返回的元数据,根据查询和报表本身的定义、查询和报表的条件定义、查询和报表的结果展示定义生成条件输入接口;所述步骤3)中,生成执行命令的过程具体是:根据条件字段描述和输入的条件拼接条件字段;根据数据对象描述和输入的条件指定数据对象;将数据对象和条件字段组合为完整的执行命令。
优选地,所述步骤4)中,在显示查询和报表的结果时执行格式过滤,实现数据的格式转换。
优选地,还包括将所述缓存的查询和报表的结果转换为目标格式进行导出。
优选地,还包括对所述缓存的查询和报表的结果进行二次处理。
优选地,还包括应用路由服务器转发所述报表服务器和中间件服务器之间的数据的步骤。
相对于现有技术,本发明的有益效果是:首先,由于本发明为数据中心的数据对象配置元数据,同时数据对象与元数据又都是在数据库层,因此当修改业务数据或增加新的业务数据时,就只会引起数据中心和元数据的改变,不会较多影响其他节点的改变,从而充分利用现有资源、且可以减少开发工作量,提高了数据库系统的扩展性。其次,由于本发明配置元数据时,将业务数据作为数据对象,元数据部分只包含基础的元素,减少了查询和报表对数据模型的依赖,从而既保持应用的灵活,又减少了元数据对数据之间关系的依赖程度,适合于未经整理和清洗的业务数据,且可以实现业务的无关性。再次,本发明采用中间件服务器连接数据库和报表服务器,从而支持数据库服务器和办公网的分离,保证数据库服务器的安全;并且,通过中间件服务器和报表服务器的配合,还可以实现数据库系统的类型无关性,提供统一的数据库访问接口。
此外,本发明的优选实施例中,数据库系统的中间件服务器、报表服务器和客户端采用各种单元实现相互的接口连接,更充分保障了系统的可扩展性,使系统能更好地支持未来的新需求;系统扩展非常快捷和简单,开发工作比直接硬编码少,可迅速增加新的功能,最重要的是能快速的支持新的业务数据的应用,减少开发新系统的投入。
此外,查询和报表执行采用动态SQL查询语句和动态存储过程调用技术;简单的业务直接由表或视图的结构实现,复杂的业务通过存储过程或存储函数实现,同时通过对存储过程和存储函数的支持,解决了计算复杂的查询和报表及中国式的报表的问题,报表的形式更加灵活,而且能将异构的业务数据合并生成查询和报表的结果,有效组合各类业务数据,和生搬硬套的建模相比,执行的效率上也有明显的优点。
此外,通过应用路由服务器进行命令的转发,可以用来跨越两个或多个网段,达到对多层结构的目的,进一步解决了数据库安全性的问题。
此外,可以实现查询和报表的展示和数据导出;同时也为数据的二次处理提供了支持,用户可以根据自己的需要,重新处理数据,为数据的挖掘和分析提供了初步的支持。
附图说明
图1是一种采用数据仓库技术的系统的拓扑结构图;
图2是图1所示系统的数据模型的层次;
图3是基于业务的查询和报表系统的网络拓扑结构图;
图4是本发明的关系型数据库系统的框图;
图5是图4所示数据库系统的接口的示意图;
图6是本发明查询和报表方法的流程图;
图7是本发明的实施例中元数据的结构及连接示意图;
图8是本发明查询和报表方法的实施例的流程图;
图9是本发明应用于证券公司的实例的示意图。
具体实施方式
本发明充分考虑到数据中心的特点,从而较好地实现了数据中心的建设以及查询和报表的实现。从数据的角度讲,数据中心的主要有两个方面特点:一是数据集中,数据来自不同的业务系统;二是数据保持原始状态,未经清理。因此,本发明采用数据中心存储集中原始数据,采用元数据库存储针对原始数据的描述,从而将业务的实现与查询和报表分离,在修改或增加新的业务数据就只会引起数据中心和元数据库的变化,不会过多影响其他节点;此外,采用中间件服务器实现了数据中心和报表服务器的有效分离;本发明还对数据的描述进行了简化,只包含基本元素,从而既保持应用的灵活,又减少数据的描述对原始数据的依赖。
请参阅图4,是本发明的关系型数据库系统的框图。
该关系型数据库系统包括数据中心110、元数据库120、中间件服务器130、报表服务器140和客户端150;其中,报表服务器140连接客户端150;中间件服务器130连接所述数据中心110、元数据库120和报表服务器140,实现报表服务器140和数据中心110、元数据库120在网络上的分离。
为了进一步增强系统的安全性,还可以在报表服务器140和中间件服务器130之间设置应用路由服务器160;该应用路由服务器160负责转发报表服务器140和中间件服务器130之间交互的数据,但不进行数据的处理,主要用于跨越多个网段、支持多层结构。
数据中心110中存放搜集的来自其他系统的数据,包括数据表、视图、存储过程和存储函数;其中,存储过程和存储函数可以采用SQL语句的预编译集合,这些语句在一个名称下存储并作为一个单元进行处理;类似于普通编程语言的过程和函数,是数据库系统中用来处理数据的模块。
元数据库120中存储元数据,包含数据对象的描述、查询和报表的定义;用于实现查询和报表的参数化配置。其中,数据对象的描述是指将数据中心存储的数据描述为数据对象,包括数据对象描述、条件字段描述和结果字段描述,其目的是上述数据表、视图、存储过程和存储函数等不同的数据库对象以同一的形式进行描述,方便对查询和报表的定义;查询和报表的定义包括查询和报表本身的定义、查询和报表的条件定义、查询和报表的结果展示定义。
所述客户端150用于接收用户的输入、实现查询和报表结果的展示及数据导出。
报表服务器140用于根据用户的输入请求元数据、生成执行命令、以及实现查询和报表结果的缓存和二次处理。
中间件服务器130用于获取元数据、根据执行命令实现查询和报表的执行;实现数据库系统的业务类型无关性。
为了更好地实现系统的可扩展性,使系统能更好的支持未来的新需求,本发明的各部分之间采用接口进行连接,并且开放接口,支持二次开发。
请参阅图5,该数据库系统中,报表服务器140包括核心处理单元141、执行单元142和元数据载入单元143;所述核心处理单元141连接其他单元,支持数据的流动和处理;所述执行单元142用于生成执行命令并递交至中间件服务器130,并将获得的结果缓存;所述元数据载入单元143用于向中间件服务器130请求元数据,将获得的元数据转换为标准格式。
为了对缓存的查询和报表的结果进行分析,所述报表服务器还可以包括二次处理单元144,用于对缓存的数据进行排序、过滤、汇总等操作,生成新的数据缓存,用户可以根据自己的需要,重新处理数据,为数据的挖掘和分析提供初步的支持。
客户端150包括客户端控制单元151、导出单元152和格式过滤单元153;所述客户端控制单元151连接其他单元,支持数据的流动和处理;所述导出单元152用于将缓存的查询和报表的结果转换为目标格式并存储;所述格式过滤单元153用于在显示查询和报表的结果时实现格式转换。
为了拓展用户的输入,所述客户端150还可以包括界面输入控件154。
所述关系型数据库系统的二次开发包括:通过元数据载入单元143支持更多形式的元数据;通过执行单元142支持更多形式的数据对象形式,甚至支持更多形式的数据源;通过二次处理单元144支持对数据的再处理,提高展示和分析的灵活性;通过格式过滤器单元153对数据的展示格式提供更丰富的支持;通过导出单元152根据需要增加对其他导出格式的支持。
此外,二次开发还包括查询和报表本身的自定义:通过增加数据表、视图、存储过程和查询函数提供新的查询和报表对象;通过修改元数据来增加查询和报表的功能。其中,元数据的修改和增加可以由实现元数据载入接口的单元来实现。
请一并参阅图4和图6,下面介绍本发明查询和报表方法的流程。
首先,选择数据中心110的数据对象,生成对应的元数据并存储于元数据库120,所述元数据包括所述数据对象的描述、查询和报表的定义;
其次,用户输入请求,客户端150向报表服务器140请求执行查询和报表;所述报表服务器140根据所述请求向中间件服务器130请求元数据;所述中间件服务器130从元数据库120获取元数据并返回报表服务器140;所述报表服务器140将获取的元数据转换为标准格式发送到客户端150;
再次,所述客户端150根据所述元数据中的查询和报表的定义生成条件界面,供用户输入查询和报表的条件,并将该输入的条件发送到报表服务器140;所述报表服务器140根据所述元数据中的数据对象的描述、输入的查询和报表的条件生成执行命令发送到中间件服务器130;所述中间件服务器130在数据中心110执行所述执行命令、并将结果返回报表服务器140;
随后,所述报表服务器140缓存所述查询和报表的结果,并返回客户端150;所述客户端150显示查询和报表的结果。
为了便于对本发明的理解,下面结合实施例对本发明进行详细描述。
请参阅图7,是本发明的实施例中元数据的结构及连接示意图。
元数据包括数据对象的描述、条件字段和结果字段,用于将数据中心的数据表、视图、存储过程和存储函数等不同的数据库对象以同一的形式进行描述,方便对查询和报表的定义。
元数据库还包括查询和报表本身的定义、查询和报表的条件定义、查询和报表的结果展示定义,用于定义查询和报表。
其中,数据对象的描述的内容包括:

属性说明对象编号对象的唯一编号对象名称对象在数据库中的标识对象属性属性为“表”、“视图”、“存储过程”、“存储函数”等

条件字段描述的内容包括:属性说明对象编号关联对象的编号条件字段编号条件字段的唯一编号字段名称条件字段的标识比较方式等于(=),不等于(!=),大于(>),小于(<),
大于等于(>=),小于等于(<=),包含(in),不包含(not in),字符串包含(charindex),字符串不包含(not charindex),匹配(like),不匹配(notlike)这12种基本的形式。默认值用于可忽略的条件

结果字段描述的内容包括:属性说明对象编号关联对象的编号结果字段编号结果字段的唯一编号字段名称结果字段的标识计算表达式支持通过表达式计算的结果字段,默认是字段名称是否可排序是否作为可排序的字段

查询和报表本身的定义包括:属性说明查询和报表编号查询和报表的唯一编号对象编号关联对象的编号查询和报表名称查询和报表的中文标题展示形式表格或/和图图的类型柱状图,饼图,折线图等

查询和报表的条件定义包括:属性 说明查询和报表编号关联查询和报表编号的编号条件编号条件的唯一编号条件中文名称条件的中文标识纵坐标确定条件位置和大小横坐标纵向大小横向大小条件字段编号确定对应的条件字段,为0表示不关联条件字段,作为界面提示文本输入控件名称输入控件的标识输入控件参数输入控件的各种开关和属性参数

查询和报表的结果展示定义包括:属性说明查询和报表编号关联查询和报表编号的编号结果字段编号确定对应的结果字段是否显示界面显示的开关显示顺序字段显示的顺序号表格中的位置为主表内显示,附加表内显示两种图中的位置图的坐标轴重复内容是否合并显示合并表格中连续重复的单元格内容对齐方向水平和垂直的对齐方向链接参数用于链接其他查询和报表,将本查询和报表的结果作为下一个查询和报表的输入条件格式过滤器用于结果格式化输出的若干格式过滤器导出格式可指定的导出类型和长度,默认为原始数据格式

本发明在配置元数据时由建模工具实现,建模工具通过图形界面进行配置,完成配置后在运行时就不再需要建模工具。由于数据中心的数据是来自其他系统且未经整理和清洗的业务数据,配置分两个层次进行:数据的描述和建模;查询和报表的定义。
首先,选择数据中心的数据表、视图、存储过程或存储函数作为数据对象。具体包括:对象编号,取自数据库;对象名称,手工指定;对象属性,自动判断;
其次,指定查询和报表编号、名称,选择查询和报表的展示形式,如果为图,就指定图的类型;
再次,列出数据表、视图的所有字段,存储过程或存储函数的参数,作为备选的条件字段;条件字段编号、字段名称由数据中心直接获取。手工指定哪些作为条件字段后,再指定或输入比较方式(只针对表和视图),默认值。
再次,自动生成条件编号,手工指定或输入条件字段的条件中文名称、输入控件名称、输入控件参数;
再次,根据条件字段的中文名称、条件类型,生成条件布局配置界面,拖放条件进行界面配置,完成后自动转换为条件的位置和大小;
随后,列出数据表、视图的所有字段,存储过程或存储函数的执行结果字段(执行时,参数取中配置的默认值),作为备选的结果字段,结果字段编号、字段名称直接获取。手工指定哪些作为结果字段后,再指定或输入计算表达式,是否可排序。
随后,指定或输入结果的是否显示、表格中的位置、图中的位置、显示顺序、重复内容是否合并显示、对齐方向、链接参数、格式过滤器、导出格式;
选择将改动直接保存到元数据库和/或生成SQL执行脚本,结束配置。
由上述描述可知,元数据定义部分只包含最基础的元素,可以尽量减少报表对数据模型的依赖,同时通过对存储过程和存储函数的支持,解决了计算复杂的查询和报表及中国式的报表的问题,报表的形式更加灵活。
可以理解,元数据由实现元数据载入接口的单元来实现,因此可以通过对接口的实现,来达到元数据存放格式的无关性,如存放在数据库系统中,或者存放在配置文件中。
请参阅图8,完成元数据的配置后,就可以执行查询和报表了,具体包括:。
首先,客户端向报表服务器请求执行查询和报表。
报表服务器中的元数据载入单元向中间件服务器请求元数据。
其次,中间件服务器获取元数据并返回给元数据载入单元;元数据载入单元将元数据转换为标准格式返回给报表服务器的核心处理单元;报表服务器将元数据返回给客户端,由客户端生成条件界面;用户输入条件,客户端将条件递交报表服务器。
随后,报表服务器的执行单元根据元数据和条件生成执行命令并递交中间件服务器。生成执行命令时,对于不同类型的数据对象由不同的处理流程。
1)数据表、视图的执行
根据元数据的定义,生成动态select语句,生成的select语句的结构如下:
1:select[表达式1]as[字段1],[表达式2]as[字段2]...[表达式n]as[字段n]
2:from[表或视图的对象名称]
3:where[条件1]and[条件2]...and[条件n]
4:order by[结果字段1][dese],[结果字段2][desc]...[结果字段n][desc]
执行的步骤如下:根据结果字段名称和计算表达式,将结果字段拼接成1的部分;根据对象名称,生成2的部分;根据条件字段名称,条件比较方式,和用户输入的条件值,生成[字段][比较运算符][值]这样的条件,将多个条件用“and”连接起来,生成3的部分;根据结果字段定义,结果字段是否可排序,和用户输入的排序条件,将结果字段拼接成4的部分,如果排序为逆序,在字段名称后面加上“desc”;将1-4拼成完整的语句。
下面是一个生成执行命令的实例。假定为视图vclientinfo建立如下元数据:
数据对象的描述对象编号 对象名称对象属性640014 hsrun..vclientinfo视图

条件字段的描述条件字段编号  字段名称  比较方式  默认值  用户输入值  1  branch_no  等于  无默认值  1001  2  fund_account  等于  无默认值

结果字段的描述  结果字段编号  字段名称  计算表达式  是否可排序用户选择排序  1  branch_no  否  2  branch_name  branch_no  否  3  fund_account  是  逆序  4  client_name  否

则生成的语句如下:
1:select branch_no as branch_no,branch_no as branch_name,fund_accountas fund_account,client_name as client_name
2:from hsrun..vclientinfo
3:where branch_no=1001
4:order bv fund_account desc
2)存储过程和存储函数的执行
对于存储过程的调用相对较简单,根据条件字段的定义和用户选择的条件设定过程参数,对于忽略的参数,传递默认值。
然后,中间件服务器执行命令,将结果返回执行单元;执行单元将数据存入报表服务器的数据缓存。缓存的实现具体是:中间件服务器返回结果信息;报表服务器分析返回结果,向中间件服务器发送结果编号,请求指定条数的记录;在数据缓存中添加记录。当然,其中还包括执行异常时的处理。
报表服务器将结果分页返回给客户端。只要数据缓存中的数据量达到数据分页的要求,就立即返回给客户端,用最短的时间响应客户端的请求;
客户端显示查询和报表的结果。查询和报表的展示主要是对元数据的查询和报表定义部分的解释和执行,展示格式分为表格和图两种:
表格的展示主要工作是:生成表格,执行格式过滤器单元,生成查询和报表之间的跳转链接等。格式过滤器单元是实现数据内容转换的单元,用来进行日期、数字的格式化输出,数据字典的转换等功能。
图的展示,主要是根据图的坐标定义和存中的数据,直接生成图,支持常见的饼图,柱状图,折线图,点图等。
此外,还可以导出数据,即将缓存中的数据转换为目标文件格式,如文本文件,DBF文件,Excel文件等,实现查询和报表信息的保留,数据导出通过导出单元实现。具体是:
用户发起导出请求,客户端将请求发到报表服务器;
报表服务器调用导出单元执行客户端的请求,生成导出文件,并返回给客户端。
同时,数据缓存也为数据的二次处理提供了支持,通过对数据缓存内的数据进行排序、过滤、汇总等操作,生成新的数据缓存,用户可以根据自己的需要,重新处理数据,为数据的挖掘和分析提供了初步的支持。
二次处理功能由二次处理单元实现,可以通过插件的形式增加新的处理方式,运行流程如下:
用户发起二次处理请求;
报表服务器接受请求,根据二次处理请求内容执行对应的二次处理单元,同时将数据缓存和二次处理请求内容作为二次处理单元的执行参数;
报表服务器接受处理以后的数据缓存,将处理结果返回客户端显示。
请参阅图9,是本发明应用于证券公司的一个实例。证券公司的内控平台的查询和报表框架的具体实现如下:
内控平台的中心数据库210采用MS SQL Server 2000或Oracle 9i数据库系统,数据中心211的业务数据和元数据库212的元数据存放到同一个数据库实例中,但逻辑上是分离的,通过编写不同的元数据载入单元可以支持文本文件、XML等其他类型的存储方式。
目前内控平台支持的业务数据有经纪业务数据、财务数据、法人清算数据、交易所数据、银行对帐数据几类,每类之中不同版本的业务系统还分不同结构的数据,通过查询和报表框架将这些异构的数据以统一的结果形式展现给用户。
中间件服务器220采用恒生组件服务器,查询和报表框架的业务功能通过插件icp_cxkj.dll提供,由恒生组件服务器负责数据库连接和通讯。本方案的架构同时也适合其他商业中间件产品,如各种J2EE,.NET的中间件服务器。
应用路由服务器230也采用恒生组件服务器,负责功能请求和应答的转发。同时,也适合其他商业中间件产品。
内控平台的客户端部分采用的是B/S结构,包括WEB服务器240和浏览器250。
WEB服务器240采用Servlet/JSP的架构,由于B/S结构的特殊性质,WEB服务器240必然包含界面展示的处理,因此WEB服务器240内部分主要分为业务逻辑层241和界面层242两部分,业务逻辑层241负责实现报表服务器260的功能,主要由一组Java类来实现,对界面层开放Servlet作为接口;界面层242由一组JSP组成,负责条件、结果等交互页面的生成。
客户端采用浏览器250,使用Java Script实现界面层剩余部分的交互功能,主要是一些界面控件的功能实现。
需要说明的是,当采用专用客户端270时可以直接同报表服务器260通讯,则业务逻辑层由报表服务器260实现,界面层完全由专用客户端270实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

一种关系型数据库系统及其查询和报表方法.pdf_第1页
第1页 / 共29页
一种关系型数据库系统及其查询和报表方法.pdf_第2页
第2页 / 共29页
一种关系型数据库系统及其查询和报表方法.pdf_第3页
第3页 / 共29页
点击查看更多>>
资源描述

《一种关系型数据库系统及其查询和报表方法.pdf》由会员分享,可在线阅读,更多相关《一种关系型数据库系统及其查询和报表方法.pdf(29页珍藏版)》请在专利查询网上搜索。

本发明公开一种关系型数据库系统,包括数据中心,用于存储数据对象;元数据库,用于存储元数据;客户端;报表服务器,连接该客户端;中间件服务器,连接该数据中心、元数据库和报表服务器;其中,客户端实现查询和报表请求的输入,报表服务器根据所述请求发起元数据查找请求,中间件服务器根据元数据查找请求从元数据库获取元数据;报表服务器发送元数据到客户端;客户端根据元数据实现查询和报表的条件的输入,报表服务器根据元数。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1