CN105095237A - 用于生成非关系数据库的模式的方法和设备 - Google Patents

用于生成非关系数据库的模式的方法和设备 Download PDF

Info

Publication number
CN105095237A
CN105095237A CN201410181384.1A CN201410181384A CN105095237A CN 105095237 A CN105095237 A CN 105095237A CN 201410181384 A CN201410181384 A CN 201410181384A CN 105095237 A CN105095237 A CN 105095237A
Authority
CN
China
Prior art keywords
node
code
coding
logging mode
key
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.)
Granted
Application number
CN201410181384.1A
Other languages
English (en)
Other versions
CN105095237B (zh
Inventor
王岚君
张硕
焦丽梅
王晨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to CN201410181384.1A priority Critical patent/CN105095237B/zh
Priority to US14/698,106 priority patent/US10055429B2/en
Publication of CN105095237A publication Critical patent/CN105095237A/zh
Priority to US15/976,903 priority patent/US10936556B2/en
Application granted granted Critical
Publication of CN105095237B publication Critical patent/CN105095237B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/211Schema design and management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/273Asynchronous replication or reconciliation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明的实施例公开了用于生成非关系数据库的模式的方法和设备。在本发明的实施例中,可以确定非关系数据库的至少一个条目中的记录模式,所述记录模式是该条目中以键为节点的各键层级之间的树状关系,其中键对应于属性名称;对于至少一个记录模式,基于所述树状关系中子节点的相似度确定存在属性名称变化的节点,并根据确定的结果更新该记录模式;基于更新后的记录模式生成所述非关系数据库的模式。

Description

用于生成非关系数据库的模式的方法和设备
技术领域
本发明的实施例涉及数据库领域,更具体地,涉及一种用于生成非关系数据库的模式的方法和设备。
背景技术
如本领域所已知,数据库在现代信息技术中发挥着重要作用。例如,作为数据库的重要类型之一,关系数据库系统被广泛地应用于存储和检索各类信息。然而,在当今不断发展的信息技术中,存在着对数据库高并发读写的需求、对海量数据的高效率存储和访问的需求以及对数据库的高可扩展性和高可用性的需求,对此,关系数据库已经显得力不从心并存在很多难以克服的问题。例如,在应付Web2.0网站,特别是超大规模和高并发的SNS类型的Web2.0纯动态网站方面,关系数据库越来越不适于应用。
针对这一问题,业界提出了非关系数据库(NoSQL)。非关系数据库具有自组织、自管理、低成本、高可扩展性、高并发性、查询关系简单等特点。具体而言,关系数据库中的表通常存储格式化的数据结构,每个条目字段的组成相同,即使不是每个条目都需要所有的字段,关系数据库也会为每个条目分配所有的字段,这样的结构是关系型数据库性能瓶颈的一个因素。不同的是,非关系数据库以键值对存储,它的结构不固定,每一个条目可以有不一样的字段,每个条目可以根据需要增加一些自己的键值对,这样就不会局限于固定的结构,可以减少一些时间和空间的开销。
目前,由于非关系数据库没有类似于关系数据库那样的模式(Schema),所以无法根据Schema来对关系数据库和非关系数据库进行数据匹配、数据整合、数据交换等方面的处理,从而难以实现对关系数据库和非关系数据库二者的整合,因此,生成非关系数据库的模式是非常必要的。特别的是,由于NoSQL无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式,在网站架构变化、程序员变化、程序员修正等情形下,新插入的数据的属性名称可以随时更改,使得生成非关系型数据库的模式具有一定的难度。
发明内容
鉴于现有技术中存在的上述问题,本领域中需要一种能够获取非关系数据库中的模式的解决方案。为此,本发明的实施例提供了一种用于生成非关系数据库的模式的方法和设备。
根据本发明的一个方面,提供了一种用于生成非关系数据库的模式的方法。该方法可以包括:确定非关系数据库的至少一个条目中的记录模式,所述记录模式是该条目中以键为节点的各键层级之间的树状关系,其中键对应于属性名称;基于所述树状关系中子节点的相似度确定存在属性名称变化的节点,并根据确定的结果更新相应的记录模式;基于更新后的记录模式生成所述非关系数据库的模式。
根据本发明的另一个方面,提供了一种用于生成非关系数据库的模式的设备。该设备可以包括:确定器,配置用于确定非关系数据库的至少一个条目中的记录模式,所述记录模式是该条目中以键为节点的各键层级之间的树状关系,其中键对应于属性名称;属性名称变化确定器,配置用于基于所述树状关系中子节点的相似度确定存在属性名称变化的节点,并根据确定的结果更新相应的记录模式;生成器,配置用于基于更新后的记录模式生成所述非关系数据库的模式。
通过下文描述将会理解,利用本发明的实施例,可以便捷地生成NoSQL的Schema。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图;
图2示出了根据本发明一个示例性实施例的用于生成非关系数据库的模式的方法200的示意性流程图;
图3示出了根据本发明一个示例性实施例的确定非关系数据库的至少一个条目中的记录模式的方法300的示意性流程图;
图4A-图4I示出了根据本发明一个示例性实施例的用于生成非关系数据库的模式的方法400的示意性流程图;
图5A-图5I示出了根据本发明一个示例性实施例的用于生成非关系数据库的模式的设备500的示意性框图;
图6示出了根据本发明的实施例的非关系数据库600中部分内容的示意图;
图7示出了表示根据本发明的实施例的树状关系700的示意图;
图8示出了根据本发明的实施例的用于生成非关系数据库的模式的设备800的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。图1显示的计算机系统/服务器12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图1所示,计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机系统/服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
在本发明的实施例中,“条目”可以是非关系数据库中的一个记录,也可以认为是非关系数据库中一个数据对象实例。一个条目可以拥有唯一的标识符(ID),并可以包含零个或多个键/值(Key/Value)对。根据本发明的实施例,各个键/值对之间可以通过预先定义的区分符来进行区分,例如,可以通过逗号等来将不同的键/值对进行区分;同时,每个键/值对内的“键”和“值”可以通过预先定义的分隔符进行分隔,例如通过冒号来进行分隔,因此可以根据分隔符来从一个键/值对中确定其中的键。同时,可以通过预先定义的扩展符来扩展键/值对中的“值”,例如可以利用中括号来表示一个键/值对中的“值”包含两个以上的属性。所述两个以上的属性中的每个属性既可以是一个真正的“值”,也可以是一个键/值对,并且该键/值对中的“值”还可以继续包含一个或多个属性。
图6示出了根据本发明的实施例的非关系数据库600中部分内容的示意图。如图6所示,所示例的非关系数据库600可以包含多条记录,每一条记录表示一个条目。非关系数据库600本身可以具有一个标识符,以对自己进行表征并将自己与其他非关系数据库区分。例如,非关系数据库600的标识符可以是“Blog”。根据本发明的实施例,可以将非关系数据库的标识符也认为是一个键。所以,在构建各个键的层级信息时,可以将其作为层级信息的中的一个键进行考虑。现在回到图6,在与第一条记录对应的条目中,“author:‘don’”是一个键/值对,其中键是“author”,值为“don”。另外,该条目中的“comments:[{author:‘mary’,comment:‘Idisagree’},{author:‘alice’,comment:‘goodpost’}]”也是一个键/值对,其中键是“comments”,值为“[{author:‘mary’,comment:‘Idisagree’},{author:‘alice’,comment:‘goodpost’}]”,可见该值中还可以嵌套一个或多个键/值对。根据区分符、分隔符、扩展符等可以确定各个键之间的层级信息,从而确定各个键之间的关联关系,进而,可以确定出每个条目中键之间的树状关系。
图2示出了根据本发明一个示例性实施例的用于生成非关系数据库的模式的方法200的示意性流程图。
在步骤S201,确定非关系数据库的至少一个条目中的记录模式,所述记录模式是该条目中以键为节点的各键层级之间的树状关系,其中键对应于属性名称。
如何从记录条目中解析出键之间的树状关系是现有技术。具体的,在根据本发明的一个实施例中,可以提取非关系数据库中一个条目中所包含的键,确定所提取的键在每个条目中的层级信息,以及根据该层级信息确定键之间的关联关系,进而确定出键之间的树状关
系。
接下来,以图3为例对如何确定条目中键之间的树状关系进行详细的说明。图3示出了根据本发明一个示例性实施例的用于生成非关系数据库中数据条目的树状关系的方法300的示意性流程图。
在步骤S301,提取非关系数据库中每个条目中包含的键。
根据本发明的实施例,可以先确定出每个条目中包含哪些键/值对,然后从所确定的键/值对中来提取其中的键,从而完成对这个条目集合中的中的每个条目中的键的提取过程。
在图6所示的示例性非关系数据库中,通过逗号对不同的键/值对进行了区分,并通过冒号对每个键/值对内的“键”和“值”进行了分隔。由此,可以从该非关系数据库的第1个条目中提取其所包含的以下键:author,created,Title,Text,tags,comments,comment。类似地,可以分别提取该非关系数据库中的第2,3,……,N个条目中包含的键。
在步骤S302,确定提取的键在每个条目中的层级信息。
根据本发明的实施例,可以根据预先定义的各种符号(区分符、分隔符、扩展符等等)确定各个键之间的层级关系。在图6所示的示例性非关系数据库中,将逗号示例性地用作了区分符;将冒号示例性地用作了分隔符;将中括号示例性地用作了扩展符。因此,可以根据这些符号的出现来确定一个条目中的各个键的层级信息。
在步骤S303,根据层级信息确定键之间的树状关系。
在图7所示的层级信息的示意图中,以树形结构示出了从步骤S301提取的键,例如author,created,Title,Text,tags,comments,comment等键,之间的层级信息。假设Blog为根节点,author,created,Title,Text,tags,comments这些键分别是根节点的一级子节点;其中,一级子节点comments还具有两个子节点,也即author和comment这两个键,它们同时分别是根节点的二级子节点。
根据本发明的实施例,一级子节点是直接与根节点具有关联关系的子节点,二级子节点是直接与一级子节点具有关联关系的子节点,据此类推,N级子节点是直接与N-1级子节点具有关联关系的子节点。例如,在第一个条目中,author,created,Title,Text,tags,comments这些键都直接与非关系数据库具有关联关系,因此分别都是一级子节点;由于与comments这个键对应的值包含{author:‘mary’,comment:‘Idisagree’}和{author:‘alice’,comment:‘goodpost’},所以这个值中包含的author和comment这两个键分别与comments这个键直接具有关联关系,而与根节点没有直接的关联关系,因此author和comment这两个键是二级子节点。
由上可见,可以根据步骤S302得到的层级信息来确定各个子节点之间的关联关系,从而可以相应地确定各个键之间的树状关系。
接下来,返回图2中的步骤S202,在步骤S202中,基于子节点的相似度确定存在属性名称变化的节点,并根据确定的结果更新相应的记录模式。
在一个实施例中,是基于编码后的树形结构记录模式确定存在名称变化的节点。具体的,该实施例包括以下各步骤:对所述每个条目的记录模式进行CinP编码,所述CinP编码是对记录模式中每个节点进行编码时既包括该节点自身编码也包括其子节点的编码;所述基于子节点的相似度确定存在属性名称变化的节点是基于编码后的记录模式中子节点的相似度确定存在属性名称变化的节点。
在一个实施例中,可采用素数编码对每个条目进行CinP编码。在另一个实施例中,还可采用自然数-字符串编码对每个条目进行CinP编码。申请人将在图4、图5所示的实施例中对这两个实施例进行更为详细的介绍。
图4示出了根据本发明一个示例性实施例的基于素数编码的记录模式生成非关系数据库的模式的过程示意图。
步骤401,对所述每个条目的记录模式进行CinP编码,所述CinP编码是对记录模式中每个节点进行编码时既包括该节点自身编码也包括其子节点的编码。通过该步骤,可对每条记录(record)的记录模式(schemaofrecord)建立层次化的CinP编码。
在一个实施例中,是从树型结构的最底层节点开始向根节点进行编码。每层维护一张编码表(codemap),用于表示属性名与编码的对应关系,图4C、图4D分别示出了基于素数编码的编码表,其中,图4C是对应于最底层的编码表,而图4D是对应于倒数第二层的编码表。每个节点的编码包括两部分:表示节点自身编码的自编码部分(P-code),以及表示该节点子节点编码的子节点编码部分(C-code),该两部分均是素数。在一个实施例中,C-code为节点所有子节点P-code的乘积,图4A、图4B分别示出了记录模式1、以及记录模式2进行素数编码后的结果,例如其中记录模式1中的B节点的编码为7,35,其中7为节点B的自编码,35为节点B的子编码,是节点B子节点E和F的自编码的乘积。
在步骤402中,将编码后的树形结构记录模式解析成路径集合,所述路径包括叶子节点到根节点所经过的所有节点的编码。图4E,图4F分别示出了上述两个记录模式的路径集合。例如,在记录模式2中的一条路径为D,A,O,用CinP编码表示为3,0,3,115,0,15。在该编码中,奇数位为P-Code,偶数位为C-Code,最后两个编码代表根节点的P-Code和C-Code。由于叶子节点无子节点,所以叶子节点的C-Code为0;同时,由于根节点为虚拟节点,P-Code为0。
步骤403,统计所有条目的路径集合中各条路径的频率。图4G示出的是路径频率统计的结果,其中记录模式1出现过1次,记录模式2出现过2次,在图4G中,()内的数字表示该路径频率。
接下来,从底层节点开始执行步骤404-406,迭代执行到根节点:
步骤404:将路径按该层P-Code分桶,相同的P-Code被分到相同的桶中。在上述路径集合中,以最底层为例,所有路径按照P-Code分别为3,5,7,以及无最底层节点被分到4个桶中,即:
Bucket1:3,0,3,115,0,15(2)
Bucket2:5,0,3,115,0,15(2)
5,0,7,35,0,35(1)
Bucket3:7,0,3,115,0,15(2)
7,0,7,35,0,35(1)
Bucket4:5,0,0,15(2)
5,0,0,35(1)
步骤405:在各桶中,判断是否出现属性名称变化的步骤包括:
1)检查在一个桶内是否有多余一条路径;
2)如果是,检查他们的父节点的P-Code是否不同;
3)如果不同,利用他们父节点的C-Code并且根据公式(1)计算父节点的相似度:
S ( N 1 , N 2 ) = | C N 1 ∩ C N 2 | | C N 1 ∪ C N 2 |
其中,N1,N2代表两个父节点,CN1表示N1的子节点集合,N2表示N2的子节点集合,|.|表示集合中元素个数。该相似度定义为两个父节点所包含的共同子节点的个数与总子节点个数的比例。即,当两个父节点包含子节点全部相同的时,该相似度为1;当两个父节点的所有子节点都不同的时候,该相似度为0,在上述例子中,对于节点A和B,他们含有2个共同子节点(E,F),总子节点个数为3(D,E,F),相似度为2/3。
在上述利用素数编码时,两个父节点的共同子节点的个数为两个父节点C-code的最大公约数所包含的素数个数;两个父节点的总子节点个数为两个父节点C-code的最小公倍数所包含的素数的个数,由此可见,通过素数编码可以明显提高相似度确定时的效率。在本例中,父节点P-Code为3所对应的C-Code为115,父节点P-Code为7所对应的C-Code为35.115和35的最大公约数为35,可分解为2个素数;115和35的最小公倍数为115,可分解为3个素数。
4)如果相似度大于某一门限值G1,则认为两个父节点发生了属性名称的变化。
5)按照一定规则生成编码映射对:源P-Code–>目标P-Code,按照相应层的编码表,该编码映射对可以解析为映射对:源属性名称->目标属性名称。在后续的处理中,要将源属性名称替换为目标属性名称。比如,当规则为保留出现频率高的属性名称时,源属性名称为出现频率较低的属性名称,目标属性名称为出现频率较高的属性名称。在这个例子中由于记录模式2在数据中出现了2次,比记录模式1多,所以编码映射对为:7->3,源属性名称为B,目标属性名称为A。这里的规则还可以设置为保留最新出现的属性名称,或者保留具有语义的属性名称等。
步骤406:按照编码映射对,将父节点层源P-Code更新为目标P-Code,更新该节点相应父节点的C-Code编码。在本例中,除了将父节点层所有P-Code为7改为3,还需要将该节点的父节点的C-Code由35(7*5)改为15(3*5)。图4H示出的是更新后的路径集合。
步骤407:在路径编码中,提取只包含P-Code的子序列,并统计该子序列出现的频率(即合并相同的P-Code子序列),比如,频率为2的路径5,0,3,115,0,15的P-Code子序列为5,3,0;频率为1的路径5,0,3,35,0,15的P-Code子序列为5,3,0,两者相同,合并后,P-Code子序列5,3,0,的频率为3。
步骤408:保留频率超过门限G2的P-Code子序列,并将其按照各层的编码表进行解码生成表的模式(schema)。在本例中,设G2=100%,则得到图4I所示的模式。
图5示出了根据本发明一个示例性实施例的基于自然数-字符串编码的记录模式生成非关系数据库的模式的过程示意图。
步骤501,对所述每个条目的记录模式进行CinP编码,所述CinP编码是对记录模式中每个节点进行编码时既包括该节点自身编码也包括其子节点的编码。通过该步骤,可对每条记录(record)的记录模式(schemaofrecord)建立层次化的CinP编码。
在一个实施例中,是从树型结构的最底层节点开始向根节点进行编码。每层维护一张编码表(codemap),用于表示属性名与编码的对应关系,图5C、图5D分别示出了基于自然数编码的编码表,其中,图5C是对应于最底层的编码表,而图5D是对应于倒数第二层的编码表。每个节点的编码包括两部分:表示节点自身编码的自编码部分(P-code),以及表示该节点子节点编码的子节点编码部分(C-code)。在该利用自然数-字符串进行编码的实施例中,例如,记录模式1中的B节点的编码为3,2|3,其中3为节点B自编码,2|3为节点B子编码,是节点B子节点E和F的自编码的以及全局定义分隔符“|”的组合。。
在步骤502中,将编码后的树形结构记录模式解析成路径集合,所述路径包括叶子节点到根节点所经过的所有节点的编码。图5E,图5F分别示出了上述两个记录模式的路径集合。例如,在记录模式2中的一条路径为D,A,O,用CinP编码表示为1,0,1,1|2|3,0,1|2。在该编码中,奇数位为P-Code,偶数位为C-Code,最后两个编码代表根节点的P-Code和C-Code。由于叶子节点无子节点,所以叶子节点的C-Code为0;同时,由于根节点为虚拟节点,P-Code为0。
步骤503,统计所有条目的路径集合中各条路径的频率。图5G示出的是路径频率统计的结果,其中记录模式1出现过1次,记录模式2出现过2次,在图4G中,()内的数字表示该路径频率。
接下来,从底层节点开始执行步骤504-506,迭代执行到根节点:
步骤504:将路径按该层P-Code分桶,相同的P-Code被分到相同的桶中。在上述路径集合中,以最底层为例,所有路径按照P-Code分别为1,2,3,以及没有最底层节点被分到4个桶中,即:
Bucket1:1,0,1,1|2|3,0,1|2(2)
Bucket2:2,0,1,1|2|3,0,1|2(2)
2,0,3,2|3,0,2|3(1)
Bucket3:3,0,1,1|2|3,0,1|2(2)
3,0,3,2|3,0,2|3(1)
Bucket4:2,0,0,1|2(2)
2,0,0,2|3(1)
步骤505:在各桶中,判断持否出现属性名称变化的步骤包括:
1)检查在一个桶内是否有多余一条路径。在本实施例中,桶2有超过一条路径。
2)如果是,检查他们的父节点的P-Code是否不同。在本实施例中,桶2所对应的相同节点的父节点的P-Code不同,分别为1和3。3)如果不同,利用他们父节点的C-Code并且根据公式(1)计算父节点的相似度:
在上述利用自然数-字符串编码时,一个节点的所有子节点可由其的C-code结合分割符“|”解析而得。比如,本例中父节点P-code为1所对应的C-code为1|2|3,解析可得其包含P-Code分别为1,2,3的三个子节点;同理,P-code为3所对应的C-code为2|3,解析可得其包含P-Code为2,3的两个子节点。
4)如果相似度大于某一门限值G1,则认为两个父节点发生了属性名称的变化。
5)按照一定规则生成编码映射对:源P-Code–>目标P-Code,按照相应层的编码表,该编码映射对可以解析为映射对:属性名称->目标属性名称。在后续的处理中,要将源属性名称替换为目标属性名称。比如,当规则为保留出现频率高的属性名称时,源属性名称为出现频率较低的属性名称,目标属性名称为出现频率较高的属性名称。在这个例子中由于记录模式2在数据中出现了2次,比记录模式1多,所以编码映射对为:7->3,源属性名称为B,目标属性名称为A。这里的规则还可以设置为保留最新出现的属性名称,或者保留具有语义的属性名称等。
步骤506:按照编码映射对,将父节点层源P-Code更新为目标P-Code,更新该节点相应父节点的C-Code编码。在本例中,除了将父节点层所有P-Code为3改为1,还需要将该节点的父节点的C-Code由2|3改为2|1。图5H示出的是更新后的路径集合。
步骤507:在路径编码中,提取只包含P-Code的子序列,并统计该子序列出现的频率(即合并相同的P-Code子序列),比如,频率为2的路径2,0,0,1|2的P-Code子序列为2,0;频率为1的路径2,0,0,2|3的P-Code子序列为2,0,两者相同,合并后,P-Code子序列2,0,的频率为3。
步骤508:保留频率超过门限G2的P-Code子序列,并将其按照各层的编码表进行解码生成表的模式(schema)。在本例中,设G2=100%,则得到图5I所示的模式。
接下来,继续说明图2中步骤S202的其它实施例。在一个的实施例中,基于所述树状关系中子节点的相似度确定存在属性名称变化的节点,并根据确定的结果更新相应的记录模式包括:将编码后的树形结构记录模式解析成路径集合,所述路径包括叶子节点到根节点所经过的所有节点的编码;(A)根据某一层的P-Code分桶;(B)在各桶中,根据子节点的相似度判断确定存在属性名称变化的父节点;(C)将部分所确定的存在属性名称变化的父节点层源P-Code更新为目标P-Code,更新该节点相应父节点的C-Code编码。
在一个更为具体的实施例中,还包括按照一定规则将部分所确定的存在属性名称变化的父节点源P-Code更新为目标P-Code,其中,源P-Code对应于源属性名称,目标P-Code对应于目标属性名称。该规则例如可以是保留出现频率高的属性名称,源属性名称为出现频率较低的属性名称,目标属性名称为出现频率较高的属性名称,在图4所示的实施例中还涉及了其它规则。
在另一个更为具体实施例中,并不仅仅是在某一层执行步骤A-C,而是从树状结构的底层节点开始执行步骤A-C,并迭代直至根节点。
接下来,继续说明图2中的步骤S203,在步骤S203中,基于更新后的记录模式生成所述非关系数据库的模式。
根据本发明的实施例,非关系数据库的模式可以根据多种方式生成。在根据本发明的一个实施例中,可以获取至少一个路径中的有效路径及其权重,然后可以基于有效路径及其权重来生成非关系数据库的模式。
在根据本发明的一个实施例中,可以通过多种实施方式来从至少一个路径中获取有效路径及其权重。例如,可以在至少一个路径中确定重复的路径;将重复的路径设定为一个有效路径,并将这样得到的有效路径的权重设定为该重复的路径的重复次数;同时,可以将不重复的路径分别设定为一个有效路径,并将如此设定有效路径的权重设定为一个预设权重。根据本发明的实施例,该预设权重例如可以为1。
在根据本发明的一个实施例中,还可以将路径的权重小于预定权重阈值的有效路径过滤掉,从而仅使用权重较大的有效路径来生成非关系数据库的模式。例如,可以将每个有效路径的权重与预定权重阈值进行比较,根据比较结果从有效路径中选择一个或多个目标路径,然后基于所选择的目标路径来生成非关系数据库的模式。通过这种实施方式,可以过滤掉一些出现频率较低的键,从而避免了为非关系数据库生成的模式的规模过于庞大。
在根据本发明的一些实施例中,可以根据键的层级信息确定一条或多条路径,将具备关联关系的键划分到同一条路径中。例如,在图7中,每条路径可以包括若干级子节点,每条路径从根节点开始、到末端叶节点也即最后一级子节点结束,并且每条路径不能完全相同。在图7所示的示意图中,Blog和created构成一条路径Blog->created;Blog、Comments和author构成一条路径Blog->Comments->author;Blog、Comments和comment构成一条路径Blog->Comments->comment;等等,其他不再赘述。
当采用本申请实施例中所进一步公开的CinP编码对具有树状关系的记录模式进行编码时,则各路径是根据所包括的节点的CinP编码来确定。
图8示出了根据本发明一个示例性实施例的用于生成非关系数据库的模式的设备800的示意性框图。
根据本发明的实施例,设备800可以包括:确定器810,配置用于确定非关系数据库的至少一个条目中的记录模式,所述记录模式是该条目中以键为节点的各键层级之间的树状关系,其中键对应于属性名称;更新器820,配置用于基于所述树状关系中子节点的相似度确定存在属性名称变化的节点,并根据确定的结果更新相应的记录模式;生成器830,配置用于基于更新后的记录模式生成所述非关系数据库的模式。
在一个实施例中,图8所述的设备,还包括:配置为对所述每个条目的记录模式进行CinP编码的模块,其中,每个节点的CinP编码包括该节点自身编码P-Code以及其子节点的编码C-Code;所述属性名称变化确定器是基于CinP编码后的记录模式中子节点的相似度确定存在属性名称变化的节点。
在一个实施例中,所述属性名称变化确定器820包括:配置为将编码后的树形结构记录模式解析成路径集合的模块,所述路径包括叶子节点到根节点所经过的所有节点的编码;配置为根据某一层的P-Code分桶的模块;配置为在各桶中,根据该层子节点的相似度判断确定存在属性名称变化的父节点的模块;配置为将父节点源P-Code更新为目标P-Code,更新该更新后的父节点相应父节点的C-Code编码的模块。
在一个实施例中,所述配置为在各桶中,根据该层子节点的相似度判断确定存在属性名称变化的父节点的模块包括:配置为对于存在多条路径的桶,确定出父节点的P-Code不同的节点的模块;配置为通过父节点的C-Code以及公式计算父节点的相似度的模块,其中,N1,N2代表两个父节点,CN1表示N1的子节点集合,CN2表示N2的子节点集合,|.|表示集合中元素个数;配置为如果相似度大于门限值G1,则认为两个父节点发生了属性名称的变化的模块。
在一个实施例中,所述配置为根据所述至少一个更新后的记录模式生成所述非关系数据库的模式的模块包括:配置为在路径编码中,提取只包含P-Code的子序列,并统计该子序列出现的频率,并合并相同的P-Code子序列的模块;配置为保留频率超过门限G2的P-Code子序列,并将其按照各层的编码表进行解码生成非关系数据库的模式的模块。
在一个实施例中,其中确定器810包括:配置为提取所述条目中包含的键的模块;配置为确定所述提取的键在所述条目中的层级信息的模块;以及配置为根据所述层级信息确定所述键之间的树状关系的模块。
在一个实施例中,其中生成器830包括:配置为获取所述至少一个路径中的有效路径及其权重的模块;以及配置为基于所述有效路径及其权重,生成所述非关系数据库的模式的模块。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是但不限于
电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (14)

