Skip to main content
QUICK REVIEW

[論文レビュー] Synthesizing Database Programs for Schema Refactoring

Yuepeng Wang, James Dong|arXiv (Cornell University)|Apr 11, 2019
Web Application Security Vulnerabilities参考文献 55被引用数 4
ひとこと要約

この論文は、スキーマリファクタリング後の等価なデータベースプログラムを完全に自動的・ワンクリックで合成する手法を提示する。価値対応の推測、プログラムスケッチ、および最小失敗入力駆動の列挙的探索という新規手法を用い、平均合成時間69.4秒で実世界のWebアプリケーションにおいて意味的に等価なプログラムを効率的に生成する。

ABSTRACT

Many programs that interact with a database need to undergo schema refactoring several times during their life cycle. Since this process typically requires making significant changes to the program's implementation, schema refactoring is often non-trivial and error-prone. Motivated by this problem, we propose a new technique for automatically synthesizing a new version of a database program given its original version and the source and target schemas. Our method does not require manual user guidance and ensures that the synthesized program is equivalent to the original one. Furthermore, our method is quite efficient and can synthesize new versions of database programs (containing up to 263 functions) that are extracted from real-world web applications with an average synthesis time of 69.4 seconds.

研究の動機と目的

  • スキーマの進化に伴うデータベースプログラムの手動リファクタリングの課題に対処すること。これは誤りを起こしやすく、時間がかかる。
  • スキーマリファクタリングにおけるユーザーの手動指導を排除し、プログラム移行を自動化すること。
  • 元のプログラムと合成されたプログラムの間で意味論的同等性を保証し、すべての望ましい振る舞いを維持すること。
  • 最大263の関数を含む現実的なデータベースプログラムにまでスケーラブルに拡張可能な合成プロセスを実現すること。
  • SMTソルバを用いた記号的推論を避ける軽量で効率的な手法を開発すること。代わりに、枝狩りを施した列挙的探索を用いる。

提案手法

  • 3段階のパイプラインを提案:(1) ソーススキーマとターゲットスキーマ間の候補となる価値対応の遅延列挙、(2) 与えられた対応に基づくすべての可能な等価プログラムを捉えるプログラムスケッチの生成、(3) 列挙的探索によるスケッチの完成。
  • 価値対応を、ソーススキーマとターゲットスキーマの属性間の高レベルなマッピングとして用い、属性名とスキーマ構造から導出する。
  • テーブル、属性、論理定数をプレースホルダとして使用するプログラムスケッチを構築し、価値対応によって意味論的整合性を保証する。
  • 最小失敗入力(MFI)に基づく新たな衝突駆動型枝狩り戦略を採用し、スケッチ完成段階での探索空間を削減する。
  • SMT式への記号的エンコードを避けて、MFIベースのバックトラックを伴う直接列挙を用いることで、SQLベースのプログラムに対して効率的かつスケーラブルである。
  • 元のプログラムと合成されたプログラムの意味論的同等性を検証するために、既存の同等性検証ツール(Wang et al., 2018c)に依存する。

実験結果

リサーチクエスチョン

  • RQ1ユーザーの干渉なしに、スキーマリファクタリング後の意味的に等価なデータベースプログラムを自動で生成できるか?
  • RQ2価値対応を用いて、等価なプログラム変換のための探索空間を効果的に制約できるか?
  • RQ3複雑なスキーマ変更を伴う実世界のデータベースプログラムに対しても、効率的な合成が可能か?
  • RQ4記号的推論が利用できない状況下で、スケーラブルな列挙的探索を実現するための枝狩り戦略は何か?
  • RQ5既存のプログラム合成または検証手法と比較して、本手法は性能および正しさの面で優れているか?

主な発見

  • 提案手法は、GitHubから抽出した20件の実世界のスキーマリファクタリングベンチマークのすべてに対して、新しいバージョンのプログラムを合成に成功した。
  • すべてのベンチマークにおける平均合成時間は69.4秒であり、実世界のアプリケーションにおいて実用的な効率性を示した。
  • 本手法は完全に自動的であり、元のプログラムとソース/ターゲットスキーマ以外に手動入力は一切不要である。
  • 最小失敗入力(MFI)の使用により、探索空間が顕著に削減され、膨大な数の可能なプログラム完成肢が存在する中でもスケーラビリティが達成された。
  • 合成されたプログラムは、元のプログラムと証明可能に同等であるため、振る舞いの変更や意図しない副作用がないことが保証された。
  • Migratorと名付けたツールは、関係や属性の分割・統合を含むスキーマリファクタリングをサポートし、価値対応で表現可能な範囲であれば問題ない。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。