SQL查询语句的自动生成技术研究
发布时间:2022-01-08 20:38
随着IT技术的不断发展,医疗、教育、金融等各个行业都在使用数据库进行数据存储。软件工程师在软件开发过程中会频繁地使用SQL语句用于数据的增删改查,业务人员也经常使用SQL语句进行报表与在线分析(OLAP)的定制,从数据库中获取所需信息。但是,SQL语言本质上是一种编程语言,使用者需要具有一定的数据库和SQL语言相关专业知识,并且需要在熟悉数据库模式的前提下,才能熟练进行SQL语句的编写。如何降低SQL语言的学习成本?如何更快更好地生成SQL查询语句?如何使用更自然的方式生成SQL语言?针对这些问题,本文研究面向最终用户的SQL查询语句的自动生成技术,提出了从交互式自然语言接口生成SQL查询语句(INL2SQL)和从自然语言生成SQL查询语句(NL2SQL)的技术与方法。本文主要的贡献和创新点包括:1)研究提出了一种基于映射的INL2SQL生成方法。本方法使用依赖解析树生成、解析树节点映射、解析树优化重构、查询树翻译模块对用户输入的查询进行意图的解析,并将其映射到SQL查询语句上。通过交互式对话器和用户接口模块对意图的解析与映射进行补充和重构。本文采用Classicmodels和MAS数...
【文章来源】:上海交通大学上海市 211工程院校 985工程院校 教育部直属院校
【文章页数】:86 页
【学位级别】:硕士
【部分图文】:
–6Classicmodels数据库的数据库模式图
上海交通大学硕士学位论文第三章基于深度强化学习的NL2SQL生成第三章基于深度强化学习的NL2SQL生成本章基于深度强化学习技术,研究并提出了自然语言生成SQL查询语句(NL2SQL)的方法。3.1研究问题NL2SQL的输入表示为x,其包含由单词wi组成的自然语言问题w以及由列名cj组成的业务数据库单张表的模式c(其中,列名cj可由单个或多个单词组成)。输出为一条可执行的SQL查询语句y以及其在业务数据库中执行的结果r。现通过给出NL2SQL任务中一个典型的例子(如图3–1所示)来进一步说明。图3–1NL2SQL的一个典型示例Figure3–1AnExampleofNL2SQL在图3–1中,w为自然语言问题“WhatistheheightofWillisTowerinChicago?”,其中w0,w1,w2,...分别为单词“What”、“is”、“the”等。c库业务数据库的模式“NameLocationHeight(ft)FloorYear”,其中c0,c1,c2,...分别为单词“Name”、“Location”、“Height(ft)”等。输入x是由w和c组成的集合。输出y在该示例中对应的SQL查询语句为“SELECT‘Height(ft)’WHEREName=‘WillisTower’ANDLocation=‘Chicago’”,其在业务数据库中执行的结果r为1451。NL2SQL的研究问题在于如何去理解自然语言语句的意图并在一次交互的状态下将意图映射到SQL查询语句上,即在知道数据库模式c的状态下,将用户输入的自然语言问题w转换为一条SQL查询语句y并得到数据库执行结果r。—21—
上海交通大学硕士学位论文第三章基于深度强化学习的NL2SQL生成图3–4激活函数Figure3–4ActivationFunction输入层(inputlayer):输入层接收由外部输入的数据并传递给下一层,不进行任何的计算。隐藏层(hiddenlayer):隐藏层进行数据处理和计算,将计算结果传递给下一层。在网络中可以存在多个隐藏层,其节点个数也可能不一致。输出层(outputlayer):输出层往往会将结果映射到所需的输出格式上,例如采用softmax函数进行多分类。输入层隐藏层输出层输入层隐藏层隐藏层输出层图3–5神经网络的基础架构Figure3–5TheBasicInfrastructureofNeuralNetwork3.2.2.3反向传播机制反向传播(BackwardPropagation)机制[31]是训练神经网络的几种方式之一,使用它可以利用训练数据来进行监督学习。简单来说,反向传播就是“从错误中学习”,每当计算结果与正确结果不一致时,反向传播机制可以有效地纠正神经网络。从图3–6可以看出,首先经过前向传播得到模型的输出与正确结果之间的总误差Etotal,然后使用链式法则将误差向后传播并得到所有向量和权重的更新梯度。—25—
本文编号:3577243
【文章来源】:上海交通大学上海市 211工程院校 985工程院校 教育部直属院校
【文章页数】:86 页
【学位级别】:硕士
【部分图文】:
–6Classicmodels数据库的数据库模式图
上海交通大学硕士学位论文第三章基于深度强化学习的NL2SQL生成第三章基于深度强化学习的NL2SQL生成本章基于深度强化学习技术,研究并提出了自然语言生成SQL查询语句(NL2SQL)的方法。3.1研究问题NL2SQL的输入表示为x,其包含由单词wi组成的自然语言问题w以及由列名cj组成的业务数据库单张表的模式c(其中,列名cj可由单个或多个单词组成)。输出为一条可执行的SQL查询语句y以及其在业务数据库中执行的结果r。现通过给出NL2SQL任务中一个典型的例子(如图3–1所示)来进一步说明。图3–1NL2SQL的一个典型示例Figure3–1AnExampleofNL2SQL在图3–1中,w为自然语言问题“WhatistheheightofWillisTowerinChicago?”,其中w0,w1,w2,...分别为单词“What”、“is”、“the”等。c库业务数据库的模式“NameLocationHeight(ft)FloorYear”,其中c0,c1,c2,...分别为单词“Name”、“Location”、“Height(ft)”等。输入x是由w和c组成的集合。输出y在该示例中对应的SQL查询语句为“SELECT‘Height(ft)’WHEREName=‘WillisTower’ANDLocation=‘Chicago’”,其在业务数据库中执行的结果r为1451。NL2SQL的研究问题在于如何去理解自然语言语句的意图并在一次交互的状态下将意图映射到SQL查询语句上,即在知道数据库模式c的状态下,将用户输入的自然语言问题w转换为一条SQL查询语句y并得到数据库执行结果r。—21—
上海交通大学硕士学位论文第三章基于深度强化学习的NL2SQL生成图3–4激活函数Figure3–4ActivationFunction输入层(inputlayer):输入层接收由外部输入的数据并传递给下一层,不进行任何的计算。隐藏层(hiddenlayer):隐藏层进行数据处理和计算,将计算结果传递给下一层。在网络中可以存在多个隐藏层,其节点个数也可能不一致。输出层(outputlayer):输出层往往会将结果映射到所需的输出格式上,例如采用softmax函数进行多分类。输入层隐藏层输出层输入层隐藏层隐藏层输出层图3–5神经网络的基础架构Figure3–5TheBasicInfrastructureofNeuralNetwork3.2.2.3反向传播机制反向传播(BackwardPropagation)机制[31]是训练神经网络的几种方式之一,使用它可以利用训练数据来进行监督学习。简单来说,反向传播就是“从错误中学习”,每当计算结果与正确结果不一致时,反向传播机制可以有效地纠正神经网络。从图3–6可以看出,首先经过前向传播得到模型的输出与正确结果之间的总误差Etotal,然后使用链式法则将误差向后传播并得到所有向量和权重的更新梯度。—25—
本文编号:3577243
本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/3577243.html