1.一种用于生成非关系数据库的模式的方法,包括:
确定非关系数据库的至少一个条目中的记录模式,所述记录模式是该条目中以键为节点的各键层级之间的树状关系,其中键对应于属性名称;
基于所述树状关系中子节点的相似度确定存在属性名称变化的节点,并根据确定的结果更新相应的记录模式;
基于更新后的记录模式生成所述非关系数据库的模式。
2.根据权利要求1所述的方法,还包括:
对所述每个条目的记录模式进行CinP编码,其中,每个节点的CinP编码包括该节点自身编码P-Code以及其子节点的编码C-Code;
所述基于树状关系中子节点的相似度确定存在属性名称变化的节点是基于CinP编码后的记录模式中子节点的相似度确定存在属性名称变化的节点。
3.根据权利要求2所述的方法,所述基于所述树状关系中子节点的相似度确定存在属性名称变化的节点,并根据确定的结果更新相应的记录模式包括:
将编码后的树形结构记录模式解析成路径集合,所述路径包括叶子节点到根节点所经过的所有节点的编码;
根据某一层的P-Code分桶;
在各桶中,根据该层子节点的相似度判断确定存在属性名称变化的父节点;
将部分所确定的存在属性名称变化的父节点源P-Code更新为目标P-Code,更新该更新后的父节点的相应父节点的C-Code编码。
4.根据权利要求3所述的方法,所述各桶中,根据该层子节点的相似度判断确定存在属性名称变化的父节点包括:
对于存在多条路径的桶,确定出该层子节点的父节点的P-Code不同的节点;
通过所确定的父节点的C-Code以及公式计算父节点的相似度,其中,N1,N2代表两个父节点,CN1表示N1的子节点集合,CN2表示N2的子节点集合,|.|表示集合中元素个数;
如果相似度大于门限值G1,则认为两个父节点发生了属性名称的变化。
5.根据权利要求4所述的方法,所述根据所述至少一个更新后的记录模式生成所述非关系数据库的模式包括:
在路径编码中,提取只包含P-Code的子序列,并统计该子序列出现的频率,并合并相同的P-Code子序列;
保留频率超过门限G2的P-Code子序列,并将其按照各层的编码表进行解码生成所述非关系数据库的模式。
6.根据权利要求1所述的方法,其中确定非关系数据库的至少一个条目中的键之间的树状关系包括:
提取所述条目中包含的键;
确定所述提取的键在所述条目中的层级信息;以及
根据所述层级信息确定所述键之间的树状关系。
7.根据权利要求1所述的方法,其中根据基于更新后的记录模式生成所述非关系数据库的模式包括:
获取所述至少一个路径中的有效路径及其权重;以及
基于所述有效路径及其权重,生成所述非关系数据库的模式。
8.一种用于生成非关系数据库的模式的设备,包括:
确定器,配置用于确定非关系数据库的至少一个条目中的记录模式,所述记录模式是该条目中以键为节点的各键层级之间的树状关系,其中键对应于属性名称;
更新器,配置用于基于所述树状关系中子节点的相似度确定存在属性名称变化的节点,并根据确定的结果更新相应的记录模式;
生成器,配置用于基于更新后的记录模式生成所述非关系数据库的模式。
9.根据权利要求8所述的设备,还包括:
配置为对所述每个条目的记录模式进行CinP编码的模块,其中,每个节点的CinP编码包括该节点自身编码P-Code以及其子节点的编码C-Code;
所述属性名称变化确定器是基于CinP编码后的记录模式中子节点的相似度确定存在属性名称变化的节点。
10.根据权利要求8所述的设备,所述属性名称变化确定器包括:
配置为将编码后的树形结构记录模式解析成路径集合的模块,所述路径包括叶子节点到根节点所经过的所有节点的编码;
配置为根据某一层的P-Code分桶的模块;
配置为在各桶中,根据该层子节点的相似度判断确定存在属性名称变化的父节点的模块;
配置为将部分所确定的存在属性名称变化的父节点源P-Code更新为目标P-Code,更新该更新后的父节点的相应父节点的C-Code编码的模块。
11.根据权利要求10所述的设备,所述配置为在各桶中,根据该层子节点的相似度判断确定存在属性名称变化的父节点的模块包括:
配置为对于存在多条路径的桶,确定出父节点的P-Code不同的节点的模块;
配置为通过父节点的C-Code以及公式计算父节点的相似度的模块,其中,N1,N2代表两个父节点,CN1表示N1的子节点集合,CN2表示N2的子节点集合,|.|表示集合中元素个数;
配置为如果相似度大于门限值G1,则认为两个父节点发生了属性名称的变化的模块。
12.根据权利要求11所述的设备,所述配置为根据所述至少一个更新后的记录模式生成所述非关系数据库的模式的模块包括:
配置为在路径编码中,提取只包含P-Code的子序列,并统计该子序列出现的频率,并合并相同的P-Code子序列的模块;
配置为保留频率超过门限G2的P-Code子序列,并将其按照各层的编码表进行解码生成所述非关系数据库的模式的模块。
13.根据权利要求9所述的设备,其中确定器包括:
配置为提取所述条目中包含的键的模块;
配置为确定所述提取的键在所述条目中的层级信息的模块;以及
配置为根据所述层级信息确定所述键之间的树状关系的模块。
14.根据权利要求9所述的设备,其中生成器包括:
配置为获取所述至少一个路径中的有效路径及其权重的模块;以及
配置为基于所述有效路径及其权重,生成所述非关系数据库的模式的模块。
CN201410181384.1A 2014-04-30 2014-04-30 用于生成非关系数据库的模式的方法和设备 Active CN105095237B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201410181384.1A CN105095237B (zh) 2014-04-30 2014-04-30 用于生成非关系数据库的模式的方法和设备
US14/698,106 US10055429B2 (en) 2014-04-30 2015-04-28 Generating a schema of a not-only-structured-query-language database
US15/976,903 US10936556B2 (en) 2014-04-30 2018-05-11 Generating a schema of a Not-only-Structured-Query-Language database

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410181384.1A CN105095237B (zh) 2014-04-30 2014-04-30 用于生成非关系数据库的模式的方法和设备

