“거친 정보의 바다를 함께 건너다”

공개 SW 기반 DBMS 전환 자동화 Tool 개발

Development of Automatic DBMS Conversion Tool based on Open Source Software 초고속 인터넷 LTE 네트워크 단말기 제조능력 및 외산 DBMS 제품이 국내 DBMS 시장의 93% 점유 2012년 기준 “국산 DBMS의 성능은 이제 경쟁력을 갖고 있다!” DBMS 교체의 필수조건 DB Migration

“공개 DBMS 전환작업 최대의 걸림돌”

임시변통적 수작업으로 인해 비용과 시간이 낭비

기반 DB를 현 방식으로 전환할 때, 많은 비용/시간 소요! DBMS 전환 자동화 Tool enCub 개념도

Stored Procedure

Java /C++ C# 자동전환 Android Java Objective C HTML5

Stored Procedure

표준 SQL DB

사용자 애플리케이션 데이터베이스 로직 데이터베이스 DBMS 전환 자동화 Tool enCub 개발툴 아키텍처

PL/SQL 문법

ANTLR

Parser PL/SQLPL/SQL 문법 문법 PL/SQLPL/SQL 문법 문법 Stored Procedure Translator

DBMS Adaptor DBMS 전환 자동화 Tool enCub 내부 아키텍처 DBMS 전환 자동화 Tool enCub 변환 프로세스 DBMS 전환 자동화 Tool enCub 일정

정기회의 KickOff Final 강연/세미나

5 6 7 8 9 10 11 대 중 소 제목 시작일 종료일 비고 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 자료 수집 및 분석 05월 06일 05월 31일 솔트웨어/큐브리드 1.1 ORACLE SQL 분석 솔트웨어/큐브리드 1.2 PL/SQL 분석 솔트웨어/큐브리드 1.3 CUBRID SQL 분석 솔트웨어/큐브리드 1.4 비교 Table 작성 솔트웨어/큐브리드 1.5 Stored Procedure 실 사용례 수집 솔트웨어/큐브리드 2 설계 06월 01일 06월 30일 솔트웨어/큐브리드 2.1 화면 설계 솔트웨어/큐브리드 2.2 변환 엔진 설계 솔트웨어/큐브리드 2.3 Source Manager 설계 솔트웨어/큐브리드 2.4 Target Manager 설계 솔트웨어/큐브리드 3 1차 개발 07월 01일 08월 30일 솔트웨어 3.1 화면 개발 솔트웨어 3.2 Parser 개발 솔트웨어 3.3 변환 엔진 개발 솔트웨어 4 1차 테스트 08월 15일 09월 15일 1차 산출물 마감(한컴) 4.1 Stored Procedure 변환 테스트 숭실대 5 2차 개발 09월 15일 10월 30일 솔트웨어 5.1 화면 개발 솔트웨어 5.2 Parser 개발 솔트웨어 5.3 변환 엔진 개발 솔트웨어 6 2차 테스트 10월 15일 11월 15일 2차 산출물 마감(한컴) 6.1 Stored Procedure 변환 테스트 숭실대 7 패키징 11월 15일 11월 30일 솔트웨어/한컴/큐브리드 7.1 홍보자료 작성 솔트웨어/한컴/큐브리드 7.2 교육자료 작성 솔트웨어/한컴/큐브리드 DBMS 전환 자동화 Tool enCub 메뉴 구성도

변환대상 PL/SQL수집 PL/SQL변환 변환검증 변환관리

1 7 11 14 PL/SQL PL/SQL 수집 PL/SQL 변환 변환 전/후 비교 Tool 환경관리

2 8 12 15 PL/SQL 조회 변환 결과 조회 변환율 조회 Repository 설정

3 9 13 16 PL/SQL Parsing 변환 LOG 조회 CRUD 비교 사용자 권한 관리

4 10 17 PL/SQL 문법 분석 JAVA CRUD 조회 변환 매핑 관리

5 변환 분석

6 PL/SQL CRUD 조회 DBMS 전환 자동화 Tool enCub 매핑 테이블

SEQ ORACLE Java CUBRID 비고 variable datatype [NOT [NULL]] {:= } expression ; 1 Variable datatype variable = expression; {DEFAULT} variable CONSTANT datatype [NOT [NULL]] {:= } expression ; 2 Constant final datatype variable = expression; {DEFAULT} variable CONSTANT datatype [NOT [NULL]] {:= } init-value ; 3 Initial Values final datatype variable = init-value; {DEFAULT} NOT NULL variable datatype [NOT [NULL]] {:= } expression ; 4 datatype variable = expression; NOT NULL 은 지원하지 않음 Constraint {DEFAULT} 5 referencing_item referenced_item%TYPE; datatype variable = expression; referenced_item의 type 획득 필요 %TYPE Attribute 6 variable_name table_name.column_name%TYPE; datatype variable = expression; database의 column정보 획득 필요 7 unit_name.simple_identifier_name unit 처리 방안 필요 References to 8 simple_identifier_name@link_to_remote_database remote database 처리 방안 필요 Identifiers 9 unit_name.simple_identifier_name@link_to_remote_database remote database 및 unit 처리방안 필요 Assignment Statement 10 variablename = expression; variable_name := expression;