〔プレスリリース〕データベース検索のための操作言語を自動合成する技術を開発 入出力の実例をもとに作製し、探す時間を大幅に短縮 オープンソースとして一般公開

研究成果 2020/11/19

 奈良先端科学技術大学院大学(学長:横矢直和)先端科学技術研究科情報科学領域ソフトウェア工学研究室の石尾隆准教授株式会社NTTデータ代表取締役社長:本間洋)との共同研究「プログラム合成に関する研究」を行い、ユーザが与えたデータベース検索操作の入出力の実例から、その操作を実行するためのデータベース操作言語であるSQL(シークェル)文を自動合成する技術を開発しました。特に、自動合成のアルゴリズムの開発は共同で行い、プログラムの実装や手法の評価は株式会社NTTデータで行いました。

 開発した技術は Programming by Example (人間が与えた例に基づくプログラムの生成)と呼ばれているものの1つで、従来であれば、入力データから出力データを計算するためのSQLの候補として、使用できる構文の膨大な組み合わせを調べる必要がありました。しかし、本技術では、出力データの状態から使用する構文の条件を絞り込むことで、探索に必要な時間を大幅に短縮しました。

 データベースの教科書やQ&Aサイトから集められた118件の事例のうち、従来技術では55件(47%)の合成成功にとどまっていたところを、85件(72%)まで引き上げることができました。

 また、成功した例のうち92%に対しては1秒以内で結果を出力することに成功しており、データベースの操作に習熟していないエンジニアであっても、システムの動作テストに使用するような入出力データを作成していくと、リアルタイムにそれを実行するためのSQLが合成されるという新しいプログラミング環境の実現につながる技術です。

NEWS & TOPICS一覧に戻る