KR101260436B1 - 구조화 질의어 자동 처리 시스템과 방법 및 그를 실행하기 위한 프로그램이 기록되는 컴퓨터로 읽을 수 있는 기록매체 - Google Patents

구조화 질의어 자동 처리 시스템과 방법 및 그를 실행하기 위한 프로그램이 기록되는 컴퓨터로 읽을 수 있는 기록매체 Download PDF

Info

Publication number
KR101260436B1
KR101260436B1 KR1020120118396A KR20120118396A KR101260436B1 KR 101260436 B1 KR101260436 B1 KR 101260436B1 KR 1020120118396 A KR1020120118396 A KR 1020120118396A KR 20120118396 A KR20120118396 A KR 20120118396A KR 101260436 B1 KR101260436 B1 KR 101260436B1
Authority
KR
South Korea
Prior art keywords
sql
processing
function
fsp
data
Prior art date
Application number
KR1020120118396A
Other languages
English (en)
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 KR1020120118396A priority Critical patent/KR101260436B1/ko
Application granted granted Critical
Publication of KR101260436B1 publication Critical patent/KR101260436B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2452Query translation
    • G06F16/24522Translation of natural language queries to structured queries

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 SQL 자동 처리 시스템 및 방법에 관한 것으로, 공통 스크립트를 적용하여 UI에서 올려주는 데이터를 SQL 처리를 위한 입력 파라미터로 자동 처리하고 DB에서의 처리 결과를 UI에 전달할 수 있게 하기 위한 것이다.
이를 위하여 본 발명은 데이터베이스에 접근하기 위한 구조화 질의어(SQL) 처리 방법에 있어서, (a) 화면에서 유저 인터페이스(UI) 공통 스크립트 적용 명령어와 데이터를 수신하는 단계, (b) 상기 수신된 UI 공통 스크립트 적용 명령어의 유형을 분석하는 단계, (c) SQL 맵을 로드하여 상기 분석된 명령어 유형에 대한 구조화 질의어 구문을 분석하는 단계, (d) 상기 분석된 구조화 질의어 구문에 명령어 유형에 대한 데이터를 맵핑하는 단계, (e) 상기 맵핑한 구조화 질의어 구문과 데이터를 데이터베이스에 처리하는 단계, (f) 상기 데이터베이스로부터 전송된 처리 결과를 화면으로 반환하는 단계로 이루어지는 구조화 질의어 자동 처리 방법 및 그 시스템을 제공하여, 자바에 대한 지식 없이도 구조화 질의어와 사용자 인터페이스 작성만으로 어플리케이션의 개발이 가능하도록 하여 개발 생산성을 향상시키고 어플리케이션의 품질을 향상시킬 수 있게 한다.

Description

