关系型数据库查询方法、装置、电子设备及存储介质制造方法及图纸

技术编号:24168879 阅读:22 留言:0更新日期:2020-05-16 02:18
本申请公开了关系型数据库查询方法、装置、电子设备及存储介质,涉及数据库领域,其中的方法可包括:确定用户查询的数据所在的节点,节点表示关系型数据库中的数据表;将确定出的节点组成的集合作为备选集合,加入到第一队列中,并执行以下第一预定处理:按照先进先出的原则从第一队列中取出一个备选集合;若能够根据备选集合生成连接树,则根据连接树完成本次查询,否则,选取符合扩充要求的节点,针对选出的任一节点,分别将该节点加入到备选集合中,得到一个扩充后的备选集合,并加入到第一队列中,若第一队列不为空,则重复执行所述第一预定处理。应用本申请所述方案,能够简化用户操作,并降低用户的使用门槛等。

Query method, device, electronic equipment and storage medium of relational database

【技术实现步骤摘要】
关系型数据库查询方法、装置、电子设备及存储介质
本申请涉及计算机应用技术,特别涉及数据库领域的关系型数据库查询方法、装置、电子设备及存储介质。
技术介绍
关系型数据库是指采用了数据模型来组织数据的数据库,以行和列的形式存储数据。关系型数据库可由数据表及数据表之间的连接关系组成。用户通过查询来检索数据库中的数据。用户在查询时可自行编写查询语句,直接提交给数据库执行后获取数据。但这种方式中用户需要将查询涉及到的所有数据表及数据表之间的连接关系等均给定,查询涉及到的所有数据表可包括用户查询的数据所在的数据表以及这些数据表的中间表等。比如,用户查询的数据所在的数据表为数据表1和数据表2,数据表1和数据表2可通过数据表3相连,那么数据表3即为中间表。这种方式要求用户必须对数据模型完全了解,并且熟悉数据库查询方法,这通常是对开发人员的要求,一般用户很难具备这些素质,从而限制了用户的使用门槛等。
技术实现思路
有鉴于此,本申请提供了关系型数据库查询方法、装置、电子设备及存储介质。一种关系型数据库查询方法,包括:确定用户查询的数据所在的节点,所述节点表示关系型数据库中的数据表;将确定出的节点组成的集合作为备选集合,加入到第一队列中,并执行以下第一预定处理:按照先进先出的原则从所述第一队列中取出一个备选集合;若能够根据所述备选集合生成连接树,则根据所述连接树完成本次查询;若不能根据所述备选集合生成连接树,则选取符合扩充要求的节点,针对选出的任一节点,分别将所述节点加入到所述备选集合中,得到一个扩充后的备选集合,并加入到所述第一队列中;若所述第一队列不为空,则重复执行所述第一预定处理。根据本申请一优选实施例,该方法进一步包括:生成所述关系型数据库对应的有向图,所述关系型数据库由数据表及数据表之间的连接关系组成,将所述数据表抽象为所述有向图中的节点,将所述连接关系抽象为节点之间的边;针对所述备选集合,根据所述有向图确定出是否能够生成连接树。根据本申请一优选实施例,所述连接关系包括:内连接、全外连接、左连接以及右连接;所述将所述连接关系抽象为节点之间的边包括:对于任意两个节点,当为左连接或右连接的连接关系时,将所述连接关系抽象为单向边,当为内连接或全外连接的连接关系时,将所述连接关系抽象为双向边。根据本申请一优选实施例,所述选取符合扩充要求的节点包括:选取没有位于所述备选集合中且未被选取过的节点。根据本申请一优选实施例,该方法进一步包括:对于任一扩充后的备选集合,确定是否已经被加入过所述第一队列,若是,则丢弃所述扩充后的备选集合,若否,则将所述扩充后的备选集合加入到所述第一队列中。根据本申请一优选实施例,所述选取符合扩充要求的节点包括:从所述备选集合中的节点的上游节点中选取没有位于所述备选集合中且未被选取过的节点。根据本申请一优选实施例,该方法进一步包括:按照所加入的节点的优先级权重由高到低的顺序,依次将得到的各扩充后的备选集合加入到所述第一队列中。根据本申请一优选实施例,所述若能够根据所述备选集合生成连接树,则根据所述连接树完成本次查询包括:遍历所述备选集合中的各节点;针对遍历到的每一节点,分别确定以所述节点为根节点是否能够生成连接树,若是,根据所述连接树完成本次查询,若否,则遍历下一节点;若以各节点为根节点均不能生成连接树,则确定不能根据所述备选集合生成连接树。根据本申请一优选实施例,所述针对遍历到的每一节点,分别确定以所述节点为根节点是否能够生成连接树包括:将所述节点加入到第二队列和连接树中,并执行以下第二预定处理:按照先进先出的原则从所述第二队列中取出一个节点;从所述节点的下游节点中选取位于所述备选集合内且没有位于所述连接树中的节点,将选出的各节点分别加入到所述第二队列和所述连接树中;确定所述第二队列是否为空,若不为空,则重复执行所述第二预定处理;若为空,则确定所述连接树中是否包含所述备选集合中的所有节点,若包含所有节点,则确定以所述节点为根节点能够生成连接树,若未包含所有节点,则遍历下一节点。根据本申请一优选实施例,所述遍历所述备选集合中的各节点包括:按照节点的优先级权重由高到低的顺序,遍历所述备选集合中的各节点。根据本申请一优选实施例,所述将选出的各节点分别加入到所述第二队列和所述连接树中包括:按照节点的优先级权重由高到低的顺序,将选出的各节点依次加入到所述第二队列和所述连接树中。一种关系型数据库查询装置,包括:节点确定单元以及查询处理单元;所述节点确定单元,用于确定用户查询的数据所在的节点,所述节点表示关系型数据库中的数据表;所述查询处理单元,用于将确定出的节点组成的集合作为备选集合,加入到第一队列中,并执行以下第一预定处理:按照先进先出的原则从所述第一队列中取出一个备选集合;若能够根据所述备选集合生成连接树,则根据所述连接树完成本次查询;若不能根据所述备选集合生成连接树,则选取符合扩充要求的节点,针对选出的任一节点,分别将所述节点加入到所述备选集合中,得到一个扩充后的备选集合,并加入到所述第一队列中;若所述第一队列不为空,则重复执行所述第一预定处理。根据本申请一优选实施例,所述装置中进一步包括:预处理单元,用于生成所述关系型数据库对应的有向图,所述关系型数据库由数据表及数据表之间的连接关系组成,将所述数据表抽象为所述有向图中的节点,将所述连接关系抽象为节点之间的边;所述查询处理单元针对所述备选集合,根据所述有向图确定出是否能够生成连接树。根据本申请一优选实施例,所述连接关系包括:内连接、全外连接、左连接以及右连接;所述预处理单元针对任意两个节点,当为左连接或右连接的连接关系时,将所述连接关系抽象为单向边,当为内连接或全外连接的连接关系时,将所述连接关系抽象为双向边。根据本申请一优选实施例,所述符合扩充要求的节点包括:没有位于所述备选集合中且未被选取过的节点。根据本申请一优选实施例,所述查询处理单元进一步用于,对于任一扩充后的备选集合,确定是否已经被加入过所述第一队列,若是,则丢弃所述扩充后的备选集合,若否,则将所述扩充后的备选集合加入到所述第一队列中。根据本申请一优选实施例,所述符合扩充要求的节点包括:从所述备选集合中的节点的上游节点中选取出的没有位于所述备选集合中且未被选取过的节点。根据本申请一优选实施例,所述查询处理单元进一步用于,按照所加入的节点的优先级权重由高到低的顺序,依次将得到的各扩充后的备选集合加入到所述第一队列中。根据本申请一优选实施例,所述查询处理单元遍历所述备选集合中的各节点,针对遍历到的每一节点,分别确定以所述节点为根节点是否能够生成连接树,若是,根据所述连接树完成本次查询,若否,则遍历下一节点,若以各节点为根节点均不能生成连接树,则确定不能根据所述备选集合生成连接树。根据本申请一优选实施例,所述查询本文档来自技高网...

