使用中文指令操作数据库的方法、系统、设备及存储介质与流程

专利2023-07-24  124

1.本发明涉及互联网
技术领域
:,具体涉及一种使用中文指令操作数据库的方法、系统、电子设备以及存储介质。
背景技术
::2.在计算机软件开发中,操作访问数据库是重要的一个环节。虽然国际上有标准sql语言来操作数据库,但各数据库有各自扩展部分,程序员以各种数据库自有的语言书写程序或操作,至今为止,正在使用的数据库系统有几十种,各自语法结构、功能定义都有不同,程序员都需要熟悉各自的语言,学习成本非常大。而数据库是应用系统中非常核心重要的部分,掌握操作数据库sql语言需要经过长时间的学习,只有专业人士才能使用的特殊工具,我国目前大量缺乏此类人才。3.现有所有数据库支持的sql指令都是全英文的,操作数据库需要程序员熟记这些sql指令,但是很多英文指令本身不好记忆,当程序员忘记时,需要花时间去查找资料;还有一些英文指令在使用时容易犯错,例如因为各数据库系统的微小语法差别或者中间混合了一个中文的标点符号等原因,很容易导致bug出现,需要程序员花费很大代价查找问题;另外很大一部分没有编程能力信息从业者或管理者,无法理解和读懂英文指令,但管理者需要知道程序员或程序员在自己的数据库中干了什么,有什么风险。因此对于他们来说将指令可读性摆在第一位,而编写指令排在后面。4.因此,如何提高数据库操作的效率以及可读性,让更多的非专业人士可以参与进来,成为了亟待解决的问题。技术实现要素:5.针对以上技术问题,本发明提供一种使用中文指令操作数据库的方法、系统、电子设备以及存储介质,以提高数据库操作的效率以及可读性。6.根据本发明的一方面,提供一种使用中文指令操作数据库的方法,包括如下步骤:7.构建数据库系统中文指令集;8.将所述数据库系统中文指令集与数据库系统英文指令集做映射匹配,形成中文-英文指令集;9.构建同时支持中文及英文指令的sql编译解析器;所述sql编译解析器包括依次通信连接的输入单元、sql编译解析引擎以及输出单元;所述sql编译解析引擎包括识别单元、词法分析单元、语法分析单元、语法树构建单元、指令转换单元;10.通过输入单元输入原始指令;11.通过所述sql编译解析引擎将所述原始指令转换成语法树;12.将所述语法树转换为中文和英文两种指令:13.指令转换单元识别所述语法树是否包含中文词块节点,当所述语法树不包含中文词块节点时,通过递归程序遍历所述语法树,从所述中文-英文指令集中匹配所述语法树的英文节点对应的中文指令,所有节点匹配成功后,形成中文和英文两种指令;当所述原始指令包含中文时,通过递归程序遍历所述语法树,从所述中文-英文指令集中匹配所述语法树包含的中文词块节点对应的英文指令,匹配所述语法树包含的英文词块节点对应的中文指令,所有节点匹配成功后,形成中文和英文两种指令;任意所述节点匹配失败,则提交语法错误信息;全部所述节点匹配成功后,将所述英文指令提交数据库执行;14.输出单元输出转换后的中文指令和英文指令,并将所述原始指令及转换后的中文指令和/或英文指令存储入存储模块内。15.在本发明的一实施方式中,所述指令集的表现方式包括但不限于文件形式、程序中对象或数组的形式、存储在数据库中表的形式。16.在本发明的一实施方式中,所述指令集的指令类型包括但不限于:实体类、数据操作类、实体操作类、控制类、常见函数类、用户权限类。17.在本发明的一实施方式中,所述通过所述sql编译解析引擎将所述原始指令转换成语法树;包括如下步骤:18.识别单元将所述原始指令识别为可读格式文本;19.词法分析单元对所述可读格式文本进行词法解析,将所述可读格式文本解析为若干词块作为所述语法树的节点,并识别所述词块所在节点的语言类型为中文词块节点或英文词块节点,所述语言类型作为标签存储在该词块节点内;20.语法分析单元对所述可读格式文本进行语法分析,确定所述语法树的头节点以及分支节点;21.语法树构建单元将各节点构建成语法树。22.在本发明的一实施方式中,所述中文指令集内的中文指令格式,在结构上与数据库现有英文指令一致。23.根据本发明的另一方面,提供一种使用中文指令操作数据库的系统,所述系统包括:24.中文指令集构建模块,用于构建数据库系统中文指令集;25.映射匹配模块,用于将所述数据库系统中文指令集与数据库系统英文指令集做映射匹配,形成中文-英文指令集;26.sql编译解析器,用于编译解析同时包含中文及英文的指令;27.所述sql编译解析器包括依次通信连接的输入单元、sql编译解析引擎以及输出单元;所述sql编译解析引擎包括识别单元、词法分析单元、语法分析单元、语法树构建单元、指令转换单元;28.所述输入单元,用于输入原始指令;29.所述sql编译解析引擎,用于将所述原始指令转换成语法树;30.所述识别单元,用于将所述原始指令识别为可读格式文本;31.所述词法分析单元,用于对所述可读格式文本进行词法解析,将所述可读格式文本解析为若干词块作为所述语法树的节点,并识别所述词块所在节点的语言类型为中文词块节点或英文词块节点,将所述语言类型作为标签存储在该词块节点内;32.所述语法分析单元,用于对所述可读格式文本进行语法分析,确定所述语法树的头节点以及分支节点;33.所述语法树构建单元,用于将各节点构建成语法树。34.所述指令转换单元,用于识别所述语法树是否包含中文词块节点,并将所述语法树转换为中文和英文两种指令;35.所述输出单元,用于输出转换后的中文指令和英文指令,并将所述原始指令及转换后的中文指令和/或英文指令存储入存储模块内。36.根据本发明的另一方面,提供一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如上所述使用中文指令操作数据库的方法的步骤。37.根据本发明的又一方面,提供一种电子设备,所述电子设备包括:38.处理器;39.存储介质,其上存储有计算机程序,所述计算机程序被所述处理器运行时执行如上所述使用中文指令操作数据库的方法的步骤。40.本发明可以以全中文指令方式或中英文混合的方式访问目标数据库,在此方案基础上,可以构建兼容多种数据库的中英文混合指令系统。克服了现有所有数据库支持的sql指令都是全英文的弊端,全中文或中英文混合的指令更方便中国程序员进行记忆,降低出错率,降低了学习成本和容错成本;另外可以方便没有编程能力信息从业者或管理者,理解和读懂数据库操作指令,降低了管理风险,提高了操作指令的的可读性。附图说明41.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。42.图1是本发明一实施例中使用中文指令操作数据库的方法的流程图。43.图2是本发明一实施例中使用中文指令操作数据库的方法的局部流程图。44.图3是本发明一实施例中使用中文指令操作数据库的系统的模块图。45.图4是本发明一实施例中电子设备的结构示意图。46.图5是本发明一实施例中计算机可读存储介质的结构示意图。47.图6是本发明一实施例中语法树的结构示意图。具体实施方式48.为了使本发明的叙述更加详尽与完备,可参照所附图及以下所述各种实施例,图中相同的号码代表相同或相似的组件。另一方面,众所周知的组件与步骤并未描述于实施例中,以避免对本发明造成不必要的限制。在实施方式与权利要求中,涉及“连接”的描述,其可泛指一组件通过其他组件而间接耦合至另一组件,或是一组件无须通过其他组件而直接连接至另一组件。在实施方式与权利要求中,涉及“联机”的描述,其可泛指一组件通过其他组件而间接与另一组件进行有线与/或无线通信,或是一组件无须通过其他组件而实体连接至另一组件。在实施方式与权利要求中,除非内文中对于冠词有所特别限定,否则“一”与“该”可泛指单一个或多个。本文所使用的“约”、“大约”或“大致”是用以修饰任何可微小变化的数量,但这种微小变化并不会改变其本质。在实施方式中若无特别说明,则代表以“约”、“大约”或“大致”所修饰的数值的误差范围一般是容许在百分之二十以内,较佳地是于百分之十以内,而更佳地则是于百分之五以内。49.根据本发明的一方面,提供一种使用中文指令操作数据库的方法。图1是本发明一实施例中使用中文指令操作数据库的方法的流程图。如图1所示,该方法可以包括如下步骤:50.s100:构建数据库系统中文指令集;51.s200:将所述数据库系统中文指令集与数据库系统英文指令集做映射匹配,形成中文‑ꢀ英文指令集;需要说明的是,这里建立的中文-英文指令集,通过中文指令与英文指令的映射匹配建立,如果是输入是英文指令则生成中文指令,如果输入是中文指令则生成英文指令,最终将形成完整的纯中文指令的sql指令和纯英文指令的sql指;52.本发明建立了一整套数据库操作的中文指令集,包含数据库所有操作的完整指令,并兼容行业中多种主流数据库,将中文指令集与相关数据库英文指令的做映射和匹配。方便程序员以全中文指令方式或中英文混合的方式访问目标数据库。53.s300:构建同时支持中文及英文指令的sql编译解析器;由于程序员输入的指令可能是中文也可能是英文,甚至是中英文混合,所以首先需要构建一个同时支持中英文指令的数据库sql编译解析器,需要说明的是,所述sql编译解析器能同时识别中文指令和英文指令,而不是分开识别,否则混合输入指令时就不能识别。54.所述sql编译解析器包括依次通信连接的输入单元、sql编译解析引擎以及输出单元;所述sql编译解析引擎包括识别单元、词法分析单元、语法分析单元、语法树构建单元、指令转换单元;55.s400:通过输入单元输入原始指令;56.s500:通过所述sql编译解析引擎将所述原始指令转换成语法树;57.s600:图2是本发明一实施例中使用中文指令操作数据库的方法的局部流程图。如图2所示,将所述语法树转换为中文和英文两种指令包括如下步骤:58.指令转换单元识别所述语法树是否包含中文词块节点,当所述语法树不包含中文词块节点时,通过递归程序遍历所述语法树,从所述中文-英文指令集中匹配所述语法树的英文节点对应的中文指令;当所述原始指令包含中文时,通过递归程序遍历所述语法树,从所述中文‑ꢀ英文指令集中匹配所述语法树包含的中文词块节点对应的英文指令,匹配所述语法树包含的英文词块节点对应的中文指令;59.任意所述节点匹配失败,则提交语法错误信息;所有节点匹配成功后,形成中文和英文两种指令,将所述英文指令提交数据库执行;60.s700:输出单元输出转换后的中文指令和英文指令,并将所述原始指令及转换后的中文指令和/或英文指令存储入存储模块内。61.本发明不仅方便专业编程人员使用,在非研发信息管理人员审核程序员输入的数据库操作指令时,可自动将含英文的指令转换成中文指令,使得信息管理人员方便读懂这些指令,并能了解和控制风险。具体而言,由于输入原始指令存在三种情况:纯中文指令输入、纯英文指令输入、中英文混合指令输入,所以在输出时最多可能存在三种形式的sql指令。即原始指令、中文指令、英文指令。它们的作用各自不同,原始指令方便用于工程师输入和修改,中文指令方便用于后续管理人员的审核或阅读,英文指令则提交给对应的数据库系统,由数据库执行英文指令,并反馈执行结果给工程师。62.本发明提出以中文或中英文指令混合的方式取代传统只有英文指令代码输入方式的来操作数据库的方案,目的在于促动计算机程序设计语言更加易学、易用、易于理解,使用简单并且方便交流。相对传统方式而言,以全中文指令方式或中英文混合的方式访问目标数据库,不仅操作直观,而且可以中英文指令之间自由切换、混合使用,更加自由、亲切,大大提高工作效率。63.在本发明的一实施方式中,所述指令集的表现方式包括但不限于文件形式、程序中对象或数组的形式、存储在数据库中表的形式。64.在本发明的一实施方式中,所述指令集的指令类型包括但不限于:实体类、数据操作类、实体操作类、控制类、常见函数类、用户权限类。65.具体的,所述中文指令集可以如下:66.1、实体类:67.数据库数据表表字段表索引存储过程视图分区函数触发器规则约束文件计划任务日程日志ꢀꢀꢀꢀꢀ68.2、数据操作类:69.查询去重所有前来于条件排序倒排正排分组具备使用关联于左右内插表进入赋值列表更新赋值删除清空执行去重合并合并所有以下当那么合并匹配全当作经由70.3、实体操作类[0071][0072][0073]4、控制类:[0074]开始结束存在不是与或如果否则介于类似针对包含于空值计数循环条件循环异常捕获捕获返回返回值中断继续跳转ꢀꢀꢀꢀꢀꢀ[0075]5、常见函数类:[0076]字符截取字符位置去空右去空左去空字符长度小写大写替换强制转换类型转换日期增加日期差异日期段名日期段值当前日期格式转换相同返空为空替换平均值自增最大值最小值求和标准差总标准差方差总体方差行数ꢀꢀꢀꢀꢀꢀ[0077]6、用户权限类:[0078]登录用户密码授权拒绝收回[0079]所述中文-英文指令集可以如下:1、实体类:[0080][0081][0082]2、数据操作类:[0083][0084][0085]3、实体操作类:[0086]创建create修改alter弃用drop增加add备份backup恢复restore在用using启用use[0087]4、控制类[0088][0089][0090]5、常见函数类[0091][0092][0093]6、用户权限类:[0094]登录login、logon用户user、username密码password授权grant拒绝deny收回invoke[0095]图2是本发明一实施例中使用中文指令操作数据库的方法的局部流程图。如图2所示,所述通过所述sql编译解析引擎将所述原始指令转换成语法树;包括如下步骤:[0096]识别单元将所述原始指令识别为可读格式文本;[0097]词法分析单元对所述可读格式文本进行词法解析,将所述可读格式文本解析为若干词块作为所述语法树的节点,并识别所述词块所在节点的语言类型为中文词块节点或英文词块节点,所述语言类型作为标签存储在该词块节点内;[0098]语法分析单元对所述可读格式文本进行语法分析,确定所述语法树的头节点以及分支节点;需要说明的是,在语法分析时,需要全语法分析,并检查语法,如果发现语法上存在错误,则自动修正错误和提示错误,最终形成一个中英文混合的语法树结构。[0099]语法树构建单元将各节点构建成语法树。[0100]具体的,以如下数据查询的中英文混合指令为例如下:[0101]select*fromtable1条件id》10andid《100排序id正排[0102]识别单元将所述原始指令识别为可读格式文本;[0103]词法分析单元对所述可读格式文本进行词法解析,将所述可读格式文本解析为若干词块作为所述语法树的节点,并识别所述词块所在节点的语言类型为中文词块节点或英文词块节点,所述语言类型作为标签存储在该词块节点内;语法分析单元对所述可读格式文本进行语法分析,确定所述语法树的头节点以及分支节点;语法树构建单元将各节点构建成语法树。最终构建成的语法树如图6所示。[0104]该语法树中,同时包含中文指令和英文指令,该混合指令的语法结构遵循数据库英文指令的语法来构建语法树。构建后的语法树的层级可以自由分层,没有明确的限制。[0105]在本发明的一实施方式中,所述中文指令集内的中文指令格式,在结构上与数据库现有英文指令一致。[0106]本发明打破了中国程序员必须需要使用纯英文指令操作数据库的瓶颈,革新了中文或中英文混合的自由输入的数据库操作方式,程序员记得英文指令就输入英文指令,记得中文指令就输入中文指令,如果都只记得一部分,就输入中英文混合指令;方便高效。本发明设计的中文指令集可以同时兼容当前几乎全部主流数据库,程序员针对不同数据库可以使用同一套中文指令,易于理解和记忆,进一步降低了程序员的学习成本;同时,程序员在操作数据库时,管理者往往希望掌控程序员的行为,保证系统安全及数据安全,这时读懂指令至关重要,本发明可以自由切换中英文指令,英文指令也能转换成中文指令,方便管理者理解,这对于所有应用系统的信息管理者都带来巨大帮助,具有较高的实用性。[0107]根据本发明的另一方面,提供一种使用中文指令操作数据库的系统。图3是本发明一实施例中使用中文指令操作数据库的系统的模块图。如图3所示,本实施例中使用中文指令操作数据库的系统800包括中文指令集构建模块810、映射匹配模块820、sql编译解析器830、存储模块840;所述sql编译解析器830包括:输入单元831、sql编译解析引擎832、输出单元833;所述sql编译解析引擎832包括:识别单元301、词法分析单元302、语法分析单元303、语法树构建单元304、指令转换单元305;[0108]所述中文指令集构建模块810,用于构建数据库系统中文指令集;[0109]所述映射匹配模块820,用于将所述数据库系统中文指令集与数据库系统英文指令集做映射匹配,形成中文-英文指令集;[0110]所述sql编译解析器830,用于编译解析同时包含中文及英文的指令,包括依次通信连接的输入单元831、sql编译解析引擎832、输出单元833;[0111]所述输入单元831,用于输入原始指令;[0112]所述sql编译解析引擎832,用于将所述原始指令转换成语法树;[0113]所述识别单元301,用于将所述原始指令识别为可读格式文本;[0114]所述词法分析单元302,用于对所述可读格式文本进行词法分割,将所述可读格式文本分割为若干词块作为所述语法树的节点,并识别所述词块所在节点的语言类型为中文词块节点或英文词块节点,将所述语言类型作为标签存储在该词块节点内;[0115]所述语法分析单元303,用于对所述可读格式文本进行语法分析,确定所述语法树的头节点以及分支节点;[0116]所述语法树构建单元304,用于将各节点构建成语法树。[0117]所述指令转换单元305,用于识别所述语法树是否包含中文词块节点,并将所述语法树转换为中文和英文两种指令;[0118]所述输出单元833,用于输出转换后的中文指令和英文指令,并将所述原始指令及转换后的中文指令和/或英文指令存储入存储模块内。[0119]本发明构建的中文指令集更符合中国人的习惯,中文或中英文混合指令操作数据库日后必会成为国内数据库操作语言的发展趋势。本发明的sql编译解析器可以编译解析同时包含中文及英文的指令,使程序员的工作效率大大提高,以往程序员在输入英文指令时,经常会碰到关键符号没有切换成英文符号的情况,但数据库系统不能识别中文符号,例如逗号、括号、单引号。但这些错误视觉差异很小,有时要花费大量时间纠错。本发明完全兼容这些中英文全角或半角符号,程序员无需关注这些问题,而这些问题又会经常碰到,特别是对于新手来说,效率大大提升,使得程序员常规语法错误查找的效率提升50%以上。[0120]根据本发明的又一方面,提供一种电子设备,所述电子设备包括:[0121]处理器;[0122]存储介质,其上存储有计算机程序,所述计算机程序被所述处理器运行时执行如上所述使用中文指令操作数据库的方法的步骤。[0123]下面参照图4来描述根据本技术的一个实施例中的电子设备600。其中,图4显示的电子设备600仅仅是一个示例,不应对本技术实施例的功能和使用范围带来任何限制。[0124]如图4所示,电子设备600以通用计算设备的形式表现。设备600的组件可以包括但不限于:至少一个处理器610、至少一个存储单元620、连接不同系统组件(包括存储单元620和处理器610)的总线630、显示单元640等。[0125]其中,存储单元存储有程序代码,程序代码可以被处理器610执行,使得处理器610执行本说明书上述电子处方流转处理方法部分中描述的根据本技术各种示例性实施方式的步骤。例如,处理器610可以执行以上方法中的步骤。[0126]存储单元620可以包括易失性存储单元形式的存储介质,例如随机存取存储单元(ram)6201和/或高速缓存存储单元6202,还可以进一步包括只读存储单元(rom)6203。[0127]存储单元620还可以包括具有一组(至少一个)程序模块6205的程序/实用工具6204,这样的程序模块6205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。[0128]总线630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理器或者使用多种总线结构中的任意总线结构的局域总线。[0129]电子设备600也可以与一个或多个外部设备700(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得租户能与该电子设备600交互的设备通信,和/或与使得该电子设备600能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口650进行。并且,电子设备600还可以通过网络102适配器660与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。网络适配器660可以通过总线630与电子设备600的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。[0130]目前国内数据库市场规模估计高达247亿元,未来五年或将迎来10倍增长,还有相当比例的免费数据库未计算在内,而这些数据库都不带中文指令属性,如果支持中英文指令后前文所述带来的效率提升、学习成本降低、交流方便性的提升等,将给行业带来巨大效益,由此相关系统及电子设备的将具有巨大的商业价值和市场前景。因此本发明具有显著的技术进步和较高的实用性。[0131]根据本发明的另一方面,提供一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如上所述使用中文指令操作数据库的方法的步骤。[0132]参考图5,在一种实施方式中,用于实现上述方法的程序产品900可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,且可以在服务器上运行。然而,本领域技术人员应能理解,本技术所指的程序产品不限于此,计算机存储介质可以是任何包含或存储程序的有形介质,且该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。[0133]需要注意的是,本技术可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(asic)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本技术的软件程序可以通过处理器执行以实现上文步骤或功能。同样地,本技术的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,ram存储器,磁或光驱动器或软磁盘及类似设备。另外,本技术的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。[0134]另外,本技术的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本技术的方法或技术方案。本领域技术人员应能理解,计算机程序指令在计算机存储介质中的存在形式包括但不限于源文件、可执行文件、安装包文件等,相应地,计算机程序指令被计算机执行的方式包括但不限于:该计算机直接执行该指令,或者该计算机编译该指令后再执行对应的编译后程序,或者该计算机读取并执行该指令,或者该计算机读取并安装该指令后再执行对应的安装后程序。在此,计算机存储介质可以是可供计算机访问的任意可用的计算机可读存储介质或通信介质。[0135]通信介质包括藉此包含例如计算机可读指令、数据结构、程序模块或其他数据的通信信号被从一个系统传送到另一系统的介质。通信介质可包括有导的传输介质(诸如电缆和线,例如光纤、同轴等)和能传播能量波的无线(未有导的传输)介质,诸如声音、电磁、rf、微波和红外。计算机可读指令、数据结构、程序模块或其他数据可被体现为例如无线介质(诸如载波或诸如被体现为扩展频谱技术的一部分的类似机制)中的已调制数据信号。术语“已调制数据信号”指的是其一个或多个特征以在信号中编码信息的方式被更改或设定的信号。调制可以是模拟的、数字的或混合调制技术。[0136]作为示例而非限制,计算机可读存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动的介质。例如,计算机可读存储介质包括(但不限于)易失性存储器,诸如随机存储器(ram,dram,sram);以及非易失性存储器,诸如闪存、各种只读存储器(rom,prom,eprom,eeprom)、磁性和铁磁/铁电存储器(mram,feram);以及磁性和光学存储设备(硬盘、磁带、cd、dvd);或其它现在已知的介质或今后开发的能够存储供计算机系统使用的计算机可读信息或数据。[0137]总而言之,本发明可以以全中文指令方式或中英文混合的方式访问目标数据库,在此方案基础上,可以构建兼容多种数据库的中英文混合指令系统。克服了现有所有数据库支持的sql指令都是全英文的弊端,全中文或中英文混合的指令更方便中国程序员进行记忆,降低出错率,降低了学习成本和容错成本;另外可以方便没有编程能力信息从业者或管理者,理解和读懂数据库操作指令,降低了管理风险,提高了操作指令的的可读性。此外,本发明也具有潜在巨大的商业价值。[0138]以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属
技术领域
:的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。当前第1页12当前第1页12
技术特征:
1.使用中文指令操作数据库的方法,其特征在于,包括:构建数据库系统中文指令集;将所述数据库系统中文指令集与数据库系统英文指令集做映射匹配,形成中文-英文指令集;构建同时支持中文及英文指令的sql编译解析器;所述sql编译解析器包括依次通信连接的输入单元、sql编译解析引擎以及输出单元;所述sql编译解析引擎包括识别单元、词法分析单元、语法分析单元、语法树构建单元、指令转换单元;通过输入单元输入原始指令;通过所述sql编译解析引擎将所述原始指令转换成语法树;将所述语法树转换为中文和英文两种指令:指令转换单元识别所述语法树是否包含中文词块节点,当所述语法树不包含中文词块节点时,通过递归程序遍历所述语法树,从所述中文-英文指令集中匹配所述语法树的英文节点对应的中文指令,所有节点匹配成功后,形成中文和英文两种指令;当所述原始指令包含中文时,通过递归程序遍历所述语法树,从所述中文-英文指令集中匹配所述语法树包含的中文词块节点对应的英文指令,匹配所述语法树包含的英文词块节点对应的中文指令,所有节点匹配成功后,形成中文和英文两种指令;任意所述节点匹配失败,则提交语法错误信息;全部所述节点匹配成功后,将所述英文指令提交数据库执行;输出单元输出转换后的中文指令和英文指令,并将所述原始指令及转换后的中文指令和/或英文指令存储入存储模块内。2.根据权利要求1所述的使用中文指令操作数据库的方法,其特征在于,所述指令集的表现方式包括但不限于文件形式、程序中对象或数组的形式、存储在数据库中表的形式。3.根据权利要求1所述的使用中文指令操作数据库的方法,其特征在于,所述指令集的指令类型包括但不限于:实体类、数据操作类、实体操作类、控制类、常见函数类、用户权限类。4.根据权利要求1所述的使用中文指令操作数据库的方法,其特征在于,通过所述sql编译解析引擎将所述原始指令转换成语法树;包括如下步骤:识别单元将所述原始指令识别为可读格式文本;词法分析单元对所述可读格式文本进行词法解析,将所述可读格式文本解析为若干词块作为所述语法树的节点,并识别所述词块所在节点的语言类型为中文词块节点或英文词块节点,所述语言类型作为标签存储在该词块节点内;语法分析单元对所述可读格式文本进行语法分析,确定所述语法树的头节点以及分支节点;语法树构建单元将各节点构建成语法树。5.根据权利要求1所述的使用中文指令操作数据库的方法,其特征在于,所述中文指令集内的中文指令格式,在结构上与数据库现有英文指令一致。6.使用中文指令操作数据库的系统,其特征在于,所述系统包括:中文指令集构建模块,用于构建数据库系统中文指令集;映射匹配模块,用于将所述数据库系统中文指令集与数据库系统英文指令集做映射匹配,形成中文-英文指令集;
sql编译解析器,用于编译解析同时包含中文及英文的指令;所述sql编译解析器包括依次通信连接的输入单元、sql编译解析引擎以及输出单元;所述sql编译解析引擎包括识别单元、词法分析单元、语法分析单元、语法树构建单元、指令转换单元;所述输入单元,用于输入原始指令;所述sql编译解析引擎,用于将所述原始指令转换成语法树;所述识别单元,用于将所述原始指令识别为可读格式文本;所述词法分析单元,用于对所述可读格式文本进行词法解析,将所述可读格式文本解析为若干词块作为所述语法树的节点,并识别所述词块所在节点的语言类型为中文词块节点或英文词块节点,将所述语言类型作为标签存储在该词块节点内;所述语法分析单元,用于对所述可读格式文本进行语法分析,确定所述语法树的头节点以及分支节点;所述语法树构建单元,用于将各节点构建成语法树。所述指令转换单元,用于识别所述语法树是否包含中文词块节点,并将所述语法树转换为中文和英文两种指令;所述输出单元,用于输出转换后的中文指令和英文指令,并将所述原始指令及转换后的中文指令和/或英文指令存储入存储模块内。7.一种存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1至5中任一项所述使用中文指令操作数据库的方法的步骤。8.一种电子设备,其特征在于,所述电子设备包括:处理器;存储介质,其上存储有计算机程序,所述计算机程序被所述处理器运行时执行如权利要求1至5中任一项所述使用中文指令操作数据库的方法的步骤。

技术总结
本发明公开了一种使用中文指令操作数据库的方法、系统、设备及存储介质,所述方法包括:构建数据库系统中文指令集;将所述数据库系统中文指令集与数据库系统英文指令集做映射匹配,形成中文-英文指令集;构建同时支持中文及英文指令的SQL编译解析器;将所述语法树转换为中文和英文两种指令:输出单元输出转换后的中文指令和英文指令,并将所述原始指令及转换后的中文指令和/或英文指令存储入存储模块内。本发明可以以全中文指令方式或中英文混合的方式访问目标数据库,兼容多种数据库的中英文混合指令系统,有效提高了数据库操作与管理的效率。理的效率。理的效率。


技术研发人员:付春林
受保护的技术使用者:上海迈伺通健康科技有限公司
技术研发日:2022.05.27
技术公布日:2022/11/1
转载请注明原文地址: https://tieba.8miu.com/read-4117.html

最新回复(0)