KR100632387B1 - 약식 데이터베이스 생성/관리 방법과 그 방법을 컴퓨터에기능시키는 프로그램을 기록한 컴퓨터가 읽을 수 있는기록매체 - Google Patents

약식 데이터베이스 생성/관리 방법과 그 방법을 컴퓨터에기능시키는 프로그램을 기록한 컴퓨터가 읽을 수 있는기록매체 Download PDF

Info

Publication number
KR100632387B1
KR100632387B1 KR1020050073531A KR20050073531A KR100632387B1 KR 100632387 B1 KR100632387 B1 KR 100632387B1 KR 1020050073531 A KR1020050073531 A KR 1020050073531A KR 20050073531 A KR20050073531 A KR 20050073531A KR 100632387 B1 KR100632387 B1 KR 100632387B1
Authority
KR
South Korea
Prior art keywords
database
header information
data
address
start address
Prior art date
Application number
KR1020050073531A
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 KR1020050073531A priority Critical patent/KR100632387B1/ko
Application granted granted Critical
Publication of KR100632387B1 publication Critical patent/KR100632387B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 컴퓨터 상에서 약식 데이터베이스를 생성하고 관리함으로써 저장에 사용되는 메모리를 절약할 수 있는 기술에 관한 것으로, 본 발명에 의한 약식 데이터베이스 생성 방법은 (a) 원본 데이터베이스를 소정의 데이터 단위별로 조사하고 각 데이터 값별로 카운트하여 가장 많은 횟수의 값을 구분자로 결정하는 단계; (b) 원본 데이터베이스에서 구분자가 없는 연속한 데이터 블록을 찾는 단계; (c) 구분자가 없는 연속한 데이터 블록에 대하여, 원본 데이터베이스에서의 시작 주소, 데이터 블록, 구분자를 데이터 정보로서 별도의 메모리에 저장하고, 원본 데이터베이스에서의 시작 주소, 원본 데이터베이스에서의 마지막 주소, 데이터 정보의 시작 주소를 헤더 정보로서 메모리에 저장하는 단계; 및 (d) 상기 (b) 단계와 상기 (c) 단계를 원본 데이터베이스의 마지막 데이터까지 반복함으로써 상기 데이터 정보와 상기 헤더 정보로 구성되는 약식 데이터베이스를 생성하는 단계;를 포함하여 구성된다.

Description

