APP下载

基于人工智能的数据库查询系统

2018-11-07何雪锋

电脑知识与技术 2018年21期
关键词:人工智能数据库

何雪锋

摘要:目前大多数据库管理工具都以SQL语句操作为主,上手需要一定门槛,且不够人性化,使用率低。该文中的数据库查询系统,以人工智能解析自然语言来实现智能化快速查询,脱离SQL语句的束缚,降低使用门槛,更加便捷地操作数据库。

关键词:数据库;人工智能;自然语言

中图分类号:TP18 文献标识码:A 文章编号:1009-3044(2018)21-0208-02

Abstract: most of the current database management tool in the SQL statement to operate mainly to use requires a certain threshold, and the lack of humanization, low utilization rate, the database query system based on artificial intelligence, natural language parsing to achieve fast query intelligent, from the shackles of the SQL statement, reduce the threshold for the use of more compact and convenient operation database.

Key words: database; artificial intelligence

1 背景

随着信息系统的普及和发展,数据的地位逐渐变得格外重要,人们对数据的需求也随之增多,然而有时候数据过于庞大和复杂,对于我们来说反而是一种困扰,要从其中找到需要的数据是一件不容易的事,因此出现了数据挖掘、数据分析等一系列新技术,对于普通人来说,这些新兴技术专业性强、使用门槛较高。近年来火热的人工智能技术使得数据操作变得简便起来,人工智能的核心在于让某项传统的业务更加智能化、简单化,其速度和效率上都会比传统操作更加迅速,同时随着深度神经网络学习的出现,人工智能的自我学习自我纠正变得更加完善和稳定,正是如此,利用人工智能的机器人对数据进行操作变得很有可能,也更加适用于传统用户,该文将着重讲述通过人工智能的方式对数据进行更加简便的操作。

2 需求分析

基于人工智能的数据库查询系统主要用于对复杂数据库简便快速地查询,获取直观的数据分析结果。主要通过如下几个模块完成系统的设计。

系统管理模块:用于实现用户的登录、注册。

数据查询模块:用于实现信息的查询输出。

自然语言解析模块:用于将自然语言解析为可被数据库识别的SQL语言。

数据订阅模块:用于对指定数据信息的订阅。

用户权限管理模块:用于对用户组下权限分配操作,数据更加安全可控。

辅助功能:用于让用户使用更加人性化,如:语音输入、数据可视化、历史纪录等功能。

3 系统设计

3.1 框架设计

由于项目实际使用中,涉及数据量大,数据计算以及数据分析耗费资源较多,因此我们将系统整体分为三个端进行开发,以保证高效的工作效率和过硬的软件质量:

客戶端:客户端分为Web和Android端,呈现服务端返回的数据,以及处理客户操作,给用户编写快捷的操作体验。

业务服务端:业务服务端处理系统信息数据的写入、更新。

数据服务端:主要用于数据查询、自然语言分析、数据订阅以及数据分析。整体架构如图1所示。

3.2 系统模块设计

下面分析系统的主要模块:

自然语言解析模块:自然语言解析模块:将用户输入的查询内容进行解析并建立条件结构以及层级,最终转化为内部查询模块可用的数据结构。由于针对的是自然语言,所以用户输入内容不能保证绝对是查询数据的命令,因此采用关键字和简单的指令作为查询约束,当语句进入语言解析时会进行一个大致判断,如果不是查询内容则将内容转交给第三方聊天机器人(也可选择自己开发聊天功能,此处预留扩展接口),反之通过检测会进入语句分解。语句分解为该模块的核心功能,通过内部的关键字以及条件结构将指定的内容拆分,拆分后将满足条件的语句块建立为条件体,并且建立层级关系,最后将数据整理为一个查询模块专用的条件结构集合。

数据查询模块:数据查询模块将整理好的条件结果集进行数据搜索,最后将搜索到的数据打包发送到业务服务器。用户输入查询内容后,自然语言解析模块将其转化为条件结果集合,同时向管理组事务管理模块获取该管理组的数据库结构信息,最后该模块条件结构集的类型配合多重遍历方式查找最优数据范围,最后整理数据匹配率以及数据内容。数据查询流程如图2所示。

项目数据库操作模块:作为项目最基本的数据库操作工具,用于从数据库中获取该项目的一些必要数据,比如用来获取管理组id以及管理组url等,使用第三方插件MySQL Connector/J 5.1.42连接该项目的数据库,将数据提供给服务器使用,其主要功能和传统数据库操作类无异,提供增删改查功能 ,由于需要频繁使用,并未设计成单例,需要实例化并主动开启连接和关闭连接。

订阅监控模块:订阅监控模块是一块相对独立的分支,不参与服务器的业务,当服务器启动后,订阅模块会被初始化并启动定时任务功能,订阅初始化后会检测当前项目文件中是否存在订阅日志文件(ExcelDataLog.xlsx)和订阅数据目录(ExcelData),同时更新订阅日志文件,向项目数据库中的订阅表拉取信息,将最新的订阅消息更新到日志文件中,日志文件中还有更新时间以及更新周期属性,计时任务每一个小时会更新一次日志文件,同时会检测订阅内容是否正确,如果订阅内容无效会将该订阅内容删除。

订阅数据分析模块:订阅监控模块周期更新日志时会同时检测当前时间,如果当前时间是凌晨则触发该模块,同时订阅监控模块会暂时停止更新订阅日志,该模块通过读取订阅日志中的内容从用户指定的数据库中拉取信息,在通过Excel文件IO模块将数据库数据直接拉取到本地并生成一个temp.xslx文件,然后将temp.xslx与日志文件的文件地址中的文件进行比对,比对过程中考虑了数据量庞大占用内存的情况,比较过程中通过同时读取两张表并行模式同时比较,当两张表的数据不同时,不继续分析,返回数据变动情况,除此之外工具数据的变换量也是一个重要指标,数据统计分析后将数据推送到项目数据库中的订阅推送表中,在有业务服务器做后续处理。

4 结束语

该文的数据库接入方式参照了阿里云的DataV的数据库管理服务,同时使用语言分词以及语句解析的方式达到了通过自然语言让机器人帮助用户查询数据库的功能,极大地方便了使用者降低了使用数据库门槛,能够更加高效快速地对大量数据进行查询。

参考文献:

[1] 赵静宇. 数据库设计规范化的理论研究与应用[J]. 电子技术与软件程, 2013(21): 208.

[2] 陈艳. 数据库设计[J]. 福建电脑, 2012(2).

[3] 王亮, 李心怡. 关于Oracle数据库设计及应用的研究[J]. 科技创新与用, 2015(20): 98.

[4] 埃克尔. Thinking in Java[M]. 4版. 北京: 机械工业出版社, 2007.

[5] 西尔拉, 贝茨. Head first Java[M].南京: 东南大学出版社, 2005.

[6] 孵化器. Java从入门到精通[M]. 北京: 人民邮电出版社, 2010.

[7] 李刚. 疯狂java讲义[M]. 北京: 电子工业出版社, 2008.

【通联编辑:谢媛媛】

猜你喜欢

人工智能数据库
我校新增“人工智能”本科专业
人工智能与就业