数据库访问的制作方法

文档序号:9829925阅读:227来源:国知局
数据库访问的制作方法
【专利说明】数据库访问
【背景技术】
[0001] 数据库广泛用于许多应用领域中的数据存储。通过利用适当的查询语言将查询发 送到数据库,可以从数据库中高效地访问数据。查询结果随后由用于所涉及的特定任务的 下游进程来使用。然而,典型地,下游进程期望来自数据库的特定形式的查询结果。这意味 着,典型地需要编写中间或链接软件来从现有的数据库导出数据并且在输入到下游进程之 前操纵该数据。结果,由下游进程对来自数据库的数据访问可能是低效的。而且,中间或链 接软件典型地需要针对特定下游进程专门编写,而这样耗时且易于出错。在其中使用大量 数据并且其中发生缺失值、异常值、错误值以及与数据相关的其他问题的应用领域中这些 问题尤其严重。
[0002] 这些类型的应用领域包括机器学习应用,其中,使用大量的数据经常是有益的,因 为这使得能够实现更佳的学习结果。然而,在要访问大量的数据的情况下,通过中间或链接 软件进行数据库访问的任何低效都加剧。
[0003] 下述的实施例不限于用于解决已知数据库访问系统的任意或全部缺点的实现方 式。

【发明内容】