약식 데이터베이스 생성/관리 방법과 그 방법을 컴퓨터에 기능시키는 프로그램을 기록한 컴퓨터가 읽을 수 있는 기록매체{Method for generating/managing an informal database and computer readable medium for storing a program for functioning the method on a computer}
도 1a 내지 도 1d는 본 발명에 의한 약식 데이터베이스 생성방법을 시간의 순서에 따른 흐름도로 도시한 것이다.
도 2는 약식 데이터베이스를 구성하는 헤더 정보 및 데이터 정보의 전체적인 구성을 도시한다.
도 3은 약식 데이터베이스 저장에 의한 메모리 영역의 대응관계를 도시한다.
♣도면의 주요 부분에 대한 부호의 설명 ♣
10 : 신용카드복권제공시스템
본 발명은 컴퓨터 상에서 데이터베이스를 관리하기 위한 기술에 관한 것으로, 보다 상세하게는 컴퓨터 상에서 약식 데이터베이스를 생성하고 관리함으로써 저장에 사용되는 메모리를 절약할 수 있는 기술에 관한 것이다.
데이터베이스는 한 조직 내에서 필요로 하는 데이터를 공동으로 사용할 수 있도록 중복을 최소화하여 통합 저장한 데이터의 집합체를 말하고, 데이터베이스관리시스템(DBMS)은 컴퓨터에서 취급하는 데이터의 구조 및 처리의 기술을 추상화하여 프로그램 작성 및 데이터의 보존을 쉽게 하기 위한 기본 소프트웨어를 말한다.
그런데, 종래에는 데이터베이스를 그대로 저장함으로써 컴퓨터 상에서 필요량 이상의 메모리를 차지하게 된다. 특히, 예비 데이터베이스(Provision Database)의 경우 최초의 디폴트(default) 값들이 데이터베이스를 저장하기 위해 필요한 영역의 대부분을 차지하므로, 디폴트 값을 제외한 나머지 정보만 저장한다면 데이터베이스를 저장하기 위해 요구되는 메모리의 크기도 상당히 줄어들게 될 것이다.
본 발명은 상기의 문제점을 해결하기 위하여 창안된 것으로, 데이터베이스를 구성하는 데이터를 전체적으로 저장하지 않고 약식 데이터베이스를 생성하여 저장하고 관리함으로써 컴퓨터 시스템 상에서 데이터베이스를 저장하기 위한 메모리를 절감하고, 데이터베이스를 다른 장치로 백업할 때 그 시간을 단축하기 위한 약식 데이터베이스 생성/관리 방법과 그 방법을 컴퓨터에 기능시키는 프로그램을 기록한 컴퓨터가 읽을 수 있는 기록매체를 제공함을 그 목적으로 한다.
상기의 목적을 달성하기 위하여, 본 발명에 의한 약식 데이터베이스 생성 방법은 (a) 원본 데이터베이스를 소정의 데이터 단위별로 조사하고 각 데이터 값별로 카운트하여 가장 많은 횟수의 값을 구분자로 결정하는 단계; (b) 원본 데이터베이스에서 구분자가 없는 연속한 데이터 블록을 찾는 단계; (c) 구분자가 없는 연속한 데이터 블록에 대하여, 원본 데이터베이스에서의 시작 주소, 데이터 블록, 구분자를 데이터 정보로서 별도의 메모리에 저장하고, 원본 데이터베이스에서의 시작 주소, 원본 데이터베이스에서의 마지막 주소, 데이터 정보의 시작 주소를 헤더 정보로서 메모리에 저장하는 단계; 및 (d) 상기 (b) 단계와 상기 (c) 단계를 원본 데이터베이스의 마지막 데이터까지 반복함으로써 상기 데이터 정보와 상기 헤더 정보로 구성되는 약식 데이터베이스를 생성하는 단계;를 포함하여 구성된다.
상기의 다른 목적을 달성하기 위하여, 원본 데이터베이스의 변경 내용을 상기의 약식 데이터베이스 생성 방법에 의해 생성된 약식 데이터베이스에 반영하는 본 발명에 의한 약식 데이터베이스 수정 방법은, (a1) 약식 데이터베이스의 헤더 정보의 더블 링크트 리스트에서 변경된 원본 데이터베이스의 시작 주소가 시작 주소와 마지막 주소 사이에 있는 제1 헤더 정보를 찾는 단계; (b1) 상기 (a1) 단계에서 대응하는 제1 헤더 정보를 찾은 경우, 마지막 주소가 변경된 원본 데이터베이스의 시작 주소에 변경 범위를 더한 값보다 크거나 같은 제2 헤더 정보를 찾고, 제1 헤더 정보 다음의 헤더 정보 내지 제2 헤더 정보를 삭제하고, 제1 헤더 정보 다음의 헤더 정보 내지 제2 헤더 정보에 링크된 메모리 영역을 모두 해제하고, 원본 데이터베이스에서 제1 헤더 정보의 시작 주소와 제2 헤더 정보의 마지막 주소까지를 대상으로 상기 (b) 단계 내지 상기 (c) 단계를 반복하여 추가되는 헤더 정보는 제1 헤더 정보 다음에 링크하는 단계; (c1) 상기 (a1) 단계에서 대응하는 제1 헤더 정 보를 찾지 못한 경우, 약식 데이터베이스의 헤더 정보의 더블 링크트 리스트에서 변경된 원본 데이터베이스의 시작 주소에 (변경 범위 + 1)을 더한 값이 시작 주소와 마지막 주소 사이에 있는 제2 헤더 정보를 찾는 단계; (d1) 상기 (c1) 단계에서 대응하는 제2 헤더 정보를 찾지 못한 경우, 변경된 원본 데이터베이스의 시작 주소에서 변경 범위를 더한 주소까지를 대상으로 상기 (b) 단계 내지 상기 (c) 단계를 반복하여 추가되는 헤더 정보는 변경된 원본 데이터베이스의 시작 주소에 (변경 범위 + 1)을 더한 값보다 큰 시작 주소를 가진 헤더 정보 바로 앞에 링크하는 단계; 및 (e1) 상기 (c1) 단계에서 대응하는 제2 헤더 정보를 찾은 경우, 바로 이전의 헤더 정보를 제1 헤더 정보라 하고, 제2 헤더 정보를 삭제하고, 원본 데이터베이스에서 제1 헤더 정보의 시작 주소와 제2 헤더 정보의 마지막 주소까지를 대상으로 상기 (b) 단계 내지 상기 (c) 단계를 반복하여 추가되는 헤더 정보는 제1 헤더 정보 다음에 링크하는 단계;를 포함하여 구성된다.
상기의 또 다른 목적을 달성하기 위하여, 상기의 약식 데이터베이스 생성 방법에 의해 생성된 약식 데이터베이스를 다른 저장 수단에 저장하는 본 발명에 의한 약식 데이터베이스 저장 방법은, (a2) 헤더 정보의 더블 링크트 리스트를 차례대로 검색하면서 데이터 정보의 시작 주소로부터 원본 데이터베이스에서의 시작 주소, 데이터 블록, 구분자를 읽어 복사하는 단계; 및 (b2) 저장 영역의 선두에 전체 크기를 기록하고, 저장 영역의 끝에 0xFFFFFFFF를 추가하는 단계;를 포함하여 구성된다.
상기의 또 다른 목적을 달성하기 위하여, 상기의 약식 데이터베이스 저장 방 법에 의해 저장된 약식 데이터베이스를 원본 데이터베이스 영역에 적용하는 본 발명에 의한 약식 데이터베이스 적용 방법은, (a3) 약식 데이터베이스에서 시작 주소를 읽고 원본 데이터베이스의 (시작 주소 - 1) 주소까지 원본 데이터베이스에 구분자를 쓰는 단계; (b3) 약식 데이터베이스에서 시작 주소 다음의 데이터를 읽어 구분자가 나올 때까지 원본 데이터베이스에 복사하는 단계; (c3) 상기 (a3) 단계 및 상기 (b3) 단계를 0xFFFFFFFF가 나올 때까지 반복하는 단계; 및 (d3) 원본 데이터베이스의 나머지 영역을 구분자로 채우는 단계;를 포함하여 구성된다.
이하에서, 본 발명에 따른 약식 데이터베이스 생성/관리 방법에 대한 바람직한 실시예들을 첨부된 도면에 의거하여 상세하게 설명하기로 한다.
본 발명의 기본적인 아이디어는 다음과 같다.
저장하고자 하는 원본 데이터베이스를 소정의 데이터 단위(바이트 또는 워드 단위, 이하에서는 바이트 단위를 기준으로 하여 설명한다)별로 조사하여 동일한 바이트 값별로 카운트한다. 즉, 바이트는 0~255의 표현이 가능하므로 총 256개 값에 대한 카운트 값이 나오게 된다. 이중 제일 많은 횟수로 나온 값이 다른 값들의 횟수를 모두 합친 것보다 1.5배 이상 크면 약식 데이터베이스를 만드는 것이 의미가 있다. 예비 데이터베이스(Provision database)의 대부분이 최초의 디폴트(default) 값에서 변경되지 않는다면 가장 많은 횟수로 나온 값은 디폴트 값이 되고, 이 횟수는 전체 데이터베이스의 상당 부분을 차지하게 된다. 그러므로 이 디폴트 값을 제외한 나머지 정보만 저장한다면 그 크기는 상당히 줄게 될 것이다. 그러나 위치 정보를 저장해야 하므로 약간의 오버헤드를 가지게 된다.
본 발명에 의한 약식 데이터베이스 생성/관리 방법을 구현한 알고리즘은 4개의 기능 모듈로 구분할 수 있다.
① 약식 데이터베이스 생성
② 약식 데이터베이스 수정
③ 약식 데이터베이스 저장
④ 약식 데이터베이스 적용
<약식 데이터베이스 생성>은 초기에 한번만 수행되는 것으로, 원본 데이터베이스의 내용을 조사하여 바탕이 되는 약식 데이터베이스를 만드는 것이다.
<약식 데이터베이스 수정>은 원본 데이터베이스의 내용이 변경됨에 따라 약식 데이터베이스의 내용을 추가하거나 삭제하는 동작을 한다.
<약식 데이터베이스 저장>은 생성한 약식 데이터베이스를 저장 형식으로 연속 메모리에 저장한다.
<약식 데이터베이스 적용>은 저장된 약식 데이터베이스를 읽어들여 원본 데이터베이스 영역에 반영한다.
1. 약식 데이터베이스 생성
도 1a 내지 도 1d를 참조하여, 본 발명에 의한 약식 데이터베이스 생성방법에 대하여 구체적으로 설명하기로 한다.
먼저, 도 1a 내지 도 1d 및 이하의 설명에서 사용되는 기본적인 자료구조에 대하여 프로그래밍 언어 중 하나인 C 언어의 형태로 설명한다.
전역 변수 :
Unsigned char Delimiter ;
Struct data_ header {
Struct * next address ;
Struct * before address ;
Unsigned char * data_ptr ;
Unsigned char * start_ptr ;
Unsigned char * end_ptr; }
임시 변수 :
Unsigned char delimiter
Unsigned char * start_addr, * end_addr
1) 원본 데이터베이스(ORG_DB)를 바이트 단위로 조사하고, 각 바이트 값별로 카운트하여 가장 많은 횟수의 값을 구분자(delimiter)라는 변수에 저장한다(도 1a의 S100 내지 S108). S106 단계에서 "MAX_address of ORG_DB"는 원본 데이터베이스의 바이트 단위 크기를 나타낸다.
2) 헤더 정보를 구성하기 위해 Struct data_ header에 해당하는 메모리 영역을 할당받고, 각 struct 내의 각 member를 null 값으로 초기화한다(도 1b의 S118 내지 S124).
3) 원본 데이터베이스의 시작 주소부터 바이트 단위로 구분자(delimiter)와 비교하여 다른 값이 나오면 해당 주소를 start_addr(Data_header.start_ptr)에 저장한다(도 1a의 S110 내지 S116, 도 1b의 S126).
4) start_addr(Data_header.start_ptr) 다음부터 구분자(delimiter)가 나올 때까지 비교하여 구분자(delimiter)가 나오면 해당 주소에서 1 만큼 뺀 값을 헤더 정보의 end_addr(Data_header.end_ptr)에 저장한다(도 1b의 S128 내지 도 1c의 S136). 이때, S134 단계의 DB_counter는 구분자(delimiter)가 없는 연속한 데이터 블록의 바이트 수를 카운드한다.
5) 데이터 정보를 구성하기 위해 (( end_addr - start_addr)(data 저장) + 4(start_addr 저장) + 1(delimiter 저장)) 크기 만큼 메모리를 할당 받는다(도 1c의 S138 내지 S142). 할당 받은 메모리의 시작 어드레스를 Data_header.data_ptr에 저장한다(도 1c의 S144).
6) 데이터 정보를 구성하기 위해 할당받은 메모리 영역에 start_addr를 저장한다(도 1c의 S146). start_addr를 저장한 다음 바이트부터 원본 데이터베이스의 start_addr부터 end_addr까지의 내용을 복사한다(도 1c의 S150 내지 도 1d의 S158). 그리고, 마지막 바이트에 구분자(delimiter) 값을 쓴다(도 1c의 S148).
7) 헤더 정보를 구성하기 위해 Struct data_ header에 해당하는 새로운 메모리 영역을 할당받는다. 새로 할당받은 메모리 영역의 시작 주소를 이전의 헤더 정보의 Data_header.Next_address에 저장하고, 새로운 헤더 정보의 Data_header.Before_address에는 이전 헤더 정보의 시작 주소를 넣는다. 따라서, 헤더 정보는 더블 링크트 리스트를 구성하게 된다.
8) 원본 데이터베이스의 (end_addr + 1)을 시작 주소로 3) 내지 7) 항목을 반복한다(도 1d의 S160, S162).
도 2는 약식 데이터베이스를 구성하는 헤더 정보 및 데이터 정보의 전체적인 구성을 도시한다.
2. 약식 데이터베이스 수정
원본 데이터베이스의 변경이 있는 경우, 해당 변경 영역에 대해 약식 데이터베이스도 수정이 되어야 한다. 변경 영역 내에 구분자(delimiter)가 있는지 검사 하여 처리해야 한다. 또한 주변 영역과의 연계성도 있으므로 약식 데이터베이스 생성 시에는 변경 영역 이상의 범위를 검사해야 할 수도 있다.
임시 변수 :
Unsigned char * org_start_address ;
Unsigned Int range ;
Struct * data_header_1, * data_header_2;
1) 변경된 원본 데이터베이스의 start address와 range를 org_start_address와 range 변수에 저장한다.
2) 약식 데이터베이스의 헤더 정보의 더블 링크트 리스트를 순서대로 찾아가 며 Data_header.start_ptr와 Data_header.end_ptr 내에 org_start_address가 들어가 있는 헤더 정보를 찾는다.
ⅰ) 있는 경우 : 찾은 헤더 정보를 제1 헤더 정보(data_header_1)로 한다.
제1 헤더 정보의 end_ptr와 (org_start_address + range)를 비교한다.
a) end_ptr가 더 크거나 같은 경우 :
검색대상 원본 데이터베이스의 범위를 제1 헤더 정보의 start_ptr부 터 end_ptr을 대상으로 <약식 데이터베이스 생성>의 3) 내지 7) 과정 을 반복한다. 추가되는 헤더 정보는 제1 헤더 정보 다음에 링크된다.
b) end_ptr이 작은 경우 :
제1 헤더 정보 이후의 헤더 정보를 순서대로 찾아서 end_ptr(맞습니 까?)가 (org_start_address + range) 보다 큰 것을 찾는다. 이를 제2 헤더 정보 (data_header_2)라 하고 제1 헤더 정보와 제2 헤더 정 보 사이의 헤더 정보들과 제2 헤더 정보를 삭제한다.
링크된 메모리 영역도 모두 해제(release)한다.
검색할 원본 데이터베이스 범위를 제1 헤더 정보의 start_ptr부터 제 2 헤더 정보의 end_ptr까지를 대상으로 <약식 데이터베이스 생성>의 3) 내지 7) 과정을 반복한다. 추가되는 헤더 정보는 제1 헤더 정보 다음에 링크된다.
ⅰ) 없는 경우 : (org_start_address + range + 1) 값이 start_ptr과 end_ptr 사이에 있는 것을 찾는다.
a) 이 경우도 없으면 새로운 헤더 정보를 할당받고 검색할 원본 데이 터베이스의 범위를 org_start_address부터 (org_start_address + range)로 하여 <약식 데이터베이스 생성>의 3) 내지 7) 과정을 반복한다. 추가되는 헤더 정보는 start_ptr 값이 (org_start_address + range + 1)보다 큰 헤더 정보 바로 앞에 링크된다.
b) 있는 경우 : 찾은 헤더 정보를 제2 헤더 정보(data_header_2)라 하고 그 바로 이전의 헤더 정보를 제1 헤더 정보(data_header_1)라 한다. 제2 헤더 정보를 삭제한다.
검색할 원본 데이터베이스 범위를 org_start_address부터 제2 헤더 정보의 end_ptr까지를 대상으로 <약식 데이터베이스 생성>의 3) 내지 7) 과정을 반복한다. 추가되는 헤더 정보는 제1 헤더 정보 이후에 링크된다.
3. 약식 데이터베이스 저장
약식 데이터베이스를 비휘발성 메모리에 저장하거나 데이터를 다른 시스템이나 백업(backup) 장비로 전송하고자 할 때 사용한다. 저장되는 내용은 헤더 정보인 Data_header의 data_ptr에 링크(link)된 내용만 저장된다.
이것은 위의 <약식 데이터베이스의 생성> 이나 <약식 데이터베이스의 수정> 이후에 항상 처리될 수도 있고 저장 명령에 따라 가끔 처리될 수도 있다. 단 약식 데이터베이스 내용의 생성 또는 수정 중에는 불가능하다.
1) 첫 번째 헤더 정보의 Data_header.data_ptr가 가르키는 영역의 정보를 그대로 저장할 영역의 다섯 번째 바이트를 시작으로 복사한다.
2) 첫 번째 헤더 정보에 의한 복사가 끝나면 두 번째 헤더 정보의 Data_header.data_ptr가 가르키는 영역의 정보를 약식 데이터베이스 영역 내의 첫 번째 데이터를 복사한 바로 다음부터 이어서 복사한다. 이와 같은 방식의 복사를 마지막 헤더 정보까지 수행한다.
3) 마지막까지 복사하면 0xFFFFFFFF를 추가하고 전체 크기를 처음 4바이트에 적어 넣는다. 저장된 내용은 구분자(delimiter)로 구분되게 된다.
도 3은 약식 데이터베이스 저장에 의한 메모리 영역의 대응관계를 도시한다.
4. 약식 데이터베이스의 적용
약식 데이터베이스 영역에 저장된 내용을 원본 데이터베이스에 저장한다.
1) 약식 데이터베이스 영역의 첫번째 4 바이트를 읽어와 start_addr에 저장 한다. 이 start_addr 값이 원본 데이터베이스 내의 주소인지 확인한다.
2) 원본 데이터베이스에 해당하는 주소이면 원본 데이터베이스의 시작 주소로부터 (Start_addr - 1) 주소까지 구분자(delimiter) 값을 쓴다. 원본 데이터베이스 범위 내에 들지 않으면 나머지 데이터는 폐기한다.
3) Start_addr 주소부터 약식 데이터베이스 영역의 5번째 바이트부터 읽어 복사한다. 복사하면서 카운터를 증가시켜 (start_addr + counter)의 값이 원본 데이터베이스의 마지막 주소보다 작은지 여부를 확인한다.
4) 구분자(delimiter)가 나올 때까지 다음 데이터도 계속 복사한다.
5) 구분자(delimiter)가 나오면 연속된 4byte가 0xffffffff 값인지 확인한다. 아니면, 1)부터 반복한다. 0xffffffff 값이면 나머지 원본 데이터베이스 주소 영역을 구분자(delimiter) 값으로 채운다.
한편, 상술한 본 발명의 실시예는 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하다. 그리고, 컴퓨터에서 사용되는 기록매체를 이용하여 하드디스크 보호 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 상기 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 씨디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)과 같은 전송매체를 포함한다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
본 발명에 의하면, 예비 데이터베이스(Provision Database)처럼 데이터베이스 내에 특정 데이터 값이 차지하는 비율이 높은 데이터베이스에 대해 많은 부분을 차지하는 데이터를 제외한 나머지 데이터만 저장함으로써 저장할 메모리를 절약할 수 있다. 또한, 다른 장비로 데이터베이스를 백업하는 경우에도 모든 데이터베이스의 정보를 백업하는 것이 아니라 일부만을 백업함으로써 전송시간을 절약할 수 있다.