구조화 질의어 자동 처리 시스템과 방법 및 그를 실행하기 위한 프로그램이 기록되는 컴퓨터로 읽을 수 있는 기록매체{Automatic procoessing system and method for structured query language, and computer readable recoding medium for performing it}
본 발명은 구조화 질의어 자동 처리 시스템 및 방법에 관한 것으로, 보다 상세하게는 공통 스크립트를 적용하여 사용자 인터페이스(UI)에서 올려주는 데이터를 구조화 질의어 처리를 위한 입력 파라미터로 자동 처리하고 그 구조화 질의어에 대한 처리결과를 사용자 인터페이스에 전달할 수 있도록 함으로써, 자바(java)에 대한 지식 없이도 구조화 질의어와 사용자 인터페이스 작성만으로 어플리케이션의 개발이 가능하도록 한 구조화 질의어(SQL) 자동 처리 시스템과 방법 및 그를 실행하기 위한 프로그램이 기록되는 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다.
일반적으로, 데이터베이스(database)에는 서로 관련 있는 데이터들이 저장되어 있는데, 데이터베이스에 저장된 데이터들은 필요시마다 최신의 데이터로 갱신, 삽입, 삭제되는 것을 필요로 한다. 이를 위해 데이터베이스는 DBMS(DataBase Management System)라는 소프트웨어 시스템에 의해 관리되고 있는데, DBMS는 응용 프로그램과 데이터의 중재자로서 모든 응용 프로그램들이 데이터를 공유할 수 있도록 여러 응용 프로그램들이 사용하는 데이터를 하나의 장소에 모아 종합적으로 유지하고 관리해주는 소프트웨어이다. 즉, DBMS는 응용 프로그램들이 원하는 데이터를 검색하거나 변경하여 언제나 일관성 있는 결과를 응용 프로그램에 제공해주는 종합적인 데이터 관리 시스템이다.
이러한 DBMS는 데이터 정의어(DDL)와 데이터 조작어(DML)를 포함한 데이터베이스용 질의언어(query language)인 구조화 질의어(SQL: Structured Query Language)를 이용하여 여러 사용자가 데이터베이스 내의 데이터를 검색하거나 관리할 수 있도록 하고 있다. 이는 특정한 데이터베이스 시스템에 한정되어 있지 않아 널리 사용되고 있으며, 오라클(Oracle), MSSQL, MySQL 등이 대표적으로 SQL(구조화 질의어)을 사용하는 데이터베이스이다.
그러나 이러한 구조화 질의어를 사용하는 데이터베이스는 다양하기 때문에 동일한 질의를 하더라도 데이터베이스마다 코딩방법이 다르게 적용되며, 또한 동일한 데이터베이스를 이용하여도 코딩하는 사용자가 다를 경우에는 각각 다르게 코딩될 수 있기 때문에 동일한 질의에 대해서 반복적인 코딩이 이루어져 불필요하게 소스 코딩량이 증가하게 되는 문제점이 있었다.
또한 코딩이 다를 경우, 다른 사용자가 코딩을 해석하기에 어려움이 따르고, 오류가 발생하였을 경우 코딩 방법이 다르면 오류를 찾는데 어려움이 있을 뿐만 아니라 사용자가 사용하는 데이터베이스의 종류에 해당하는 구조화 질의어가 아닌 다른 데이터베이스의 종류에 해당하는 구조화 질의어로 코딩되어 있을 때에도 해석이나 오류를 찾는데 더 큰 어려움이 존재하게 되므로 개발 생산성 및 어플리케이션의 품질이 저하되는 등의 문제점이 있었다.
한편, 대한민국 등록특허 제10-1097360호(2011.12.15 등록, 명칭: 구조화 질의어를 정형화된 포맷에 적용하기 위한 방법) 및 제10-1119179호(2012.02.15 등록, 명칭: 데이터베이스에 접근하기 위한 구조화 질의어를 정형화된 포맷에 적용하는 시스템)에는 데이터베이스에 접근하기 위한 구조화 질의어를 코딩함에 있어서, 데이터베이스의 종류에 따라 다른 형태의 구조화 질의어를 사용하고, 데이터베이스의 종류가 동일하여도 사용자에 따라 코딩 구조가 다르기 때문에 이러한 다른 구조 또는 다른 형태의 구조화 질의어를 동일한 포맷에 적용하여 상호간에 가독성을 높이고, 구조화 질의어의 오류를 줄이도록 하는 데이터베이스에 접근하기 위한 구조화 질의어를 정형화 포맷에 적용하는 시스템 및 방법에 관한 기술이 공지되어 있으며, 그 상세 구성은 도 1 및 도 2에 예시되어 있다.
그러나 상기와 같은 종래의 기술에서는 특정 포맷으로 변경하여 정형화된 코딩이 이루어지게 되므로 코딩량이 증가하게 되는 단점이 있으며, 또한 자바환경을 바탕으로 하기 때문에 자바에 대한 지식을 필요로 하여 자바 코드 없이 구조화 질의어와 사용자 인터페이스만으로 어플리케이션 등을 개발하기에는 많은 어려움이 있었다.
특허문헌 KR 10-1097360 B1 2011.12.15 특허문헌 KR 10-1119179 B1 2012.02.15
본 발명이 해결하고자 하는 기술적 과제는, 공통 스크립트를 적용하여 사용자 인터페이스(UI)에서 올려주는 데이터를 구조화 질의어 처리를 위한 입력 파라미터로 자동 처리하고 데이터베이스에서의 구조화 질의어 처리 결과를 사용자 인터페이스에 전달할 수 있도록 함으로써, 자바에 대한 지식 없이도 구조화 질의어와 사용자 인터페이스 작성만으로 어플리케이션의 개발이 가능하도록 하여 개발 생산성을 향상시키고 어플리케이션의 품질을 향상시킬 수 있도록 한 구조화 질의어(SQL) 자동 처리 시스템 및 방법을 제공하고자 하는 것이다.
상기 목적을 달성하기 위한 본 발명의 일 실시 형태는, 데이터베이스에 접근하기 위한 구조화 질의어(SQL) 처리 방법에 있어서, (a) 화면에서 유저 인터페이스(UI) 공통 스크립트 적용 명령어와 데이터를 수신하는 단계, (b) 상기 수신된 UI 공통 스크립트 적용 명령어의 유형을 분석하는 단계, (c) SQL 맵을 로드하여 상기 분석된 명령어 유형에 대한 구조화 질의어 구문을 분석하는 단계, (d) 상기 분석된 구조화 질의어 구문에 명령어 유형에 대한 데이터를 맵핑하는 단계, (e) 상기 맵핑한 구조화 질의어 구문과 데이터를 데이터베이스에 처리하는 단계, (f) 상기 데이터베이스로부터 전송된 처리 결과를 화면으로 반환하는 단계로 이루어지는 구조화 질의어 자동 처리 방법이다.
상기 목적을 달성하기 위한 본 발명의 다른 실시 형태는, 데이터베이스에 접근하기 위한 구조화 질의어(SQL) 처리 시스템에 있어서, 화면에서 유저 인터페이스(UI) 공통 스크립트 적용 명령어와 데이터를 수신하여 사용자 요청의 실제 처리를 위한 서비스를 호출하기 위해 SQL 자동 처리 서비스부로 전달하거나 또는 데이터베이스로부터 전송된 처리결과 데이터를 화면으로 반환하는 UI 핸들러부, UI 핸들러부를 통해 전송받은 공통 스크립트 적용 명령어의 유형을 분석하고 SQL 맵 관리부에서 SQL 맵을 로드하여 사용자의 처리 요청에 대한 적절한 SQL 처리를 위해 SQL 처리부에 요청하거나 또는 SQL 처리부로부터 SQL 처리 결과를 수신하여 UI 핸들러부로 반환하는 SQL 자동 처리 서비스부, SQL 자동 처리 서비스부에서 전송받은 SQL 처리를 위한 SQL 구문을 분석하고 화면에서 사용자가 처리 요청한 데이터를 기준으로 파라메터를 맵핑하여 데이터베이스부에 SQL 처리하거나 또는 SQL 처리결과를 SQL 자동 처리 서비스부로 반환하는 SQL 처리부, SQL의 타입, SQL 구문, SQL 처리시 필요한 파라메터에 대한 정보를 가지고 있는 XML 구조의 SQL 맵 파일을 시스템에서 사용할 수 있도록 관리하는 SQL 맵 관리부, 및 맵핑한 SQL 구문과 데이터를 처리하는 데이터베이스 처리부를 포함하는 구조화 질의어 자동 처리 시스템이다.
본 발명의 또 다른 실시예에 따르면, 상기 구조화 질의어 자동 처리 방법을 수행하는 프로그램이 기록되어 있는, 컴퓨터에 의해 판독 가능한 기록매체가 제공될 수 있다.
본 발명에 의하면, 데이터베이스에 접근하기 위한 구조화 질의어 처리를 위한 입출력 파라미터에 대한 공통화된 데이터 포맷을 제공할 수 있게 되므로, 자바에 대한 지식 없이도 구조화 질의어와 사용자 인터페이스 작성만으로도 비즈니스 및 어플리케이션 개발이 가능하게 되어, 클라이언트/서버 환경의 개발자들도 3 티어(tier) 환경에서 어플리케이션의 개발이 가능하게 되는 이점이 있다.
또한 본 발명에 의하면, 데이터 명칭을 기준으로 사용자 인터페이스와 구조화 질의어의 입출력 파라미터를 매칭시킬 수 있게 되므로, SQL을 처리하기 위한 반복적인 코딩이 배제되어 소스 코딩량을 줄일 수 있으며, 서버에 구조화 질의어 처리를 요청하는 사용자 인터페이스의 요청에 따라 구조화 질의어가 다양하게 처리될 수 있으므로 개발생산성 및 어플리케이션의 품질을 향상시킬 수 있는 이점이 있다.
도 1은 종래의 기술에 의한 구조화 질의어의 정형화 포맷 적용 시스템의 구성도이다.
도 2는 종래 기술에 의한 구조화 질의어의 정형화 포맷 적용 방법의 동작흐름도이다.
도 3은 본 발명에 따른 구조화 질의어 자동 처리 시스템의 개략적인 구성을 예시한 블록도이다.
도 4는 본 발명에 따른 구조화 질의어 자동 처리 시스템의 상세 구성도이다.
도 5a 내지 도 5e는 SQL 맵 관리부에 정의되는 SQL 맵의 기본 구조, SQL 타입, SQL 구문, 파라메터를 설명하기 위하여 예시한 테이블 및 구문 사용 예이다.
도 6a 및 도 6b는 SQL 맵의 파라메터 사용 예를 설명하기 위하여 예시한 구문 사용 예이다.
도 7a 내지 도 7d는 SQL 맵의 동적 SQL 구문 및 태그를 설명하기 위하여 예시한 구문 사용 예이다.
도 8은 본 발명에 따른 구조화 질의어 자동 처리 방법의 동작 흐름도이다.
이하, 본 발명에 의한 구조화 질의어 자동 처리 시스템 및 방법의 구성 및 동작을 첨부 도면을 참조하여 상세히 설명한다.
본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정 해석되지 아니하며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서, 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시예에 불과할 뿐이므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다.
도 3은 본 발명에 따른 구조화 질의어 자동 처리 시스템의 개념을 설명하기 위하여 예시한 개념도이고, 도 4는 본 발명에 따른 구조화 질의어 자동 처리 시스템의 상세 구성도로서, 도 3 및 도 4에 도시된 바와 같이 본 발명에 따른 구조화 질의어 자동 처리 시스템(200)은, UI 핸들러부(210), SQL 자동 처리 서비스부(220), 및 데이터베이스 처리부(230)를 포함하여 구성된다.
UI 핸들러부(210)는 화면(UI)에서 전송되는 유저 인터페이스(UI) 공통 스크립트 적용 명령어와 데이터를 수신하여 사용자 요청의 실제 처리를 위한 서비스를 호출하기 위해 SQL 자동 처리 서비스부로 전달하거나 또는 데이터베이스로부터 전송된 처리결과 데이터를 화면으로 반환한다. 이때, UI에서 전송되는 데이터는 기본적으로 데이터베이스의 테이블과 같은 형태로 여러 개의 컬럼과 여러 건의 레코드를 포함하는 형태로 전달되며, 이런 데이터의 묶음이 SQL 맵 처리를 위한 기본 데이터로 사용되게 된다. 그러나, 반드시 이와 같은 테이블 형태의 데이터를 사용해야 하는 것은 아니며, 일반적으로 사용되는 키, 값 매핑 구조의 데이터를 사용해도 된다. 또한, 유저 인터페이스(UI) 공통 스크립트가 적용된 명령어의 유형은, 생성함수(fsp_init), 초기화함수(fsp_clear), 조회함수(fsp_addSearch), 페이지단위 조회함수(fsp_addPageSearch), 구분자단위 조회함수(fsp_addCSVSearch), 단건 처리함수(fsp_addSingle), 복수건 처리함수(fsp_addMulti), 데이터베이스 저장함수(fsp_addSave), 선택적 실행함수(fsp_addSelectExecute), 및 서버 호출함수(fsp_callService) 중에서 선택되는 적어도 하나 이상의 함수로 이루어진다.
생성함수(fsp_init)는 화면이 최초로 로드될 때 한번 호출되는 함수로서, SQL 맵 처리 정보를 담기 위한 데이터 셋(미리 지정된 규칙에 따라 한 개 이상의 열과 행으로 구성된 데이터의 집합)을 생성하는 함수이며, 초기화함수(fsp_clear)는 fsp addxxx의 함수를 사용하여 처리 정보를 추가하기 전에 먼저 호출되는 함수로서, SQL 맵 처리 정보를 담기 위한 데이터 셋의 데이터를 삭제하는 함수이다.
조회함수(fsp_addSearch)는 SQL 맵에 정의된 SQL 타입이 'select'인 SQL 맵을 처리하기 위해 사용되는 함수로서, 조회 처리를 위해 SQL 맵 처리정보를 추가하는 함수이며, 페이지단위 조회함수(fsp_addPageSearch)는 페이지 단위의 조회 처리를 위해 SQL 맵 처리 정보를 추가하는 함수이고, 구분자단위 조회함수(fsp_addCSVSearch)는 데이터를 조회할 때 CSV(comma-separated values) 형식으로 조회하기 위한 SQL 맵 처리 정보를 추가하는 함수이다.
단건 처리함수(fsp_addSingle)는 SQL 맵에 정의된 SQL 타입에 대해 사용 가능한 함수로서, SQL 맵에 대한 1건 처리 정보를 추가하는 함수이며, 화면으로부터 여러 건의 입력 데이터가 수신되었더라도 지정된 SQL 맵은 한번만 처리되도록 처리 정보를 추가하는 함수이다.
복수건 처리함수(fsp_addMulti)는 SQL 맵에 대해서 주어진 데이터의 건수만큼 처리 정보를 추가하는 함수로서, 처리 건수는 SQL 맵에 정의된 기본 입력명에 기술된 데이터 셋의 건수이며, 화면으로부터 입력된 데이터의 건수만큼 지정된 SQL 맵을 반복적으로 처리하도록 추가하는 함수이다.
데이터베이스 저장함수(fsp_addSave)는 데이터의 등록, 수정, 삭제를 한번에 처리하기 위한 SQL 맵 처리 정보를 추가하는 함수로서, 그리드 등에서 여러 건의 정보를 입력할 때 사용하는 함수이며, 선택적 실행함수(fsp_addSelectExecute)는 조회 후 데이터 존재 유/무에 따라 SQL 맵을 처리하기 위한 정보를 추가하는 함수이고, 서버 호출함수(fsp_callService)는 미리 정의된 서버 URL을 사용하여 서버에 접속하며, 이때 개발자가 작성한 별도의 자바 서비스를 호출하고자 할 경우에는 파라메터로 호출할 자바 서비스명과 서비스에서 호출된 메소드명을 입력할 수 있는 함수이다.
SQL 자동 처리 서비스부(220)는 UI 핸들러부(210)에서 전송받은 공통 스크립트 적용 명령어의 유형 및 명령어에 대한 SQL 구문 분석을 실시하여 그 분석 결과에 따라 명령어 유형에 대한 데이터를 맵핑하여 데이터베이스 처리부(230)에 SQL 처리를 요청하며, 이러한 SQL 자동 처리 서비스부(220)는 다시 명령어분석 및 SQL 호출부(221), SQL 처리부(222), 및 SQL 맵 관리부(223)로 세분화되어 구성될 수 있다.
명령어분석 및 SQL 호출부(221)는 상기 UI 핸들러부(210)를 통해 전송받은 공통 스크립트 적용 명령어의 유형을 분석하고 SQL 맵 관리부(223)에서 SQL 맵을 로드하여 사용자의 처리 요청에 대한 적절한 SQL 처리를 SQL 처리부(222)에 요청하거나 또는 SQL 처리부(222)로부터 SQL 처리 결과를 수신하여 상기 UI 핸들러부(210)로 반환한다.
SQL 처리부(222)는 명령어분석 및 SQL 호출부(210)에서 전송받은 SQL 처리를 위한 SQL 구문을 분석하고 화면에서 사용자가 처리 요청한 데이터를 기준으로 파라메터를 맵핑하여 데이터베이스부(230)에 SQL 처리하거나 또는 SQL 처리 결과를 상기 명령어분석 및 SQL 호출부(221)로 반환한다.
SQL 맵 관리부(223)는 SQL의 타입, SQL 구문, SQL 처리시 필요한 파라메터에 대한 정보를 가지고 있는 XML 구조의 SQL 맵 파일을 시스템에서 사용할 수 있도록 관리한다. SQL 맵 관리부(223)에서 정의하고 있는 SQL 맵의 기본 구조는 도 5a에 예시되어 있으며, 최상위 루트인 'query', 쿼리 태그의 속성으로 동적 SQL 인지의 유무를 나타내는 'dynamic', SQL 실행 타입을 나타내는 'type', 설명을 나타내는 'description', SQL이 처리된 후 반영된 최소 건수를 나타내는 'result-count', SQL 구문인 'statement', SQL을 처리하기 위해 파라메터로 입력되는 컬럼 정보인 'input'(default-name으로 SQL에 대한 기본 파라메터 그룹 명을 정의하고, col로 입력 파라메터 각각을 정의함), SQL이 처리된 결과가 출력되는 컬럼 정보인 'output'(default-name으로 SQL 처리 후 결과를 반환할 기본 결과 명을 정의하고, col로 출력 컬럼 각각을 정의함)로 구성된다.
SQL 맵의 SQL 실행 타입은 도 5b에 예시되어 있으며, 일반 조회용 SQL 구문인 select, INSERT SQL 구문인 insert, UPDATE SQL 구문인 update, DELETE SQL 구문인 delete, 스토어드 프로시저가 커서를 리턴하는 경우 사용되는 구문인 sp_select, 스토어드 프로시저가 실행한 후 OUT으로 리턴되는 결과가 없는 경우 사용되는 구문인 sp_execute, 스토어드 프로시저가 실행한 후 OUT으로 리턴되는 결과가 있는 경우 사용되는 구문인 sp_ex_select, 데이터베이스 함수를 호출하는 경우 사용되는 구문인 function 이 있다.
SQL 맵의 SQL 구문은 도 5c에 예시되어 있으며, 일반 표준 SQL과 동일하게 작성되며, 또는 ?로 바인딩되는 변수를 사용해야 하는 부분에는 #p_name#의 형태로 실제 #+파라메터 명+#(예를 들면, #MSG_ID# 또는 #USER_ID# 등)으로 작성된다.
SQL 맵의 파라메터는 도 5d에 예시되어 있으며, 본 발명에서 사용하는 SQL 구문의 파라메터는 #파라메터명# 또는 #그룹명.파라메터명#의 두 가지 형태로 선언된다. 파라메터에 대한 데이터 맵핑은 여러 개의 컬럼과 여러 건의 레코드가 존재하는 그룹형 데이터를 사용하는 것을 가정하여, SQL 맵이 사용하는 기본 데이터 그룹을 기본 입력명(input)에 기술하며, #파라메터명#처럼 그룹명을 제외한 파라메터는 기본적으로 기본 입력명에서 정의된 데이터 그룹에서 먼저 데이터를 맵핑하게 된다. 따라서, 그룹명에 해당하는 정보는 java.util.Map 타입의 객체 또는 MiPlatform/XPLATFORM의 Dataset 객체로 처리되고, 실제 파라메터 명에 해당하는 정보는 string, int 등 실제 값을 가질 수 있도록 바인딩 처리되게 된다. 그러나, 그룹명에 해당하는 데이터가 입력되지 않았다면 그룹을 제외하고 파라메터 명 만으로 데이터 바인딩 처리를 한다.
또한 SQL 맵의 파라메터는 도 5e에 예시된 바와 같이, 일반 및 원본 값을 가지고 처리하는 파라메터 유형을 제외하고는 SQL의 타입을 동적 SQL로 설정해야 한다.
도 6a 및 도 6b에는 상기 SQL 맵의 파라메터 사용예들이 예시되어 있으며, 도 6a에는 일반 파라메터를 사용하는 SQL 구문과 문자열 파라메터를 사용하는 SQL 구문이 예시되어 있고, 도 6b에는 배열 파라메터를 사용하는 SQL 구문과 원본 값 파라메터를 사용하는 SQL 구문이 예시되어 있다.
도 7a에는 실행시 입력된 데이터에 따라서 SQL 구문이 변경되는 SQL 맵의 동적 SQL 구문이 예시되어 있다. 이 동적 SQL 구문은 isNotNull/isNull 등의 태그를 사용하며, 동적 SQL 여부는 xml 파일 상에서는 최상위 query 태그의 다이내믹(dynamic) 속성을 추가하고, true로 설정하거나 fsp 서버 관리자에서는 '동적 SQL' 여부 항목을 선택하는 것에 의해 정의된다.
도 7b와 도 7d에는 동적 SQL의 태그가 예시되어 있으며, 이러한 동적 SQL은도면에 예시된 바와 같이, 11가지 태그를 활용하여 작성 가능하며, 각 태그는 중첩하여 사용 가능하다.
데이터베이스 처리부(230)는 상기 맵핑한 SQL 구문과 데이터를 처리하며, 아울러 그 데이터베이스 처리결과를 상기 SQL 자동 처리 서비스부(220)를 통해 UI 핸들러부(100)로 반환한다.
도 8은 본 발명에 따른 구조화 질의어 자동처리방법의 동작 흐름도로서, UI 핸들러부(210), SQL 자동 처리 서비스부(220), 및 데이터베이스 처리부(230) 사이에서 이루어지는 동작 흐름을 예시하고 있으며, (a) 명령어와 데이터 수신단계(S201), 명령어 유형 분석단계(S202), 명령어 유형에 대한 SQL 구문 분석단계(S203), 명령어 유형에 대한 데이터 맵핑단계(S204), SQL 구문과 데이터 처리단계(S205), 및 데이터베이스 처리결과 표출단계(S206)를 포함하여 이루어진다.
명령어와 데이터 수신단계(S201)는 화면에서 유저 인터페이스(UI) 공통 스크립트가 적용된 명령어와 데이터를 수신하는 단계이다. 이때 수신되는 데이터는 앞에서 상술한 바와 같이 기본적으로 데이터베이스의 테이블과 같은 형태로 여러 개의 컬럼과 여러 건의 레코드를 포함하는 형태로 전달되며, 이런 데이터의 묶음이 SQL 맵 처리를 위한 기본 데이터로 사용되게 된다. 그러나, 반드시 이와 같은 테이블 형태의 데이터를 사용해야 하는 것은 아니며, 일반적으로 사용되는 키, 값 매핑 구조의 데이터를 사용해도 된다. 또한, 공통 스크립트가 적용된 명령어 유형은, 생성함수(fsp_init), 초기화함수(fsp_clear), 조회함수(fsp_addSearch), 페이지단위 조회함수(fsp_addPageSearch), 구분자단위 조회함수(fsp_addCSVSearch), 단건 처리함수(fsp_addSingle), 복수건 처리함수(fsp_addMulti), 데이터베이스 저장함수(fsp_addSave), 선택적 실행함수(fsp_addSelectExecute), 및 서버 호출함수(fsp_callService) 중에서 선택되는 적어도 하나 이상의 함수로 이루어지며, 이들 함수의 속성은 위에서 설명한 바와 같으므로 그 상세한 설명은 생략하기로 한다.
명령어 유형 분석단계(S202)는 상기 수신된 UI 공통 스크립트 적용 명령어의 유형을 분석하는 단계이다.
명령어 유형에 대한 SQL 구문 분석단계(S203)는 SQL 맵을 로드하여 상기 분석된 명령어 유형에 대한 SQL 구문을 분석하는 단계이다.
명령어 유형에 대한 데이터 맵핑단계(S204)는 상기 분석된 SQL 구문에 명령어 유형에 대한 데이터를 맵핑하는 단계이다.
SQL 구문과 데이터 처리단계(S205)는 상기 맵핑한 SQL 구문과 데이터를 데이터베이스에 처리하는 단계이다. 이 단계에서는 상기 SQL 구문 분석 결과, 처리 유형이 배치(B) 타입일 경우 입력 데이터의 건수만큼 맵핑하여 한꺼번에 다수의 입력 데이터를 동시에 처리하며, 상기 SQL 구문 분석 결과, 처리 유형이 일반(N) 타입일 경우 입력 데이터의 건수만큼 한 건씩 입력 데이터를 처리한다.
데이터베이스 처리결과 표출단계(S206)는 상기 데이터베이스로부터 전송된 처리 결과 데이터를 표출하는 단계이다.
이상과 같이 구성되는 본 발명에 따른 SQL 자동 처리 시스템 및 방법의 전체적인 동작을 설명한다.
먼저, UI 핸들러부(210)가 화면에서 유저 인터페이스(UI) 공통 스크립트 적용 명령어와 데이터를 수신하여 사용자 요청의 실제 처리를 위한 서비스를 호출하기 위해 SQL 자동 처리 서비스부로 전달하면, SQL 자동 처리 서비스부(220)의 명령어분석 및 SQL 호출부(221)에서는 UI 핸들러부(210)에서 전송받은 공통 스크립트 적용 명령어의 유형(fsp_init, fsp_clear, fsp_addSearch, fsp_addPageSearch, fsp_addCSVSearch, fsp_addSingle, fsp_addMulti, fsp_addSave, fsp_callService, 및 fsp_addSelectExecute)을 분석하고 SQL 맵 관리부(223)에서 SQL 맵을 로드하여 사용자의 처리 요청에 대한 적절한 SQL 처리를 SQL 처리부(222)에 요청한다.
다음으로, SQL 처리부(222)에서는 명령어분석 및 SQL 호출부(221)에서 전송받은 SQL 처리를 위한 SQL 구문을 분석하고 화면에서 사용자가 처리 요청한 데이터를 기준으로 파라메터를 맵핑하여 데이터베이스 처리부(230)에 SQL 처리를 요청한다.
마지막으로, 데이터베이스 처리부(230)에서는 맵핑한 SQL 구문과 데이터를 처리하며, 아울러 그 데이터베이스 처리결과를 SQL 처리부(222) 및 명령어분석 및 SQL 호출부(221)를 통해 UI 핸들러부(210)로 반환한다.
상술한 구조화 질의어 자동 처리 방법은 컴퓨터 프로그램으로 작성 가능하다. 상기 프로그램을 구성하는 소스 코드들 및 코드 세그먼트들은 당해 분야의 컴퓨터 프로그래머에 의하여 용이하게 추론될 수 있다. 또한, 상기 프로그램은 컴퓨터가 읽을 수 있는 정보 저장 매체(computer readable media)에 저장되고, 컴퓨터에 의하여 읽혀지고 실행됨으로써 구조화 질의어 자동 처리 방법을 구현한다. 상기 정보 저장 매체는 자기 기록매체, 광 기록매체 및 캐리어 웨이브 매체를 포함한다.
이로써, 본 발명은 SQL 처리를 위한 입출력 파라메터에 대한 공통화된 데이터 포맷을 제공하여 데이터 명칭을 기준으로 UI와 SQL의 파라메터를 매칭시킬 수 있게 되므로, 자바에 대한 지식 없이도 SQL과 UI만 가지고 어플리케이션 개발을 가능하게 하여 기존의 C/S 개발자도 3Tier 웹 환경에서 어플리케이션을 개발할 수 있게 하며, 아울러 UI에서 올려준 데이터를 SQL 처리를 위한 입력 파라메터로 자동 처리하게 되므로 SQL을 처리하기 위한 반복적인 코딩이 배제되어 소스 코딩량을 줄일 수 있으며, 따라서 일반적인 업무용 비즈니스의 개발 생산성 및 어플리케이션의 품질 향상을 기대할 수 있게 될 것이다.
본 발명은 이상에서 살펴본 바와 같이 바람직한 실시예를 들어 도시하고 설명하였으나, 상기한 실시예에 한정되지 아니하며 본 발명의 정신을 벗어나지 않는 범위 내에서 당해 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 다양한 변경과 수정이 가능할 것이다.
200 : SQL 자동 처리 시스템 210 : UI 핸들러부
220 : SQL 자동 처리 서비스부 221 : 명령어분석 및 SQL 호출부
222 : SQL 처리부 223 : SQL 맵 관리부
230 : 데이터베이스 처리부

