一种数据查询方法和系统技术方案

技术编号:9668081 阅读:108 留言:0更新日期:2014-02-14 06:40
本发明专利技术公开了一种数据查询方法和系统,首先抽取业务系统中的各项维度,建立描述所述业务系统的业务数据的若干逻辑表,并建立各逻辑表与所述的维度之间的关联关系;然后根据业务系统的物理表,建立物理表与各逻辑表之间的映射关系,并根据逻辑表以及按规则定义的逻辑数据查询语法,编写逻辑查询语句,最后依据物理表与逻辑表之间的映射关系,将逻辑查询语句转化为结构化查询语句,并将结构化查询语句在数据库中执行完成业务数据的查询。通过本发明专利技术所述的方法和系统,能够降低数据表理解及书写的复杂度,改善业务系统的数据结构的可理解性。

【技术实现步骤摘要】
一种数据查询方法和系统
本专利技术涉及数据存储及查询
,具体涉及一种新的数据查询方法和系统。
技术介绍
RDB (Relational Database,关系数据库)及其上的 SQL (Structured QueryLanguage,结构化查询语言)是当前信息系统中应用最广泛的数据存储与查询方案。RDB将数据存储于若干物理表(关系数据库中存放数据的基本单元,有若干数据结构相同的记录构成,上下文清晰时将简称表)中,每个表由若干数据结构相同的记录构成,记录的属性称为字段。其中某些字段并指定为表的主键,要求这些字段(组)的取值在表内记录中唯一(即没有两条记录在这些字段上的取值相同),这样可以用这组字段值为唯一确定一条记录。当某个表的记录要引用另一个表的记录时(如员工表的所在部门字段将引用部门表中的记录),则建立引用表到被引用表的外键,引用表中每条记录的某些称为外键的字段取值为被引用表的某记录的主键。一个表可以建立多个引用其它表的外键,还可以建立引用本表的外键(如人员表中的配偶字段仍然引用人员表中的记录),也可能针对同一个被引用表建立多个关联(如人员表中的出生地区和工作地区均引用地区表)。一个业务系统的数据可能有多个表构成,这些表之间均可能有关联,有时关联还不止一个,甚至还有与本表自己的关联。这样,在RDB中,这些表将构成一个网状结构,N个表之间的关联数量是N2级别的,很不利于应用开发人员理解业务数据的体系结构。同时,表与表之间的耦合度也非常高,导致应用程序的局部维护修改都很困难。当要取出多个有关联表中的记录时,SQL采用连接语法来书写,其基本原理可以理解为将多个表中的记录先做完全叉乘(即笛卡尔积),再使用引用表的外键与被引用表的外键相等的过滤条件将叉乘出来的不必要的记录去除,从而得到最后的结果。如果有涉及N个表,则两两之间均有可能有关联,则可能书写出来的连接过滤条件会有N* (N-1) /2个,复杂度也是N2级别的,导致书写非常困难。
技术实现思路
针对现有技术中存在的缺陷,本专利技术的目的在于提供一种数据查询方法及系统,降低数据表理解及书写的复杂度,改善业务系统的数据结构的可理解性。为实现上述目的,本专利技术采用的技术方案如下:一种数据查询方法,包括以下步骤:( I)抽取业务系统中的各项维度;(2)建立所述业务系统的若干逻辑表,并建立各逻辑表与所述的维度之间的关联关系;所述的逻辑表用于描述业务系统的业务数据;(3)根据业务系统的物理表,建立物理表与各逻辑表之间的映射关系;所述的物理表用于存储业务系统的业务数据;(4)根据逻辑表以及按规则定义的逻辑数据查询语法,编写逻辑查询语句LSQL ;(5)依据物理表与逻辑表之间的映射关系,将逻辑查询语句LSQL转化为结构化查询语句SQL,并将SQL语句在数据库中执行完成业务数据的查询。进一步,如上所述的一种数据查询方法,步骤(I)中,在抽取业务系统中的各项维度时,还包括抽取各项维度所包含的层次,并确定各项维度的层次之间的计算关系;所述的各项维度的层次包括基础层和汇总层;所述的汇总层是指该层次能够由其它一个或多个基础层次计算出来。进一步,如上所述的一种数据查询方法,步骤(2)中,所述的逻辑表包括若干逻辑字段,建立逻辑表与所述的维度之间的关联关系的具体方式为:将逻辑表的外键设置为指向某个维度或者某个维度的层次的字段,逻辑表的主键为逻辑表中一个取值唯一的字段或者多个取值唯一的字段组。进一步,如上所述的一种数据查询方法,建立物理表与逻辑表之间的映射关系的具体方式为:a)在物理表中选择与每个逻辑表相对应的基表,逻辑表中的每个逻辑字段都能够由所述的基表计算而来;b)建立逻辑表的主键与基表主键之间的映射关系;c)建立逻辑表中非主键逻辑字段与基表字段之间的计算关系。进一步,如上所述的一种数据查询方法,步骤a)中,根据逻辑表所描述的业务数据的数据范围确定与其对应的基表。再进一步,如上所述的一种数据查询方法,步骤c)中,所述的逻辑表中非主键逻辑字段与基表字段之间的计算关系是指逻辑表中的每个逻辑字段由基表字段构成的表达式表不。更进一步,如上所述的一种数据查询方法,步骤(5)中,将LSQL查询语句转化为SQL语句的具体方式为:根据所述的逻辑数据查询语句LSQL获取语句中的业务数据项,根据所述的业务数据项以及逻辑表与物理表之间的映射关系,将LSQL语句转化成基于物理表的SQL查询语句。一种数据查询系统,包括:维度抽取模块,用于抽取业务系统中的各项维度;逻辑表建立模块,建立所述业务系统的若干逻辑表,并建立各逻辑表与所述的维度之间的关联关系;所述的逻辑表用于描述业务系统的业务数据;映射关系建立模块,用于根据业务系统的物理表,建立物理表与各逻辑表之间的映射关系;逻辑查询语句设计模块,用于根据逻辑表以及按规则定义的逻辑数据查询语法,编写逻辑查询语句LSQL ;数据查询模块,用于依据物理表与逻辑表之间的映射关系将逻辑查询语句LSQL语句转化为结构化查询语句SQL,并将SQL语句在数据库中执行以完成业务数据的查询。进一步,如上所述的一种数据查询系统,所述的维度抽取模块还用于抽取各项维度所包含的层次,并确定各项维度的层次之间的计算关系;所述的各项维度的层次包括基础层和汇总层;所述的汇总层是指该层次能够由其它一个或多个基础层次计算出来。进一步,如上所述的一种数据查询系统,所述的逻辑表建立模块包括:外键设置单元,用于设置逻辑表的外键,逻辑表的外键设置为指向某个维度或者某个维度的层次的字段;主键设置单元,用于设置逻辑表的主键,逻辑表的主键为逻辑表中一个取值唯一的字段或者多个取值唯一的字段组。再进一步,如上所述的一种数据查询系统,所述的映射关系建立模块包括:基表选择单兀,用于在物理表中选择与每个逻辑表相对应的基表,逻辑表中的每个逻辑字段都能够由所述的基表计算而来;主键关系建立单兀,用于建立逻辑表的主键与基表主键之间的映射关系;字段关系建立单元,用于建立逻辑表中非主键逻辑字段与基表字段之间的计算关系O更进一步,如上所述的一种数据查询系统,所述的数据查询模块包括:语句转换单元,用于依据物理表与逻辑表之间的映射关系将逻辑查询语句LSQL语句转化为结构化查询语句SQL语句,转换的具体方式为:根据所述的逻辑数据查询语句LSQL获取语句中的业务数据项,根据所述的业务数据项以及逻辑表与物理表之间的映射关系,将LSQL语句转化成基于物理表的SQL查询语句;查询单元,用于将SQL语句在数据库中执行完成业务数据的查询。本专利技术的有益效果在于:I)将关系数据库RDB中网状的数据模型改造成总线结构,即每个逻辑表均与事先抽取出来的维度关联,而逻辑表之间不再有关联。关联数量与逻辑表数量匹配,复杂度是N级别的。这将极大改善业务系统的数据结构可理解性。2 )由于逻辑表之间不再有关联,从而降低表之间的耦合度,这样可以很方便地进行系统的局部修改和升级及添加、删除某个子系统。3)可以通过在逻辑模型的基础上设计LSQL语法(基于本专利技术所述方法及系统的逻辑数据查询语言),在书写多表关联查询时也只需要针对汇总维度对齐,而无须关心表之间的关联,使书写复杂度也降成N级别。4)对于单外键指向的附表引用,LSQL可以简单地使用对象方式引用,将这种本文档来自技高网
...

【技术保护点】
一种数据查询方法,包括以下步骤:(1)抽取业务系统中的各项维度;(2)建立所述业务系统的若干逻辑表,并建立各逻辑表与所述的维度之间的关联关系;所述的逻辑表用于描述业务系统的业务数据;(3)根据业务系统的物理表,建立物理表与各逻辑表之间的映射关系;所述的物理表用于存储业务系统的业务数据;(4)根据逻辑表以及按规则定义的逻辑数据查询语法,编写逻辑查询语句LSQL;(5)依据物理表与逻辑表之间的映射关系,将逻辑查询语句LSQL转化为结构化查询语句SQL,并将SQL语句在数据库中执行完成业务数据的查询。

【技术特征摘要】
1.一种数据查询方法,包括以下步骤: (1)抽取业务系统中的各项维度; (2)建立所述业务系统的若干逻辑表,并建立各逻辑表与所述的维度之间的关联关系;所述的逻辑表用于描述业务系统的业务数据; (3)根据业务系统的物理表,建立物理表与各逻辑表之间的映射关系;所述的物理表用于存储业务系统的业务数据; (4)根据逻辑表以及按规则定义的逻辑数据查询语法,编写逻辑查询语句LSQL; (5)依据物理表与逻辑表之间的映射关系,将逻辑查询语句LSQL转化为结构化查询语句SQL,并将SQL语句在数据库中执行完成业务数据的查询。2.如权利要求1所述的一种数据查询方法,其特征在于,步骤(1)中,在抽取业务系统中的各项维度时,还包括抽取各项维度所包含的层次,并确定各项维度的层次之间的计算关系;所述的各项维度的层次包括基础层和汇总层;所述的汇总层是指该层次能够由其它一个或多个基础层次计算出来。3.如权利要求1或2所述的一种数据查询方法,其特征在于,步骤(2)中,所述的逻辑表包括若干逻辑字段,建立逻辑表与所述的维度之间的关联关系的具体方式为: 将逻辑表的外键设置为指向某个维度或者某个维度的层次的字段,逻辑表的主键为逻辑表中一个取值唯一的字段或者多个取值唯一的字段组。4.如权利要求3所述的一种数据查询方法,其特征在于,建立物理表与逻辑表之间的映射关系的具体方式为: a)在物理表中选择与每个逻辑表相对应的基表,逻辑表中的每个逻辑字段都能够由所述的基表计算而来; b)建立逻辑表的主键与基表主键之间的映射关系; c)建立逻辑表中非主键逻辑字段与基表字段之间的计算关系。5.如权利要求4所述的一种数据查询方法,其特征在于,步骤a)中,根据逻辑表所描述的业务数据的数据范围确定与其对应的基表。6.如权利要求5所述的一种数据查询方法,其特征在于,步骤c)中,所述的逻辑表中非主键逻辑字段与基表字段之间的计算关系是指逻辑表中的每个逻辑字段由基表字段构成的表达式表不。7.如权利要求1至6之一所述的一种数据查询方法,其特征在于,步骤(5)中,将LSQL查询语句转化为SQL语句的具体方式为: 根据所述的逻辑数据查询语句LSQL获取语句中的业务数据项,根据所述的业务数据项以及逻辑表与物理表之间的映射关系,将...

【专利技术属性】
技术研发人员:蒋步星
申请(专利权)人:北京润乾信息系统技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1