Claims (9)

  1. (a) 원본 데이터베이스를 소정의 데이터 단위별로 조사하고 각 데이터 값별로 카운트하여 가장 많은 횟수의 값을 구분자로 결정하는 단계;
    (b) 원본 데이터베이스에서 구분자가 없는 연속한 데이터 블록을 찾는 단계;
    (c) 구분자가 없는 연속한 데이터 블록에 대하여, 원본 데이터베이스에서의 시작 주소, 데이터 블록, 구분자를 데이터 정보로서 별도의 메모리에 저장하고, 원본 데이터베이스에서의 시작 주소, 원본 데이터베이스에서의 마지막 주소, 데이터 정보의 시작 주소를 헤더 정보로서 메모리에 저장하는 단계; 및
    (d) 상기 (b) 단계와 상기 (c) 단계를 원본 데이터베이스의 마지막 데이터까지 반복함으로써 상기 데이터 정보와 상기 헤더 정보로 구성되는 약식 데이터베이스를 생성하는 단계;를 포함함을 특징으로 하는 약식 데이터베이스 생성 방법.
  2. 제1항에 있어서, 각 데이터 블록에 대응한 헤더 정보에는
    이전 헤더 정보의 시작 주소와 다음 헤더 정보의 시작 주소를 포함함으로써, 헤더 정보는 더블 링크트 리스트를 형성함을 특징으로 하는 약식 데이터베이스 생성 방법.
  3. 제1항 또는 제2항에 의한 약식 데이터베이스 생성 방법을 컴퓨터에 기능시키는 프로그램을 기록한 컴퓨터가 읽을 수 있는 기록매체.
  4. 원본 데이터베이스의 변경 내용을 제2항에 의한 약식 데이터베이스 생성 방법에 의해 생성된 약식 데이터베이스에 반영하는 방법에 있어서,
    (a1) 약식 데이터베이스의 헤더 정보의 더블 링크트 리스트에서 변경된 원본 데이터베이스의 시작 주소가 시작 주소와 마지막 주소 사이에 있는 제1 헤더 정보를 찾는 단계;
    (b1) 상기 (a1) 단계에서 대응하는 제1 헤더 정보를 찾은 경우, 마지막 주소가 변경된 원본 데이터베이스의 시작 주소에 변경 범위를 더한 값보다 크거나 같은 제2 헤더 정보를 찾고, 제1 헤더 정보 다음의 헤더 정보 내지 제2 헤더 정보를 삭제하고, 제1 헤더 정보 다음의 헤더 정보 내지 제2 헤더 정보에 링크된 메모리 영역을 모두 해제하고, 원본 데이터베이스에서 제1 헤더 정보의 시작 주소와 제2 헤더 정보의 마지막 주소까지를 대상으로 상기 (b) 단계 내지 상기 (c) 단계를 반복하여 추가되는 헤더 정보는 제1 헤더 정보 다음에 링크하는 단계;
    (c1) 상기 (a1) 단계에서 대응하는 제1 헤더 정보를 찾지 못한 경우, 약식 데이터베이스의 헤더 정보의 더블 링크트 리스트에서 변경된 원본 데이터베이스의 시작 주소에 (변경 범위 + 1)을 더한 값이 시작 주소와 마지막 주소 사이에 있는 제2 헤더 정보를 찾는 단계;
    (d1) 상기 (c1) 단계에서 대응하는 제2 헤더 정보를 찾지 못한 경우, 변경된 원본 데이터베이스의 시작 주소에서 변경 범위를 더한 주소까지를 대상으로 상기 (b) 단계 내지 상기 (c) 단계를 반복하여 추가되는 헤더 정보는 변경된 원본 데이 터베이스의 시작 주소에 (변경 범위 + 1)을 더한 값보다 큰 시작 주소를 가진 헤더 정보 바로 앞에 링크하는 단계; 및
    (e1) 상기 (c1) 단계에서 대응하는 제2 헤더 정보를 찾은 경우, 바로 이전의 헤더 정보를 제1 헤더 정보라 하고, 제2 헤더 정보를 삭제하고, 원본 데이터베이스에서 제1 헤더 정보의 시작 주소와 제2 헤더 정보의 마지막 주소까지를 대상으로 상기 (b) 단계 내지 상기 (c) 단계를 반복하여 추가되는 헤더 정보는 제1 헤더 정보 다음에 링크하는 단계;를 포함하는 것을 특징으로 하는 약식 데이터베이스 수정 방법.
  5. 제4항에 의한 약식 데이터베이스 수정 방법을 컴퓨터에 기능시키는 프로그램을 기록한 컴퓨터가 읽을 수 있는 기록매체.
  6. 제2항에 의한 약식 데이터베이스 생성 방법에 의해 생성된 약식 데이터베이스를 다른 저장 수단에 저장하는 방법에 있어서,
    (a2) 헤더 정보의 더블 링크트 리스트를 차례대로 검색하면서 데이터 정보의 시작 주소로부터 원본 데이터베이스에서의 시작 주소, 데이터 블록, 구분자를 읽어 복사하는 단계; 및
    (b2) 저장 영역의 선두에 전체 크기를 기록하고, 저장 영역의 끝에 0xFFFFFFFF를 추가하는 단계;를 포함하는 것을 특징으로 하는 약식 데이터베이스 저장 방법.
  7. 제6항에 의한 약식 데이터베이스 저장 방법을 컴퓨터에 기능시키는 프로그램을 기록한 컴퓨터가 읽을 수 있는 기록매체.
  8. 제6항에 의한 약식 데이터베이스 저장 방법에 의해 저장된 약식 데이터베이스를 원본 데이터베이스 영역에 적용하는 방법에 있어서,
    (a3) 약식 데이터베이스에서 시작 주소를 읽고 원본 데이터베이스의 (시작 주소 - 1) 주소까지 원본 데이터베이스에 구분자를 쓰는 단계;
    (b3) 약식 데이터베이스에서 시작 주소 다음의 데이터를 읽어 구분자가 나올 때까지 원본 데이터베이스에 복사하는 단계;
    (c3) 상기 (a3) 단계 및 상기 (b3) 단계를 0xFFFFFFFF가 나올 때까지 반복하는 단계; 및
    (d3) 원본 데이터베이스의 나머지 영역을 구분자로 채우는 단계;를 포함함을 특징으로 하는 약식 데이터베이스 적용 방법.
  9. 제8항에 의한 약식 데이터베이스 적용 방법을 컴퓨터에 기능시키는 프로그램을 기록한 컴퓨터가 읽을 수 있는 기록매체.