Claims (8)

  1. 구조화 질의어(SQL) 자동 처리 시스템에서 실행되는 구조화 질의어 자동 처리 방법에 있어서,
    (a) 화면에서 생성함수(fsp_init), 초기화함수(fsp_clear), 조회함수(fsp_addSearch), 페이지단위 조회함수(fsp_addPageSearch), 구분자단위 조회함수(fsp_addCSVSearch), 단건 처리함수(fsp_addSingle), 복수건 처리함수(fsp_addMulti), 데이터베이스 저장함수(fsp_addSave), 선택적 실행함수(fsp_addSelectExecute), 및 서버 호출함수(fsp_callService) 중에서 선택되는 적어도 하나 이상의 함수인 유저 인터페이스(UI) 공통 스크립트 적용 명령어와 데이터를 수신하는 단계;
    (b) 상기 수신된 UI 공통 스크립트 적용 명령어의 유형을 분석하는 단계;
    (c) SQL 맵을 로드하여 상기 분석된 명령어 유형에 대한 SQL 구문을 호출하하는 단계;
    (d) 상기 호출된 SQL 구문에 명령어 유형에 대한 데이터를 맵핑하는 단계;
    (e) 상기 SQL 구문 분석 결과 처리 유형이 배치(B) 타입인 경우 입력 데이터의 건수만큼 맵핑하여 한꺼번에 다수의 입력 데이터를 동시에 처리하며, 상기 SQL 구문 분석 결과 처리 유형이 일반(N) 타입인 경우 입력 데이터의 건수만큼 반복적으로 한 건씩 입력 데이터를 처리하여 상기 맵핑한 SQL 구문과 데이터를 데이터베이스에 처리하는 단계; 및
    (f) 상기 데이터베이스로부터 전송된 처리 결과를 화면으로 반환하는 단계
    를 포함하고,
    상기 단건 처리함수(fsp_addSingle)는, 화면으로부터 여러 건의 입력 데이터가 수신되었더라도 지정된 SQL 맵은 한번만 처리되도록 처리 정보를 추가하는 함수이고,
    상기 복수건 처리함수(fsp_addMulti)는, 화면으로부터 입력된 데이터의 건수만큼 지정된 SQL 맵을 반복적으로 처리하도록 추가하는 함수로서, 처리 건수는 SQL 맵에 정의된 기본 입력명에 기술된 데이터 셋의 건수인 것을 특징으로 하는 구조화 질의어 자동 처리 방법.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서,
    상기 생성함수(fsp_init)는,
    화면이 최초로 로드될 때 한번 호출되는 함수로서, SQL 맵 처리정보를 담기 위한 데이터 셋을 생성하는 함수이고,
    상기 초기화함수(fsp_clear)는,
    fsp addxxx의 함수를 사용하여 처리정보를 추가하기 전에 먼저 호출되는 함수로서, SQL 맵 처리 정보를 담기 위한 데이터 셋의 데이터를 삭제하는 함수인 것을 특징으로 하는 구조화 질의어 자동 처리 방법.
  5. 제1항에 있어서,
    상기 조회함수(fsp_addSearch)는,
    SQL 맵에 정의된 SQL 타입이 'select'인 SQL 맵을 처리하기 위해 사용되는 함수로서, 조회 처리를 위해 SQL 맵 처리정보를 추가하는 함수이고,
    상기 페이지단위 조회함수(fsp_addPageSearch)는,
    페이지 단위의 조회 처리를 위해 SQL 맵 처리정보를 추가하는 함수이며,
    상기 구분자단위 조회함수(fsp_addCSVSearch)는,
    데이터를 조회할 때 CSV(comma-separated values) 형식으로 조회하기 위한 SQL 맵 처리 정보를 추가하는 함수인 것을 특징으로 하는 구조화 질의어 자동 처리 방법.
  6. 삭제
  7. 제1항에 있어서,
    상기 데이터베이스 저장함수(fsp_addSave)는,
    여러 건의 정보를 입력할 때 사용하는 함수로서, 데이터의 등록, 수정, 삭제를 한번에 처리하기 위한 SQL 맵 처리 정보를 추가하는 함수이며,
    상기 선택적 실행함수(fsp_addSelectExecute)는,
    조회 후 데이터 존재 유/무에 따라 SQL 맵을 처리하기 위한 정보를 추가하는 함수이고,
    상기 서버 호출함수(fsp_callService)는,
    미리 정의된 서버 URL을 사용하여 서버에 접속하며, 개발자가 작성한 별도의 자바 서비스를 호출하고자 할 경우에 파라메터로 호출할 자바 서비스명과 서비스에서 호출된 메소드명을 입력할 수 있는 함수인 것을 특징으로 하는 구조화 질의어 자동 처리 방법.
  8. 데이터베이스에 접근하기 위한 구조화 질의어(SQL) 처리 시스템에 있어서,
    화면에서 생성함수(fsp_init), 초기화함수(fsp_clear), 조회함수(fsp_addSearch), 페이지단위 조회함수(fsp_addPageSearch), 구분자단위 조회함수(fsp_addCSVSearch), 단건 처리함수(fsp_addSingle), 복수건 처리함수(fsp_addMulti), 데이터베이스 저장함수(fsp_addSave), 선택적 실행함수(fsp_addSelectExecute), 및 서버 호출함수(fsp_callService) 중에서 선택되는 적어도 하나 이상의 함수인 유저 인터페이스(UI) 공통 스크립트 적용 명령어와 데이터를 수신하여 사용자 요청의 실제 처리를 위한 서비스를 호출하기 위해 SQL 자동 처리 서비스부로 전달하거나 또는 데이터베이스로부터 전송된 처리결과 데이터를 화면으로 반환하는 UI 핸들러부;
    상기 UI 핸들러부를 통해 전송받은 공통 스크립트 적용 명령어의 유형을 분석하고 SQL 맵 관리부에서 SQL 맵을 로드하여 사용자의 처리 요청에 대한 적절한 SQL 처리를 위해 SQL 처리부에 요청하거나 또는 SQL 처리부로부터 SQL 처리 결과를 수신하여 상기 UI 핸들러부로 반환하는 SQL 자동 처리 서비스부;
    상기 SQL 자동 처리 서비스부에서 전송받은 SQL 처리를 위한 SQL 구문을 분석하고 화면에서 사용자가 처리 요청한 데이터를 기준으로 파라메터를 맵핑하여 데이터베이스부에 SQL 처리하거나 또는 SQL 처리 결과를 상기 SQL 자동 처리 서비스부로 반환하는 SQL 처리부;
    SQL의 타입, SQL 구문, SQL 처리시 필요한 파라메터에 대한 정보를 가지고 있는 XML 구조의 SQL 맵 파일을 시스템에서 사용할 수 있도록 관리하는 SQL 맵 관리부; 및
    상기 SQL 구문 분석 결과 처리 유형이 배치(B) 타입인 경우 입력 데이터의 건수만큼 맵핑하여 한꺼번에 다수의 입력 데이터를 동시에 처리하며, 상기 SQL 구문 분석 결과 처리 유형이 일반(N) 타입인 경우 입력 데이터의 건수만큼 반복적으로 한 건씩 입력 데이터를 처리하여 상기 맵핑한 SQL 구문과 데이터를 처리하는 데이터베이스 처리부;를 포함하고,
    상기 단건 처리함수(fsp_addSingle)는, 화면으로부터 여러 건의 입력 데이터가 수신되었더라도 지정된 SQL 맵은 한번만 처리되도록 처리 정보를 추가하는 함수이고,
    상기 복수건 처리함수(fsp_addMulti)는, 화면으로부터 입력된 데이터의 건수만큼 지정된 SQL 맵을 반복적으로 처리하도록 추가하는 함수로서, 처리 건수는 SQL 맵에 정의된 기본 입력명에 기술된 데이터 셋의 건수인 것을 특징으로 하는 구조화 질의어 자동 처리 시스템.
