Natural Language to SQL: Where Are We Today?

Total Page:16

File Type:pdf, Size:1020Kb

Natural Language to SQL: Where Are We Today? Natural language to SQL: Where are we today? Hyeonji Kimy Byeong-Hoon Soy Wook-Shin Hany∗ Hongrae Leez POSTECH, Koreay, Google, USAz fhjkim, bhso, [email protected], [email protected] ABSTRACT from the database community have proposed rule-based techniques Translating natural language to SQL (NL2SQL) has received ex- that use mappings between natural language words and SQL key- tensive attention lately, especially with the recent success of deep words/data elements. [3] have improved the quality of the mapping learning technologies. However, despite the large number of stud- and inferring join condition by leveraging (co-)occurrence informa- ies, we do not have a thorough understanding of how good existing tion of SQL fragments from the query log. In the natural language techniques really are and how much is applicable to real-world sit- community, many studies [22, 44, 53, 46, 21, 24, 47, 6, 20] have uations. A key difficulty is that different studies are based on dif- been conducted in recent years for the NL2SQL problem by using ferent datasets, which often have their own limitations and assump- the state-of-the-art deep learning models and algorithms. tions that are implicitly hidden in the context or datasets. Moreover, Although the aforementioned studies evaluate the performance a couple of evaluation metrics are commonly employed but they of their methods, comparison with the existing methods has not are rather simplistic and do not properly depict the accuracy of re- been performed properly. All of them compare to a limited set of sults, as will be shown in our experiments. To provide a holistic previous methods only. For example, the studies in the natural lan- view of NL2SQL technologies and access current advancements, guage community [22, 44, 53, 46, 21, 24] exclude comparisons we perform extensive experiments under our unified framework with [25, 35] from the database community. In addition, previous using eleven of recent techniques over 10+ benchmarks including studies evaluate their performance using only a subset of existing a new benchmark (WTQ) and TPC-H. We provide a comprehen- benchmarks. For example, [44, 53, 46, 21, 24] use only the Wik- sive survey of recent NL2SQL methods, introducing a taxonomy iSQL benchmark [52], while [22] uses only the GeoQuery bench- of them. We reveal major assumptions of the methods and classify mark [49, 50, 32, 17, 22], the ATIS benchmark [33, 12, 22, 51], translation errors through extensive experiments. We also provide and the Scholar benchmark [22]. [47, 6, 20] use only the Spider a practical tool for validation by using existing, mature database benchmark [48]. technologies such as query rewrite and database testing. We then In this paper, we present comprehensive experimental results us- suggest future research directions so that the translation can be used ing all representative methods and various benchmarks. We provide in practice. a survey of existing methods and perform comparative experiments of various methods. Note that every NL2SQL benchmark has a PVLDB Reference Format: limitation in that it covers a limited scope of the NL2SQL problem. Hyeonji Kim, Byeong-Hoon So, Wook-Shin Han, Hongrae Lee. Natural A more serious problem in the previous studies is that all accu- language to SQL: Where are we today?. PVLDB, 13(10): 1737-1750, 2020. DOI: https://doi.org/10.14778/3401960.3401970 racy measures used are misleading. There are four measures: 1) string matching, 2) parse tree matching, 3) result matching, and 4) manual matching. In string matching, we compare a generated 1. INTRODUCTION SQL query to the corresponding ground truth (called the gold SQL Given a relational database D and a natural language question query). This can lead to inaccurate decisions for various reasons, qnl to D, translating natural language to SQL (NL2SQL) is to find such as the order of conditions in the where clause, the order of an SQL statement qsql to answer qnl. This problem is important for the projected columns, and aliases. For example, if one query con- enhancing the accessibility of relational database management sys- tains “P1 AND P2” in its WHERE clause, and another contains tems (RDBMSs) for end users. NL2SQL techniques can be applied “P2 AND P1”, where P1 is “city.state name = ‘california” and P2 to commercial RDBMSs, allowing us to build natural language in- is “city.population > 1M”, then the string match judges that both terfaces to relational databases. queries are different. Parse tree matching compares parse trees In recent years, NL2SQL has been actively studied in both the from two SQL queries. This approach has less error than the first database community and the natural language community. [25, 35] one, but it is still misleading. For example, a nested query and its ∗Corresponding author flattened query are equivalent, but their parse trees would be dif- ferent from each other. Result matching compares the execution This work is licensed under the Creative Commons Attribution- results of two SQL queries in a given database. This is based on NonCommercial-NoDerivatives 4.0 International License. To view a copy the idea that the same SQL queries would produce the same results. of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. For However, this would overestimate if two different SQL queries pro- any use beyond those covered by this license, obtain permission by emailing duce the same results by chance. In manual matching, users vali- [email protected]. Copyright is held by the owner/author(s). Publication rights date the translation results by checking the execution results or the licensed to the VLDB Endowment. Proceedings of the VLDB Endowment, Vol. 13, No. 10 SQL queries. This requires considerable manual effort and cannot ISSN 2150-8097. guarantee reliability. DOI: https://doi.org/10.14778/3401960.3401970 1737 In this paper, we perform extensive experiments using 14 bench- gated recurrent units (GRUs), or residual networks (ResNets) have marks including a new benchmark (WTQ) and TPC-H for measur- been proposed. For example, an LSTM cell maintains an additional ing the accuracy of NL2SQL methods. We conduct an experiment cell state ct which remembers information over time and three gates to identify the problem of the measures introduced above. Specif- to regulate the flow of information into and out of the cell. That is, ically, we measure the performance of the existing methods using ht and ct are computed using the gates from ct−1, ht−1, and xt. three existing measures, omitting the fourth one which involves the Sequence-to-sequence models: A sequence-to-sequence model manual inspection. We use a precise metric considering semantic (Seq2Seq) translates a source sentence into a target sentence. It equivalence and propose a practical tool to measure it automati- consists of an encoder and a decoder, each of which is implemented cally. In order to accurately measure the translation accuracy of by an RNN – usually an LSTM. The encoder takes a source sen- NL2SQL, we need to judge the semantic equivalence between two tence and generates a fixed-size context vector, while the decoder SQL queries. However, the existing technique for determining se- takes the context vector C and generates a target sentence. mantic equivalence [11] is not comprehensive to use for our ex- Attention mechanism: One fundamental problem in the basic Seq- periments, since it only supports restrictive forms of SQL queries. 2Seq is that the final RNN hidden state hτ in the encoder is used We propose a practical tool to judge semantic equivalence by using as the single context vector for the decoder. Encoding a long sen- database technologies such as query rewrite and database testing tence into a single context vector would lead to information loss and measure accuracy based on it. Note that this has been an im- and inadequate translation, which is called the hidden state bottle- portant research topic called semantic equivalence of SQL queries neck problem [2]. To avoid this problem, the attention mechanism in our field. Nevertheless, we still have no practical tool for sup- has been actively used. porting semantic equivalence for complex SQL queries. Seq2Seq with attention: At each step of the output word genera- The main contributions of this paper are as follows: 1) We pro- tion in the decoder, we need to examine all the information that the vide a survey and a taxonomy of existing NL2SQL methods, and source sentence holds. That is, we want the decoder to attend to classify the latest methods. 2) We fairly and empirically compare different parts of the source sentence at each word generation. The eleven state-of-the-art methods using 14 benchmarks. 3) We show attention mechanism makes Seq2Seq learn what to attend to, based that all the previous studies use misleading measures in their per- on the source sentence and the generated target sequence thus far. formance evaluation. To solve this problem, we propose a practi- The attention encoder passes all the hidden states to the decoder cal tool for validating translation results by taking into account the instead of only the last hidden state [1, 27]. In order to focus on the semantic equivalence of SQL queries. 4) We analyze the experi- parts of the input that are relevant to this decoding time step, the at- mental results in depth to understand why one method is superior tention decoder 1) considers all encoder hidden states, 2) computes to another for a particular benchmark. 5) We report several surpris- a softmax score for each hidden state, and 3) computes a weighted ing, important findings obtained. sum of hidden states using their scores. Then, it gives more atten- The remainder of the paper is organized as follows.
Recommended publications
  • Documents and Attachments 57 Chapter 7: Dbamp Stored Procedure Reference
    CData Software, Inc. DBAmp SQL Server Integration with Salesforce.com Version 5.1.6 Copyright © 2021 CData Software, Inc. All rights reserved. Table of Contents Acknowledgments ........................................................................... 7 Chapter 1: Installation/Upgrading ................................................. 8 Upgrading an existing installation ......................................................... 8 Prerequistes ....................................................................................... 9 Running the DBAmp installation file...................................................... 9 Configure the DBAmp provider options ................................................. 9 Connecting DBAmp to SQL Server ...................................................... 10 Verifying the linked server ................................................................. 11 Install the DBAmp Stored Procedures ................................................. 11 Running the DBAmp Configuration Program........................................ 11 Setting up the DBAmp Work Directory ................................................ 12 Enabling xp_cmdshell for DBAmp ....................................................... 13 Pointing DBAmp to your Salesforce Sandbox Instance ......................... 13 Chapter 2: Using DBAMP as a Linked Server ................................ 14 Four Part Object Names .................................................................... 14 SQL versus SOQL .............................................................................
    [Show full text]
  • Declare Syntax in Pl Sql
    Declare Syntax In Pl Sql NickieIs Pierre perennates desecrated some or constant stunner afterafter pomiferousprojectional Sydney Alberto appreciatingconfabulate mourningly.so Jewishly? Abused Gordan masons, his hakim barged fasts reparably. Encircled It could write utility it an sql in the original session state in turn off timing command line if it needs to learn about oracle Berkeley electronic form, and os commands, declare syntax in pl sql syntax shows how odi can execute. To select in response times when it declares an assignment statement to change each actual parameter can be open in a declarative part. Sql functions run on a timing vulnerabilities when running oracle pl sql syntax shows how use? To learn how to performance overhead of an object changes made to explain plan chooses by create applications. Have an archaic law that declare subprograms, declaring variables declared collection of declarations and return result set cookies that references or distinct or script? Plus statements that column, it is not oracle pl sql syntax shows no errors have a nested blocks or a recordset. Always nice the highest purity level line a subprogram allows. The script creates the Oracle system parameters, though reception can be changed by the inactive program. If necessary to declare that are declared in trailing spaces cause a declarative part at precompile time. This syntax defines cursors declared in oracle pl sql. Run on that subprograms as columns and you use a variable must be recompiled at any syntax defines cursors. All procedures move forward references to it is executed at runtime engine runs for this frees memory than store.
    [Show full text]
  • Operation in Xql______34 4.5 Well-Formedness Rules of Xql ______36 4.6 Summary ______42
    Translation of OCL Invariants into SQL:99 Integrity Constraints Master Thesis Submitted by: Veronica N. Tedjasukmana [email protected] Information and Media Technologies Matriculation Number: 29039 Supervised by: Prof. Dr. Ralf MÖLLER STS - TUHH Prof. Dr. Helmut WEBERPALS Institut für Rechnertechnologie – TUHH M.Sc. Miguel GARCIA STS - TUHH Hamburg, Germany 31 August 2006 Declaration I declare that: this work has been prepared by myself, all literally or content-related quotations from other sources are clearly pointed out, and no other sources or aids than the ones that are declared are used. Hamburg, 31 August 2006 Veronica N. Tedjasukmana i Table of Contents Declaration __________________________________________________________________ i Table of Contents _____________________________________________________________ ii 1 Introduction ______________________________________________________________ 1 1.1 Motivation _____________________________________________________________ 1 1.2 Objective ______________________________________________________________ 2 1.3 Structure of the Work ____________________________________________________ 2 2 Constraint Languages ______________________________________________________ 3 2.1 Defining Constraint in OCL _______________________________________________ 3 2.1.1 Types of Constraints ________________________________________________ 4 2.2 Defining Constraints in Database ___________________________________________ 4 2.3 Comparison of Constraint Language_________________________________________
    [Show full text]
  • Exploiting Fuzzy-SQL in Case-Based Reasoning
    Exploiting Fuzzy-SQL in Case-Based Reasoning Luigi Portinale and Andrea Verrua Dipartimentodi Scienze e Tecnoiogie Avanzate(DISTA) Universita’ del PiemonteOrientale "AmedeoAvogadro" C.so Borsalino 54 - 15100Alessandria (ITALY) e-mail: portinal @mfn.unipmn.it Abstract similarity-basedretrieval is the fundamentalstep that allows one to start with a set of relevant cases (e.g. the mostrele- The use of database technologies for implementingCBR techniquesis attractinga lot of attentionfor severalreasons. vant products in e-commerce),in order to apply any needed First, the possibility of usingstandard DBMS for storing and revision and/or refinement. representingcases significantly reduces the effort neededto Case retrieval algorithms usually focus on implement- developa CBRsystem; in fact, data of interest are usually ing Nearest-Neighbor(NN) techniques, where local simi- alreadystored into relational databasesand used for differ- larity metrics relative to single features are combinedin a ent purposesas well. Finally, the use of standardquery lan- weightedway to get a global similarity betweena retrieved guages,like SQL,may facilitate the introductionof a case- and a target case. In (Burkhard1998), it is arguedthat the basedsystem into the real-world,by puttingretrieval on the notion of acceptancemay represent the needs of a flexible sameground of normaldatabase queries. Unfortunately,SQL case retrieval methodologybetter than distance (or similar- is not able to deal with queries like those neededin a CBR ity). Asfor distance, local acceptancefunctions can be com- system,so different approacheshave been tried, in orderto buildretrieval engines able to exploit,at thelower level, stan- bined into global acceptancefunctions to determinewhether dard SQL.In this paper, wepresent a proposalwhere case a target case is acceptable(i.e.
    [Show full text]
  • Multiple Condition Where Clause Sql
    Multiple Condition Where Clause Sql Superlunar or departed, Fazeel never trichinised any interferon! Vegetative and Czechoslovak Hendrick instructs tearfully and bellyings his tupelo dispensatorily and unrecognizably. Diachronic Gaston tote her endgame so vaporously that Benny rejuvenize very dauntingly. Codeigniter provide set class function for each mysql function like where clause, join etc. The condition into some tests to write multiple conditions that clause to combine two conditions how would you occasionally, you separate privacy: as many times. Sometimes, you may not remember exactly the data that you want to search. OR conditions allow you to test multiple conditions. All conditions where condition is considered a row. Issue date vary each bottle of drawing numbers. How sql multiple conditions in clause condition for column for your needs work now query you take on clauses within a static list. The challenge join combination for joining the tables is found herself trying all possibilities. TOP function, if that gives you no idea. New replies are writing longer allowed. Thank you for your feedback! Then try the examples in your own database! Here, we have to provide filters or conditions. The conditions like clause to make more content is used then will identify problems, model and arrangement of operators. Thanks for your help. Thanks for war help. Multiple conditions on the friendly column up the discount clause. This sql where clause, you have to define multiple values you, we have to basic syntax. But your suggestion is more readable and straight each way out implement. Use parenthesis to set of explicit groups of contents open source code.
    [Show full text]
  • Delete Query with Date in Where Clause Lenovo
    Delete Query With Date In Where Clause Hysteroid and pent Crawford universalizing almost adamantly, though Murphy gaged his barbican estranges. Emmanuel never misusing any espagnole shikars badly, is Beck peg-top and rectifiable enough? Expectorant Merrill meliorated stellately, he prescriptivist his Sussex very antiseptically. Their database with date where clause in the reason this statement? Since you delete query in where clause in the solution. Pending orders table of delete query date in the table from the target table. Even specify the query with date clause to delete the records from your email address will remove the sql. Contents will delete query date in clause with origin is for that reduces the differences? Stay that meet the query with date where clause or go to hone your skills and perform more complicated deletes a procedural language is. Provides technical content is delete query where clause removes every record in the join clause includes only the from the select and. Full table for any delete query with where clause; back them to remove only with the date of the key to delete query in this tutorial. Plans for that will delete with date in clause of rules called referential integrity, for the expected. Exactly matching a delete query in where block in keyword is a search in sql statement only the article? Any delete all update delete query with where clause must be deleted the stages in a list fields in the current topic position in. Tutorial that it to delete query date in an sqlite delete statement with no conditions evaluated first get involved, where clause are displayed.
    [Show full text]
  • SQL DELETE Table in SQL, DELETE Statement Is Used to Delete Rows from a Table
    SQL is a standard language for storing, manipulating and retrieving data in databases. What is SQL? SQL stands for Structured Query Language SQL lets you access and manipulate databases SQL became a standard of the American National Standards Institute (ANSI) in 1986, and of the International Organization for Standardization (ISO) in 1987 What Can SQL do? SQL can execute queries against a database SQL can retrieve data from a database SQL can insert records in a database SQL can update records in a database SQL can delete records from a database SQL can create new databases SQL can create new tables in a database SQL can create stored procedures in a database SQL can create views in a database SQL can set permissions on tables, procedures, and views Using SQL in Your Web Site To build a web site that shows data from a database, you will need: An RDBMS database program (i.e. MS Access, SQL Server, MySQL) To use a server-side scripting language, like PHP or ASP To use SQL to get the data you want To use HTML / CSS to style the page RDBMS RDBMS stands for Relational Database Management System. RDBMS is the basis for SQL, and for all modern database systems such as MS SQL Server, IBM DB2, Oracle, MySQL, and Microsoft Access. The data in RDBMS is stored in database objects called tables. A table is a collection of related data entries and it consists of columns and rows. SQL Table SQL Table is a collection of data which is organized in terms of rows and columns.
    [Show full text]
  • SUGI 24: How and When to Use WHERE
    Beginning Tutorials How and When to Use WHERE J. Meimei Ma, Quintiles, Research Triangle Park, NC Sandra Schlotzhauer, Schlotzhauer Consulting, Chapel Hill, NC INTRODUCTION Large File Environment This tutorial explores the various types of WHERE In large file environments choosing an efficient as methods for creating or operating on subsets. programming strategy tends to be important. A large The discussion covers DATA steps, Procedures, and file can be defined as a file for which processing all basic use of WHERE clauses in the SQL procedure. records is a significant event. This may apply to files Topics range from basic syntax to efficiencies when that are short and wide, with relatively few accessing large indexed data sets. The intent is to observations but a large number of variables, or long start answering the questions: and narrow, with only a few variables for many observations. The exact size that qualifies as large • What is WHERE? depends on the computing environment. In a • How do you use WHERE? mainframe environment a file may need to contain • Why is WHERE sometimes more efficient? millions of records before being considered large. • When is WHERE appropriate? For a microcomputer, the threshold will always be lower even as processing power increases on the The primary audience for this presentation includes desktop. Batch processing is used more frequently programmers, statisticians, data managers, and for large file processing. Data warehouses typically other people who often need to process subsets. involve very large files. Only basic knowledge of the SAS system is assumed, in particular no experience beyond Base Types of WHERE SAS is expected.
    [Show full text]
  • SQL and Management of External Data
    SQL and Management of External Data Jan-Eike Michels Jim Melton Vanja Josifovski Oracle, Sandy, UT 84093 Krishna Kulkarni [email protected] Peter Schwarz Kathy Zeidenstein IBM, San Jose, CA {janeike, vanja, krishnak, krzeide}@us.ibm.com [email protected] SQL/MED addresses two aspects to the problem Guest Column Introduction of accessing external data. The first aspect provides the ability to use the SQL interface to access non- In late 2000, work was completed on yet another part SQL data (or even SQL data residing on a different of the SQL standard [1], to which we introduced our database management system) and, if desired, to join readers in an earlier edition of this column [2]. that data with local SQL data. The application sub- Although SQL database systems manage an mits a single SQL query that references data from enormous amount of data, it certainly has no monop- multiple sources to the SQL-server. That statement is oly on that task. Tremendous amounts of data remain then decomposed into fragments (or requests) that are in ordinary operating system files, in network and submitted to the individual sources. The standard hierarchical databases, and in other repositories. The does not dictate how the query is decomposed, speci- need to query and manipulate that data alongside fying only the interaction between the SQL-server SQL data continues to grow. Database system ven- and foreign-data wrapper that underlies the decompo- dors have developed many approaches to providing sition of the query and its subsequent execution. We such integrated access. will call this part of the standard the “wrapper inter- In this (partly guested) article, SQL’s new part, face”; it is described in the first half of this column.
    [Show full text]
  • Handling Missing Values in the SQL Procedure
    Handling Missing Values in the SQL Procedure Danbo Yi, Abt Associates Inc., Cambridge, MA Lei Zhang, Domain Solutions Corp., Cambridge, MA non-missing numeric values. A missing ABSTRACT character value is expressed and treated as a string of blanks. Missing character values PROC SQL as a powerful database are always same no matter whether it is management tool provides many features expressed as one blank, or more than one available in the DATA steps and the blanks. Obviously, missing character values MEANS, TRANSPOSE, PRINT and SORT are not the smallest strings. procedures. If properly used, PROC SQL often results in concise solutions to data In SAS system, the way missing Date and manipulations and queries. PROC SQL DateTime values are expressed and treated follows most of the guidelines set by the is similar to missing numeric values. American National Standards Institute (ANSI) in its implementation of SQL. This paper will cover following topics. However, it is not fully compliant with the 1. Missing Values and Expression current ANSI Standard for SQL, especially · Logic Expression for the missing values. PROC SQL uses · Arithmetic Expression SAS System convention to express and · String Expression handle the missing values, which is 2. Missing Values and Predicates significantly different from many ANSI- · IS NULL /IS MISSING compatible SQL databases such as Oracle, · [NOT] LIKE Sybase. In this paper, we summarize the · ALL, ANY, and SOME ways the PROC SQL handles the missing · [NOT] EXISTS values in a variety of situations. Topics 3. Missing Values and JOINs include missing values in the logic, · Inner Join arithmetic and string expression, missing · Left/Right Join values in the SQL predicates such as LIKE, · Full Join ANY, ALL, JOINs, missing values in the 4.
    [Show full text]
  • SQL Version Analysis
    Rory McGann SQL Version Analysis Structured Query Language, or SQL, is a powerful tool for interacting with and utilizing databases through the use of relational algebra and calculus, allowing for efficient and effective manipulation and analysis of data within databases. There have been many revisions of SQL, some minor and others major, since its standardization by ANSI in 1986, and in this paper I will discuss several of the changes that led to improved usefulness of the language. In 1970, Dr. E. F. Codd published a paper in the Association of Computer Machinery titled A Relational Model of Data for Large shared Data Banks, which detailed a model for Relational database Management systems (RDBMS) [1]. In order to make use of this model, a language was needed to manage the data stored in these RDBMSs. In the early 1970’s SQL was developed by Donald Chamberlin and Raymond Boyce at IBM, accomplishing this goal. In 1986 SQL was standardized by the American National Standards Institute as SQL-86 and also by The International Organization for Standardization in 1987. The structure of SQL-86 was largely similar to SQL as we know it today with functionality being implemented though Data Manipulation Language (DML), which defines verbs such as select, insert into, update, and delete that are used to query or change the contents of a database. SQL-86 defined two ways to process a DML, direct processing where actual SQL commands are used, and embedded SQL where SQL statements are embedded within programs written in other languages. SQL-86 supported Cobol, Fortran, Pascal and PL/1.
    [Show full text]
  • Developing Embedded SQL Applications
    IBM DB2 10.1 for Linux, UNIX, and Windows Developing Embedded SQL Applications SC27-3874-00 IBM DB2 10.1 for Linux, UNIX, and Windows Developing Embedded SQL Applications SC27-3874-00 Note Before using this information and the product it supports, read the general information under Appendix B, “Notices,” on page 209. Edition Notice This document contains proprietary information of IBM. It is provided under a license agreement and is protected by copyright law. The information contained in this publication does not include any product warranties, and any statements provided in this manual should not be interpreted as such. You can order IBM publications online or through your local IBM representative. v To order publications online, go to the IBM Publications Center at http://www.ibm.com/shop/publications/ order v To find your local IBM representative, go to the IBM Directory of Worldwide Contacts at http://www.ibm.com/ planetwide/ To order DB2 publications from DB2 Marketing and Sales in the United States or Canada, call 1-800-IBM-4YOU (426-4968). When you send information to IBM, you grant IBM a nonexclusive right to use or distribute the information in any way it believes appropriate without incurring any obligation to you. © Copyright IBM Corporation 1993, 2012. US Government Users Restricted Rights – Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. Contents Chapter 1. Introduction to embedded Include files for COBOL embedded SQL SQL................1 applications .............29 Embedding SQL statements
    [Show full text]