KR101828328B1 - 내장형 데이터베이스 시스템의 다중 데이터베이스 운용 장치 및 그 방법 - Google Patents

내장형 데이터베이스 시스템의 다중 데이터베이스 운용 장치 및 그 방법 Download PDF

Info

Publication number
KR101828328B1
KR101828328B1 KR1020160140059A KR20160140059A KR101828328B1 KR 101828328 B1 KR101828328 B1 KR 101828328B1 KR 1020160140059 A KR1020160140059 A KR 1020160140059A KR 20160140059 A KR20160140059 A KR 20160140059A KR 101828328 B1 KR101828328 B1 KR 101828328B1
Authority
KR
South Korea
Prior art keywords
database
array
manager
page
data
Prior art date
Application number
KR1020160140059A
Other languages
English (en)
Inventor
김재광
한혁
김동일
진성일
Original Assignee
주식회사 리얼타임테크
현대엠엔소프트 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 리얼타임테크, 현대엠엔소프트 주식회사 filed Critical 주식회사 리얼타임테크
Priority to KR1020160140059A priority Critical patent/KR101828328B1/ko
Priority to PCT/KR2017/011895 priority patent/WO2018080187A1/ko
Application granted granted Critical
Publication of KR101828328B1 publication Critical patent/KR101828328B1/ko

Links

Images

Classifications

    • G06F17/3007
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • G06F17/30091
    • G06F17/30132

Landscapes

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

Abstract

본 발명은 내장형 데이터베이스 시스템의 다중 데이터베이스 운용 장치 및 그 방법에 관한 것으로서, 데이터를 저장하기 위한 데이터페이지가 적재되고, 상기 데이터페이지에 페이지 ID를 부여하는 복수의 데이터베이스; 적어도 하나 이상의 데이터베이스를 운영중(Runtime)일 경우에 각 데이터베이스에 대한 데이터베이스 ID의 생성 또는 소멸을 포함한 동적 관리를 통해 데이터베이스 접근을 처리하는 연결관리자; 상기 데이터페이지에 데이터의 삽입, 삭제, 변경, 검색을 포함한 질의처리 작업을 수행하도록 상기 데이터베이스 ID와 페이지 ID를 포함한 페이지요청명령을 발생하는 복수의 질의처리기; 및 상기 페이지요청명령에 따라 상기 데이터베이스 ID를 이용하여 복수의 데이터베이스 중 해당 데이터베이스를 선택하고, 상기 선택된 데이터베이스에서 상기 페이지 ID를 이용하여 데이터페이지를 읽어들여 데이터페이지의 캐시 및 관리를 수행하는 버퍼 관리자를 포함한다. 따라서, 본 발명은 메모리 자원이 제한적인 내장형 데이터베이스 시스템에서 하나의 버퍼 관리자만을 이용하여 여러 개의 데이터베이스를 동시에 운용할 수 있어 많은 메모리 자원을 절약할 수 있다.

Description