KR1020120118396A 2012-10-24 2012-10-24 구조화 질의어 자동 처리 시스템과 방법 및 그를 실행하기 위한 프로그램이 기록되는 컴퓨터로 읽을 수 있는 기록매체 KR101260436B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120118396A KR101260436B1 (ko) 2012-10-24 2012-10-24 구조화 질의어 자동 처리 시스템과 방법 및 그를 실행하기 위한 프로그램이 기록되는 컴퓨터로 읽을 수 있는 기록매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120118396A KR101260436B1 (ko) 2012-10-24 2012-10-24 구조화 질의어 자동 처리 시스템과 방법 및 그를 실행하기 위한 프로그램이 기록되는 컴퓨터로 읽을 수 있는 기록매체

Publications (1)

Publication Number Publication Date
KR101260436B1 true KR101260436B1 (ko) 2013-05-09

Family

ID=48665422

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120118396A KR101260436B1 (ko) 2012-10-24 2012-10-24 구조화 질의어 자동 처리 시스템과 방법 및 그를 실행하기 위한 프로그램이 기록되는 컴퓨터로 읽을 수 있는 기록매체

Country Status (1)

Country Link
KR (1) KR101260436B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101769848B1 (ko) 2015-12-30 2017-08-22 (주)비아이매트릭스 상용 인터프리터를 이용한 스크립트 기반 데이터 처리 시스템
CN111752549A (zh) * 2020-06-24 2020-10-09 中国银行股份有限公司 Sql函数生成方法及装置
CN112035510A (zh) * 2020-08-28 2020-12-04 中电长城(长沙)信息技术有限公司 一种信息系统复杂数据查询方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101097360B1 (ko) * 2010-06-24 2011-12-23 (주)미디어포스 구조화 질의어를 정형화된 포맷에 적용하기 위한 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101097360B1 (ko) * 2010-06-24 2011-12-23 (주)미디어포스 구조화 질의어를 정형화된 포맷에 적용하기 위한 방법

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101769848B1 (ko) 2015-12-30 2017-08-22 (주)비아이매트릭스 상용 인터프리터를 이용한 스크립트 기반 데이터 처리 시스템
CN111752549A (zh) * 2020-06-24 2020-10-09 中国银行股份有限公司 Sql函数生成方法及装置
CN111752549B (zh) * 2020-06-24 2023-07-21 中国银行股份有限公司 Sql函数生成方法及装置
CN112035510A (zh) * 2020-08-28 2020-12-04 中电长城(长沙)信息技术有限公司 一种信息系统复杂数据查询方法及系统
CN112035510B (zh) * 2020-08-28 2023-12-19 中电长城(长沙)信息技术有限公司 一种信息系统复杂数据查询方法及系统