【技术保护点】
1.一种关系型数据库查询方法,其特征在于,包括:/n确定用户查询的数据所在的节点,所述节点表示关系型数据库中的数据表;/n将确定出的节点组成的集合作为备选集合,加入到第一队列中,并执行以下第一预定处理:/n按照先进先出的原则从所述第一队列中取出一个备选集合;/n若能够根据所述备选集合生成连接树,则根据所述连接树完成本次查询;/n若不能根据所述备选集合生成连接树,则选取符合扩充要求的节点,针对选出的任一节点,分别将所述节点加入到所述备选集合中,得到一个扩充后的备选集合,并加入到所述第一队列中;若所述第一队列不为空,则重复执行所述第一预定处理。/n

【技术特征摘要】
1.一种关系型数据库查询方法,其特征在于,包括:
确定用户查询的数据所在的节点,所述节点表示关系型数据库中的数据表;
将确定出的节点组成的集合作为备选集合,加入到第一队列中,并执行以下第一预定处理:
按照先进先出的原则从所述第一队列中取出一个备选集合;
若能够根据所述备选集合生成连接树,则根据所述连接树完成本次查询;
若不能根据所述备选集合生成连接树,则选取符合扩充要求的节点,针对选出的任一节点,分别将所述节点加入到所述备选集合中,得到一个扩充后的备选集合,并加入到所述第一队列中;若所述第一队列不为空,则重复执行所述第一预定处理。


