거친정보의바다를함께건너다 공개 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 개념도 Stored Procedure Java C/C++ C# Android Java Objective C HTML5 자동전환 Stored Procedure 표준 SQL DB 사용자애플리케이션데이터베이스로직데이터베이스
DBMS 전환자동화 Tool 개발툴아키텍처 PL/SQL 문법 ANTLR PL/SQL 문법 PL/SQL 문법 Stored Procedure Parser Translator PL/SQL 문법 PL/SQL 문법 DBMS Adaptor
DBMS 전환자동화 Tool 내부아키텍처
DBMS 전환자동화 Tool 변환프로세스
DBMS 전환자동화 Tool 일정 정기회의 강연 / 세미나 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 메뉴구성도 변환대상 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 PL/SQL 문법분석 10 JAVA CRUD 조회 17 변환매핑관리 5 변환분석 6 PL/SQL CRUD 조회
DBMS 전환자동화 Tool 매핑테이블 SEQ ORACLE Java CUBRID 비고 1 Variable variable datatype [NOT [NULL]] {:= } expression ; {DEFAULT} datatype variable = expression; 2 Constant variable CONSTANT datatype [NOT [NULL]] {:= } expression ; {DEFAULT} final datatype variable = expression; 3 Initial Values variable CONSTANT datatype [NOT [NULL]] {:= } init-value ; {DEFAULT} final datatype variable = init-value; NOT NULL variable datatype [NOT [NULL]] {:= } expression ; 4 Constraint {DEFAULT} datatype variable = expression; NOT NULL 은지원하지않음 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 처리방안필요 10 Assignment Statement variable_name := expression; variablename = expression; <SELECT INTO Statement> SELECT select_item [, select_item ]... SELECT select_item [, select_item ]... 11 INTO variable_name [, variable_name ]... INTO variable_name [, variable_name ]... FROM table_name; Assigning Values FROM table_name; 12 <Parameters of a Subprogram> Subprogram(parm1[, parmn]); class.method(parm1[, parm2]); IN OUT 지원하지않음 13 <BOOLEAN Variables> variable = TRUE; variable = FALSE; 14 Concatenation Operator 15 16 17 18 Expressions Comparison Operator Precedence ** +, - *, / +, -, =, <, >, <=, >=, <>,!=, ~=, ^=, IS NULL, LIKE, BETWEEN, IN NOT AND OR Logical Operators AND, OR, and NOT IS NULL Short-Circuit Evaluation IF (on_hand = 0) OR ((on_order / on_hand) < 5) THEN Relational Operators = <>,!=, ~=, ^= < > <= >= variable = true; variable = false; =+ or String.append() Math.pow( 밑, 지수 ) +, - *, / +, -, + or String.append() =, <, >, <=, >=, <>,!=,!=,!=, == null! && and, or, and not == null if (on_hand = 0) OR ((on_order / on_hand) < 5) THEN Relational Operators == <>,!=,!=,!= < > <= >= Operators 19 IS [NOT] NULL = null, not = null 20 LIKE regular expression 으로처리 21 BETWEEN variable >= operand1 and variable <= operand2 로변환필요 22 IN variable = oprand1 or variable = operand2 으로변환필요 23 BOOLEAN TRUE를 true, FALSE를 false, NOT을!, AND를 &&, OR를 로변환이필요 LIKE, BETWEEN, IN 지원하지않음 조건중에 null 이있는경우는항상 FALSE 를 return 하는것은지원하지않음 Date Comparisons 지원하지않음
DBMS 전환자동화 Tool 예시화면
DBMS 전환자동화 Tool 파생연구
1 차년도 2 차년도 Source Manager Oracle PL/SQL 소스관리 Utility Adaptor Oracle 의빌트 - 인함수 Conversion Manager Oracle PL/SQL 소스변환 DBMS 확장 지원 DB 확장 Target Manager 변환된 Java 관리 ㄴ Java Compile ㄴ DBMS 에 Java Class 등록 Adaptor RDBMS 지원 DBMS Adaptor
단순자동전환툴개발만으로는성공할수없다! 의독점에대항할더많은아군이필요하다. 바로수많은공개소프트웨어개발자들!
Oracle 2 Cubrid 소스코드관리형상관리이슈관리 DATABASE. SARANG.NET
우리는 DBMS 자동전환 Tool 이라는엔진을만든다. 이엔진은모두의것이며, 누구든이엔진을튜닝할수도있고, 이를이용해새로운자동차를만들수도있다. 그과정에서무한한경쟁과협력이일어나, 누구도예측하지못했던더멋진작품이탄생할것이다. 개방, 참여, 공유 = 협업 이것이우리가다국적대기업에대항하는방법이며, 거친정보의바다를헤쳐나갈원동력이다!