Similar Documents

Publication Publication Date Title
US11366856B2 (en) System and method for updating target schema of graph model
KR102143889B1 (ko) 메타데이터 관리를 위한 시스템
US11726969B2 (en) Matching metastructure for data modeling
US11526656B2 (en) Logical, recursive definition of data transformations
CN109670053B (zh) 数据对象映射方法、装置、设备和计算机可读存储介质
US8244780B1 (en) Parameter oriented automated database command
US9098558B2 (en) Enhanced flexibility for users to transform XML data to a desired format
US9043757B2 (en) Identifying differences between source codes of different versions of a software when each source code is organized using incorporated files
US20140244690A1 (en) Generate in-memory views from universe schema
US9128962B2 (en) View based table replacement for applications
US11061897B2 (en) Materializable database objects in multitenant environments
US20230418808A1 (en) Maintaining data separation for data consolidated from multiple data artifact instances
CN113760947A (zh) 一种数据中台、数据处理方法、装置、设备及存储介质
US20230418680A1 (en) Selective landscape element grouping facilitating landscape element consolidation or content installation
KR101260436B1 (ko) 구조화 질의어 자동 처리 시스템과 방법 및 그를 실행하기 위한 프로그램이 기록되는 컴퓨터로 읽을 수 있는 기록매체
US20140114916A1 (en) Code generation and implementation method, system, and storage medium for delivering bidirectional data aggregation and updates
KR101769848B1 (ko) 상용 인터프리터를 이용한 스크립트 기반 데이터 처리 시스템
JP2024505236A (ja) データ処理システム用のデータセットマルチプレクサ
EP4290393A1 (en) Consolidation spaces providing access to multiple instances of application content
US10942732B1 (en) Integration test framework
US20230418803A1 (en) Techniques for integrating data for multple instances of a data artifact
US11782921B2 (en) Columnar cache query using hybrid query execution plan
US9910616B2 (en) Dynamic data access
Settle et al. aMatReader: Importing adjacency matrices via Cytoscape Automation
US11449504B2 (en) Database partition pruning using dependency graph

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated 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: 20160317

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180208

Year of fee payment: 6