不会SQL?没关系,以后动动嘴就能查询数据库了 | 附论文

简介:
本文来自AI新媒体量子位(QbitAI)

ed3e512e702896de19322d8d15c1a701c771ce2f

在编程世界里,SQL非常简单。然而,这种语言仍有一定的学习难度,导致许多人无法与关系数据库进行交互。Salesforce的人工智能研究团队正着手探索,如何利用机器学习技术,给不了解SQL的人群打开一扇大门。

该团队近期发表论文《Seq2SQL:利用强化学习技术从自然语言生成结构化查询》。论文中提出的方法基于语句到语句模型,而这通常被用于机器翻译。利用强化学习系统,该团队将自然语言翻译成为数据库查询指令,并取得了很不错的结果。

论文作者是来自Salesforce研究院的Victor Zhong、Caiming Xiong、Richard Socher。

c77e67c46c42008f4e3e44dff36d71d0273e4a0c

这个Seq2SQL模型由三部分组成。

在实践中,这意味着用户可以简单地提问,大学橄榄球联赛中哪支队伍最终获胜,而适当的数据库会告诉你,胜利者是密歇根大学。

参与该项目的Salesforce研究员Victor Zhong表示:“我们实际上并没有一种正确的方式来编写查询指令。如果用自然语言提出问题,那么可能会有两到三种方式来编写查询指令。我们使用强化学习技术,鼓励使用能获得同样结果的指令。”

你可以想象,在单词库很大的情况下,机器翻译问题会很快变得非常复杂。而通过限制可能翻译结果的数量,问题会变得相对简单。因此,Salesforce选择了将单词库限制为数据库标签使用的单词、问题中包含的单词,以及通常用在SQL查询中的单词。

cc54de488961cf3983901cfc4d334c959c2789ad

推动SQL普及的想法并不新鲜。例如,近期被Tableau收购的创业公司ClearGraph就尝试用英语而非SQL语言来查询数据。

Victor Zhong表示:“某些模型在数据库自身之上执行。但如果你查询社会安全号码,那么这样做就可能就牵涉到隐私问题。”

除论文本身,Salesforce在这个领域的最大贡献在于,构建了WikiSQL数据集,协助模型的建立。最初的HTML表格取材于维基百科。这些表格成为了随机生成的SQL查询的基础。这些查询被用于生成问题,随后被提交给人工,通过亚马逊Mechanical Turk进行改写。在人工指导下,每个问题都会被验证两次。最终形成的数据集是这个领域最大的数据集。

论文下载

对这篇论文感兴趣的朋友,可以在量子位微信公众号(QbitAI)对话界面回复:“SQL”,就可以获得下载地址了~

本文作者:陈桦 
原文发布时间:2017-08-30
相关文章
|
8天前
|
SQL 安全 数据库
如何在Django中正确使用参数化查询或ORM来避免SQL注入漏洞?
如何在Django中正确使用参数化查询或ORM来避免SQL注入漏洞?
101 77
|
2天前
|
SQL Java 数据库连接
【潜意识Java】MyBatis中的动态SQL灵活、高效的数据库查询以及深度总结
本文详细介绍了MyBatis中的动态SQL功能,涵盖其背景、应用场景及实现方式。
38 6
|
27天前
|
SQL NoSQL Java
Java使用sql查询mongodb
通过使用 MongoDB Connector for BI 和 JDBC,开发者可以在 Java 中使用 SQL 语法查询 MongoDB 数据库。这种方法对于熟悉 SQL 的团队非常有帮助,能够快速实现对 MongoDB 数据的操作。同时,也需要注意到这种方法的性能和功能限制,根据具体应用场景进行选择和优化。
85 9
|
1月前
|
SQL 存储 人工智能
Vanna:开源 AI 检索生成框架,自动生成精确的 SQL 查询
Vanna 是一个开源的 Python RAG(Retrieval-Augmented Generation)框架,能够基于大型语言模型(LLMs)为数据库生成精确的 SQL 查询。Vanna 支持多种 LLMs、向量数据库和 SQL 数据库,提供高准确性查询,同时确保数据库内容安全私密,不外泄。
197 7
Vanna:开源 AI 检索生成框架,自动生成精确的 SQL 查询
|
2天前
|
缓存 关系型数据库 MySQL
【深入了解MySQL】优化查询性能与数据库设计的深度总结
本文详细介绍了MySQL查询优化和数据库设计技巧,涵盖基础优化、高级技巧及性能监控。
27 0
|
1月前
|
SQL Oracle 数据库
使用访问指导(SQL Access Advisor)优化数据库业务负载
本文介绍了Oracle的SQL访问指导(SQL Access Advisor)的应用场景及其使用方法。访问指导通过分析给定的工作负载,提供索引、物化视图和分区等方面的优化建议,帮助DBA提升数据库性能。具体步骤包括创建访问指导任务、创建工作负载、连接工作负载至访问指导、设置任务参数、运行访问指导、查看和应用优化建议。访问指导不仅针对单条SQL语句,还能综合考虑多条SQL语句的优化效果,为DBA提供全面的决策支持。
75 11
|
1月前
|
存储 缓存 网络协议
数据库执行查询请求的过程?
客户端发起TCP连接请求,服务端通过连接器验证主机信息、用户名及密码,验证通过后创建专用进程处理交互。服务端进程缓存以减少创建和销毁线程的开销。后续步骤包括缓存查询(8.0版后移除)、语法解析、查询优化及存储引擎调用,最终返回查询结果。
33 6
|
1月前
|
SQL 关系型数据库 MySQL
MySQL导入.sql文件后数据库乱码问题
本文分析了导入.sql文件后数据库备注出现乱码的原因,包括字符集不匹配、备注内容编码问题及MySQL版本或配置问题,并提供了详细的解决步骤,如检查和统一字符集设置、修改客户端连接方式、检查MySQL配置等,确保导入过程顺利。
|
1月前
|
SQL 监控 安全
SQL Servers审核提高数据库安全性
SQL Server审核是一种追踪和审查SQL Server上所有活动的机制,旨在检测潜在威胁和漏洞,监控服务器设置的更改。审核日志记录安全问题和数据泄露的详细信息,帮助管理员追踪数据库中的特定活动,确保数据安全和合规性。SQL Server审核分为服务器级和数据库级,涵盖登录、配置变更和数据操作等事件。审核工具如EventLog Analyzer提供实时监控和即时告警,帮助快速响应安全事件。
|
2月前
|
SQL Java
使用java在未知表字段情况下通过sql查询信息
使用java在未知表字段情况下通过sql查询信息
46 8