CN104424190A - 整合多个数据库的方法及装置 - Google Patents
整合多个数据库的方法及装置 Download PDFInfo
- Publication number
- CN104424190A CN104424190A CN201310364263.6A CN201310364263A CN104424190A CN 104424190 A CN104424190 A CN 104424190A CN 201310364263 A CN201310364263 A CN 201310364263A CN 104424190 A CN104424190 A CN 104424190A
- Authority
- CN
- China
- Prior art keywords
- gauge outfit
- similarity
- gauge
- virtual
- cluster
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/256—Integrating or interfacing systems involving database management systems in federated or virtual databases
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种整合多个数据库的方法及装置。该方法包括:基于多个数据库的多个实体表头生成多层虚拟表头;其中,每一层表头的每一个属性对应于下一层表头的至少一个属性。本申请中,通过虚拟表头将多个数据库关联起来,从而可以利用虚拟表头统一实现对多个数据库的访问。而且,由于虚拟表头为多层的虚拟表头,通过表头分层对应方式对于特定关键词可以仅搜索部分数据库而不是全部数据库,减少搜索量。
Description
技术领域
本申请涉及整合多个数据库的方法及装置。
背景技术
目前,大部分应用程序涉及多个不同数据源的数据。当应用程序底层有多个数据库时,如果用户想要获得满足某种条件的数据,则需要根据该条件编写不同的查询语句在底层所有数据库中一一查询。这种情况给用户增加了许多麻烦。
发明内容
本申请的实施方式提供了整合多个数据库的方法及装置,能够使用户根据将统一的虚拟表头编写查询语句,使用方便。
本申请的一个实施方式提供一种整合多个数据库的方法,包括:基于多个数据库的多个实体表头生成多层虚拟表头;其中,每一层表头的每一个属性对应于下一层表头的至少一个属性。
本申请的另一实施方式提供一种整合多个数据库的装置,包括:虚拟表头生成单元,被配置为基于所述多个数据库的多个实体表头生成多层虚拟表头;其中,每一层表头的每一个属性对应于下一层表头的至少一个属性。
本申请中,通过虚拟表头将多个数据库关联起来,从而可以利用虚拟表头统一实现对多个数据库的访问。而且,虚拟表头为多层的虚拟表头,通过表头分层对应方式对于特定关键词可以仅搜索部分数据库而不是全部数据库,减少搜索量。
附图说明
参照下面结合附图对本申请实施方式的说明,会更加容易地理解本申 请的以上和其它目的、特点和优点。附图以示例而非限制性的方式来说明本申请。在附图中,相同的或类似的技术特征或部件将采用相同或类似的附图标记来表示。
图1示意性示出本申请提供的对表头进行聚类的示例的流程图;
图2示意性示出对表头进行一次聚类的过程;
图3示意性示出本申请提供的整合多个数据库的装置的结构的框图;
图4示意性示出本申请提供的多个数据库的查询装置的结构的框图;
图5示意性示出本申请提供的用以实施本申请的装置和方法的计算设备的结构图。
具体实施方式
现在参考附图来更加详细地描述本申请的实施方式。示例实施方式的提供是为了使本申请更加详尽,并且向本领域技术人员充分地传达保护范围。阐述了众多的特定细节如特定部件、装置的例子,以提供对本申请的实施方式的详尽理解。对于本领域技术人员而言将会明显的是,示例实施方式可以用许多不同的形式来实施而不一定使用这些特定的细节,因此它们都不应当被解释为限制本申请的范围。另外,在本发明的一个附图或一种实施方式中描述的元素和特征可以与一个或更多个其它附图或实施方式中示出的元素和特征相结合。在某些示例实施方式中,为了清楚的目的,没有在附图和说明中详细地描述众所周知的过程、结构和技术。
下面参考附图结合具体实施方式按照本申请提供的多个数据库的整合方法、查询方法的顺序进行介绍。
整合多个数据库的方法
本申请提供一种整合多个数据库的方法,下面进行详细介绍。
出于数据查询的需要,每个数据库都会设置表头,本文中将该表头称作实体表头。例如用于存储职员信息的人力资源数据库可能会有一个包括人名、性别、职位等属性的实体表头,用于存储电影的数据库可能会有一个包括名称、导演、主演、国家等属性的实体表头。
在本文中,表头(包括上述实体表头和下文将描述的虚拟表头)不 仅包括一系列属性,例如上述人名、性别、职位或主演、国家等,还可以包括名称。本文中,表头名称可以是但不限于对应数据库的名称或者对应表格的名称。例如,假定上述人力资源数据库的实体表头属于名称为“职员表”的表格,则该实体表头的名称可以设置为“职员表”。
本实施方式中,基于多个数据库各自的实体表头对多个数据库进行整合,得到将多个数据库关联起来的虚拟表头。该虚拟表头是基于上述实体表头产生的表头,并且如上所述,虚拟表头也具有属性和名称,后文将介绍虚拟表头的属性和名称的产生。
本实施方式中,为了得到虚拟表头,首先需要计算各个实体表头之间的相似度。
实体表头的相似度可以利用各个实体表头的属性之间的相似性进行计算,也可以利用各个实体表头的名称之间的相似性进行计算,还可以结合各个实体表头的名称和属性之间的相似性进行计算。
对于表头的名称或属性的相似度的具体计算方式包括但不限于现有技术中的夹角余弦法等方式,本文对于具体计算方式不做限定。
当同时考虑表头的名称和属性的相似度时,还可以设置名称相似度和属性相似度之间的权重关系。例如,当易于根据表头名称区分不同领域的表头时,可以为表头名称的相似度设置较大的权重,反之可以为表头属性的相似度设置较大的权重。
例如,各个实体表头之间的相似度可以表示为下式(1):
其中,si与sj分别表示数据库实体表头,similarity(si,sj)表示实体表头si与sj之间的相似度。θ是一个预设参数,用于调整表头之间的名称相似度和属性相似度在表头之间的相似度中所占的比重,可以根据应用程序的不同设置不同的取值。si.name与sj.name分别表示表头的名称。si.A与sj.A分别代表表头si与sj的属性集合。sim(ax,ay)表示字符串ax和ay的相似度,该相似度可以是字符串的字面相似度或语义相似度。
根据上述方式计算得到多个数据库的实体表头的两两之间的相似度后,基于相似度对表头进行聚类。该聚类操作包括:将与一个表头的相似度大于阈值的另一个表头与该一个表头聚为一类;和/或将满足下述条 件的另一个表头与该一个表头聚为一类:在该一个表头与其他所有表头的相似度中,与该另一个表头的相似度最大;或者,在该另一个表头与其他所有表头的相似度中,与该一个表头的相似度最大。
上述聚类操作的具体实现可以有多种方式,例如,可以通过列表的形式将所有表头的两两之间的相似度列出,然后从列表中选择相似度大于阈值的两个表头进行聚类。此时,如果同一个表头与其他多个表头之间的相似度都大于阈值,则可以将该表头与其他多个表头聚为一类。或者,对于任一表头A,从表格中选择表头A对应的最大相似度x所对应的另一个表头B与表头A聚类。此时,如果该另一个表头B对应的最大相似度y大于x,还可以将该最大相似度y对应的另一表头C与表头B、或者表头A和B聚为一类。
应当理解,聚类操作包括但不限于上述提供的具体实现方式,还可以通过其他多种方式实现,例如下文将具体介绍的通过构建数学模型对表头进行聚类的方式。
通过上述方式进行聚类后,将具有较大相似度的表头聚类,得到多个类别的表头,其中每一个类别中可以包括多个表头,也可以仅包括单个表头,后一种情况下该单个表头与其他表头之间的相似度都较小。
但是,存在一种情况:一个表头与另一个表头的相似度满足聚类的条件,但是其取值相对于类别中其他相似度而言较小。例如,虽然两个表头之间的相似度S1,2大于阈值,但是均小于其他任何两个表头之间的相似度的例如1/50,则此时该相似度S1,2虽然大于阈值,但可能不适合与其他表头聚为一类。
因此,聚类时还可以进行如下操作:从一个聚类中去除满足下述条件的表头:其与该聚类中其他任何表头的相似度均低于阈值,和/或其与该聚类中其他任何表头的相似度与其他表头两两之间的相似度的差异达到预定程度。
通过上述聚类方式将多个数据库的实体表头进行聚类后,各个类别分别包括一个或多个实体表头。此时,对于各个类别的实体表头分别生成第一虚拟表头。
第一虚拟表头的属性根据其所对应的实体表头的属性得到,其具体实现可以根据实际需要灵活确定,本文对此不做限制。例如,对于某一类别的实体表头,可以将各个实体表头的相同属性进行合并,不同属性予以 保留,根据执行合并及保留处理后的属性得到第一虚拟表头的属性。
第一虚拟表头的名称根据其所对应的实体表头的名称得到,其具体实现包括但不限于:对于某一类别的实体表头,基于类标生成算法根据各个实体表头的名称生成第一虚拟表头的名称;或者基于实体表头的名称中出现次数或比例在阈值以上的名称生成第一虚拟表头的名称。
如果得到的第一虚拟表头为多个,则对该多个第一虚拟表头计算相似度。其中,该相似度计算方式与上述实体表头的相似度计算方式相同,只是用第一虚拟表头替换了实体表头。因此,此处对于多个第一虚拟表头的两两之间的相似度的计算不再赘述。
得到第一虚拟表头的两两之间的相似度以后,基于该相似度将相似度大的第一虚拟表头聚为一类。
其中,基于相似度进行聚类的处理与前述对多个实体表头进行聚类的处理相同,只是用第一虚拟表头代替了实体表头。因而,此处对于多个相似度的聚类处理不再赘述。
基于各个类别的第一虚拟表头分别生成第二虚拟表头。其中,与上述第一虚拟表头的名称和属性的产生类似,各个第二虚拟表头的名称和属性分别基于其所对应的各个第一虚拟表头的名称和属性。
如果第二虚拟表头的个数不为1,则可以再次根据第二虚拟表头进行聚类,生成更上层的中间层虚拟表头,直到得到的最上层虚拟表头的个数为1或者达到预定层数。
这样,基于多个数据库的实体表头,通过层层聚类,可以得到多层虚拟表头,每一层表头的每一个属性对应于下一层表头的至少一个属性。 对表头进行聚类的示例
本示例提供了根据上述整合方法通过构建数学模型对表头进行聚类的一种具体示例。如图1所示,包括如下步骤:
步骤S101,初始化α=初始值,S={s1,s2,…sn,…}(n为自然数),T=null(空)。
其中,α为表头去除参数,其初始值可以灵活设置,下文将介绍其具体应用。
S表示需要进行聚类的表头的集合,其中元素s1,s2,…sn,…表示各个表头(下文除非需要具体区分各个表头,将s1,s2,…sn,…统称为s)。
T表示聚类结果得到的表头的集合,初始为空。
步骤S102,根据式(1)计算各实体表头s之间的相似度similarity(si,sj),其中i,j为自然数。
步骤S103,以各实体表头为顶点两两相连构造加权图G(V,E,W)。
其中,V表示顶点集合,即表头集合,V=S。
E为连接任意两个顶点之间的边的集合,E={(si,sj)},此处,(si,sj)表示顶点si和sj之间的边。当且仅当两个顶点间的相似度大于0时两个顶点之间有边。
W为与各边对应的权重的集合,W={w(vi,vj)|w(vi,vj)=similarity(si,sj)},或者其中的w(vi,vj)=k*similarity(si,sj),k为预设系数。
步骤S104,对于图G中的每一对顶点si和sj,如果w(si,sj)小于以si为顶点的所有边的最大权值并且小于以sj为顶点的所有边的最大权值,则删除边(si,sj)。
步骤S105,对图G中每一个连通子图,根据α判断连通子图中的某条边的权值与其他边的权值的差异是否达到预设程度,如果判断结果为是则删除该边。
其中,连通子图指的是通过边连接的顶点与边一起构成的图形。
权值的差异的判断方式包括但不限于:用两条边的权重的比值与α比较来确定一条边的权值是否明显小于另一条边的权值。例如,如果w(vi,vj)/w(vi,vk)≥α,则去除w(vi,vk)。
步骤S106,清空变量S,使S=null(空)。
步骤S107,对于图G中的每一个连通子图,根据该连通子图中的所有实体表头生成一个虚拟表头t,并将生成的所有虚拟表头t加入T,得到T1={t1,t2,t3…tm}(m为自然数)。如果m不为1,则执行步骤S108,否则输出得到的虚拟表头T1。
其中,与上述s类似,在不需要具体区分t1,t2,t3…tm时,将t1,t2,t3…tm统称为t。
步骤S108,令S=T,得到新的变量S={t1,t2,t3…tm}(m为自然数), 并更新α。
此处,α的更新方式为:逐渐增大,增大的幅度可以根据实际需要设置,本文对此不做限制。
然后将步骤S102至S108中的s更新为t,根据步骤S102至S108重复执行处理,直到生成的虚拟表头的数量为1,则输出得到的多层虚拟表头T={T1,T2,…Tp,…}以及各层虚拟表头之间的对应关系,结束处理,其中p为自然数。
聚类过程的示例
本申请还提供了根据上述聚类示例进行聚类的过程的示例。如图2所示,假定此时的虚拟表头为t1至t6,其两两之间的相似度如图2中表格21所示。
根据虚拟表头t1至t6构造加权图22。如图所示,各个虚拟表头两两互联。
根据各边的权重对边进行第一次删除,假定得到图中23所示的两个连通子图。
根据同一连通子图中各边的权重进行比较,删除与其他边的权重的差异达到预定程度的边,得到如图中24所示的三个连通子图。
根据各个连通子图中的表头分别生成与该连通子图对应的一个虚拟表头,如图中25所示。
如果得到的虚拟表头的数量为1,则停止处理,否则计算该得到的多个虚拟表头两两之间的相似度,重复21至25的过程。
多个数据库的查询方法
本申请还提供一种多个数据库的查询方法,该查询方法基于上述整合多个数据库的多层虚拟表头进行。
也就是说,查询装置内存储了上述整合方法得到的多层虚拟表头、多个数据库各自的实体表头以及各层表头之间的映射关系,其中每一层表头的每一个属性对应于下一层表头的至少一个属性。
在接收到用户输入的第一查询请求后,查询装置根据各层表头之间 的映射关系,将该第一查询请求逐层向下转换为对下一层表头的查询请求,最终得到针对至少一个数据库的第二查询请求。
查询装置然后使用第二查询请求查询针对的至少一个目标数据库,并基于该至少一个目标数据库对第二查询请求的应答,生成对第一查询请求的应答。
此时,基于第一查询请求中的内容,查询操作可以逐层查询表头。其中,与该内容对应的底层虚拟表头(即其下层为数据库的实体表头),可能为单个,也可能为多个。而且,对于每一个最底层虚拟表头,其可能对应单个数据库,也可能对应多个数据库。因此,基于查询请求中的内容可能查询与一个虚拟表头对应的部分或全部数据库,也可能查询与多个虚拟表头对应的部分或全部数据库。
进一步的,用户在输入第一查询请求时可以选择多层虚拟表头中对应的某个或某些虚拟表头,从而使得查询装置可以根据用户选择的查询方式查询至少一个虚拟表头对应的部分数据库,和/或查询至少一个虚拟表头对应的所有数据库。也就是说,用户可以选择要输入查询内容的表头,例如用户可以选择顶层虚拟表头或者底层虚拟表头或者中间层虚拟表头,并且用户可以选择单个或多个虚拟表头,这样,基于用户对虚拟表头的选择,查询装置可能根据底层虚拟表头直接查询该一个或多个底层虚拟表头分别对应的部分或全部数据库,也可能根据顶层或中间层虚拟表头向下查询到底层虚拟表头,然后再根据查询到的底层虚拟表头对应的部分或全部数据库进行查询。
由于上述多层虚拟表头的生成是基于各个表头之间名称和属性的相似度进行的操作,因此,可以将同一领域的不同表头进行聚类。在上述查询过程中,查询装置可以据此只在第一查询请求对应的领域内进行查询而避免对所有数据库的检索。
整合多个数据库的装置
基于与上述整合多个数据库的方法相同的技术构思,本申请还提供一种实施上述方法的装置,如图3所示,包括:
虚拟表头生成单元30,被配置为基于多个数据库的多个实体表头生成多层虚拟表头。其中,每一层表头的每一个属性对应于下一层表头的至 少一个属性。
其中,该虚拟表头生成单元30可以包括聚类子单元31,其被配置为对多个数据库的多个实体表头聚类,对每一类实体表头生成一个中间层虚拟表头;对中间层虚拟表头进一步聚类,生成更上层的中间层虚拟表头,直到得到的最上层虚拟表头的个数为1或者达到预定层数。该预定层数为预先设定值,本文对此不做限制。
聚类子单元31可以基于多个表头两两之间的相似度对多个表头进行聚类。此时,虚拟表头生成单元30还可以包括相似度计算子单元32,其被配置为计算多个表头的两两之间的相似度,其中,基于两个表头的表头名称和属性计算两个表头之间的相似度。其中,各个虚拟表头的名称可以通过虚拟表头生成单元30包括的表头名称生成子单元33得到,表头名称生成子单元33被配置为基于下一层虚拟表头的名称或者实体表头的名称生成上一层虚拟表头的名称。各个虚拟表头的属性则可以通过下一层虚拟表头或实体表头的属性得到,例如通过对下一层表头的属性的合并得到上一层虚拟表头的属性。
进一步的,表头名称生成子单元33还可以被配置为:基于类标生成算法根据下一层虚拟表头的名称或者实体表头的名称生成表头名称;或者基于下一层虚拟表头的名称或者实体表头的名称中出现次数或比例在阈值以上的名称生成表头名称。
在进行聚类操作时,聚类子单元31还可以进一步被配置为:将与一个表头的相似度大于阈值的另一个表头与该一个表头聚为一类;和/或将满足下述条件的另一个表头与该一个表头聚为一类:在该一个表头与其他所有表头的相似度中,与该另一个表头的相似度最大;或者,在该另一个表头与其他所有表头的相似度中,与该一个表头的相似度最大。
考虑到存在一种情况:一个表头与另一个表头的相似度满足聚类的条件,但是其取值相对于类别中其他相似度而言较小。因此,聚类子单元31还可以进一步被配置为:从一个聚类中去除满足下述条件的表头:其与该聚类中其他任何表头的相似度均低于阈值,和/或其与该聚类中其他任何表头的相似度与其他表头两两之间的相似度的差异达到预定程度。
这样,基于多个数据库的实体表头,通过层层聚类,可以得到多层虚拟表头,每一层表头的每一个属性对应于下一层表头的至少一个属性。
该装置进行上述操作的细节可以参考上述对整合方法的描述,此处 不再赘述。
多个数据库的查询装置
基于与上述多个数据库的查询方法相同的技术构思,本申请还提供一种实施上述方法的装置,如图4所示,包括:查询接口41,用于接收第一查询请求;查询请求转换单元42,用于基于将所述多个数据库关联起来的多层虚拟表头以及多个数据库的实体表头和各层虚拟表头之间的映射关系,将所述第一查询请求逐层转换为针对下一层实体表头和/或虚拟表头的查询请求,得到针对至少一个数据库的第二查询请求;其中每一层表头的每一个属性对应于下一层表头的至少一个属性;查询单元43,用于使用所述第二查询请求查询所述至少一个目标数据库;以及查询应答单元44,用于基于所述至少一个目标数据库对所述第二查询请求的应答,生成对所述第一查询请求的应答。
在接收到例如由用户输入的第一查询请求后,查询单元43根据各层表头之间的映射关系,将该第一查询请求逐层向下转换为对下一层表头的查询请求,最终得到针对至少一个数据库的第二查询请求。此时,基于所述第一查询请求中的内容,查询单元43可以查询至少一个虚拟表头对应的部分数据库,和/或查询至少一个虚拟表头对应的所有数据库。
进一步的,用户在输入第一查询请求时可以选择多层虚拟表头中对应的某个或某些虚拟表头,相应地,查询单元43还被配置为可以根据用户选择的查询方式查询至少一个虚拟表头对应的部分数据库,和/或查询至少一个虚拟表头对应的所有数据库。
由于上述多层虚拟表头的生成是基于各个表头之间名称和属性的相似度进行的操作,因此,可以将同一领域的不同表头进行聚类。在上述查询过程中,查询装置可以据此只在第一查询请求对应的领域内进行查询而避免对所有数据库的检索。
该装置进行上述操作的细节可以参考上述对查询方法的描述,此处不再赘述。
用以实施本申请的装置和方法的计算设备
上述装置中各个组成模块、单元可通过软件、固件、硬件或其组合 的方式进行配置。配置可使用的具体手段或方式为本领域技术人员所熟知,在此不再赘述。在通过软件或固件实现的情况下,从存储介质或网络向具有专用硬件结构的计算机(例如图5所示的通用计算机1100)安装构成该软件的程序,该计算机在安装有各种程序时,能够执行各种功能等。
在图5中,中央处理单元(CPU)1101根据只读存储器(ROM)1102中存储的程序或从存储部分1108加载到随机存取存储器(RAM)1103的程序执行各种处理。在RAM1103中,也根据需要存储当CPU1101执行各种处理等等时所需的数据。CPU1101、ROM1102和RAM1103经由总线1104彼此连接。输入/输出接口1105也连接到总线1104。
下述部件连接到输入/输出接口1105:输入部分1106(包括键盘、鼠标等等)、输出部分1107(包括显示器,比如阴极射线管(CRT)、液晶显示器(LCD)等,和扬声器等)、存储部分1108(包括硬盘等)、通信部分1109(包括网络接口卡比如LAN卡、调制解调器等)。通信部分1109经由网络比如因特网执行通信处理。根据需要,驱动器1110也可连接到输入/输出接口1105。可拆卸介质1111比如磁盘、光盘、磁光盘、半导体存储器等等根据需要被安装在驱动器1110上,使得从中读出的计算机程序根据需要被安装到存储部分1108中。
在通过软件实现上述系列处理的情况下,从网络比如因特网或存储介质比如可拆卸介质1111安装构成软件的程序。
本领域的技术人员应当理解,这种存储介质不局限于图10所示的其中存储有程序、与设备相分离地分发以向用户提供程序的可拆卸介质1111。可拆卸介质1111的例子包含磁盘(包含软盘(注册商标))、光盘(包含光盘只读存储器(CD-ROM)和数字通用盘(DVD))、磁光盘(包含迷你盘(MD)(注册商标))和半导体存储器。或者,存储介质可以是ROM1102、存储部分1108中包含的硬盘等等,其中存有程序,并且与包含它们的设备一起被分发给用户。
本申请还提出存储有机器可读取的指令代码的程序产品。所述指令代码由机器读取并执行时,可执行上述根据本申请任一实施方式的方法或方法中的部分处理。
相应地,用于承载上述存储有机器可读取的指令代码的程序产品的存储介质也包括在本发明的公开中。所述存储介质包括但不限于软盘、光盘、磁光盘、存储卡、存储棒等等。
应当注意,本文中所使用的术语仅用于描述具体的实施方式的目的,而非意在限制本申请。本文中所使用的单数形式的“一个”和“该(the)”意在还包括复数形式,除非上下文清楚地指出不同含义。还应当理解,术语“包括”在本说明书中使用时指所说明的特征、整体、操作、步骤、元件和/或部件的存在,但是不排除一个或更多个其他特征、整体、操作、步骤、元件、部件和/或其组合的存在或添加。
权利要求中的相应结构、材料、动作和以“装置或者步骤加功能”定义的要素的所有等同形式意在包括用于结合其他要求保护的要素来执行功能的任意结构、材料或动作。对本申请的描述是用于说明和描述的目的,而非意在以所公开的形式来穷举或限制本申请。本领域技术人员可以在不偏离本申请的范围和精神的情况下想到对本申请的很多修改和变化。所选择和描述的实施方式是为了最佳地解释本申请的原理和实际应用,并使得本领域的其他技术人员能够针对具有适于所想到的具体用途的各种修改的各种实施方式来理解本申请。
通过上述的描述,本发明的实施方式提供了以下的技术方案。
附记1.一种查询多个数据库的装置,包括:
查询接口,用于接收第一查询请求;
查询请求转换单元,用于基于将所述多个数据库关联起来的多层虚拟表头以及多个数据库的实体表头和各层虚拟表头之间的映射关系,将所述第一查询请求逐层转换为针对下一层实体表头和/或虚拟表头的查询请求,得到针对至少一个数据库的第二查询请求;其中每一层表头的每一个属性对应于下一层表头的至少一个属性;
查询单元,用于使用所述第二查询请求查询所述至少一个目标数据库;
查询应答单元,用于基于所述至少一个目标数据库对所述第二查询请求的应答,生成对所述第一查询请求的应答。
附记2.根据附记1所述的装置,其中,所述查询单元被配置为:基于所述第一查询请求中的内容,查询至少一个虚拟表头对应的部分数据库,和/或查询至少一个虚拟表头对应的所有数据库。
附记3.根据附记1所述的装置,还包括:查询方式选择单元,被配置为接收对查询方式的选择;
所述查询单元被配置为:基于所述查询方式选择单元选择的查询方式,查询至少一个虚拟表头对应的部分数据库,和/或查询至少一个虚拟表头对应的所有数据库。
附记4.一种查询多个数据库的方法,包括:
接收第一查询请求;
基于将所述多个数据库关联起来的多层虚拟表头、多个数据库的实体表头和各层虚拟表头之间的映射关系,将所述第一查询请求转换为针对下一层实体表头和/或虚拟表头的查询请求,得到针对至少一个数据库的第二查询请求;其中每一层表头的每一个属性对应于下一层表头的至少一个属性;
使用所述第二查询请求查询所述至少一个目标数据库;
基于所述至少一个目标数据库对所述第二查询请求的应答,生成对所述第一查询请求的应答。
附记5.根据附记4所述的方法,其中,使用所述第二查询请求查询所述至少一个目标数据库包括:
基于所述第一查询请求中的内容,查询至少一个虚拟表头对应的部分数据库,和/或查询至少一个虚拟表头对应的所有数据库。
附记6.根据附记4所述的方法,进一步包括:接收查询方式的选择,并基于所述选择的查询方式,查询至少一个虚拟表头对应的部分数据库,和/或查询至少一个虚拟表头对应的所有数据库。
附记7.一种整合多个数据库的方法,包括:
基于多个数据库的多个实体表头生成多层虚拟表头;
其中,每一层表头的每一个属性对应于下一层表头的至少一个属性。
附记8.根据附记7所述的方法,其中,基于多个数据库的实体表头生成多层虚拟表头包括:
对所述多个数据库的多个实体表头聚类,对每一类实体表头生成一个中间层虚拟表头;
对中间层虚拟表头进一步聚类,生成更上层的中间层虚拟表头,直到 得到的最上层虚拟表头的个数为1或者达到预定层数。
附记9.根据附记8所述的方法,其中,对表头进行聚类包括:
计算所述多个表头的两两之间的相似度;
基于所述相似度对表头聚类。
附记10.根据附记9所述的方法,其中,计算所述多个表头的两两之间的相似度包括:
基于两个表头的表头名称和属性计算两个表头之间的相似度,
其中,所述表头名称基于其对应的下一层虚拟表头或者实体表头的名称生成。
附记11.根据附记10所述的方法,其中,所述表头名称基于其对应的下一层虚拟表头的名称或者实体表头的名称生成包括:
基于类标生成算法根据下一层虚拟表头或者实体表头的名称生成所述表头名称;或者
基于下一层虚拟表头或者实体表头的名称中出现次数或比例在阈值以上的名称生成所述表头名称。
附记12.根据附记9所述的方法,其中,基于所述相似度对表头聚类包括:
将与一个表头的相似度大于阈值的另一个表头与该一个表头聚为一类;和/或
将满足下述条件的另一个表头与该一个表头聚为一类:在该一个表头与其他所有表头的相似度中,与该另一个表头的相似度最大;或者,在该另一个表头与其他所有表头的相似度中,与该一个表头的相似度最大。
附记13.根据附记9或12所述的方法,其中,所述聚类进一步包括:
从一个聚类中去除满足下述条件的表头:
其与该聚类中其他任何表头的相似度均低于阈值,和/或其与该聚类中其他任何表头的相似度与其他表头两两之间的相似度的差异达到预定程度。
附记14.一种整合多个数据库的装置,包括:
虚拟表头生成单元,被配置为基于所述多个数据库的多个实体表头生 成多层虚拟表头;
其中,每一层表头的每一个属性对应于下一层表头的至少一个属性。
附记15.根据附记14所述的装置,其中所述虚拟表头生成单元包括:
聚类子单元,被配置为对所述多个数据库的多个实体表头聚类,对每一类实体表头生成一个中间层虚拟表头;对中间层虚拟表头进一步聚类,生成更上层的中间层虚拟表头,直到得到的最上层虚拟表头的个数为1或者达到预定层数。
附记16.根据附记15所述的装置,所述虚拟表头生成单元还包括:相似度计算子单元,被配置为计算所述多个表头的两两之间的相似度,其中,基于两个表头的表头名称和属性计算两个表头之间的相似度;
所述聚类子单元进一步被配置为:基于所述相似度对表头聚类。
附记17.根据附记16所述的装置,其中,所述虚拟表头生成单元还包括:表头名称生成子单元,被配置为基于下一层虚拟表头的名称或者实体表头的名称生成上一层虚拟表头的名称。
附记18.根据附记17所述的装置,其中,所述表头名称生成子单元进一步被配置为:
基于类标生成算法根据下一层虚拟表头的名称或者实体表头的名称生成所述表头名称;
或者基于下一层虚拟表头的名称或者实体表头的名称中出现次数或比例在阈值以上的名称生成所述表头名称。
附记19.根据附记16所述的装置,所述聚类子单元进一步被配置为:
将与一个表头的相似度大于阈值的另一个表头与该一个表头聚为一类;和/或
将满足下述条件的另一个表头与该一个表头聚为一类:在该一个表头与其他所有表头的相似度中,与该另一个表头的相似度最大;或者,在该另一个表头与其他所有表头的相似度中,与该一个表头的相似度最大。
附记20.根据附记19所述的装置,其中,所述聚类子单元进一步被配置为:
从一个聚类中去除满足下述条件的表头:
其与该聚类中其他任何表头的相似度均低于阈值,和/或其与该聚类 中其他任何表头的相似度与其他表头两两之间的相似度的差异达到预定程度。
Claims (10)
1.一种整合多个数据库的方法,包括:
基于多个数据库的多个实体表头生成多层虚拟表头;
其中,每一层表头的每一个属性对应于下一层表头的至少一个属性。
2.根据权利要求1所述的方法,其中,基于多个数据库的实体表头生成多层虚拟表头包括:
对所述多个数据库的多个实体表头聚类,对每一类实体表头生成一个中间层虚拟表头;
对中间层虚拟表头进一步聚类,生成更上层的中间层虚拟表头,直到得到的最上层虚拟表头的个数为1或者达到预定层数。
3.根据权利要求2所述的方法,其中,对表头进行聚类包括:
计算所述多个表头的两两之间的相似度;
基于所述相似度对表头聚类。
4.根据权利要求3所述的方法,其中,计算所述多个表头的两两之间的相似度包括:
基于两个表头的表头名称和属性计算两个表头之间的相似度,
其中,所述表头名称基于其对应的下一层虚拟表头或者实体表头的名称生成。
5.根据权利要求3所述的方法,其中,基于所述相似度对表头聚类包括:
将与一个表头的相似度大于阈值的另一个表头与该一个表头聚为一类;和/或
将满足下述条件的另一个表头与该一个表头聚为一类:在该一个表头与其他所有表头的相似度中,与该另一个表头的相似度最大;或者,在该另一个表头与其他所有表头的相似度中,与该一个表头的相似度最大。
6.根据权利要求5所述的方法,其中,所述聚类进一步包括:
从一个聚类中去除满足下述条件的表头:
其与该聚类中其他任何表头的相似度均低于阈值,和/或其与该聚类中其他任何表头的相似度与其他表头两两之间的相似度的差异达到预定程度。
7.一种整合多个数据库的装置,包括:
虚拟表头生成单元,被配置为基于所述多个数据库的多个实体表头生成多层虚拟表头;
其中,每一层表头的每一个属性对应于下一层表头的至少一个属性。
8.根据权利要求7所述的装置,其中所述虚拟表头生成单元包括:
聚类子单元,被配置为对所述多个数据库的多个实体表头聚类,对每一类实体表头生成一个中间层虚拟表头;对中间层虚拟表头进一步聚类,生成更上层的中间层虚拟表头,直到得到的最上层虚拟表头的个数为1或者达到预定层数。
9.根据权利要求8所述的装置,所述虚拟表头生成单元还包括:相似度计算子单元,被配置为计算所述多个表头的两两之间的相似度,其中,基于两个表头的表头名称和属性计算两个表头之间的相似度;
所述聚类子单元进一步被配置为:基于所述相似度对表头聚类。
10.根据权利要求9所述的装置,所述聚类子单元进一步被配置为:
将与一个表头的相似度大于阈值的另一个表头与该一个表头聚为一类;和/或
将满足下述条件的另一个表头与该一个表头聚为一类:在该一个表头与其他所有表头的相似度中,与该另一个表头的相似度最大;或者,在该另一个表头与其他所有表头的相似度中,与该一个表头的相似度最大。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310364263.6A CN104424190A (zh) | 2013-08-20 | 2013-08-20 | 整合多个数据库的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310364263.6A CN104424190A (zh) | 2013-08-20 | 2013-08-20 | 整合多个数据库的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104424190A true CN104424190A (zh) | 2015-03-18 |
Family
ID=52973193
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310364263.6A Pending CN104424190A (zh) | 2013-08-20 | 2013-08-20 | 整合多个数据库的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104424190A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104978526A (zh) * | 2015-06-30 | 2015-10-14 | 北京奇虎科技有限公司 | 病毒特征的提取方法及装置 |
CN107168975A (zh) * | 2016-03-08 | 2017-09-15 | 阿里巴巴集团控股有限公司 | 一种对象匹配方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101388036A (zh) * | 2008-10-08 | 2009-03-18 | 金蝶软件(中国)有限公司 | 一种数据表的汇总方法和装置 |
CN101661507A (zh) * | 2009-09-25 | 2010-03-03 | 金蝶软件(中国)有限公司 | 一种数据合并的方法及系统 |
CN101799807A (zh) * | 2009-02-10 | 2010-08-11 | 中国移动通信集团公司 | 一种异构数据表的合并方法及其系统 |
CN102436475A (zh) * | 2011-09-29 | 2012-05-02 | 用友软件股份有限公司 | 数据表汇总装置和数据表汇总方法 |
CN102567329A (zh) * | 2010-12-15 | 2012-07-11 | 金蝶软件(中国)有限公司 | 一种数据查询方法及系统 |
CN103235822A (zh) * | 2013-05-03 | 2013-08-07 | 富景天策(北京)气象科技有限公司 | 数据库的生成及查询方法 |
-
2013
- 2013-08-20 CN CN201310364263.6A patent/CN104424190A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101388036A (zh) * | 2008-10-08 | 2009-03-18 | 金蝶软件(中国)有限公司 | 一种数据表的汇总方法和装置 |
CN101799807A (zh) * | 2009-02-10 | 2010-08-11 | 中国移动通信集团公司 | 一种异构数据表的合并方法及其系统 |
CN101661507A (zh) * | 2009-09-25 | 2010-03-03 | 金蝶软件(中国)有限公司 | 一种数据合并的方法及系统 |
CN102567329A (zh) * | 2010-12-15 | 2012-07-11 | 金蝶软件(中国)有限公司 | 一种数据查询方法及系统 |
CN102436475A (zh) * | 2011-09-29 | 2012-05-02 | 用友软件股份有限公司 | 数据表汇总装置和数据表汇总方法 |
CN103235822A (zh) * | 2013-05-03 | 2013-08-07 | 富景天策(北京)气象科技有限公司 | 数据库的生成及查询方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104978526A (zh) * | 2015-06-30 | 2015-10-14 | 北京奇虎科技有限公司 | 病毒特征的提取方法及装置 |
CN104978526B (zh) * | 2015-06-30 | 2018-03-13 | 北京奇虎科技有限公司 | 病毒特征的提取方法及装置 |
CN107168975A (zh) * | 2016-03-08 | 2017-09-15 | 阿里巴巴集团控股有限公司 | 一种对象匹配方法及装置 |
CN107168975B (zh) * | 2016-03-08 | 2020-11-27 | 创新先进技术有限公司 | 一种对象匹配方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wang et al. | Fast large-scale trajectory clustering | |
CN101055585B (zh) | 文档聚类系统和方法 | |
US7707533B2 (en) | Data-mining-based knowledge extraction and visualization of analog/mixed-signal/custom digital circuit design flow | |
AU2011224139B2 (en) | Analysis of object structures such as benefits and provider contracts | |
KR20120015558A (ko) | 상황 구조 생성 방법 및, 상황 구조 생성 시스템 | |
CN105849725A (zh) | 构造用于针对多维数据结构执行的查询 | |
US20060004753A1 (en) | System and method for document analysis, processing and information extraction | |
CN106971205A (zh) | 一种基于k近邻互信息估计的嵌入式动态特征选择方法 | |
CN104572833B (zh) | 一种映射规则创建方法及装置 | |
US11768825B2 (en) | System and method for dependency analysis in a multidimensional database environment | |
CN108897761A (zh) | 一种聚簇存储方法及装置 | |
CN108694158A (zh) | 用于检查bim模型文件是否变化的方法 | |
JP2006172446A (ja) | 複合データアクセス | |
CN106528648A (zh) | 结合Redis内存数据库的分布式RDF关键词近似搜索方法 | |
Singh et al. | Analysis and study of K-means clustering algorithm | |
Usman et al. | Discovering diverse association rules from multidimensional schema | |
CN105373546A (zh) | 一种用于知识服务的信息处理方法及系统 | |
KR20110063326A (ko) | 데이터베이스 시스템내에 저장된 마크업 언어 문서들에서의 데이터 관리 | |
JP5470082B2 (ja) | 情報蓄積検索方法及び情報蓄積検索プログラム | |
CN110737779A (zh) | 知识图谱的构建方法、装置、存储介质和电子设备 | |
CN104424190A (zh) | 整合多个数据库的方法及装置 | |
CN104899283A (zh) | 一种针对单个不确定图的频繁子图挖掘与优化方法 | |
Wang et al. | A novel efficient algorithm for determining maximum common subgraphs | |
CN106055690A (zh) | 一种基于属性匹配的快速检索与获取数据特征方法 | |
Chehreghani et al. | Density link-based methods for clustering web pages |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20181214 |
|
AD01 | Patent right deemed abandoned |