KR100505111B1 - 데이터베이스 연산용 프로그램 소스 생성 장치 및 그방법과 이를 이용한 컴퓨터 프로그램 제품 - Google Patents

데이터베이스 연산용 프로그램 소스 생성 장치 및 그방법과 이를 이용한 컴퓨터 프로그램 제품 Download PDF

Info

Publication number
KR100505111B1
KR100505111B1 KR10-2002-0060345A KR20020060345A KR100505111B1 KR 100505111 B1 KR100505111 B1 KR 100505111B1 KR 20020060345 A KR20020060345 A KR 20020060345A KR 100505111 B1 KR100505111 B1 KR 100505111B1
Authority
KR
South Korea
Prior art keywords
program source
database
program
information
file
Prior art date
Application number
KR10-2002-0060345A
Other languages
English (en)
Other versions
KR20040029898A (ko
Inventor
윤영식
이명진
이경우
서경란
Original Assignee
가림정보기술(주)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 가림정보기술(주) filed Critical 가림정보기술(주)
Priority to KR10-2002-0060345A priority Critical patent/KR100505111B1/ko
Publication of KR20040029898A publication Critical patent/KR20040029898A/ko
Application granted granted Critical
Publication of KR100505111B1 publication Critical patent/KR100505111B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 데이터베이스에 관한 정보를 취득하여 데이터베이스에 대한 연산을 실행하는 프로그램 소스 생성 장치 및 그 방법에 관한 것이다. 이를 위하여 본 발명의 프로그램 소스 생성 장치는 CPU와, 데이터에 대한 정보를 기록한 정보파일을 포함하는 데이터저장유닛으로 이루어지며, 이러한 프로그램 소스 생성 장치를 이용한 본 발명의 프로그램 소스 생성 방법은 데이터베이스의 접속 정보 및 소스 생성 제어 정보를 얻는 단계, 데이터베이스의 메타데이터를 수집하는 단계, 템플릿 파일을 로딩하는 단계, 그리고 프로그램 소스를 생성하는 단계를 포함한다. 이와 같이 생성된 본 발명의 프로그램 소스를 이용함으로써 프로그램 개발자는 단순 반복 작업을 행하지 않고도 보다 손쉽게 데이터베이스에 대한 연산을 실행하는 시스템을 개발할 수 있다.

Description

데이터베이스 연산용 프로그램 소스 생성 장치 및 그 방법과 이를 이용한 컴퓨터 프로그램 제품 {THE APPARATUS AND METHOD OF CREATING PROGRAM SOURCE FOR OPERATING DATABASE AND THE COMPUTER PROGRAM PRODUCT USING THE SAME}
본 발명은 데이터베이스에 대한 정보를 수집하여 데이터베이스의 데이터에 대한 연산을 수행하는 프로그램 소스 생성 장치 및 그 방법에 관한 것으로, 더욱 상세하게는 데이터베이스에 접속하여 데이터베이스의 스키마를 수집한 후, 데이터베이스의 테이블 또는 뷰에 대한 검색, 삽입, 삭제, 변경 등의 기본 연산을 수행하는 클래스 프로그램 소스 및 마이그레이션 프로그램 소스를 생성하기 위한 장치 및 방법에 관한 것이다.
현대 사회의 모든 기업은 대규모 전산시스템을 운영하면서 대량의 데이터를 포함한 데이터베이스를 사용하고 있다. 데이터베이스(database)라 함은 특정 조직의 여러 응용 시스템들이 공용할 수 있도록 통합 및 저장되어 있고, 내용에 쉽게 액세스하여 처리하고 갱신할 수 있도록 이루어진 데이터의 집합체를 말한다. 이러한 데이터베이스는 데이터를 저장하기 위하여 데이터를 저장하는 장소인 테이블(table)과 1개 이상의 테이블에 대해 필요한 정보를 정의한 논리적인 테이블인 뷰(view)라는 저장 단위를 제공하며, 각 저장단위의 데이터마다 검색(select), 삽입(insert), 삭제(delete), 변경(update) 등의 연산을 실행할 수 있도록 되어 있다.
이러한 기본 연산을 응용하여 마이그레이션이라는 작업도 수행된다. 마이그레이션이라 함은, 데이터베이스의 데이터를 다른 데이터베이스로 옮기는 작업을 말하는 데, 데이터베이스로 시스템을 운영하거나 개발을 하다 보면 기존의 데이터베이스에 있는 데이터들을 다른 데이터베이스로 옮기는 작업이 필요하므로 많이 요구된다. 특히 옮길 원천이 되는 데이터베이스(이하 소스(source) 데이터베이스라고 함.)와 옮길 대상이 되는 데이터베이스[이하 목적(destination) 데이터베이스라고 함.]의 데이터베이스 구조 및 테이블의 구조가 일치하면 마이그레이션이 비교적 간단하지만, 소스 데이터베이스와 목적 데이터베이스의 구조가 서로 다르며, 심지어 DBMS(database management system, 데이터베이스 관리 시스템)까지 다른 경우에는 마이그레이션 작업이 상당히 복잡해지므로 마이그레이션용 프로그램 개발이 필요한 실정이다.
도 6은 사용자의 요구에 따른 데이터베이스의 연산 실행 과정을 개략적으로 나타내고 있다. 데이터베이스(2)에 대해서 사용자(7)가 데이터베이스(2)에 대한 특정 정보의 검색, 삽입, 삭제, 갱신 등의 요청을 하는 경우, 이러한 요청에 따라 데이터베이스(2)의 자체의 테이블 및 뷰로부터 사용자가 원하는 데이터 연산이 실행되어 그 결과가 사용자에게 제공된다. 이러한 정보를 제공받기 위하여 사용자는 데이터베이스에서 정보를 얻거나 갱신하기 위해 표준화된 언어(Structured Query Language, SQL)를 통하여 데이터베이스(2)에 정보 제공 및 변경을 요청하고, 이에 따라 데이터베이스(2)는 사용자의 요청 작업을 수행한 후 그 결과를 사용자에게 제공한다. 프로그램 개발자(6)는 데이터베이스 연산에 필요한 프로그램 소스를 코딩하여 제공한다.
특히 오늘날에는 일반적으로 대다수의 데이터베이스에 데이터베이스 표준 라이브러리인 JDBC(Java Database Connectivity)가 제공되는 데, 여기서의 JDBC는 자바로 작성된 프로그램을 일반 데이터베이스에 연결하기 위한 응용프로그램 인터페이스 규격을 말한다. 이러한 응용프로그램 인터페이스는 데이터베이스 관리시스템에 넘겨질 SQL 형태의 데이터베이스 접근 요구 문장을 각 시스템에 맞도록 바꾸어 주는 역할을 하며, 처리 결과도 이와 유사한 인터페이스를 통하여 얻게 된다. JDBC는 실제로 2계층의 인터페이스로 이루어져 있다. 즉, 주(主) 인터페이스 이외에 JDBC "manager"에서 나온 API(application program interface)가 있는데, API는 개별 데이터베이스 제품의 드라이버들과 차례로 통신하는 역할을 한다.
JDBC는 프로그램 개발자가 SQL 요구를 만드는데 사용할 일련의 객체지향 프로그램의 클래스(class)들을 정의하고 있으며, 별도의 추가 클래스 모음집에 JDBC 드라이버 API가 기술되어 있다.
이와 같이 JDBC에서 정의하고 있는 클래스는 일련의 객체지향 프로그래밍(object-oriented programming, OOP)을 통하여 이루어지는 데, 여기서의 클래스는 이러한 객체 지향형 프로그램에서 하나의 논리적 관리 단위인 객체를 구현하는 소스를 말한다.
객체지향 프로그래밍은 모든 객체와 이러한 객체들이 어떠한 연관성이 있는지를 식별한 다음, 식별 결과를 객체 클래스로 일반화하고 클래스가 포함하는 데이터의 종류와 이를 다룰 수 있는 모든 논리 순서를 정의한다. 따라서, 객체지향 프로그래밍에서는 클래스가 중요한 역할을 담당하며 다음과 같은 이점을 제공한다.
클래스 개념은 일부 또는 모든 주 클래스 특성을 공유하는 객체의 부 클래스를 정의할 수 있게 하며, 상속이라 불리는 이 객체지향 프로그래밍의 특성은 면밀한 자료 분석과 개발시간 단축, 그리고 좀더 정확한 코딩을 보증하는 효과가 있다. 또한 클래스는 단지 관련된 데이터만 정의하기 때문에, 그 클래스의 인스턴스가 수행될 때 다른 프로그램에서 사용하는 데이터를 건드릴 수 없다. 이러한 자료 숨김 특성은 높은 시스템 보안을 제공하고, 의도하지 않은 자료의 훼손을 방지한다. 그리고 클래스의 정의는 최초로 생성한 프로그램뿐 아니라 다른 객체지향 프로그래밍에 의해 재사용될 수 있으므로 네트워크에 쉽게 분산되어 사용된다. 이와 더불어, 클래스 개념은 언어에 정의되지 않은 새로운 데이터 형식을 프로그램 개발자가 임의로 정의할 수 있게 한다.
이러한 이점으로 인하여 객체 지향 프로그래밍 언어가 많이 사용되고 있는데, 자바(Java)는 기업이나 인터넷의 분산 응용프로그램에 사용되도록 설계된 객체 지향 프로그래밍 언어 중 하나이다. 자바는 특정한 컴퓨터 하드웨어나, 특정한 OS(Operating System)에 종속적이지 않고 자바가상머신이 수행될 수 있는 모든 컴퓨터 시스템에서 실행될 수 있으므로 자바로 개발한 응용 프로그램은 범용성 및 호환성을 가진다. 전술한 JDBC도 자바 랭귀지 라이브러리에 속하는 것으로서, 프로그램 개발자가 SQL을 코딩하는 경우 데이터베이스 표준 라이브러리인 JDBC를 사용하게 된다. JDBC는 특정한 DBMS에 종속적이지 않고 JDBC에서 규정한 API 드라이버를 제공하는 모든 DBMS에 사용될 수 있다.
그런데, 사용자가 일일이 SQL을 코딩하여 JDBC를 기반으로 하는 데이터베이스에 원하는 정보를 요청 또는 변경하는 것이 현실상 불가능하므로, 데이터베이스의 데이터에 대한 연산을 실행하는 시스템을 개발하여 사용한다. 따라서, 도 6에 도시한 바와 같이, 프로그램 개발자(6)가 바로 이와 같은 데이터 연산에 필요한 프로그램 소스를 코딩하여 제공한다.
그러나 이러한 프로그램 소스의 코딩에 있어서는 다루어야 할 데이터 저장단위가 많을 경우, 각 저장단위별로 클래스를 생성시 각 저장단위에 포함된 컬럼(column)에 대해 Set/Get등의 함수, 각 컬럼의 각기 상이한 데이터형을 처리하는 함수, 검색의 결과가 1개 이상인 경우 검색결과 List를 관리하는 함수, 검색 연산을 실행하는 함수, 변경, 삽입, 삭제 등의 연산 실행하는 함수 등의 기본적인 함수를 각 저장단위마다 반복하여 일일이 만들어 주어야 하는 문제점이 있었다. 따라서 개발자가 일일이 반복적으로 코딩하는 경우 매우 복잡해지게 되어 정작 작성된 데이터베이스 연산 시스템에는 논리적인 오류가 있을 가능성이 매우 큰 문제점이 있다.
이러한 기본적인 연산 이외에도 대량의 저장단위에 대한 마이그레이션 및 서로 다른 데이터베이스 시스템간에 마이그레이션이 이루어지는 경우, 수작업으로는 불가능한 경우가 많을 뿐만 아니라, 마이그레이션 작업이 지속적으로 이루어 지는 것이 아니라 개발 기간 및 운용 초기에 1~2번만 수행되기 때문에 마이그레이션을 위한 프로그램을, 프로그램 개발자가 손수 작성하는 것은 시간과 비용 측면에서 비효율적이다.
본 발명은 이와 같은 문제점을 해결하기 위한 것으로, 프로그램 개발자를 위하여 데이터베이스의 데이터에 대한 기본 연산 및 마이그레이션을 실행하는 프로그램 소스를 자동으로 생성해 줌으로써, 프로그램 개발자가 데이터베이스 저장단위에 대한 기본 연산 및 마이그레이션 작업에 대해 프로그램 소스를 코딩할 필요성을 없애줄 뿐만 아니라, 데이터베이스 스키마를 참조하여 프로그램 개발자가 작업 소스를 생성할 때 발생할 수 있는 오류를 완전히 제거하고자 한다.
또한 본 발명은 데이터베이스의 스키마가 변경되었을 경우 관련된 프로그램의 소스를 모두 변경하던 방법을 탈피하여 데이터베이스의 스키마가 변경되었을 경우 변경이 필요한 부분에 대해 자동으로 변경된 내용의 소스를 생성해 줌으로써 프로그램 개발자의 프로그램 개발 기간을 단축하고 오류를 완전히 제거할 수 있도록 하고자 한다.
그리고 본 발명은 마이그레이션용 프로그램 소스 생성 방법을 부가적으로 제공함으로써, 프로그램 개발자가 손쉽게 기존의 데이터베이스에 있는 데이터를 다른 데이터베이스로 손쉽게 옮길 수 있도록 하게 해주고자 한다.
이와 같은 본 발명의 목적을 달성하기 위하여 본 발명의 데이터베이스에 대한 연산을 수행하는 프로그램 소스 생성 장치는 프로그램 소스 생성에 필요한 파일을 저장하는 데이터저장유닛 및 이러한 데이터저장유닛의 파일들에 대한 명령을 수행하는 CPU(central processing unit)를 포함한다. 여기서 데이터저장유닛은, 데이터베이스에 대한 접속 정보를 저장하는 데이터베이스 접속정보파일, 프로그램 소스 생성에 필요한 정보를 저장하는 프로그램 소스 생성정보파일, 기설정된 프로그램 소스를 저장하고 이를 바탕으로 하여 프로그램 소스 생성에 필요한 정보에 따라 프로그램을 생성하기 위한 템플릿(template) 파일, 메타데이터를 수집하고 프로그램 소스 생성에 적용되는 라이브러리를 포함하는 라이브러리 파일 그리고 프로그램소스 생성정보파일에 저장된 프로그램소스 생성정보에 따라 템플릿 파일 중 하나 이상의 변수값을 상기 메타데이터에 관한 문자열로 치환함으로써 생성되는 프로그램 소스파일을 포함한다.
또한, 본 발명의 프로그램 소스 생성 장치는 데이터저장유닛에 생성된 프로그램 소스에 따라 마이그레이션(migration)을 실행하기 위한 마이그레이션용 정보 파일을 추가로 포함할 수 있다.
데이터베이스에 대한 연산을 수행하는 본 발명의 프로그램 소스 생성 방법은, 데이터베이스의 접속 정보를 가져오는 단계, 데이터베이스에 대한 프로그램 소스 생성에 필요한 프로그램 소스 생성 정보를 가져오는 단계, 데이터베이스의 메타데이터를 수집하는 단계, 프로그램 소스 생성에 필요한 기설정된 프로그램 소스를 포함하는 템플릿 파일을 로딩하는 단계 및 프로그램 소스 생성 정보에 따라 템플릿 파일의 기설정된 프로그램 소스 중 하나 이상의 변수값을 메타데이터에 관한 문자열로 치환하여 프로그램 소스를 생성하는 단계를 포함한다.
본 발명의 프로그램 소스 생성 방법에서 데이터베이스의 접속 정보를 가져오는 단계는 접속시에 사용하는 드라이버(driver), URL(uniform resource locator), 사용자 ID, 사용자 패스워드, 초기설정 데이터베이스 접속개수, 최대설정 데이터베이스 접속개수, 그리고 타임아웃(timeout) 발생 최대시간을 포함하고, 스크립트(script) 파일 형태로 저장되어 있는 데이터베이스 접속 정보 파일을 로딩하여 데이터베이스 접속 정보를 추출할 수 있다.
또한 본 발명의 프로그램 소스 생성 방법에서 데이터베이스의 프로그램 소스 생성 정보를 가져오는 단계는 소스 생성 대상의 범위 및 종류, 패키지 이름, 클래스 이름, 결과의 정렬, 그리고 쿼리의 구조에 관한 정보를 포함하며, 스크립트 파일 형태로 저장되어 있는 프로그램 소스 생성 정보 파일을 로딩하여 프로그램 소스 생성 정보를 추출할 수 있다.
또한 본 발명의 프로그램 소스 생성 방법에서 메타데이터를 수집하는 단계는, 데이터베이스의 메타데이터, 테이블 메타데이터 및 컬럼 메타데이터를 수집하고, 데이터베이스에서 메타데이터를 수집하여 프로그램 소스 생성 정보를 추출할 수 있다.
본 발명의 프로그램 소스 생성 방법에 따라 마이그레이션용 프로그램 소스를 생성하는 방법은, 프로그램이 마이그레이션용 스크립트 파일을 분석하는 단계, 프로그램에 따라 소스 데이터베이스의 프로그램 소스를 생성하는 단계, 프로그램에 따라 목적(destination) 데이터베이스의 프로그램 소스를 생성하는 단계, 그리고 소스 데이터베이스 프로그램과 상기 목적 데이터베이스 프로그램을 매핑(mapping)하는 프로그램 소스를 생성하는 단계를 포함한다.
그리고 본 발명의 컴퓨터 프로그램 제품은 이러한 본 발명의 프로그램 소스 생성 방법을 실행하기 위한 일련의 명령을 포함하며, 이러한 일련의 명령에 포함되는 명령어를 제공하는 라이브러리를 추가로 포함할 수 있다.
본 발명의 실시예를 첨부한 도면을 참조하여 이하에 설명한다. 동일한 부분에는 동일한 도면 부호를 사용하여 설명을 생략한다.
도 1은 본 발명의 전체적인 개념을 나타내는 개략적인 도면으로서, 본 발명의 데이터베이스 연산용 프로그램 소스 생성 개요를 나타낸다. 도1에 나타낸 바와 같이, 본 발명의 프로그램 소스 생성기(1)는 스크립트 파일(3)로부터 데이터베이스에 대한 접속 정보 및 프로그램 소스 생성에 필요한 제어 정보를 제공받고, 데이터베이스(2)로부터 메타 데이터를 제공받는다. 본 발명의 프로그램 소스 생성기(1)는 이와 같이 제공받은 정보를, 템플릿 파일(4)을 로딩하여 템플릿 파일(4)의 대응되는 특정표시 부분과 자동으로 치환함으로써 소스 파일(5)을 생성한다. 이와 같이 생성된 소스 파일(5)은 데이터베이스를 이용하는 프로그램 개발자들에게 제공되어 데이터베이스의 연산에 필요한 프로그램의 코딩 작업을 돕는다. 프로그램 개발자들은 이러한 과정을 통하여 제작된 프로그램 소스를 사용하여 데이터베이스 연산을 실행하는 시스템을 개발하여 사용자에게 제공하며, 사용자는 이러한 데이터베이스 연산 시스템을 이용하여 데이터베이스에 대한 연산을 행할 수 있다.
전술한 메타 데이터는 데이터에 대한 정의나 설명이 되어 있는 것을 말하며, 관련된 데이터나 정보를 포함하는 보다 포괄적이나 근원적인 데이터를 말한다. 본 발명의 프로그램 소스 생성기(1)가 수집하는 메타 데이터는 데이터베이스의 스키마 정보로서 데이터베이스 메타 정보, 테이블 메타 정보 및 컬럼 메타 정보가 포함되며, 데이터베이스로부터 수집되어 프로그램 소스 생성에 이용된다. 본 발명에서는 자체 제작한 라이브러리를 사용하여 데이터베이스로부터 메타 데이터를 수집하며, 이러한 라이브러리는 본 발명의 프로그램 소스 생성기(1)에 제공되어 프로그램 소스 생성에 이용된다.
특히 본 발명의 프로그램 소스 생성기(1)는 JDBC를 지원하는 모든 데이터베이스에서 사용할 수 있도록 되어 있으며, OS(operating system, 운영체제)의 종류에 관계없이 사용이 가능하다. 또한 ODBC(open database connectivity)를 지원하는 데이터베이스에서도 사용이 가능하므로 범용성이 뛰어나다. 특히, 널리 사용되고 있는 DBMS(Oracle, Informix, MS SQL Server, MySQL)에서는 모두 JDBC 드라이버를 제공하고 있으므로 본 발명의 프로그램 제품은 특정 DBMS에 종속된 것이 아니라 범용 DBMS에 사용될 수 있다는 이점이 있다.
도 2는 전술한 도 1의 프로그램 생성기를 구조를 나타내는 블록도이다. 도 2에 나타낸 바와 같이 본 발명의 프로그램 생성기(1)는 CPU(central processing unit, 중앙처리장치)(22) 및 데이터저장유닛(24)을 포함하며, 입력장치(21) 및 표시 장치(25)는 CPU(22)와 연결되어 데이터에 관한 정보를 입력받아 가공하여 출력한다.
CPU(22)는 생성된 데이터의 연산 결과를 임시로 저장하는 메모리(23)을 포함하며, 데이터저장유닛(24)은 데이터베이스 접속정보파일(241), 프로그램소스 생성정보파일(242), 템플릿 파일(243), 라이브러리 파일(244) 및 생성된 프로그램소스파일(243)을 포함한다.
프로그램 개발자들은 데이터베이스 접속정보파일(241)에 접속할 데이터베이스의 IP주소 및 사용자 ID, 비밀번호 등을 저장하며, 프로그램소스 생성정보파일(242)에는 생성될 프로그램 소스가 어떠한 내용을 포함할 것이며, 어떤 저장단위에 대한 프로그램 소스를 생성할 것인지에 대한 프로그램 소스 생성 정보가 스크립트 파일로 저장되어 있다. 템플릿 파일(243)은 검색, 삽입, 삭제, 변경 등의 기설정된 프로그램 소스를 제공하는 역할을 담당한다. 라이브러리 파일(244)은 전술한 바와 같이 데이터베이스의 메타데이터 수집이나 프로그램 소스 생성 등에 이용되는 라이브러리를 저장하며, 생성된 프로그램소스파일(245)은 소스 생성 프로그램의 실행 결과로 생성되는 데이터베이스 연산프로그램소스를 저장한 파일을 말한다.
또한 도 2에 도시하지는 않았지만, 본 발명의 프로그램 생성기(1)는 마이그레이션용 정보파일을 포함할 수도 있다. 마이그레이션용 정보파일은 검색, 삽입, 삭제, 변경 등의 기본 연산을 바탕으로 하여 마이그레이션을 행하는 경우의 정보를 포함하고 있다. 이러한 본 발명의 프로그램 생성기(1)의 구조는 단지 본 발명을 예시하기 위한 것이며, 본 발명이 여기에 한정되는 것은 아니다.
도 3에서는 본 발명의 전체적인 흐름에 대하여 좀더 자세하게 설명한다. 도 3은 본 발명의 데이터베이스 연산용 프로그램 소스 생성 방법을 나타내는 전체적인 흐름도로서, 데이터베이스로부터 제공받은 정보에 따라 데이터를 연산하여 필요한 프로그램 소스를 생성하는 과정을 나타낸 도면이다.
이러한 본 발명의 데이터베이스 연산용 프로그램 소스 생성 방법은 전체적으로 볼 때, 스크립트 파일로부터 필요한 정보를 얻는 과정(S2, S3), 데이터베이스의 스키마를 수집하는 과정(S4 내지 S7), 프로그램 소스 생성에 관련된 과정(S8, S9)으로 이루어져 있다. 이러한 본 발명의 프로그램 소스 생성에 있어서의 전체적인 과정을 각 단계에 따라 좀더 세분화하여 설명한다.
먼저 도 3에 나타낸 바와 같이, 단계(S1)에서는 프로그램이 구동되어 본 발명의 전체적인 과정이 시작된다. 프로그램이 구동된 후, 단계(S2)에서는 해당 데이터베이스정보 파일을 로딩하여 데이터베이스 접속에 대한 정보를 얻는다. 이러한 데이터베이스의 접속 정보는 데이터베이스의 DBMS 접속에 필요한 정보를 제공해준다. DBMS에서는 ID에 따라 정해진 권한에 기초하여 데이터베이스에 대한 메타 데이터를 제한하여 제공한다.
다음으로 단계(S3)에서는 프로그램 소스 생성 제어 정보 파일을 로딩하여 프로그램소스의 생성에 필요한 정보를 얻는다. 이러한 정보에는 프로그램 소스 생성 대상의 범위와 종류, 패키지 이름, 클래스 이름, 결과의 정렬, 그리고 쿼리에 대한 정보가 포함된다. 그 다음에는 데이터베이스의 데이터에 대한 연산을 위하여 데이터베이스의 스키마를 수집한다.
구체적으로는 단계(S4)에서 프로그램 소스 생성 제어 정보에 따라 모든 테이블 또는 모든 뷰에 대한 스키마를 수집하고자 하는 경우, 단계(S5)에서 데이터베이스의 테이블 및 뷰에 대한 이름 메타데이터를 수집한다. 특정 테이블 또는 모든 뷰에 대한 메타데이터를 수집하고자 하는 경우 단계(S6)에서 원하는 테이블 및 뷰에 대한 기본키 또는 참조키 메타데이터를 수집한다. 각각의 테이블 및 뷰에 대한 데이터 수집이 완료되면 단계(S7)에서는 이러한 테이블 및 뷰의 컬럼에 대한 메타데이터를 수집한다. 이러한 테이블, 뷰마다 단계(S6 내지 S10)에서 프로그램 소스 생성이 반복된다.
단계(S8)에서는 수집된 데이터를 가공하기 위하여 미리 저장된 템플릿 파일을 로딩한다. 전술한 바와 같이 템플릿 파일에는 검색, 삽입, 삭제, 변경 등의 연산을 실행하기 위해 기설정된 프로그램 소스가 저장되어 있다.
단계(S9)에서는 프로그램 소스 생성 제어 정보를 바탕으로 하여 단계(S8)에서 로딩한 템플릿 파일의 특정 부분을 앞서 수집한 메타데이터로 치환하여 프로그램 소스를 생성한다.
단계(S10)에서는 모든 테이블 또는 모든 뷰에 대한 프로그램소스 생성시 처리해야할 테이블 또는 뷰가 또 있는지 검사한다. 즉, 데이터베이스의 메타데이터 수집에서 모든 테이블 또는 모든 뷰의 이름을 가져왔으므로 이들의 이름별로 하나하나씩 처리하기 위해서 다시 단계(S6)로 진행한다. 프로그램 소스를 생성할 테이블 또는 뷰가 더 이상 없는 경우에는 단계(S11)에서 프로그램을 종료한다.
이하에서는 도 3에 도시한 본 발명의 전체적인 과정을 좀더 세분화하여 자세하게 설명한다.
먼저 단계(S2)에서의 데이터베이스 접속 정보 로딩에 대하여 아래의 프로그램 리스트 1을 참조하여 설명한다. 리스트 1은 데이터베이스 접속정보의 한 예를 나타낸다. 이와 같은 리스트 1의 데이터 접속정보는 본 발명을 예시하기 위한 것이며, 본 발명이 여기에 한정되는 것은 아니다.
리스트 1
리스트 1에 코딩한 바와 같이, 데이터베이스 접속정보 파일에는 접속시에 사용하는 드라이버(라인 5), URL(uniform resource locator)(라인 6), 사용자 ID(라인 7), 사용자 패스워드(라인 8), 초기 설정 데이터베이스 접속 개수(라인 9), 최대 설정가능한 데이터베이스 접속 개수(라인 10) 및 Timeout 발생 최대시간(라인 12) 등에 대한 내용이 기재될 수 있다. 이러한 접속 정보에 기초하여 데이터베이스에 접속한 다음, 프로그램 소스 생성 과정을 수행할 수 있다.
이러한 접속 정보를 제공받은 후에는 다음의 리스트 2에서 보는 바와 같이 도 3의 단계(S2)에 도시한 프로그램 소스 생성 제어 정보를 가져와 프로그램 소스 생성에 대한 정보를 설정한다. 다음의 리스트 2는 본 발명의 프로그램 소스 생성 제어 정보 파일을 예시하기 위한 것이며, 본 발명이 여기에 한정되는 것은 아니다.
리스트 2
리스트 2에 나타낸 바와 같이 본 발명의 소스 생성 제어 정보는 프로그램 소스생성에 대한 제어 정보를 기술한 스크립트 파일로 되어 있다. 즉, 리스트 2의 라인 11 내지 21는 생성해야 할 프로그램 소스가 전체 테이블에 관련된 것인지, 전체 뷰에 관련된 것인지, 하나의 테이블인지, 그리고 검색 쿼리인지 여부를 지정하는 것이고, 라인 37 내지 41은 생성된 프로그램 소스에서 검색을 할 경우 적용되는 결과의 정렬 방법을 정의하는 부분쿼리(Order By 절)를 지정한 것이다. 또한, 라인 56 내지 64는 생성해야 할 프로그램 소스가 검색 쿼리인 경우 검색쿼리를 지정한 것이다.
이와 같이 소스 생성 제어 정보를 제공받은 다음, 도3의 단계(S4)에서 생성해야할 프로그램 소스가 전체 테이블 또는 전체 뷰에 관련된 경우, 도 3의 단계(S5)에서 데이터베이스의 메타데이터를 수집한다. 데이터베이스의 메타데이터 수집에 있어서는 데이터베이스내의 모든 테이블 또는 모든 뷰들의 이름을 수집한다.
또한, 도 3의 단계(S6)에서는 테이블 또는 뷰의 기본키 또는 참조키 메타데이터를 수집한다. 다음의 표 1은 이와 같은 테이블 메타데이터의 구체적인 예를 나타낸다. 이러한 테이블 메타데이터는 본 발명을 예시하기 위한 것이며 본 발명이 여기에 한정되는 것은 아니다.
도 3의 단계(S7)에서는 컬럼의 이름에 대한 메타데이터를 수집하는 데, 여기서는 데이터베이스에 대하여 Select * from TableName 쿼리를 실행하여 리턴되는 결과에 대한 메타데이터를 검색하여 결과를 얻는다. 다음의 표 2는 이와 같은 컬럼 메타데이터의 구체적인 예를 나타낸다. 이러한 컬럼 메타데이터는 본 발명을 예시하기 위한 것이며 본 발명이 여기에 한정되는 것은 아니다.
이와 같은 과정을 통하여 각 테이블, 뷰 및 컬럼에 대한 메타데이터 수집을 완료한 후, 템플릿 파일을 로딩하여 프로그램 소스 생성 작업을 행하게 된다. 템플릿 파일은 기설정된 프로그램 소스로 되어 있으며, 생성되는 프로그램 소스에 대한 기본적인 코드들이 구현되어 있고, 치환되어야 할 부분에는 특정 표시가 되어 있다.
다음의 리스트 3은 이와 같은 템플릿 파일의 구체적인 예를 나타낸다. 이와 같은 템플릿 파일은 단지 본 발명을 예시하기 위한 것이며 본 발명이 여기에 한정되는 것은 아니다.
리스트 3
리스트 3에서 $<....>$ 부분은 수집한 메터데이터와 프로그램소스 생성제어 정보파일의 정보에 따라 치환되는 부분이다. 또한 리스트 3에 예시한 템플릿 파일은 프로그램 개발자가 특정 자바 명령어 코드가 필요한 경우 이를 임의로 추가할 수도 있으므로 상당히 가변적이며, 융통성이 뛰어나다. 이하에서는 리스트 3의 $<...>$에 대하여 설명한다.
리스트 3의 라인 2, 5 등의 $<CLASSNAME>$는 클래스이름을 치환하는 부분으로 프로그램 소스 생성시 프로그램 소스 제어 정보 및 테이블/뷰의 이름으로 구성된 문자열로 치환되는 부분이다. 또한, 라인 2의 $<GENERATE_DATE>$는 프로그램소스가 생성되는 날짜 및 시간을 치환하는 부분으로 프로그램 실행중에 시스템에서 날짜와 시간을 추출하여 구성된 문자열로 치환되는 부분이다.
그리고 라인 11의 $<PACKAGE_STATEMENT>$는 생성되는 자바 프로그램 소스가 포함될 패키지의 이름이 치환되는 부분으로 프로그램 소스 생성시 프로그램 소스 제어 정보 파일의 정보로 구성된 문자열로 치환되는 부분이다. 라인 25의 $<TABLE_EXPR>$은 관리할 테이블 또는 뷰의 이름이 치환되는 부분으로 프로그램 소스 생성시 데이터베이스의 테이블이름 메타데이터 정보로 구성된 문자열로 치환되는 부분이다.
또한, 라인 27의 $<COLUMN_SIZE>$은 관리할 테이블 또는 뷰의 컬럼 개수를 치환하는 부분으로 프로그램 소스 생성시 테이블 메타에이터 정보에서 추출한 문자열로 치환되는 부분이다. 그리고 라인 30의 $<COLUMN_INDEX_ STATEMENTS>$는 각 컬럼에 대해 일련번호를 부여하는 명령어를 치환하는 부분으로 프로그램 소스 생성시 컬럼 메타데이터로부터 추출된 컬럼 이름에 일련번호를 부여하는 명령어 문자열로 치환되는 부분이다.
라인 33의 $<COLUMN_NAME_STATEMENTS>$는 각 컬럼에 대해 컬럼의 이름에 대한 상수를 정의하는 명령어를 치환하는 부분으로, 프로그램 소스 생성시 컬럼 메타데이터로부터 추출된 컬럼 이름에 대해 상수를 정의하는 명령어 문자열로 치환되는 부분이다. 또한 라인 36의 ~$<DEFAULT_ORDER_BY>$~는 생성된 프로그램 소스에서 검색 연산을 수행할 때 결과의 정렬 방법을 정의하는 부분쿼리(Order By 절)를 지정하는 문자열을 치환하는 부분으로 프로그램 소스 생성시 프로그램 소스 제어 정보 파일의 정보로 구성된 문자열로 치환된다.
라인 42의 $<COLUMN_SET_VALUE_STATEMENTS>$는 각 컬럼에 대한 컬럼 클래스를 생성하는 명령어를 치환하는 부분으로, 프로그램 소스 생성시 테이블 메타데이터와 컬럼 메타데이터로부터 추출된 컬럼의 데이터 형식 및 기본키 정보로 구성된 문자열로 치환되는 부분이다. 또한, 라인 49의 $<GET_SET_STATEMENTS>$는 각 컬럼의 값을 Set/Get 메소드로 구현한 부분을 치환하는 부분으로, 프로그램 소스 생성시 컬럼 메타데이터로부터 정의된 컬럼의 일련번호와 자바 명령어로 구성된 문자열로 치환되는 부분이다. 그리고 라인 55의 $<IS_ONLY_QUERY_METHODS>$은 생성되는 프로그램 소스가 검색 쿼리에 관련된 경우 검색 쿼리를 실행하는 명령어가 치환되는 부분으로, 프로그램 소스 생성시 프로그램 소스 제어 정보 파일의 정보로 구성된 문자열로 치환되는 부분이다.
이하에서는 이와 같은 치환 작업이 이루어지며, 메타데이터 수집을 포함하는 프로그램 소스 생성 방법에 대하여 좀더 자세하게 설명한다.
도 4a 내지 도 4c는 메타데이터 수집을 포함하는 프로그램 소스 생성 방법을 세부적으로 나타낸 흐름도로서, 데이터베이스내에 있는 모든 테이블에 대한 프로그램 소스를 생성하는 방법을 예시한 도면이다. 도 4a 내지 도 4c의 프로그램 소스 생성 방법은 크게 이름 설정 단계, 메타데이터 수집 단계, 문자열 치환 단계, 및 파일 생성 단계로 이루어져 있다. 이러한 본 발명의 프로그램 생성 과정은 본 발명을 예시하기 위한 것이며, 본 발명이 여기에 한정되는 것은 아니다.
단계(S401)에서 본 발명의 전체적인 과정이 시작된다. 단계(S402)에서 해당 데이터베이스에 접속한다. 다음으로 단계(S403)에서는 데이터베이스에 존재하는 모든 테이블의 이름에 대한 메타 데이터를 수집한다. 단계(S404)에서는 데이터베이스의 접속을 해제한다. 데이터베이스의 접속을 해제한 후, 단계(S405)에서 스크립트 파일의 프로그램 소스 제어 정보로부터 받은 패키지의 이름을 설정한다. 단계(S406)에서 테이블이 더 존재하지 않는 경우 모든 과정을 종료(S407)하며, 테이블이 추가로 존재하는 경우에는 단계(S408)로 진행한다.
수집한 테이블별 이름별로 단계(S409) 내지 단계(S437)의 과정을 반복한다.
먼저 단계(S408)에서는 수집한 테이블의 이름을 설정하고, 스크립트 파일의 프로그램 소스 제어 정보로부터 받은 문자열과 테이블 이름으로 클래스 이름을 설정한다 (S409). 다음에는 데이터베이스에 다시 접속하고(S410), 테이블 메타데이터 정보를 수집한다(S411). 예를 들면, 테이블 메타데이터 정보에는 기본키(primary key)가 무엇인지, 기본키중에 다른 테이블에서 참조되는 키가 무엇인지에 대한 정보가 존재한다. 단계(S412)에서는 컬럼 메타데이터 정보를 수집한다. 컬럼 메타데이터 정보에는 예를 들면, 컬럼의 개수, 컬럼의 이름, 컬럼의 데이터형 등이 포함되어 있다. 이와 같이 테이블에 대한 메타데이터 정보수집을 마친 후, 데이터베이스의 접속을 해제한다(S413).
단계(S414)에서 로딩한 템플릿 파일에 대하여, 먼저 시스템의 현재 시간을 제공받아 템플릿 파일의 생성날짜/시간 부분을 치환한다(S415). 다음으로 도 4b의 단계(S416)에서는 설정된 패키지 이름으로 템플릿 파일의 패키지 이름 부분을 치환하고, 단계(S417)에서는 설정된 클래스 이름으로 템플릿 파일의 클래스 이름 부분을 치환하며, 단계(S418)에서는 설정된 테이블 이름으로 템플릿 파일의 테이블 이름 부분을 치환하고, 단계(S419)에서는 컬럼정보의 컬럼개수로 템플릿 파일의 컬럼 개수 부분을 치환한다.
단계(S420)에서는 컬럼이 더 존재하는 경우 컬럼 개수만큼 반복함으로써 프로그램 소스에서 사용될 컬럼 인덱스 문자열을 생성한다(S421). 여기서, 컬럼 인덱스라고 하는 것은 컬럼에 0부터 일련번호를 부여하는 것을 말한다. 이러한 과정을 거쳐서 단계(S422)에서는 컬럼 인덱스 문자열로 템플릿 파일의 컬럼 인덱스 부분을 치환한다.
단계(S423)에서는 컬럼이 더 존재하는 경우 컬럼 개수만큼 반복함으로써 프로그램 소스에서 사용할 컬럼 변수 문자열을 생성한다(S424). 다음으로 단계(S425)에서 컬럼 변수 문자열로 템플릿 파일의 컬럼 변수 부분을 치환한다. 그 후, 단계(S426)에서 사용자의 입력으로 받은 기본 정렬 방식(default order by) 문자열로 템플릿 파일의 기본 정렬 방식 부분을 치환한다.
도 4c의 단계(S427)에서는 컬럼이 더 존재하는 경우 컬럼 개수만큼 반복함으로써 단계(S428)에서 컬럼 클래스를 생성하는 문자열을 생성하고, 단계(S429)에서 컬럼이 기본키인 경우 컬럼에 대해 기본키 정보를 설정하는 문자열을 생성한다. 다음으로 컬럼에 대한 기본키를 설정하고(S430), 테이블 클래스의 컬럼 리스트에 컬럼을 등록하는 문자열을 생성한다(S431).
그 다음, 컬럼 정보 설정 메소드 문자열로 템플릿 파일의 컬럼 정보 설정 메소드 부분을 치환한다(S432). 단계(S429)에서 컬럼이 기본키가 아닌 경우에는 바로 단계(S431)의 테이블 클래스의 컬럼 리스트에 컬럼을 등록하는 문자열 생성 단계로 넘어간다.
다음으로 컬럼이 추가로 존재하는 경우에는 단계(S433)에서 컬럼의 개수만큼 반복하여 단계(S434)에서 컬럼별 Get/Set 메소드 문자열을 생성한다. 그 후 컬럼 Get/Set 메소드 문자열로 단계(S435)에서 템플릿 파일의 컬럼별 Get/Set 메소드 부분을 치환하며, 단계(S436)에서 클래스 이름으로 생성될 파일이름을 설정한다. 단계(S437)에서는 치환된 템플릿 파일을 프로그램 소스 파일에 출력한다. 이러한 과정을 거쳐 본 발명의 프로그램 소스를 생성할 수 있다.
이처럼 기본 연산을 수행하는 것 이외에 본 발명은 전술한 마이그레이션을 실행하는 프로그램 소스를 부가적으로 생성한다. 본 발명은 이와 같은 마이그레이션용 프로그램 소스 생성 방법을 제공하는 데, 여기서는 전술한 기본 연산용 프로그램 소스에다가 매핑(mapping) 기능을 부가함으로써 응용 프로그램의 일종인 마이그레이션용 프로그램 소스 생성 방법을 제공한다.
도 5는 본 발명에 있어서 마이그레이션 작업을 실행할 수 있는 프로그램 소스 생성 순서를 나타내는 흐름도이다.
단계(S51)에서는 프로그램 개발자가 마이그레이션용 스크립트 파일을 작성한다. 특히 사용자 정의 함수가 필요한 경우, 프로그램 개발자는 사용자 정의함수를 구현한다. 사용자 정의 함수라 함은 마이그레이션 과정 중 프로그램 개발자의 논리적인 정제 과정을 기능화하여 구현한 것을 말한다.
예를 들면, 소스 데이터베이스 중 하나의 테이블의 2개 이상의 컬럼이, 목적 데이터베이스 중 하나의 테이블의 하나의 컬럼으로 옮겨져야 할 경우, 프로그램 개발자가 2개 이상의 컬럼이 하나로 합쳐지는 방법에 대하여 지정할 필요가 있는데, 이 경우 프로그램 개발자가 어떤 방법으로 합치라고 지정할 수 있고 이를 함수로 구현한다.
사용자 정의 함수의 또다른 예로서, '1'은 '가'로, '2'는 '나'로 등과 같이 하나의 컬럼 값이 목적 데이터베이스로 옮겨가면서 값이 변경되어야 하는 경우가 있다. 이러한 경우 프로그램 개발자는 변경되는 내용을 함수로 제공해야 한다.
이어서 단계(S52)에서는 프로그램 개발자가 마이그레이션용 스크립트 파일을 입력하여 소스 생성 프로그램을 구동하고, 소스 생성 프로그램은 스크립트 파일을 분석한다(S53). 그 후 단계(S54) 및 단계(S55)에서 각각 소스 데이터베이스 및 목적 데이터베이스의 프로그램 소스를 생성한다. 다음으로 이러한 소스 데이터베이스 및 목적 데이터베이스의 프로그램 소스를 연결할 매핑 기능 프로그램 소스를 생성한다(S56).
매핑 기능은 소스 데이터베이스의 어떤 테이블에 있는 어떤 컬럼 데이터를 목적지 데이터베이스의 어떤 테이블의 어떤 컬럼으로 옮길지를 정의한 부분을 읽어서 정의한 대로 데이터를 옮기는 기능을 말한다. 매핑 방법에는 2가지가 있는데, 하나는 1:N 매핑으로서 소스 데이터베이스 중 하나의 테이블을 지정하고, 목적 데이터베이스 중 하나 이상의 테이블을 지정하여 마이그레이션하는 경우를 말하며, 다른 하나는 쿼리 매핑으로서, 소스 데이터베이스에서 검색 쿼리를 실행하여 나오는 결과를 목적 데이터베이스 중 하나 이상의 테이블로 마이그레이션하는 경우를 말한다.
마이그레이션 작업을 위하여 스크립트 파일에 지정해야 하는 정보를 다음의 표 3에 나타낸다.
다음의 리스트 4는 이와 같은 본 발명의 마이그레이션용 프로그램 소스를 코딩한 것을 예시적으로 나타낸다. 이와 같은 프로그램 소스는 본 발명을 예시하기 위한 것이며, 본 발명이 여기에 한정되는 것은 아니다.
리스트 4
리스트 4는 전술한 바와 같은 기본 연산용 프로그램 소스를 바탕으로 하여 생성된 소스 데이터베이스 및 목적 데이터베이스를 기반으로 하여 매핑 과정을 통하여 마이그레이션용 프로그램 소스를 생성하는 과정을 예시하고 있다.
먼저 리스트 4의 라인 19 내지 라인 22에서는 소스 데이터베이스에 대한 정보가 코딩되어 있다. 소스 데이터베이스에 대해서는, 먼저 소스 데이터베이스에 접속할 때 사용하는 JDBC 드라이버를 지정하고(라인19), 소스 데이터베이스에 접속할 때 사용하는 JDBC URL을 지정하며(라인20 ), 소스 데이터베이스에 접속할 때 사용하는 사용자 ID(라인21) 및 소스 데이터베이스에 접속할 때 사용하는 사용자 비밀번호(라인22)를 지정한다.
이러한 소스 데이터베이스를 목적 데이터베이스로 옮겨야 하므로, 다음에는 목적 데이터베이스에 대하여 코딩한다. 먼저 목적 데이터베이스에 접속할 때 사용하는 JDBC 드라이버를 지정하고(라인32), 목적 데이터베이스에 접속할 때 사용하는 JDBC URL을 지정하며(라인33), 목적 데이터베이스에 접속할 때 사용하는 사용자 ID(라인34) 및 목적 데이터베이스에 접속할 때 사용하는 사용자 비밀번호(라인35)를 코딩한다.
이러한 목적 데이터베이스 및 소스 데이터베이스에 대한 설정이 완료되면 1:N 매핑 또는 쿼리 매핑을 실행함으로써 데이터베이스에 대한 마이그레이션 작업을 완료한다.
먼저 1:N 매핑을 하는 경우에는 소스 테이블 이름(라인59), 목적 테이블 이름(라인60, 61)을 코딩하고, 라인63 내지 70의 등호(=) 좌측에는 목적테이블(SNMPDATAEQUIP)의 컬럼명, 우측에는 소스테이블의 컬럼명을 코딩한다. 또한, 라인71 내지 77의 등호(=) 좌측에는 목적테이블(SNMPPOOLEQUIP)의 컬럼명, 우측에는 소스테이블의 컬럼명을 코딩하며, 매핑할 때 사용자정의함수 snmpver() 를 정의한다(라인70).
쿼리 매핑인 경우에는 소스 데이터베이스에서의 검색 쿼리(라인101, 102) 및 목적 테이블 이름(라인104)을 코딩하고, 라인106, 107의 등호(=) 좌측은 목적테이블(SNMPDATAEQUIP)의 컬럼명, 우측은 소스 데이터베이스의 검색 쿼리 컬럼명을 코딩한다.
이러한 과정을 통하여 마이그레이션용 프로그램 소스를 생성할 수 있다.
이상에서 설명한 바와 같이, 본 발명에서는 데이터베이스의 테이블 및 뷰에 따라 하나의 클래스 소스를 생성하고 이 클래스를 이용하여 데이터베이스 연산을 할 수 있는 환경을 제공함으로써 데이터베이스를 이용하는 시스템 개발자에게 시스템 개발 기간을 단축시켜 주며, 프로그램의 오류를 줄일 수 있다는 이점이 있다
이로써 프로그램 개발자는 손쉽게 데이터베이스의 데이터 연산용 프로그램 소스를 개발할 수 있으므로, 단순 작업을 행하던 종래에 비해 프로그램 소스 생성에 필요한 시간 및 비용을 상당히 줄일 수 있다.
그리고 본 발명에서는 데이터베이스의 스키마가 변경되었을 경우 관련된 프로그램의 소스를 모두 변경하던 방법을 탈피하여, 데이터베이스의 스키마가 변경되었을 경우 변경이 필요한 부분에 대해 자동으로 변경된 내용의 소스를 생성해 줌으로써 프로그램 개발자의 프로그램 개발 기간을 단축하고 오류를 완전히 제거할 수 있다.
또한 본 발명에서는 부가적으로 마이그레이션 프로그램 소스 생성 방법을 통하여 생성된 마이그레이션 프로그램 소스를 제공하므로, 프로그램 개발자는 마이그레이션에 대한 추가적인 개발 작업없이 생성된 프로그램 소스를 컴파일하여 바로 사용할 수 있다는 이점이 있다.
본 발명을 앞서 기재한 바에 따라 설명하였지만, 다음에 기재하는 특허청구범위의 개념과 범위를 벗어나지 않는 한, 다양한 수정 및 변형이 가능하다는 것을 본 발명이 속하는 기술 분야에 종사하는 자들은 쉽게 이해할 것이다.
도 1은 본 발명의 전체적인 개념을 나타낸 개략적인 도면이다.
도 2는 본 발명의 프로그램 소스 생성 장치를 나타내는 블록도이다.
도 3은 본 발명의 프로그램 소스 생성 방법을 나타내는 전체적인 흐름도이다.
도 4a 내지 도 4c는 본 발명의 프로그램 소스 생성 방법을 세부화한 흐름도이다.
도 5는 마이그레이션(migration) 작업을 실행하는 본 발명의 프로그램 소스 생성 순서를 나타내는 흐름도이다.
도 6은 사용자의 요구에 따른 데이터베이스의 연산 실행 과정을 개략적으로 나타낸 도면이다.
<도면의 주요부분에 대한 부호의 설명>
1. 프로그램 소스 생성기 2. 데이터베이스
3. 스크립트 파일 4. 템플릿 파일
5. 소스 파일 6. 프로그램 개발자
7. 사용자 22. CPU(central processing unit)
23. 메모리 24. 데이터저장유닛
241. 데이터베이스 접속정보파일 242. 프로그램소스 생성정보파일
243. 템플릿(template) 파일 244. 라이브러리 파일
245. 생성된 프로그램소스파일

Claims (9)

  1. 데이터베이스에 대한 연산을 수행하는 프로그램 소스 생성 장치로서,
    프로그램 소스 생성에 필요한 파일을 저장하는 데이터저장유닛 및
    상기 데이터저장유닛의 상기 파일들에 대한 명령을 수행하는 CPU(central processing unit)를 포함하며,
    상기 데이터저장유닛은,
    상기 데이터베이스에 대한 접속 정보를 저장하는 데이터베이스 접속정보파일,
    상기 프로그램 소스 생성에 필요한 정보를 저장하는 프로그램 소스 생성정보파일,
    기설정된 프로그램 소스를 저장하고, 상기 기설정된 프로그램 소스를 바탕으로 하여 상기 프로그램 소스 생성에 필요한 정보에 따라 상기 프로그램을 생성하기 위한 템플릿(template) 파일,
    상기 메타데이터를 수집하고, 상기 프로그램 소스 생성에 적용되는 라이브러리를 포함하는 라이브러리 파일 및
    상기 프로그램소스 생성정보파일에 저장된 프로그램소스 생성정보에 따라 상기 템플릿 파일 중 하나 이상의 변수값을 상기 메타데이터에 관한 문자열로 치환함으로써 생성된 프로그램 소스파일
    을 포함하는 프로그램 소스 생성 장치.
  2. 제1항에서,
    상기 데이터저장유닛은 상기 생성된 프로그램 소스에 따라 마이그레이션 (migration)을 실행하기 위한 마이그레이션용 정보 파일을 더 포함하는 프로그램 소스 생성 장치.
  3. 데이터베이스에 대한 연산을 수행하는 프로그램 소스 생성 방법으로서,
    프로그램 소스 생성기가 상기 데이터베이스의 접속 정보를 가져오는 단계,
    상기 프로그램 소스 생성기가 상기 데이터베이스에 대한 프로그램 소스 생성에 필요한 프로그램 소스 생성 정보를 가져오는 단계,
    상기 프로그램 소스 생성기가 상기 데이터베이스의 메타데이터를 수집하는 단계,
    상기 프로그램 소스 생성기가 상기 프로그램 소스 생성에 필요한 기설정된 프로그램 소스를 포함하는 템플릿 파일을 로딩하는 단계 및
    상기 프로그램 소스 생성기가 상기 프로그램 소스 생성 정보에 따라 상기 템플릿 파일의 상기 기설정된 프로그램 소스 중 하나 이상의 변수값을 상기 메타데이터에 관한 문자열로 치환하여 프로그램 소스를 생성하는 단계
    를 포함하는 프로그램 소스 생성 방법.
  4. 제3항에서,
    상기 프로그램 소스 생성기가 상기 데이터베이스의 접속 정보를 가져오는 단계는, 접속시에 사용하는 드라이버(driver), URL(uniform resource locator), 사용자 ID, 사용자 패스워드, 초기설정 데이터베이스 접속개수, 최대설정 데이터베이스 접속개수, 그리고 타임아웃(timeout) 발생 최대시간을 포함하고, 스크립트(script) 파일 형태로 저장되어 있는 데이터베이스 접속 정보 파일을 로딩하여 데이터베이스 접속 정보를 추출하는 프로그램 소스 생성 방법.
  5. 제3항에서,
    상기 프로그램 소스 생성기가 상기 프로그램 소스 생성 정보를 가져오는 단계는, 소스 생성 대상의 범위 및 종류, 패키지 이름, 클래스 이름, 결과의 정렬, 그리고 쿼리의 구조에 관한 정보를 포함하며, 스크립트 파일 형태로 저장되어 있는 프로그램 소스 생성 정보 파일을 로딩하여 프로그램 소스 생성 정보를 추출하는 프로그램 소스 생성 방법.
  6. 제3항에서,
    상기 프로그램 소스 생성기가 상기 메타데이터를 수집하는 단계는, 상기 데이터베이스의 메타데이터, 테이블 메타데이터 및 컬럼 메타데이터를 수집하고, 상기 데이터베이스에서 상기 메타데이터를 수집하여 프로그램 소스 생성 정보를 추출하는 프로그램 소스 생성 방법.
  7. 제3항에서,
    상기 프로그램 소스 생성 방법을 마이그레이션용 프로그램 소스 생성에 사용하는 프로그램 소스 생성 방법.
  8. 제3항 내지 제7항 중 어느 한 항에 따른 방법을 수행하기 위한 일련의 명령을 포함하는 컴퓨터 프로그램 제품.
  9. 제8항에서,
    상기 일련의 명령에 포함되는 명령어를 제공하는 라이브러리를 추가로 포함하는 컴퓨터 프로그램 제품.
KR10-2002-0060345A 2002-10-02 2002-10-02 데이터베이스 연산용 프로그램 소스 생성 장치 및 그방법과 이를 이용한 컴퓨터 프로그램 제품 KR100505111B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2002-0060345A KR100505111B1 (ko) 2002-10-02 2002-10-02 데이터베이스 연산용 프로그램 소스 생성 장치 및 그방법과 이를 이용한 컴퓨터 프로그램 제품

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0060345A KR100505111B1 (ko) 2002-10-02 2002-10-02 데이터베이스 연산용 프로그램 소스 생성 장치 및 그방법과 이를 이용한 컴퓨터 프로그램 제품

Publications (2)

Publication Number Publication Date
KR20040029898A KR20040029898A (ko) 2004-04-08
KR100505111B1 true KR100505111B1 (ko) 2005-07-29

Family

ID=37331241

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0060345A KR100505111B1 (ko) 2002-10-02 2002-10-02 데이터베이스 연산용 프로그램 소스 생성 장치 및 그방법과 이를 이용한 컴퓨터 프로그램 제품

Country Status (1)

Country Link
KR (1) KR100505111B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100737522B1 (ko) * 2005-12-02 2007-07-10 한국전자통신연구원 마이그레이션 데이터 모니터링 방법 및 시스템
KR101470427B1 (ko) * 2007-12-27 2014-12-08 주식회사 케이티 데이터베이스의 버전 정보를 이용한 이송 방법 및 시스템
KR101020234B1 (ko) * 2009-01-16 2011-03-08 정해영 데이터베이스 응용 프로그램 소스 생성 방법 및 장치

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10187512A (ja) * 1996-12-27 1998-07-21 Hitachi Ltd データベース構築及びデータベース操作用プログラム生成方法
JPH11120047A (ja) * 1997-10-17 1999-04-30 Hitachi Ltd Htmlフォーム用dbテーブル作成システム
KR19990040514A (ko) * 1997-11-18 1999-06-05 정선종 씨지아이 프로그램 자동생성 방법
KR20000015619A (ko) * 1998-08-31 2000-03-15 정선종 웹 문서 자동 생성장치 및 그 방법
KR20000046055A (ko) * 1998-12-31 2000-07-25 윤종용 통신시스템의 데이터베이스 생성장치 및 방법
KR20020022854A (ko) * 2000-09-21 2002-03-28 박병형 패턴과 컴포넌트를 이용한 프로그램 코드 자동 생성방법
KR20020028001A (ko) * 2000-10-06 2002-04-15 신훈 단위 주거지역 내의 음식물쓰레기 처리시스템
KR20020083090A (ko) * 2001-04-26 2002-11-01 (주) 디엠디 서버에서 실행되는 데이타베이스 연동 페이지 생성방법

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10187512A (ja) * 1996-12-27 1998-07-21 Hitachi Ltd データベース構築及びデータベース操作用プログラム生成方法
JPH11120047A (ja) * 1997-10-17 1999-04-30 Hitachi Ltd Htmlフォーム用dbテーブル作成システム
KR19990040514A (ko) * 1997-11-18 1999-06-05 정선종 씨지아이 프로그램 자동생성 방법
KR20000015619A (ko) * 1998-08-31 2000-03-15 정선종 웹 문서 자동 생성장치 및 그 방법
KR20000046055A (ko) * 1998-12-31 2000-07-25 윤종용 통신시스템의 데이터베이스 생성장치 및 방법
KR20020022854A (ko) * 2000-09-21 2002-03-28 박병형 패턴과 컴포넌트를 이용한 프로그램 코드 자동 생성방법
KR20020028001A (ko) * 2000-10-06 2002-04-15 신훈 단위 주거지역 내의 음식물쓰레기 처리시스템
KR20020083090A (ko) * 2001-04-26 2002-11-01 (주) 디엠디 서버에서 실행되는 데이타베이스 연동 페이지 생성방법

Also Published As

Publication number Publication date
KR20040029898A (ko) 2004-04-08

Similar Documents

Publication Publication Date Title
US5898872A (en) Software reconfiguration engine
US6243709B1 (en) Method and apparatus for loading stored procedures in a database corresponding to object-oriented data dependencies
EP0664027B1 (en) Program modeling system
US6279008B1 (en) Integrated graphical user interface method and apparatus for mapping between objects and databases
US5819282A (en) Database generator
US6374256B1 (en) Method and apparatus for creating indexes in a relational database corresponding to classes in an object-oriented application
EP2784665B1 (en) Program and version control method
EP0693193B1 (en) Incremental linker system
US7814459B2 (en) System and method for automated on demand replication setup
US20050071359A1 (en) Method for automated database schema evolution
WO1999000745A1 (en) Data repository with user accessible and modifiable reuse criteria
CN109710220B (zh) 关系型数据库查询方法、装置、设备及存储介质
US20210209098A1 (en) Converting database language statements between dialects
US20080201290A1 (en) Computer-implemented methods, systems, and computer program products for enhanced batch mode processing of a relational database
KR100877156B1 (ko) 비정형 질의언어에 대한 사전 성능 분석 시스템 및 방법
US7707211B2 (en) Information management system and method
US20060218174A1 (en) Method for coordinating schema and data access objects
KR100505111B1 (ko) 데이터베이스 연산용 프로그램 소스 생성 장치 및 그방법과 이를 이용한 컴퓨터 프로그램 제품
US8630981B1 (en) Techniques for differencing binary installation packages
WO1999033004A1 (en) An integrated graphical user interface method and apparatus for mapping between objects and databases
EP1040432B1 (en) Method and apparatus for loading stored procedures in a database corresponding to object-oriented data dependencies
US20240232149A9 (en) Relational database system
CN115495442A (zh) 数据库操作文件生成方法、装置、设备及存储介质
RU2534823C1 (ru) Способ генерирования синтаксически и семантически верных команд
CN115658726A (zh) 数据库的集成方法、装置、设备及存储介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20121019

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20130722

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee