本发明专利技术提供了一种面向数据库访问的计算流图构建方法、访问方法及装置,该构建方法包括:获取SQL语句对应的语法树;根据从所述语法树获取的操作关键字,将所述语法树中的节点转换成计算流图节点,其中,所述操作关键字为From、Where、Group by、Having、Order by、Select或Limit;根据From、Where、Group by、Having、Order by、Select、Limit的从左到右的顺序,为各所述计算流图节点添加有向边;根据添加有向边后的所有所述计算流图节点生成计算流图。通过上述方案能够为数据库处理算法的优化提供便利。
Construction method, access method and device of computational flow graph for database access
【技术实现步骤摘要】
面向数据库访问的计算流图构建方法、访问方法及装置
本专利技术涉及计算机
,尤其涉及一种面向数据库访问的计算流图构建方法、访问方法及装置。
技术介绍
现今,无论是大型企业或是中小企业,几乎都有各自需要使用数据库的业务,最为典型的就是各类电子商务平台和金融领域,需要大量的数据处理,而且对于响应速度有极高的要求,可能操作每慢一秒都意味巨额的损失,他们都需要能够提供持续到达且快速响应的数据流。技术发展至今,数据库的实现已经不再是技术瓶颈,各个企业已经不再满足“能用”这个技术层面,而是希望后端在进行数据库操作时,能够尽可能快地从数据库获得结果集。对于数据库而言,其本质上是一个与应用程序彼此独立的数据集合。早期,开发者就总结了数据和逻辑彼此分离的诸多好处。而SQL(StructuredQueryLanguage,结构化查询语言)语言与数据库相应而生,目的是为了存取数据以及查询、更新和管理关系数据库系统。它是一种高度“非过程化”的语言,最为典型的特征就是用户无需关心“怎么做”,只需向数据库提出“做什么”。例如,用户只需要输入SQL语句“SelectnamefromTableA”,就能从数据库名为“TableA”的表之中取出名为“name”列的值。若要对数据库处理算法进行优化,以求提高数据库操作的执行效率,就需要技术人员阅读大量代码去理解现有数据的具体操作。然而,数据库中的操作过程和数据关系非常繁琐,给技术人员优化数据库处理算法带来很大困难。
技术实现思路
本专利技术提供了一种面向数据库访问的计算流图构建方法、访问方法及装置,以为数据库处理算法的优化提供便利。为了达到上述目的,本专利技术采用以下方案实现:根据本专利技术实施例的一个方面,提供了一种面向数据库访问的计算流图构建方法,包括:获取SQL语句对应的语法树;根据从所述语法树获取的操作关键字,将所述语法树中的节点转换成计算流图节点,其中,所述操作关键字为From、Where、Groupby、Having、Orderby、Select或Limit;根据From、Where、Groupby、Having、Orderby、Select、Limit的从左到右的顺序,为各所述计算流图节点添加有向边;根据添加有向边后的所有所述计算流图节点生成计算流图。在一些实施例中,根据添加有向边后的所有所述计算流图节点生成计算流图之前,面向数据库访问的计算流图构建方法还包括:为各所述计算流图节点添加名称。根据添加有向边后的所有所述计算流图节点生成计算流图,包括:根据添加名称且添加有向边后的所有所述计算流图节点生成计算流图。在一些实施例中,为各所述计算流图节点添加名称,包括:根据操作关键字、操作参数、及所述计算流图节点所对应的前置节点,为相应所述计算流图节点添加名称。在一些实施例中,根据从所述语法树获取的操作关键字,将所述语法树中的节点转换成计算流图节点,包括:从所述语法树获取的操作关键字,根据每个操作关键字的操作内容对应生成一个计算流图节点。在一些实施例中,根据From、Where、Groupby、Having、Orderby、Select、Limit的从左到右的顺序,为各所述计算流图节点添加有向边,包括:确认在From、Where、Groupby、Having、Orderby、Select、Limit的从左到右的顺序中排在最左边的第一操作关键字对应的所有第一计算流图节点;确认除所述第一操作关键字之外在From、Where、Groupby、Having、Orderby、Select、Limit的从左到右的顺序中排在最左边的第二操作关键字对应的所有第二计算流图节点;生成由各所述第一计算流图节点指向各所述第二计算流图节点的有向边。在一些实施例中,从所述语法树获取的操作关键字,根据每个操作关键字的操作内容对应生成一个计算流图节点,包括:从所述语法树获取的所有操作关键字,按照From、Where、Groupby、Having、Orderby、Select、Limit的从左到右的顺序,根据每个操作关键字的操作内容对应生成一个计算流图节点。在一些实施例中,获取SQL语句对应的语法树,包括:获取通过解析一条SQL语句得到的语法树。根据本专利技术实施例的另一个方面,提供了一种数据库访问方法,包括:接收SQL语句,并解析SQL语句得到语法树;利用上述任一实施例所述的面向数据库访问的计算流图构建方法构建计算流图;将构建的计算流图发送至数据库,以基于构建的计算流图执行查询操作并返回查询得到的结果集。根据本专利技术实施例的又一个方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一实施例所述的面向数据库访问的计算流图构建方法或上述任一实施例所述的数据库访问方法的步骤。根据本专利技术实施例的再一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一实施例所述的面向数据库访问的计算流图构建方法或上述任一实施例所述的数据库访问方法的步骤。本专利技术实施例的,面向数据库访问的计算流图构建方法、数据库访问方法、电子设备及计算机可读存储介质,通过对数据库访问构建计算流图,能够很清晰的表达出数据之中每次数据库操作之间的关系,可以显著表示数据库的数据依赖关系,并且可以为数据库处理算法的优化和效率提升提供很大的便利。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:图1是本专利技术一实施例的面向数据库访问的计算流图构建方法的流程示意图;图2是本专利技术一实施例的数据库访问方法的流程示意图;图3是本专利技术一实施例的面向数据库访问的计算流图构建方法的流程示意图;图4是本专利技术一具体实施例的计算流图构建方法的伪代码示意图;图5是本专利技术一具体实施例中的取出“From”节点的示意图;图6是本专利技术一具体实施例中的取出“Where”节点的示意图;图7是本专利技术一具体实施例中的取出“Select”节点的示意图;图8是本专利技术一具体实施例中的生成“And”节点的示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本专利技术实施例做进一步详细说明。在此,本专利技术的示意性实施例及其说明用于解释本专利技术,但并不作为对本专利技术的限定。需要预先说明的是,下述实施例或示例的描述或其中所提及的特征可以以相同或类似的方式,与其他实施例或示例中的特征组合,或替换其他实施例或示例中的特征,以形成可能的实施方式。另外,本文所使用的术语“包括/包含”是指特征、要素、步骤或组件的存在,但并不排除还存在一个或多个其他特征、要素、步骤或组件。传统的数据库查询本文档来自技高网...
【技术保护点】
1.一种面向数据库访问的计算流图构建方法,其特征在于,包括:/n获取SQL语句对应的语法树;/n根据从所述语法树获取的操作关键字,将所述语法树中的节点转换成计算流图节点,其中,所述操作关键字为From、Where、Group by、Having、Order by、Select或Limit;/n根据From、Where、Group by、Having、Order by、Select、Limit的从左到右的顺序,为各所述计算流图节点添加有向边;/n根据添加有向边后的所有所述计算流图节点生成计算流图。/n
【技术特征摘要】
1.一种面向数据库访问的计算流图构建方法,其特征在于,包括:
获取SQL语句对应的语法树;
根据从所述语法树获取的操作关键字,将所述语法树中的节点转换成计算流图节点,其中,所述操作关键字为From、Where、Groupby、Having、Orderby、Select或Limit;
根据From、Where、Groupby、Having、Orderby、Select、Limit的从左到右的顺序,为各所述计算流图节点添加有向边;
根据添加有向边后的所有所述计算流图节点生成计算流图。
2.如权利要求1所述的面向数据库访问的计算流图构建方法,其特征在于,
根据添加有向边后的所有所述计算流图节点生成计算流图之前,还包括:
为各所述计算流图节点添加名称;
根据添加有向边后的所有所述计算流图节点生成计算流图,包括:
根据添加名称且添加有向边后的所有所述计算流图节点生成计算流图。
3.如权利要求2所述的面向数据库访问的计算流图构建方法,其特征在于,为各所述计算流图节点添加名称,包括:
根据操作关键字、操作参数、及所述计算流图节点所对应的前置节点,为相应所述计算流图节点添加名称。
4.如权利要求1所述的面向数据库访问的计算流图构建方法,其特征在于,根据从所述语法树获取的操作关键字,将所述语法树中的节点转换成计算流图节点,包括:
从所述语法树获取的操作关键字,根据每个操作关键字的操作内容对应生成一个计算流图节点。
5.如权利要求4所述的面向数据库访问的计算流图构建方法,其特征在于,根据From、Where、Groupby、Having、Orderby、Select、Limit的从左到右的顺序,为各所述计算流图节点添加有向边,包括:
确认在From、Where、...
【专利技术属性】
技术研发人员:鄢贵海,王毅豪,龚施俊,
申请(专利权)人:中科驭数北京科技有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。