Publications (2)

Publication Number Publication Date
CN105095237A true CN105095237A (zh) 2015-11-25
CN105095237B CN105095237B (zh) 2018-07-17

Family

ID=54355377

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410181384.1A Active CN105095237B (zh) 2014-04-30 2014-04-30 用于生成非关系数据库的模式的方法和设备

Country Status (2)

Country Link
US (2) US10055429B2 (zh)
CN (1) CN105095237B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107766355A (zh) * 2016-08-17 2018-03-06 腾讯科技(深圳)有限公司 层级数据管理方法、层级数据管理系统及即时通信系统
US10055429B2 (en) 2014-04-30 2018-08-21 International Business Machines Corporation Generating a schema of a not-only-structured-query-language database
CN110704420A (zh) * 2018-06-22 2020-01-17 北京世纪好未来教育科技有限公司 一种树形结构的实现方法和装置
CN111400320A (zh) * 2020-03-18 2020-07-10 百度在线网络技术(北京)有限公司 用于生成信息的方法和装置
CN111767321A (zh) * 2020-06-30 2020-10-13 北京百度网讯科技有限公司 节点关系网络的确定方法、装置、电子设备和存储介质
US10956416B2 (en) 2019-03-12 2021-03-23 International Business Machines Corporation Data schema discovery with query optimization

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10977289B2 (en) * 2019-02-11 2021-04-13 Verizon Media Inc. Automatic electronic message content extraction method and apparatus
US11138194B2 (en) * 2019-04-02 2021-10-05 International Business Machines Corporation Method of extracting relationships from a NoSQL database
CN111353277A (zh) * 2020-02-28 2020-06-30 北京京东振世信息技术有限公司 节点编码方法和装置以及确定节点从属关系的方法
US11663177B2 (en) * 2020-05-04 2023-05-30 International Business Machines Corporation Systems and methods for extracting data in column-based not only structured query language (NoSQL) databases
CN113553297B (zh) * 2021-06-08 2023-01-06 优刻得科技股份有限公司 一种交换机配置信息的管理方法及系统
CN113590348B (zh) * 2021-07-26 2024-05-17 京东科技控股股份有限公司 基于树状结构的参数传递方法、装置、设备及介质
CN115796127B (zh) * 2023-01-31 2023-05-12 北京面壁智能科技有限责任公司 位置编码方法、装置、电子设备及存储介质
CN117149140B (zh) * 2023-09-14 2024-03-12 睿珀智能科技有限公司 一种用于编码的架构信息生成方法、装置及相关设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080320054A1 (en) * 2003-04-09 2008-12-25 Cindy Howard Database and Software Conversion System and Method
CN102308297A (zh) * 2011-07-13 2012-01-04 华为技术有限公司 一种数据迁移方法、数据迁移装置及数据迁移系统
CN103631912A (zh) * 2013-11-28 2014-03-12 清华大学 一种利用非关系数据库存储海量工业设备监测数据的方法
CN103714086A (zh) * 2012-09-29 2014-04-09 国际商业机器公司 用于生成非关系数据库的模式的方法和设备

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030033317A1 (en) * 1999-03-23 2003-02-13 Robert Ziglin Methods and apparatus for interfacing application programs with database functions
FR2820228B1 (fr) 2001-01-30 2004-03-12 Expway Procede de codage et de decodage d'un chemin dans l'arborescence d'un document structure
US20020147850A1 (en) * 2001-04-05 2002-10-10 Richards Gregory W. Electronic survey tool and dynamic workflow tool
US7487168B2 (en) 2001-11-01 2009-02-03 Microsoft Corporation System and method for loading hierarchical data into relational database systems
US20030208493A1 (en) * 2002-04-12 2003-11-06 Hall Bradley S. Object relational database management system
US6990632B2 (en) 2003-02-28 2006-01-24 Microsoft Corporation Method and system for inferring a schema from a hierarchical data structure for use in a spreadsheet
US7251777B1 (en) 2003-04-16 2007-07-31 Hypervision, Ltd. Method and system for automated structuring of textual documents
US7257689B1 (en) * 2004-10-15 2007-08-14 Veritas Operating Corporation System and method for loosely coupled temporal storage management
US20080294899A1 (en) * 2006-01-17 2008-11-27 Boardvantage, Inc. Secure management of document in a client-server environment
US7792792B2 (en) * 2006-05-22 2010-09-07 Microsoft Corporation Synchronizing structured web site contents
US8335793B2 (en) * 2008-08-22 2012-12-18 Disney Enterprises, Inc. System and method for optimized filtered data feeds to capture data and send to multiple destinations
US9436710B2 (en) * 2010-09-28 2016-09-06 Redis Labs Ltd. Systems, methods, and media for managing an in-memory NoSQL database
US9959326B2 (en) 2011-03-23 2018-05-01 International Business Machines Corporation Annotating schema elements based on associating data instances with knowledge base entities
CA2834864C (en) * 2011-05-05 2021-10-26 Reversinglabs International Gmbh Database system and method
US20130024484A1 (en) * 2011-07-22 2013-01-24 International Business Machines Corporation System management in datacenter using a non-relational database
US9020981B2 (en) 2011-09-30 2015-04-28 Comprehend Systems, Inc. Systems and methods for generating schemas that represent multiple data sources
EP2795487A4 (en) 2011-12-23 2015-07-29 Amazon Tech Inc SCALABLE ANALYSIS PLATFORM FOR SEMI-STRUCTURED DATA
US8589450B2 (en) * 2011-12-28 2013-11-19 Business Objects Software Limited Mapping non-relational database objects into a relational database model
CN103186611B (zh) 2011-12-30 2016-03-30 北大方正集团有限公司 一种压缩、解压及查询文档的方法、装置
US9135647B2 (en) * 2012-06-18 2015-09-15 Amdocs Software Systems Limited Methods and systems for flexible and scalable databases
US9378263B2 (en) * 2012-06-19 2016-06-28 Salesforce.Com, Inc. Method and system for creating indices and loading key-value pairs for NoSQL databases
US9111012B2 (en) * 2012-11-26 2015-08-18 Accenture Global Services Limited Data consistency management
US10496640B2 (en) * 2012-12-19 2019-12-03 Salesforce.Com, Inc. Querying a not only structured query language (NoSQL) database using structured query language (SQL) commands
US20140214897A1 (en) * 2013-01-31 2014-07-31 Yuankai Zhu SYSTEMS AND METHODS FOR ACCESSING A NoSQL DATABASE USING BUSINESS INTELLIGENCE TOOLS
CA2906635C (en) * 2013-03-15 2019-08-06 BeulahWorks, LLC Knowledge capture and discovery system
US20150066995A1 (en) * 2013-09-02 2015-03-05 Electronics And Telecommunications Research Institute Apparatus and method for connecting nosql data and linked data
US20150154259A1 (en) * 2013-12-03 2015-06-04 Hewlett-Packard Development Company, L.P. Sql query on a nosql database
CN105095237B (zh) 2014-04-30 2018-07-17 国际商业机器公司 用于生成非关系数据库的模式的方法和设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080320054A1 (en) * 2003-04-09 2008-12-25 Cindy Howard Database and Software Conversion System and Method
CN102308297A (zh) * 2011-07-13 2012-01-04 华为技术有限公司 一种数据迁移方法、数据迁移装置及数据迁移系统
CN103714086A (zh) * 2012-09-29 2014-04-09 国际商业机器公司 用于生成非关系数据库的模式的方法和设备
CN103631912A (zh) * 2013-11-28 2014-03-12 清华大学 一种利用非关系数据库存储海量工业设备监测数据的方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
姚云鹏 等: "基于文档模型的Nosql数据库逻辑建模", 《信息系统工程》 *
强保华: "异构数据库语义集成技术研究", 《中国优秀博硕士学位论文全文数据库(博士)信息科技辑》 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10055429B2 (en) 2014-04-30 2018-08-21 International Business Machines Corporation Generating a schema of a not-only-structured-query-language database
US10936556B2 (en) 2014-04-30 2021-03-02 International Business Machines Corporation Generating a schema of a Not-only-Structured-Query-Language database
CN107766355A (zh) * 2016-08-17 2018-03-06 腾讯科技(深圳)有限公司 层级数据管理方法、层级数据管理系统及即时通信系统
CN107766355B (zh) * 2016-08-17 2021-07-16 腾讯科技(深圳)有限公司 层级数据管理方法、层级数据管理系统及即时通信系统
CN110704420A (zh) * 2018-06-22 2020-01-17 北京世纪好未来教育科技有限公司 一种树形结构的实现方法和装置
US10956416B2 (en) 2019-03-12 2021-03-23 International Business Machines Corporation Data schema discovery with query optimization
CN111400320A (zh) * 2020-03-18 2020-07-10 百度在线网络技术(北京)有限公司 用于生成信息的方法和装置
CN111767321A (zh) * 2020-06-30 2020-10-13 北京百度网讯科技有限公司 节点关系网络的确定方法、装置、电子设备和存储介质
CN111767321B (zh) * 2020-06-30 2024-02-09 北京百度网讯科技有限公司 节点关系网络的确定方法、装置、电子设备和存储介质

