KR101806449B1 - 그래픽 유저 인터페이스를 이용한 ansi 쿼리문 생성 시스템 및 그 방법 - Google Patents
그래픽 유저 인터페이스를 이용한 ansi 쿼리문 생성 시스템 및 그 방법 Download PDFInfo
- Publication number
- KR101806449B1 KR101806449B1 KR1020160066236A KR20160066236A KR101806449B1 KR 101806449 B1 KR101806449 B1 KR 101806449B1 KR 1020160066236 A KR1020160066236 A KR 1020160066236A KR 20160066236 A KR20160066236 A KR 20160066236A KR 101806449 B1 KR101806449 B1 KR 101806449B1
- Authority
- KR
- South Korea
- Prior art keywords
- symbol
- join
- column
- query statement
- symbols
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2428—Query predicate definition using graphical user interfaces, including menus and forms
-
- G06F17/30398—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/332—Query formulation
- G06F16/3322—Query formulation using system suggestions
- G06F16/3323—Query formulation using system suggestions using document space presentation or visualization, e.g. category, hierarchy or range presentation and selection
-
- G06F17/30404—
-
- G06F17/30643—
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 발명은 사용자가 GUI(Graphical User Interface)에서 테이블간 조인 연관관계를 적용하고자 하는 테이블을 선택하면 해당 테이블들이 심볼로 표시되고, 테이블간에 원하는 조인 연관관계를 설정 후 테이블끼리 또는 테이블에 속하는 컬럼끼리 심볼로 연결하기만 하면 테이블간 조인 연관관계를 간편하게 완성할 수 있고, 심볼에 의해 표현된 테이블간의 조인 연관관계를 분석하여 이에 해당하는 SQL 쿼리문을 자동으로 생성할 수 있는 그래픽 유저 인터페이스를 이용한 ANSI 쿼리문 생성 시스템에 관한 것이다.
Description
본 발명은 그래픽 유저 인터페이스를 이용한 ANSI 쿼리문 생성 시스템 및 그 방법에 관한 것으로, 더욱 상세하게는 두 개 이상의 테이블간의 조인 연관관계를 사용자 인터페이스에서 심볼(symbol)로 표현하고, 이에 해당하는 쿼리문을 ANSI SQL 표준 문장으로 자동 생성하는 그래픽 유저 인터페이스를 이용한 ANSI 쿼리문 생성 시스템 및 그 방법에 관한 것이다.
SQL이란 데이터베이스를 사용하는데 쓰이는 문법을 말하며, SQL 언어로는 PL/SQL, T-SQL, ANSI SQL 등 여러 종류의 SQL이 있다. 이중에서 ANSI SQL은 표준 SQL문이므로 대부분의 DBMS에서 인식할 수가 있고, 테이블간의 JOIN관계가 FROM절에서 모두 기술되고 그 이하 절에서는 순수하게 체크조건만 나오므로 가독성이 좋은 장점을 가지고 있다.
JOIN(조인)은 2개의 테이블에서 각각의 공통값을 이용함으로써 필드를 조합하는 수단이 된다. ANSI 표준 SQL은 INNER JOIN(내부 조인), LEFT JOIN(왼쪽 외부 조인), RIGHT JOIN(오른쪽 외부 조인), CROSS JOIN(교차 조인)의 네 가지 유형의 JOIN을 규정한다.
INNER JOIN은 두 개의 집합의 교집합으로서, 양쪽 테이블에 모두 있는 행들만 포함시키고 그렇지 않은 행들은 제외시킨다. LEFT JOIN은 왼쪽 테이블의 모든 결과를 보여준 후 반대쪽 테이블에 매칭되는 값이 없어도 보여주는 조인이다. RIGHT JOIN은 오른쪽 테이블의 모든 결과를 보여준 후 반대쪽 테이블에 매칭되는 값이 없어도 보여주는 조인이다. CROSS JOIN은 조인되는 두 테이블에서 곱집합을 반환한다. 예를 들어, m열을 가진 테이블과 n열을 가진 테이블이 교차 조인(CROSS JOIN)되면 mⅩn개의 열을 생성하는 것이다.
작업자가 이러한 SQL 쿼리문을 언어 문법에 맞게 직접 작성해야 하는 불편함을 해결하기 위한 종래의 기술이 여러 가지가 있다.
등록특허 제10-1423594호(대화형 질의응답을 이용한 쿼리문 생성장치, 쿼리문 생성 방법 및 그 기록매체)는 XML 태그 항목을 정의하여 대화형 질의응답 콘솔 프로그램에서 이를 읽어들이고 조각된 쿼리문을 재구성함으로써 SQL 데이터베이스 언어의 문법에 맞는 쿼리문을 생성하는 것을 특징으로 한다.
등록특허 제10-1368014호(동적 쿼리 생성 방법, 동적 쿼리 생성 서버 및 이를 저장한 기록 매체)는 적어도 하나의 데이터베이스 필드가 결정될 때마다 생성된 정적 쿼리문을 수정하여 동적 쿼리문을 생성함으로써 자유로운 커스터마이징이 가능하도록 하는 것을 특징으로 한다.
등록특허 제10-1423594호와 등록특허 제10-1368014호는 사용자가 쿼리문의 직접 작성에 드는 노력을 줄이면서 편리하게 쿼리문을 작성할 수 있는 어느 정도의 이점은 있으나, 사용자가 어떠한 테이블들이 조인 연관관계에 참여하고 있고, 테이블간에 조인 연관관계는 어떠한 것이 설정되어 있는지를 직관적으로 인식하기가 어려운 문제가 있으며, 사용자가 테이블간에 원하는 조인 연관관계를 적용하여 쿼리문을 생성하고자 할 때 사용자 인터페이스에서 드래그&드롭과 같은 간편한 기능을 이용하여 편리하게 쿼리문을 작성할 수 있는 솔루션을 제공하지 못하고 있다.
본 발명은 상기와 같은 문제점을 개선하기 위하여 발명된 것으로, 사용자 인터페이스에서 두 개 이상의 테이블간의 조인 연관관계를 심볼(symbol)을 이용하여 표현하고, 표현된 심볼이 나타내는 쿼리문을 ANSI 표준 SQL 기준으로 자동 생성하는 그래픽 유저 인터페이스를 이용한 ANSI 쿼리문 생성 시스템 및 그 방법을 제공하기 위한 것이다.
상기와 같은 목적을 달성하기 위하여, 본 발명은 데이터베이스에서 선택된 제1테이블을 나타내는 제1심볼을 생성하여 화면에 표시하고, 추가 선택된 제2테이블을 나타내는 제2심볼을 생성하여 화면에 표시하는 테이블생성부; 복수의 조인(JOIN) 연관관계 중 선택된 조인 연관관계에 의해 상기 두 개의 테이블간의 조인 연관관계를 설정하는 조인설정부; 상기 조인설정부가 설정한 조인 연관관계를 나타내는 심볼에 의해 상기 두 개의 테이블을 시각적으로 연결하여 표시하는 테이블조인부; 및 상기 제1테이블 명칭과 제2테이블 명칭을 포함하는 SELECT절, 상기 제1테이블 명칭을 포함하는 FROM절과, 상기 제2테이블 명칭과 상기 조인설정부가 설정한 조인 연관관계를 나타내는 단어를 포함하는 JOIN절을 포함하여 쿼리문을 자동으로 생성하는 쿼리문생성부를 포함한다.
상기 테이블조인부는 상기 제1테이블에 속하는 복수의 컬럼 중 하나를 선택하면 제1-1심볼을 생성하여 제1심볼에 인접하거나 제1심볼 상에 표시하고, 상기 제2테이블에 속하는 복수의 컬럼 중 하나를 선택하면 제2-1심볼을 생성하여 제2심볼에 인접하거나 제2심볼 상에 표시하는 컬럼생성부; 및 상기 컬럼생성부가 생성한 두 개의 심볼(제1-1심볼, 제2-1심볼)을 시각적으로 연결하여 표시하거나, 상기 테이블생성부가 생성한 두 개의 심볼(제1심볼, 제2심볼)을 연결하여 표시하는 컬럼/테이블연결부를 포함할 수 있다.
상기 테이블생성부가 화면에 표시한 제1심볼을 선택 또는 클릭하면 제1테이블에 포함되는 복수의 컬럼을 표시하고, 제2심볼을 선택 또는 클릭하면 제2테이블에 포함되는 복수의 컬럼을 표시하는 컬럼목록출력부를 더 포함할 수 있다.
상기 쿼리문생성부는 상기 JOIN절 다음에 상기 제1-1심볼이 나타내는 컬럼 명칭과 제2-1심볼이 나타내는 컬럼 명칭을 포함하는 ON조건절을 더 포함하여 쿼리문을 자동으로 생성할 수 있다.
상기 쿼리문생성부는 상기 컬럼/테이블연결부가 시각적으로 연결하여 표시한 두 개의 심볼(제1-1심볼, 제2-1심볼) 중 시작점에 해당하는 심볼이 위치하는 테이블 명칭을 포함하는 FROM절과, 끝점에 해당하는 심볼이 위치하는 테이블의 명칭과 상기 조인설정부가 설정한 조인 연관관계를 나타내는 단어를 포함하는 JOIN절과, 두 개의 심볼(제1-1심볼, 제2-1심볼)이 나타내는 각각의 컬럼 명칭을 포함하는 ON조건절을 포함하여 쿼리문을 자동으로 생성할 수 있다.
상기 컬럼/테이블연결부가 두 개의 심볼(제1-1심볼, 제2-1심볼)을 시각적으로 연결하여 표시할 때 상기 조인설정부가 설정한 조인 연관관계의 종류에 따라 다른 형태로 표시할 수 있다.
상기 컬럼생성부는 제1테이블에 속하는 복수의 컬럼 중 또 다른 하나를 선택하면 제1-2심볼을 생성하여 제1심볼에 인접하거나 제1심볼 상에 표시하고, 상기 제2테이블에 속하는 복수의 컬럼 중 또 다른 하나를 선택하면 제2-2심볼을 생성하여 제2심볼에 인접하거나 제2심볼 상에 표시하고, 상기 컬럼/테이블연결부는 상기 컬럼생성부가 생성한 추가적인 두 개의 심볼(제1-2심볼, 제2-2심볼)을 시각적으로 연결하여 표시할 수 있다.
상기 쿼리문생성부는 상기 JOIN절 다음에 제1-1심볼과 제2-1심볼 각각이 나타내는 컬럼 명칭에 의한 조건문과 제1-2심볼과 제2-2심볼 각각이 나타내는 컬럼 명칭에 의한 조건문을 AND조건으로 연결하는 ON조건절을 더 포함하여 쿼리문을 자동으로 생성할 수 있다.
상기 테이블생성부가 데이터베이스에서 선택된 제3테이블을 나타내는 제3심볼을 추가 생성하여 화면에 표시하면, 상기 조인설정부는 선택된 조인 연관관계에 의해 제3테이블과 제1테이블 또는 제3테이블과 제2테이블간의 조인 연관관계를 추가 설정하고, 상기 테이블조인부는 조인설정부가 설정한 조인 연관관계를 나타내는 심볼에 의해 상기 제3테이블과 제1테이블 또는 제3테이블과 제2테이블을 시각적으로 연결하여 표시하며, 상기 쿼리문생성부는 상기 JOIN절 다음에 상기 제3테이블 명칭과 상기 조인설정부가 추가 설정한 조인 연관관계를 나타내는 단어를 포함하는 또 다른 JOIN절을 포함하여 쿼리문을 자동으로 생성할 수 있다.
상기 조인 연관관계를 나타내는 단어는 INNER JOIN, LEFT JOIN, RIGHT JOIN, CROSS JOIN 중 어느 하나일 수 있다.
한편, 상기와 같은 목적을 달성하기 위하여, 본 발명은 데이터베이스에서 선택된 서로 다른 테이블을 나타내는 복수의 테이블 심볼을 생성하여 화면에 표시하는 테이블생성단계; INNER JOIN, LEFT JOIN, RIGHT JOIN, CROSS JOIN 중 선택된 조인(JOIN) 연관관계에 의해 테이블간의 조인 연관관계를 설정하는 조인설정단계; 상기 조인 연관관계를 나타내는 심볼에 의해 서로 다른 테이블을 시각적으로 연결하여 표시하는 테이블조인단계; 및 상기 화면에 표시된 복수의 테이블 명칭을 포함하는 SELECT절, 최초로 선택된 테이블 명칭을 포함하는 FROM절, 최초로 선택된 테이블에 연결된 테이블 명칭과 상기 조인설정단계에서 해당 테이블간에 설정한 조인 연관관계를 나타내는 단어를 포함하는 JOIN절을 포함하여 쿼리문을 자동으로 생성하며, 상기 테이블조인단계에서 표시하는 테이블간 추가적인 연결 개수만큼 추가적으로 선택된 테이블 명칭과 상기 조인설정단계에서 해당 테이블간에 설정한 조인 연관관계를 나타내는 단어를 포함하는 JOIN절을 반복하여 구성하는 쿼리문생성단계를 포함한다.
상기 테이블조인단계는 각 테이블에 속하는 복수의 컬럼 중 하나를 선택하면 컬럼 심볼을 생성하여 상기 테이블 심볼에 인접하거나 테이블 심볼 상에 표시하고, 생성된 두 개의 컬럼 심볼을 시각적으로 연결하여 표시하거나, 상기 테이블생성단계에서 생성한 서로 다른 테이블 심볼을 직접 연결하여 표시할 수 있다.
상기 테이블생성단계 이후 화면에 표시한 테이블 심볼을 선택 또는 클릭하면 해당 테이블에 포함되는 복수의 컬럼을 표시하는 컬럼목록출력단계를 더 포함하고, 상기 테이블조인단계는 출력된 복수의 컬럼 중 하나를 선택하면 컬럼 심볼을 생성하여 상기 테이블 심볼에 인접하거나 테이블 심볼 상에 표시할 수 있다.
상기 테이블조인단계는 생성된 두 개의 컬럼 심볼을 시각적으로 연결하여 표시할 때 상기 조인설정단계에서 설정한 조인 연관관계의 종류에 따라 다른 형태로 표시할 수 있다.
상기 테이블조인단계는 각 테이블에 속하는 복수의 컬럼 중 또 다른 하나를 선택하면 또 다른 컬럼 심볼을 생성하여 해당 테이블 심볼에 인접하거나 해당 테이블 심볼 상에 표시하고, 추가적으로 생성된 두 개의 컬럼 심볼을 시각적으로 연결하여 표시할 수 있다.
상기 쿼리문생성단계는 상기 JOIN절 다음에 상기 생성된 두 개의 컬럼 심볼이 나타내는 컬럼 명칭을 포함하는 ON조건절을 더 포함하여 쿼리문을 자동으로 생성할 수 있다.
상기 쿼리문생성단계는 상기 JOIN절 다음에 먼저 연결된 두 개의 컬럼 심볼 각각이 나타내는 컬럼 명칭에 의한 조건문과 추가적으로 연결된 또 다른 두 개의 컬럼 심볼 각각이 나타내는 컬럼 명칭에 의한 조건문을 AND조건으로 연결하는 ON조건절을 더 포함하여 쿼리문을 자동으로 생성할 수 있다.
상기와 같은 구성의 본 발명에 따르면, 다음과 같은 효과를 도모할 수 있다.
우선, 본 발명은 사용자가 GUI(Graphical User Interface)에서 테이블간 조인 연관관계를 적용하고자 하는 테이블을 선택하면 해당 테이블들이 심볼로 표시되고, 테이블간에 원하는 조인 연관관계를 설정 후 테이블끼리 또는 테이블에 속하는 컬럼끼리 심볼로 연결하기만 하면 테이블간 조인 연관관계를 간편하게 완성할 수 있고, 심볼에 의해 표현된 테이블간의 조인 연관관계를 분석하여 이에 해당하는 SQL 쿼리문을 자동으로 생성할 수 있다.
또한, 사용자는 인터페이스를 통해 어떤 테이블이 조인 연관관계에 참여하고 있고, 테이블간에 사용되는 조인 연관관계는 무엇인지를 직관적으로 확인할 수 있다.
나아가, 서로 다른 테이블에 속하는 컬럼간에 화살표 심볼을 통해 조인 연관관계가 설정될 때 조인의 종류를 시각적으로 구분할 수 있도록 화살표 심볼의 형태를 다르게 표현하여 사용자 편의를 제공할 수 있다.
물론, 테이블을 구분하기 위하여 테이블을 나타내는 심볼의 종류도 다르게 지정할 수 있다.
이상에서 검토한 바와 같이 본 발명에 의하면, 사용자는 조인 연관관계에 참여하는 테이블의 개수에 상관없이 GUI를 이용하여 심볼로 조인 연관관계를 쉽고 빠르게 구성할 수 있고, 완성된 심볼이 나타내는 조인 연관관계를 ANSI 표준 SQL 쿼리문으로 자동 생성할 수 있는 효과가 있다.
도 1은 본 발명의 일 실시 예에 따른 그래픽 유저 인터페이스를 이용한 ANSI 쿼리문 생성 시스템의 구성을 나타내는 블록도이다.
도 2a는 본 발명의 일 실시 예에 따라 그래픽 유저 인터페이스에서 심볼로 표현한 INNER JOIN(내부 조인)의 예를 나타내고, 도 2b는 본 발명의 일 실시 예에 따라 그래픽 유저 인터페이스에서 심볼로 표현한 LEFT JOIN(왼쪽 외부 조인)의 예를 나타내고, 도 2c는 본 발명의 일 실시 예에 따라 그래픽 유저 인터페이스에서 심볼로 표현한 CROSS JOIN(교차 조인)의 예를 나타낸다.
도 3a는 본 발명의 일 실시 예에 따라 그래픽 유저 인터페이스에서 심볼로 INNER JOIN을 표현하고, 표현된 결과를 ANSI 표준 SQL 문장으로 자동 생성한 결과를 나타낸다.
도 3b은 본 발명의 일 실시 예에 따라 그래픽 유저 인터페이스에서 심볼로 INNER JOIN, LEFT JOIN, CROSS JOIN을 순차적으로 표현하고, 표현된 결과를 ANSI 표준 SQL 문장으로 자동 생성한 결과를 나타낸다.
도 3c는 본 발명의 일 실시 예에 따라 그래픽 유저 인터페이스에서 심볼로 두 개의 INNER JOIN을 표현하고, 표현된 결과를 ANSI 표준 SQL 문장으로 자동 생성한 결과를 나타낸다.
도 4a는 본 발명의 일 실시 예에서 사용되는 테이블1의 컬럼 목록을 나타내고, 도 4b는 본 발명의 일 실시 예에서 사용되는 테이블2의 컬럼 목록을 나타내고, 도 4c는 본 발명의 일 실시 예에서 사용되는 테이블3의 컬럼 목록을 나타내고, 도 4d는 본 발명의 일 실시 예에서 사용되는 테이블4의 컬럼 목록을 나타낸다.
도 4e는 도 3a의 실시 예에 따라 생성된 심볼 표현을 ANSI 표준 SQL 문장으로 자동 생성한 결과와 자동 생성된 SQL을 이용하여 테이블을 조회한 결과를 나타내며, 도 4f는 도 3b의 실시 예에 따라 생성된 심볼 표현을 ANSI 표준 SQL 문장으로 자동 생성한 결과와 자동 생성된 SQL을 이용하여 테이블을 조회한 결과를 나타내며, 도 4g는 도 3c의 실시 예에 따라 생성된 심볼 표현을 ANSI 표준 SQL 문장으로 자동 생성한 결과와 자동 생성된 SQL을 이용하여 테이블을 조회한 결과를 나타낸다.
도 5는 본 발명의 또 다른 실시 예에 따른 그래픽 유저 인터페이스를 이용한 ANSI 쿼리문 생성 방법의 순서도이다.
도 2a는 본 발명의 일 실시 예에 따라 그래픽 유저 인터페이스에서 심볼로 표현한 INNER JOIN(내부 조인)의 예를 나타내고, 도 2b는 본 발명의 일 실시 예에 따라 그래픽 유저 인터페이스에서 심볼로 표현한 LEFT JOIN(왼쪽 외부 조인)의 예를 나타내고, 도 2c는 본 발명의 일 실시 예에 따라 그래픽 유저 인터페이스에서 심볼로 표현한 CROSS JOIN(교차 조인)의 예를 나타낸다.
도 3a는 본 발명의 일 실시 예에 따라 그래픽 유저 인터페이스에서 심볼로 INNER JOIN을 표현하고, 표현된 결과를 ANSI 표준 SQL 문장으로 자동 생성한 결과를 나타낸다.
도 3b은 본 발명의 일 실시 예에 따라 그래픽 유저 인터페이스에서 심볼로 INNER JOIN, LEFT JOIN, CROSS JOIN을 순차적으로 표현하고, 표현된 결과를 ANSI 표준 SQL 문장으로 자동 생성한 결과를 나타낸다.
도 3c는 본 발명의 일 실시 예에 따라 그래픽 유저 인터페이스에서 심볼로 두 개의 INNER JOIN을 표현하고, 표현된 결과를 ANSI 표준 SQL 문장으로 자동 생성한 결과를 나타낸다.
도 4a는 본 발명의 일 실시 예에서 사용되는 테이블1의 컬럼 목록을 나타내고, 도 4b는 본 발명의 일 실시 예에서 사용되는 테이블2의 컬럼 목록을 나타내고, 도 4c는 본 발명의 일 실시 예에서 사용되는 테이블3의 컬럼 목록을 나타내고, 도 4d는 본 발명의 일 실시 예에서 사용되는 테이블4의 컬럼 목록을 나타낸다.
도 4e는 도 3a의 실시 예에 따라 생성된 심볼 표현을 ANSI 표준 SQL 문장으로 자동 생성한 결과와 자동 생성된 SQL을 이용하여 테이블을 조회한 결과를 나타내며, 도 4f는 도 3b의 실시 예에 따라 생성된 심볼 표현을 ANSI 표준 SQL 문장으로 자동 생성한 결과와 자동 생성된 SQL을 이용하여 테이블을 조회한 결과를 나타내며, 도 4g는 도 3c의 실시 예에 따라 생성된 심볼 표현을 ANSI 표준 SQL 문장으로 자동 생성한 결과와 자동 생성된 SQL을 이용하여 테이블을 조회한 결과를 나타낸다.
도 5는 본 발명의 또 다른 실시 예에 따른 그래픽 유저 인터페이스를 이용한 ANSI 쿼리문 생성 방법의 순서도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되는 실시 예를 참조하면 명확해질 것이다.
그러나, 본 발명은 이하에서 개시되는 실시 예로 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이다.
본 명세서에서 본 실시 예는 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다.
그리고 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
따라서, 몇몇 실시 예에서, 잘 알려진 구성 요소, 잘 알려진 동작 및 잘 알려진 기술들은 본 발명이 모호하게 해석되는 것을 피하기 위하여 구체적으로 설명되지 않는다.
또한, 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭하고, 본 명세서에서 사용된(언급된) 용어들은 실시 예를 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다.
본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함하며, '포함(또는, 구비)한다'로 언급된 구성 요소 및 동작은 하나 이상의 다른 구성요소 및 동작의 존재 또는 추가를 배제하지 않는다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다.
또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 정의되어 있지 않은 한 이상적으로 또는 과도하게 해석되지 않는다.
이하, 첨부된 도면을 참고로 본 발명의 바람직한 실시 예에 대하여 설명한다.
도 1 내지 도 4g를 참고하면, 그래픽 유저 인터페이스를 이용한 ANSI 쿼리문 생성 시스템(100)은 테이블생성부(110), 조인설정부(120), 테이블조인부(130), 쿼리문생성부(150) 및 데이터베이스(160)를 포함하고, 컬럼목록출력부(140)를 더 포함할 수 있다.
테이블생성부(110)는 데이터베이스(160)에서 선택된 제1테이블을 나타내는 제1심볼(1)을 생성하여 화면에 표시하고, 추가 선택된 제2테이블을 나타내는 제2심볼(2)을 생성하여 화면에 표시한다. 사용자는 GUI를 이용하여 원하는 테이블을 선택할 수 있으며, 선택한 테이블을 더블 클릭하거나 드래그&드롭 등의 방법을 이용하여 해당 테이블을 나타내는 심볼을 화면에 생성할 수 있다. 복수 개의 테이블들을 심볼로 표현할 때 사용자의 선택에 따라 테이블을 나타내는 심볼기호 형태를 원형, 삼각형, 사각형, 마름모형, 오각형, 육각형 등의 다양한 형태 중 선택하여 표시할 수 있다. 많은 수의 테이블이 GUI 화면에 심볼로 표현될 경우 심볼의 형태를 다양하게 함으로써 사용자가 용이하게 식별할 수 있다.
조인설정부(120)는 복수의 조인(JOIN) 연관관계 중 선택된 조인 연관관계에 의해 두 개의 테이블간의 조인 연관관계를 설정한다. 복수의 조인 연관관계는 ANSI SQL에서 정의하는 INNER JOIN, LEFT JOIN, RIGHT JOIN, CROSS JOIN을 말한다. 사용자가 두 개의 테이블을 나타내는 심볼(1, 2)을 생성하여 표시한 후 두 개의 테이블을 화살표 등으로 시각적으로 연결하여 표시하기 전에 원하는 조인 연관관계를 선택하게 된다.
테이블조인부(130)는 조인설정부(120)가 설정한 조인 연관관계를 나타내는 심볼에 의해 두 개의 테이블을 시각적으로 연결하여 표시한다.
도 2a 내지 도 2c를 참조하면, 각각 두 개의 테이블을 나타내는 심볼(1, 2)이 INNER JOIN을 나타내는 화살표 형태의 심볼(10), LEFT JOIN을 나타내는 점선 화살표 형태의 심볼(11) 그리고 CROSS JOIN을 나타내는 화살표 형태의 심볼(12)에 의해 연결된 것을 볼 수 있다. 두 개의 테이블을 나타내는 심볼(1, 2)에 표시되어 있는 ‘A’, ‘B’는 해당 테이블의 별명(Alias)을 나타낸다.
도 2a의 실시 예는 사용자가 두 개의 테이블간의 조인 연관관계로서 INNER JOIN을 선택 후 테이블1의 ‘컬럼11’을 나타내는 컬럼 심볼(1-1)과 테이블2의 ‘컬럼21’을 나타내는 컬럼 심볼(2-1)을 화살표 형태의 심볼(10)로 연결한 것이다. 이와 같이 INNER JOIN을 선택 후 조인을 원하는 두 개의 컬럼 심볼(1-1, 2-1)을 연결할 때 두 개의 테이블은 INNER JOIN으로 연결되는 것이다.
도 2b에서도 마찬가지이다. 테이블과 컬럼을 나타내는 심볼은 모두 같으나, 조인 연관관계로서 LEFT JOIN을 선택 후 두 개의 컬럼(11, 21)을 나타내는 심볼(1-1, 2-1) 상호간을 LEFT JOIN을 나타내는 점선 화살표 형태의 심볼(11)로 연결한 것이다. 이와 같이 LEFT JOIN을 선택 후 조인을 원하는 두 개의 컬럼 심볼(1-1, 2-1)을 연결할 때 두 개의 테이블은 LEFT JOIN으로 연결된다.
도 2c는 CROSS JOIN 연관 관계를 나타내는 것으로서, 위와 다르게 테이블을 나타내는 두 개의 심볼(1, 2)간에 직접 화살표(12)로 연결된다. CROSS JOIN은 테이블의 컬럼을 지정할 필요가 없기 때문에 테이블을 나타내는 두 개의 심볼(1, 2)을 직접 CROSS JOIN을 나타내는 화살표 형태의 심볼(12)로 연결한다. 이와 같이 CROSS JOIN을 선택 후 테이블을 나타내는 두 개의 심볼(1, 2)을 연결할 때 두 개의 테이블은 CROSS JOIN으로 연결된다.
구체적으로는, 테이블조인부(130)는 이러한 기능을 수행하기 위해 컬럼생성부(131)와 컬럼/테이블연결부(132)를 포함할 수 있다.
컬럼생성부(131)는 제1테이블에 속하는 복수의 컬럼 중 하나를 선택하면 제1-1심볼(1-1)을 생성하여 제1심볼(1)에 인접하거나 제1심볼(1) 상에 표시하고, 제2테이블에 속하는 복수의 컬럼 중 하나를 선택하면 제2-1심볼(2-1)을 생성하여 제2심볼(2)에 인접하거나 제2심볼(2) 상에 표시한다. 도 2a 내지 도 2c의 실시 예에서는 컬럼을 선택할 때 나타나는 심볼(1-1, 2-1)이 테이블 심볼(1, 2)에 인접한 것을 보여주고 있으나, 반드시 이에 한정되지는 않는다.
컬럼/테이블연결부(132)는 컬럼생성부(131)가 생성한 두 개의 심볼(제1-1심볼(1-1), 제2-1심볼(2-1))을 시각적으로 연결하여 표시하거나, 테이블생성부(110)가 생성한 두 개의 심볼(제1심볼(1), 제2심볼(2))을 연결하여 표시한다. 사용자가 마우스 등으로 클릭함으로써 두 개의 심볼을 연결하여 표시할 수 있다.
컬럼목록출력부(140)는 테이블생성부(110)가 화면에 표시한 제1심볼(1)을 선택 또는 클릭하면 제1테이블에 포함되는 복수의 컬럼을 표시하고, 제2심볼(2)을 선택 또는 클릭하면 제2테이블에 포함되는 복수의 컬럼을 표시한다. 예를 들어, 테이블1을 나타내는 제1심볼(1)을 선택, 더블 클릭 또는 마우스 오른쪽 버튼 클릭 등을 하는 경우 팝업창을 통해 테이블1에 속하는 복수의 컬럼을 표시한다.
도 4a 내지 도 4d를 참조하면, 각 테이블(테이블1~테이블4)에 포함되는 컬럼 명칭과 내용을 보여주고 있다. 사용자가 테이블 심볼(1)을 선택 또는 클릭하면 테이블1에 포함되는 복수의 컬럼인 ‘컬럼11’, ‘컬럼12’를 표시하고, 테이블 심볼(2)을 선택 또는 클릭하면 테이블2에 포함되는 복수의 컬럼인 ‘컬럼21’, ‘컬럼22’를 표시하고, 테이블 심볼(3)을 선택 또는 클릭하면 테이블3에 포함되는 복수의 컬럼인 ‘컬럼31’, ‘컬럼32’를 표시하고, 테이블 심볼(4)을 선택 또는 클릭하면 테이블4에 포함되는 복수의 컬럼인 ‘컬럼41’, ‘컬럼42’를 표시할 것이다.
컬럼/테이블연결부(132)가 테이블에 속하는 컬럼을 나타내는 두 개의 심볼(제1-1심볼(1-1), 제2-1심볼(2-1))을 시각적으로 연결하여 표시할 때 조인설정부(120)가 설정한 조인 연관관계의 종류에 따라 다른 형태로 표시하는 것은 이미 위에서 살펴본 바와 같다.
쿼리문생성부(150)는 제1테이블 명칭과 제2테이블 명칭을 포함하는 SELECT절, 제1테이블 명칭을 포함하는 FROM절과, 제2테이블 명칭과 조인설정부(120)가 설정한 조인 연관관계를 나타내는 단어를 포함하는 JOIN절을 포함하여 쿼리문을 자동으로 생성한다. 조인 연관관계를 나타내는 단어는 “INNER JOIN”, “LEFT JOIN”, “RIGHT JOIN”, “CROSS JOIN” 중 어느 하나를 말하고, 테이블 명칭은 테이블의 별명(Alias)이 포함될 수 있다.
도 3a를 참조하면, 심볼에 의해 테이블 조인 연관관계를 생성 후 이를 쿼리문으로 자동 생성할 때, 쿼리문생성부(150)는 생성된 심볼이 나타내는 테이블의 별명인 ‘A’, ‘B’를 포함하여 SELECT절을 만들고, 시작 테이블(제1테이블)의 명칭을 포함하여 FROM절을 만들고, 종료 테이블(제2테이블)의 명칭과 조인설정부(120)가 설정한 조인 연관관계를 나타내는 단어인 ‘INNER JOIN’을 포함하는 JOIN절을 포함하여 ANSI SQL 쿼리문 문법에 맞도록 자동으로 생성한다.
도 3a를 참조하면, 쿼리문생성부(150)는 JOIN절 다음에 제1-1심볼(1-1)이 나타내는 컬럼 명칭인 ‘컬럼11’과 제2-1심볼(2-1)이 나타내는 컬럼 명칭인 ‘컬럼21’을 포함하는 ON조건절을 더 포함하여 쿼리문을 자동으로 생성한다. 컬럼을 나타내는 심볼(1-1, 2-1) 상호간을 연결할 때에는 테이블의 해당 컬럼 명칭을 포함하는 ON조건절을 추가 생성함으로써 쿼리문을 완성하게 된다. 이때 ANSI SQL 문법 표준에 따라 두 개의 컬럼 명칭 사이에는 ‘=’ 를 포함하여 쿼리문을 생성한다.
쿼리문생성부(150)는 컬럼/테이블연결부(132)가 시각적으로 연결하여 표시한 두 개의 심볼(제1-1심볼(1-1), 제2-1심볼(2-1)) 중 시작점에 해당하는 심볼이 위치하는 테이블 명칭을 포함하는 FROM절과, 끝점에 해당하는 심볼이 위치하는 테이블의 명칭과 조인설정부(120)가 설정한 조인 연관관계를 나타내는 단어를 포함하는 JOIN절과, 두 개의 심볼(제1-1심볼(1-1), 제2-1심볼(2-1))이 나타내는 각각의 컬럼 명칭을 포함하는 ON조건절을 포함하여 쿼리문을 자동으로 생성할 수 있다.
도 3a를 참조하면, 시작점에 해당하는 제1-1심볼(1-1)이 위치하는 테이블 명칭인 ‘테이블1 A’를 포함하는 FROM절을 생성하고, 끝점에 해당하는 제2-1심볼(2-1)이 위치하는 테이블 명칭인 ‘테이블2 B’와 조인설정부(120)가 설정한 조인 연관관계를 나타내는 단어인 ‘INNER JOIN’을 포함하여 JOIN절을 생성하고, 두 개의 심볼(1-1, 2-1)이 각각 나타내는 컬럼 명칭인 ‘컬럼11’과 ‘컬럼21’을 포함하고, 이 두 개의 컬럼 명칭을 ‘=’ 기호로 연결하는 ON조건절을 포함하여 쿼리문을 자동으로 생성할 수 있다. 이때 ‘컬럼11’ 앞에는 해당 컬럼이 속하는 테이블 식별자 ‘A’를 추가하고, ‘컬럼21’ 앞에는 해당 컬럼이 속하는 테이블 식별자 ‘B’를 추가하여 생성할 것이다.
컬럼생성부(131)는 제1테이블에 속하는 복수의 컬럼 중 또 다른 하나를 선택하면 제1-2심볼(1-2)을 생성하여 제1심볼(1)에 인접하거나 제1심볼(1) 상에 표시하고, 제2테이블에 속하는 복수의 컬럼 중 또 다른 하나를 선택하면 제2-2심볼(2-2)을 생성하여 제2심볼(2)에 인접하거나 제2심볼(2) 상에 표시하고, 컬럼/테이블연결부(132)는 컬럼생성부(131)가 생성한 추가적인 두 개의 심볼(제1-2심볼, 제2-2심볼)을 시각적으로 연결하여 표시할 수 있다.
도 3c를 참조하면, 위에서 살펴본 실시 예들과는 달리 두 개의 테이블간에 INNER JOIN이 두 개가 설정된 것을 보여준다. 제1-1심볼(1-1)은 테이블1에 속하는 ‘컬럼11’을 나타내고, 제1-2심볼(1-2)은 테이블1에 속하는 ‘컬럼12’를 나타내며, 제2-1심볼(2-1)은 테이블2에 속하는 ‘컬럼21’을 나타내고, 제2-2심볼(2-2)은 테이블2에 속하는 ‘컬럼22’를 나타낸다. 테이블에 속하는 복수의 컬럼 중 추가 컬럼을 선택할 때마다 해당 테이블을 나타내는 심볼에 인접하거나 심볼 상에 표시가 된다.
쿼리문생성부(150)는 JOIN절 다음에 제1-1심볼(1-1)과 제2-1심볼(2-1) 각각이 나타내는 컬럼 명칭인 ‘컬럼11’과 ‘컬럼21’에 의한 조건문과 제1-2심볼(1-2)과 제2-2심볼(2-2) 각각이 나타내는 컬럼 명칭인 ‘컬럼12’와 ‘컬럼22’에 의한 조건문을 AND조건으로 연결하는 ON조건절을 더 포함하여 쿼리문을 자동으로 생성한다. 이때 ‘컬럼11’과 ‘컬럼12’ 앞에는 해당 컬럼이 속하는 테이블 식별자 ‘A’를 추가하고, ‘컬럼21’과 ‘컬럼22’ 앞에는 해당 컬럼이 속하는 테이블 식별자 ‘B’를 추가하여 생성할 것이다. 서로 연결되는 두 개의 컬럼 사이에는 ‘=’ 기호로 연결하여 ON조건절을 생성하는 것은 상기에서 살펴본 바와 같다.
도 3b를 참조하면, 서로 다른 테이블을 나타내는 네 개의 심볼(1~4)가 표시되고, 각 테이블간에 조인 연관관계가 설정된 것을 볼 수 있다.
테이블1과 테이블2는 INNER JOIN으로 연결되고, 테이블2와 테이블3은 LEFT JOIN으로 연결되며, 테이블1과 테이블4는 CROSS JOIN으로 연결된 것이다.
테이블생성부(110)가 데이터베이스(160)에서 선택된 제3테이블을 나타내는 제3심볼(3)을 추가 생성하여 화면에 표시하면, 조인설정부(120)는 선택된 조인 연관관계에 의해 제3테이블과 제1테이블 또는 제3테이블과 제2테이블간의 조인 연관관계를 추가 설정하고, 테이블조인부(130)는 조인설정부(120)가 설정한 조인 연관관계를 나타내는 심볼에 의해 제3테이블과 제1테이블 또는 제3테이블과 제2테이블을 시각적으로 연결하여 표시하며, 쿼리문생성부(150)는 JOIN절 다음에 제3테이블 명칭과 조인설정부(120)가 추가 설정한 조인 연관관계를 나타내는 단어를 포함하는 또 다른 JOIN절을 포함하여 쿼리문을 자동으로 생성한다.
도 3b는 테이블3과 테이블2간에 LEFT JOIN 연관관계가 추가로 설정되고, 테이블4와 테이블1간에 CROSS JOIN 연관관계가 추가로 설정된 것을 보여준다. 이와 같이 테이블을 나타내는 심볼을 추가 생성하여 각 테이블 간의 연관관계를 심볼로 설정할 수가 있다.
도 3b의 실시 예에 의하면, 쿼리문생성부(150)는 네 개의 테이블 명칭을 포함하는 SELECT절을 생성하고, 시작 테이블(테이블1)의 명칭을 포함하는 FROM절을 생성하고, 두 번째 테이블2의 명칭과 조인 연관관계를 나타내는 단어인 ‘INNER JOIN’을 포함하는 JOIN절을 생성하고, 두 개의 심볼(1-1, 2-1) 각각이 나타내는 컬럼 명칭인 ‘컬럼11’과 ‘컬럼21’을 포함하고, 이 두 개의 컬럼 명칭을 ‘=’ 기호로 연결하는 ON조건절을 생성하고, 세 번째 테이블3의 명칭과 세 번째 테이블3의 조인 연관관계를 나타내는 단어인 ‘LEFT JOIN’을 포함하는 JOIN절을 생성하고, 두 개의 심볼(2-2, 3-2) 각각이 나타내는 컬럼 명칭인 ‘컬럼22’와 ‘컬럼32’를 포함하고, 이 두 개의 컬럼 명칭을 ‘=’ 기호로 연결하는 ON조건절을 생성하며, 마지막 테이블4의 명칭과 조인 연관관계를 나타내는 단어인 ‘CROSS JOIN’을 포함하는 JOIN절을 생성함으로써 쿼리문의 생성을 완료하게 된다. 테이블1~테이블3과 달리 테이블4는 컬럼을 나타내는 심볼이 없기 때문에 ON조건절을 생성하지 않으며, 모든 테이블을 순환하며 JOIN절을 생성함으로써 쿼리문 생성 작업을 완료하게 된다.
도 1 내지 5를 참고하여, 본 발명의 또 다른 실시 예인 그래픽 유저 인터페이스를 이용한 ANSI 쿼리문 생성 방법을 설명한다. 이하에서는 테이블1~테이블4의 네 개인 경우를 예로 설명한다(도 3b 참고).
먼저, 데이터베이스(160)에서 선택된 서로 다른 테이블을 나타내는 복수의 테이블 심볼(1, 2, 3, 4)을 생성하여 화면에 표시하는 테이블생성단계를 수행한다(S510).
테이블생성단계(S510) 이후 화면에 표시한 테이블 심볼(1, 2, 3, 4)을 선택 또는 클릭하면 해당 테이블에 포함되는 복수의 컬럼을 표시하는 컬럼목록출력단계를 수행한다(S520).
도 4a 내지 도 4d를 참조하면, 각 테이블에 포함되는 컬럼 명칭과 내용을 보여주고 있다. 사용자가 테이블 심볼(1)을 선택 또는 클릭하면 테이블1에 포함되는 복수의 컬럼인 ‘컬럼11’, ‘컬럼12’를 표시하고, 테이블 심볼(2)을 선택 또는 클릭하면 테이블2에 포함되는 복수의 컬럼인 ‘컬럼21’, ‘컬럼22’를 표시하고, 테이블 심볼(3)을 선택 또는 클릭하면 테이블3에 포함되는 복수의 컬럼인 ‘컬럼31’, ‘컬럼32’를 표시하고, 테이블 심볼(4)을 선택 또는 클릭하면 테이블4에 포함되는 복수의 컬럼인 ‘컬럼41’, ‘컬럼42’를 표시할 것이다.
다음으로, INNER JOIN, LEFT JOIN, RIGHT JOIN, CROSS JOIN 중 선택된 조인(JOIN) 연관관계에 의해 테이블간의 조인 연관관계를 설정하는 조인설정단계를 수행한다(S530).
다음으로, 조인 연관관계를 나타내는 심볼(10, 11, 12)에 의해 서로 다른 테이블을 시각적으로 연결하여 표시하는 테이블조인단계를 수행한다(S540).
이때 사용자는 네 개의 테이블(테이블1~테이블4)을 모두 심볼(1, 2, 3, 4)로 일단 생성한 다음 각 테이블 간의 조인 연관관계 설정 및 각 테이블을 시각적으로 연결하여 표시하는 테이블조인을 수행하거나, 두 개의 테이블(테이블1, 테이블2)을 심볼(1, 2)로 생성 후 조인 연관관계 설정 및 두 개의 테이블을 시각적으로 연결하여 표시하는 테이블조인을 수행 후 세 번째 테이블(테이블3)을 심볼(3)로 생성하고 세 번째 테이블에 대한 조인 연관관계 설정 및 테이블을 시각적으로 연결하여 표시하는 테이블 조인을 수행하고, 마지막으로 네 번째 테이블(테이블4)을 심볼(4)로 생성하고 네 번째 테이블에 대한 조인 연관관계 설정 및 테이블을 시각적으로 연결하여 표시하는 테이블 조인을 수행할 수도 있다.
테이블조인단계(S540)는 각 테이블(테이블1~테이블4)에 속하는 복수의 컬럼 중 하나를 선택하면 컬럼 심볼(1-1, 2-1, 2-2, 3-2)을 생성하여 테이블 심볼(1, 2, 3)에 인접하거나 테이블 심볼(1, 2, 3) 상에 표시하고, 생성된 두 개의 컬럼 심볼을 시각적으로 연결하여 표시하거나, 테이블생성단계(S540)에서 생성한 서로 다른 테이블 심볼을 직접 연결하여 표시한다.
두 개의 컬럼 심볼을 시각적으로 연결하여 표시하는 경우는 컬럼 심볼(1-1)과 컬럼 심볼(2-1)을 INNER JOIN으로 연결하거나, 컬럼 심볼(2-2)과 컬럼 심볼(3-2)을 연결하는 LEFT JOIN으로 연결하는 경우를 말하고, 서로 다른 테이블 심볼(1, 4)을 직접 연결하는 경우는 CROSS JOIN으로 연결하는 경우를 말한다.
구체적으로, 테이블조인단계(S540)는 출력된 복수의 컬럼 중 하나를 선택하면 컬럼 심볼(1-1, 2-1, 2-2, 3-2)을 생성하여 테이블 심볼(1, 2, 3)에 인접하거나 테이블 심볼(1, 2, 3) 상에 표시한다.
테이블조인단계(S540)는 생성된 두 개의 컬럼 심볼을 시각적으로 연결하여 표시할 때 조인설정단계(S530)에서 설정한 조인 연관관계의 종류에 따라 화살표를 다른 형태로 구분하여 표시할 수 있다. INNER JOIN과 LEFT JOIN을 시각적으로 구분하기 위한 것으로서 상기에서 설명하였으므로 자세한 설명은 생략한다.
테이블조인단계(S540)는 각 테이블에 속하는 복수의 컬럼 중 또 다른 하나를 선택하면 또 다른 컬럼 심볼을 생성하여 해당 테이블 심볼에 인접하거나 해당 테이블 심볼 상에 표시하고, 추가적으로 생성된 두 개의 컬럼 심볼을 시각적으로 연결하여 표시한다. 두 개의 INNER JOIN으로 연결되는 경우를 말하며, 도 3c를 참조하여 상기에서 설명하였으므로 자세한 설명은 생략한다.
마지막으로, 화면에 표시된 복수의 테이블 명칭을 포함하는 SELECT절, 최초로 선택된 테이블 명칭을 포함하는 FROM절, 최초로 선택된 테이블에 연결된 테이블 명칭과 조인설정단계(S530)에서 해당 테이블간에 설정한 조인 연관관계를 나타내는 단어를 포함하는 JOIN절을 포함하여 쿼리문을 자동으로 생성하며, 테이블조인단계(S540)에서 표시하는 테이블간 추가적인 연결 개수만큼 추가적으로 선택된 테이블 명칭과 조인설정단계(S530)에서 해당 테이블간에 설정한 조인 연관관계를 나타내는 단어를 포함하는 JOIN절을 반복하여 구성하는 쿼리문생성단계를 수행한다(S550).
쿼리문생성단계(S550)는 JOIN절 다음에 상기 생성된 두 개의 컬럼 심볼이 나타내는 컬럼 명칭을 포함하는 ON조건절을 더 포함하여 쿼리문을 자동으로 생성한다.
쿼리문생성단계(S550)는 JOIN절 다음에 먼저 연결된 두 개의 컬럼 심볼 각각이 나타내는 컬럼 명칭에 의한 조건문과 추가적으로 연결된 또 다른 두 개의 컬럼 심볼 각각이 나타내는 컬럼 명칭에 의한 조건문을 AND조건으로 연결하는 ON조건절을 더 포함하여 쿼리문을 자동으로 생성할 수 있다.
쿼리문을 자동으로 생성하는 구체적인 방법은 상기에서 도2a 내지 도 3c를 참조하여 설명하였으므로, 자세한 설명은 생략한다.
이상과 같이 본 발명은 사용자가 GUI(Graphical User Interface)에서 테이블간 조인 연관관계를 적용하고자 하는 테이블을 선택하면 해당 테이블들이 심볼로 표시되고, 테이블간에 원하는 조인 연관관계를 설정 후 테이블끼리 또는 테이블에 속하는 컬럼끼리 심볼로 연결하기만 하면 테이블간 조인 연관관계를 간편하게 완성할 수 있고, 심볼에 의해 표현된 테이블간의 조인 연관관계를 분석하여 이에 해당하는 SQL 쿼리문을 자동으로 생성할 수 있다.
그리고, 본 발명의 기본적인 기술적 사상의 범주 내에서 당해 업계 통상의 지식을 가진 자에게 있어서는 다른 많은 변형 및 응용 또한 가능함은 물론이다.
1...테이블1을 나타내는 심볼
2...테이블2를 나타내는 심볼
3...테이블3을 나타내는 심볼
4...테이블4를 나타내는 심볼
1-1...테이블1에 속하는 컬럼11을 나타내는 심볼
1-2...테이블1에 속하는 컬럼12를 나타내는 심볼
2-1...테이블2에 속하는 컬럼21을 나타내는 심볼
2-2...테이블2에 속하는 컬럼22를 나타내는 심볼
3-2...테이블3에 속하는 컬럼32를 나타내는 심볼
10...INNER JOIN을 나타내는 심볼
11...LEFT JOIN을 나타내는 심볼
12...CROSS JOIN을 나타내는 심볼
100...그래픽 유저 인터페이스를 이용한 ANSI 쿼리문 생성 시스템
110...테이블생성부
120...조인설정부
130...테이블조인부
131...컬럼생성부
132...컬럼/테이블연결부
140...컬럼목록출력부
150...쿼리문생성부
160...데이터베이스
2...테이블2를 나타내는 심볼
3...테이블3을 나타내는 심볼
4...테이블4를 나타내는 심볼
1-1...테이블1에 속하는 컬럼11을 나타내는 심볼
1-2...테이블1에 속하는 컬럼12를 나타내는 심볼
2-1...테이블2에 속하는 컬럼21을 나타내는 심볼
2-2...테이블2에 속하는 컬럼22를 나타내는 심볼
3-2...테이블3에 속하는 컬럼32를 나타내는 심볼
10...INNER JOIN을 나타내는 심볼
11...LEFT JOIN을 나타내는 심볼
12...CROSS JOIN을 나타내는 심볼
100...그래픽 유저 인터페이스를 이용한 ANSI 쿼리문 생성 시스템
110...테이블생성부
120...조인설정부
130...테이블조인부
131...컬럼생성부
132...컬럼/테이블연결부
140...컬럼목록출력부
150...쿼리문생성부
160...데이터베이스
Claims (17)
- 두 개 이상의 테이블간의 조인 연관관계를 심볼(symbol)을 이용하여 표현하고, 표현된 심볼이 나타내는 쿼리문을 ANSI 표준 SQL 기준으로 자동 생성하는 그래픽 유저 인터페이스를 이용한 ANSI 쿼리문 생성 시스템으로서,
데이터베이스에서 선택된 제1테이블을 나타내는 제1심볼을 생성하여 화면에 표시하고, 추가 선택된 제2테이블을 나타내는 제2심볼을 생성하여 화면에 표시하는 테이블생성부 - 선택한 테이블을 더블 클릭 또는 드래그&드롭 시 제1테이블과 제2테이블을 나타내는 심볼 각각을 화면에 생성하며, 각 심볼은 사용자의 선택에 따라 원형, 삼각형, 사각형, 마름모형, 오각형, 육각형 중 하나로 표시됨 -;
복수의 조인(JOIN) 연관관계 중 선택된 조인 연관관계에 의해 상기 두 개의 테이블간의 조인 연관관계를 설정하는 조인설정부 - 상기 제1심볼 및 제2심볼을 생성하여 표시한 후 두 개의 테이블을 화살표로 연결하여 표시하기 전에 조인 연관관계를 선택함 -;
상기 조인설정부가 설정한 조인 연관관계를 나타내는 화살표 형태의 심볼에 의해 상기 제1테이블을 나타내는 제1심볼과 제2테이블을 나타내는 제2심볼을 시각적으로 연결하여 표시하는 테이블조인부; 및
상기 제1테이블 명칭과 제2테이블 명칭을 포함하는 SELECT절, 상기 제1테이블 명칭을 포함하는 FROM절과, 상기 제2테이블 명칭과 상기 조인설정부가 설정한 조인 연관관계를 나타내는 단어를 포함하는 JOIN절을 포함하여 쿼리문을 자동으로 생성하는 쿼리문생성부를 포함하되,
상기 테이블조인부는
상기 제1테이블에 속하는 복수의 컬럼 중 하나를 선택하면 제1심볼보다 작은 제1-1심볼을 생성하여 제1심볼에 인접하거나 제1심볼 상에 표시하고, 상기 제2테이블에 속하는 복수의 컬럼 중 하나를 선택하면 제2심볼보다 작은 제2-1심볼을 생성하여 제2심볼에 인접하거나 제2심볼 상에 표시하는 컬럼생성부; 및
상기 컬럼생성부가 생성한 두 개의 심볼(제1-1심볼, 제2-1심볼)을 화살표로 연결하여 INNER JOIN, LEFT JOIN, RIGHT JOIN 중 어느 하나를 표시하거나, 상기 테이블생성부가 생성한 두 개의 심볼(제1심볼, 제2심볼)을 직접 화살표로 연결하여 CROSS JOIN을 표시하는 컬럼/테이블연결부를 포함하는 것을 특징으로 하는 그래픽 유저 인터페이스를 이용한 ANSI 쿼리문 생성 시스템.
- 삭제
- 청구항 1에 있어서,
상기 테이블생성부가 화면에 표시한 제1심볼을 선택 또는 클릭하면 제1테이블에 포함되는 복수의 컬럼을 표시하고, 제2심볼을 선택 또는 클릭하면 제2테이블에 포함되는 복수의 컬럼을 표시하는 컬럼목록출력부를 더 포함하는 것을 특징으로 하는 그래픽 유저 인터페이스를 이용한 ANSI 쿼리문 생성 시스템.
- 청구항 1에 있어서,
상기 쿼리문생성부는 상기 JOIN절 다음에 상기 제1-1심볼이 나타내는 컬럼 명칭과 제2-1심볼이 나타내는 컬럼 명칭을 포함하는 ON조건절을 더 포함하여 쿼리문을 자동으로 생성하는 것을 특징으로 하는 그래픽 유저 인터페이스를 이용한 ANSI 쿼리문 생성 시스템.
- 청구항 1에 있어서,
상기 쿼리문생성부는 상기 컬럼/테이블연결부가 시각적으로 연결하여 표시한 두 개의 심볼(제1-1심볼, 제2-1심볼) 중 시작점에 해당하는 심볼이 위치하는 테이블 명칭을 포함하는 FROM절과, 끝점에 해당하는 심볼이 위치하는 테이블의 명칭과 상기 조인설정부가 설정한 조인 연관관계를 나타내는 단어를 포함하는 JOIN절과, 두 개의 심볼(제1-1심볼, 제2-1심볼)이 나타내는 각각의 컬럼 명칭을 포함하는 ON조건절을 포함하여 쿼리문을 자동으로 생성하는 것을 특징으로 하는 그래픽 유저 인터페이스를 이용한 ANSI 쿼리문 생성 시스템.
- 청구항 1에 있어서,
상기 컬럼/테이블연결부가 두 개의 심볼(제1-1심볼, 제2-1심볼)을 시각적으로 연결하여 표시할 때 상기 조인설정부가 설정한 조인 연관관계의 종류에 따라 다른 형태로 표시하는 것을 특징으로 하는 그래픽 유저 인터페이스를 이용한 ANSI 쿼리문 생성 시스템.
- 청구항 1에 있어서,
상기 컬럼생성부는 제1테이블에 속하는 복수의 컬럼 중 또 다른 하나를 선택하면 제1-2심볼을 생성하여 제1심볼에 인접하거나 제1심볼 상에 표시하고, 상기 제2테이블에 속하는 복수의 컬럼 중 또 다른 하나를 선택하면 제2-2심볼을 생성하여 제2심볼에 인접하거나 제2심볼 상에 표시하고,
상기 컬럼/테이블연결부는 상기 컬럼생성부가 생성한 추가적인 두 개의 심볼(제1-2심볼, 제2-2심볼)을 시각적으로 연결하여 표시하는 것을 특징으로 하는 그래픽 유저 인터페이스를 이용한 ANSI 쿼리문 생성 시스템.
- 청구항 7에 있어서,
상기 쿼리문생성부는 상기 JOIN절 다음에 제1-1심볼과 제2-1심볼 각각이 나타내는 컬럼 명칭에 의한 조건문과 제1-2심볼과 제2-2심볼 각각이 나타내는 컬럼 명칭에 의한 조건문을 AND조건으로 연결하는 ON조건절을 더 포함하여 쿼리문을 자동으로 생성하는 것을 특징으로 하는 그래픽 유저 인터페이스를 이용한 ANSI 쿼리문 생성 시스템.
- 청구항 1에 있어서,
상기 테이블생성부가 데이터베이스에서 선택된 제3테이블을 나타내는 제3심볼을 추가 생성하여 화면에 표시하면,
상기 조인설정부는 선택된 조인 연관관계에 의해 제3테이블과 제1테이블 또는 제3테이블과 제2테이블간의 조인 연관관계를 추가 설정하고,
상기 테이블조인부는 조인설정부가 설정한 조인 연관관계를 나타내는 심볼에 의해 상기 제3테이블과 제1테이블 또는 제3테이블과 제2테이블을 시각적으로 연결하여 표시하며,
상기 쿼리문생성부는 상기 JOIN절 다음에 상기 제3테이블 명칭과 상기 조인설정부가 추가 설정한 조인 연관관계를 나타내는 단어를 포함하는 또 다른 JOIN절을 포함하여 쿼리문을 자동으로 생성하는 것을 특징으로 하는 그래픽 유저 인터페이스를 이용한 ANSI 쿼리문 생성 시스템.
- 청구항 1에 있어서,
상기 조인 연관관계를 나타내는 단어는 INNER JOIN, LEFT JOIN, RIGHT JOIN, CROSS JOIN 중 어느 하나인 것을 특징으로 하는 그래픽 유저 인터페이스를 이용한 ANSI 쿼리문 생성 시스템.
- 두 개 이상의 테이블간의 조인 연관관계를 심볼(symbol)을 이용하여 표현하고, 표현된 심볼이 나타내는 쿼리문을 ANSI 표준 SQL 기준으로 자동 생성하는 그래픽 유저 인터페이스를 이용한 ANSI 쿼리문 생성 방법으로서,
데이터베이스에서 선택된 제1테이블을 나타내는 제1심볼을 생성하여 화면에 표시하고, 추가 선택된 제2테이블을 나타내는 제2심볼을 생성하여 화면에 표시하는 테이블생성단계 - 선택한 테이블을 더블 클릭 또는 드래그&드롭 시 제1테이블과 제2테이블을 나타내는 심볼 각각을 화면에 생성하며, 각 심볼은 사용자의 선택에 따라 원형, 삼각형, 사각형, 마름모형, 오각형, 육각형 중 하나로 표시됨 -;
INNER JOIN, LEFT JOIN, RIGHT JOIN, CROSS JOIN 중 선택된 조인(JOIN) 연관관계에 의해 테이블간의 조인 연관관계를 설정하는 조인설정단계 - 상기 제1심볼 및 제2심볼을 생성하여 표시한 후 두 개의 테이블을 화살표로 연결하여 표시하기 전에 조인 연관관계를 선택함 -;
상기 조인 연관관계를 나타내는 화살표 형태의 심볼에 의해 상기 제1테이블을 나타내는 제1심볼과 제2테이블을 나타내는 제2심볼을 시각적으로 연결하여 표시하는 테이블조인단계; 및
상기 화면에 표시된 복수의 테이블 명칭을 포함하는 SELECT절, 최초로 선택된 테이블 명칭을 포함하는 FROM절, 최초로 선택된 테이블에 연결된 테이블 명칭과 상기 조인설정단계에서 해당 테이블간에 설정한 조인 연관관계를 나타내는 단어를 포함하는 JOIN절을 포함하여 쿼리문을 자동으로 생성하며, 상기 테이블조인단계에서 표시하는 테이블간 추가적인 연결 개수만큼 추가적으로 선택된 테이블 명칭과 상기 조인설정단계에서 해당 테이블간에 설정한 조인 연관관계를 나타내는 단어를 포함하는 JOIN절을 반복하여 구성하는 쿼리문생성단계를 포함하되,
상기 테이블조인단계는
상기 제1테이블에 속하는 복수의 컬럼 중 하나를 선택하면 제1심볼보다 작은 제1-1심볼을 생성하여 제1심볼에 인접하거나 제1심볼 상에 표시하고, 상기 제2테이블에 속하는 복수의 컬럼 중 하나를 선택하면 제2심볼보다 작은 제2-1심볼을 생성하여 제2심볼에 인접하거나 제2심볼 상에 표시하며, 제1-1심볼과 제2-1심볼을 화살표로 연결하여 INNER JOIN, LEFT JOIN, RIGHT JOIN 중 어느 하나를 표시하거나, 상기 테이블생성단계에서 생성한 제1심볼과 제2심볼을 직접 화살표로 연결하여 CROSS JOIN을 표시하는 것을 특징으로 하는 그래픽 유저 인터페이스를 이용한 ANSI 쿼리문 생성 방법.
- 삭제
- 청구항 11에 있어서,
상기 테이블생성단계 이후 화면에 표시한 테이블 심볼을 선택 또는 클릭하면 해당 테이블에 포함되는 복수의 컬럼을 표시하는 컬럼목록출력단계를 더 포함하고,
상기 테이블조인단계는 출력된 복수의 컬럼 중 하나를 선택하면 컬럼 심볼을 생성하여 상기 테이블 심볼에 인접하거나 테이블 심볼 상에 표시하는 것을 특징으로 하는 그래픽 유저 인터페이스를 이용한 ANSI 쿼리문 생성 방법.
- 청구항 11에 있어서,
상기 테이블조인단계는 생성된 두 개의 컬럼 심볼을 시각적으로 연결하여 표시할 때 상기 조인설정단계에서 설정한 조인 연관관계의 종류에 따라 다른 형태로 표시하는 것을 특징으로 하는 그래픽 유저 인터페이스를 이용한 ANSI 쿼리문 생성 방법.
- 청구항 11에 있어서,
상기 테이블조인단계는 각 테이블에 속하는 복수의 컬럼 중 또 다른 하나를 선택하면 또 다른 컬럼 심볼을 생성하여 해당 테이블 심볼에 인접하거나 해당 테이블 심볼 상에 표시하고, 추가적으로 생성된 두 개의 컬럼 심볼을 시각적으로 연결하여 표시하는 것을 특징으로 하는 그래픽 유저 인터페이스를 이용한 ANSI 쿼리문 생성 방법.
- 청구항 11에 있어서,
상기 쿼리문생성단계는 상기 JOIN절 다음에 상기 생성된 두 개의 컬럼 심볼이 나타내는 컬럼 명칭을 포함하는 ON조건절을 더 포함하여 쿼리문을 자동으로 생성하는 것을 특징으로 하는 그래픽 유저 인터페이스를 이용한 ANSI 쿼리문 생성 방법.
- 청구항 16에 있어서,
상기 쿼리문생성단계는 상기 JOIN절 다음에 먼저 연결된 두 개의 컬럼 심볼 각각이 나타내는 컬럼 명칭에 의한 조건문과 추가적으로 연결된 또 다른 두 개의 컬럼 심볼 각각이 나타내는 컬럼 명칭에 의한 조건문을 AND조건으로 연결하는 ON조건절을 더 포함하여 쿼리문을 자동으로 생성하는 것을 특징으로 하는 그래픽 유저 인터페이스를 이용한 ANSI 쿼리문 생성 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160066236A KR101806449B1 (ko) | 2016-05-30 | 2016-05-30 | 그래픽 유저 인터페이스를 이용한 ansi 쿼리문 생성 시스템 및 그 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160066236A KR101806449B1 (ko) | 2016-05-30 | 2016-05-30 | 그래픽 유저 인터페이스를 이용한 ansi 쿼리문 생성 시스템 및 그 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101806449B1 true KR101806449B1 (ko) | 2017-12-07 |
Family
ID=60920425
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160066236A KR101806449B1 (ko) | 2016-05-30 | 2016-05-30 | 그래픽 유저 인터페이스를 이용한 ansi 쿼리문 생성 시스템 및 그 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101806449B1 (ko) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190087841A (ko) * | 2018-01-17 | 2019-07-25 | (주)비아이매트릭스 | 그리드 인터페이스 기반 데이터 입출력 시스템 |
KR20200104033A (ko) * | 2019-02-26 | 2020-09-03 | 주식회사퍼즐시스템즈 | 데이터베이스에서 조회된 대용량 데이터를 컬럼 별 바이너리 파일로 저장하는 시스템 |
KR20200104035A (ko) * | 2019-02-26 | 2020-09-03 | 주식회사퍼즐시스템즈 | 컬럼 별 바이너리 파일 저장 구조를 이용하여 대용량 데이터를 메모리 용량 제약없이 차트로 표시하는 시스템 |
KR102230729B1 (ko) * | 2020-08-31 | 2021-03-23 | (주)비아이매트릭스 | 템플릿 기반 엑셀 문서 온라인 작업 시스템 |
KR20240002418A (ko) | 2022-06-29 | 2024-01-05 | 주식회사 파워테스크 | 데이터 카드 생성 방법 및 시스템 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090024940A1 (en) | 2007-07-18 | 2009-01-22 | Sas Institute Inc. | Systems And Methods For Generating A Database Query Using A Graphical User Interface |
JP2011059845A (ja) | 2009-09-08 | 2011-03-24 | Nec Corp | データベース操作装置、データベース操作方法、及びプログラム |
JP2013077095A (ja) | 2011-09-29 | 2013-04-25 | Toshiba Corp | Sql作成装置、sql作成方法、及びsql作成プログラム |
-
2016
- 2016-05-30 KR KR1020160066236A patent/KR101806449B1/ko active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090024940A1 (en) | 2007-07-18 | 2009-01-22 | Sas Institute Inc. | Systems And Methods For Generating A Database Query Using A Graphical User Interface |
JP2011059845A (ja) | 2009-09-08 | 2011-03-24 | Nec Corp | データベース操作装置、データベース操作方法、及びプログラム |
JP2013077095A (ja) | 2011-09-29 | 2013-04-25 | Toshiba Corp | Sql作成装置、sql作成方法、及びsql作成プログラム |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190087841A (ko) * | 2018-01-17 | 2019-07-25 | (주)비아이매트릭스 | 그리드 인터페이스 기반 데이터 입출력 시스템 |
KR102034679B1 (ko) * | 2018-01-17 | 2019-10-23 | (주)비아이매트릭스 | 그리드 인터페이스 기반 데이터 입출력 시스템 |
KR20200104033A (ko) * | 2019-02-26 | 2020-09-03 | 주식회사퍼즐시스템즈 | 데이터베이스에서 조회된 대용량 데이터를 컬럼 별 바이너리 파일로 저장하는 시스템 |
KR20200104035A (ko) * | 2019-02-26 | 2020-09-03 | 주식회사퍼즐시스템즈 | 컬럼 별 바이너리 파일 저장 구조를 이용하여 대용량 데이터를 메모리 용량 제약없이 차트로 표시하는 시스템 |
KR102171430B1 (ko) | 2019-02-26 | 2020-10-29 | 주식회사 퍼즐시스템즈 | 데이터베이스에서 조회된 대용량 데이터를 컬럼 별 바이너리 파일로 저장하는 시스템 |
KR102177792B1 (ko) | 2019-02-26 | 2020-11-11 | 주식회사 퍼즐시스템즈 | 컬럼 별 바이너리 파일 저장 구조를 이용하여 대용량 데이터를 메모리 용량 제약없이 차트로 표시하는 시스템 |
KR102230729B1 (ko) * | 2020-08-31 | 2021-03-23 | (주)비아이매트릭스 | 템플릿 기반 엑셀 문서 온라인 작업 시스템 |
KR20240002418A (ko) | 2022-06-29 | 2024-01-05 | 주식회사 파워테스크 | 데이터 카드 생성 방법 및 시스템 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101806449B1 (ko) | 그래픽 유저 인터페이스를 이용한 ansi 쿼리문 생성 시스템 및 그 방법 | |
US20180232111A1 (en) | Resequencing actionable task structures for transforming data | |
US8776023B2 (en) | Software testing | |
US9754010B2 (en) | Generation of cube metadata and query statement based on an enhanced star schema | |
Machidon et al. | CulturalERICA: A conversational agent improving the exploration of European cultural heritage | |
US9792267B2 (en) | Simplifying identification of potential non-visibility of user interface components when responsive web pages are rendered by disparate devices | |
US20190180337A1 (en) | Requirement-specific configuration of user interface forms | |
US8701086B2 (en) | Simplifying analysis of software code used in software systems | |
US8078982B2 (en) | Automatic creation of data relationships | |
US11275485B2 (en) | Data processing pipeline engine | |
US7647558B2 (en) | User interface for presenting object representations | |
CN111475534B (zh) | 一种数据查询方法及相关设备 | |
US10176218B2 (en) | OData custom query composer | |
US20130283233A1 (en) | Multi-engine executable data-flow editor and translator | |
US20170322978A1 (en) | Cross-model filtering | |
US20030212986A1 (en) | Testing environment for database server side logic | |
US20200349225A1 (en) | Graphical User Interface Providing Priority-Based Markup of Documents | |
CN113792067B (zh) | 一种基于递归算法的sql自动生成系统与方法 | |
CN115203162A (zh) | 一种所见即所得图数据构建方法 | |
US20080201652A1 (en) | Techniques for viewing and managing work items and their relationships | |
JP2019159706A (ja) | カタログファイル作成支援装置、カタログファイル作成支援方法、および、カタログファイル作成支援プログラム | |
US9183231B2 (en) | Interactive table to present multi-level relationships between data items | |
Szekely et al. | T2WML: A Cell-Based Language to Map Tables into Wikidata Records. | |
RĂDESCU et al. | CREATING THE INTERFACE OF A LEARNING SYSTEM USING ADVANCED TECHNOLOGIES. | |
Jeyaraj et al. | Cognitive Visual-learning Environment for PostgreSQL |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GRNT | Written decision to grant |