[0004] 下面呈现了对公开内容的简要概述,以便向读者提供基本的理解。该概述不是对 公开内容的泛泛概述,并且其不识别关键/重要要素或描绘说明书的范围。其唯一目的是以 简化形式提供对本文公开的构思的选择,以作为对之后呈现的更详细说明的前序。
[0005] 描述了数据库访问,例如,其中,数据库中的数据是由推断引擎来访问的。在各个 示例中,推断引擎执行推断算法来从数据库访问数据并且利用所述数据来执行推断。在示 例中,推断算法是根据数据库的模式来编译的,数据库的模式是由数据库中的数据上的概 率分布的表达式来注释的。在各个示例中,通过将一个或多个潜在(latent)列或潜在表添 加到模式中以存储要由推断引擎推断的数据,来修改数据库的模式。在示例中,表达式是组 合的,因此,例如用于注释数据库表的列的表达式可以用作注释该数据库的另一列的表达 式的一部分。
[0006] 由于通过参考下面结合附图考虑的详细描述而更好地理解许多伴随的特征,因此 将更容易地意识到这些特征。
【附图说明】
[0007] 根据附图来阅读下面的详细描述,将更好地理解本描述,在附图中:
[0008] 图1是具有用于访问一个或多个数据库的数据库访问组件的数据库管理工具的示 意图;
[0009] 图2是关系数据库模式以及添加到该关系数据库模式中的潜在表和注释的示意 图;
[0010] 图3是图1的数据库访问组件处的方法的流程图;
[0011] 图4是关系数据库的示例;
[0012] 图5是推断引擎处的方法的流程图;
[0013] 图6是关系数据库的示意图,该关系数据库的模式具有添加的潜在列和添加的潜 在表;
[0014] 图7是另一关系数据库的示意图,该关系数据库的模式具有添加的潜在列和添加 的潜在表;
[0015]图8是在终端用户设备处用于访问图1的数据库管理工具的图形用户接口显示器 的不意图;
[0016] 图9是在终端用户设备处用于访问图1的数据库管理工具的另一图形用户接口显 示器的示意图;
[0017] 图10示出了示例性的基于计算的设备,其中可以实现数据库管理系统或数据库访 问组件的实施例。
[0018] 在附图中,相似的附图标记用于指代相似的部件。
【具体实施方式】
[0019] 下面结合附图提供的发明详述旨在作为本示例的描述,而不旨在代表可以以其构 造或使用本示例的唯一形式。该描述阐述了示例的功能和用于构造和操作示例的步骤序 列。然而,可以通过不同的示例来实现相同或等同的功能和序列。
[0020] 虽然本示例在本文中被描述和图示为实现于桌面上计算系统,但是所描述的系统 是作为示例而不是限制而提供的。如本领域技术人员将意识到的是,本示例适用于各种不 同类型的计算设备中的应用,包括但不限于智能手机、台式计算机、游戏控制台、交互式娱 乐系统、云计算环境以及其他。
[0021] 图1是具有集成的数据库访问组件108的数据库管理工具106的示意图。数据库管 理工具106是计算机实现的,例如,它可以是用于查询经由诸如互联网、内联网或其他通信 网络等通信网络1〇〇与其通信的一个或多个数据库102的软件应用。数据库102可以是或者 可以不是关系数据库。可以使用一个或多个关系数据库102和一个或多个非关系数据库的 组合。非关系数据库的示例的非穷尽列表是:图形数据库、对象数据库、XML数据库、JS0N数 据库。XML(扩展标记语言)数据库或JS0N( java脚本对象记法)数据库存储半结构化的数据。 数据库管理工具106具有对其能够访问的各个数据库102的数据库模式的访问。在关系数据 库的情况下,模式的示例将在本文件中稍后给出。在对象数据库的情况下,模式对应于类 (class)声明。在下面的示例中,具有表的关系数据库中,列和行以及可选地外来关键字对 应于对象数据库中的类、成员、对象和引用。在XML或JS0N数据库的情况下,术语"标记"或 "集合"、"属性"、"元素"或"文档"以及"名称"分别用于指代"表"、"列"、"行"和"外来关键 字"。
[0022]数据库管理工具106还可以实现创建、编辑或删除数据库。数据库管理工具106可 以使得数据能够存储在一个或多个数据库中,所述数据库可以是或者可以不是关系数据 库。关系数据库包括数据的多个表,其中所述表相互链接。下面将参考图2更详细地解释术 语"关系数据库"。
[0023]数据库访问组件108也是计算机实现的,例如,其实现为软件和/或硬件逻辑。数据 库访问组件被布置成与推断引擎104-起工作,以高效的方式从至少一个数据库的全部或 一部分来访问数据,从而推断引擎能够利用所访问的数据来执行机器学习。数据库访问组 件用下面更详细描述的表达式来注释数据库的模式。数据库的模式是对数据库中如何组织 数据的描述。模式可以描述诸如XML或JSON等半结构化的数据如何存储。
[0024] 表达式描述了数据库中的数据条目上的概率分布。每个表达式描述根据参数或超 参数来生成关联列的条目的过程,其中超参数描述了关于参数的知识。表达式可以是组合 的。例如,表达式可以描述用于根据模式的一个或多个其他列或表来生成其关联列的条目 的过程。数据库访问组件还将一个或多个潜在列添加到数据库模式和数据库中并且可选地 将一个或多个潜在表添加到数据库模式和数据库中。潜在列是被创建以存储要由推断引擎 104推断的数据(而不是观察到的数据或输入数据)的表的列。潜在表是被创建以存储要由 推断引擎104推断的数据(而不是观察到的数据或输入数据)的数据库的表。将参考图2更详 细地解释输入列、可观察列和潜在列。
[0025] 数据库访问组件还具有用于数据库模式的每列的类型,其中类型可以是以下各项 中的任意类型:整数型、布尔、实数型、字符串、链接(在关系数据库情况下)、日期-时间、百 分比或其他。类型"链接"指示外来关键字。数据库访问组件可以自动推断或解释列的类型, 如下文更详细描述的。数据库访问组件还具有用于数据库的每列的标签,所述标签用于指 示其是输入列、输出可观察列还是输出潜在列。潜在列是那些由数据库访问组件添加的列 并且是输出列。其他列可以根据用户输入和/或自动分析而被识别为输入或输出可观察的。
[0026] 数据库访问组件和推断引擎操作用于编译具有添加的潜在列和/或表的、注释的 数据库模式,以形成推断算法。注释的模式还具有对于每个列指示其是输入列、输出潜在 列、还是输出可观察列的标签。注释模式还具有用于每个列的类型(诸如整数型、实数型、浮 点型、双精度型、布尔、字符串、外来关键字(在该文档中称为"链接")。编译过程可以包括多 于一个阶段。例如,注释可以用高级编程语言来编写,而高级编程语言被编译为在若干阶段 中的连续的较低级编程语言。推断引擎能够执行推断算法来以推断算法规定的方式从数据 库访问数据,以及利用所访问数据来执行推断。推断结果可被写入添加到数据库的潜在表 和/或列。
[0027]在一些示例中,数据库访问组件自动地添加潜在列和/或表并且在数据库管理工 具中创建注释(表达式、输入/潜在/可观察标签、以及类型)。在其他示例中,终端用户添加 潜在列和/或表,并且利用编程环境来创建注释。添加潜在列和/或表以及注释的过程可以 是半自动的。
[0028]图1所示的数据库访问组件108与数据库管理工具106集成,尽管这不是必要的。数 据库访问组件108可以位于与数据库管理工具106通信的任何其他实体中。数据库访问组件 108可以将其接收自推断引擎104的推断结果进行高速缓存。
[0029]终端用户能够利用可从他或她的计算设备122(诸如手机116、平板计算机118或个 人计算机120)访问的图形用户接口 110来使用数据库管理工具106和数据库访问组件108。 图形用户接口 110可以是基于网络的,或者可以是任何其他适当的类型。之后参考图7至9来 论述可提供的图形用户接口显示的示例。图形用户接口 110可以由数据管理工具106来提 供、由数据库访问组件108来提供、或者由任何其他与数据库管理工具106和数据库访问组 件108通信的实体来提供。通过使用图形用户接口,终端用户能够利用概率推断的能力,即 使他或她具有极少或没有统计或机器学习方面的训练。现有的数据库可以在无需从现有数 据库导出数据的情况下使用,并且在执行机器学习和推断之前操纵该数据。而且,终端用户 无需预处理数据,例如,变换不同类型的变量或者去除具有缺失数据的实例。这简化了终端 用户的操作。终端用户可以按照与之前对于数据库操作的类似方式来操作该数据库,这是 因为推断发生在后台并且可以简单地将推断结果与数据库查询结果合并。
[0030] 终端用户可以利用图形用户接口 110将查询112输入到数据库管理工具106,以便 将查询发送给数据库102中的一个。数据库管理工具106返回查询结果,该查询结果是利用 已知的数据库进程从数据库获取的。数据库管理工具106还能够返回带有推断114的查询结 果。也即,其中查询的结果包括已经由数据库访问组件108与推断引擎104联合工作而计算 出的值和信息。
[0031] 例如,带有推断的查询结果可以包括从已由推断引擎104推断的潜在列和/或潜在 表中访问的数据。在下面描述的示例中,游戏的玩家的技能由推断引擎104来推断,并且技 能是存储在添加到数据库模式的潜在列中的潜在变量。查询可以询问玩家的技能是怎样的 并且带有推断的查询结果包括技能值。通过这种方式,终端用户接收关于玩家技能的推断 数据。这仅是一个示例,可以根据应用领域而使用许多其他潜在列和潜在表。
[0032] 除了来自数据库的潜在列的推断数据之外或者作为其替代,带有推断的查询结果 可以包括关于数据库的非潜在列的推断数据。关于数据库的非潜在列的推断数据的示例的 非穷尽列表是:填充的缺失数据、识别的错误数据、错误校正建议、识别的异常值数据。例 如,没有数据的单元可以通过数据库访问组件108来完成,并且填充的数据可以被返回作为 带有推断的查询结果114的一部分。即使在完成的单元由外来关键字值完成的情况下,这也 是可能的。外来关键字是引用另一表的行、元组或记录的表单元中的条目。例如,具有错误 数据的单元可以由数据访问组件108来识别,并且错误和所建议的校正可被返回作为带推 断的查询结果114的一部分。如下更详细论述的,带推断的查询结果114的许多其他示例是 可能
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1