KR1020050073531A 2005-08-11 2005-08-11 약식 데이터베이스 생성/관리 방법과 그 방법을 컴퓨터에기능시키는 프로그램을 기록한 컴퓨터가 읽을 수 있는기록매체 KR100632387B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050073531A KR100632387B1 (ko) 2005-08-11 2005-08-11 약식 데이터베이스 생성/관리 방법과 그 방법을 컴퓨터에기능시키는 프로그램을 기록한 컴퓨터가 읽을 수 있는기록매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050073531A KR100632387B1 (ko) 2005-08-11 2005-08-11 약식 데이터베이스 생성/관리 방법과 그 방법을 컴퓨터에기능시키는 프로그램을 기록한 컴퓨터가 읽을 수 있는기록매체

Publications (1)

Publication Number Publication Date
KR100632387B1 true KR100632387B1 (ko) 2006-10-09

Family

ID=37635486

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050073531A KR100632387B1 (ko) 2005-08-11 2005-08-11 약식 데이터베이스 생성/관리 방법과 그 방법을 컴퓨터에기능시키는 프로그램을 기록한 컴퓨터가 읽을 수 있는기록매체

Country Status (1)

Country Link
KR (1) KR100632387B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102567141A (zh) * 2011-12-13 2012-07-11 北京握奇数据系统有限公司 一种数据项备份方法及智能卡

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3072708B2 (ja) 1995-11-01 2000-08-07 インターナショナル・ビジネス・マシーンズ・コーポレ−ション データベース検索方法及び装置
KR100373397B1 (ko) 2000-02-14 2003-02-25 고재술 노드방식 라이브러리를 이용한 인터넷 사이트 구축방법 및그 데이터 처리 구조

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3072708B2 (ja) 1995-11-01 2000-08-07 インターナショナル・ビジネス・マシーンズ・コーポレ−ション データベース検索方法及び装置
KR100373397B1 (ko) 2000-02-14 2003-02-25 고재술 노드방식 라이브러리를 이용한 인터넷 사이트 구축방법 및그 데이터 처리 구조

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102567141A (zh) * 2011-12-13 2012-07-11 北京握奇数据系统有限公司 一种数据项备份方法及智能卡

