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

文档序号:9375625阅读:368来源:国知局
用于生成非关系数据库的模式的方法和设备的制造方法
【技术领域】
[0001] 本发明的实施例涉及数据库领域,更具体地,涉及一种用于生成非关系数据库的 模式的方法和设备。
【背景技术】
[0002] 如本领域所已知,数据库在现代信息技术中发挥着重要作用。例如,作为数据库的 重要类型之一,关系数据库系统被广泛地应用于存储和检索各类信息。然而,在当今不断发 展的信息技术中,存在着对数据库高并发读写的需求、对海量数据的高效率存储和访问的 需求以及对数据库的高可扩展性和高可用性的需求,对此,关系数据库已经显得力不从心 并存在很多难以克服的问题。例如,在应付Web2. 0网站,特别是超大规模和高并发的SNS 类型的Web2. 0纯动态网站方面,关系数据库越来越不适于应用。
[0003] 针对这一问题,业界提出了非关系数据库(NoSQL)。非关系数据库具有自组织、自 管理、低成本、高可扩展性、高并发性、查询关系简单等特点。具体而言,关系数据库中的表 通常存储格式化的数据结构,每个条目字段的组成相同,即使不是每个条目都需要所有的 字段,关系数据库也会为每个条目分配所有的字段,这样的结构是关系型数据库性能瓶颈 的一个因素。不同的是,非关系数据库以键值对存储,它的结构不固定,每一个条目可以有 不一样的字段,每个条目可以根据需要增加一些自己的键值对,这样就不会局限于固定的 结构,可以减少一些时间和空间的开销。
[0004] 目前,由于非关系数据库没有类似于关系数据库那样的模式(Schema),所以无法 根据Schema来对关系数据库和非关系数据库进行数据匹配、数据整合、数据交换等方面的 处理,从而难以实现对关系数据库和非关系数据库二者的整合,因此,生成非关系数据库的 模式是非常必要的。特别的是,由于NoSQL无需事先为要存储的数据建立字段,随时可以存 储自定义的数据格式,在网站架构变化、程序员变化、程序员修正等情形下,新插入的数据 的属性名称可以随时更改,使得生成非关系型数据库的模式具有一定的难度。

【发明内容】

[0005] 鉴于现有技术中存在的上述问题,本领域中需要一种能够获取非关系数据库中的 模式的解决方案。为此,本发明的实施例提供了一种用于生成非关系数据库的模式的方法 和设备。
[0006] 根据本发明的一个方面,提供了 一种用于生成非关系数据库的模式的方法。该方 法可以包括:确定非关系数据库的至少一个条目中的记录模式,所述记录模式是该条目中 以键为节点的各键层级之间的树状关系,其中键对应于属性名称;基于所述树状关系中子 节点的相似度确定存在属性名称变化的节点,并根据确定的结果更新相应的记录模式;基 于更新后的记录模式生成所述非关系数据库的模式。
[0007] 根据本发明的另一个方面,提供了一种用于生成非关系数据库的模式的设备。该 设备可以包括:确定器,配置用于确定非关系数据库的至少一个条目中的记录模式,所述记 录模式是该条目中以键为节点的各键层级之间的树状关系,其中键对应于属性名称;属性 名称变化确定器,配置用于基于所述树状关系中子节点的相似度确定存在属性名称变化的 节点,并根据确定的结果更新相应的记录模式;生成器,配置用于基于更新后的记录模式生 成所述非关系数据库的模式。
[0008] 通过下文描述将会理解,利用本发明的实施例,可以便捷地生成NoSQL的Schema。
【附图说明】
[0009] 通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其 它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号 通常代表相同部件。
[0010] 图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框 图;
[0011] 图2示出了根据本发明一个示例性实施例的用于生成非关系数据库的模式的方 法200的示意性流程图;
[0012] 图3示出了根据本发明一个示例性实施例的确定非关系数据库的至少一个条目 中的记录模式的方法300的示意性流程图;
[0013] 图4A-图41示出了根据本发明一个示例性实施例的用于生成非关系数据库的模 式的方法400的示意性流程图;
[0014] 图5A-图51示出了根据本发明一个示例性实施例的用于生成非关系数据库的模 式的设备500的示意性框图;
[0015] 图6示出了根据本发明的实施例的非关系数据库600中部分内容的示意图;
[0016] 图7 TK出了表TK根据本发明的实施例的树状关系700的TK意图;
[0017] 图8示出了根据本发明的实施例的用于生成非关系数据库的模式的设备800的示 意图。
【具体实施方式】
[0018] 下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开 的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方 式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的 范围完整地传达给本领域的技术人员。
[0019] 图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框 图。图1显示的计算机系统/服务器12仅仅是一个示例,不应对本发明实施例的功能和使 用范围带来任何限制。
[0020] 如图1所示,计算机系统/服务器12以通用计算设备的形式表现。计算机系统 /服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器 28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
[0021] 总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器, 外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举 例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC) 总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
[0022] 计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是 任何能够被计算机系统/服务器12访问的可用介质,包括易失性和非易失性介质,可移动 的和不可移动的介质。
[0023] 系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存 取存储器(RAM) 30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其 它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34 可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为"硬盘驱动器")。尽管 图1中未示出,可以提供用于对可移动非易失性磁盘(例如"软盘")读写的磁盘驱动器, 以及对可移动非易失性光盘(例如⑶-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。 在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28 可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模 块被配置以执行本发明各实施例的功能。
[0024] 具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器 28中,这样的程序模块42包括--但不限于--操作系统、一个或者多个应用程序、其它 程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程 序模块42通常执行本发明所描述的实施例中的功能和/或方法。
[0025] 计算机系统/服务器12也可以与一个或多个外部设备14 (例如键盘、指向设备、 显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的 设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信 的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接 口 22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络 (例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适 配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示 出,可以结合计算机系统/服务器12使用其它硬件和/或软件模块,包括但不限于:微代 码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存 储系统等。
[0026] 在本发明的实施例中,"条目"可以是非关系数据库中的一个记录,也可以认为是 非关系数据库中一个数据对象实例。一个条目可以拥有唯一的标识符(ID),并可以包含零 个或多个键/值(Key/Value)对。根据本发明的实施例,各个键/值对之间可以通过预先 定义的区分符来进行区分,例如,可以通过逗号等来将不同的键/值对进行区分;同时,每 个键/值对内的"键"和"值"可以通过预先定义的分隔符进行分隔,例如通过冒号来进行 分隔,因此可以根据分隔符来从一个键/值对中确定其中的键。同时,可以通过预先定义的 扩展符来扩展键/值对中的"值",例如可以利用中括号来表示一个键/值对中的"值"包含 两个以上的属性。所述两个以
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1