2.根据权利要求1所述的方法,其特征在于,
该方法进一步包括:生成所述关系型数据库对应的有向图,所述关系型数据库由数据表及数据表之间的连接关系组成,将所述数据表抽象为所述有向图中的节点,将所述连接关系抽象为节点之间的边;针对所述备选集合,根据所述有向图确定出是否能够生成连接树。


3.根据权利要求2所述的方法,其特征在于,
所述连接关系包括:内连接、全外连接、左连接以及右连接;
所述将所述连接关系抽象为节点之间的边包括:对于任意两个节点,当为左连接或右连接的连接关系时,将所述连接关系抽象为单向边,当为内连接或全外连接的连接关系时,将所述连接关系抽象为双向边。


4.根据权利要求1所述的方法,其特征在于,
所述选取符合扩充要求的节点包括:选取没有位于所述备选集合中且未被选取过的节点。


5.根据权利要求1所述的方法,其特征在于,
该方法进一步包括:对于任一扩充后的备选集合,确定是否已经被加入过所述第一队列,若是,则丢弃所述扩充后的备选集合,若否,则将所述扩充后的备选集合加入到所述第一队列中。


6.根据权利要求2所述的方法,其特征在于,
所述选取符合扩充要求的节点包括:从所述备选集合中的节点的上游节点中选取没有位于所述备选集合中且未被选取过的节点。


7.根据权利要求1所述的方法,其特征在于,
该方法进一步包括:按照所加入的节点的优先级权重由高到低的顺序,依次将得到的各扩充后的备选集合加入到所述第一队列中。


8.根据权利要求2所述的方法,其特征在于,
所述若能够根据所述备选集合生成连接树,则根据所述连接树完成本次查询包括:
遍历所述备选集合中的各节点;
针对遍历到的每一节点,分别确定以所述节点为根节点是否能够生成连接树,若是,根据所述连接树完成本次查询,若否,则遍历下一节点;
若以各节点为根节点均不能生成连接树,则确定不能根据所述备选集合生成连接树。


9.根据权利要求8所述的方法,其特征在于,
所述针对遍历到的每一节点,分别确定以所述节点为根节点是否能够生成连接树包括:
将所述节点加入到第二队列和连接树中,并执行以下第二预定处理:
按照先进先出的原则从所述第二队列中取出一个节点;
从所述节点的下游节点中选取位于所述备选集合内且没有位于所述连接树中的节点,将选出的各节点分别加入到所述第二队列和所述连接树中;
确定所述第二队列是否为空,若不为空,则重复执行所述第二预定处理;
若为空,则确定所述连接树中是否包含所述备选集合中的所有节点,若包含所有节点,则确定以所述节点为根节点能够生成连接树,若未包含所有节点,则遍历下一节点。


10.根据权利要求8所述的方法,其特征在于,
所述遍历所述备选集合中的各节点包括:按照节点的优先级权重由高到低的顺序,遍历所述备选集合中的各节点。


11.根据权利要求9所述的方法,其特征在于,
所述将选出的各节点分别加入到所述第二队列和所述连接树中包括:按照节点的优先级权重由高到低的顺序,将选出的各节点依次加入到所述第二队列和所述连接树中。


12.一种关系型数据库查询装置,其特征在于,包括:节点确定单元以及查询处理单元;
所述节点确定单元,用于确定用户查询的数据所在的节点,所述节点表示关系型数据库中...

【专利技术属性】
技术研发人员:陈亮刘海清
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1