一种数据库动态查询表单的生成方法

文档序号:9564625阅读:1008来源:国知局
一种数据库动态查询表单的生成方法
【技术领域】
[0001] 本发明属于关系型数据库查询技术领域,特别是涉及一种数据库动态查询表单的 生成方法。
【背景技术】
[0002] 查询表单是查询数据库中使用最广泛的用户界面之一。在各种信息管理系统中, 传统的查询表单由开发人员或DBA设计和预定义。随着网络信息和科学数据库的快速发 展,现代数据库变得非常庞大和复杂。在自然科学领域,如基因和疾病领域,数据库中有数 百个化学和生物数据资源的实体。许多网络数据库,通常有数千个结构化的网络实体。因 此,很难设计出一套静态的查询表单,以满足那些复杂数据库上各种各样的数据库查询。
[0003] 许多现有的数据库管理和开发工具,如EasyQuery,Cold Fusion, SAP和Microsoft Access,都提供了一些机制让用户在数据库上创建自定义的查询。然而,创建自定义的查询 完全取决于用户的手动编辑。如果用户不提前熟悉数据库的模式,就会对那些成百上千的 数据属性感到困惑。
[0004] 因此,如何根据用户的需求动态的生成数据库查询表单是值得关注的研究问题, 这对于解决庞大而复杂的数据库查询和让非专业用户使用关系型数据库具有重要意义。

【发明内容】

[0005] 本发明的目的在于针对现有技术的不足,提出一种数据库动态查询表单的生成方 法,能够快速有效地对庞大而复杂的数据库进行查询。
[0006] 本发明的技术方案是: 查询庞大而复杂的数据库时,从包含数据库中极少数主要属性的基本查询表单开始, 通过用户与系统之间的不断交互对基本查询表单不断强化,直到用户对查询结果感到满
[0007] -种数据库动态查询表单的生成方法,即DQF,具体步骤如下: 步骤一:以一个包含数据库中极少数主要属性的基本查询表单开始; 步骤二:用户填写查询表单,系统执行查询; 步骤三:系统显示查询结果,若用户对查询结果满意,则结束;否则,用户选择感兴趣 的表单组件加入到表单中使系统增强查询表单,继续执行步骤二或直接执行步骤二。
[0008] 本发明的步骤三中,采用压缩表(表中每个实例都表示实际数据实例的聚类)视图 来显示查询结果,通过用户在压缩表视图上的点击来反馈用户的偏好,系统根据用户偏好 计算每个表单组件的排名,从而向用户提供一个表单组件的排名列表,用户根据排名列表 选择相应表单组件加入到表单中来改善查询表单,直到用户对查询结果满意。
[0009] 本发明的有益效果: 本发明根据用户的需要在运行时生成查询表单,该系统为庞大而复杂的数据库查询 提供了一种解决方案。
[0010] 本发明在运行时会根据用户偏好计算每个表单组件的排名,从而向用户提供一个 表单组件的排名列表,能使用户更快速的从数据库中检索到需要的数据实例。
【附图说明】
[0011] 图I DQF流程图。
[0012] 图2用户操作流程图。
[0013] 图3 One - Qimry it询构造算法图。
[0014] 图4寻找最佳条件伪代码图。
【具体实施方式】
[0015] 下面结合附图和实施例对本发明作进一步的说明。
[0016] -种数据库动态查询表单的生成方法,即DQF,具体步骤如下: 步骤一:以一个包含数据库中极少数主要属性的基本查询表单开始; 步骤二:用户填写查询表单,系统执行查询; 步骤三:系统显示查询结果,若用户对查询结果满意,则结束;否则,用户选择感兴趣 的表单组件加入到表单中使系统增强查询表单,继续执行步骤二或直接执行步骤二。
[0017] 步骤三中,采用压缩表(表中每个实例都表示实际数据实例的聚类)视图来显示查 询结果,通过用户在压缩表视图上的点击来反馈用户的偏好,系统根据用户偏好计算每个 表单组件的排名,从而向用户提供一个表单组件的排名列表,用户根据排名列表选择相应 表单组件加入到表单中来改善查询表单,直到用户对查询结果满意。
[0018] 具体实施时: 定义1 : 一个查询表单F定义为一个元组
,它代表了一个数 据库查询模板,如下所示:F =(SELECT AnAf^Ak FROM
WHERE:齡:),其中
是k个属性的投影,k > 0。
h为参与查询的 η个关系(或实体)的集合,η > 0。中每个属性属于中的一个关系。是中关 系上的用于选择(或条件)的连接表达式。
是一个连接函数用于连接謂¥中的关系。
[0019] 在查询表单F的用户界面中,是结果表中列的集合,_:是用户填写的输入组 件集合,查询表单允许用户填写参数来生成不同的查询。
:在用户界面中是不 可见的,这通常是由系统根据数据库模式生成的。对于一个查询表单F
;会根据1% 中关系的外键自动构建。同时,
确定。
[0020] 用户没有足够的时间仔细检查查询结果中的每一个数据实例来判断一个查 询表单是否是需要的。此外,许多数据库查询输出大量的数据实例。为了避免这种 "Many-Answer"的问题,本方法只输出一个压缩的结果表来首先显示查询结果的高等级视 图。压缩表中的每个实例都表示实际数据实例的聚类。然后,用户可以通过点击感兴趣的 聚类来查看详细的数据实例。图2显示了用户的操作流程。
[0021] 压缩视图的另一个重要用途是收集用户反馈。使用收集到的反馈意见,可以估算 一个查询表单的精确率,使系统可以推荐合适的查询表单组件。在现实世界中,最终用户不 愿意提供明确的反馈。在压缩视图表上点击是一个隐式反馈来告诉系统哪些聚类(或子集) 的数据实例是用户所想要的。被单击的子集记为ig::。需要注意的是Iy:仅是数据库中用 户所想要的所有数据实例的中的一个子集,但它可以帮助系统生成推荐的表单组件,从而 帮助用户发现更多需要的数据实例。
[0022] 表1列出了本方法中使用的符号。设F是查询表单,选择条件是;變:,投影属性集合 是
设D是
I:中实例的集合,N是D中数据实例的个数。d是D中的一个实例,其 属性集合
其中
使用€^表示实例d在属性集合 上的投影,称之为投影实例。
!是d在D中的出现概率,
是d满足的概率。
若d由F返回,
[0023] 由于查询表单F在属性集合减上投影实例,将|&#作为投影数据库,
_ 为投影实例:£&:#在投影数据库中的概率。由于经常有重复的投影实例:
能大于1 / N。诶
:是d为用户所想要的的概率,
是用户对投影实例感兴趣的概率。
[0024] 查询表单的目的是返回用户想要的结果,有两种传统方法来评估查询结果的质 量:精确率和召回率。
[0025] 定义2 :给定投影属性集合c/?和选择表达式_,查询表单
?的预期精确率和预期召回率分别定义为
:和
其4
表示用户所想要实例的比例,如'
[0026] 两个等式的分子代表查询结果中用户想要的数据实例的预期数目。在查询结果 中,每个数据实例在属性%上投影,所以
;表示用户对查询结果中实例d感兴趣 的概率。
表示投影实例代表的行在D中的期望值。此外,给定一个数据实例 d是用户所希望的实例,且d满足是独立的。因此,酌乘积
可以被解释为d是用户所期望的,同时d在查询结果中返回的可能性。所有的数据实例相 加给出了查询结果中用户所希望的数据实例的预期数量。
[0027] 类似地,等式(1)中的分母仅仅是查询结果中实例的数目。等式(2)的分母是整个 数据库中用户想要实例的预期数量。这两个等式中N都抵消了,所以在估计精确率和召回 率时不需要考虑N。等式中的概率可以用下面所述方法进行估计。
是用户所想要的实例部分。由D给定,l|f_可以下面描述的方法估计。
[0028] 同时考虑预期精确率和预期召回率,得出整体性能度量标准,如公式3所示的预 期F值。需要注意的是p是一个常数参数,用来控制预期精确率或预期召回率的偏好。
[0029] 定义3 :给定投影属性集合厲_和选择表达式_,查询表单
的预期F值是

[0030] 设当前的查询表单是||,下一个查询表单是
其中
:经相应表单组件 增强后的查询表单
:为下一个查询表单
的估计精确率,该方法的目标 是使下一个查询表单的精确率最大化,所以将表单组件按
::递减的顺序排 名作为向用户提供查询表单组件的排名列表。
[0031] 表单组件的排名分为投影组件的排名和选择组件的排名,以下将做具体介绍。
[0032] DQF为投影组件提供了一个2级排名列表。第一级是实体的排名列表,第二级是在 同一实体中属性的排名列表。首先介绍如何在本地为每个实体属性排名,然后描述如何为 实体排名。
[0033] 假设投影组件实际上是推荐的投影属性。设当前的查询表单是_,下一个 查询表单是
。是为推荐的
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1