최근 상용 DBMS 시장은 고가의 라이선스 정책과 신속하지 않은 기술 지원 서비스 등에 대한 사용자들의 부담과 불만이 커지면서, 호환성이나 안정성에 문제가 없는 오픈소스 DBMS의 사용에 대한 관심이 확대되고 있다. 이로 인해 DBMS 시장의 약 60% 점유율을 갖고 있는 오라클사 기반의 응용프로그램을 오픈소스 기반의 DBMS로 전환하여 비용을 절감하는 사례가 많아지고 있다. 그러나 오라클사에서 제공하는 PL/SQL의 사용으로 인한 비호환적 문장을 오픈소스 DBMS로 전환 시, 많은 수작업을 동반하게 되어 시간 및 비용 손실이 크다. 따라서 PL/SQL을 표준 SQL로 자동 전환해주는 도구가 요구된다. 제안하는 응용프로그램 전환을 위한 자동화 도구는 PL/SQL을 ANSI 표준 프로그래밍 언어인 Java SP (Stored Procedure)로 전환한다. 자동화 도구 테스트 실행을 통해 입출력 데이터의 동일성을 확인하고, 발생하는 Java SP 전환 오류 수정으로 신뢰성을 검증하여 응용프로그램 전환의 시간과 비용 절감에 기여할 수 있다는 것을 확인했다.
최근 상용 DBMS 시장은 고가의 라이선스 정책과 신속하지 않은 기술 지원 서비스 등에 대한 사용자들의 부담과 불만이 커지면서, 호환성이나 안정성에 문제가 없는 오픈소스 DBMS의 사용에 대한 관심이 확대되고 있다. 이로 인해 DBMS 시장의 약 60% 점유율을 갖고 있는 오라클사 기반의 응용프로그램을 오픈소스 기반의 DBMS로 전환하여 비용을 절감하는 사례가 많아지고 있다. 그러나 오라클사에서 제공하는 PL/SQL의 사용으로 인한 비호환적 문장을 오픈소스 DBMS로 전환 시, 많은 수작업을 동반하게 되어 시간 및 비용 손실이 크다. 따라서 PL/SQL을 표준 SQL로 자동 전환해주는 도구가 요구된다. 제안하는 응용프로그램 전환을 위한 자동화 도구는 PL/SQL을 ANSI 표준 프로그래밍 언어인 Java SP (Stored Procedure)로 전환한다. 자동화 도구 테스트 실행을 통해 입출력 데이터의 동일성을 확인하고, 발생하는 Java SP 전환 오류 수정으로 신뢰성을 검증하여 응용프로그램 전환의 시간과 비용 절감에 기여할 수 있다는 것을 확인했다.
In the recent commercial DBMS market, as the users' burden and complaint which are related to high price licensing policy and late technical support service are increasingly rising, the concern for use of open source DBMS which has no problem with compatibility or stability is escalating. Due to the...
In the recent commercial DBMS market, as the users' burden and complaint which are related to high price licensing policy and late technical support service are increasingly rising, the concern for use of open source DBMS which has no problem with compatibility or stability is escalating. Due to the fact, the cases saving the cost are growing by converting Oracle Corporation's applications, which has about 60% share in the DBMS market, to an open source DBMS. However, in converting non-interchange sentences to an ANSI standard-based open source DBMS because of the use of PL/SQL in Oracle Corporation provides, a lot of manual work accompanies, so there is a lot of loss of time and money. Therefore, a tool that automatically converts PL/SQL to standard SQL is required. The proposed automation tool for the conversion of applications converts PL/SQL to Java Stored Procedure, an open source DBMS-based ANSI standard programming language. Through carrying out a test on the automation tool, it is proved that the tool will contribute to shortening time and saving cost by verifying the identity of input-output data and its reliability after correcting errors in converting to Java Stored Procedure.
In the recent commercial DBMS market, as the users' burden and complaint which are related to high price licensing policy and late technical support service are increasingly rising, the concern for use of open source DBMS which has no problem with compatibility or stability is escalating. Due to the fact, the cases saving the cost are growing by converting Oracle Corporation's applications, which has about 60% share in the DBMS market, to an open source DBMS. However, in converting non-interchange sentences to an ANSI standard-based open source DBMS because of the use of PL/SQL in Oracle Corporation provides, a lot of manual work accompanies, so there is a lot of loss of time and money. Therefore, a tool that automatically converts PL/SQL to standard SQL is required. The proposed automation tool for the conversion of applications converts PL/SQL to Java Stored Procedure, an open source DBMS-based ANSI standard programming language. Through carrying out a test on the automation tool, it is proved that the tool will contribute to shortening time and saving cost by verifying the identity of input-output data and its reliability after correcting errors in converting to Java Stored Procedure.
따라서 본 논문에서는 PL/SQL을 Java SP로 전환하는 방법을 제안하고, 자동 전환하는 과정을 테스트하여 입력 데이터 PL/SQL과 출력 데이터 Java SP 코드의 동일성을 확인한다.
제안 방법
제안하는 응용프로그램 전환을 위한 자동화 도구는 PL/SQL 문법으로 개발된 응용프로그램(저장 프로시저, 함수, 트리거 등)을 ANTLR 기반의 어휘 분석 및 구문 분석 규칙을 적용 하여 만들어진 문법 문서를 사용하여 ANSI 표준 프로그래밍 언어인 Java SP로 자동 전환해준다. Fig.
테스트는 Fig. 5와 같이 소스 DBMS의 DB명은 PDBORCL, 목표 DBMS의 DB명은 PurchaseOrder로 구축하여 자동화 도구로 응용프로그램 전환을 수행한 후, 웹브라우저에서 PurchaseOrder의 데이터 조회/입력/수정 실행 결과를 확인했다.
대상 데이터
구매발주 테이블과 구매발주항목 테이블의 일부 속성은 입력화면에서 삽입했다. 그리고 구매발주 테이블의 구매발주 합계금액(PO_AMT) 속성은 PL/SQL의 저장 프로시저로 작성했고, 구매발주항목 테이블의 발주금액(PO_COST) 속성은 PL/SQL의 트리거로 작성하여 처리했다.
데이터처리
구매발주 테이블과 구매발주항목 테이블의 일부 속성은 입력화면에서 삽입했다. 그리고 구매발주 테이블의 구매발주 합계금액(PO_AMT) 속성은 PL/SQL의 저장 프로시저로 작성했고, 구매발주항목 테이블의 발주금액(PO_COST) 속성은 PL/SQL의 트리거로 작성하여 처리했다.
이론/모형
본 논문에서는 PL/SQL 구문의 어휘 분석과 구문 분석을 체계적으로 하기 위해 ANTLR4 기술을 적용한다[11]. ANTLR문법에 맞는 PL/SQL의 어휘와 구문 분석 규칙을 설계하였으며 Fig.
성능/효과
실행 과정에서 트리거의 자동 전환에서 문제점이 발생되었으나, 이는 큐브리드의 엔진 문제로 Java SP를 수정함으로써 완전하게 전환됨을 보였다. 따라서 제안하는 응용프로그램 전환 자동화 도구는 PL/SQL 응용프로그램을 오픈소스 DBMS 의 응용프로그램으로 전환 시 발생 가능한 위험요소를 제거 했고, 자동 전환 수행으로 기존 전환 방법보다 시간, 노력 그리고 비용 절감이 가능하다는 것을 보였다. 테스트에서 적용한 큐브리드 외에 PostgreSQL, MariaDB 등의 오픈소스 DBMS로 전환하는 경우에도 동일하게 적용이 가능하다.
응용프로그램 전환 자동화 도구 테스트 실행으로 전환할 PL/SQL 구문과 전환된 Java SP의 동일한 데이터 검증으로 신뢰적인 전환 결과를 확인했다.
제안하는 자동화 도구가 기존 전환 방법보다 간편한 수행으로 사용의 편리성을 제공하고, 전환 과정에서 발생하는 오류는 수정 가능하고, ANTLR을 사용하여 신속한 어휘 분석과 구문 분석 과정으로 처리 시간 단축 및 비용 감소 가능성을 확인했다.
후속연구
라이선스 분쟁 또는 신속하지 못한 기술지원 서비스 등과 같은 불만으로 인해 사용자들은 호환성이나 안정성에 문제가 없는 오픈소스 DBMS에 대한 관심이 점차 확대되고 있으며, 이는 공공기관, 기업 및 학교 등 다양한 분야로 확산되고 있으며 제품의 시장 점유율도 증가하고 있다. 따라서 본 논문에서 제시하는 응용프로그램 전환 자동화 도구를 활용하여 실제 업무에 적용한다면 DBMS 다변화에 큰 영향을 줄 수 있을 것이다.
향후에는 오픈소스 DBMS의 활용을 높일 수 있는 추가 기능과 응용프로그램 전환 자동화 도구의 성능을 높일 수 있는 연구가 추가적으로 요구된다.
질의응답
핵심어
질문
논문에서 추출한 답변
ANSI 표준 SQL은 무엇인가?
오라클사 기반 응용프로그램은 ANSI 표준 언어인 SQL과 오라클사에서 독자적으로 제공하는 PL/SQL(Procedural Language extension to SQL)을 사용한다. ANSI 표준 SQL은 관계형 DBMS 데이터를 관리하기 위해 설계된 표준 언어이고[2], PL/SQL은 표준 SQL에 절차적인 프로그래밍 언어를 포함하여 만든 비표준 언어이다[3].
오라클사 기반 응용프로그램은 무엇을 사용하는가?
오라클사 기반 응용프로그램은 ANSI 표준 언어인 SQL과 오라클사에서 독자적으로 제공하는 PL/SQL(Procedural Language extension to SQL)을 사용한다. ANSI 표준 SQL은 관계형 DBMS 데이터를 관리하기 위해 설계된 표준 언어이고[2], PL/SQL은 표준 SQL에 절차적인 프로그래밍 언어를 포함하여 만든 비표준 언어이다[3].
오라클사의 DBMS 기반의 응용프로그램 들을 개발할 때에는 PL/SQL을 사용하기 때문에, 어떠한 경우에 시간 및 비용 측면에서 손실이 큰가?
오픈소스 DBMS는 ANSI 표준 SQL을 사용하여 응용프로 그램을 개발하지만 오라클사의 DBMS 기반의 응용프로그램 들을 개발할 때에는 PL/SQL을 사용한다. 이러한 문제로 오라클사의 PL/SQL을 오픈소스 DBMS로 전환 시, PL/SQL의 비호환적 문장으로 인해 많은 수작업을 동반하게 되어 시간및 비용 측면에서 손실이 크다[4]. 그러므로 PL/SQL을 ANSI 표준 프로그래밍 언어인 Java SP로 자동 전환해주는 도구의 필요성이 요구된다.
참고문헌 (14)
2014 Year of the database industry market analysis report, Korea Database Agency, Dec. 2014. (in Korean)
ANSI/ISO/IEC 9075-14:2006, "Database languages - SQL - Part14: XML-Related Specifications (SQL /XML)," International Organization for Standardization/International Electrotechnical Commission, Mar. 2011.
Y. Zhao, T. Wang, X. Ni, X. Wang, and Z. Xie, "Syntactic Representation Transformation in Operator Design Method Based on ANTLR Tool," Computer and Information Technology(CIT), 2012 IEEE 12th International Conference on., pp.115-118, Oct. 2012.
Terence Parr, Language Implementation Patterns, The Pragmatic Bookshelf, 2010.
Terence Parr, The Definitive ANTLR 4 Reference, 2nd Edition, The Pragmatic Bookshelf, 2013.
T. J. Parr and R. W. Quong, "ANTLR: A predicated -LL(k) Parser Generator," Software-Practice and Experience, Vol.25(7), pp.789-810, 1995.
D. Cao and D. Bai, "Design and implementation for SQL parser based on ANTLR," 2010 2nd International Conference on Computer Engineering and Technology, Vol.4, pp.276-279, 2010.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.