KR101076655B1 - 임베디드 단말기에 탑재된 디비엠에스의 특정 데이터 동기화방법 - Google Patents

임베디드 단말기에 탑재된 디비엠에스의 특정 데이터 동기화방법 Download PDF

Info

Publication number
KR101076655B1
KR101076655B1 KR1020100021613A KR20100021613A KR101076655B1 KR 101076655 B1 KR101076655 B1 KR 101076655B1 KR 1020100021613 A KR1020100021613 A KR 1020100021613A KR 20100021613 A KR20100021613 A KR 20100021613A KR 101076655 B1 KR101076655 B1 KR 101076655B1
Authority
KR
South Korea
Prior art keywords
data
dbms
synchronization
record
new data
Prior art date
Application number
KR1020100021613A
Other languages
English (en)
Other versions
KR20110102555A (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 KR1020100021613A priority Critical patent/KR101076655B1/ko
Publication of KR20110102555A publication Critical patent/KR20110102555A/ko
Application granted granted Critical
Publication of KR101076655B1 publication Critical patent/KR101076655B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/275Synchronous replication

Landscapes

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

Abstract

임베디드 단말기에 탑재된 DBMS의 특정 데이터 동기화방법이 개시된다. 그 DBMS의 특정 데이터 동기화 방법은, 임베디드 단말기에 탑재된 DBMS의 테이블을 구성하는 레코드들 중 일부를 착탈식 저장장치에 저장되어 있는 신규 데이터로 동기화하는 방법에 있어서, DBMS의 테이블을 구성하는 레코드들에 대해 적어도 하나의 동기화 대상 레코드를 선정하는 단계; 그 신규 데이터를 상기 선정된 동기화 대상 레코드와 비교하는 단계; 및 그 비교결과에 따라 상기 테이블의 레코드를 상기 신규데이터로 데이터 동기화하는 단계를 포함하는 것을 특징으로 한다.
본 발명에 의하면, 착탈식 메모리에 저장된 데이터에 상응하는 레코드들에 대해서만 데이터 동기화를 하게 되어 DBMS의 데이터 업데이트 시간을 단축시키고, DBMS의 시스템 성능도 크게 높일 수 있다. 또한 DBMS의 테이블에 여러 종류의 데이터가 저장되어 있고, 착탈식 메모리에는 특정 종류의 데이터만 저장되어 있을 경우에도 특정 레코드만 선정하여 데이터 동기화를 수행할 수 있는 편리함이 있다.

Description

임베디드 단말기에 탑재된 디비엠에스의 특정 데이터 동기화방법{Synchronization Method for specific data of DBMS mounted in embedded terminal device}
본 발명은 데이터베이스 관리 시스템(database management system, DBMS)에 관한 것으로서, 특히 임베디드(embedded) 단말기에 탑재된 DBMS의 특정 데이터 동기화방법에 관한 것이다.
DBMS가 내장된 임베디드(embedded) 단말기, 예를 들어 DBMS가 탑재된 핸드폰, PDA와 같은 단말기들은 SD 카드, 유심(USIM) 또는 MMC와 같은 보조 데이터저장 장치인 착탈식 메모리를 선택적으로 장착하여 사용하고 있다.
도 1은 임베디드 단말기(100)에 상기 착탈식 메모리를 장착하여 DBMS가 착탈식 메모리 장치(110)의 데이터를 이용하여 데이터를 검색하고 상기 검색된 데이터를 상기 임베디드 단말기(100)가 이용하는 것을 블록도로 도시한 것으로서, 임베디드 단말기(100)에는 DBMS(120) 가 탑재되어 있고, DBMS(120)에 의해 관리되는 주소록, 전화번호, 문자메시지, 음악파일, 동영상 등과 같은 데이터를 저장하는 메모리(130), 예를 들어 플래시(flash) 메모리가 내장되어 있다.
상기 착탈식 메모리 장치(110)에는 음악파일, 동영상파일, 사진파일 등 여러 가지 데이터가 저장될 수 있으며, 사용자가 착탈식 메모리 장치(110)를 임베디드 단말기(100)에 장착하게 되면, 임베디드 단말기(100)의 DBMS(120)는 착탈식 메모리장치(110)에 저장되어 있는 데이터를 자체 메모리(130)의 특정 메모리 영역으로 업데이트(update)하여 관리하게 된다.
착탈식 메모리 장치(110)에 저장되어 있는 데이터를 상기 플래시 메모리(130)로 업데이트(update)하는 종래의 기술은 임베디드 단말기(100)의 플래시 메모리(130)에 존재하던 이전 데이터를 모두 지운 후, 착탈식 메모리 장치(110)에서 읽은 신규 데이터를 상기 플래시 메모리(130)에 쓰기(write) 작업하여 저장하는 것이다.
그러나 이러한 종래 기술은 착탈식 메모리 장치(110)에 저장된 데이터를 임베디드 단말기(100)의 메모리(130)로 옮겨올 때 메모리(130)에 존재하던 기존의 데이터를 모두 삭제한 후, 착탈식 메모리 장치(110)에서 읽어 온 데이터를 쓰기 작업으로 저장하기 때문에 쓰기 작업량이 많고 업데이트(update) 시간이 길어지고, 이에 의해 시스템의 성능에 좋지 않은 영향을 주게 되어 제품 사용자에게 불편함을 유발함을 물론 제품의 전체적인 성능 및 플래시 메모리의 수명이 단축되는 문제점이 있었다.
또한 임베디드 단말기(100)에 탑재된 DBMS(120)의 테이블에 여러 종류의 데이터, 예를 들어 MP3, 동영상, 사진파일, 기타 다른 종류의 파일 등이 저장되어 있고, 착탈식 메모리(110)에는 특정 종류의 데이터, 예를 들어 MP3 파일만 저장되어 있을 경우, 상기 MP3파일만 DBMS(100)의 테이블에 업데이트 하고자 할 때에는 DBMS(100)의 SQL구문을 이용하게 되면 MP3파일 외의 다른 종류의 파일은 삭제되게 되어 구조적으로 동기화 작업을 수행할 수 없는 문제점이 있다.
본 발명이 해결하고자 하는 과제는 임베디드(embedded) 단말기에 탑재된 DBMS의 테이블을 구성하는 적어도 하나의 특정 레코드들에 저장된 데이터만 동기화할 수 있는, 임베디드(embedded) 단말기에 탑재된 DBMS의 특정 레코드 데이터 동기화 방법을 제공하는 것이다.
상기 기술적 과제를 이루기 위한 본 발명에 의한 임베디드(embedded) 단말기에 탑재된 DBMS의 특정 데이터 동기화 방법은, 임베디드 단말기에 탑재된 DBMS의 테이블을 구성하는 레코드들 중 일부를 착탈식 저장장치에 저장되어 있는 신규 데이터로 동기화하는 방법에 있어서, 상기 DBMS의 테이블을 구성하는 레코드들에 대해 적어도 하나의 동기화 대상 레코드를 선정하는 단계; 상기 신규 데이터를 상기 선정된 동기화 대상 레코드와 비교하는 단계; 및 상기 비교결과에 따라 상기 테이블의 레코드를 상기 신규데이터로 데이터 동기화하는 단계를 포함하는 것을 특징으로 한다.
그리고 상기 레코드 선정 단계는 상기 테이블의 적어도 하나의 컬럼에 대해 소정의 조건을 부가하여 상기 조건을 만족하는 레코드들을 동기화할 특정 레코드로 선정하는 것이 바람직하다. 또한 상기 레코드 선정 단계는 상기 테이블의 적어도 하나의 컬럼에 대해 소정의 조건을 부가하여 상기 조건을 만족하는 레코드들을 동기화 이후 제거될 레코드에서 제외시키고 나머지 레코드를 동기화 레코드로 선정하는 것이 바람직하다.
상기 조건 부가는 상기 DBMS의 테이블을 구성하는 적어도 하나의 컬럼의 컬럼값이 소정의 값을 만족하는지 여부를 나타내는 것으로 이루어지는 것이 바람직하다. 상기 비교 단계는 상기 신규 데이터 소정의 데이터 단위로 순차적으로 스캔하면서 상기 선정된 동기화 대상 레코드와 비교하는 것이 바람직하다.
상기 동기화 단계는 상기 비교결과 데이터가 서로 다르면 상기 테이블의 데이터를 신규데이터로 업데이트하고, 상기 비교결과 데이터가 서로 동일하면 스킵(skip)하고, 신규데이터가 상기 테이블에 없으면 상기 신규데이터를 상기 테이블에 삽입하는 단계; 및 상기 테이블의 동기화 대상 레코드 모두에 대해 비교가 완료되면, 상기 신규데이터에 대응되지 않는 상기 테이블의 동기화 대상 레코드들을 제거하는 단계를 포함하는 것이 바람직하다.
그리고 상기 기재된 발명을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
본 발명에 의한 임베디드(embedded) 단말기에 탑재된 DBMS의 특정 레코드 데이터 동기화 방법에 의하면, 상기 DBMS이 테이블로 여러 종류의 방대한 데이터를 관리하고 저장하고 있을 때, 착탈식 메모리에 저장된 데이터로 업데이트하기 위해, 테이블 전체에 대해 일괄적으로 데이터 동기화하는 대신, 상기 착탈식 메모리에 저장된 데이터에 상응하는 레코드들에 대해서만 데이터 동기화를 하게 되어 쓰기(write) 작업을 크게 줄일 수 있어 DBMS의 데이터 업데이트 시간을 단축시키고, DBMS의 시스템 성능도 크게 높일 수 있다.
뿐만아니라 DBMS의 테이블에 여러 종류의 데이터가 저장되어 있고, 착탈식 메모리에는 특정 종류의 데이터만 저장되어 있을 경우에도 특정 레코드만 선정하여 데이터 동기화를 수행할 수 있는 편리함이 있다.
도 1은 임베디드 단말기에 착탈식 메모리를 장착하여 DBMS가 착탈식 메모리 장치의 데이터를 이용하여 데이터를 검색하고 이용하는 것을 블록도로 도시한 것이다.
도 2는 본 발명에 의한 임베디드 단말기에 탑재된 DBMS의 특정 데이터 동기화방법의 일실시예를 흐름도로 도시한 것이다.
도 3은 도 2에 의한 본 발명의 일실시예를 구체적으로 설명하는 것이다.
도 4는 착탈식메모리의 신규데이터를 DBMS의 테이블과 동기화시킨 결과를 나타낸 것이다.
이하, 첨부된 도면을 참조로 본 발명의 바람직한 실시예를 상세히 설명하기로 한다. 이에 앞서, 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 바람직한 일 실시예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다.
본 명세서에서 ‘데이터 동기화(data synchronization)’라 함은 데이터 저장장치에 저장된 데이터가 다를 때 이를 일치시키는 것을 말한다. 예를 들어, 임베디드 단말기에 메모리 카드와 같은 착탈식 저장장치에 신규데이터가 저장되어 있을 때, 상기 임베디드 단말기에 탑재된 DBMS의 테이블을 구성하는 레코드들 중 일부 레코드들을 상기 신규데이터로 업데이트(update) 시키는 것도 상기 데이터 동기화의 일 예에 해당한다.
본 발명이 적용되는 임베디드 단말기에 착탈식 메모리가 장착될 때, 데이터 동기화를 수행하면, 상기 착탈식 메모리의 신규 데이터를 상기 임베디드 단말기의 메모리 장치 예를 들어 플래시 메모리에 저장시키게 된다.
상기 데이터 동기화는 일반적으로는 데이터 동기화 프로그램에 의해 수행될 수 있는 데, 상기 동기화는 SQL 구문에 의해 이루어질 수 있다.
먼저 UPSERT 명령문을 설명하면, 신규데이터를 특정 테이블과 비교하여 대상 데이터가 테이블에 존재하고 그 존재하는 데이터와 신규데이터가 다른 경우에는 Update를 하고, 신규 데이터가 테이블에 존재하지 않으면 Insert를 하는데, 이런 기능을 하는 명령문을 UPSERT라고 한다.
SYNC 구문의 경우에는 UPSERT의 집합으로서, UPSERT 작업 후 기준 테이블의 데이터 중 UPSERT되지 않은 데이터에 대해서는 동기화의 정상 종료시 삭제 작업을 추가로 실행한다.
<SQL 구문>
SYNC START tablename [ BASED ON indexname | PRIMARY [ KEY ] [ IGNORING ALL | column1 , column2 , ...] [ WHERE <조건>]
상기 SQL 구문에서 'SYNC START'는 데이터 동기화의 시작을 나타내고, 이 때 사용자가 넘겨준 table name 과 index name 또는 해당 테이블의 Primary Key는 SYNC 구문 안에서 기준이 된다. 그리고 IGNORING 절이 오는 경우 해당하는 컬럼을 비교 대상에서 제외시키게 된다. 상기 table name은 SYNC 대상 테이블을 나타내고, 상기 index name은 table name에 걸려있는 인덱스의 이름으로 데이터 동기화시 기준이 된다. 즉, indexname을 기준으로 데이터의 update, insert가 결정된다. PRIMARY KEY는 tablename의 Primary Key가 데이터 동기화시 기준이 됨을 나타낸다. IGNORING은 Upsert시 비교 대상에서 제외될 컬럼명을 나타내며, IGNORING ALL의 경우에는 모든 컬럼에 대해서 예외 설정을 함을 의미한다.
<SQL 구문>
SYNC END [ tablename ]
‘SYNC END'는 데이터 동기화의 끝을 나타내며, SYNC START 후 업데이트(update), 인서트(insert) 되지 않은 대상 테이블의 데이터는 삭제된다. tablename는 SYNC START 시 기술한 tablename을 나타내고, ’SYNC END tablename'는 해당 테이블에 대한 SYNC 작업을 종료함을 의미한다. 이 때 UPSERT 또는 INSERT 없이 SYNC를 종료하면 대상 테이블에 남아있는 모든 데이터는 지워지게 하는 것이 바람직하다.
<SQL 구문>
SYNC BREAK tablename
SYNC BREAK'는 SYNC END에 의한 작업, 즉 업데이트 또는 인서트 대상이 아닌 데이터에 대한 삭제 작업을 하지 않도록 하는 것이다. SYNC START 후 UPSERT 명령을 통해 작업을 하고, SYNC END 하게 되면, UPSERT와 관련되지 않은 레코드(Reocrd)는 삭제되는데, SYNC BREAK 에서는 UPSERT와 관련되지 않은 레코드를 삭제 하지 않고, SYNC 작업을 완료한다. 상기 tablename은 SYNC 대상 테이블을 나타내며, SYNC BREAK는 SYNC END와 같은 의미를 가지지만, 데이터 정리 작업을 하지 않고, SYNC를 종료한다.
<SQL 구문>
UPSERT INTO [tablename] VALUES(...)
SYNC에 의한 UPSERT인 경우, 즉 SYNC 구문 내에 포함된 UPSERT인 경우에는 SYNC START에서 넘어온 index name을 기준으로 UPSERT를 실행한다. 그리고 SYNC가 없는 UPSERT인 경우에는 UPSERT는 Primary Key를 기준으로 UPSERT를 실행한다. 상기 table name은 UPSERT 대상이 되는 테이블을 나타내고, VALUES( )는 Insert에서 사용되는 Syntax를 나타낸다. SYNC 구문 내에 포함된 경우, SYNC START에서 기술한 index name을 기준으로 Insert/Update를 실행하는 것이 바람직하다.
그런데, SYNC 질의문은 WHERE절을 명시하지 않으면 해당 테이블 전체를 대상으로 동기화 처리를 하도록 되어 있다. 그런데 해당 테이블의 전체 레코드 보다는 특정 <조건>에 해당되는 레코드들에 대해서만 데이터 동기화가 필요한 경우가 있다. 이렇게 WHERE절을 명시하여 상기 특정 <조건>에 해당되는 레코드들만 동기화를 하는 경우 테이블 전체에 대해 데이터 동기화를 하는 것 보다 데이터 처리속도를 높일 수 있다.
이렇게 하면, <조건>에 해당되는 레코드들만을 대상으로 처리한다. <조건>에 맞지 않는 레코드들은 sync 대상이 아니므로 동기화 구문 내에서 수행되는 질의문 operation 과는 상관없이 처리한다. 즉, select를 하게 되는 경우 <조건>에 해당 되는 레코드들 중에서 동기화가 된(touch 된) 레코드들이 select가 된다.
또한, upsert 등의 operation으로 touch가 되지 않았지만 동기화 이후 제거 대상에서 제외시킬 수 있는 방법으로 레코드의 대상을 조절할 수도 있다.
일 예로, <조건>에 해당되는 레코드들 중에서 synctouch를 한다. 이에 대한 SQL 구문의 일예를 들면
<SQL 구문>
SYNCTOUCH tablename WHERE condition
Upsert의 경우 해당 열(row)를 비교하여 UPDATE, INSERT, EXIST를 판단하게 되며 SYNC 내부에서 UPSERT 되지 않은 열(row)은 SYNC END 시 삭제된다. SYNCTOUCH 구문은 UPSERT 구문을 사용하지 않더라도 원하는 열(row)을 touch하여 SYNC END 시 삭제되지 않도록 한다. 상기 tablename은 SYNC 대상 테이블을 나타내고, 상기 condition은 SYNCTOUCH를 원하는 열(row)의 조건을 나타낸다. 그리고 상기 WHERE 조건에서 서브쿼리(subquery)로 SELECT를 사용할 수 있지만 해당 SELECT는 경우 touch 된 열(row) 만을 검색하도록 하는 것이 바람직하다.
SYNC 구문의 WHERE절이 명시가 되면 <조건>에 해당되는 레코드 내에서 점검을 하고, 이후 <조건>에 해당되는 레코드인 경우 insert 또는 update한다. touch 된 레코드들 중에서 delete 수행한다. <조건>에 해당되는 레코드 내에서 점검을 하고, 이후 <조건>에 해당되는 레코드인 경우 insert 또는 update한다. 또한, synctouch도 <조건>에 해당되는 레코드 내에서 touch를 하게 된다.
도 2는 본 발명에 의한 임베디드 단말기에 탑재된 DBMS의 특정 데이터 동기화방법의 일실시예를 흐름도로 도시한 것이다. 도 2를 참조하여 본 발명을 설명하기 한다.
먼저, 임베디드 단말기(100)에 탑재된 DBMS(120)의 테이블을 구성하는 레코드들 중 일부를 착탈식 저장장치(110)에 저장되어 있는 신규 데이터로 동기화하기 위해, 상기 DBMS(120)의 테이블을 구성하는 레코드들에 대해 적어도 하나의 동기화 대상 레코드를 선정한다.(S210단계)
상기 레코드 선정은 상기 테이블의 적어도 하나의 컬럼에 대해 소정의 조건을 부가하여 상기 조건을 만족하는 레코드들을 동기화할 특정 레코드로 선정할 수 있다. 또한 상기 레코드 선정을 위한 다른 방법은 상기 테이블의 적어도 하나의 컬럼에 대해 소정의 조건을 부가하여 상기 조건을 만족하는 레코드들을 동기화 이후 제거 대상에서 제외시키고 나머지 레코드를 제거 대상 레코드로 선정할 수도 있다. 상기 조건 부가는 상기 DBMS의 테이블을 구성하는 적어도 하나의 컬럼의 컬럼값이 소정의 값을 만족하는지 여부를 나타내는 것으로 이루어질 수 있다.
상기 신규 데이터를 상기 선정된 동기화 대상 레코드와 비교한다. 상기 비교는 상기 신규 데이터 소정의 데이터 단위로 순차적으로 스캔하면서 상기 선정된 동기화 대상 레코드와 비교하는 것이 바람직하다.
상기 비교결과에 따라 상기 테이블의 레코드를 상기 신규데이터로 데이터 동기화한다. 이 때 상기 동기화는 상기 착탈식 메모리 장치(110)의 신규 데이터를 읽어와서, 상기 신규데이터에 상응하는 레코드가 DBMS 해당 테이블의 동기화 대상 레코드 내에 존재하는 가 체크한다.(S220단계) 만일 신규데이터에 상응하는 레코드가 존재하면, 신규데이터와 동기화 대상 레코드를 비교한다.(S230단계)
상기 비교결과 데이터가 서로 다르면 상기 테이블의 데이터를 신규데이터로 업데이트하고(S260단계), 상기 비교결과 데이터가 서로 동일하면 스킵(skip)한다.(S250단계) 만일, 상기 S220단계에서, 신규데이터에 상응하는 레코드가 DBMS의 해당 테이블에 존재하지 않으면 상기 신규데이터를 상기 테이블에 삽입한다.(S270단계) 상기 신규데이터와 상기 해당 테이블의 동기화 대상 레코드 모두에 대해 비교가 완료되면(S280단계), 상기 신규데이터에 대응되지 않는 상기 테이블의 동기화 대상 레코드들은 제거된다.(S290단계)
도 3은 도 2에 의한 본 발명의 일실시예를 구체적으로 설명하는 것이다. 예를 들어, 착탈식 메모리장치(110)에 저장된 신규 데이터가 도 3의 참조번호 300과 같이 ID = 1001, 1102, 1003, 1001 이라고 하자. 상기 데이터는 설명의 편의상 MP3 파일이라고 가정한다. MP3 파일을 나타내는 식별자는 특정 컬럼에서 ‘10’으로 표시되고, 동영상 파일은 ‘20’, 이미지 파일은 ‘40’이라고 표시하기기로 한다. 그리고 DBMS(120)의 테이블(320)은 ID=1001, 1002, 1003, 1004, 4001, 4002, 4003, 8001, 8002를 가진 레코드들을 포함하여 이루어지며, MP3 파일, 동영상파일, 이미지 파일을 모두 관리하고 저장하고 있으며, 상기 테이블 이름을 ‘aaa’라 하고, 상기 테이블에서 파일종류를 나타내는 컬럼을 ‘bb’라 하기로 한다. 즉, 컬럼 bb의 값이 10 이면 MP3 파일을 의미하고, 20 이면 동영상파일, 40 이면 이미지파일을 나타낸다. 이러한 상태에서, 착탈식 메모리 장치(110)의 신규데이터(300)를 DBMS(120)의 테이블(320)과 동기화하기로 한다.
그러면, 먼저 DBMS(120)의 테이블(320)을 구성하는 레코드들 중에서 MP3에 해당하는 레코드들만 동기화 대상으로 선정한다. 상기 동기화 대상 레코드 선정은 두 가지 방법으로 이루어질 수 있다. 첫 번째 방법은 싱크 스타트(SYNC START) 구문에 조건문(where)를 부가하는 방법이다. 이에 대한 SQL구문의 일예를 나타내면,
SYNC START aaa WHERE bb = 10
과 같이 표현할 수 있다. 이렇게 표현하면, DBMS의 테이블 aaa 에서, 컬럼 bb 의 값이 10 인 것만, 즉 MP3파일만 동기화 대상 레코드로 선정된다.
동기화 대상 레코드 선정을 위한 두 번째 방법은 싱크터치(SYNCTOUCH) 구문에 조건문을 부가하여 동기화 이후 제거 대상에서 제외될 레코드들을 선정하는 것이다. 이에 대한 SQL 구문의 일예를 나타내면,
SYNCTOUCH aaa WHERE bb = 20 and bb= 40
과 같이 표현할 수 있다. 이렇게 표현하면, DBMS의 테이블 aaa에서, 컬럼 bb의 값이 20 또는 30인 레코드는 동기화 이후 제거되지 않고 남아있게 된다.
상기 SQL 구문들은 일 예를 든 것에 불과하고, 다른 형식으로 표현해도 본 발명의 범위에 속한다.
이렇게 동기화 대상 레코드들이 선정되고 나면, 상기 착탈식 메모리(110)에 저장되어 있는 신규데이터(300)를 순차적으로 스캔하면서 DBMS의 테이블(320)과 비교한다.
도 4는 착탈식메모리(110)의 신규데이터를 DBMS(120)의 테이블(320)과 동기화한 결과를 나타낸 것이다. 도 4에 도시된 바와 같이, 상기 비교과정을 통해 데이터가 동일한 것은 그대로 유지하고(ID=1001), 데이터가 다른 것은 신규데이터로 업데이트한다.(ID=1002, 1003 ) 만일 신규데이터가 존재하지 않으면, 삽입(insert)한다.(ID=1010)
그리고 상기 설명과 같이 업서트(upsert) 작업이 완료된 후, SYNC END명령에 따라 업서트 대상이 아닌 데이터는 삭제처리한다. 즉, 컬럼 bb = 10 인 레코드 중에서 착탈식 메모리(110)의 신규데이터에 해당하는 레코드가 아닌 것은 삭제한다.(ID=1004)
한편, 상기 비교는 조건 즉, 컬럼 bb = 10 인 레코드에 대해서면 이루어진다. 나머지 레코드들 즉, 컬럼 bb = 20, 40 에 대해서는 비교하지 않는다. 따라서, 상기 DBMS이 테이블로 여러 종류의 방대한 데이터를 관리하고 저장하고 있을 때, 상기 착탈식 메모리장치에 저장된 데이터에 상응하는 레코드들에 대해서만 데이터 동기화를 하게 되어 쓰기(write) 작업을 크게 줄일 수 있어 DBMS의 데이터 업데이트 시간을 단축시키고, DBMS의 시스템 성능도 크게 높일 수 있다. 뿐만아니라 DBMS의 테이블에 여러 종류의 데이터가 저장되어 있고, 착탈식 메모리에는 특정 종류의 데이터만 저장되어 있을 경우에도 특정 레코드만 선정하여 데이터 동기화를 수행할 수 있다.
본 발명은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터(정보 처리 기능을 갖는 장치를 모두 포함한다)가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 장치의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있다.
본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
100: 임베디드 단말기 110 : 착탈식 메모리 장치
120 : DBMS 130 : 플래시 메모리

Claims (7)

  1. 임베디드 단말기에 탑재된 DBMS의 테이블을 구성하는 레코드들 중 일부를 착탈식 저장장치에 저장되어 있는 신규 데이터로 동기화하는 상기 임베디드 단말기에 탑재된 DBMS에서의 특정 데이터 동기화 방법에 있어서,
    상기 DBMS의 테이블을 구성하는 레코드들에 대해 적어도 하나의 동기화 대상 레코드를 선정하는 단계; 및
    상기 신규 데이터를 상기 선정된 동기화 대상 레코드와 비교하는 단계; 및
    상기 비교결과에 따라 상기 테이블의 레코드를 상기 신규데이터로 데이터 동기화하는 단계를 포함하는 것을 특징으로 하는 임베디드 단말기에 탑재된 DBMS에서의 특정 데이터 동기화 방법.
  2. 제1항에 있어서, 상기 레코드 선정 단계는,
    상기 테이블의 적어도 하나의 컬럼에 대해 소정의 조건을 부가하여 상기 조건을 만족하는 레코드들을 동기화할 특정 레코드로 선정하는 것을 특징으로 하는 임베디드 단말기에 탑재된 DBMS에서의 특정 데이터 동기화방법.
  3. 제1항에 있어서, 상기 레코드 선정 단계는,
    상기 테이블의 적어도 하나의 컬럼에 대해 소정의 조건을 부가하여 상기 조건을 만족하는 레코드들을 동기화 이후 제거 대상에서 제외시키고 나머지 레코드를 제거 대상 레코드로 선정하는 것을 특징으로 하는 임베디드 단말기에 탑재된 DBMS에서의 특정 데이터 동기화방법.
  4. 제2항 또는 제3항에 있어서, 상기 조건 부가는
    상기 DBMS의 테이블을 구성하는 적어도 하나의 컬럼의 컬럼값이 소정의 값을 만족하는지 여부를 나타내는 것으로 이루어짐을 특징으로 하는 임베디드 단말기에 탑재된 DBMS에서의 특정 데이터 동기화방법.
  5. 제1항에 있어서, 상기 비교 단계는
    상기 신규 데이터를 소정의 데이터 단위로 순차적으로 스캔하면서 상기 선정된 동기화 대상 레코드와 비교하는 것을 특징으로 하는 임베디드 단말기에 탑재된 DBMS에서의 특정 데이터 동기화방법.
  6. 제1항에 있어서, 상기 동기화 단계는
    상기 비교결과 데이터가 서로 다르면 상기 테이블의 데이터를 신규데이터로 업데이트하고, 상기 비교결과 데이터가 서로 동일하면 스킵(skip)하고, 신규데이터가 상기 테이블에 없으면 상기 신규데이터를 상기 테이블에 삽입하는 단계; 및
    상기 테이블의 동기화 대상 레코드 모두에 대해 비교가 완료되면, 상기 신규데이터에 대응되지 않는 상기 테이블의 동기화 대상 레코드들을 제거하는 단계를 포함하는 것을 특징으로 하는 임베디드 단말기에 탑재된 DBMS에서의 특정 데이터 동기화방법.
  7. 제1항의 방법을 프로세서에 의해 실행할 수 있는 프로그램을 저장하고 있는 기록매체.
KR1020100021613A 2010-03-11 2010-03-11 임베디드 단말기에 탑재된 디비엠에스의 특정 데이터 동기화방법 KR101076655B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100021613A KR101076655B1 (ko) 2010-03-11 2010-03-11 임베디드 단말기에 탑재된 디비엠에스의 특정 데이터 동기화방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100021613A KR101076655B1 (ko) 2010-03-11 2010-03-11 임베디드 단말기에 탑재된 디비엠에스의 특정 데이터 동기화방법

Publications (2)

Publication Number Publication Date
KR20110102555A KR20110102555A (ko) 2011-09-19
KR101076655B1 true KR101076655B1 (ko) 2011-10-26

Family

ID=44954119

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100021613A KR101076655B1 (ko) 2010-03-11 2010-03-11 임베디드 단말기에 탑재된 디비엠에스의 특정 데이터 동기화방법

Country Status (1)

Country Link
KR (1) KR101076655B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101596582B1 (ko) * 2014-06-23 2016-02-25 주식회사 엘지유플러스 일괄적 업데이트 처리 시스템, 업데이트 관리서버 및 업데이트 관리방법
CN112948389B (zh) * 2021-03-05 2023-07-25 上海上讯信息技术股份有限公司 基于md5的数据库表数据比对方法及设备

Also Published As

Publication number Publication date
KR20110102555A (ko) 2011-09-19

Similar Documents

Publication Publication Date Title
CN108319654B (zh) 计算系统、冷热数据分离方法及装置、计算机可读存储介质
US11119978B2 (en) Snapshot version control
CN109726177A (zh) 一种基于HBase的海量文件分区索引方法
CN108205560B (zh) 一种数据同步方法以及装置
US10776345B2 (en) Efficiently updating a secondary index associated with a log-structured merge-tree database
WO2019136855A1 (zh) 保单多维度分析实现方法、装置、终端设备及存储介质
CN111538724A (zh) 管理索引的方法
CN106326040B (zh) 一种快照元数据管理方法和装置
CN111143368A (zh) 一种关系型数据库数据对比方法及系统
JP2018538596A (ja) データ処理のための方法および装置
US10613988B2 (en) Purging storage partitions of databases
CN111159130A (zh) 一种小文件合并方法及电子设备
TW201308193A (zh) 一種文件分配表的資料儲存方法
KR101076655B1 (ko) 임베디드 단말기에 탑재된 디비엠에스의 특정 데이터 동기화방법
CN116150093B (zh) 一种对象存储列举对象的实现方法及电子设备
KR101588375B1 (ko) 데이터베이스 관리 방법 및 데이터베이스 관리 시스템
EP3343395B1 (en) Data storage method and apparatus for mobile terminal
CN113536047A (zh) 一种图数据库数据删除方法、系统、电子设备及存储介质
CN104375781B (zh) 数据存取方法及装置
KR100920919B1 (ko) 소형 무선단말기용 데이타 베이스 관리시스템의 데이타동기화 저장방법
KR101102080B1 (ko) 컬럼 내의 부분 인덱싱을 이용한 임베디드 디비엠에스의 인덱스 생성 방법과 이를 이용한 데이터 검색 방법 및 데이터 소팅방법
US9323753B2 (en) Method and device for representing digital documents for search applications
CN115328922B (zh) 用于单向链表的数据管理方法、装置及系统
CN114238241B (zh) 财务数据的元数据处理方法和计算机系统
CN116610636A (zh) 一种文件系统的数据处理方法、装置、电子设备及存储介质

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
FPAY Annual fee payment

Payment date: 20140930

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee