查询一个或多个数据库的制作方法_3

文档序号:9529256阅读:来源:国知局
ate和AIRP0RTS_count的叶被选定。可W通过选择查询 按钮1308来生成并执行对运些数据库的查询。结果输出1310中示出查询的结果。结果 输出1310包括模型输入的每个选定的叶构成的列,即,AIRPORTS_state的叶(结果输出 1310中的列1312)和AIRP0RTS_count的叶(结果输出1310中的列1314)。在一个示例中, AIRPORTS_state是类型I叶,所W结果输出1310中的结果是通过将结果分组到AIRP0RTS_ state的每个唯一值构成的单独行中来组织的。在此示例中,AIRP0RTS_count是类型II叶, 其计算每个州的机场计数。
[0082] 正如本文描述的,用户可W通过选择结果进一步深入"挖掘"结果输出1314。在一 个示例中,用户可W选择与RI(罗德岛)州的机场数量的数值"28"对应的结果1316。
[0083] 图14是图示根据示例实施方案的用户界面的概念示意图,该用户界面用于显示 在从先前结果输出1310选择结果1314之后查询与图13中的模型输入关联的一个或多个 数据库的结果输出1400。从先前结果输出1310选择的叶(即,AIRP0RTS_count)与特定的 细节集合关联。生成模型输入,其中选定的节点对应于细节集合中包括的节点,W及该模型 输入的叶是细节集合的叶。按选定的结果的行中的每个类型I叶的值对运些结果进行过滤 (即,按AIRP0RT_state=RI进行过滤)。
[0084] 如图14所示,显示后续结果输出1400,其包括与先前选定的结果的细节集合的叶 对应且按所选定的结果的行中的每个类型I叶的值过滤的列。因此,结果输出1400显示RI 中28个机场中每个机场的细节集合。
[0085] 图15是图示根据示例实施方案的又一个用户界面的概念示意图,该用户界面用 于选择用于查询与图12中的模型1200关联的一个或多个数据库的模型输入。在图15中, 航班节点1502被选为起始节点。选择起始节点可W通过技术上可行的机构来实现,包括可 用起始节点的下拉列表。当选择机场节点1502时,显示多个叶可W被选择用于模型输入。
[0086]为该模型输入选择了 0RIGIN_state、DSTINATION_state、DESTINATION_city和 FLIGHT_count的叶。在图 15 中,还添加了FLIGHT_cbpartdate= 01/01/2001、0RIGIN_ state=CAW及DESTINATION_state=CA的过滤器W将结果数量减到最小,从而达到简明 的目的。
[0087] 可W通过选择查询按钮来生成并执行对运些数据库的查询。结果输出1504中示 出查询的结果。结果输出1504包括模型输入的每个选定的叶构成的列,即,0RIGIN_state、 DESTINATION_state、DESTINATION_city和化IGHT_count的叶。在一个示例中,0RIGIN_ state、DESTINATION_state和DESTINATION_city中每一个均是类型I叶,所W结果输出 1504 中的结果是通过将结果分组到 0RIGIN_state、DESTINATION_state和DESTINATI0N_ city的每个唯一值-Ξ元组构成的单独行中来组织的。在此示例中,AIRP0RTS_count是类 型II叶,其计算结果输出的每个行中的机场计数。
[0088] 正如本文描述的,用户可W通过选择结果进一步深入"挖掘"结果输出1504。在一 个示例中,用户可W选择结果1506,其对应于始发州为"CA"(加州)目的地州为"CA"且目 的地城市为"SanRrancisco"的航班数量为"88"。
[0089] 图16是图示根据示例实施方案的用户界面的概念示意图,该用户界面用于显示 在从先前结果输出1504选择结果1506之后查询与图15中的模型输入关联的一个或多个 数据库的结果输出1600。从先前结果输出1504选择的叶(即,FLIGHTS_count)与特定的 细节集合关联。生成模型输入,其中选定的节点对应于细节集合中包括的节点,W及该模型 输入的叶是细节集合的叶。按选定的结果1506的行中的每个类型I叶的值对运些结果进 行过滤(即,按始发州为"CA"、目的地州为"CA"W及目的地城市为"San化ancisco"来进 行过滤)。
[0090] 如图16所示,显示后续结果输出1600,其包括与先前选定的结果1506的细节集 合的叶对应且按所选定的结果1506的行中的每个类型I叶的值过滤的列。由此,结果输出 1600显示目的地城市为"San化ancisco"、始发州为"CA"和目的地州为"CA"的88个航班 中每一个的细节集合。
[0091] 图17是根据示例实施方案的用于查询数据库的流程图。本领域技术人员将认识 至IJ,即使方法1700是结合图1-3的系统来描述的,配置来执行运些方法阶段的任何系统仍 在本发明公开的实施方案的范围内。
[0092] 如所示,方法1700开始于步骤1702,其中服务器接收起始节点的选择。在一个实 施方案中,服务器包括图1的服务器106。该选择可W通过客户端设备,如客户端设备102 上显示的用户界面来进行,并且通过数据网络104传送到服务器。在步骤1704处,服务器 接收一个或多个叶的选择。服务器可W将起始节点和一个或多个叶作为与数据库表对应的 一个或多个互连节点的模型关联的"模型输入"来接收。
[0093] 在步骤1706处,服务器基于该起始节点和一个或多个叶生成数据库查询。生成数 据库查询在图18中予W更详细地描述。
[0094] 在步骤1708处,数据库向服务器返回结果,W及服务器向客户端设备返回结果输 出。运些结果输出的每个列对应于一个或多个选定的叶中的一个。再有,对于属于类型I 叶的每个叶,通过类型I叶的每个元组的唯一值将运些结果汇总。例如,如果有两个类型I 叶,则根据两个类型I叶的唯一值对将运些结果汇总。将类型I叶的每个汇总的元组作为 结果输出的单独一行来返回。对于属于类型II叶的每个叶,对应于结果输出的每个行来执 行汇总计算并将其返回。
[0095] 在步骤1710处,服务器接收从结果输出选择结果,本文中也称为对返回的结果进 行"挖掘"。在一个实施方案中,该选择属于类型II结果。
[0096] 在步骤1712处,服务器基于与选定的结果关联的细节集合来生成数据库查询。正 如所描述的,每个类型II叶可W与包括起始节点和一个或多个叶的细节集合关联。使用细 节集合的起始节点和细节集合的一个或多个叶生成数据库查询。还按选定的结果的行中的 每个类型I叶的值对该数据库查询进行过滤。
[0097] 在步骤1714处,服务器返回后续结果输出。运些结果输出的每个列对应于细节集 合的叶中的一个。再有,对于每个类型I叶,通过类型I叶的每个元组的唯一值将运些结果 汇总。将类型I叶的每个汇总的元组作为后续结果输出的单独一行来返回。对于属于类型 II叶的每个叶,对应于该后续结果输出的每个行来执行汇总计算并将其返回。
[009引 W此方式,用户能够向下"挖掘"返回的结果W接收进一步细化的数据。
[0099] 横巧倚I律巧横巧专件
[0100] 正如所描述的,生成数据库查询是基于具有对应叶的互连节点的模型。可W通过 标识模型中节点之间的关系的模型文件来定义模型。本说明书的附录A1页中示出了模型 文件的示例。
[0101] 该模型可W包括一个或多个节点。在表示航班数据的模型的示例中,该模型可W 包含机场、飞机、事故和航班的节点。每个节点表示为单独的节点文件。附录中示出机场、 飞机、事故和航班的节点文件的示例(即,A2-A5页示出事故节点文件,A6-A8示出飞机节点 文件,A9-A10页示出机场节点文件W及A11-A16页示出航班节点文件)。在一个示例实现 中,使用YAML(另一种标记语言(YetAnotherMarkupLanguage))语法将该模型文件和节 点文件作为文件来实现。在另一些实施方案中,可W采用适于数据存储的任何格式来存储 模型,例如,可W将模型存储在数据库中。
[010引在一个实现中,使用术语%iew"和"base_view"在模型语法中引用模型中的节 点。每个view(即节点)包含叶的集合、join和set。在一个实现中,使用术语"field" 在模型语法中引用模型中的叶。运些叶可W属于类型I或类型II。类型I叶也称为"维 (dimesion)"且对应于可W是数据库表的属性(即,在数据库表中具有某种直接物理存在 性)或可W由该数据库表中的值计算的可分组字段。类型II叶也称为"测量(measure)" 且对应于利用汇总函数,如COUNT(...)、SUM(...)、AVG(...)、MIN(...)或MAX(...)实现 的叶。
[0103]join定义一个节点与另一个节点之间的连接。set定义特定节点的叶的清单。示 例set包括:
[0104] ·ignore-要忽略的字段的集合(不在任何场景中使用),
[0105] ·measure-要作为测量使用的字段的集合,
[0106] ·base_only-要包括在base-view场景中的字段的集合,W及
[0107] ·a血in-在用户具有管理特权时要包括的字段。
[010引正如本文更详细描述的,节点和模型文件可W包括用于由模型输入生成数据库查 询的查询片段。在一个实现中,数据库查询是SQL(结构化查询语言)查询和查询片段是 S化片段。
[0109] 在一些实施方案中,如果叶A可W达到模型中的另一个叶B,则叶A可W使用来自 叶B的S化片段作为其自己的S化片段的一部分。图19是图示根据示例实施方案的包括 一个节点1902和多个叶1904、1906、1908、1910的模型的概念示意图。在此示例中,语法 "${叶标识符}"用于引用另一个叶中的SQL片段1912的两个叶(即,W和Υ)。在一个实 施方案中,在模型输入中包括也X将促成如下的S化查询被生成:
[0110]沈LECTusers.city+ ","+users.stateASXFROMusersGROUPBYX;
[0111]类似地,在模型输入中同时选择叶w和X将促成如下的s化查询被生成:
[011引 沈LECTusers,cityASW,users.city+ "," +user,stateASXFROMusers GROUPBYW,X;
[0113] 可W将此扩展到任何层次的字段引用。例如,字段C可W包含来自字段B的SQL片 段,字段B包含来自字段A的S化片段。W此方式的S化片段引用还可W出现在类型I和 类型II叶之间,W及从类型II到类型II。
[0114] 此外,在一些实施方案中,一些叶可W自动地从类型I提升到类型II。知道叶能够 引用来自其他叶的片段意味着,我们能够基于用于构建该叶的其他叶推断有关叶的类型的 信息。在一个实现中,当任何叶A属于类型II时,可W推断引用叶A的任何叶B也属于类 型II。正如所描述的,属于类型II的叶使用汇总函数,并且因此包括结果输出中给定行的 一组值的汇总。因此,在类型I叶中使用来自类型II叶的S化片段是不可能的,因为类型 I叶导致来自数据存储中单个行的数据。运意味着,因为叶B引用类型II叶A,所W我们可 W推断叶B也是类型II叶。
[0115] 正如本文所描述的,使用模型和关联的节点的一个独特方面是,可W通过为模型 输入选择来自不同节点的叶来查询数据。可W使用如下语法和示例将不同的节点互连:
[0116] 可W将利用'join'语句将一个节点连接到另一个节点。附录A中第A12页53 行是一个示例。join语句描述使用join语法的从一个节点到另一个节点的单向连接,其 中'join'描述join的标识符(用于连同join标识符一起显示其后的fields名称,如(目 的地城市值ESTINATI0Ncity)),'化om'是节点标识符,W及'sql_on'是连接该节点所需 的sql片段。该附录示例较为复杂,因为它采用另一种策略我们用于模板view-'$$',运意 味着当前节点,在本例中为"机场"。此语法允许多次将一个节点连接到另一个节点中,但是 对于描述sql_on片段并不需要。任选地,可W使用fields集合来确定哪些fields应该从 连接的节点是可访问的。
[0117] 此外,正如所描述的,每个节点可W与一个或多个叶关联。运些叶可W属于类型I 或类型II,正如所描述。再有,"细节集合"可W与类型II叶关联,W便通过选择特定类型 II结果来生成后续查询(即,"挖掘")。
[0118] 在一个实施方案中,缺省情况下,所有叶均是类型I,W及仅当将其指定为类型 II的从属类型(如count_distinct类型,例如附录A的A9页26行)时,当将它们置 于'measures'集合中(附录A中未示出)时或当S化片段引用另一个类型II叶(例如, A4页129行)时才变成类型II。细节集合是使用有关叶的细节属性定义的。该属性可W 仅仅是字段的数组(附录A中未示出)。一个示例是"detail: [fieldl,fields,fields]", 或可W是对节点中其他位置定义的另一个集合的引用(例如,A9页29行引用A9页8行作 为其细节集合)。 。"引 报据横巧输入的杳询牛成
[0120]上文如图17所描述的,即在步骤1706和1712处,可W基于起始节点、一个或多个 叶和任选地一个或多个过滤器的选择来生成数据库查询。使用S化为例,可W通过执行图 18所示的如下步骤来生成数据库查询。
[0121] 在一个实现中,节点连接产生SQL中的JOIN语句。在模型输入中,包含连接到模 型起始节点W外的节点的叶暗示,在生成的S化语句中创建附加的连接。运通过在特定节 点文件中为每个节点连接添加S化片段来实现。附录A中第A12页53行处示出一个示例。 运里,我们使用sql_on属性中描述的sql片段将机场节点连接到航班节点中,其中$$表示 当前节点。
[0122] 图18是根据示例实施方案的用于根据模型输入生成数据库查询的方法步骤的流 程图。在此示例实施方案中,生成的查询是S化查询。本领域技术人员将认识到,即使方法 1800是结合图1-3的系统来描述的,配置来执行运些方法阶段的任何系统仍在本发明公开 的实施方案的范围内。
[0123] 如所示,方法1800开始于步骤1802,其中服务器接收模型输入。在一个实施方案 中,服务器包括图1的服务器106。模型输入包括起始节点、一个或多个叶W及任选地一个 或多个过滤器。选择起始节点、一个或多个叶W及任选地一个或多个过滤器可W通过客户 端设备,如客户端设备102上显示的用户界面来进行,并且通过数据网络104
当前第3页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1