Similar Documents

Publication Publication Date Title
US11243911B2 (en) Method and apparatus for fault-tolerant memory management
CN103377137B (zh) 使用增强的频繁块检测进行存储去重的方法和系统
US8984239B2 (en) Hardware and operating system support for persistent memory on a memory bus
US5430869A (en) System and method for restructuring a B-Tree
US7349927B2 (en) Transactional file system for realizing atomic update of plural files by transactions
CN109933570A (zh) 一种元数据管理方法、系统及介质
CN105988723A (zh) 一种快照处理方法及装置
KR20110032343A (ko) 비휘발성 메모리를 이용한 로깅 최적화 장치 및 방법
US7240172B2 (en) Snapshot by deferred propagation
CN109407985B (zh) 一种数据管理的方法以及相关装置
CN106326040B (zh) 一种快照元数据管理方法和装置
Prokopec Cache-tries: concurrent lock-free hash tries with constant-time operations
CN111104377A (zh) 文件管理的方法、电子设备和计算机可读存储介质
JP4825719B2 (ja) 高速ファイル属性検索
KR100907477B1 (ko) 플래시 메모리에 저장된 데이터의 인덱스 정보 관리 장치및 방법
Xu et al. Building a fast and efficient LSM-tree store by integrating local storage with cloud storage
Yeon et al. Jellyfish: A fast skip list with mvcc
CN103116652B (zh) 一种基于拉链信息的索引存储管理方法
CN110515897B (zh) Lsm存储系统读性能的优化方法及系统
KR100632387B1 (ko) 약식 데이터베이스 생성/관리 방법과 그 방법을 컴퓨터에기능시키는 프로그램을 기록한 컴퓨터가 읽을 수 있는기록매체
Jiao et al. BetrFS: a compleat file system for commodity SSDs
Wang et al. Optimization of LevelDB by separating key and value
KR101946135B1 (ko) 비휘발성 메모리를 이용하는 데이터베이스 관리 시스템 및 방법
EP2405360A1 (en) Information processing system and method
Shi et al. SQLiteKV: An efficient LSM-tree-based SQLite-like database engine for mobile devices

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120903

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20130902

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140901

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150902

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee