KR101318234B1 - Data cache method and device for database system - Google Patents

Data cache method and device for database system Download PDF

Info

Publication number
KR101318234B1
KR101318234B1 KR1020120043142A KR20120043142A KR101318234B1 KR 101318234 B1 KR101318234 B1 KR 101318234B1 KR 1020120043142 A KR1020120043142 A KR 1020120043142A KR 20120043142 A KR20120043142 A KR 20120043142A KR 101318234 B1 KR101318234 B1 KR 101318234B1
Authority
KR
South Korea
Prior art keywords
query
result information
cache
information
database system
Prior art date
Application number
KR1020120043142A
Other languages
Korean (ko)
Inventor
정해영
Original Assignee
주식회사 비트랜
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 비트랜 filed Critical 주식회사 비트랜
Priority to KR1020120043142A priority Critical patent/KR101318234B1/en
Application granted granted Critical
Publication of KR101318234B1 publication Critical patent/KR101318234B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

PURPOSE: A data cache method for a database and a device thereof are provided to process questions which are transmitted to the database, thereby offering effective and fast responses. CONSTITUTION: A question analysis unit (210) analyzes an inputted question and distinguishes the same for the inquiry or for the update. When the inputted question is for the query, a cache management unit (230) confirms the inputted question in a cache storage unit (220). When the inputted question is stored in the cache storage unit, the cache management unit extracts and outputs result information according to the inputted question. When the inputted question is not stored in the cache storage unit, the cache management unit receives/outputs the result information by calling the inputted question to a database and registers the inputted question and the result information in the cache storage unit. [Reference numerals] (210) Question analysis unit; (220) Cache storage unit; (230) Cache management unit; (240) Authentication processing unit; (250) Main control unit

Description

데이터베이스 시스템을 위한 데이터 캐시 방법 및 장치{Data cache method and device for database system}Data cache method and device for database system

본 발명은 데이터베이스 관리에 관한 것으로서, 좀 더 상세하게는 데이터베이스 시스템의 처리 부하를 줄이기 위한 데이터 캐시(cache) 방법 및 장치에 관한 것이다.
The present invention relates to database management, and more particularly, to a data cache method and apparatus for reducing the processing load of a database system.

인터넷 등의 발달로 방대한 양의 정보가 제공되고 있는 요즘, 대부분의 정보 데이터는 데이터베이스 (Database)로 관리 및 운영되며, 일반적으로 이를 관리하는 시스템을 DBMS(Database Management System)라 칭한다.Nowadays, the vast amount of information is provided by the development of the Internet, etc. Most of the information data is managed and operated as a database (Database), and generally the system that manages it is called DBMS (Database Management System).

인터넷에 정보를 제공하는 간단한 공지사항을 비롯하여 대규모의 회사 정보나 거래정보 등 대용량의 정보에 이르기 까지 다양한 많은 량의 정보를 DBMS에 의지하여 정보를 관리 및 이용하고 있다.The company manages and uses a large amount of information by relying on DBMS, ranging from simple announcements that provide information to the Internet, to large-scale information such as large company information or transaction information.

일반적으로 인터넷에 정보가 제공되기 위해서는 다음과 같은 데이터의 흐름이 이루어 진다.In general, the following data flow occurs to provide information to the Internet.

DBMS -> WAS(웹 어플리케이션 서버(web application server)) -> 어플리케이션 프로그램(JAVA, 닷넷 등) -> 웹서버 -> L4 -> 방화벽 -> 라우터등의 인터넷 중계장치 ->사용자방화벽 -> 사용자 PC.DBMS-> WAS (web application server)-> Application program (JAVA, .Net etc.)-> Web server-> L4-> Firewall-> Internet relay device such as router-> User firewall-> User PC .

인터넷에 제공되는 정보의 기하급수적 증가와 사용자수의 증가 그리고 전달되는 데이터의 반복횟수의 증가로 인해 위의 형태의 일반적인 데이터 흐름만으로는 사용자의 요구에 대해 빠른 시간 내에 대량의 요구를 처리하기에는 여러 가지 문제 및 자원의 한계가 발생하게 된다.Due to the exponential growth of information provided to the Internet, the increase in the number of users, and the increase in the number of repetitions of data transmitted, the above general data flow alone has many problems in dealing with the large demands of users in a short time. And resource limitations.

그래서 현재에는 각 단계별로 캐시 서버(cache server)를 구축하여 (웹가속기 / CDN / 브라우저캐시 등) 사용자에게 전달되는 데이터가 DBMS에서부터 발생되지 않고 중간의 캐시 서버에서 처리하여 전달하도록 하는 장치들을 사용함으로써 서버의 부하를 줄이면서도 사용자는 빠른 응답을 얻을 수 있는 시스템을 구축하고 있다.So now, by building a cache server for each stage (web accelerator / CDN / browser cache, etc.) by using devices that process data to be delivered to the intermediate cache server instead of originating from the DBMS We are building a system that reduces the load on the server and allows the user to get a quick response.

하지만 이러한 캐시 장치에 가장 큰 문제는 캐시된 데이터가 정적 데이터거나 갱신 주기가 비교적 긴 데이터인 경우에는 효과적인 캐시를 할 수 있지만 자주 변하는 데이터 이거나 갱신 주기를 알 수 없는 데이터인 경우에는 사용자에게 오래된 데이터 혹은 잘못된 정보를 제공하게 된다.The biggest problem with these cache devices, however, is that if the cached data is static data or data with relatively long update cycles, it can be effectively cached, but if the data changes frequently, or if the update cycles are unknown, then the user may have old data or It will give you incorrect information.

이러한 이유는 각각의 장치 중간에 놓여 있는 캐시장치들로서는 해당 데이터가 수정되었는지 최신의 데이터 인지를 정확하게 판단하기가 곤란한 경우가 발생하기 때문이다.This is because it is difficult for the cache devices in the middle of each device to accurately determine whether the data is modified or the latest data.

이에 대한 대책으로 결과가 민감한 데이터인 경우에는 캐시 대상에서 제외시켜서 서비스를 제공하고, 상대적으로 데이터 갱신이 민감하지 않고 많은 사용자에게 동일한 데이터를 제공하는 경우의 데이터에 한정하여 캐시를 적용하는 형태로 서비스가 이루어 지고 있다.As a countermeasure, if the result is sensitive data, the service is provided by excluding it from the target of the cache, and the service is applied in the form of applying the cache to the data when the data is relatively insensitive and provides the same data to many users. Is being done.

또한 좀더 능동적으로 캐시를 운영하는 경우 WAS에서 서비스 페이지를 구축할 때 개발자가 일일이 해당 데이터에 대한 캐시 정책을 결정하여 자바(JAVA) 등의 프로그램언어로 해당 데이터의 캐시 및 캐시 갱신에 대한 로직을 구현하여 운영하고 있다.In addition, if the cache is actively managed, the developer decides the cache policy for the data when building the service page in WAS, and implements the logic for caching and updating the cache of data in a program language such as JAVA. To operate.

그러나 이러한 경우에도 문제점이 발생되는데 대부분의 기업망에서 제공하는 서비스는 서비스 신뢰도 및 대량의 부하에 대한 대비로 이중화(서버 장치의 복수개 운영)로 시스템이 구성되어 있는데 WAS에서 구현하는 캐시의 경우 이중화된 시스템에서는 개별적인 장치 내에서만 효과적인 캐시가 이루어 질 뿐 다른 서버(WAS)에서 제공되는 데이터에 대해서는 캐시가 안된(두 개의 WAS가 서로 다른 결과를 제공하게 되는) 정보를 제공하게 된다.However, this problem occurs, too. The service provided by most corporate networks is composed of redundancy (multiple operations of server devices) for service reliability and heavy load. The system only caches effectively within individual devices, and provides uncached information for data provided by different servers (two WASs provide different results).

이를 해결하기 위해서는 클러스터링(clustering)이라 하는 복잡한 데이터 연동 기술이 동반되어야 하며, 이렇게 구성되는 시스템은 개발자의 캐시 정책 구현 능력에 의존하여 성능 차이가 상당히 발생할 수 있게 되어 전문적인 캐시 지식을 갖춘 개발자가 아닌 일반 개발자에 의한 캐시 정책 수립 시에는 캐시 효과가 떨어지거나 갱신된 데이터가 제대로 사용자에게 전달되지 못하는 현상이 발생하게 되어, 결과적으로는 민감한 데이타의 경우 캐시를 하지 않고 그냥 DBMS에서 데이터를 매번 호출하여 사용자에게 전달하게 된다.In order to solve this problem, complex data interworking technology called clustering must be accompanied, and the system configured in this way can cause significant performance difference depending on the developer's ability to implement cache policy. When the cache policy is established by the general developer, the cache effect is inferior or the updated data is not delivered to the user. As a result, the sensitive data is not cached and the data is simply called every time from the DBMS. Will be sent to.

또한 정적인 형태의 질의(Java 등의 프로그램에 삽입되어 사용자에게 서비스되는 화면에서 사용되는 질의)는 여러 가지 방법에 의해서 캐시를 할 수 있는 장치가 많이 구성되어 있는 반면에, 동적인 질의(OLAP(On-line Analytical Processing)나 사용자가 DBMS에 직접 질의를 보내는 경우 혹은 어플리케이션이 DBMS에 직접 접속하는 경우)에 대해서는 WAS나 웹가속기 등의 캐시장치를 거치지 않기 때문에 캐시장치가 지원을 하지 못하게 된다.
In addition, static queries (queries used in the screen that are inserted into programs such as Java and served to users) are composed of many devices that can be cached by various methods, whereas dynamic queries (OLAP ( On-line Analytical Processing) or when a user sends a query directly to a DBMS or when an application connects directly to a DBMS, the cache cannot be supported because it does not go through a cache device such as a WAS or web accelerator.

따라서, 본 발명은 상술한 문제점을 해결하기 위해 안출된 것으로서, 데이터베이스 시스템(DBMS)의 앞 단에 위치하도록 하여, 보다 효과적이고 빠른 응답을 구현할 수 있는 데이터 캐시 방법 및 장치를 제공하기 위한 것이다.Accordingly, the present invention has been made to solve the above-described problem, and to provide a data cache method and apparatus that can be located in front of a database system (DBMS), which can implement a more effective and faster response.

또한, 본 발명은 사용자 혹은 데이터베이스 시스템을 사용하는 어플리케이션(WAS 등)이 직접 접근을 하지 않고 하나의 보안 인증과정을 더 거치게 함으로써, 데이터베이스 시스템이 제공하지 못하는 좀더 세밀하고 상세한 사용자의 데이터 접근을 통제하여 내부사용자에 의한 데이터 누출사고에 대한 차단을 이룰 수 있도록 하는 데이터베이스 시스템을 위한 데이터 캐시 방법 및 장치를 제공하기 위한 것이다.
In addition, the present invention allows a user or an application using a database system (WAS, etc.) to go through one more security authentication process without direct access, thereby controlling more detailed and detailed user data access that the database system cannot provide. An object of the present invention is to provide a method and apparatus for caching data for a database system, which enables blocking of data leakage by an internal user.

본 발명의 일 측면에 따르면, 데이터베이스 시스템과 연결된 장치에 있어서, 캐시저장부; 입력된 질의문을 분석하여 조회용인지 갱신용인지 여부를 판단하는 질의분석부; 및 상기 질의문이 조회성인 경우 상기 질의문이 캐시저장부에 등록되어 있는지를 확인하고, 확인 결과에 따라, 등록된 경우 상기 캐시저장부에 저장된 상기 질의문에 따른 결과정보를 추출하여 출력하고, 이와 달리 등록되지 않은 경우엔 상기 데이터베이스 시스템으로 상기 질의문을 호출하여 상기 결과정보를 수신 및 출력하고 상기 질의문과 상기 결과정보를 상기 캐시저장부에 등록하는 캐시관리부를 포함하는 데이터 캐시 장치가 제공된다.According to an aspect of the present invention, an apparatus connected to a database system, Cache storage unit; A query analyzing unit that analyzes the input query and determines whether the query is for update or update; And checking whether the query is registered in the cache storage unit when the query is inquiring, and extracting and outputting result information according to the query stored in the cache storage unit when the query is registered. In contrast, if not registered, a data cache device including a cache manager for receiving and outputting the result information by calling the query statement to the database system and registering the query statement and the result information in the cache storage unit is provided. .

여기서, 상기 캐시저장부에는 상기 질의문과 상기 결과정보를 갖는 질의결과정보가 순번대로 저장되고, 상기 데이터베이스 시스템에서 관리되는 데이터의 테이블 단위로 관련질의결과정보의 순번에 대한 정보를 갖는 테이블사용정보가 더 저장될 수 있다.Here, the cache storage unit sequentially stores the query result information having the query statement and the result information, and table usage information having information on the order of the related query result information in table units of data managed by the database system. More can be stored.

또한, 상기 질의분석부에 의해 상기 질의문이 갱신용으로 분석된 경우, 상기 캐시관리부는 상기 질의문을 상기 데이터베이스 시스템에 반영하고, 상기 캐시저장부에 저장된 테이블사용정보를 참조하여 상기 질의문에 따른 테이블의 테이블사용정보에 기록된 순번의 질의결과정보를 상기 캐시저장부에서 삭제한다.In addition, when the query is analyzed for update by the query analyzing unit, the cache manager reflects the query statement to the database system and references the table usage information stored in the cache storage unit. The query result information recorded in the table usage information of the corresponding table is deleted from the cache storage unit.

또한, 미리 설정된 질의문보안정보를 참조하여, 상기 질의문에 설정된 보안등급에 따른 사용자 권한을 인증처리하는 인증처리부가 더 포함될 수 있다.
In addition, an authentication processing unit for authenticating a user's authority according to the security level set in the query may be further included with reference to the preset query security information.

본 발명의 다른 측면에 따르면, 데이터베이스 시스템과 연결된 장치에서의 데이터 캐시 방법에 있어서, 입력된 질의문을 분석하여 조회용인지 여부를 판단하는 단계; 상기 질의문이 조회용인 경우, 상기 질의문이 질의결과정보로서 상기 질의문에 따른 결과정보와 함께 등록되어 저장수단에 저장되어 있는지를 확인하는 단계; 및 확인 결과에 따라, 등록된 경우 상기 저장수단으로부터 상기 결과정보를 추출하여 출력하고, 이와 달리 등록되지 않은 경우엔 상기 데이터베이스 시스템으로부터 상기 질의문을 호출하여 상기 결과정보를 수신하여 출력하고 상기 질의문과 상기 결과정보를 새로운 질의결과정보로서 등록하는 단계를 포함하는 데이터베이스 시스템을 위한 데이터 캐시 방법 및 그 방법을 실행하는 프로그램이 기록된 기록매체가 제공된다.According to another aspect of the present invention, a data cache method in a device connected to a database system, the method comprising: analyzing the input query to determine whether or not for inquiry; If the query is for inquiry, checking whether the query is registered with the result information according to the query as query result information and stored in the storage means; And in accordance with a confirmation result, extracts the result information from the storage means when it is registered and outputs it. Otherwise, if not registered, the query statement is called from the database system to receive and output the result information. There is provided a data cache method for a database system comprising the step of registering the result information as new query result information and a recording medium on which a program for executing the method is recorded.

여기서, 미리 설정된 질의문보안정보를 참조하여, 상기 질의문에 설정된 보안등급에 따른 사용자 권한을 인증하는 단계가 더 포함될 수 있다.Here, the method may further include authenticating a user's authority according to the security level set in the query statement by referring to the preset query statement security information.

또한, 상기 새로운 질의결과정보는 새로운 순번을 가지며, 상기 결과정보에 상응하는 테이블의 테이블사용정보로서 상기 새로운 순번을 기록하는 단계가 더 포함될 수 있다.The new query result information may have a new order number, and the method may further include recording the new order number as table usage information of a table corresponding to the result information.

또한, 상기 질의문이 갱신용으로 분석된 경우, 상기 질의문을 상기 데이터베이스 시스템에 반영하는 단계; 및 상기 질의문에 따른 테이블의 테이블사용정보로서 기록된 순번의 질의결과정보를 삭제하는 단계가 포함될 수 있다.
In addition, if the query is analyzed for updating, reflecting the query to the database system; And deleting the order of the query result information recorded as the table usage information of the table according to the query.

본 발명에 따르면, 데이터베이스 시스템의 앞 단에 위치하여 데이터베이스 시스템으로 유입되는 모든 질의문에 대해 처리함으로써, 보다 효과적이고 빠른 응답을 제공하는 데이터 캐시 장치 및 그 장치에서의 처리 방법을 제공할 수 있다.According to the present invention, it is possible to provide a data cache apparatus and a method of processing in the apparatus that provide a more effective and faster response by processing all query statements which are located at the front of the database system and flow into the database system.

또한, 본 발명에 따르면, 질의문 단위로 사용자의 접근 권한을 인증처리함으로써, 입력된 질의문만으로 사용자의 접근권한을 인증처리할 수 있어 인증처리의 간편성뿐 아니라 데이터의 보안 설정 또는 갱신에 대한 관리의 편의성을 제공한다.
In addition, according to the present invention, by authenticating the user's access authority in the unit of a query statement, it is possible to authenticate the user's access authority only by the input query statement to manage not only the simplicity of authentication processing but also the security setting or update of data. To provide convenience.

도 1은 본 발명의 일 실시예에 따른 데이터베이스 시스템을 위한 데이터 캐시 기능을 위한 전체 시스템을 개략적으로 나타낸 구성도.
도 2는 본 발명의 일 실시예에 따른 캐시처리장치의 구성을 도시한 블록도.
도 3은 본 발명의 일 실시예에 따른 질의결과정보를 예시한 테이블.
도 4는 본 발명의 일 실시예에 따른 테이블사용정보를 도시한 예시도.
도 5는 본 발명의 일 실시예에 따른 질의문보안정보를 예시한 테이블.
도 6은 본 발명의 일 실시예에 따른 데이터베이스 시스템을 위한 캐시 과정을 도시한 흐름도.
도 7은 본 발명의 다른 실시예에 다른 질의문에 설정된 보안정보를 이용하여 보안이 강화된 캐시 기능을 제공하는 과정을 도시한 흐름도.
1 is a schematic diagram showing an entire system for a data cache function for a database system according to an embodiment of the present invention.
Figure 2 is a block diagram showing the configuration of a cache processing apparatus according to an embodiment of the present invention.
3 is a table illustrating query result information according to an embodiment of the present invention.
4 is an exemplary view showing table usage information according to an embodiment of the present invention.
5 is a table illustrating query statement security information according to an embodiment of the present invention.
6 is a flowchart illustrating a caching process for a database system according to an embodiment of the present invention.
7 is a flowchart illustrating a process of providing a security-enhanced cache function using security information set in another query statement in another embodiment of the present invention.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that the invention is not intended to be limited to the particular embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention.

이하, 첨부한 도면들을 참조하여 본 발명에 따른 실시예들을 상세히 설명하기로 하며, 첨부 도면을 참조하여 설명함에 있어 도면 부호에 상관없이 동일하거나 대응하는 구성 요소는 동일한 참조번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Reference will now be made in detail to embodiments of the present invention, examples of which are illustrated in the accompanying drawings, wherein like reference numerals refer to the like elements throughout the specification and claims. The description will be omitted.

도 1은 본 발명의 일 실시예에 따른 데이터베이스 시스템을 위한 데이터 캐시 기능을 위한 전체 시스템을 개략적으로 나타낸 구성도이다.1 is a configuration diagram schematically showing an entire system for a data cache function for a database system according to an embodiment of the present invention.

도 1을 참조하면, 본 실시예에 따른 전체시스템은 데이터베이스 시스템(10, DBMS), 캐시처리장치(30) 및 사용자(50)를 포함한다.Referring to FIG. 1, the entire system according to the present embodiment includes a database system 10 (DBMS), a cache processing apparatus 30, and a user 50.

본 실시예에 따른 캐시처리장치(30)는 데이터베이스 시스템(10)의 앞 단에 위치하여, 데이터베이스 시스템(10)으로 유입되는 모든 질의를 처리한다. 다시 말해, 사용자단말 또는 WAS와 같은 데이터를 요구하는 클라이언트 어플리케이션(Client Application)과 같은 사용자(50)로부터 요구되는 모든 질의(예를 들어, SQL)는 데이터베이스 시스템(10)으로 직접 호출되지 않고 캐시처리장치(30)로 유입되는 것이다. The cache processing apparatus 30 according to the present embodiment is located in front of the database system 10 and processes all queries flowing into the database system 10. In other words, all queries (e.g., SQL) required from a user 50, such as a client application that requires data such as a user terminal or WAS, are not cached directly into the database system 10 but cached. It is introduced into the device (30).

그리고 캐시처리장치(30)는 인터넷 장치인 프록시 서버(proxy server)와 같이, 데이터베이스 시스템(10)의 데이터 일부를 캐시처리하여 저장하고 있어, 질의에 대한 보다 빠른 응답 결과를 사용자(50)에게 제공한다. 다시 말해, 캐시처리장치(30)는 질의에 대한 응답데이터를 데이터베이스 시스템(10)으로부터 항상 추출하는 것이 아니라, 해당 질의에 대해 이전에 입력된 이력이 있는 경우 해당 질의 및 그에 따른 결과정보인 응답데이터를 저장하고 있어 곧바로 사용자(50)에게 응답데이터를 제공하는 캐시 기능을 갖는 것이다. 캐시 기능 수행 방법에 대한 설명은 차후 상세히 설명하기로 한다.The cache processing device 30 caches and stores a part of data of the database system 10, such as a proxy server, which is an Internet device, and provides the user 50 with a faster response to the query. do. In other words, the cache processing apparatus 30 does not always extract response data for a query from the database system 10, but if there is a history previously input for the query, the response data which is the query and the result information thereof. It has a cache function to store the response data to the user 50 immediately. A description of how to perform the cache function will be described later.

이렇게 캐시처리장치(30)는 프록시(Proxy) 기능을 이용함으로써 데이터베이스 시스템(10)으로 들어오고 데이터베이스 시스템(10)로부터 나가는 모든 데이터에 대해서 중간에 통제(캐시여부/사용자 통제여부) 할 수 있는 수단을 얻게 된다. 또한 캐시처리장치(30)에 의해 데이터가 처리됨으로써, 현재 진행중인 질의문(SQL 구문 등)과 작동상태/ 동작시간 등의 모니터링 정보와 함께 비정상적인 수행(지나치게 많은 시간/자원을 소모)하는 질의문을 확인하고 이를 삭제할 수 있는 수단을 제공할 수 있게 된다.In this way, the cache processing device 30 is a means capable of controlling (caching or not controlling the user) in the middle of all data entering and exiting the database system 10 by using a proxy function. You get In addition, the data is processed by the cache processing unit 30, so that the query statement that performs abnormally (consuming too much time / resources) with the monitoring information such as the current query (SQL statement, etc.) and operation status / operating time, etc. It can provide a means to check and delete it.

또한 프록시 기능을 이용한 캐시 방식에 의해, 어플리케이션이나 WAS의 소프트웨어적 환경의 변화(데이터베이스 시스템 접속 모듈의 변화)나 프로그램의 수정이 필요 없이 하드웨어적인 캐시처리장치(30)의 삽입만으로 운영중인 시스템에도 간편하고 효과적으로 데이터베이스 시스템에 캐시를 도입할 수 있게 된다.In addition, the cache method using a proxy function is convenient for a system that is operated only by inserting a hardware cache processing device 30 without changing a software environment of the application or WAS (change of a database system connection module) or modifying a program. And effectively introduce a cache into the database system.

또한, 캐시처리장치(30)는 데이터베이스 시스템으로 유입되는 모든 질의를 처리하게 되므로, 각 질의 또는 사용자에 대한 인증처리를 수행할 수 있으며 이로 인해, 데이터베이스 시스템(10)으로 접근 권한 등을 처리하는 보안 기능을 제공할 수 있다. In addition, since the cache processing device 30 processes all queries flowing into the database system, it may perform authentication processing for each query or user, and as a result, security to handle access rights and the like to the database system 10. Can provide functionality.

1차적으로 캐시처리장치(30)는 해당 데이터베이스 시스템(10)에 물리적으로 접근할 수 있는 권한을 체크하는 사용자 인증의 단계를 자체적으로 더 구현함으로써 실제 데이터베이스 시스템(10)으로의 접근에 대한 권한을 더욱 세분화시킬 수 있는 방법을 제공한다.Initially, the cache processing apparatus 30 further implements a user authentication step of checking the authority to physically access the database system 10 by itself, thereby granting authority for access to the actual database system 10. It provides a more granular way.

경우에 따라서는 데이터베이스 시스템(10)을 어플리케이션이 접근해야 하는 경우가 있는데 일반적으로는 데이터베이스 시스템(10)은 방화벽으로 보호하여 방화벽 외부에서는 접근을 못하도록 제한하도록 한다. WAS 등의 웹을 지원하는 시스템인 경우에도 데이터베이스 시스템(10)에 접근하는 시스템은 방화벽 안쪽에 두거나 해당 서버만을 예외적으로 방화벽을 오픈(open)하게 된다. 하지만 CS Program 등과 같이 경우에 따라서는 데이터베이스 시스템(10)에 직접적으로 접근이 필요한 경우도 발생하게 되는데, 이때 캐시처리장치(30)의 프록시 기능뿐 아니라 보안 기능을 이용하여 접속 사용자에 대한 접근을 통제 관리할 수 있게 한다.In some cases, an application needs to access the database system 10. In general, the database system 10 is protected by a firewall to restrict access from outside the firewall. Even in the case of a web supporting system such as WAS, the system accessing the database system 10 is placed inside the firewall or only the server is opened. However, in some cases, such as a CS program, direct access to the database system 10 may occur. In this case, access to the access user is controlled using a security function as well as a proxy function of the cache processing apparatus 30. Make it manageable.

일반적으로는 데이터베이스 시스템(10)의 권한 관리는 사용자별 카테고리, 테이블, 뷰 단위로 접근권한을 통제하게 된다. 하지만 실제 운영환경에 있어서는 테이블단위나 뷰단위로는 지나치게 많은 데이터가 접근자에게 노출되는 상황이 생기게 된다.In general, the authority management of the database system 10 controls access rights in categories, tables, and views for each user. However, in a real operating environment, too much data is exposed to accessors in table units or view units.

예를 들어 특정기업의 매출정보를 관리하는 테이블이 있다고 가정을 한다면 이 테이블에 접근 권한(Select권한만이라 하더라도)만 있다면 이 테이블에 있는 모든 데이터를 접근할 수 있게 된다. 그러므로 예를 들어 회사 정책상 자기 부서의 매출정보만을 보도록 허락된 정책을 취한다 하더라도 테이블에 접근 권한이 있는 사용자가 데이터베이스 시스템(10)에 직접 접속을 하게 되면 모든 부서의 매출정보를 획득할 수 있게 된다. 또한 이를 방지하기 위해 모든 부서별로 뷰(View)를 만들어 모든 사용자별로 뷰의 권한을 설정하는 것도 어려운 상황이다.For example, suppose you have a table that manages sales information for a specific company. If you only have access to the table (even if you have Select permission), you can access all the data in this table. Thus, for example, even if the company policy allows a user to view only sales information of his or her department, if a user with access to the table directly accesses the database system 10, the sales information of all departments can be obtained. do. Also, to prevent this, it is difficult to set the view permission for every user by creating a view for every department.

이에 따라 본 발명의 일실시예에 따른 캐시처리장치(30)는 권한 설정을 일반적인 데이터베이스 시스템(10)의 접근 권한인 테이블이나 뷰 권한 뿐 아니라 특정 질의문만을 이용할 수 있도록 하는 보안정책을 제공할 수 있다. 다시 말해, 데이터베이스 시스템(10)으로의 접근을 원하는 사용자의 사용권한에 대해 질의문 단위의 실행권한 인증 기능을 구현하는 것이다. 질의문 단위의 보안 방식에 대해서는 차후 관련 도면을 참조하여 상세히 설명하기로 한다.Accordingly, the cache processing apparatus 30 according to an embodiment of the present invention may provide a security policy that allows the use of a specific query statement as well as a table or view right that is an access right of the general database system 10. have. In other words, the execution authority authentication function for each query statement is implemented for a user's permission to access the database system 10. The security method of the query unit will be described in detail later with reference to related drawings.

이하, 상기한 캐시처리장치(30)의 구성 및 그 캐시 방법에 대해 설명하기로 한다.
Hereinafter, the configuration of the above-described cache processing apparatus 30 and its caching method will be described.

도 2는 본 발명의 일 실시예에 따른 캐시처리장치(30)의 구성을 도시한 블록도이고, 도 3은 본 발명의 일 실시예에 따른 질의결과정보를 예시한 테이블이고, 도 4는 본 발명의 일 실시예에 따른 테이블사용정보를 도시한 예시도이고, 도 5는 본 발명의 일 실시예에 따른 질의문보안정보를 예시한 테이블이다.2 is a block diagram showing the configuration of the cache processing apparatus 30 according to an embodiment of the present invention, Figure 3 is a table illustrating the query result information according to an embodiment of the present invention, Figure 4 FIG. 5 is a diagram illustrating table usage information according to an embodiment of the present invention, and FIG. 5 is a table illustrating query statement security information according to an embodiment of the present invention.

도 2를 참조하면, 본 실시예에 따른 캐시처리장치(30)는 질의분석부(210), 캐시저장부(220), 캐시관리부(230), 인증처리부(240) 및 메인제어부(250)를 포함한다.Referring to FIG. 2, the cache processing apparatus 30 according to the present exemplary embodiment may include a query analyzing unit 210, a cache storage unit 220, a cache managing unit 230, an authentication processing unit 240, and a main controller 250. Include.

캐시저장부(220)에는 캐시 기능에 따라 데이터베이스 시스템(10)에 저장되는 데이터의 일부가 저장되는데, 그 저장 데이터에 대해서는 관련 도면(도 3 내지 도 4)을 참조하여 후술하기로 한다.A part of data stored in the database system 10 is stored in the cache storage unit 220 according to a cache function. The stored data will be described later with reference to related drawings (FIGS. 3 to 4).

질의분석부(210)는 사용자(50)로부터 입력되는 SQL 구문과 같은 질의문을 분석하여, 해당 질의문이 조회용(select)인지 또는 삭제(delete)/갱신(update)/삽입(insert) 등의 데이터가 바뀌는 갱신용인지 여부를 판단한다.The query analyzing unit 210 analyzes a query statement, such as an SQL statement input from the user 50, to determine whether the corresponding query statement is for select or delete / update / insert, etc. It is determined whether or not the data is for updating.

또한 질의분석부(210)는 해당 질의문에서 사용되는 테이블이 무엇인지를 분석한다. 사용테이블의 분석은 질의문에서 [FROM]절의 구문에 나와 있는 테이블(TABLE)의 명칭을 추출하며, 만일 추출된 명칭이 테이블이 아니고 뷰(VIEW)인 경우도 해당 뷰에서 사용하는 테이블을 2차 분석하여 추출하게 된다. 그리고 추출된 테이블에 트리거(trigger)가 설정되어 있는 경우에도 트리거의 수정 대상이 되는 테이블도 대상에 포함된다. 서브쿼리(인라인뷰)도 뷰와 동일한 형태로 2차 분석을 실시하여 동일한 과정을 거쳐서 대상 테이블을 추출한다.In addition, the query analyzing unit 210 analyzes what table is used in the query. Analysis of the used table extracts the name of the table (TABLE) in the syntax of the [FROM] clause from the query statement.If the extracted name is not a table but a view, the table used by the view is secondary. Analyze and extract. Even if a trigger is set in the extracted table, the table to be modified is included in the target. The subquery (inline view) also performs the secondary analysis in the same form as the view and extracts the target table through the same process.

캐시관리부(230)는 캐시저장부(220)에 저장된 데이터들을 참조하여, 상기한 바와 같은 사용자단말 또는 WAS와 같은 어플리케이션 프로그램인 사용자(50)로부터 입력된 질의문에 따른 응답데이터를 캐시저장부(220) 또는 데이터베이스 시스템(10)으로부터 추출하여 해당 사용자(50)에게 제공하도록 기능한다.The cache manager 230 refers to the data stored in the cache storage 220, and stores the response data according to the query input from the user 50, which is an application program such as the user terminal or the WAS, as described above. 220) or extract from the database system 10 to provide to the user 50.

예를 들어, 캐시관리부(230)는 입력된 질의문이 조회성인 경우 해당 질의문이 캐시저장부(220)에 등록되어 있는지를 확인하고, 확인 결과에 따라, 등록된 경우 캐시저장부(220)에 저장된 질의문에 따른 결과정보(즉 응답데이터)를 추출하여 출력하고, 이와 달리 등록되지 않은 경우엔 데이터베이스 시스템(10)으로 해당 질의문을 이용한 결과정보를 추출하여 출력한다. 또한, 캐시관리부(230)는 캐시저장부(220)에 해당 질의문이 등록되어 있지 않으면, 그 질의문과 결과정보를 캐시저장부(220)에 새로이 등록함으로써, 차후 동일한 질의문이 입력되면 데이터베이스 시스템(10)으로부터 결과정보를 추출할 필요없이 곧바로 캐시저장부(220)에 저장된 결과정보를 사용자(50)에게 제공할 수 있다. For example, the cache manager 230 checks whether the query is registered in the cache storage unit 220 when the input query is inquiry, and, if registered, the cache storage unit 220 when the query is registered. Extract and output the result information (ie, response data) according to the query stored in, otherwise, if not registered, the database system 10 extracts and outputs the result information using the query. Also, if the query is not registered in the cache storage unit 220, the cache manager 230 newly registers the query and the result information in the cache storage unit 220, and when the same query is input later, the database system. The result information stored in the cache storage unit 220 may be immediately provided to the user 50 without having to extract the result information from (10).

캐시저장부(220)에 저장되는 정보를 예시한 도 3을 참조하면, 입력된 각 질의문과 그 결과정보에 순번이 매겨지는 질의결과정보가 저장된다. Referring to FIG. 3, which illustrates information stored in the cache storage unit 220, query result information is sequentially numbered for each input query statement and the result information.

따라서, 캐시처리장치(30)는 질의문이 입력되면, 캐시저장부(220)에 저장되는 질의결과정보를 참조하여 해당 질의문이 등록되어 있는지를 확인하고, 등록되어 있는 경우엔 해당 결과정보를 추출하여 해당 질의문을 전송한 사용자(50)에게 응답 결과로서 제공할 수 있는 것이다. 도면을 참조하여 하나의 예를 들자면, 사용자(50)로부터 [Q0001]이라는 조회용 질의문이 입력되면, 캐시처리장치(30)는 질의결과정보를 참조하여 [a]라는 결과정보를 사용자(50)에게 제공할 수 있다.Therefore, when the query statement is input, the cache processing apparatus 30 checks whether the corresponding query statement is registered with reference to the query result information stored in the cache storage unit 220, and if the query statement is registered, the corresponding result information. The extracted query may be provided as a response result to the user 50 who transmitted the query. For example, referring to the drawing, when a query for query [Q0001] is input from the user 50, the cache processing apparatus 30 refers to the query result information and returns the result information of [a] to the user 50. ) Can be provided.

물론, 캐시관리부(230)는 입력된 질의문이 질의결과정보로서 등록되어 있지 않는 경우, 해당 질의문과 그에 따른 결과정보를 데이터베이스 시스템(10)으로부터 추출하여 비어있는 순번을 갖도록 새로이 등록한다.Of course, if the input query is not registered as the query result information, the cache manager 230 extracts the query statement and the result information from the database system 10 and newly registers the empty query.

또한, 질의분석부(210)에 의해 입력된 질의문이 조회용이 아닌 갱신용인 것으로 분석된 경우, 캐시관리부(230)는 해당 질의문을 데이터베이스 시스템(10)에 반영하고, 또한 캐시저장부(220)에 저장된 정보들을 갱신 처리한다. 즉, 캐시저장부(220)에 저장된 질의결과정보에서 해당 갱신용 질의문에 따른 정보들을 삭제해야 한다.In addition, when the query input by the query analysis unit 210 is analyzed as being for update, not for query, the cache management unit 230 reflects the query to the database system 10, and also cache storage unit 220 Updates the information stored in). That is, the information according to the update query statement should be deleted from the query result information stored in the cache storage unit 220.

이를 위한 일 실시예에 따른 방법을 설명하기 위해 도 5를 참조하면, 데이터베이스 시스템(10)에서 관리되는 테이블(Table, 일반적으로 데이터베이스는 데이터들을 테이블 단위로 관리함)들이 사용된 이력이 저장되는데, 도면에 도시된 바와 같은 각 테이블의 사용 이력에 대한 정보들을 [테이블사용정보]라 칭하기로 한다.Referring to FIG. 5 to describe a method according to an embodiment, a history of using tables managed in the database system 10 (generally, the database manages data in table units) is stored. Information on the usage history of each table as shown in the following will be referred to as [table usage information].

예를 들어, 도 3에 따른 질의결과정보 중 질의문 Q0001이 테이블 A와 C를 참조한 조회용인 경우, 도 4에 도시된 바와 같이 테이블 A와 B의 테이블사용정보에는 해당 질의문 Q0001에 따른 순번(1번)이 기록된다. 이와 같은 방식으로 테이블 A의 테이블사용정보를 참조하면, 1, 2, 4, 7, 11, 20, 21, ... 번의 질의결과정보에 따른 질의문은 테이블 A를 참조한 결과정보를 갖는 다는 것을 의미한다. For example, when the query Q0001 of the query result information according to FIG. 3 is for querying referring to tables A and C, as shown in FIG. 4, the table usage information of tables A and B is included in the order according to the corresponding query Q0001 ( 1) is recorded. Referring to the table usage information of Table A in this way, the query according to the query result information of 1, 2, 4, 7, 11, 20, 21, ... has the result information referring to Table A. it means.

따라서, 갱신용 질의문에 의해 데이터베이스 시스템(10)의 테이블 A 또는 B가 갱신되면, 캐시처리장치(30)는 테이블사용정보를 참조하여, 테이블 A 또는 B의 테이블사용정보에 따른 순번(예를 들어, 순번 1 등)의 질의결과정보를 삭제한다.Therefore, when the table A or B of the database system 10 is updated by the update query statement, the cache processing apparatus 30 refers to the table usage information, and the order according to the table usage information of the table A or B (for example, For example, the query result information of step 1, etc. is deleted.

이에 따라, 테이블 내용이 갱신됨으로 인해, 그로 인한 결과정보가 바뀔 수 있으므로, 캐시처리장치(30)는 캐시저장부(220)에 저장된 질의결과정보를 갱신하는 것이다. 물론, 갱신된 테이블에 상응하는 질의결과정보가 삭제되므로, 해당 테이블의 테이블사용정보도 초기화된다.Accordingly, since the table contents are updated, the resulting information may be changed, and thus the cache processing apparatus 30 updates the query result information stored in the cache storage unit 220. Of course, since the query result information corresponding to the updated table is deleted, the table usage information of the corresponding table is also initialized.

본 실시예에 따르면, 테이블사용정보를 이용함으로써, 갱신된 테이블에 따른 질의결과정보를 보다 빠르고 쉽게 검색하여 삭제할 수 있다. According to the present embodiment, by using the table usage information, query result information according to the updated table can be searched and deleted more quickly and easily.

다시 도 2를 참조하면, 캐시처리장치(30)의 인증처리부(240)는 사용자(50)의 데이터베이스 시스템(10)의 데이터에 대한 접근 권한을 인증 처리하도록 기능한다.Referring back to FIG. 2, the authentication processing unit 240 of the cache processing device 30 functions to authenticate the access right to the data of the database system 10 of the user 50.

다른 실시예에 따른 도 5를 참조하면, 캐시처리장치(30)는 각 질의문에 대한 보안등급(510)이 설정된 질의문보안정보를 참조하여, 입력된 질의문의 보안 설정 여부 및 보안 등급을 확인하고, 그에 따른 인증처리를 수행한다. 쉬운 예로, 질의문 Q0003에 등급3의 보안이 설정된 경우, 캐시처리장치(30)는 Q0003에 따른 질의문을 입력한 사용자(50)의 사용자정보(자체 구비되거나 연결된 장치의 저장수단에 미리 저장되어 관리됨)를 참조하여 해당 사용자(50)의 보안등급이 3등급 이상인 경우 질의문 Q0003에 따른 결과정보를 해당 사용자(50)에게 제공한다.Referring to FIG. 5 according to another embodiment, the cache processing apparatus 30 checks the security setting and security level of the input query by referring to the query statement security information in which the security level 510 for each query is set. And authentication processing accordingly. As an easy example, when the security of grade 3 is set in the query Q0003, the cache processing apparatus 30 is previously stored in the user information (self-contained or connected storage means of the device 50) inputting the query according to Q0003. If the security level of the user 50 is 3 or more, the result information according to the query Q0003 is provided to the user 50.

본 실시예에 따르면, 특정 데이터를 조회하거나 갱신하기 위한 질의문 단위로 보안을 설정할 수 있어, 데이터베이스 시스템(10)의 각종 데이터에 대한 보안의 설정 및 변경 등이 용이해질 수 있다.According to the present embodiment, security can be set in units of query statements for querying or updating specific data, so that security and setting of various data of the database system 10 can be easily performed.

그리고 캐시처리장치(30)의 메인제어부(250)는 각 구성부의 전반적인 동작을 제어하는데, 예를 들어 질의문이 입력되면 인증처리부(240)가 해당 질의문에 따른 사용자인증을 처리하도록 제어하며, 인증이 성공되면 질의분석부(210)가 질의문을 분석하도록 하고, 캐시관리부(230)가 분석된 질의문에 따른 캐시저장부(220)에 저장된 데이터의 처리를 수행하도록 한다.In addition, the main controller 250 of the cache processor 30 controls the overall operation of each component. For example, when a query is input, the authentication processor 240 controls to process user authentication according to the query. If the authentication is successful, the query analyzer 210 analyzes the query, and the cache manager 230 performs processing of data stored in the cache storage 220 according to the analyzed query.

도면에는 도시되지 않았으나, 캐시처리장치(30)는 데이터베이스 시스템(10)과 데이터를 송수신하기 위한 인터페이스부(미도시) 및 네트워크(network)등을 통해 사용자(50)와 데이터를 송수신하기 위한 통신부(미도시) 등을 더 포함할 수 있음은 당연하며, 이는 당업자에게는 자명할 것이므로 더욱 상세한 설명은 생략한다. Although not shown, the cache processing apparatus 30 may include a communication unit for transmitting and receiving data with the user 50 through an interface unit (not shown) and a network for transmitting and receiving data with the database system 10 ( It is natural that it may further include, etc., which will be apparent to those skilled in the art and will not be described in more detail.

이하에서는 캐시처리장치(30)에서의 캐시 과정에 대해 상세히 설명하기로 한다.
Hereinafter, the caching process in the cache processing apparatus 30 will be described in detail.

도 6은 본 발명의 일 실시예에 따른 데이터베이스 시스템(10)을 위한 캐시 과정을 도시한 흐름도이고, 도 7은 본 발명의 다른 실시예에 다른 질의문에 설정된 보안정보를 이용하여 보안이 강화된 캐시 기능을 제공하는 과정을 도시한 흐름도이다.FIG. 6 is a flowchart illustrating a caching process for a database system 10 according to an exemplary embodiment of the present invention. FIG. 7 is a diagram illustrating security enhancement using security information set in another query statement according to another exemplary embodiment of the present invention. A flowchart illustrating a process of providing a cache function.

도 6을 참조하면, 캐시처리장치(30)는 사용자(50)로부터 질의문을 입력 받으면(S610), 질의문을 분석하여, 해당 질의문이 조회용인지 또는 갱신용인지를 분석하고, 또한 해당 질의문이 이용하고자 하는 데이터에 따른 테이블을 인식한다(S615). 상기한 테이블에 대한 정보는 질의결과정보 및 테이블사용정보를 생성 또는 갱신하기 위해 사용되며, 이는 상술하였으므로 중복되는 설명은 생략한다.Referring to FIG. 6, when the query processing apparatus 30 receives a query from the user 50 (S610), the cache processing apparatus analyzes the query, and analyzes whether the query is for inquiry or for updating, and further, the query. The table recognizes a table according to the data to be used (S615). The information about the table is used to generate or update the query result information and the table usage information. Since this is described above, redundant descriptions are omitted.

캐시처리장치(30)는 분석결과를 참조하여 질의문이 조회용인지 또는 갱신용인지를 판단하며(S620), 만일 입력된 질의문이 조회용인 경우 캐시저장부(220)의 질의결과정보를 참조하여(S625) 해당 질의문이 질의결과정보로서 등록되었는지 여부를 판단한다(S630).The cache processor 30 determines whether the query is for inquiry or update by referring to the analysis result (S620). If the input query is for inquiry, the cache processing unit 30 refers to the query result information of the cache storage unit 220. It is determined whether the corresponding query is registered as the query result information (S630).

질의결과정보로서 입력된 질의문이 등록되어 있는 경우, 그 질의결과정보를 참조하여 해당 질의문에 따른 결과정보를 추출하여(S645) 질의문을 입력한 사용자(50)에게 제공한다(S645).If the query statement input as the query result information is registered, the result information according to the query statement is extracted with reference to the query result information (S645) and provided to the user 50 who inputs the query statement (S645).

이와 달리 질의문이 질의결과정보로서 등록되어 있지 않는 경우엔, 캐시처리장치(30)는 데이터베이스 시스템(10)에 질의문을 호출하여 데이터베이스 시스템(10)으로부터 결과정보를 추출한다(S640). 그리고 도면에는 도시되어 있지 않으나, 캐시처리장치(30)는 해당 질의문과 그 결과정보를 새로운 질의경과정보로서 캐시저장부(220)에 등록한다. 즉, 새로운 순번을 갖는 질의결과정보가 생성되어 캐시저장부(220)에 저장되는 것이다.On the contrary, if the query statement is not registered as the query result information, the cache processing device 30 calls the query statement to the database system 10 to extract the result information from the database system 10 (S640). Although not shown, the cache processing apparatus 30 registers the query statement and the result information in the cache storage unit 220 as new query progress information. That is, query result information having a new order number is generated and stored in the cache storage unit 220.

S620에서의 판단결과, 질의문이 조회용이 아닌 갱신용인 경우, 캐시처리장치(30)는 데이터베이스 시스템(10)으로 질의문을 호출함으로써, 질의문에 따른 데이터가 갱신되도록 질의문을 데이터베이스 시스템(10)에 반영한다(S650). As a result of the determination in S620, when the query statement is for update rather than for inquiry, the cache processing apparatus 30 calls the query statement to the database system 10 to update the query statement so that the data according to the query statement is updated. Reflect on (S650).

그리고, 갱신용 질의문의 분석결과에 따른 하나 이상의 테이블에 대해, 그 테이블의 테이블사용정보에 기록된 순번의 질의결과정보를 삭제함으로써, 질의결과정보를 갱신한다(S655).
Then, the query result information is updated by deleting the order of the query result information recorded in the table usage information of the table for one or more tables according to the analysis result of the update query statement (S655).

이하에서는 상술한 바와 같이 캐시처리장치(30)는 질의문 단위로 보안 기능을 제공하는데, 보안 기능이 설정된 경우의 처리 과정에 대해 설명하고자 한다.Hereinafter, as described above, the cache processing apparatus 30 provides a security function in units of query statements, and a description will be given of a processing process when the security function is set.

보안 기능에 따른 처리 과정을 도시한 도 7을 참조하면, 캐시처리장치(30)는 질의문을 입력받으면(S710), 미리 설정된 도 5에 도시된 바와 같은 질의문보안정보를 참조하여, 입력된 질의문에 보안이 설정되어 있는지 여부를 판단한다(S720).Referring to FIG. 7, which illustrates a process according to a security function, when the cache processing apparatus 30 receives a query (S710), the cache processing apparatus 30 is referred to the query security information as illustrated in FIG. 5. It is determined whether security is set in the query statement (S720).

보안이 설정되어 있는 않는 경우, 도 6에 도시된 바와 같은 캐시 처리 과정에 따른 질의문 분석 단계(S615)로 진행된다.If the security is not set, the process proceeds to a query statement analysis step S615 according to the cache processing process as shown in FIG.

이와 달리 해당 질의문에 보안이 설정된 경우, 캐시처리장치(30)는 해당 질의문의 보안등급을 확인하고, 확인된 보안등급에 따른 사용자(50)의 권한을 인증 처리한다(S730). On the contrary, when security is set for the query, the cache processing apparatus 30 checks the security level of the query and authenticates the authority of the user 50 according to the checked security level (S730).

캐시처리장치(30)는 인증처리 결과 인증의 성공여부를 판단하고(S470), 인증이 성공된 경우 마찬가지로 S615로 진행하며, 인증이 실패되면 사용자(50)에게 인증실패를 통보한다(S750).The cache processing apparatus 30 determines whether authentication is successful as a result of the authentication process (S470). If the authentication is successful, the process proceeds to S615 as well. If authentication fails, the cache processing device 30 notifies the user of the authentication failure (S750).

본 실시예에 따르면, 사용자(50)로부터 입력된 질의문을 데이터베이스 시스템(10)에 반영하여 그 결과정보를 얻은 이후, 해당 결과정보에 따른 사용자(50)의 접근권한을 확인하는 방식에 비해, 입력된 질의문만으로 사용자(50)의 접근권한을 인증처리할 수 있어, 인증처리의 간편성뿐 아니라 데이터의 보안 설정 또는 갱신에 대한 관리의 편의성을 제공한다.
According to this embodiment, after obtaining the result information by reflecting the query input from the user 50 to the database system 10, compared to the method of checking the access authority of the user 50 according to the result information, Access authority of the user 50 can be authenticated using only the inputted query, thereby providing convenience of authentication and management of security setting or update of data.

상술한 본 발명에 따른 데이터베이스 시스템(10)을 위한 데이터 캐시 방법은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로서 구현되는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체로는 컴퓨터 시스템에 의하여 해독될 수 있는 데이터가 저장된 모든 종류의 기록 매체를 포함한다. 예를 들어, ROM(Read Only Memory), RAM(Random Access Memory), 자기 테이프, 자기 디스크, 플래쉬 메모리, 광 데이터 저장장치 등이 있을 수 있다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 통신망으로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 읽을 수 있는 코드로서 저장되고 실행될 수 있다. The data caching method for the database system 10 according to the present invention described above may be implemented as computer readable code on a computer readable recording medium. Computer-readable recording media include all kinds of recording media having data stored thereon that can be decrypted by a computer system. For example, it may be a ROM (Read Only Memory), a RAM (Random Access Memory), a magnetic tape, a magnetic disk, a flash memory, an optical data storage device, or the like. In addition, the computer-readable recording medium may be distributed and executed in a computer system connected to a computer network, and may be stored and executed as a code readable in a distributed manner.

또한, 상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
It will be apparent to those skilled in the art that various modifications and variations can be made in the present invention without departing from the spirit or scope of the invention as defined in the appended claims. It will be understood that various modifications and changes may be made.

10 : 데이터베이스 시스템( DBMS)
30 : 캐시처리장치
50 : 사용자
210 : 질의분석부
220 : 캐시저장부
230 : 캐시관리부
240 : 인증처리부
250 : 메인제어부
10: database system (DBMS)
30: cache processing device
50: user
210: query analysis unit
220: cache storage unit
230: cache management unit
240: authentication processing unit
250:

Claims (9)

데이터베이스 시스템과 연결된 장치에 있어서,
캐시저장부;
입력된 질의문을 분석하여 조회용인지 갱신용인지 여부를 판단하는 질의분석부;
상기 질의문이 조회성인 경우 상기 질의문이 캐시저장부에 등록되어 있는지를 확인하고, 확인 결과에 따라, 등록된 경우 상기 캐시저장부에 저장된 상기 질의문에 따른 결과정보를 추출하여 출력하고, 이와 달리 등록되지 않은 경우엔 상기 데이터베이스 시스템으로 상기 질의문을 호출하여 상기 결과정보를 수신 및 출력하고 상기 질의문과 상기 결과정보를 상기 캐시저장부에 등록하는 캐시관리부; 및
미리 설정된 질의문보안정보를 참조하여, 상기 질의문에 설정된 보안등급에 따른 사용자 권한을 인증처리하는 인증처리부를 포함하는 데이터 캐시 장치.
A device connected to a database system,
A cache storage unit;
A query analyzing unit that analyzes the input query and determines whether the query is for update or update;
If the query is queryable, check whether the query is registered in the cache storage unit, and if it is registered, extract and output the result information according to the query stored in the cache storage unit according to the check result. Unless otherwise registered, a cache manager for receiving and outputting the result information by calling the query statement to the database system and registering the query statement and the result information in the cache storage unit; And
And an authentication processing unit for authenticating a user's authority according to a security level set in the query statement by referring to preset query security information.
청구항 1에 있어서,
상기 캐시저장부에는 상기 질의문과 상기 결과정보를 갖는 질의결과정보가 순번대로 저장되고, 상기 데이터베이스 시스템에서 관리되는 데이터의 테이블 단위로 관련질의결과정보의 순번에 대한 정보를 갖는 테이블사용정보가 더 저장되는 것을 특징으로 하는 데이터 캐시 장치.
The method according to claim 1,
The cache storage unit sequentially stores the query result and the query result information having the result information, and further stores table usage information having information about the order of the related query result information in table units of data managed by the database system. Data cache device, characterized in that.
청구항 2에 있어서,
상기 질의분석부에 의해 상기 질의문이 갱신용으로 분석된 경우,
상기 캐시관리부는 상기 질의문을 상기 데이터베이스 시스템에 반영하고, 상기 캐시저장부에 저장된 테이블사용정보를 참조하여 상기 질의문에 따른 테이블의 테이블사용정보에 기록된 순번의 질의결과정보를 상기 캐시저장부에서 삭제하는 것을 특징으로 하는 데이터 캐시 장치.
The method according to claim 2,
When the query is analyzed for update by the query analyzer,
The cache management unit reflects the query statement to the database system, and stores the order of the query result information recorded in the table usage information of a table according to the query by referring to the table usage information stored in the cache storage unit. Data cache device, characterized in that for deleting from.
삭제delete 데이터베이스 시스템과 연결된 장치에서의 데이터 캐시 방법에 있어서,
미리 설정된 질의문보안정보를 참조하여, 입력된 질의문에 설정된 보안등급에 따른 사용자 권한을 인증하는 단계;
상기 인증이 성공되면, 상기 질의문을 분석하여 조회용인지 여부를 판단하는 단계;
상기 질의문이 조회용인 경우, 상기 질의문이 질의결과정보로서 상기 질의문에 따른 결과정보와 함께 등록되어 저장수단에 저장되어 있는지를 확인하는 단계; 및
확인 결과에 따라, 등록된 경우 상기 저장수단으로부터 상기 결과정보를 추출하여 출력하고, 이와 달리 등록되지 않은 경우엔 상기 데이터베이스 시스템으로부터 상기 질의문을 호출하여 상기 결과정보를 수신하여 출력하고 상기 질의문과 상기 결과정보를 새로운 질의결과정보로서 등록하는 단계를 포함하는 데이터베이스 시스템을 위한 데이터 캐시 방법.
A data caching method in a device connected with a database system,
Authenticating a user's authority according to a security level set in an input query by referring to preset query security information;
If the authentication is successful, analyzing the query to determine whether the query is for inquiry;
If the query is for inquiry, checking whether the query is registered with the result information according to the query as query result information and stored in the storage means; And
According to the result of the check, if registered, the result information is extracted from the storage means and outputted; otherwise, if not registered, the query is called from the database system to receive and output the result information, and the query and the And registering the result information as new query result information.
삭제delete 청구항 5에 있어서,
상기 새로운 질의결과정보는 새로운 순번을 가지며, 상기 결과정보에 상응하는 테이블의 테이블사용정보로서 상기 새로운 순번을 기록하는 단계를 더 포함하는 데이터베이스 시스템을 위한 데이터 캐시 방법.
The method according to claim 5,
The new query result information has a new order number, and further comprising the step of recording the new order number as table usage information of a table corresponding to the result information.
청구항 7에 있어서,
상기 질의문이 갱신용으로 분석된 경우,
상기 질의문을 상기 데이터베이스 시스템에 반영하는 단계; 및
상기 질의문에 따른 테이블의 테이블사용정보로서 기록된 순번의 질의결과정보를 삭제하는 단계를 포함하는 데이터베이스 시스템을 위한 데이터 캐시 방법.
The method of claim 7,
If the query is analyzed for update,
Reflecting the query statement in the database system; And
And deleting the order of the query result information recorded as the table usage information of the table according to the query statement.
디지털 정보 처리 장치에 의해 판독 가능하며, 제 5항, 제 7항 내지 제 8항 중 어느 한 항의 방법을 수행하기 위한 프로그램이 기록된 기록 매체.A recording medium readable by a digital information processing apparatus, in which a program for performing the method of any one of claims 5 and 7 is recorded.
KR1020120043142A 2012-04-25 2012-04-25 Data cache method and device for database system KR101318234B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120043142A KR101318234B1 (en) 2012-04-25 2012-04-25 Data cache method and device for database system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120043142A KR101318234B1 (en) 2012-04-25 2012-04-25 Data cache method and device for database system

Publications (1)

Publication Number Publication Date
KR101318234B1 true KR101318234B1 (en) 2013-10-15

Family

ID=49638465

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120043142A KR101318234B1 (en) 2012-04-25 2012-04-25 Data cache method and device for database system

Country Status (1)

Country Link
KR (1) KR101318234B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101780041B1 (en) * 2016-05-30 2017-09-19 주식회사 인피니플럭스 Method and apparatus for improving throughput of database
CN113535752A (en) * 2021-07-12 2021-10-22 上海中通吉网络技术有限公司 Method for inquiring data warehouse Hive by Presto inquiry engine
KR102519005B1 (en) 2022-12-29 2023-04-06 주식회사 에스티씨랩 Data transmitting and receiving control server, system and method thereof using status of database

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990032180A (en) * 1997-10-16 1999-05-06 정선종 How to match the contents of the database with the contents stored in cache memory
KR20000032342A (en) * 1998-11-13 2000-06-15 이계철 Cache managing method of multi-layer data integrating system
JP2006106867A (en) * 2004-09-30 2006-04-20 Toshiba Corp Cache-provided searching device, cache optimization method applied to device, and program
JP2012043338A (en) * 2010-08-23 2012-03-01 Nippon Telegr & Teleph Corp <Ntt> Cache management apparatus, cache management program and recording medium

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990032180A (en) * 1997-10-16 1999-05-06 정선종 How to match the contents of the database with the contents stored in cache memory
KR20000032342A (en) * 1998-11-13 2000-06-15 이계철 Cache managing method of multi-layer data integrating system
JP2006106867A (en) * 2004-09-30 2006-04-20 Toshiba Corp Cache-provided searching device, cache optimization method applied to device, and program
JP2012043338A (en) * 2010-08-23 2012-03-01 Nippon Telegr & Teleph Corp <Ntt> Cache management apparatus, cache management program and recording medium

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101780041B1 (en) * 2016-05-30 2017-09-19 주식회사 인피니플럭스 Method and apparatus for improving throughput of database
CN113535752A (en) * 2021-07-12 2021-10-22 上海中通吉网络技术有限公司 Method for inquiring data warehouse Hive by Presto inquiry engine
KR102519005B1 (en) 2022-12-29 2023-04-06 주식회사 에스티씨랩 Data transmitting and receiving control server, system and method thereof using status of database

Similar Documents

Publication Publication Date Title
US11741244B2 (en) Partial policy evaluation
US11153226B2 (en) Incorporating web applications into web pages at the network level
US20210248017A1 (en) Method and apparatus for authorizing api calls
US11178112B2 (en) Enforcing security policies on client-side generated content in cloud application communications
US20200137189A1 (en) Flexible caching
EP3620999A1 (en) Governed access to rpa bots
US8453255B2 (en) Method for monitoring stored procedures
KR101422859B1 (en) Permission-based document server
US20170041341A1 (en) Polymorphic Treatment of Data Entered At Clients
CN103329113A (en) Proxy server configured for hierarchical caching and dynamic site acceleration and custom object and associated method
US11138311B2 (en) Distributed security introspection
US20180205705A1 (en) Network request proxy system and method
US10904274B2 (en) Signature pattern matching testing framework
US20190026163A1 (en) Intelligent Business Logging for Cloud Applications
US20090240759A1 (en) Methods and Apparatus for Web Application Testing Using Proxy
KR101620601B1 (en) Method for conducting security check, Computer program for the same, and Recording medium storing computer program for the same
US11416631B2 (en) Dynamic monitoring of movement of data
KR101318234B1 (en) Data cache method and device for database system
US20070192324A1 (en) Method and device for advanced cache management in a user agent
US20160261715A1 (en) System and method for securing a web server
US11568060B2 (en) Modular taint analysis with access paths
US11184431B2 (en) System and control method
KR102022984B1 (en) Web Based SSO Service Method
JP6754079B2 (en) Information processing equipment, information processing system, user authentication method, and user authentication program
US11973793B2 (en) Bifurcating security event processing

Legal Events

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