KR101900811B1 - Method and computer program for designing a query - Google Patents

Method and computer program for designing a query Download PDF

Info

Publication number
KR101900811B1
KR101900811B1 KR1020160095431A KR20160095431A KR101900811B1 KR 101900811 B1 KR101900811 B1 KR 101900811B1 KR 1020160095431 A KR1020160095431 A KR 1020160095431A KR 20160095431 A KR20160095431 A KR 20160095431A KR 101900811 B1 KR101900811 B1 KR 101900811B1
Authority
KR
South Korea
Prior art keywords
query
column
filter
area
user
Prior art date
Application number
KR1020160095431A
Other languages
Korean (ko)
Other versions
KR20180005088A (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 한다시스템 주식회사
Publication of KR20180005088A publication Critical patent/KR20180005088A/en
Application granted granted Critical
Publication of KR101900811B1 publication Critical patent/KR101900811B1/en

Links

Images

Classifications

    • G06F17/30398
    • 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/242Query formulation
    • G06F16/2428Query predicate definition using graphical user interfaces, including menus and forms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/83Querying
    • G06F16/835Query processing
    • G06F16/8358Query translation
    • G06F17/30932

Abstract

그래픽 사용자 인터페이스를 통해 사용자가 위지윅 (WYSIWYG, what you see is what you get) 방식으로 원하는 컬럼을 이동시키고 조회 조건을 만들기만 하면 쿼리 문장이 자동으로 생성되는 쿼리 디자인 방법, 컴퓨터 프로그램 및 시스템이 개시된다. 본 발명에 따른 쿼리 디자인 방법은, 쿼리에 의해 조회할 테이블의 컬럼들을 선택할 수 있는 컬럼 목록 영역, 조회 조건을 나타내는 필터를 편집할 수 있는 필터 편집 영역 및 생성중인 쿼리를 표시하기 위한 결과보기 영역을 포함하는 사용자 인터페이스 화면을 제공하는 단계와; 선택된 테이블의 컬럼 목록을 컬럼 목록 영역에 표시하는 단계와; 사용자가 컬럼 목록에서 컬럼을 하나 이상 선택함에 따라 그에 해당하는 쿼리 문장을 생성하여 결과보기 영역에 표시하는 단계와; 사용자의 입력에 따라 필터 편집 영역에서의 필터 편집을 지원하되, 사용자가 신규 논리 연산자를 선택하면 신규 조건절과 신규 논리 연산자를 추가하고 현재의 조건절과 신규 조건절 간의 관계를 정의하는 괄호를 추가하는 단계와; 필터 편집 영역에서 편집되는 필터의 변화에 따라 결과보기 영역의 쿼리 문장에 포함되는 조회 조건을 변경시키는 단계;를 포함한다.A query design method, a computer program, and a system in which a query sentence is automatically generated when a user moves a desired column in a WYSIWYG way through a graphical user interface and creates a query condition . A query design method according to the present invention includes a column list area for selecting columns of a table to be queried by a query, a filter editing area for editing a filter indicating a query condition, and a result viewing area for displaying a query being generated Providing a user interface screen including the user interface screen; Displaying a list of columns of the selected table in a column list area; Generating a query sentence corresponding to one or more columns selected from the column list by the user and displaying the generated query sentence in the result viewing area; Adding a new conditional expression and a new logical operator when a user selects a new logical operator and adding parentheses defining a relationship between a current conditional expression and a new conditional expression; ; And changing the query condition included in the query sentence in the result viewing area according to the change of the filter edited in the filter editing area.

Figure R1020160095431
Figure R1020160095431

Description

쿼리 디자인 방법 및 컴퓨터 프로그램 {Method and computer program for designing a query}Method and computer program for designing a query

본 발명은 데이터베이스로부터 원하는 데이터를 조회하는 쿼리의 생성을 돕는 쿼리 디자이너에 대한 것으로, 더 구체적으로는 쿼리 디자인을 위한 사용자 인터페이스를 지원하는 쿼리 디자인 방법 및 시스템, 그리고 이를 위한 컴퓨터 프로그램에 대한 것이다.More particularly, the present invention relates to a query design method and system for supporting a user interface for query design, and a computer program therefor, and more particularly, to a query designer for assisting generation of a query for querying desired data from a database.

데이터베이스를 구축하고 활용하기 위해서는 데이터베이스에 접근할 수 있는 언어가 필요한데, SQL(Structured Query Language) 등의 쿼리 언어가 바로 그것이다.To build and use a database, you need a language that can access the database, which is a query language such as SQL (Structured Query Language).

SQL은 일종의 프로그래밍 언어로서 데이터베이스의 구조, DBMS(Database Management System) 및 컴퓨터 프로그래밍에 대한 이해도가 높은 기술자가 SQL을 작성하여 원하는 데이터를 조회하는 것이 일반적이다.SQL is a kind of programming language. It is common for a technician who understands the structure of database, DBMS (Database Management System) and computer programming to write SQL and retrieve desired data.

그러나, 근래에는 인터넷의 발달로 온라인 상에서 데이터베이스를 이용하여 서비스를 제공하는 이들이 매우 많아졌는데, 소규모로 데이터베이스를 운영하고 그 데이터를 이용하여 사업을 하는 사람들이 전문 개발자를 고용하기는 현실적으로 어려우므로, 전문 기술이 없는 일반 사용자가 데이터베이스를 조작하여 원하는 테이블을 만들고 데이터를 조회할 수 있는 툴에 대한 필요성이 커지고 있다.However, recently, as the Internet has developed, there have been a lot of people using a database to provide services. However, since it is difficult for a person who operates a small database and uses the data to hire a professional developer, There is a growing need for a tool that allows a non-technical user to manipulate the database to create the desired table and query the data.

본 발명은 상기와 같은 종래 기술의 문제점을 해소하기 위한 것으로, 데이터베이스나 프로그래밍 언어에 대한 전문적인 기술이 없는 일반 사용자가 쿼리를 쉽게 디자인할 수 있도록 하는 쿼리 디자이너를 제공하기 위한 것이다.SUMMARY OF THE INVENTION The present invention has been made to solve the above problems of the prior art, and it is an object of the present invention to provide a query designer that allows a general user who does not have a specialized knowledge of a database or a programming language to easily design a query.

또한, 본 발명은 그래픽 사용자 인터페이스를 통해 사용자가 위지윅 (WYSIWYG, what you see is what you get) 방식으로 원하는 컬럼을 이동시키고 조회 조건에 포함되는 오브젝트들을 이동 및 선택하기만 하면 쿼리 문장이 자동으로 생성되는 사용자 인터페이스 방법 및 시스템을 제공하기 위한 것이다.In addition, the present invention allows a user to move a desired column by WYSIWYG (WYSIWYG) method and move and select objects included in a query condition through a graphical user interface, And to provide a user interface method and system.

상기와 같은 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 쿼리 디자인 방법은, 쿼리에 의해 조회할 테이블의 컬럼들을 선택할 수 있는 컬럼 목록 영역, 조회 조건을 나타내는 필터를 편집할 수 있는 필터 편집 영역 및 생성중인 쿼리를 표시하기 위한 결과보기 영역을 포함하는 사용자 인터페이스 화면을 제공하는 단계와; 선택된 테이블의 컬럼 목록을 상기 컬럼 목록 영역에 표시하는 단계와; 사용자가 상기 컬럼 목록에서 컬럼을 하나 이상 선택함에 따라 그에 해당하는 쿼리 문장을 생성하여 상기 결과보기 영역에 표시하는 단계와; 상기 사용자의 입력에 따라 상기 필터 편집 영역에서의 필터 편집을 지원하되,상기 사용자가 신규 논리 연산자를 선택하면 신규 조건절과 상기 신규 논리 연산자를 추가하고 현재의 조건절과 상기 신규 조건절 간의 관계를 정의하는 괄호를 추가하는 단계와; 상기 필터 편집 영역에서 편집되는 필터의 변화에 따라 상기 결과보기 영역의 쿼리 문장에 포함되는 조회 조건을 변경시키는 단계;를 포함할 수 있다.According to an aspect of the present invention, there is provided a query design method including: a column list area in which columns of a table to be searched by a query can be selected; a filter list Providing a user interface screen including a region and a result viewing area for displaying a query being generated; Displaying a list of columns of the selected table in the column list area; Generating a query sentence corresponding to one or more columns selected from the column list by the user and displaying the generated query sentence in the result viewing area; A filter editing unit for editing a filter in the filter editing area according to an input of the user, wherein when the user selects a new logical operator, a new conditional expression and a new logical operator are added, and a parenthesis ; ≪ / RTI > And changing a query condition included in a query sentence of the result viewing area according to a change of a filter edited in the filter editing area.

상기 컬럼 목록 영역은 데이터 타입별로 컬럼의 표시 여부를 제어하기 위한 컬럼 필터를 포함하고, 상기 사용자가 상기 컬럼 필터에서 해제시킨 데이터 타입에 해당하는 컬럼은 상기 컬럼 목록 영역에서 소거될 수 있다.The column list area includes a column filter for controlling the display of columns according to the data type, and the column corresponding to the data type released by the user from the column filter may be deleted from the column list area.

상기 컬럼 목록 영역은 테이블의 컬럼을 이용하여 새로운 데이터를 가지도록 재구성된 가상 컬럼을 정의하여 추가할 수 있는 사용자 인터페이스를 포함할 수 있다.The column list area may include a user interface for defining and adding a reconstructed virtual column to have new data using a table column.

상기 가상 컬럼은, 테이블의 컬럼 값을 이용한 계산식으로 정의되는 계산 컬럼, 테이블의 컬럼 값을 포함하는 문자열로 정의되는 포맷 컬럼, 테이블의 컬럼 값에 따른 출력 조건으로 정의되는 조건 컬럼 중 적어도 하나를 포함할 수 있다.The virtual column includes at least one of a computation column defined by a computation formula using a column value of a table, a format column defined by a string including a column value of the table, and a condition column defined by an output condition based on a column value of the table can do.

상기 필터 편집 영역에서 편집되는 필터는 한 라인 당 하나씩 배치되는 조건절을 하나 이상 포함하고, 조건절들 간의 관계는 이들을 묶는 괄호와 논리 연산자에 의해 정의되며, 각 조건절에 필요한 컬럼은 드래그앤드롭에 의해 상기 컬럼 목록 영역으로부터 이동될 수 있다.Wherein the filter edited in the filter editing area includes at least one conditional rule arranged for each line, and the relationship between the conditional expressions is defined by parentheses and logical operators that bind the conditional expressions and the columns required for each conditional rule are determined by drag- Can be moved from the column list area.

상기 방법은, 상기 필터 편집 영역에서 편집된 필터의 내용을 XML 파일로 변환하여 저장하는 단계와; 사용자에 의해 상기 XML 파일이 호출되면 상기 XML 파일을 해석하여 필터의 형태로 변환한 후 상기 필터 편집 영역에 표시하는 단계;를 더 포함할 수 있다.The method includes converting the contents of the edited filter in the filter editing area into an XML file and storing the converted XML file; If the XML file is called by the user, interpreting the XML file into a form of a filter, and displaying the converted XML file in the filter editing area.

상기와 같은 본 발명에 의하면, 데이터베이스나 프로그래밍 언어에 대한 전문적인 기술이 없는 일반 사용자도 쿼리를 쉽게 디자인할 수 있으며, 그래픽 사용자 인터페이스를 통해 사용자가 위지윅 (WYSIWYG, what you see is what you get) 방식으로 원하는 컬럼을 이동시키고 조회 조건을 만들기만 하면 쿼리 문장이 자동으로 생성된다.According to the present invention, it is possible to easily design a query even for a general user who does not have a specialized knowledge of a database or a programming language, and a user can easily design a query through a graphic user interface (WYSIWYG) If you move the desired column and create a query condition, the query statement is automatically generated.

도 1은 본 발명의 일 실시예에 따른 쿼리 디자인 시스템의 네트워크 구성을 도시한 것이다.
도 2는 본 발명의 일 실시예에 따른 쿼리 디자이너의 사용자 인터페이스 화면을 도시한 것이다.
도 3은 본 발명의 일 실시예에 따른 쿼리 디자인 방법을 설명하기 위한 순서도이다.
도 4는 본 발명의 일 실시예에 따라 컬럼 목록 영역에서 컬럼 필터를 이용하여 원하지 않는 데이터 타입을 소거하는 화면을 도시한 것이다.
도 5는 본 발명의 일 실시예에 따라 컬럼 목록 영역에서 컬럼을 선택함에 따라 결과보기 영역에 쿼리가 자동으로 생성되는 모습을 도시한 것이다.
도 6은 본 발명의 일 실시예에 따라 필터를 편집하는 화면을 도시한 것이다.
도 7 내지 도 11은 필터 편집 영역에서 조건식을 변경하는 모습을 예시한 것이다.
도 12 내지 도 14는 본 발명의 일 실시예에 따른 가상 컬럼을 설명하기 위한 도면이다.
도 15는 필터 편집 영역에서 만들어진 필터를 XML로 보여주는 화면을 예시한 것이다.
FIG. 1 illustrates a network configuration of a query design system according to an embodiment of the present invention.
FIG. 2 illustrates a user interface screen of a query designer according to an exemplary embodiment of the present invention. Referring to FIG.
3 is a flowchart illustrating a query design method according to an embodiment of the present invention.
FIG. 4 illustrates a screen for erasing an unwanted data type using a column filter in a column list area according to an exemplary embodiment of the present invention. Referring to FIG.
FIG. 5 is a diagram illustrating how a query is automatically generated in a result viewing area by selecting a column in the column list area according to an embodiment of the present invention.
FIG. 6 shows a screen for editing a filter according to an embodiment of the present invention.
Figs. 7 to 11 illustrate how the conditional expression is changed in the filter edit region.
12 to 14 are views for explaining a hypothetical column according to an embodiment of the present invention.
FIG. 15 illustrates a screen showing XML created by the filter editing area.

본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 발명에 대해 구체적으로 설명하기로 한다. The terms used in this specification will be briefly described and the present invention will be described in detail.

본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다. While the present invention has been described in connection with what is presently considered to be the most practical and preferred embodiment, it is to be understood that the invention is not limited to the disclosed embodiments. Also, in certain cases, there may be a term selected arbitrarily by the applicant, in which case the meaning thereof will be described in detail in the description of the corresponding invention. Therefore, the term used in the present invention should be defined based on the meaning of the term, not on the name of a simple term, but on the entire contents of the present invention.

명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "...수단", "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.When an element is referred to as " including " an element throughout the specification, it is to be understood that the element may include other elements as well, without departing from the spirit or scope of the present invention. The term " means ", " part ", " module ", etc. in the specification means units for processing at least one function or operation, Lt; / RTI >

아래에서는 첨부한 도면을 참고하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art can easily carry out the present invention. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. In order to clearly illustrate the present invention, parts not related to the description are omitted, and similar parts are denoted by like reference characters throughout the specification.

이하에서 개시되는 쿼리 디자이너에 의한 쿼리 디자인 방법, 쿼리 디자인 방법을 수행하기 위한 컴퓨터 프로그램 및 시스템은 공지의 사용자 인터페이스와 비교하여 완전히 새롭고 진보적인 사용자 인터페이스를 제시한다. 사용자와 상호작용하기 위한 하나 이상의 센서를 갖는 다양한 실시예가 공지의 입력도구와의 조합으로 또는 독자적으로 고려될 수 있다.A computer program and a system for performing a query design method and a query design method by a query designer disclosed below provide a completely new and advanced user interface in comparison with a known user interface. Various embodiments having one or more sensors for interacting with a user may be considered in combination with or independently of known input tools.

도 1은 본 발명의 일 실시예에 따른 쿼리 디자인 시스템의 네트워크 구성을 도시한 것이다.FIG. 1 illustrates a network configuration of a query design system according to an embodiment of the present invention.

본 발명에 따른 쿼리 디자인 시스템은 네트워크를 통해 서로 통신하는 서버(10)와 하나 이상의 사용자 단말(11)을 포함한다. 서버(10)는 데이터베이스(DB, 14)를 구동하기 위한 데이터베이스 관리 시스템(DBMS)과 쿼리 생성 서버의 기능을 수행하는 컴퓨팅 장치로서, 하나의 물리적인 장치에 구현될 수도 있으나 DBMS를 구비하는 데이터베이스 서버와 쿼리 생성 서버를 별도의 장치에 구현하는 것도 가능하다.The query design system according to the present invention includes a server 10 and one or more user terminals 11 that communicate with each other via a network. The server 10 is a computing device that performs functions of a database management system (DBMS) and a query generation server for driving a database (DB) 14, and may be implemented in one physical device, And a query generation server on a separate device.

사용자 단말(11)에는 쿼리 생성을 위한 사용자 인터페이스를 제공하는 클라이언트 프로그램인 쿼리 디자이너가 구비될 수 있으며, 쿼리 디자이너는 사용자의 조작에 따라 쿼리 문장을 디자인하고 그에 따라 생성된 쿼리를 서버(10)로 전송함으로써 테이블 정보나 데이터의 조회를 수행한다. 서버(10)는 쿼리 디자이너의 요청에 따라 테이블 정보를 조회하고 쿼리를 실행하여 데이터베이스(14)의 데이터를 조회하는 작업을 직접적으로 수행하며 그 결과를 사용자 단말(11)로 리턴한다. The user terminal 11 may be provided with a query designer, which is a client program that provides a user interface for generating a query. The query designer designs a query sentence according to a user's operation and sends the generated query to the server 10 And performs table information or data inquiry by transmitting. The server 10 directly inquires data of the database 14 by querying the table information according to the request of the query designer, executing the query, and returns the result to the user terminal 11.

다른 실시예에 따르면 쿼리 디자이너는 웹 기반으로 제공될 수 있다. 이 경우 서버(10)는 웹 서버의 역할까지 수행하며, 쿼리 디자인 방법을 수행하기 위한 사용자 인터페이스 화면을 웹 페이지를 통해 제공할 것이다. 사용자가 사용자 단말(11)의 쿼리 디자인 화면을 통해 조회할 테이블의 컬럼과 조회 조건을 만들도록 조작하면, 서버(10)가 단말(11)로부터의 요청을 받아 해당하는 쿼리를 디자인하여 생성하고 그 결과를 웹 페이지를 통해 전송한다.According to another embodiment, the query designer can be provided on a web-based basis. In this case, the server 10 performs a role of a web server, and a user interface screen for performing a query design method will be provided through a web page. When the user operates to create a column and a query condition of a table to be inquired through the query design screen of the user terminal 11, the server 10 receives a request from the terminal 11 to design and generate a corresponding query, And transmits the result through a web page.

도 2는 본 발명의 일 실시예에 따른 쿼리 디자이너의 사용자 인터페이스 화면을 도시한 것이고, 도 3은 본 발명의 일 실시예에 따른 쿼리 디자인 방법을 설명하기 위한 순서도이다.FIG. 2 is a view showing a user interface screen of a query designer according to an embodiment of the present invention, and FIG. 3 is a flowchart illustrating a query design method according to an embodiment of the present invention.

쿼리 디자이너를 실행하거나 쿼리 디자인 서비스를 제공하는 웹 사이트에 접속하면 사용자 인터페이스 화면이 제공된다(S32).When a query designer is executed or a web site providing a query design service is accessed, a user interface screen is provided (S32).

사용자 인터페이스 화면은, 쿼리에 의해 조회할 테이블의 컬럼들을 선택할 수 있는 컬럼 목록 영역(30), 쿼리의 조회 조건을 나타내는 필터를 위지윅 방식으로 쉽게 편집할 수 있는 필터 편집 영역(40), 생성중인 쿼리나 쿼리에 의해 조회되는 데이터를 미리 볼 수 있는 결과보기 영역(50)을 포함할 것이다. 또한, 테이블을 선택하고 관련 뷰를 생성할 수 있는 테이블 선택 영역(20)을 포함할 수 있다.The user interface screen includes a column list area 30 for selecting columns of a table to be queried by a query, a filter editing area 40 for easily editing a filter indicating a query's query condition in a WYSIWYG manner, And a result viewing area 50 in which data to be inquired by the query can be previewed. It may also include a table selection area 20 for selecting a table and creating an associated view.

본 발명에 따른 쿼리 디자인 방법에 따르면, 사용자가 쿼리를 직접 작성하는 대신 그래픽 유저 인터페이스를 통해 각 영역의 오브젝트들을 선택하고 배치하는 것만으로 원하는 조건의 데이터를 조회할 수 있는 쿼리를 자동으로 생성할 수 있다.According to the query design method of the present invention, the user can automatically generate a query that can retrieve data of a desired condition by simply selecting and arranging objects in each region through a graphical user interface instead of directly creating a query have.

테이블 선택 영역(20)에서 사용자는 데이터베이스에 생성되어 있는 테이블들 중 하나를 선택할 수 있다. 도 2에서는 "담벼락"이라는 테이블이 작업 대상으로 선택되었다. 작업할 테이블이 선택되면 해당 테이블의 컬럼 목록이 컬럼 목록 영역(20)에 표시된다(S34).In the table selection area 20, the user can select one of the tables created in the database. In Figure 2, a table named " Wall " When a table to be operated is selected, the column list of the corresponding table is displayed in the column list area 20 (S34).

한편, 테이블 선택 란 아래에는, 선택된 테이블에 대해 생성되어 있는 뷰들의 리스트(21)가 표시되는데, 초기에 각 테이블은 "기본뷰"를 가질 수 있으며 뷰 추가 버튼(22)을 눌러 추가적인 뷰를 생성할 수도 있다.On the other hand, under the table selection field, a list 21 of generated views for the selected table is displayed. At the beginning, each table can have a " default view " You may.

각각의 뷰에는 대응하는 쿼리가 있으며, 뷰는 이 쿼리에 의해 조회되는 데이터를 볼 수 있는 창이라 할 수 있다. 즉, 사용자는 뷰를 통해 테이블의 전체 데이터 중 자신이 원하는 데이터만을 걸러서 보거나 데이터를 다른 모습으로 가공하여 볼 수 있으며, 하나의 테이블에 대해 복수의 뷰를 생성하여 이용할 수 있다.Each view has a corresponding query, and the view is a window in which you can see the data that is queried by this query. That is, the user can view desired data among the entire data of the table through the view or process the data in a different shape, and can generate and use a plurality of views for one table.

쿼리 디자이너는 서버(10)와 연동하여 데이터베이스에 저장된 테이블들의 리스트, 뷰의 리스트, 각 테이블에 저장된 데이터, 편집된 필터에 대응하여 생성된 XML(eXtensible Markup Language) 파일 등을 조회할 수 있으며, 사용자의 조작에 따라 쿼리 및 그에 대응하는 뷰를 생성하고, 생성된 뷰에 해당하는 데이터를 조회하여 사용자에게 보여줄 수 있다.The query designer can inquire a list of tables stored in the database, a list of views, data stored in each table, an XML (extensible markup language) file generated in correspondence with the edited filter, A query and a corresponding view are generated according to the operation of the user, and the data corresponding to the generated view is inquired and displayed to the user.

관련 뷰 목록(21)에서 뷰 하나를 선택하면 화면은 해당 뷰에 대해 쿼리 디자인을 할 수 있는 워크스페이스로 변경된다. 즉, 컬럼 목록 영역(30)에는 선택된 뷰에 연관된 테이블의 컬럼들이 열거되며, 필터 편집 영역(40)에는 해당 뷰에 대해 편집중이거나 이미 만들었던 필터가 표시되거나 필터 편집 전이라면 빈 공간이 나타난다. 결과보기 영역(50)에는 쿼리가 자동 생성되어 표시된다.If one of the views is selected in the related view list (21), the screen is changed to a workspace in which the query design can be performed for the corresponding view. That is, the columns of the table associated with the selected view are listed in the column list area 30. In the filter edit area 40, if a filter that is being edited or already created for the view is displayed, or if the filter is not edited, In the result viewing area 50, a query is automatically generated and displayed.

도 2는 "담벼락"이라는 테이블의 "기본뷰"가 표시된 상태이며, 이 뷰에 대한 쿼리가 아직 디자인되지 않은 초기 상태이다.Figure 2 shows an initial state in which a " default view " of a table called " WALL " is displayed, and a query for this view is not yet designed.

컬럼 목록 영역(30)에는 컬럼 필터(33)가 포함될 수 있다. 컬럼 필터(33)는 원하는 데이터 타입의 컬럼들만 컬럼 목록 영역에 리스트되도록 하기 위한 필터이다. 컬럼 필터(33)는 테이블에 포함된 컬럼 수가 많을 때 유용하게 사용될 수 있다. The column list area 30 may include a column filter 33. The column filter 33 is a filter for causing only the columns of the desired data type to be listed in the column list area. The column filter 33 can be useful when the number of columns included in the table is large.

디폴트 값으로 모든 컬럼 필터가 활성화되어 있으며 이 경우는 모든 데이터 타입의 컬럼이 표시된다. 컬럼 필터 중 사용자가 원하지 않는 데이터 타입 필터를 비활성화(해제)하면 해당 타입의 컬럼이 컬럼 목록 영역(20)에서 사라지게 된다.By default, all column filters are enabled and in this case columns of all data types are displayed. When a user deselects (disables) a data type filter that is not desired by the user, the column of the corresponding type disappears from the column list area 20.

도 4는 컬럼 목록 영역에서 컬럼 필터를 이용하여 원하지 않는 데이터 타입을 가진 컬럼들을 소거하는 화면을 예시한 것이다.FIG. 4 illustrates a screen for erasing columns having an undesired data type using a column filter in the column list area.

도 4를 참조하면, 컬럼 목록 영역(30)에서 사용자가 컬럼 필터(33) 중 포맷 타입과 계산 타입(45)을 눌러 비활성화하였을 때, 해당 데이터 타입의 컬럼들이 컬럼 목록에서 사라졌음을 알 수 있다. 또한, 컬럼 목록 영역(30)에는 포맷 컬럼 추가 버튼(31)과 계산 컬럼 추가 버튼(32)을 구비하여 이를 통해 가상 컬럼을 신규로 만들 수 있다.4, when the user presses the format type and the calculation type 45 of the column filter 33 in the column list area 30, it is found that the columns of the corresponding data type disappear from the column list . In addition, a format column addition button 31 and a calculated column addition button 32 are provided in the column list area 30, thereby making a virtual column new.

또한, 컬럼 목록의 각 컬럼명에는 컬러 필터가 적용되어 데이터 타입에 따라 다른 색상으로 표시될 수 있다. 예를 들어 Text 타입의 컬럼은 파란색으로, Number 타입의 컬럼은 붉은 색으로 표시된다. 이는 컬럼의 수가 많을 때 사용자가 구분하기 쉽도록 하기 위한 것이다. 또한, 컬럼에 대한 정보 중 하나인 데이터 타입을 색상으로 표시한 결과가 되므로, 컬럼에 대한 요약 정보를 추가적인 텍스트 없이 포함시킬 수 있게 된다. In addition, a color filter is applied to each column name in the column list and can be displayed in a different color depending on the data type. For example, a Text type column is colored blue and a Number type column is colored red. This is to make it easier for users to identify when the number of columns is large. In addition, since the data type, which is one of the information on the column, is a result of color, summary information on the column can be included without additional text.

테이블을 선택한 후, 그에 관련된 뷰를 선택 또는 생성한 다음에, 사용자는 쿼리를 통해 조회할 컬럼들을 컬럼 목록 영역에서 선택한다. 쿼리 디자이너는 사용자가 컬럼 목록 영역(30)에서 컬럼을 하나 이상 선택함에 따라 그에 해당하는 쿼리 문장을 생성하여 결과보기 영역(50)에 표시한다(S36). 컬럼 목록에서 원하는 컬럼을 체크하기만 하면 체크된 컬럼을 조회할 수 있는 SQL 쿼리가 자동으로 생성되어 표시되는 것이다. After selecting a table and selecting or creating a view associated with it, the user selects the columns to be queried in the column list area. As the user selects one or more columns in the column list area 30, the query designer generates corresponding query statements and displays them in the result viewing area 50 (S36). Just check the desired column in the column list and SQL query that can check the checked column is automatically generated and displayed.

도 5는 컬럼 목록 영역에서 컬럼을 선택함에 따라 결과보기 영역에 쿼리가 자동으로 생성되는 모습을 도시한 것이다.FIG. 5 shows that a query is automatically generated in the result viewing area by selecting a column in the column list area.

도 5를 참조하면, 사용자가 컬럼 목록 영역(30)에서 "contact_id", "contents", "일시", "이메일", "넘버2"를 순차적으로 선택함에 따라, "Select contact_id, contents, Date2, Email, Number2 from PostWall"이라는 쿼리(55)가 실시간으로 생성됨을 알 수 있다. 5, when the user sequentially selects "contact_id", "contents", "date and time", "email", and "number 2" in the column list area 30, "Select contact_id, contents, Quot; Email, Number 2 from PostWall " is generated in real time.

사용자가 선택 조작을 하는 컬럼 목록 영역(30)에는 사용자의 편의를 위해 각 컬럼의 라벨이 표시될 수 있지만, 쿼리는 데이터베이스를 실제로 조회하는 문장이므로 쿼리에는 각 컬럼에 대응하는 시스템 네임이 사용된 것이다. 테이블명도 마찬가지로, 사용자가 선택한 테이블명은 "담벼락"이라는 라벨이지만 실제 쿼리에 사용되는 테이블명은 "PostWall"이라는 시스템 네임임을 알 수 있다.In the column list area 30 where the user performs a selection operation, labels for each column can be displayed for the convenience of the user. However, since the query is a sentence that actually inquires the database, the system name corresponding to each column is used in the query . Similarly, the table name chosen by the user is labeled "Wall", but the table name used in the actual query is the system name "PostWall".

한편, 쿼리 디자이너는 사용자의 입력에 따라 필터 편집 영역(40)에서의 필터 편집을 지원한다(S38).Meanwhile, the query designer supports editing of the filter in the filter edit region 40 according to the input of the user (S38).

컬럼의 선택이 현재의 뷰에 의해 조회할 컬럼을 한정하는 것이라면, 필터의 편집은 테이블에 저장된 모든 데이터 레코드들 중 뷰에 의해 조회할 레코드를 한정하는 것이다. 즉, 필터 편집은 조회의 조건을 입력하기 위한 것이며, 본 발명에 따른 쿼리 디자이너에 의하면 쿼리의 조회 조건식을 where 이하에 직접 입력하는 대신 필터 편집 영역(40)에서 조건에 삽입할 컬럼을 가져오고 논리 연산자, 비교 연산자, SQL 연산자를 선택하기만 하면 쿼리 디자이너가 자동으로 where절의 조건식을 생성해준다.If the choice of the column is to define the column to be queried by the current view, editing the filter will delimit the records to be queried by the view among all the data records stored in the table. According to the query designer according to the present invention, instead of directly inputting the query conditional expression of the query below the where, the column to be inserted into the condition is fetched from the filter edit area 40, Just select the operator, comparison operator, and SQL operator, and the query designer will automatically generate the conditional expression in the where clause.

필터 편집 영역(40)에서 만들어지는 필터는 "A 연산자 B"의 형태를 가진 조건절을 적어도 하나 포함하고 한 라인 당 조건절이 하나씩 배치된다. 그리고, 각 조건절은 AND 연산자 또는 OR 연산자로 연결되는데, 조건식의 어느 위치에 괄호가 삽입되는지에 따라 전혀 다른 조건이 된다.The filter created in the filter editing area 40 includes at least one conditional form having the form of " A operator B ", and one conditional is arranged for each line. Each conditional is connected by an AND operator or an OR operator, which is completely different depending on where the parentheses are inserted in the conditional expression.

필터 편집 영역(40)에서 사용자가 조건절 추가 버튼(44)을 누르면 조건절이 추가되고, AND 연산자 추가 버튼(41)이나 OR 연산자 추가 버튼(42)을 누르면 현재 커서가 위치한 조건절에 AND 관계나 OR 관계가 되는 조건절을 추가하고 그에 따른 괄호의 위치도 자동으로 판단하여 삽입하여 준다.When the user presses the conditional add button 44 in the filter editing area 40, a conditional expression is added. When the AND operator add button 41 or the OR operator add button 42 is pressed, an AND relationship or an OR relationship And the position of the parenthesis corresponding to the condition is automatically determined and inserted.

도 6은 본 발명의 일 실시예에 따라 필터를 편집하는 화면을 도시한 것이다.FIG. 6 shows a screen for editing a filter according to an embodiment of the present invention.

도 6을 참조하면, 필터 편집 영역의 기능 버튼에는 조건절 추가 버튼(44), AND 연산자 추가 버튼(41), OR 연산자 추가 버튼(42), 조건절 삭제 버튼, XML 조회 버튼(43) 등이 포함될 수 있다.6, the function buttons of the filter edit region may include a conditional add button 44, an AND operator add button 41, an OR operator add button 42, a conditional delete button, an XML lookup button 43, have.

사용자가 조건절의 입력을 위해 조건절 추가 버튼(44)을 누르면, 필터 편집 영역(40)에 조건절(60)에 대응하는 3개의 빈칸(□□□)이 나타난다. 도 6의 예에서, 사용자가 연산의 대상이 되는 컬럼 "전화"를 첫번째 칸(61)으로 가져오고, 두번째 칸(62)에서는 비교 연산자 "="를 선택하고, 세번째 칸(63)에서 상수 "010-8934-4372"를 입력하여 하나의 조건절을 완성하였음을 알 수 있다.When the user presses the conditional statement add button 44 for input of the conditional statement, three blank spaces (□□□) corresponding to the conditional clause 60 appear in the filter edit region 40. In the example of Fig. 6, the user brings the column " phone " to be operated on to the first column 61, the comparison column 62 selects the comparison operator & 010-8934-4372 "to complete one conditional statement.

조건절에 사용되는 컬럼은 컬럼 목록 영역(30)으로부터 드래그앤드롭(Drag & Drop)으로 간편히 가져올 수 있다. 또한, 두번째 칸(62)을 클릭하면 사용 가능한 연산자가 리스트되어 원하는 비교 연산자나 SQL 연산자를 선택할 수 있다. 세번째 칸(63)에서는 상수를 직접 입력하거나 다른 컬럼을 가져옴으로써 하나의 조건절을 만들 수 있다.The column used in the conditional expression can be easily fetched from the column list area 30 by drag & drop. Also, when the second column 62 is clicked, the available operators are listed, and the desired comparison operator or SQL operator can be selected. In the third column (63), one condition can be made by directly inputting a constant or taking another column.

필터 편집 영역(40)에서 만들어진 필터에 따라 화면 하부의 결과보기 영역(50)에 표시된 SQL 쿼리 문장에 조건식 where Phone = "010-8934-4372"(65)가 자동으로 생성되며, 결과적으로 도 5의 쿼리 문장(55)이 수정된 쿼리 문장(55-1)로 변경된다.The condition expression where Phone = "010-8934-4372" (65) is automatically generated in the SQL query sentence displayed in the result viewing area 50 in the lower part of the screen according to the filter created in the filter editing area 40. As a result, The query sentence 55 of the query sentence 55-1 is changed to the corrected query sentence 55-1.

이와 같이 컬럼 목록 영역(30)에서 선택한 조회 대상 컬럼을 변경, 삭제 또는 추가하거나 필터 편집 영역(40)에서 필터를 변경하면, 그에 따라 결과보기 영역(50)의 쿼리 문장이 실시간으로 변경된다(S40).In this way, if the query target column selected in the column list area 30 is changed, deleted or added or the filter is changed in the filter edit area 40, the query sentence in the result view area 50 is changed in real time accordingly (S40 ).

결과보기 영역(50)에서는 데이터 미리보기도 가능한데, 미리보기(51)를 클릭하면 생성된 쿼리가 서버(10)로 전송되고 실행되며, 쿼리의 실행 결과로 테이블로부터 조회되는 데이터가 수신되어 출력된다. 예를 들어, 도 6의 화면에서 미리보기(51)를 선택하면 테이블 "PostWall"에서 where 이하의 조건을 만족하는 select 이하의 컬럼들이 표 형식으로 출력될 것이다. SQL(52)을 클릭하면 다시 쿼리 미리보기 화면으로 돌아올 수 있다.In the result viewing area 50, data can also be previewed. When the preview 51 is clicked, the generated query is transmitted to the server 10 and executed. As a result of execution of the query, data to be inquired from the table is received and output . For example, if the preview 51 is selected on the screen of Fig. 6, the columns of "select" or less that satisfy the condition "where" in the table "PostWall" will be displayed in tabular form. Click SQL (52) to return to the query preview screen.

도 7 내지 도 11은 필터 편집 영역에서 조건식을 변경하는 모습을 예시한 것이다.Figs. 7 to 11 illustrate how the conditional expression is changed in the filter edit region.

도 6에서와 같이 하나의 조건절(60)을 만든 상태에서, AND 연산자 추가 버튼(41)을 누르면, 도 7과 같이 첫번째 조건절(60)에 대해 AND 관계인 두번째 조건절(70)이 자동으로 나타난다. 조건절1(60)에서와 마찬가지로, 3개의 공란에 테이블 컬럼을 가져오고 연산자를 선택하고 상수를 입력함으로써 조건절2(70)를 완성할 수 있다. 쿼리 디자이너는 각 조건절들 간의 관계를 나타내는 논리 연산자와 괄호를 자동으로 생성하여 삽입한다. 필터 편집 영역(40)에는 괄호를 구성하는 '('과 ')' 중에서 '('만 표시되는데, '('의 영 끝에는 서로 관계가 되는 조건절이 위치하며, 조건절이 한 행에 하나씩 배치되므로 '('만 표시하여도 의미가 명확하다. 따라서, 전문적인 지식이 없는 일반 사용자라도 쉽게 각 조건절 간의 관계를 정의하고 해석할 수 있다. 도 7의 화면에서 필터가 의미하는 조건식은 (조건절1 AND 조건절2)가 된다.When one conditional statement 60 is created as shown in FIG. 6, if the AND operator addition button 41 is pressed, a second conditional statement 70, which is an AND relation to the first conditional statement 60, is automatically displayed as shown in FIG. As in Condition 1 (60), Condition 2 (70) can be completed by bringing the table column into three empty columns, selecting the operator, and entering a constant. The query designer automatically generates and inserts logical operators and parentheses that indicate the relationship between each conditional statement. In the filter edit region 40, only '(' is displayed among '(' and ')' constituting the parentheses. Since the conditional terms related to each other are located at the zero end of '(' The conditional expression of the filter in the screen of FIG. 7 is (conditional expression 1 AND conditional expression " 2).

조건절1(60)을 다시 OR 조건으로 분리하고 싶은 경우, 조건절1(60)을 클릭해 선택한 상태에서 OR 연산자 추가 버튼(42)을 누르면 된다. 그러면 쿼리 디자이더는 도 8에 도시된 바와 같이, 조건절1(60)과 OR 관계인 조건절3(80)을 추가하고, 논리 연산자와 괄호의 위치를 자동으로 인식하여 삽입한다. 이 상태에서 필터가 의미하는 조건식은 ((조건절1 OR 조건절3) AND 조건절2)가 된다. 도 7의 상태에서 밑줄친 부분이 더 추가된 형태인 것이다.If you want to separate conditional statement 1 (60) into OR condition again, click conditional statement 1 (60) and press the Add OR operator add button (42). Then, as shown in FIG. 8, the query designer adds conditional statement 3 (80), which is an OR relationship with the conditional statement 1 (60), and recognizes and inserts the position of the logical operator and the parenthesis automatically. In this state, the conditional expression of the filter is ( ( condition 1 OR condition 3) AND condition condition 2). In the state of FIG. 7, the underlined portion is further added.

도 8의 상태에서 조건절1(60)을 다시 AND 조건으로 분리하고 싶은 경우는, 조건절1(60)을 클릭해 선택한 상태에서 AND 연산자 추가 버튼(41)을 누르면 된다. 그러면 쿼리 디자이너는 도 9에 도시된 바와 같이, 조건절1(60)과 AND 관계인 조건절4(90)를 추가하고, 논리 연산자와 괄호의 위치를 자동으로 인식하여 삽입한다. 도 9의 상태에서 필터가 의미하는 조건식은 (((조건절1 AND 조건절4) OR 조건절3) AND 조건절2)가 된다. 도 8의 상태에서 밑줄친 부분이 더 추가된 형태이다.When it is desired to separate conditional statement 1 (60) again by the AND condition in the state of Fig. 8, click on the conditional statement 1 (60) and press the AND operator addition button 41 with the selected condition. Then, as shown in FIG. 9, the query designer inserts the conditional expression 4 (90) which is an AND relation with the conditional expression 1 (60) and automatically recognizes and inserts the position of the logical operator and the parenthesis. In the state of FIG. 9, the conditional expression of the filter is (( ( conditional 1 AND conditional condition 4) OR conditional condition 3) AND conditional condition 2). In the state shown in FIG. 8, an underlined portion is further added.

도 10은 추가된 조건절을 완성하는 과정을 도시한 것이다. 조건절4(90)의 첫번째 공란(91)에 "title"이라는 테이블 컬럼을 가져오면 도 10과 같이 조건절4(90)가 변경된다.Fig. 10 shows the process of completing the added conditional expression. When a table column called "title" is brought into the first blank 91 of the conditional statement 4 (90), the conditional statement 4 (90) is changed as shown in FIG.

사용자가 두번째 공란을 클릭하면 도 11과 같이 사용가능한 연산자들(92)이 리스트되며 이 중 하나를 선택하면 두번째 공란이 채워진다. 도 11에서는 예시를 위해 비교 연산자만 열거하고 있으나, 본 발명의 쿼리 디자이너는 해당 테이블 컬럼에 사용 가능한 비교 연산자와 SQL 연산자를 모두 제공할 수 있다.When the user clicks the second blank, the available operators 92 are listed as shown in FIG. 11, and if one of them is selected, the second blank is filled. In FIG. 11, only the comparison operator is illustrated for the sake of illustration, but the query designer of the present invention can provide both the comparison operator and the SQL operator usable in the corresponding table column.

조건절이 완성될 때마다 결과보기 영역(50)의 SQL에는 완성된 조건절이 적용되어 where 이하에 조건절에 대응하는 조건이 추가로 표시될 것이다.Every time a conditional is completed, the completed conditional statement is applied to the SQL of the result viewing area 50, and a condition corresponding to the conditional statement will be additionally displayed under the where.

도 12의 예에서는 아직 첫번째 조건절(60)만 완성된 상태이므로, where 절의 조건식도 Phone = '010-8934-4372'에 머물러 있음을 알 수 있다.In the example of FIG. 12, since only the first condition 60 is completed, it can be seen that the conditional expression of the where clause stays in Phone = '010-8934-4372'.

도 12 내지 도 14는 본 발명에서 지원하는 가상 컬럼을 설명하기 위한 도면이다.12 to 14 are diagrams for explaining virtual columns supported by the present invention.

본 발명의 일 실시예에 따르면, 쿼리 디자이너는 데이터베이스가 제공하는 데이터 타입 이외의 가상 컬럼인 포맷 컬럼(Formatted 타입), 계산 컬럼(Compute 타입), 조건 컬럼(CaseWhenThen 타입)을 지원한다. 가상 컬럼은 실제 테이블에 저장되어 있는 컬럼이 아니라, 편의를 위해 테이블 컬럼들을 이용하여 새로운 데이터를 가지도록 재구성한 컬럼이다.According to one embodiment of the present invention, the query designer supports format columns (Formatted type), computed columns (Compute type), and condition columns (CaseWhenThen type) which are virtual columns other than the data types provided by the database. A virtual column is not a column stored in an actual table, but a column that has been reconfigured to have new data using table columns for convenience.

가상 컬럼을 생성하려면 컬럼 목록 영역(30)에 구비되는 가상 컬럼 추가 버튼을 누르면 된다. 도 12의 예에서는 포맷 컬럼 추가 버튼(31)과 계산 컬럼 추가 버튼(32)만 포함되어 있으나, 조건 컬럼 추가 버튼도 유사한 방법으로 구현될 수 있다.To create a virtual column, a virtual column addition button provided in the column list area 30 is pressed. In the example of FIG. 12, only the format column addition button 31 and the calculation column addition button 32 are included, but the condition column addition button can also be implemented in a similar manner.

가상 컬럼 추가 버튼을 클릭하면, 해당 타입의 가상 컬럼이 컬럼 목록에 추가된다. 가상 컬럼의 명칭과 속성은 오른쪽의 가상 컬럼 편집 영역(34)에서 편집할 수 있다.When you click the Add Virtual Column button, the virtual column of that type is added to the column list. The name and the attribute of the virtual column can be edited in the virtual column editing area 34 on the right side.

포맷 컬럼은 기존의 테이블 컬럼을 이용하여 문자열을 변형하기 위해 사용된다. 예를 들어, 홍보 메일이나 SNS(Social Network Service) 광고 문자를 생성하기 위해 홍보 문구에 수신자의 이름을 삽입하고 싶을 때, 홍보 문구 내에 테이블의 수신자 이름 컬럼을 삽입하면, 조회된 각 레코드 마다 수신자 이름이 다른 홍보 문구를 얻을 수 있다. Format columns are used to transform strings using existing table columns. For example, if you want to insert the recipient's name in the promotional text to create a promotional mail or social network service (SNS) ad text, insert the recipient's name column in the table within the promotional text, You can get this other promotional text.

도 12는 포맷 컬럼인 "포맷컬럼1"을 생성하는 예이다. 사용자가 가상 컬럼 편집 영역(34)에서 가상 컬럼에 넣고 싶은 문자열을 입력하고 테이블의 "이메일" 컬럼을 가져와 문자열 중간에 삽입함으로써 "포맷컬럼1"을 정의하고, 컬럼 목록 영역(30)에서 "포맷컬럼1" 컬럼을 조회에 포함하도록 선택하면, 쿼리 디자이너는 그에 따른 포맷 컬럼 정의를 생성하여 SQL 문장에 반영한다.12 shows an example of generating a format column " format column 1 ". The user inputs a character string to be inserted into the virtual column in the virtual column editing area 34 and imports the "email" column of the table and inserts the character string into the middle of the character string to define "format column 1" Column 1 "column in the query, the query designer creates the corresponding format column definition and reflects it in the SQL statement.

도 12를 참조하면, 생성중인 쿼리 문장의 select 이하에서 "formatted_20"이라는 시스템 네임을 가진 컬럼이 "포맷컬럼1"에 대응하여 추가되었다. 이때, 가상 컬럼 편집 영역(40)에서의 편집에 따라 "formatted_20" 컬럼의 정의로써,Referring to FIG. 12, a column having a system name of " formatted_20 " is added corresponding to " format column 1 " At this time, as the definition of the " formatted_20 " column according to the editing in the virtual column editing area 40,

(Email || '님, 안녕하세요!') as formatted_20(Email || 'Hello, Hello!') As formatted_20

가 자동으로 생성되어 삽입되었음을 알 수 있다.Is automatically generated and inserted.

이와 같이 생성된 쿼리를 실행했을 때 "formatted_20" 컬럼의 조회 결과로 아래와 같은 내용이 반환된다. When the generated query is executed, the following result is returned from the query of the "formatted_20" column.

kim_sara@naver.com님, 안녕하세요!Hi kim_sara@naver.com!

Lee_michael@hanmail.net님, 안녕하세요!Hi Lee_michael@hanmail.net Hello!

......

즉, 각 문자열 내에 해당 레코드의 "Email" 컬럼의 값이 삽입되어 출력되며, 각 레코드마다 다른 메일주소를 가진 문자열을 자동으로 생성하는 결과가 된다. That is, the value of the "Email" column of the corresponding record is inserted and output in each string, and the result is that a string having a different mail address is automatically generated for each record.

살펴본 바와 같이, 사용자가 출력을 원하는 형태 그대로 텍스트를 입력하고 원하는 위치에 컬럼을 가져오기만 하면, 가상 컬럼 편집 영역에 보여지는 그대로 조회 결과를 얻을 수 있으므로, 연결 연산자 "||"나 SQL 문장의 형태 등의 기술적인 지식 없이도 가상 컬럼을 만들 수 있다.As you can see, you can get the query result as it is displayed in the virtual column editing area by simply inputting the text in the form desired by the user and fetching the column at the desired position. Therefore, the concatenation operator "||" It is possible to create a virtual column without any technical knowledge.

도 13은 계산 컬럼인 "계산컬럼1"을 생성하는 예이다.13 shows an example of generating a " computed column 1 "

계산 컬럼은 기존의 컬럼값을 계산하여 새로운 값으로 변환한 값을 얻기 위해 사용되는데, 도 13에서와 같이 "계산컬럼1"의 컬럼 정의를,The computed column is used to calculate an existing column value and convert it to a new value. The column definition of " computed column 1 "

100 + 100 + 넘버2Number 2

라고 하면, 쿼리의 select 이하에 math_93이라는 시스템 네임을 가진 컬럼이 "계산컬럼1"에 대응하여 추가된다., A column having a system name of math_93 is added in correspondence with " computed column 1 "

가상 컬럼 편집 영역에서의 편집에 따라,According to the editing in the virtual column editing area,

100 + Number2 as math_93100 + Number2 as math_93

이라는 컬럼의 정의가 삽입되었음을 알 수 있다. The definition of the column is inserted.

한편, CaseWhenThen 타입의 조건 컬럼은,On the other hand, the condition column of the CaseWhenThen type,

case when 조건 then 출력의 내용case when condition Then the contents of the output

과 같은 형태로 정의될 수 있다. Can be defined as follows.

조건 컬럼 생성시 가상 컬럼 편집 영역에는 기본적으로,When creating conditional columns, by default,

case when ___ then ___case when ___ then ___

이 표시될 것이며, 사용자는 조건에 포함시킬 컬럼을 가져와서 조건식을 완성하고 출력의 내용을 입력하면 된다. 예를 들어, 조건으로 "title like '하늘'"을 입력하고 출력의 내용으로 "바다"를 입력하면, title 컬럼의 값이 '하늘'과 유사하면 대신 '바다'를 반환하게 된다.Will be displayed and the user will have to complete the conditional expression and input the contents of the output by bringing in the column to be included in the condition. For example, if you enter " title like 'sky" as a condition and "ocean" as the content of the output, you would return "sea" if the title column's value is similar to' sky '.

도 14는 조건 컬럼인 "고객등급"을 생성하는 예이다.14 shows an example of generating a condition column " customer grade ".

조건컬럼 추가 버튼을 누르면 가상 컬럼 편집 영역(34)의 사용자 인터페이스는 도 14와 같이 변경될 것이다. 컬럼명을 입력하고 조건절 추가 버튼(140)을 누르면 조건절이 한 줄씩 추가된다.When the condition column adding button is pressed, the user interface of the virtual column editing area 34 will be changed as shown in FIG. If you enter the column name and click the Add Conditional Statement button (140), one conditional is added line by line.

추가되는 빈칸에 조건과 출력의 내용을 채워 넣으면 조건 컬럼의 정의가 완성된다. 컬럼 목록 영역(30)으로부터 첫번째 빈칸(142)으로 조건에 필요한 컬럼을 가져오고 두번째 빈칸(143)에 원하는 데이터를 입력함으로써 출력의 조건을 설정하고, 세번째 빈칸(144)에 출력의 내용을 입력하면 된다.If you add the condition and output contents to the added space, the definition of the condition column is completed. The condition of the output is set by fetching the column necessary for the condition from the column list area 30 to the first blank 142 and inputting the desired data into the second blank 143 and inputting the contents of the output to the third blank 144 do.

완성된 조건 컬럼 "고객등급"이 쿼리에 의해 조회되도록 하려면, 컬럼 목록 영역(30)에서 "고객등급"을 선택하면 된다. 그러면 쿼리 문장의 select 이하에 "고객등급" 컬럼에 해당하는 정의가 SQL 구문의 형식으로 자동 추가될 것이다.In order for the completed condition column "customer rating" to be queried by the query, "customer rating" is selected in the column list area 30. The definition corresponding to the "customer rating" column will be automatically added to the SQL statement format below the select in the query statement.

생성된 쿼리 문장을 실행한 조회의 결과에서, 테이블 컬럼 "Rank"가 "A"인 레코드에 대해서는 "고객등급" 컬럼의 값으로 "Royal User"가 출력되며, Rank"가 "B"인 레코드에 대해서는 "고객등급" 컬럼의 값으로 "Silver User"가 출력될 것이다."Royal User" is output as the value of the "customer rating" column for the record having the table column "Rank" of "A" in the result of the inquiry executing the generated query sentence, and the record having the rank " "Silver User" will be displayed as the value in the "Customer Rating" column.

이와 같이 조건 컬럼은 기존의 데이터 값을 조건에 따라 일괄적으로 다른 값으로 변환하여 보고 싶을 때 유용하게 이용될 수 있다.Thus, conditional columns can be useful when you want to convert existing data values into different values collectively according to the condition.

한편, 쿼리 디자이너는, 사용자의 요청이 있으면 필터 편집 영역(40)에서 생성된 필터의 내용을 XML 형태의 데이터로 변환하여 데이터베이스에 저장하도록 하는 지시를 데이터베이스 서버(10)로 전송할 것이다.Meanwhile, the query designer will transmit an instruction to the database server 10 to convert the contents of the filter created in the filter edit region 40 into XML-format data and store the converted data in the database when the user requests it.

또한, 사용자에 의해 XML 파일이 호출되면, 호출된 XML 파일을 해석하여 필터의 형태로 변환한 후 상기 필터 편집 영역(40)에 표시함으로써, 기존에 만들어진 필터를 다른 작업에 그대로 사용하거나 변경하여 사용하는 것이 가능해진다.When the XML file is called by the user, the called XML file is analyzed and converted into a filter form and displayed in the filter edit area 40, thereby allowing the existing filter to be used or changed for another operation .

도 14는 필터 편집 영역에서 만들어진 필터를 XML로 보여주는 화면을 예시한 것이다.FIG. 14 illustrates a screen showing XML created by a filter created in the filter editing area.

필터 편집 영역(40)의 XML 보기 버튼(43)을 누르면 편집 중인 필터를 XML로 기술한 파일(141)을 볼 수 있다. 쿼리 디자이너는 이 XML 파일을 데이터베이스에 저장하여, 추후 다른 뷰를 만들거나 다른 테이블에 대한 뷰를 만들때 불러와서 재활용할 수 있다. If the XML view button 43 of the filter editing area 40 is clicked, the file 141 describing the filter being edited in XML can be viewed. The query designer can save this XML file in the database and recall it later when creating other views or creating views on other tables.

도 14의 예에서는 필터의 조회 조건을 XML 규격에 따라 기술하였으나, 그에 한정되는 것은 아니며 다른 규격의 언어로 기술하여 저장하고 재사용하도록 구현하는 것도 가능하다.In the example of FIG. 14, the filter condition is described according to the XML standard. However, the filter condition is not limited to the XML standard.

본 발명의 일 실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. The method according to an embodiment of the present invention can be implemented in the form of a program command which can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions recorded on the medium may be those specially designed and constructed for the present invention or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like.

이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속한다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments, It belongs to the scope of right.

10: 데이터베이스 서버
11: 사용자 단말
14: 데이터베이스
10: Database server
11: User terminal
14: Database

Claims (8)

컴퓨터가,
쿼리에 의해 조회할 테이블의 컬럼들을 선택할 수 있는 컬럼 목록 영역, 조회 조건을 나타내는 필터를 편집할 수 있는 필터 편집 영역 및 생성중인 쿼리를 표시하기 위한 결과보기 영역을 포함하는 사용자 인터페이스 화면을 제공하는 단계와;
선택된 테이블의 컬럼 목록을 상기 컬럼 목록 영역에 표시하는 단계와;
사용자가 상기 컬럼 목록에서 컬럼을 하나 이상 선택함에 따라 그에 해당하는 쿼리 문장을 생성하여 상기 결과보기 영역에 표시하는 단계;를 포함하며,
사용자가 위지윅(WYSIWYG, what you see is what you get)을 기반으로 하여 원하는 컬럼을 이동시키고 조회 조건에 포함되는 오브젝트들을 이동 및 선택하는 것에 대응하여 쿼리를 디자인하며,
상기 쿼리의 디자인은 상기 컬럼 목록 영역 및 필터 편집 영역에서 이루어지며,
상기 쿼리를 디자인하는 것에 의해 쿼리 조건 자체의 변경이 이루어지는 것을 특징으로 하는 쿼리 디자인 방법.
Computer,
Providing a user interface screen including a column list area for selecting columns of a table to be queried by a query, a filter editing area for editing a filter indicating a query condition, and a result viewing area for displaying a query being generated Wow;
Displaying a list of columns of the selected table in the column list area;
Generating a query sentence corresponding to one or more columns selected from the column list by the user and displaying the generated query sentence in the result viewing area,
A user moves a desired column on the basis of WYSIWYG (WYSIWYG, what you see is what you get), designs a query corresponding to moving and selecting objects included in a query condition,
The design of the query is made in the column list area and the filter editing area,
Wherein a query condition itself is changed by designing the query.
제1항에 있어서,
상기 컬럼 목록 영역은 데이터 타입별로 컬럼의 표시 여부를 제어하기 위한 컬럼 필터를 포함하고,
상기 사용자가 상기 컬럼 필터에서 해제시킨 데이터 타입에 해당하는 컬럼은 상기 컬럼 목록 영역에서 소거되는 것을 특징으로 하는 쿼리 디자인 방법.
The method according to claim 1,
Wherein the column list area includes a column filter for controlling whether a column is displayed for each data type,
Wherein a column corresponding to a data type released by the user from the column filter is deleted from the column list area.
제1항에 있어서,
상기 컬럼 목록 영역은 테이블의 컬럼을 이용하여 새로운 데이터를 가지도록 재구성된 가상 컬럼을 정의하여 추가할 수 있는 사용자 인터페이스를 포함하는 것을 특징으로 하는 쿼리 디자인 방법.
The method according to claim 1,
Wherein the column list area includes a user interface that can define and add reconstructed virtual columns to have new data using the columns of the table.
제3항에 있어서,
상기 가상 컬럼은, 테이블의 컬럼 값을 이용한 계산식으로 정의되는 계산 컬럼, 테이블의 컬럼 값을 포함하는 문자열로 정의되는 포맷 컬럼, 테이블의 컬럼 값에 따른 출력 조건으로 정의되는 조건 컬럼 중 적어도 하나를 포함하는 것을 특징으로 하는 쿼리 디자인 방법.
The method of claim 3,
The virtual column includes at least one of a computation column defined by a computation formula using a column value of a table, a format column defined by a string including a column value of the table, and a condition column defined by an output condition based on a column value of the table A query design method.
제1항에 있어서,
상기 필터 편집 영역에서 편집되는 필터는 한 라인 당 하나씩 배치되는 조건절을 하나 이상 포함하고, 조건절들 간의 관계는 이들을 묶는 괄호와 논리 연산자에 의해 정의되며, 각 조건절에 필요한 컬럼은 드래그앤드롭에 의해 상기 컬럼 목록 영역으로부터 이동되는 것을 특징으로 하는 쿼리 디자인 방법.
The method according to claim 1,
Wherein the filter edited in the filter editing area includes at least one conditional rule arranged for each line, and the relationship between the conditional expressions is defined by parentheses and logical operators that bind the conditional expressions and the columns required for each conditional rule are determined by drag- Is moved from the column list area.
제1항에 있어서,
상기 필터 편집 영역에서 편집된 필터의 내용을 XML 파일로 변환하여 저장하는 단계와;
사용자에 의해 상기 XML 파일이 호출되면 상기 XML 파일을 해석하여 필터의 형태로 변환한 후 상기 필터 편집 영역에 표시하는 단계;를 더 포함하는 것을 특징으로 하는 쿼리 디자인 방법.
The method according to claim 1,
Converting the contents of the edited filter in the filter editing area into an XML file and storing the converted XML file;
And when the XML file is called by the user, interpreting the XML file, converting the XML file into a filter format, and displaying the XML file in the filter edit area.
쿼리 디자인 방법을 수행하기 위해 기록매체에 기록된 컴퓨터 프로그램에 있어서, 상기 방법은, 컴퓨터가,
쿼리에 의해 조회할 테이블의 컬럼들을 선택할 수 있는 컬럼 목록 영역, 조회 조건을 나타내는 필터를 편집할 수 있는 필터 편집 영역 및 생성중인 쿼리를 표시하기 위한 결과보기 영역을 포함하는 사용자 인터페이스 화면을 제공하는 단계와;
선택된 테이블의 컬럼 목록을 상기 컬럼 목록 영역에 표시하는 단계와;
사용자가 상기 컬럼 목록에서 컬럼을 하나 이상 선택함에 따라 그에 해당하는 쿼리 문장을 생성하여 상기 결과보기 영역에 표시하는 단계;를 포함하며,
사용자가 위지윅(WYSIWYG, what you see is what you get)을 기반으로 하여 원하는 컬럼을 이동시키고 조회 조건에 포함되는 오브젝트들을 이동 및 선택하는 것에 대응하여 쿼리를 디자인하며,
상기 쿼리의 디자인은 상기 컬럼 목록 영역 및 필터 편집 영역에서 이루어지며,
상기 쿼리를 디자인하는 것에 의해 쿼리 조건 자체의 변경이 이루어지는 것을 특징으로 하는 컴퓨터 프로그램.
A computer program recorded on a recording medium for performing a query design method, the method comprising:
Providing a user interface screen including a column list area for selecting columns of a table to be queried by a query, a filter editing area for editing a filter indicating a query condition, and a result viewing area for displaying a query being generated Wow;
Displaying a list of columns of the selected table in the column list area;
Generating a query sentence corresponding to one or more columns selected from the column list by the user and displaying the generated query sentence in the result viewing area,
A user moves a desired column on the basis of WYSIWYG (WYSIWYG, what you see is what you get), designs a query corresponding to moving and selecting objects included in a query condition,
The design of the query is made in the column list area and the filter editing area,
Characterized in that the query condition itself is altered by designing the query.
제1항에 있어서,
상기 사용자의 입력에 따라 상기 필터 편집 영역에서의 필터 편집을 지원하되, 상기 사용자가 신규 논리 연산자를 선택하면 신규 조건절과 상기 신규 논리 연산자를 추가하고 현재의 조건절과 상기 신규 조건절 간의 관계를 정의하는 괄호를 추가하는 단계와;
상기 필터 편집 영역에서 편집되는 필터의 변화에 따라 상기 결과보기 영역의 쿼리 문장에 포함되는 조회 조건을 변경시키는 단계;를 더 포함하는 쿼리 디자인 방법.
The method according to claim 1,
A filter editing unit for editing a filter in the filter editing area according to an input of the user, wherein when the user selects a new logical operator, a new conditional expression and a new logical operator are added, and a parenthesis ; ≪ / RTI >
And changing a query condition included in a query sentence of the result viewing area according to a change of a filter edited in the filter editing area.
KR1020160095431A 2016-07-05 2016-07-27 Method and computer program for designing a query KR101900811B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020160084790 2016-07-05
KR20160084790 2016-07-05

Publications (2)

Publication Number Publication Date
KR20180005088A KR20180005088A (en) 2018-01-15
KR101900811B1 true KR101900811B1 (en) 2018-09-20

Family

ID=61001238

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160095431A KR101900811B1 (en) 2016-07-05 2016-07-27 Method and computer program for designing a query

Country Status (1)

Country Link
KR (1) KR101900811B1 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108446344A (en) * 2018-03-06 2018-08-24 政采云有限公司 Custom condition querying method and system
KR101951719B1 (en) * 2018-07-26 2019-02-25 (주)비아이매트릭스 A web reporting design system with programming event handling by using graphic interface
KR102115980B1 (en) * 2020-01-29 2020-05-27 주식회사 이글루시큐리티 Method and system to run data from various control servers based on various kinds of database on dashboard
KR102475796B1 (en) * 2020-09-17 2022-12-08 에스케이플래닛 주식회사 Method and apparatus for providing chatbot service using condition expression generated interface
CN112434005A (en) * 2020-10-30 2021-03-02 惠州华阳通用电子有限公司 Browsing list generation device and implementation method

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100352500B1 (en) * 1999-07-30 2002-09-11 한국전산원 Method for automation of form controls generation
KR100581687B1 (en) * 2004-01-26 2006-05-22 이생희 A unification method of Query Analyzers of database management systems
US20100228752A1 (en) * 2009-02-25 2010-09-09 Microsoft Corporation Multi-condition filtering of an interactive summary table
KR101368068B1 (en) * 2012-03-29 2014-02-27 주식회사 엘지씨엔에스 Method of constructing database, server performing the same and storage media storing the same

Also Published As

Publication number Publication date
KR20180005088A (en) 2018-01-15

Similar Documents

Publication Publication Date Title
KR101900811B1 (en) Method and computer program for designing a query
CN107844299B (en) Method for implementing Web application development tool
AU2020260374B2 (en) Building reports
CN110673848B (en) Enterprise information management system configuration device based on JavaWeb
US8479093B2 (en) Metamodel-based automatic report generation
CA3084152C (en) Spreadsheet-based software application development
RU2679977C1 (en) Constructing queries for execution over multi-dimensional data structures
Frischmuth et al. Ontowiki–an authoring, publication and visualization interface for the data web
KR20060106639A (en) Data-driven actions for network forms
US20140136958A1 (en) Relating to distributed access infrastructure for a database
KR101951719B1 (en) A web reporting design system with programming event handling by using graphic interface
US10776351B2 (en) Automatic core data service view generator
US8230319B2 (en) Web-based visualization, refresh, and consumption of data-linked diagrams
JP7339628B2 (en) Online report creation system using Excel tools
US20100107095A1 (en) Template-based calculator application
JPWO2005098658A1 (en) Document processing apparatus and document processing method
JPWO2005098660A1 (en) Document processing apparatus and document processing method
US20190250892A1 (en) Integrating application features into a platform interface based on application metadata
Soni et al. A survey on automatic dashboard recommendation systems
US11663199B1 (en) Application development based on stored data
JP2009211599A (en) Mapping definition creation system and mapping definition creation program
KR100902193B1 (en) A System For Composing Report, A Method ? A System For Providing A Made-To-Order Report, And A Storage Medium
JP5084702B2 (en) Analysis data input device, CAE device, analysis data input method, and program
JP7216377B2 (en) Online reporting system with query binding capabilities
Yu Design and Implementation of an Agile-SOFL GUI-Aided Tool

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