내장형 데이터베이스 시스템의 다중 데이터베이스 운용 장치 및 그 방법{Apparatus for Operating Multiple Database in Embedded Database System and Method thereof}
본 발명은 내장형 데이터베이스 시스템의 다중 데이터베이스 운용 장치 및 그 방법에 관한 것으로, 보다 상세하게는 동시에 여러 개의 데이터베이스를 하나의 버퍼 관리자를 사용하여 운용할 수 있는 내장형 데이터베이스 시스템의 다중 데이터베이스 운용 장치 및 그 방법에 관한 것이다.
데이터베이스 시스템은 데이터베이스 총괄 관리 체계이고, 데이터베이스 관리 시스템은 데이터베이스를 관리하면서 사용자의 데이터 처리 요구를 수행하는 데이터베이스 시스템의 주요 구성 요소이다. 이러한 데이터베이스 관리 시스템은 사용자와 데이터베이스 사이에 위치하며, 기능에 따라 크게 질의 처리기와 저장 데이터 관리자(또는 버퍼 관리자)로 구분할 수 있다.
도 1은 종래 기술에 따른 내장형 데이터베이스 관리 시스템을 설명하는 도면이다.
도 1을 참고하면, 내장형 데이터베이스 관리 시스템은 데이터베이스(1), 연결관리자(10), 질의처리기(20), 버퍼관리자(30), 하위 모듈(40)을 포함한다.
데이터베이스(1)는 데이터페이지들이 저장된 파일이고, 연결 관리자(10)는 데이터베이스 운용을 담당한다.
질의 처리기(20)는 사용자의 데이터 처리 요구를 해석하여 처리하는 역할을 담당하고, 버퍼 관리자(30)는 디스크에 저장되어 있는 사용자 데이터베이스와 데이터 사전(데이터베이스에 저장되는 데이터에 관한 정보)을 관리하고, 실제로 접근하는 역할을 담당한다.
즉, 버퍼 관리자(30)는 데이터베이스(1)에 적재된 데이터페이지를 읽어오거나, 이미 읽어들인 데이터페이지가 수정된 경우에 데이터베이스(1)에 기록하는 역할을 수행하며, 데이터베이스 시스템의 성능을 좌우하는 데이터 페이지 캐시 및 관리 역할을 수행한다.
내장형 데이터베이스 관리 시스템은 버퍼 관리자(30)를 기준으로 상위 모듈과 하위 모듈로 구성되는데, 상위 모듈은 버퍼 관리자(30)를 사용하는 모듈이고, 하위 모듈은 버퍼 관리자(30)가 사용하는 모듈이다. 따라서, 질의처리기(20)는 상위 모듈에 해당한다.
이러한 내장형 데이터베이스 관리 시스템은 데이터베이스마다 버퍼 관리자(30)가 필요하므로, 3개의 데이터베이스(1)를 동시에 운영할 경우에 3개의 버퍼 관리자(300가 필요하다. 일례로, 내장형 데이터베이스 관리 시스템은 버퍼 관리자(30)의 버퍼풀 메모리가 32MB인 경우에 3개의 데이터베이스(1)를 동시에 운영하기 위해 필요한 버퍼 관리자의 버퍼풀 메모리는 총 96MB가 소모됨을 알 수 있다.
한편, 한국공개특허 제2011-0069049호의 다중-평면 플래시 메모리 내로의 데이터 프로그래밍은 다중 데이터 페이지들이 페이지 버퍼들의 크기를 증가시키기 위한 필요없이 프로그래밍이 되는 것을 허용하도록 데이터 페이지들이 프로그래밍이 되는 데이터 전송 방식이 조종될 수 있도록 한다.
종래의 다중-평면 플래시 메모리 내로의 데이터 프로그래밍은 다수의 플래시 메모리 디바이스를 포함하고, 메모리 인터페이스를 통해 페이지 버퍼에 연결되는데, 플래시 메모리 디바이스의 개수 만큼 페이지 버퍼를 사용하고 있다.
이와 같이, 종래 기술의 내장형 데이터베이스 관리 시스템은 통상적으로 동시에 여러 개의 데이터베이스를 운용할 수 없지만, 동시에 여러 개의 데이터베이스를 운용하고자 할 경우에 데이터베이스의 개수만큼 버퍼 관리자가 필요하므로 그만큼 메모리 자원을 많이 소모하게 되는 문제점이 있다.
한국공개특허 제2011-0069049호 " 다중-평면 플래시 메모리 내로의 데이터 프로그래밍 "
본 발명은 메모리 자원이 제한적인 내장형 데이터베이스 시스템의 성능을 위한 필수 구성인 버퍼 관리자를 1개만 사용하여 동시에 여러 개의 데이터베이스를 운용할 수 있어 메모리 사용량을 크게 줄일 수 있는 내장형 데이터베이스 시스템의 다중 데이터베이스 운용 장치 및 그 방법을 제공한다.
실시예들 중에서, 데이터를 저장하기 위한 데이터페이지가 적재되고, 상기 데이터페이지에 페이지 ID를 부여하는 복수의 데이터베이스; 적어도 하나 이상의 데이터베이스를 운영중(Runtime)일 경우에 어레이(Array) 자료 구조를 사용하여 각 데이터베이스에 대한 데이터베이스 ID의 생성 또는 소멸을 포함한 동적 관리를 통해 데이터베이스 접근을 처리하는 연결관리자; 상기 데이터페이지에 데이터의 삽입, 삭제, 변경, 검색을 포함한 질의처리 작업을 수행하도록 상기 데이터베이스 ID와 페이지 ID를 포함한 페이지요청명령을 발생하는 복수의 질의처리기; 및 상기 페이지요청명령에 따라 상기 데이터베이스 ID를 이용하여 복수의 데이터베이스 중 해당 데이터베이스를 선택하고, 상기 선택된 데이터베이스에서 상기 페이지 ID를 이용하여 데이터페이지를 읽어들여 데이터페이지의 캐시 및 관리를 수행하는 버퍼 관리자를 포함하여 구성되고, 상기 연결관리자는 어레이 크기를 동시에 연결 가능한 데이터베이스의 최대 개수로 설정하며, 어레이 커서를 사용하여 데이터베이스를 구분하기 위한 데이터베이스 ID를 관리하는 데이터베이스ID 관리자를 포함하여 구성되는 것을 특징으로 특징으로 한다.
삭제
상기 데이터베이스ID 관리자는, 상기 어레이 커서를 언사인드 쇼트(Unsigned Short) 타입으로 사용하고, 상기 어레이 커서 값의 범위를 0~65535로 설정하며, 상기 어레이 커서를 제어하기 위한 Close 및 Open을 포함한 명령어 문장을 사용하는 것을 특징으로 한다.
상기 데이터베이스ID 관리자는 상기 어레이가 기설정된 어레이 크기만큼의 필드로 구성된 경우에, 상기 데이터베이스 Open 명령어가 입력되면 상기 어레이에서 데이터베이스가 연결되지 않고 비어있는 필드가 나올 때까지 상기 어레이 커서를 '1' 씩 증가시키고, 비어있는 필드가 발견되면 해당 필드에 위치한 어레이 커서의 값을 데이터베이스ID로 할당한 후 데이터베이스 연결을 수행하고, 상기 데이터베이스 Close 명령어가 입력되면 데이터베이스ID에 해당하는 필드에 어레이 커서가 위치하고, 상기 데이터베이스ID와 어레이 크기를 이용한 나머지 연산을 이용하여 상기 어레이 커서가 위치한 필드를 초기화한 후 데이터베이스 연결을 종료하는 것을 특징으로 한다.
상기 데이터베이스ID 관리자는 상기 데이터베이스 Open 명령어가 입력되었지만 어레이에 비어있는 필드가 없는 경우에 데이터베이스 연결 가능한 최대 개수를 초과하였음을 알리는 메시지를 출력하고, 데이터베이스 연결 실패를 반환하는 것을 특징으로 한다.
상기 버퍼 관리자와 데이터베이스 사이에는 하나 또는 그 이상의 논리적 기능들을 수행하는 데이터베이스 명령어들을 이용하여 하위의 데이터베이스를 사용하도록 하는 복수의 하위 모듈이 위치하고, 상기 버퍼 관리자는 API(application programming interface)에 상기 데이터베이스 ID의 파라미터를 추가하여 구현하고, 상기 데이터베이스ID를 이용하여 복수의 하위 모듈 중 하나의 하위 모듈을 선택하고, 상기 선택된 하위 모듈을 통해 데이터페이지를 읽어오도록 하는 하위모듈 관리자를 포함하는 것을 특징으로 한다.
상기 연결관리자는 어레이(Array) 자료 구조를 사용하고, 어레이 크기를 동시에 연결 가능한 데이터베이스의 최대 개수로 설정하며, 상기 하위 모듈 관리자는 데이터베이스ID와 어레이 크기를 이용한 나머지 연산을 이용하여 복수의 하위 모듈 중 사용할 하위 모듈을 선택하는 것을 특징으로 한다.
상기 버퍼 관리자는 내부의 버퍼풀 메모리에 데이터베이스ID와 페이지 ID를 표시하여 데이터페이지를 캐시하고, 해당 데이터페이지의 재요청시 상기 페이지 ID와 데이터베이스 ID를 이용하여 상기 버퍼풀 메모리에서 상기 데이터페이지를 읽어오는 것을 특징으로 한다.
실시예들 중에서, 데이터페이지가 적재된 복수의 데이터베이스에 대한 데이터베이스 접근을 처리하는 연결관리자, 상기 데이터페이지에 데이터의 삽입, 삭제, 변경, 검색을 포함한 질의처리 작업을 수행하는 질의처리기 및 상기 데이터베이스에서 데이터페이지를 읽어들여 데이터페이지의 캐시 및 관리를 수행하는 버퍼 관리자를 포함하는 내장형 데이터베이스 시스템의 다중 데이터베이스 운용 방법에 있어서, 상기 연결 관리자는 데이터베이스의 운영중(RunTime)에 하나의 버퍼 관리자를 사용하기 위해 어레이(Array) 자료 구조를 사용하여 복수의 데이터베이스를 구분하는 데이터베이스ID를 생성 또는 소멸하는 데이터베이스 ID의 동적 관리를 통해 데이터베이스 접근을 처리하는 제1 단계; 상기 질의 처리기는 데이터베이스 ID와 데이터페이지의 페이지 ID를 이용하여 페이지요청명령을 버퍼 관리자에 요청하고, 상기 요청된 데이터페이지에 데이터의 삽입/삭제/변경/검색을 포함한 질의처리 작업을 수행하는 제2 단계; 및 상기 버퍼 관리자는 데이터베이스 ID의 파라미터를 추가하여 구현하고, 상기 페이지요청명령에 따라 상기 데이터베이스ID를 이용하여 복수의 데이터베이스 중 해당되는 데이터베이스를 선택하고, 상기 선택된 데이터베이스에서 페이지 ID에 해당하는 데이터페이지를 읽어들여 버퍼풀 메모리에 상기 데이터페이지의 캐시 및 관리 역할을 수행하는 제3 단계를 포함하여 구성되고, 상기 제1 단계에서 연결 관리자는 어레이 크기를 동시에 연결 가능한 데이터베이스의 최대 개수로 설정하고, 데이터베이스 ID 관리자를 통해 어레이 커서를 사용하여 데이터베이스를 구분하기 위한 데이터베이스 ID를 관리하는 것을 특징으로 한다.
삭제
상기 데이터베이스ID 관리자는, 상기 어레이 커서를 언사인드 쇼트(Unsigned Short) 타입으로 사용하고, 상기 어레이 커서 값의 범위를 0~65535로 설정하며, 상기 어레이 커서를 제어하기 위한 Close 및 Open을 포함한 명령어 문장을 사용하는 것을 특징으로 한다.
상기 제1 단계는 상기 어레이가 기설정된 어레이 크기만큼의 필드로 구성된 경우에, 상기 데이터베이스 Open 명령어가 입력되면 현재 어레이 커서가 위치한 필드에 데이터베이스가 연결되었는지를 확인하고, 해당 필드에 데이터베이스가 연결된 경우에 비어있는 필드를 검색하기 위해 상기 어레이 커서를 '1' 씩 증가시키는 단계; 상기 어레이에서 비어있는 필드가 있는 경우에 해당 필드에 위치한 어레이 커서의 값을 데이터베이스ID로 할당한 후 데이터베이스 연결을 수행하고, 상기 어레이에 비어있는 필드가 없는 경우에 데이터베이스 연결 가능한 최대 개수를 초과하였음을 알리는 메시지를 출력하고, 데이터베이스 연결 실패를 반환하는 단계를 포함하는 것을 특징으로 한다.
상기 제1 단계는 상기 어레이가 기설정된 어레이 크기만큼의 필드로 구성된 경우에, 상기 데이터베이스 Close 명령어가 입력되면 데이터베이스ID에 해당하는 필드에 어레이 커서가 위치하고, 상기 데이터베이스ID와 어레이 크기를 이용한 나머지 연산을 이용하여 상기 어레이 커서가 위치한 필드를 초기화한 후 데이터베이스 연결을 종료하는 것을 특징으로 한다.
상기 버퍼 관리자와 복수의 데이터베이스 사이에는 하나 또는 그 이상의 논리적 기능들을 수행하는 데이터베이스 명령어들을 이용하여 하위의 데이터베이스를 사용하도록 하는 복수의 하위 모듈이 위치하고, 상기 제3 단계에서 버퍼 관리자는 API(application programming interface)에 상기 데이터베이스 ID의 파라미터를 추가하여 구현하고, 하위모듈 관리자를 통해 상기 데이터베이스ID를 이용하여 복수의 하위 모듈 중 하나의 하위 모듈을 선택하며, 상기 선택된 하위 모듈을 통해 데이터페이지를 읽어오도록 하는 것을 특징으로 한다.
상기 하위 모듈 관리자는 데이터베이스ID와 어레이 크기를 이용한 나머지 연산을 이용하여 복수의 하위 모듈 중 사용할 하위 모듈을 선택하는 것을 특징으로 특징으로 한다.
상기 제3 단계에서 버퍼 관리자는 내부의 버퍼풀 메모리에 데이터베이스ID와 페이지 ID를 표시하여 데이터페이지를 캐시하고, 해당 데이터페이지의 재요청시 상기 페이지 ID와 데이터베이스 ID를 이용하여 상기 버퍼풀 메모리에서 상기 데이터페이지를 읽어오는 것을 특징으로으로 한다.
본 발명의 내장형 데이터베이스 시스템의 다중 데이터베이스 운용 장치 및 그 방법은, 메모리 자원이 제한적인 내장형 데이터베이스 시스템에서 하나의 버퍼 관리자만을 이용하여 여러 개의 데이터베이스를 동시에 운용할 수 있어 많은 메모리 자원을 절약할 수 있는 효과가 있다.
또한, 본 발명은 여러 개의 데이터베이스를 운용하기 위해 데이터베이스ID를 적용하고, 어레이 자료 구조와 어레이 커서를 사용하여 데이터베이스ID를 관리하며, 어레이 커서 값의 범위를 0~65535로 최대한 넓게 설계하여 데이터베이스의 연결/종료에 대한 성능을 떨어뜨리지 않으면서 버퍼 관리자의 오동작을 방지할 수 있는 효과가 있다.
본 발명은 데이터베이스ID를 운영중일 때 동적으로 프로그램 영역 내에서만 관리하고 데이터베이스에 저장되지 않기 때문에 복수의 데이터베이스 간에 어떠한 의존성도 존재하지 않고, 그로 인해 데이터베이스 시스템의 중단없이 데이터베이스를 등록/등록해제/교환 등의 동작이 가능해질 수 있는 효과가 있다.
도 1은 종래 기술에 따른 내장형 데이터베이스 관리 시스템을 설명하는 도면이다.
도 2는 본 발명의 일 실시예에 따른 내장형 데이터베이스 시스템의 다중 데이터베이스 운용 장치의 구성을 설명하는 도면이다.
도 3은 본 발명의 일 실시예에 따른 질의처리기와 버퍼관리자 간의 동작 상태를 설명하는 도면이다.
도 4는 본 발명의 일 실시예에 따른 내장형 데이터베이스 시스템의 다중 데이터베이스 운용 방법을 설명하는 도면이다.
도 5는 본 발명의 일 실시예에 따른 데이터베이스ID 관리자의 구동 상태를 설명하는 도면이다.
도 6은 본 발명의 일 실시예에 따른 어레이 커서 값의 범위에 따른 버퍼풀 메모리의 오동작 상태를 설명하는 도면이다.
본 발명에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 본 발명의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다. 또한, 본 발명에서 제시된 목적 또는 효과는 특정 실시예가 이를 전부 포함하여야 한다거나 그러한 효과만을 포함하여야 한다는 의미는 아니므로, 본 발명의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
한편, 본 발명에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.
"제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다"또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.
여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.
도 2는 본 발명의 일 실시예에 따른 내장형 데이터베이스 시스템의 다중 데이터베이스 운용 장치의 구성을 설명하는 도면이다.
도 2를 참고하면, 내장형 데이터베이스 시스템의 다중 데이터베이스 운용 장치는, 복수의 데이터베이스(100), 연결 관리자(200), 복수의 질의 처리기(300), 버퍼 관리자(400) 및 복수의 하위 모듈(500)을 포함한다.
복수의 데이터베이스(100)는 데이터를 저장하기 위한 데이터페이지를 적재하고, 데이터페이지에 페이지 ID를 부여한다.
연결 관리자(200)는 적어도 하나 이상의 데이터베이스(100)를 운영중(Runtime)일 경우에 각 데이터베이스(100)에 대한 데이터베이스 ID의 생성 및 소멸을 포함한 동적 관리를 통해 데이터베이스 접근을 처리한다.
이러한 연결 관리자(200)는 어레이(Array) 자료 구조를 사용하고, 어레이 크기를 동시에 연결 가능한 데이터베이스(100)의 최대 개수로 설정하며, 어레이 커서를 사용하여 데이터베이스(100)를 구분하기 위한 데이터베이스 ID를 생성 및 관리하는 데이터베이스ID 관리자(210)를 포함한다.
버퍼 관리자(400)의 버퍼풀 메모리에 페이지 ID가 동일하지만 서로 다른 데이터베이스(100)에서 읽어들인 데이터페이지들이 혼재되어 있다. 따라서, 데이터베이스ID 관리자(210)는 동시에 여러 개의 데이터베이스(100)를 사용할 경우에, 어떤 데이터베이스(100)에서 읽어들인 데이터페이지인지를 구분하기 위해 각 데이터베이스(100)에 데이터베이스 ID를 할당하여 관리한다.
복수의 질의 처리기(300)는 데이터페이지의 페이지 ID를 이용하여 데이터의 삽입, 삭제, 변경, 검색을 포함한 질의처리 작업을 수행하도록 데이터베이스 ID와 페이지 ID를 포함한 페이지요청명령을 발생한다. 이때, 버퍼 관리자(400)를 사용하는 상위 모듈인 질의 처리기(300)는 하나의 버퍼 관리자(400)를 사용하기 위해 버퍼 관리자(400)가 사용하는 하위 모듈(500)의 개수만큼 구비된다.
이러한 질의 처리기(300)는 페이지 ID를 관리하고, 페이지 ID와 연관된 데이터페이지가 필요할 경우에 페이지 ID를 이용하여 버퍼 관리자(400)에게 해당 데이터페이지를 요청할 수 있다. 또한, 질의 처리기(300)는 요청한 데이터페이지에 데이터의 삽입/삭제/변경 등의 수정을 수행한 후 버퍼 관리자(400)에게 해당 데이터페이지가 수정되었음을 알린다. 따라서, 버퍼 관리자(400)는 수정된 데이터페이지를 기록하게 된다.
버퍼 관리자(400)는 API(application programming interface)에 데이터베이스 ID의 파라미터를 추가하여 구현하고, 페이지요청명령에 따라 데이터베이스 ID를 이용하여 사용해야 할 데이터베이스(100)를 선택하며, 페이지 ID를 이용하여 선택된 데이터베이스(100)에서 페이지 ID에 해당하는 데이터페이지를 읽어온 후 해당 데이터페이지의 캐시 및 관리를 수행한다.
데이터페이지는 버퍼 관리자(400)의 내부에 있는 버퍼풀 메모리에 캐시되며, 버퍼 관리자(400)는 데이터 페이지 캐시 작업을 많이 할수록 데이터베이스 접근 성능은 좋아지지만 그만큼 많은 버퍼풀 메모리를 많이 소모하게 된다. 따라서 기존에는 3개의 데이터베이스를 동시에 운용하기 위해서는 32MB의 버퍼 관리자가 3개 필요하였기 때문에 총 96MB의 버퍼풀 메모리를 소모하였으나, 본 발명에서는 1개의 버퍼 관리자(400)만 필요하므로 32MB의 버퍼풀 메모리를 소모하게 된다.
일반적으로, 내장형 데이터베이스 시스템이 사용하는 대부분의 메모리는 버퍼풀 메모리가 차지하고 있으므로 하나의 버퍼 관리자(400)가 동시에 여러 개의 데이터베이스를 운영할 경우에 버퍼풀 메모리의 사용량을 크게 줄일 수 있다.
하위 모듈(500)은 버퍼 관리자(400)와 데이터베이스(100) 사이에 설치되고, 하나 또는 그 이상의 논리적 기능들을 수행하는 데이터베이스 명령어들을 이용하여 하위의 데이터베이스(100)를 사용하도록 한다.
버퍼 관리자(400)는 데이터베이스ID를 이용하여 복수의 하위 모듈(500) 중 하나의 하위 모듈(500)을 선택하고, 선택된 하위 모듈(500)을 통해 데이터페이지를 읽어오도록 하는 하위모듈 관리자(410)를 포함한다.
도 3은 본 발명의 일 실시예에 따른 질의처리기와 버퍼관리자 간의 동작 상태를 설명하는 도면이다.
도 3을 참고하면, 버퍼 관리자(400)는 API에 데이터베이스ID의 파라미터를 추가하여 구현하고, 질의 처리기(300)는 버퍼 관리자(400) 사용시 페이지요청명령에 페이지ID와 함께 데이터베이스ID를 추가하여 사용한다.
따라서, 버퍼 관리자(400)는 질의 처리기(300)로부터 입력된 페이지요청명령에 따라 데이터베이스ID를 이용하여 복수의 하위 모듈(500) 중 어떤 하위 모듈을 사용해야 하는지 데이터베이스ID와 어레이 크기를 이용한 나머지 연산을 이용하여 선택하고, 선택된 하위 모듈(500)을 통해 데이터페이지를 읽어들인다.
이때, 버퍼 관리자(400)는 읽어들인 데이터페이지를 관리하기 위해 데이터베이스 ID와 페이지 ID를 표시하고, 해당 데이터페이지의 재요청이 접수되면 버퍼풀 메모리에서 페이지 ID와 데이터베이스ID를 이용하여 해당 데이터페이지를 정확히 찾아 반환한다.
도 4는 본 발명의 일 실시예에 따른 내장형 데이터베이스 시스템의 다중 데이터베이스 운용 방법을 설명하는 도면이고, 도 5는 본 발명의 일 실시예에 따른 데이터베이스ID 관리자의 구동 상태를 설명하는 도면이다.
도 4 및 도 5를 참고하면, 내장형 데이터베이스 시스템의 다중 데이터베이스 운용 방법은, 연결 관리자(200)가 하나의 버퍼 관리자(400)를 사용하기 위해 복수의 데이터베이스(100)를 구분하여 운영하기 위한 데이터베이스ID 관리자(210)를 포함한다.(S1)
데이터베이스ID 관리자(210)는 어레이 커서를 언사인드 쇼트(Unsigned Short) 타입으로 사용하고, 어레이 커서의 범위를 0~65535로 설정하며, 어레이 커서를 제어하기 위한 Declare/Open/Fetch/Close 등의 명령어 문장을 사용한다.
만일 어레이 크기를 5개로 할 경우에 어레이는 5개의 필드로 구성되고, 도 5의 (a)에 도시된 바와 같이, 연결 관리자(200)는 데이터베이스 Open 명령어가 입력되면 어레이 커서를 0~4까지 1씩 증가시키면서 필드를 이동한다. 어레이 커서가 위치한 필드에 데이터베이스가 연결되지 않고 비어 있으면 해당 어레이 커서의 값을 데이터베이스ID로 할당하며, 질의 처리기(300)에서 버퍼 관리자(400)를 사용할 때 데이터베이스 ID의 파라미터를 추가하여 사용하도록 한다.
만일, 데이터베이스 Open 명령어가 입력되었지만 어레이의 모든 필드가 채워진 경우에 "데이터베이스 연결 가능한 최대 개수를 초과하였습니다."라는 메시지와 함께 데이터베이스 연결 실패를 반환한다.
도 5의 (b)에 도시된 바와 같이, 데이터베이스ID 관리자(210)는 데이터베이스ID가 '1'인 데이터베이스에 대한 Close 명령어가 입력되면 어레이 커서가 array[1]의 필드에 위치하고, (데이터베이스ID % 어레이 크기)를 이용한 나머지 연산의 결과 값을 이용하여 해당 필드(array[1])의 값을 초기화시킨 후 데이터베이스 연결을 종료한다.
데이터베이스ID 관리자(210)는 적어도 하나 이상의 데이터베이스(100)를 운영중일 경우에 동적으로 프로그램 영역 내에서만 데이터베이스 ID의 생성/소멸 동작을 수행한다.(S1) 이와 같이, 본 발명에서는 데이터베이스ID가 데이터베이스(100)에 저장되어 관리되지 않기 때문에 복수의 데이터베이스 간에 어떠한 의존성도 존재하지 않고, 그로 인해 데이터베이스 시스템의 중단없이 데이터베이스를 등록/등록해제/교환 등의 동작이 가능해진다.
이때, 어레이 커서는 Unsigned short의 최소값(0)이고, Unsigned short의 최대값은 65535이다. 따라서, 어레이 커서의 값의 범위는 0~65535로 설계되고, 이 값의 범위를 데이터베이스 시스템이 종료될 때까지 계속 반복한다.
질의 처리기(300)는 데이터베이스 ID와 페이지 ID를 이용하여 버퍼 관리자(400)에게 페이지요청명령을 전송하고, 요청한 페이지ID에 해당하는 데이터페이지에 데이터의 삽입/삭제/변경 등의 수정 작업을 수행한 후 버퍼 관리자(400)에게 데이터페이지가 수정되었음을 알린다.(S2)
버퍼 관리자(400)는 API에 데이터베이스 ID의 파라미터 추가하여 구현하고, 페이지요청명령에 따라 데이터베이스ID를 이용해 복수의 데이터베이스(100) 중 사용해야 할 데이터베이스(100)를 선택한다.(S3 및 S4)
버퍼 관리자(400)는 선택된 데이터베이스(100)에서 페이지 ID를 이용해 데이터페이지를 버퍼풀 메모리(420)로 읽어들여 데이터페이지의 캐시 및 관리 수행한다.(S5) 이때, 버퍼 관리자(400)는 버퍼풀 메모리에 데이터페이지의 페이지ID와 데이터베이스ID를 표시함으로써 이후 해당 데이터페이지가 재요청되면 페이지ID와 데이터베이스ID를 이용해 해당 데이터페이지를 정확히 찾아서 반환할 수 있다.
도 6은 본 발명의 일 실시예에 따른 어레이 커서 값의 범위에 따른 버퍼풀 메모리의 오동작 상태를 설명하는 도면이다.
도 6에 도시된 바와 같이, 데이터베이스ID 관리자(210)는 데이터베이스ID를 어레이 커서 값을 이용하여 생성하고 있는데, 어레이 커서 값의 범위가 좁을 경우에 Open/Close의 명령어를 반복 실행하면 버퍼 관리자(400)의 버퍼풀 메모리에는 페이지 ID가 동일하지만 서로 다른 데이터베이스에서 읽어들인 데이터페이지가 존재할 가능성이 있기 때문에 찾고자 하는 데이터페이지를 정확히 찾지 못하여 오류가 발생하게 된다.
만일, 어레이 크기가 3이고, 어레이 커서의 값의 범위가 0~2인 경우에, 데이터베이스ID의 범위도 0~2가 된다.
데이터베이스 Open 명령에 따라 데이터베이스ID[0]이 생성되고, 해당 데이터베이스(100)에서 페이지ID[0]에 해당하는 데이터페이지[0]를 버퍼풀메모리(420)로 읽어들인다. 그리고 데이터베이스의 Close 명령에 따라 데이터베이스ID가 '0'인 데이터베이스의 연결을 해제하고 array[0]을 초기화한다. 이때, 버퍼 관리자(400)는 데이터베이스 Close 명령마다 비교적 큰 저장 용량의 버퍼풀 메모리를 초기화하기에는 비용이 너무 크게 소요되므로 성능을 위해서 데이터페이지[0]를 그대로 남겨두게 된다.
이러한 방식으로, 버퍼 관리자(400)는 데이터베이스 Open/Close 명령의 반복에 따라 데이터베이스 ID가 '1'과 '2'인 데이터베이스에 대한 데이터페이지[1], 데이터페이지[2]를 읽어들인 후에 array[1]과 array[2]를 초기화시키고, 버퍼풀 메모리에 데이터페이지[1]과 데이터페이지[2]를 남겨두게 된다.
이후, 데이터베이스 Open 명령이 입력되면 어레이 커서가 array[0]에 위치하게 되고, 데이터베이스ID는 '0'으로 할당된다. 따라서, 버퍼 관리자(400)는 네번째 데이터베이스[3]에서 데이터페이지[3]를 읽어오는 것이 아니라 버퍼풀 메모리에 남아있는 데이터페이지[0]를 찾아서 반환하고, 버퍼풀 메모리에서 데이터페이지[0]를 찾았으므로 데이터베이스[3]는 읽지 않게 된다.
이와 같이, 어레이 커서 값의 범위를 좁게 설정했을 경우에 발생되는 버퍼풀 메모리의 오동작을 방지하기 위해 어레이 커서의 값의 범위를 비교적 크게 설계해야 한다.
예를 들어, 데이터베이스 시스템에서는 데이터페이지의 크기가 16KB이고, 버퍼풀 메모리의 크기가 32MB이면, 버퍼풀 메모리에 최대 2048개의 데이터페이지가 존재할 수 있으므로 데이터베이스 ID의 범위는 0~65535로 설계할 경우에 버퍼풀 메모리의 오동작을 방지할 수 있다.
즉, 데이터베이스ID가 0에서 시작해서 65535를 거쳐 다시 0이 되기 때문에 버퍼풀 메모리에 데이터베이스ID에 대한 데이터페이지[0]는 희생 페이지가 되어 사라지므로 버퍼풀 메모리에서 잘못된 데이터페이지를 찾아 반환하는 오류를 방지할 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100 : 데이터베이스 200 : 연결 관리자
210 : 데이터베이스ID 관리자 300 : 질의 처리기
400 : 버퍼 관리자 410 : 하위모듈 관리자
420 : 버퍼풀 메모리 500 : 하위모듈

Claims (16)

  1. 데이터를 저장하기 위한 데이터페이지가 적재되고, 상기 데이터페이지에 페이지 ID를 부여하는 복수의 데이터베이스;
    적어도 하나 이상의 데이터베이스를 운영중(Runtime)일 경우에 어레이(Array) 자료 구조를 사용하여 각 데이터베이스에 대한 데이터베이스 ID의 생성 또는 소멸을 포함한 동적 관리를 통해 데이터베이스 접근을 처리하는 연결관리자;
    상기 데이터페이지에 데이터의 삽입, 삭제, 변경, 검색을 포함한 질의처리 작업을 수행하도록 상기 데이터베이스 ID와 페이지 ID를 포함한 페이지요청명령을 발생하는 복수의 질의처리기; 및
    상기 페이지요청명령에 따라 상기 데이터베이스 ID를 이용하여 복수의 데이터베이스 중 해당 데이터베이스를 선택하고, 상기 선택된 데이터베이스에서 상기 페이지 ID를 이용하여 데이터페이지를 읽어들여 데이터페이지의 캐시 및 관리를 수행하는 버퍼 관리자를 포함하여 구성되고,
    상기 연결관리자는 어레이 크기를 동시에 연결 가능한 데이터베이스의 최대 개수로 설정하며, 어레이 커서를 사용하여 데이터베이스를 구분하기 위한 데이터베이스 ID를 관리하는 데이터베이스ID 관리자를 포함하여 구성되는 것을 특징으로 하는 내장형 데이터베이스 시스템의 다중 데이터베이스 운용 장치.
  2. 삭제
  3. 제1항에 있어서,
    상기 데이터베이스ID 관리자는, 상기 어레이 커서를 언사인드 쇼트(Unsigned Short) 타입으로 사용하고, 상기 어레이 커서 값의 범위를 0~65535로 설정하며, 상기 어레이 커서를 제어하기 위한 Close 및 Open을 포함한 명령어 문장을 사용하는 것을 특징으로 하는 내장형 데이터베이스 시스템의 다중 데이터베이스 운용 장치.
  4. 제3항에 있어서,
    상기 데이터베이스ID 관리자는 상기 어레이가 기설정된 어레이 크기만큼의 필드로 구성된 경우에,
    데이터베이스 Open 명령어가 입력되면 상기 어레이에서 데이터베이스가 연결되지 않고 비어있는 필드가 나올 때까지 상기 어레이 커서를 '1' 씩 증가시키고, 비어있는 필드가 발견되면 해당 필드에 위치한 어레이 커서의 값을 데이터베이스ID로 할당한 후 데이터베이스 연결을 수행하고,
    데이터베이스 Close 명령어가 입력되면 데이터베이스ID에 해당하는 필드에 어레이 커서가 위치하고, 상기 데이터베이스ID와 어레이 크기를 이용한 나머지 연산을 이용하여 상기 어레이 커서가 위치한 필드를 초기화한 후 데이터베이스 연결을 종료하는 것을 특징으로 하는 내장형 데이터베이스 시스템의 다중 데이터베이스 운용 장치.
  5. 제4항에 있어서,
    상기 데이터베이스ID 관리자는 상기 데이터베이스 Open 명령어가 입력되었지만 어레이에 비어있는 필드가 없는 경우에 데이터베이스 연결 가능한 최대 개수를 초과하였음을 알리는 메시지를 출력하고, 데이터베이스 연결 실패를 반환하는 것을 특징으로 하는 내장형 데이터베이스 시스템의 다중 데이터베이스 운용 장치.
  6. 제1항에 있어서,
    상기 버퍼 관리자와 데이터베이스 사이에는 하나 또는 그 이상의 논리적 기능들을 수행하는 데이터베이스 명령어들을 이용하여 하위의 데이터베이스를 사용하도록 하는 복수의 하위 모듈이 위치하고,
    상기 버퍼 관리자는 API(application programming interface)에 상기 데이터베이스 ID의 파라미터를 추가하여 구현하고, 상기 데이터베이스ID를 이용하여 복수의 하위 모듈 중 하나의 하위 모듈을 선택하고, 상기 선택된 하위 모듈을 통해 데이터페이지를 읽어오도록 하는 하위모듈 관리자를 포함하는 것을 특징으로 하는 내장형 데이터베이스 시스템의 다중 데이터베이스 운용 장치.
  7. 제6항에 있어서,
    상기 연결관리자는 어레이(Array) 자료 구조를 사용하고, 어레이 크기를 동시에 연결 가능한 데이터베이스의 최대 개수로 설정하며,
    상기 하위 모듈 관리자는 데이터베이스ID와 어레이 크기를 이용한 나머지 연산을 이용하여 복수의 하위 모듈 중 사용할 하위 모듈을 선택하는 것을 특징으로 하는 내장형 데이터베이스 시스템의 다중 데이터베이스 운용 장치.
  8. 제6항에 있어서,
    상기 버퍼 관리자는 내부의 버퍼풀 메모리에 데이터베이스ID와 페이지 ID를 표시하여 데이터페이지를 캐시하고, 해당 데이터페이지의 재요청시 상기 페이지 ID와 데이터베이스 ID를 이용하여 상기 버퍼풀 메모리에서 상기 데이터페이지를 읽어오는 것을 특징으로 하는 내장형 데이터베이스 시스템의 다중 데이터베이스 운용 장치.
  9. 데이터페이지가 적재된 복수의 데이터베이스에 대한 데이터베이스 접근을 처리하는 연결관리자, 상기 데이터페이지에 데이터의 삽입, 삭제, 변경, 검색을 포함한 질의처리 작업을 수행하는 질의처리기 및 상기 데이터베이스에서 데이터페이지를 읽어들여 데이터페이지의 캐시 및 관리를 수행하는 버퍼 관리자를 포함하는 내장형 데이터베이스 시스템의 다중 데이터베이스 운용 방법에 있어서,
    상기 연결 관리자는 데이터베이스의 운영중(RunTime)에 하나의 버퍼 관리자를 사용하기 위해 어레이(Array) 자료 구조를 사용하여 복수의 데이터베이스를 구분하는 데이터베이스ID를 생성 또는 소멸하는 데이터베이스 ID의 동적 관리를 통해 데이터베이스 접근을 처리하는 제1 단계;
    상기 질의 처리기는 데이터베이스 ID와 데이터페이지의 페이지 ID를 이용하여 페이지요청명령을 버퍼 관리자에 요청하고, 상기 요청된 데이터페이지에 데이터의 삽입/삭제/변경/검색을 포함한 질의처리 작업을 수행하는 제2 단계; 및
    상기 버퍼 관리자는 데이터베이스 ID의 파라미터를 추가하여 구현하고, 상기 페이지요청명령에 따라 상기 데이터베이스ID를 이용하여 복수의 데이터베이스 중 해당되는 데이터베이스를 선택하고, 상기 선택된 데이터베이스에서 페이지 ID에 해당하는 데이터페이지를 읽어들여 버퍼풀 메모리에 상기 데이터페이지의 캐시 및 관리 역할을 수행하는 제3 단계를 포함하여 구성되고,
    상기 제1 단계에서 연결 관리자는 어레이 크기를 동시에 연결 가능한 데이터베이스의 최대 개수로 설정하고, 데이터베이스 ID 관리자를 통해 어레이 커서를 사용하여 데이터베이스를 구분하기 위한 데이터베이스 ID를 관리하는 것을 특징으로 하는 내장형 데이터베이스 시스템의 다중 데이터베이스 운용 방법.
  10. 삭제
  11. 제9항에 있어서,
    상기 데이터베이스ID 관리자는, 상기 어레이 커서를 언사인드 쇼트(Unsigned Short) 타입으로 사용하고, 상기 어레이 커서 값의 범위를 0~65535로 설정하며, 상기 어레이 커서를 제어하기 위한 Close 및 Open을 포함한 명령어 문장을 사용하는 것을 특징으로 하는 내장형 데이터베이스 시스템의 다중 데이터베이스 운용 방법.
  12. 제11항에 있어서,
    제1 단계는 상기 어레이가 기설정된 어레이 크기만큼의 필드로 구성된 경우에,
    데이터베이스 Open 명령어가 입력되면 현재 어레이 커서가 위치한 필드에 데이터베이스가 연결되었는지를 확인하고, 해당 필드에 데이터베이스가 연결된 경우에 비어있는 필드를 검색하기 위해 상기 어레이 커서를 '1' 씩 증가시키는 단계;
    상기 어레이에서 비어있는 필드가 있는 경우에 해당 필드에 위치한 어레이 커서의 값을 데이터베이스ID로 할당한 후 데이터베이스 연결을 수행하고, 상기 어레이에 비어있는 필드가 없는 경우에 데이터베이스 연결 가능한 최대 개수를 초과하였음을 알리는 메시지를 출력하고, 데이터베이스 연결 실패를 반환하는 단계를 포함하는 것을 특징으로 하는 내장형 데이터베이스 시스템의 다중 데이터베이스 운용 방법.
  13. 제11항에 있어서,
    상기 제1 단계는 상기 어레이가 기설정된 어레이 크기만큼의 필드로 구성된 경우에,
    데이터베이스 Close 명령어가 입력되면 데이터베이스ID에 해당하는 필드에 어레이 커서가 위치하고, 상기 데이터베이스ID와 어레이 크기를 이용한 나머지 연산을 이용하여 상기 어레이 커서가 위치한 필드를 초기화한 후 데이터베이스 연결을 종료하는 것을 특징으로 하는 내장형 데이터베이스 시스템의 다중 데이터베이스 운용 방법.
  14. 제9항에 있어서,
    상기 버퍼 관리자와 복수의 데이터베이스 사이에는 하나 또는 그 이상의 논리적 기능들을 수행하는 데이터베이스 명령어들을 이용하여 하위의 데이터베이스를 사용하도록 하는 복수의 하위 모듈이 위치하고,
    상기 제3 단계에서 버퍼 관리자는 API(application programming interface)에 상기 데이터베이스 ID의 파라미터를 추가하여 구현하고, 하위모듈 관리자를 통해 상기 데이터베이스ID를 이용하여 복수의 하위 모듈 중 하나의 하위 모듈을 선택하며, 상기 선택된 하위 모듈을 통해 데이터페이지를 읽어오도록 하는 것을 특징으로 하는 내장형 데이터베이스 시스템의 다중 데이터베이스 운용 방법.
  15. 제14항에 있어서,
    상기 하위 모듈 관리자는 데이터베이스ID와 어레이 크기를 이용한 나머지 연산을 이용하여 복수의 하위 모듈 중 사용할 하위 모듈을 선택하는 것을 특징으로 하는 내장형 데이터베이스 시스템의 다중 데이터베이스 운용 방법.
  16. 제14항에 있어서,
    상기 제3 단계에서 버퍼 관리자는 내부의 버퍼풀 메모리에 데이터베이스ID와 페이지 ID를 표시하여 데이터페이지를 캐시하고, 해당 데이터페이지의 재요청시 상기 페이지 ID와 데이터베이스 ID를 이용하여 상기 버퍼풀 메모리에서 상기 데이터페이지를 읽어오는 것을 특징으로 하는 내장형 데이터베이스 시스템의 다중 데이터베이스 운용 방법.
KR1020160140059A 2016-10-26 2016-10-26 내장형 데이터베이스 시스템의 다중 데이터베이스 운용 장치 및 그 방법 KR101828328B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160140059A KR101828328B1 (ko) 2016-10-26 2016-10-26 내장형 데이터베이스 시스템의 다중 데이터베이스 운용 장치 및 그 방법
PCT/KR2017/011895 WO2018080187A1 (ko) 2016-10-26 2017-10-26 내장형 데이터베이스 시스템의 다중 데이터베이스 운용 장치 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160140059A KR101828328B1 (ko) 2016-10-26 2016-10-26 내장형 데이터베이스 시스템의 다중 데이터베이스 운용 장치 및 그 방법

Publications (1)

Publication Number Publication Date
KR101828328B1 true KR101828328B1 (ko) 2018-03-22

Family

ID=61901179

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160140059A KR101828328B1 (ko) 2016-10-26 2016-10-26 내장형 데이터베이스 시스템의 다중 데이터베이스 운용 장치 및 그 방법

Country Status (2)

Country Link
KR (1) KR101828328B1 (ko)
WO (1) WO2018080187A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020153715A1 (en) * 2019-01-25 2020-07-30 Samsung Electronics Co., Ltd. Electronic device and method for controlling the electronic device

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109376174B (zh) * 2018-12-30 2021-04-27 北京奇艺世纪科技有限公司 一种选择数据库的方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050192988A1 (en) * 2004-02-26 2005-09-01 International Business Machines Corporation Method and system for managing aggregation data structures
US20120109878A1 (en) * 2010-10-27 2012-05-03 Crazy Development Debugging system for multidimensional database query expressions on a processing server

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050024762A (ko) * 2003-09-03 2005-03-11 삼성전자주식회사 데이터 베이스의 정보를 관리하는 장치 및 그 방법
US8438364B2 (en) * 2010-12-30 2013-05-07 Facebook Inc. Distributed cache for graph data
US8825959B1 (en) * 2012-07-31 2014-09-02 Actian Netherlands B.V. Method and apparatus for using data access time prediction for improving data buffering policies

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050192988A1 (en) * 2004-02-26 2005-09-01 International Business Machines Corporation Method and system for managing aggregation data structures
US20120109878A1 (en) * 2010-10-27 2012-05-03 Crazy Development Debugging system for multidimensional database query expressions on a processing server

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020153715A1 (en) * 2019-01-25 2020-07-30 Samsung Electronics Co., Ltd. Electronic device and method for controlling the electronic device
US11328719B2 (en) 2019-01-25 2022-05-10 Samsung Electronics Co., Ltd. Electronic device and method for controlling the electronic device

Also Published As

Publication number Publication date
WO2018080187A1 (ko) 2018-05-03

Similar Documents

Publication Publication Date Title
JP6652491B2 (ja) 目標メモリ・アドレスに対応するメモリ属性ユニットの領域を特定するための領域特定演算
KR101907059B1 (ko) 비휘발성 메모리 장치의 블록 관리 방법 및 블록 관리 시스템
US7114051B2 (en) Method for partitioning memory mass storage device
US7779426B2 (en) Describing and querying discrete regions of flash storage
US7657572B2 (en) Selectively utilizing a plurality of disparate solid state storage locations
US9176713B2 (en) Method, apparatus and program storage device that provides a user mode device interface
US9513808B2 (en) Controller used for multi-storages, terminal device and start-up and access method thereof
US8583890B2 (en) Disposition instructions for extended access commands
CN104461607A (zh) 缓存引导数据的固态驱动器
US20170062025A1 (en) Memory system including plural memory devices forming plural ranks and memory controller accessing plural memory ranks and method of operating the memory system
US11500828B1 (en) Method and device for constructing database model with ID-based data indexing-enabled data accessing
WO2005076128A1 (en) Generating device specific requests
EP3242227B1 (en) Page querying method and data processing node in oltp cluster database
KR101828328B1 (ko) 내장형 데이터베이스 시스템의 다중 데이터베이스 운용 장치 및 그 방법
US20150082014A1 (en) Virtual Storage Devices Formed by Selected Partitions of a Physical Storage Device
US8656133B2 (en) Managing storage extents and the obtaining of storage blocks within the extents
KR101535792B1 (ko) 운영체제 구성 장치 및 방법
US20110029580A1 (en) Methods and apparatus for metadata management in a storage system
KR102658600B1 (ko) 디바이스를 디버깅할 때 메타데이터에 액세스하기 위한 장치 및 방법
US20230161476A1 (en) Data read method, data write method, device, and system
US7934073B2 (en) Method for performing jump and translation state change at the same time
CN116450966A (zh) 缓存访问方法及装置、设备、存储介质
US10387416B2 (en) Querying a specified data storage layer of a data storage system
US8977814B1 (en) Information lifecycle management for binding content
CN108733678B (zh) 一种数据搜索的方法、装置和相关设备

Legal Events

Date Code Title Description
GRNT Written decision to grant