Also Published As

Publication number Publication date
CN105095237B (zh) 2018-07-17
US10936556B2 (en) 2021-03-02
US20180260420A1 (en) 2018-09-13
US10055429B2 (en) 2018-08-21
US20150317335A1 (en) 2015-11-05

Similar Documents

Publication Publication Date Title
CN105095237A (zh) 用于生成非关系数据库的模式的方法和设备
CN105446966B (zh) 生成关系数据转换为rdf格式数据的映射规则的方法和装置
CN111090461B (zh) 一种基于机器翻译模型的代码注释生成方法
US9471633B2 (en) Eigenvalue-based data query
CN103226606B (zh) 查询选取方法及系统
CN106156145A (zh) 一种地址数据的管理方法和装置
CN105335412A (zh) 用于数据转换、数据迁移的方法和装置
CN105630803B (zh) 文档型数据库建立索引的方法和装置
CN105138526A (zh) 用于为关系型数据库自动生成语义映射的方法和系统
CN103714086A (zh) 用于生成非关系数据库的模式的方法和设备
CN111324577B (zh) 一种Yml文件读写的方法及装置
CN104182484A (zh) 一种实现HBase数据与Java域对象映射的方法和装置
US9299035B2 (en) Iterative refinement of pathways correlated with outcomes
CN103020262A (zh) 一种数据存储方法、系统及数据存储设备
US10540628B2 (en) Hierarchical business rule model
CN107526746A (zh) 管理文档索引的方法和设备
CN105094780A (zh) 一种信息关联的方法和装置
CN113535977A (zh) 一种知识图谱融合方法和装置及设备
CN105279171B (zh) 在压缩的可变长度字符串上进行谓词评估的方法和设备
CN106569986B (zh) 字符串替换方法和装置
CN103701590A (zh) 一种基于字典的复杂密码遍历方法及装置
JP6261669B2 (ja) クエリ校正システムおよび方法
US10366059B2 (en) Record schemas identification in non-relational database
CN105446711B (zh) 获取用于软件开发任务的上下文信息的方法及装置
Singthongla et al. SEL series expansion and generalized model construction for the real number system via series of rationals

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant