数据查询装置和方法
【技术领域】
[0001] 本发明涉及数据库领域,更具体地涉及一种数据查询装置和方法。
【背景技术】
[0002] 在大数据时代,大部分应用程序都会涉及多个不同数据源的数据。当应用程序底 层有多个数据库时,如果用户想要获得满足某种条件的数据,他/她需要根据该条件编写 不同的查询语句在底层所有数据源中一一查询。这种情况给用户增加了许多麻烦。数据 整合是一种为多个数据源(通常是数据库)提供统一操作接口的方法。一个典型的数据 整合系统包含一个虚拟中间表头和每个实体数据库表头到该虚拟中间表头的映射。表头 (schema)指一系列属性的集合。用户可根据统一的中间表头编写查询语句,而不是为每一 个数据库表编写查询语句。
[0003] 层次虚拟表头技术为不同领域的表头生成层次虚拟表头,其中下层表头所表示的 领域是上层表头所表示领域的子领域,从而针对上层表头的一个更为抽象的查询可以替代 针对下层表头的多个查询。然而传统的查询转换方法中没有提到如何为针对层次虚拟表头 的查询进行转换。
[0004] 因此,需要一种针对层次虚拟表头进行数据查询的装置和方法。
【发明内容】
[0005] 在下文中给出关于本发明的简要概述,以便提供关于本发明的某些方面的基本理 解。应当理解,这个概述并不是关于本发明的穷举性概述。它并不是意图确定本发明的关 键或重要部分,也不是意图限定本发明的范围。其目的仅仅是以简化的形式给出某些概念, 以此作为稍后论述的更详细描述的前序。
[0006] 本发明的一个主要目的在于,提供一种数据查询装置,包括:语义映射表生成单 元,被配置成基于层次虚拟表头中的属性生成语义映射表;查询语句扩展单元,被配置成根 据语义映射表将用户输入的查询语句扩展为一个或多个查询语句;相似度计算单元,被配 置成计算扩展的每个查询语句与用户输入的查询语句之间的相似度;以及查询语句集合构 成单元,被配置成选择相似度大于预定阈值的查询语句构成查询语句集合进行查询。
[0007] 根据本发明的一个方面,提供了一种数据查询方法,包括:基于层次虚拟表头中的 属性生成语义映射表;根据语义映射表将用户输入的查询语句扩展为一个或多个查询语 句;计算扩展的每个查询语句与用户输入的查询语句之间的相似度;以及选择相似度大于 预定阈值的查询语句构成查询语句集合进行查询。
[0008] 另外,本发明的实施例还提供了用于实现上述方法的计算机程序。
[0009] 此外,本发明的实施例还提供了至少计算机可读介质形式的计算机程序产品,其 上记录有用于实现上述方法的计算机程序代码。
[0010] 通过以下结合附图对本发明的最佳实施例的详细说明,本发明的这些以及其他优 点将更加明显。
【附图说明】
[0011] 参照下面结合附图对本发明实施例的说明,会更加容易地理解本发明的以上和其 它目的、特点和优点。附图中的部件只是为了示出本发明的原理。在附图中,相同的或类似 的技术特征或部件将采用相同或类似的附图标记来表示。
[0012] 图1示出了根据本发明的一个实施例进行数据查询的系统结构;
[0013] 图2 7K出了层次虚拟表头的一个7K意图;
[0014] 图3示出了根据本发明的一个实施例的数据查询方法的流程图;
[0015] 图4是示出根据本发明的一个实施例的数据查询装置400的示例性配置的框图; 以及
[0016] 图5是示出可以用于实施本发明的数据查询装置和方法的计算设备的示例性结 构图。
【具体实施方式】
[0017] 下面参照附图来说明本发明的实施例。在本发明的一个附图或一种实施方式中描 述的元素和特征可以与一个或更多个其它附图或实施方式中示出的元素和特征相结合。应 当注意,为了清楚的目的,附图和说明中省略了与本发明无关的、本领域普通技术人员已知 的部件和处理的表示和描述。
[0018] 本发明提出一种为层次虚拟表头进行查询转换的方法。层次虚拟表头由不同领域 的数据库表头生成。给定任意一个针对层次虚拟表头中任一表头的查询语句,本发明中的 方法可将该查询转换为一个或多个针对源表头的查询语句,从而进行结果查询。具体地,首 先为查询语句中的条件部分设计了一个属性和操作符(谓词)的语义映射表;其次定义了 一个用于描述查询语句两两相似程度的相似度度量公式,该公式同时考虑了查询子句之间 的相似度和表头之间的相似度;最后设计了一个递归函数用于将任意一个查询语句向下转 换为针对源表头的查询语句集合。
[0019] 下面结合附图详细说明根据本发明的一个实施例的数据查询方法。
[0020] 图1显示了根据本发明的一个实施例进行数据查询的系统结构。在传统的小规模 数据库场景中,用户只需在一个数据库表中提交查询就可以得到所需数据。这种情形下,仅 需图1中的步骤1、4和5。当数据空间包含许多数据库时,图1中的步骤2即可为所有数据 源提供统一的虚拟数据库表头,而步骤3用于将用户提交的查询转化为符合虚拟中间表头 的查询格式。
[0021] 本发明主要处理图1中的步骤3。首先,会创建一个用于映射查询语句中条件部分 的属性和操作符的语义映射表;然后计算根据语义映射表扩展的查询与用户输入的查询之 间的相似度;最后保留语义最相似的扩展查询。
[0022] 图2示出了层次虚拟表头的一个示意图。本发明设计了一种为层次虚拟表头进行 查询转换的方法,此外,该方法也可以对自然形成的层次表头进行查询转换。图2显示了不 同数据源的表头层级关系。
[0023] 图2中左下角的部分表头,即"Article"部分的表头表示如下:
[0024] 表头 L (Article:No.,Title, Domain, Author, Year, Publication, Volume, Pages)
[0025] 表头 2. (Conference paper:Paper No.,Title, Key word, Author list, Conferen ce, Volume, Pages, Year)
[0026] 表头 3. (Journal paper:No. , Title, Domain, Author 1, Author2, Journal, Year)
[0027] 表头 4. (Patent:Application No.,Title, field, Application date, Inventor) 〇
[0028] 图3示出了根据本发明的一个实施例的数据查询方法的流程图,下面结合图3详 细说明根据本发明的一个实施例的数据查询方法。
[0029] 首先,在步骤S302中,基于层次虚拟表头中的属性生成语义映射表。
[0030] 在一个实施例中,基于层次虚拟表头中的属性生成语义映射表包括:基于层次虚 拟表头中不同层的具有父子关系的表头的属性之间的语义对应关系以及具有同一父表头 的同一层的表头的属性之间的语义对应关系来生成语义映射表。
[0031 ] 根据本发明的一个实施例的数据查询方法,先为具有父子关系的表头和具有相同 父表头的兄弟表头生成语义映射关系,然后创建属性和操作符的语义映射表。
[0032] 本领域技术人员可以理解,上述表头1是根据层次虚拟表头生成方法由表头2、3 和4生成的。在生成层次虚拟表头的过程中,可以利用本体知识获得父子表头属性之间以 及兄弟表头属性之间的语义对应关系。
[0033] 本发明考虑4种类型的对应关系:
[0034] isEquivalentTo (=)(等于)
[0035] isCloseTo (~)(近似)
[0036] isSubConceptOf ( c )(包含于)
[0037] isSuperConceptOf ()(包含)。
[0038] 对这四种对应关系,本发明总结出三个特征:
[0039] 特征 1、对于 isEquivalentTo (=)和 isSubConceptOf (.、二),表头中的一个属性 只能语义相似于另一个表头的一个属性;
[0040] 特征2、对于isCloseTo(~)和isSuperConceptOf (.3),表头中的一个属性可以 语义相似于另一个表头的一个或多个属性;
[0041] 特征3、来自不同表头的两个属性只能有一种语义相似关系。
[0042] 根据这些特征,可以设计得到本发明的针对查询语句条件部分的属性和操作符的 一个示例性语义映射表,如表1所示。
[0043]
[0044]
[0045] 表 1
[0046] 表1显示的是字符串属性的语义映射表的一个例子,表1的第一行列出了 6种操 作符(谓词):等于、不等于、LIKE、N0T LIKE、IN和NOT IN。第2行和第5行由特征1和3 设计得到,而第3、4、6和7行由特征2和3设计得到。第4行和第7行中的"a"可以语义 相似于两个以上的其他属性。第一行显示了会出现在查询语句条件部分的操作符。"a"和 " b "表示来自不同表头的两个属性。" X "表示一个常量字符串。
[0047] 表1主要显示了字符串类别属性的映射,但其可被扩展为处理数字和日期等属性 的映射。
[0048] 下面的表2示出了数值属性的语义映射表的一个例