Skip to main content
QUICK REVIEW

[논문 리뷰] Synthesizing Database Programs for Schema Refactoring

Yuepeng Wang, James Dong|arXiv (Cornell University)|2019. 04. 11.
Web Application Security Vulnerabilities참고 문헌 55인용 수 4
한 줄 요약

이 논문은 스키마 리팩터링 이후에 완전히 자동화되고 버튼 하나로 작동하는 데이터베이스 프로그램 동치 생성 기법을 제안한다. 값 대응 추측, 프로그램 스케치, 그리고 최소 실패 입력 기반의 순열 탐색이라는 새로운 기법을 사용하여, 실제 웹 애플리케이션에서 평균 69.4초의 합성 시간으로 의미적으로 동치인 프로그램을 효율적으로 생성한다.

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 솔버 기반 기호적 추론을 피하고, 가지치기 기반 순열 탐색을 사용함으로써 경량적이고 효율적인 방법을 개발하기 위해.

제안 방법

  • 세 단계로 구성된 파ip라인을 제안: (1) 소스 및 타겟 스키마 간 후보 값 대응을 게으르게 열거, (2) 주어진 대응에 대해 가능한 모든 동치 프로그램을 포괄하는 프로그램 스케치 생성, (3) 순열 탐색을 통한 스케치 완성.
  • 값 대응은 소스 및 타겟 스키마의 속성 간 고수준 매핑으로, 속성 이름과 스키마 구조에서 유도된다.
  • 테이블, 속성, 불리언 상수를 자리표시자로 사용하는 프로그램 스케치를 구성하며, 값 대응에 의해 의미적 일致성을 보장한다.
  • 최소 실패 입력(MFIs) 기반의 새로운 충돌 기반 가지치기 전략을 도입하여 스케치 완성 과정에서의 탐색 공간을 줄인다.
  • 기호적 인코딩을 SMT 공식으로 변환하지 않고, MFI 기반 백트래킹을 사용한 직접 순열 탐색을 통해 효율적이고 확장 가능한 SQL 기반 프로그램에 적합한 방법이다.
  • 기존의 동치성 검증기(Wang 등, 2018c)를 활용하여 원본 프로그램과 합성된 프로그램 간의 의미적 동치성을 검증한다.

실험 결과

연구 질문

  • RQ1사용자 간섭 없이 스키마 리팩터링 이후 의미적으로 동치인 데이터베이스 프로그램을 자동으로 생성할 수 있는가?
  • RQ2값 대응을 활용해 동치 프로그램 변환을 위한 탐색 공간을 효과적으로 제약할 수 있는가?
  • RQ3복잡한 스키마 변경이 발생하는 실제 데이터베이스 프로그램에 대해 효율적인 합성 성능를 달성할 수 있는가?
  • RQ4기호적 추론이 없는 상황에서 확장 가능한 순열 탐색을 가능하게 하는 가지치기 전략은 무엇인가?
  • RQ5기존의 데이터베이스 프로그램 합성 또는 검증 기법과 비교해 본다면, 제안된 방법은 성능 및 정확성 측면에서 어떻게 비교되는가?

주요 결과

  • 제안된 기법은 깃허브에서 추출한 20개의 실제 웹 애플리케이션 스키마 리팩터링 벤치마크에 대해 모두 새로운 버전의 프로그램을 성공적으로 합성하였다.
  • 모든 벤치마크 평균 합성 시간은 69.4초였으며, 실제 애플리케이션에 대한 실용적 효율성을 입증하였다.
  • 이 방법은 완전히 자동화되어 있으며, 원본 프로그램과 소스/타겟 스키마 외에는 수동 입력이 필요하지 않다.
  • 최소 실패 입력(MFIs)의 사용이 탐색 공간을 크게 줄여주어, 잠재적인 프로그램 완성 수가 많음에도 불구하고 확장성을 확보하였다.
  • 합성된 프로그램은 원본 프로그램과 증명 가능하게 동치이며, 동작 변경이나 의도하지 않은 부작용이 없음을 보장한다.
  • 이름이 Migrator인 도구는 값 대응으로 표현 가능한 경우, 관계 및 속성의 분할 및 병합을 포함한 스키마 리팩터링을 지원한다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.