KR100941026B1 - 저장매체에 대한 데이터베이스 관리 방법 - Google Patents

저장매체에 대한 데이터베이스 관리 방법 Download PDF

Info

Publication number
KR100941026B1
KR100941026B1 KR1020080032890A KR20080032890A KR100941026B1 KR 100941026 B1 KR100941026 B1 KR 100941026B1 KR 1020080032890 A KR1020080032890 A KR 1020080032890A KR 20080032890 A KR20080032890 A KR 20080032890A KR 100941026 B1 KR100941026 B1 KR 100941026B1
Authority
KR
South Korea
Prior art keywords
folder
file
storage medium
database
item
Prior art date
Application number
KR1020080032890A
Other languages
English (en)
Other versions
KR20090107389A (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 KR1020080032890A priority Critical patent/KR100941026B1/ko
Publication of KR20090107389A publication Critical patent/KR20090107389A/ko
Application granted granted Critical
Publication of KR100941026B1 publication Critical patent/KR100941026B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures

Landscapes

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

Abstract

본 발명은 저장매체에 대한 데이터베이스 관리 기술로서, 특히 저장매체의 파일 및 폴더에 대한 엔트리 로케이션 정보 및 크로스링크를 위한 DB 인덱스를 사용하여 데이터베이스를 최소 저장공간으로 구축한 후, 이후 파일 및 폴더에 대한 이름이 필요하게 되면 데이터베이스 항목을 활용하여 최소의 저장매체 액세스로 빠르게 파일 이름 또는 폴더 이름을 제공할 수 있도록 하는 데이터베이스 관리 기술을 개시한다. 본 발명에 따르면, 저장매체의 파일 및 폴더를 관리하는 데이터베이스를 최소 저장공간으로 구축함으로써 저장매체를 사용하는 시스템에서 저용량 메모리 사용에 따른 비용 절감, 저장매체 액세스 저감에 따른 동작속도 향상, 데이터베이스 관리기능 강화를 얻을 수 있다.
파일 엔트리 로케이션, 폴더 엔트리 로케이션, 데이터베이스, 인덱스

Description

저장매체에 대한 데이터베이스 관리 방법{Database Managemnet Method for a Storage Medium}
본 발명은 저장매체에 대한 데이터베이스 관리 기술로서, 특히 저장매체의 파일 및 폴더에 대한 엔트리 로케이션 정보 및 크로스링크를 위한 DB 인덱스를 사용하여 데이터베이스를 최소 저장공간으로 구축한 후, 이후 파일 및 폴더에 대한 이름이 필요하게 되면 데이터베이스 항목을 활용하여 적은 저장매체 액세스로 빠르게 파일 이름 또는 폴더 이름을 제공할 수 있도록 하는 데이터베이스 관리 기술에 관한 것이다.
종래로 하드디스크, SD 메모리 카드, MMC 메모리, USB 메모리 장치 등과 같은 각종의 저장매체는 대용량의 데이터를 효과적으로 저장할 수 있어 널리 사용되어 왔으며, 최근에는 차량용 오디오나 가정용 오디오에서 음악 파일(예: MP3 파일)을 저장하는 매체로서 점차로 사용되고 있다.
이와 같은 저장매체는 대용량 데이터를 효과적으로 관리하기 위하여 FAT32, NTFS 등의 파일 시스템에 의해 파일 및 폴더 정보를 계층적 디렉토리 형태의 할당테이블(예 : File Allocation Table)로 관리하는데, 파일을 저장하거나 삭제할 때 저장매체에 파일 데이터를 기록하는 것과 동시에 관련된 파일 정보를 할당테이블의 계층적 디렉토리 내에 기록한다.
한편, 음악 파일이 저장된 저장매체를 차량용/가정용 오디오 시스템에 삽입하여 오디오 시스템에서 이들 음악 파일을 읽어 재생하는 기술이 최근들어 널리 사용되기 시작하였다. 이러한 차량용/가정용 오디오 시스템은 저장매체의 음악 파일을 효과적으로 관리할 필요가 있는데, 이를 위해 저장매체의 음악 파일과 폴더 구조에 대한 데이터베이스를 관리하는 것을 생각해 볼 수 있다.
다만, 이러한 데이터베이스를 관리하기 위해 너무 많은 메모리 공간을 소모하는 것은 바람직하지 않으므로 메모리 공간을 최적화하는 것이 요구된다. 일반적으로 저장매체의 용량은 수 내지 수십 기가바이트인 반면 음악 파일은 3 내지 4 메가바이트 정도에 불과하므로 10,000 개 이상의 음악 파일이 저장되는 경우도 가정해야 한다. 데이터베이스의 설계를 안이하게 하는 경우에는 상당한 정도의 메모리 공간이 소요되며, 이는 바람직하지 않다.
이러한 요구는 차량용/가정용 오디오 시스템이 업체 간의 가격 경쟁이 치열한 분야라는 점을 감안한다면 매우 중요하다. 제품 가격을 고려한다면 시스템 콘트롤러 칩 이외에 별도의 시스템 메모리(예 : SRAM, DRAM)를 부착하는 것은 바람직하지 않고 설사 불가피하게 시스템 메모리를 부착하더라도 필요한 메모리 용량은 최소한으로 줄이는 것이 요망된다.
여기에서 파일 이름이나 폴더 이름이 데이터베이스 메모리 용량에 있어서 특히 문제가 될 것으로 생각된다. 설명의 편이를 위해 음악 파일이 10,000 개 있는 경우를 가정하면, 데이터베이스에 파일 이름을 스트링(string)으로 256 바이트로 한정하여 파일별로 배정하더라도, 전체적으로는 약 2.4 메가바이트가 파일 이름에만 소요된다. 또한 추가적인 파일 정보도 데이터베이스에 기록해야 할 것이므로 저장매체 전체에 대해 2.6 내지 3 메가바이트 정도의 메모리 공간이 데이터베이스에 소요될 것으로 예상된다.
이처럼 2.6 내지 3 메가바이트 정도의 메모리 공간이라면 일반적인 시스템 콘트롤러 칩에 내장된 메모리 공간으로는 결코 수용할 수 없는 수준이어서 상당 규모의 시스템 메모리를 별도로 부착할 수밖에 없고, 결국 심각한 제품 가격 상승 요인으로 될 수 있다.
또한, 저장매체에 포함된 음악 파일을 오디오 시스템에서 조작할 때, 특히 파일 이름이나 폴더 이름을 가져와서 UI (User Interface)에 디스플레이할 때, 지나치게 많은 저장매체 액세스를 수행하게 되면 속도가 느려져 바람직하지 않으므로, 저장매체 액세스를 적게 유지할 필요성이 요구된다. 데이터베이스의 메모리 용량을 줄이기 위해서는 필연적으로 각 데이터베이스 항목에 저장되는 정보를 줄이기 마련인데, 데이터베이스 설계를 안이하게 하는 경우에는, 실제 사용 시에 저장매체를 과다하게 액세스하게 될 위험이 있다.
따라서 저장매체를 사용하는 시스템에서 저장매체의 파일 및 폴더 정보를 데이터베이스로 관리하는 기술이 요구되며, 특히 다수의 파일 및 폴더가 포함되어 있 는 상황을 감안하여 데이터베이스에 소요되는 메모리 공간을 최적화할 뿐만 아니라 실제 사용 시에 저장매체에 대한 액세스를 적게 유지할 수 있도록 해주는 데이터베이스 관리 기술이 요구된다.
하드디스크, SD 메모리 카드, MMC 메모리, USB 메모리 장치 등과 같은 각종의 저장매체를 사용하는 시스템에서 저장매체에 포함된 파일 및 폴더 정보를 데이터베이스로 효율적으로 관리하는 기술이 요구된다.
특히 저장매체의 용량이 수 내지 수십 기가바이트로 대용량화되어 저장매체에 다수의 파일 및 폴더가 포함됨에 반해 시스템의 제품 가격을 상승시키는 것은 극히 곤란하다는 상황을 감안하여 데이터베이스에 소요되는 메모리 공간을 최적화할 뿐만 아니라 실제 사용 시에 저장매체에 대한 액세스를 적게 유지할 수 있도록 해주는 효율적인 데이터베이스 관리 기술이 요구된다.
본 발명에서 사용하는 저장매체 데이터베이스 관리 방법은 저장매체의 파일 및 폴더에 대한 엔트리 로케이션 정보 및 크로스링크를 위한 DB 인덱스를 사용하여 데이터베이스를 최소 저장공간으로 구축한 후, 이후 파일 및 폴더에 대한 이름이 필요하게 되면 데이터베이스 항목을 활용하여 최소의 저장매체 액세스로 빠르게 파일 이름 또는 폴더 이름을 제공할 수 있도록 함으로써, 저용량 메모리를 사용함에 따른 비용 절감, 액세스 최소화를 통한 동작속도 향상, 데이터베이스 관리기능 강화를 증대시킬 수 있는 기술이다.
상기의 과제를 달성하기 위한 본 발명의 구성은 다음과 같다.
본 발명에 따른 저장매체 데이터베이스 관리 방법은, 저장매체에 저장된 하나 이상의 파일 및 폴더에 대한 데이터베이스를 관리하는 방법으로, (a-1) 저장매체의 할당테이블을 분석하는 단계; (a-2) 저장매체의 파일 및 폴더에 대한 데이터베이스를 생성하는 단계; (a-3) 저장매체의 파일 및 폴더에 대한 엔트리 로케이션을 저장매체의 할당테이블로부터 입수하여 데이터베이스의 파일 항목 및 폴더 항목에 배정하여 기록하는 단계; (a-4) 파일 항목에 대하여 각 파일이 속한 폴더의 크로스링크를 데이터베이스에 기록하는 단계; (b-1) 특정의 파일 항목에 대해 파일 이름을 요청받는 단계; (b-2) 요청된 파일 항목에 대하여 데이터베이스로부터 파일 엔트리 로케이션 및 크로스링크를 획득하는 단계; (b-3) 저장매체로부터 크로스링크에 대응되는 폴더를 오픈하는 단계; 및 (b-4) 위 오픈된 폴더 내에서 파일 엔트리 로케이션에 대응되는 파일 이름을 획득하여 제공하는 단계;를 포함하여 구성된다.
본 발명에 따른 저장매체 데이터베이스 관리 방법은, (a-5) 저장매체의 폴더에 대하여 상위 폴더의 DB 인덱스를 데이터베이스에 기록하는 단계; (b-5) 특정의 폴더 항목에 대하여 폴더 이름을 요청받는 단계; (b-6) 요청된 폴더 항목에 대하여 데이터베이스로부터 폴더 엔트리 로케이션 및 상위폴더 DB 인덱스를 획득하는 단계; (b-7) 저장매체로부터 상위폴더 DB 인덱스에 따른 폴더를 오픈하는 단계; 및 (b-8) 오픈된 폴더 내에서 폴더 엔트리 로케이션에 대응되는 폴더 이름을 획득하여 제공하는 단계;를 더 포함하여 구성될 수 있다.
본 발명에 따른 저장매체 데이터베이스 관리 방법에서, (b-4) 단계는, (b-4- 1) 오픈된 폴더에 포함된 하나 이상의 파일 정보 중 파일 엔트리 로케이션과 매칭되는 파일 정보를 검색하는 단계; 및 (b-4-2) 검색된 파일 정보로부터 파일 이름을 획득하여 제공하는 단계;를 포함하여 구성될 수 있다.
본 발명에 따른 데이터베이스 관리 방법에서, (b-8) 단계는, (b-8-1) 오픈된 폴더에 포함된 하나 이상의 폴더 정보 중 폴더 엔트리 로케이션과 매칭되는 폴더 정보를 검색하는 단계; 및 (b-8-2) 폴더 정보에 기입된 폴더 이름을 획득하여 제공하는 단계;를 포함하여 구성될 수 있다.
본 발명에 따른 저장매체 데이터베이스 관리 방법은, (a-6) 저장매체의 각 폴더에 대하여 소속된 최초 파일에 대한 DB 인덱스를 데이터베이스에 저장하는 단계; (b-9) 특정의 폴더 항목에 대해 파일 탐색을 요청받는 단계; (b-10) 요청된 폴더 항목에 대하여 데이터베이스로부터 최초파일 DB 인덱스를 획득하는 단계; 및 (b-11) 데이터베이스에서 최초파일 DB 인덱스에 대응되는 파일 항목으로부터 파일 탐색을 수행하는 단계;를 더 포함하여 구성될 수 있다.
본 발명에 따른 저장매체 데이터베이스 관리 방법은, (c-1) 특정의 파일 항목에 대해 재생을 요청받는 단계; (c-2) 요청된 파일 항목에 대하여 데이터베이스로부터 파일 엔트리 로케이션을 획득하는 단계; 및 (c-3) 저장매체에서 파일 엔트리 로케이션에 대응되는 물리적 주소로부터 데이터를 판독하여 재생을 수행하는 단계;를 더 포함하여 구성될 수 있다.
본 발명에 따른 저장매체 데이터베이스 관리 방법은, (a-7) 저장매체의 파일에 대하여 코덱 타입 정보를 저장매체에 기록하는 단계;를 더 포함하여 구성될 수 있다.
본 발명의 데이터베이스 관리 방법에 따르면, 저장매체에 포함된 다수의 파일 및 폴더를 관리하는 데이터베이스를 최소한의 메모리 공간으로 구축함으로써 저장매체를 사용하는 시스템에서 콘트롤러 칩 내장 메모리로 충분히 사용할 수 있거나 최소한 저용량 메모리를 사용할 수 있게 됨에 따른 비용 절감 효과를 얻을 수 있는 장점이 있다.
또한, 본 발명의 데이터베이스 관리 방법에 따르면 다수의 파일 및 폴더에 대한 데이터베이스를 최소 공간으로 구축하면서도 실제 파일 사용시에는 저장매체에 대한 액세스를 적게 유지할 수 있어 시스템 조작 시에 사용자가 체감하는 동작속도를 향상할 수 있는 장점이 있다.
또한, 본 발명의 데이터베이스 관리 방법에 따르면 저장매체를 사용하는 시스템에서 저장매체에 포함된 다수의 파일 및 폴더에 대한 정보를 효과적으로 관리할 수 있게 된다는 장점이 있다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다.
도 1은 본 발명에 따른 데이터베이스 관리 기술에서 관리장치(10)와 저장매 체(50) 간의 연결을 도시한 도면이다.
저장매체(50)는 하드디스크, SD 메모리 카드, MMC 메모리, USB 메모리 장치 등과 같이 내부에 저장 공간을 구유하고 있어 MP3 파일 등과 같은 각종의 파일을 저장하는 장치이다. 저장매체(50)는 FAT32, NTFS 등과 같은 파일시스템에 따라 포매팅되어 있고, 그에 따라 파일 및 폴더에 대한 정보를 계층적 디렉토리 구조의 할당테이블(60)을 구비하고 있다.
관리장치(10)는 저장매체(50)에 저장되어 있는 파일을 활용하는 장치로서, 본 발명에서는 저장매체(50)에 저장된 음악 파일을 판독하여 재생하는 가정용 또는 차량용 오디오 시스템을 가정한다. 관리장치(10)는 시스템 제어용 프로세서(20), 각종 파일 및 폴더에 대한 정보를 관리하는 데이터베이스(30), 저장매체(50)가 연결되기 위한 입출력 포트(40)를 포함한다.
먼저, 저장매체(50)가 입출력 포트(40)를 통해 삽입됨에 따라 관리장치(10)의 프로세서(20)는 할당테이블(60)을 액세스하여 저장매체(50)에 포함된 파일 및 폴더에 대한 엔트리 구조를 분석한다. 즉, 프로세서(20)는 할당테이블(60)로부터 파일 및 폴더에 대한 엔트리 구조를 파악하며, 이들 파일 및 폴더에 대한 엔트리 로케이션(File Entry Location, Folder Entry Location)을 할당테이블(60)로부터 입수한다.
여기서, 엔트리 로케이션은 파일 엔트리 로케이션 또는 폴더 엔트리 로케이션을 총칭하여 명명한 것으로, 이들 파일 및 폴더에 관한 실제 데이터의 주소값이 저장된 섹터 주소(Sector Address)와 하나 이상의 파일 및 폴더에 대한 트리 구조 를 확인할 수 있는 디렉토리 엔트리 옵셋(Directory Entry Offset)의 조합으로 이루어진 값으로 바람직하게 구성된다.
프로세서(20)는 데이터베이스(30) 내에 이들 파일 및 폴더에 대한 정보를 기록하여 정리해 두는데, 먼저 각 파일 및 폴더 별로 파일 엔트리 로케이션 및 폴더 앤트리 로케이션을 배정함으로써, 본격적으로 저장매체(50)에 대한 데이터베이스 관리가 개시되는 것이다.
도 2는 저장매체(50)의 파일 및 폴더의 배치 구조, 및 그에 따른 할당테이블(60)의 일 예를 도시한 도면이다.
도 2를 참조하면, 저장매체(50)의 할당테이블(60)에는 루트(root) 폴더로부터 시작하여 각종의 파일 및 폴더에 대한 계층적인 소속 구조를 나타내는 디렉토리 엔트리를 형성하고, 각각에 대해 파일 이름이나 폴더 이름, 속성 정보, 그리고 파일/폴더 엔트리 로케이션 값을 구비한다.
예를 들어, 할당테이블(60)에 따르면 최상위 폴더인 루트(root) 폴더 이하에 lecture 폴더와 music 폴더가 2개 존재하고 Friends.mp3 파일이 1개 존재함을 파악한다. 또한, 할당테이블(60)에 따르면 lecture 폴더 이하에 history, law, math, science 라는 폴더가 있음을 파악하고, music 폴더 이하에 classic, jazz, pop 이라는 폴더가 있음도 파악한다.
또한, 할당테이블(60)에 따르면 history 폴더 내부에 China.mp3, Japan.mp3 라는 파일이 2개 있음을 파악하고, 동일 계층의 구조인 jazz 폴더 내부에는 Jazz1.mp3 내지 jazz17.mp3까지의 17개 파일이 있음을 파악한다. 또한, 할당테이블(60)에 따르면 각종 파일에 대하여 파일 이름, 속성 정보, 파일 엔트리 로케이션 정보를 인지한다.
본 명세서의 상세한 설명에서는 저장매체(50) 내에 root 폴더를 포함한 10 개의 폴더와 10,000 개의 파일이 존재하는 경우를 가정하며, 이하 본 발명에 따른 데이터베이스 관리 기술을 설명한다.
도 3은 본 발명에서 관리장치(10)가 저장매체(50)를 관리하기 위해 운용하는 데이터베이스(30)의 일 예를 도시한 도면이다.
도 3를 참조하면, 관리장치(10)의 프로세서(20)는 저장매체(50)의 파일 및 폴더에 대한 정보를 관리하기 위하여 파일 DB 항목과 폴더 DB 항목을 구비한 데이터베이스(30)를 구축한다.
여기에서, 파일 DB 항목은 저장매체(50)의 파일에 대한 정보를 구비하는 부분으로, 10,000 개의 파일이 저장된 것으로 가정하였으므로 10,000 개의 항목을 갖는 배열(array)로 이루어진다. 또한, 폴더 DB 항목은 저장매체(50)의 폴더에 대한 정보를 구비하는 부분으로, 10 개의 폴더를 갖는 것으로 가정하였으므로 10 개의 항목을 갖는 배열로 이루어진다.
도시된 바와 같이, 데이터베이스(30)의 파일 DB 항목 부분은 10,000 개의 파일 정보를 각 항목에 배정하는데, 본 실시예에서는 Friends.mp3 파일에 대한 정보를 [0]에 배정하고, China.mp3 파일에 대한 정보와 Japan.mp3 파일에 대한 정보를 [1]과 [2]에 배정하며, Jazz1.mp3 파일 내지 Jazz17.mp3 파일에 대한 정보를 [101] 내지 [117]에 배정한 것으로 나타내었다.
또한, 데이터베이스(30)의 폴더 DB 항목 부분은 10개의 폴더 정보를 각 항목에 배정하는데, 본 실시예에서는 root 폴더에 대한 정보를 [0]에 배정하고, 각각의 폴더, 즉 lecture 폴더, music 폴더, history 폴더, law 폴더, math 폴더, science 폴더, classic 폴더, jazz 폴더, pop 폴더에 대한 정보를 [1] 내지 [9]에 배정한 것으로 나타내었다.
도 2를 참조하여 이미 나타낸 바와 같이 본 실시예에서 Friends.mp3 파일은 root 폴더에 소속되고, China.mp3 파일과 Japan.mp3 파일은 history 폴더에 소속되며, Jazz1.mp3 파일 내지 Jazz17.mp3 파일은 jazz 폴더에 소속되는 것으로 가정하였다.
그에 따라, 본 발명에 따른 데이터베이스 관리방법에서는 파일 DB 항목에서 Friends.mp3 파일에 대한 항목은 폴더 DB 항목에서 root 폴더의 항목을 크로스링크(crosslink)하고, 파일 DB 항목에서 China.mp3 파일과 Japan.mp3 파일에 대한 항목은 폴더 DB 항목에서 history 폴더의 항목을 크로스링크하며, 파일 DB 항목에서 Jazz1.mp3 파일 내지 Jazz17.mp3 파일에 대한 항목은 폴더 DB 항목에서 jazz 폴더의 항목을 크로스링크한다.
도 4는 본 발명에 따른 데이터베이스(30)에서 사용되는 파일 항목과 폴더 항목의 비트필드(bit-field) 구성의 일 예를 도시한 도면이다. 도 4는 본 발명의 기 술을 적용할 수 있는 데이터베이스 항목의 비트필드의 바람직한 일 실시예에 불과한 것으로 이해되어야 한다.
먼저, 파일 DB 항목에 대한 비트필드에 대해 설명한다.
▲ 파일 엔트리 로케이션(File Entry Location, 2 바이트) : 저장매체(50) 내에서 당해 파일의 실제 데이터가 저장된 물리 번지와 관련된 정보로, 실제 데이터에 대한 섹터 주소와 디렉토리 엔트리 옵셋의 조합으로 구성될 수 있다. 파일 엔트리 로케이션은 파일 이름 또는 파일 속성을 파일 시스템에서 가져올 때 필요한 위치 정보이다. 또한, 파일 엔트리 로케이션 정보는 실제 데이터가 저장된 물리 번지에 대응되므로 이 정보를 활용하면 즉시 해당 파일에 대한 조작, 예컨대 음악 파일의 재생을 수행할 수 있다.
▲ 폴더 DB 인덱스(Folder DB Index, 2 바이트) : 당해 파일이 속하는 폴더가 폴더 DB 항목에서 차지하는 인덱스 값을 나타내는 값으로, 파일 DB 항목과 폴더 DB 항목 간의 크로스링크(cross-link)에 해당한다. 예를 들면 China.mp3 파일이 속하는 history 폴더는 폴더 DB 항목에서 [3]에 배정되어 있으므로, China.mp3 파일에 대한 폴더 DB 인덱스는 "3"이 된다. 특정 파일에 대한 이름을 가져오기 위해서는 그 파일이 속한 폴더를 먼저 열어야 하므로, 파일 DB 항목에 폴더 DB 인덱스가 필요하게 된다.
▲ 코덱 타입(Codec Type, 1 바이트) : 당해 파일에 대한 코덱 정보(예 : MP3, WMA, AVI 등)를 나타낸다. 당해 파일을 프로세싱할 때 저장매체(50)를 액세스하는 횟수를 줄여주기 위한 것이다.
▲ 확장 타입(Extend Type, 1 바이트) : 파일 DB에 설계자의 선택에 따라 여분의 정보를 넣기 위한 영역이다.
이어서, 폴더 DB 항목에 대한 비트필드에 대해 설명한다.
▲ 폴더 엔트리 로케이션(Folder Entry Location, 4 바이트) : 저장매체(50) 내에서 당해 폴더의 정보가 저장된 물리 번지와 관련된 정보로서, 폴더 정보가 저장된 섹터 주소와 디렉토리 엔트리 옵셋의 조합으로 이루어질 수 있다. 폴더 엔트리 로케이션은 폴더 이름 또는 폴더 속성을 파일 시스템에서 가져올 때 필요한 위치 정보이다.
▲ 상위폴더 DB 인덱스(Parent DB Index, 2 바이트) : 당해 폴더의 상위 폴더가 폴더 DB 항목에서 차지하는 인덱스 값이다. 예를 들면 classic 폴더의 상위 폴더인 music 폴더는 폴더 DB 항목에서 [2]에 배정되어 있으므로 classic 폴더에 대한 상위폴더 DB 인덱스는 "2"가 된다. 특정 폴더의 이름을 가져오기 위해서는 그 폴더가 속한 폴더를 먼저 열어야 하므로, 폴더 DB 항목에 상위폴더 DB 인덱스가 필요하게 된다.
▲ 최초파일 DB 인덱스(First File Index, 2 바이트) : 당해 폴더에 속하는 파일 중에서 최초의 파일에 대한 파일 DB 항목에서의 인덱스 값이다. 예를 들면 jazz 폴더에는 모두 17 개의 파일이 속해 있는데, 이중에서 최초 파일인 Jazz1.mp3 파일은 파일 DB 항목에서 [101]에 배정되어 있으므로, jazz 폴더에 대한 최초파일 DB 인덱스는 "101"이 된다. 최초파일 DB 인덱스는 파일을 고속 탐색하는 데에 유용하게 사용될 수 있다.
이상의 실시예와 같이 데이터베이스(30)의 비트필드를 구성한다면 파일 항목 하나당 6 바이트가 소요되므로 음악 파일이 10,000 개 있는 경우라도 60 킬로바이트의 메모리 공간만 필요할 뿐이다. (음악 파일이 10,000 개 있더라도 폴더의 갯수는 일반적으로 많지 않으며, 그에 따라 폴더 항목에 소요되는 메모리 공간은 파일 항목에 소요되는 메모리 공간에 비해 상대적으로 매우 작을 것으로 예상되어, 메모리 공간 분석에서는 무시하였다.)
위 메모리 공간 분석 결과를 전술하였던 별다른 고려 없이 데이터베이스를 구성할 경우 약 2.6 내지 3 메가바이트의 메모리 공간이 필요하다는 분석 결과와 비교한다면 데이터베이스의 메모리 사용 효율이 약 50 배 정도 개선된 것이어서 매우 획기적인 결과임에 분명하다.
특히, 60 킬로바이트 정도의 메모리 공간이라면 상용 시스템 콘트롤러 칩에 내장된 메모리 공간으로도 충분히 수용 가능할 뿐만 아니라 더 나아가 캐쉬(cache)로도 구성이 가능한 정도여서 메모리 공간의 절약뿐만 아니라 제품 가격의 절감 및 시스템 성능 향상도 추가로 얻을 수 있는 것이다.
도 5는 본 발명에 따른 데이터베이스 관리 방법에서 데이터베이스(30)와 할당테이블(60) 간의 파일 이름이나 폴더 이름을 효과적으로 획득하는 방법의 개념을 도시한 도면이다.
도 5를 참조하면, 파일 이름을 효과적으로 획득하기 위하여, 관리장치(10)가 운영하는 데이터베이스(30)는 파일에 대한 정보를 보유하는 파일 DB 항목과 폴더에 대한 정보를 보유하는 폴더 DB 항목을 포함하여 이루어지고, 다시 파일 DB 항목은 각 파일의 엔트리 로케이션과 파일이 속한 폴더의 DB 인덱스와 파일 엔트리 로케이션을 보유하고, 폴더 DB 항목은 각 폴더의 엔트리 로케이션과 상위 폴더의 DB 인덱스와 최초파일 DB 인덱스를 보유한다.
먼저, 데이터베이스(30)에 속하는 특정 파일 항목에 대한 이름이 요청된 경우에 대해 설명한다. 이해를 돕기 위하여, 파일 DB 항목의 인덱스 [101]에 대한 파일 이름이 요청된 경우를 예로 들어 기술한다.
먼저, 프로세서(20)는 파일 DB 항목으로부터 파일 엔트리 로케이션과 폴더 DB 인덱스를 획득한다. 파일 인덱스 [101]의 경우, 도 5 좌측의 파일 DB 항목에서 빗금친 부분으로부터 기록되어 있던 특정의 파일 엔트리 로케이션 값과 폴더 DB 인덱스 "8"이 획득된다.
프로세서(20)는 폴더 DB 인덱스에 대응되는 폴더 DB 항목으로부터 폴더 엔트리 로케이션을 획득한다. 파일 인덱스 [101]의 경우, 도 5 우측의 폴더 DB 항목에서 빗금친 부분인 폴더 항목[8]로부터 기록되어 있던 특정의 폴더 엔트리 로케이션 값이 획득된다.
프로세서(20)는 위 획득된 폴더 엔트리 로케이션을 사용하여 저장매체(50)의 할당테이블(60)로부터 해당 폴더를 오픈한다. 파일 인덱스 [101]의 경우, "jazz" 폴더가 오픈된다.
위 오픈된 폴더는 해당 폴더에 소속된 파일에 대한 정보(파일 이름 및 파일 엔트리 로케이션 포함)를 포함하고 있으므로 프로세서(20)는 이들 파일 정보와 위 획득된 파일 엔트리 로케이션을 비교하여, 매칭되는 파일 정보를 추출해낸다. 이 추출된 파일 정보에 포함되어 있는 파일 이름이 바로 얻고자 하는 파일 이름인 것이다.
파일 인덱스 [101]의 경우, jazz 폴더에는 Jazz1.mp3 내지 Jazz17.mp3 파일에 대한 총 17 개의 파일 정보가 연결되어 있다. 이들 각각은 해당 파일에 대한 이름과 해당 파일의 엔트리 로케이션 또는 이를 구성하는 정보(예: 섹터 주소, 디렉토리 엔트리 옵셋)을 포함하고 있으므로, 파일항목[101]로부터 획득한 파일 엔트리 로케이션 값을 이들 17 개의 파일 정보와 비교해보면 매칭되는 파일 정보를 추출할 수 있다. 이 매칭되는 파일 정보에 포함된 파일 이름이 바로 얻고자 하는 파일 이름인 것이다.
이상과 같은 절차를 통하여 프로세서(20)는 데이터베이스(30)에 속하는 특정 파일 항목에 대한 파일 이름을 획득하여 제공한다.
이어서, 데이터베이스(30)에 속하는 특정 폴더 항목에 대한 이름이 요청된 경우에 대해 설명한다. 이해를 돕기 위하여, 폴더 DB 항목의 인덱스 [8]에 대한 폴더 이름이 요청된 경우를 예로 들어 기술한다.
먼저, 프로세서(20)는 폴더 DB 항목으로부터 폴더 엔트리 로케이션과 상위폴더 DB 인덱스를 획득한다. 폴더 인덱스 [8]의 경우, 도 5 우측의 폴더 DB 항목에서 빗금친 부분으로부터 기록되어 있던 특정의 폴더 엔트리 로케이션 값과 상위폴더 DB 인덱스 "2"가 획득된다.
프로세서(20)는 저장매체(50)로부터 상위폴더 DB 인덱스에 따른 폴더를 오픈한다. 예컨대, 프로세서(20)는 상위폴더 DB 인덱스에 대응되는 폴더 DB 항목으로부터 폴더 엔트리 로케이션을 획득하고, 이를 이용하여 해당 폴더(즉, 상위 폴더)를 오픈한다. 폴더 인덱스 [8]의 경우, 상위폴더 DB 인덱스가 "2"이므로 도 5 우측의 폴더 DB 항목의 폴더 항목[2]로부터 폴더 엔트리 로케이션 값을 획득한 후, 이를 이용하여 저장매체(50)의 할당테이블(60)로부터 해당 폴더를 오픈한다. 폴더 인덱스 [8]의 경우, "music" 폴더가 오픈된다.
위 오픈된 폴더는 해당 폴더에 소속된 폴더에 대한 정보(폴더 이름 및 폴더 엔트리 로케이션 포함)를 포함하고 있으므로 프로세서(20)는 이들 폴더 정보와 위 획득된 폴더 엔트리 로케이션을 비교하여, 매칭되는 폴더 정보를 추출해낸다. 이 추출된 폴더 정보에 포함되어 있는 폴더 이름이 바로 얻고자 하는 폴더 이름인 것이다.
폴더 인덱스 [8]의 경우, music 폴더에는 classic 폴더, jazz 폴더, pop 폴더에 대한 총 3 개의 폴더 정보가 연결되어 있다. 이들 각각은 해당 폴더에 대한 이름과 해당 폴더의 엔트리 로케이션 또는 이를 구성하는 정보(예: 섹터 주소, 디렉토리 엔트리 옵셋)을 포함하고 있으므로, 폴더 항목 [8]로부터 획득한 폴더 엔트리 로케이션 값을 이들 3 개의 폴더 정보와 비교해보면 매칭되는 폴더 정보를 추출할 수 있다. 이 매칭되는 폴더 정보에 포함된 이름이 바로 얻고자 하는 폴더 이름인 것이다.
이상과 같은 절차를 통하여 프로세서(20)는 데이터베이스(30)에 속하는 특정 폴더 항목에 대한 폴더 이름을 획득하여 제공한다.
추가로, 데이터베이스(30)에 포함된 특정 폴더 항목에 대한 파일 탐색이 요청된 경우에 있어서, 요청된 폴더 항목에 대한 최초파일 DB 인덱스를 데이터베이스(30)로부터 획득하고 최초파일 DB 인덱스에 대응되는 파일 항목으로부터 파일 탐색을 시작한다.
폴더 DB 항목의 인덱스 [8]에 대한 파일 탐색이 요청된 경우를 예를 들어 설명하면, 도 5 우측의 폴더 항목 [8]에서 최초파일 DB 인덱스는 "101"이 얻어지며, 그로 인하여 파일 항목 [101]로부터 파일 탐색이 이루어진다. 즉, 폴더 항목 [8]인 jazz 폴더에서 파일 탐색이 요청된 경우 파일 항목 [101]인 Jazz1.mp3 파일로부터 파일 탐색이 시작되므로 타당한 결과가 얻어진다.
도 6은 본 발명에 따른 데이터베이스 관리 방법에서 파일 및 폴더에 대한 이름 요청에 따른 처리 방법을 도시한 도면이다.
도 6을 참조하면, 파일 및 폴더에 대한 이름 요청에 따른 처리 방법은 파일 및 폴더에 대한 이름 요청시, 폴더 DB 인덱스와 상위폴더 DB 인덱스가 지명하는 폴더 엔트리 로케이션을 기초하여 오픈된 특정 폴더 및 상위 폴더 내에서 파일 및 폴더에 대한 엔트리 로케이션과 대응된 파일 이름 및 폴더 이름을 획득하는 방법이다.
프로세서(20)는 Jazz1.mp3 파일 이름 요청될 시, 요청된 Jazz1.mp3에 대한 파일 엔트리 로케이션이 속한 jazz 폴더의 폴더 DB 인덱스 "8"을 데이터베이스(30)로부터 획득한다.
프로세서(20)는 폴더 DB 인덱스 "8"에 의해 지명된 폴더 엔트리 로케이션에 기초하여 저장매체(50)의 할당테이블(60)의 root 엔트리 구조에 따른 jazz 폴더 8를 오픈하고, 오픈된 jazz 폴더 [8] 내에서 [101]에서부터 [117]까지 입력된 파일 엔트리 로케이션에 대응되는 Jazz1.mp3 라는 파일 이름에서부터 Jazz17.mp3 라는 파일 이름을 순번대로 17개 획득한다.
또한, 프로세서(20)는 jazz 폴더 이름 요청시, 요청된 jazz 폴더에 대한 폴더 엔트리 로케이션이 속한 상위 폴더인 music 폴더의 상위폴더 DB 인덱스 "2"를 데이터베이스(30)로부터 획득한다.
프로세서(20)는 상위폴더 DB 인덱스 2에 의해 지명된 폴더 엔트리 로케이션에 기초하여 저장매체(50)의 할당테이블(60)의 root 엔트리 구조에 따른 music 폴더를 오픈하고, 오픈된 music 폴더 내에서 8 주소 번지에 입력된 폴더 엔트리 로케이션에 대응되는 Jazz 라는 폴더 이름을 획득한다.
프로세서(20)는 요청된 jazz 폴더에 대한 최초 파일을 탐색함에 따라, 요청된 jazz 폴더에 대한 최초파일 DB 인덱스 101를 데이터베이스(30)로부터 획득하고, 최초파일 DB 인덱스 [101]에 대응되는 최초 파일인 Jazz1.mp3을 파일 항목으로부터 찾아낸다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으 로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
도 1은 본 발명에 따른 데이터베이스 관리 기술에서 관리장치와 저장매체 간의 연결을 도시한 도면,
도 2는 저장매체의 파일 및 폴더의 배치 구조, 및 그에 따른 할당테이블의 일 예를 도시한 도면,
도 3은 본 발명에 따른 데이터베이스의 일 예를 도시한 도면,
도 4는 본 발명에 따른 데이터베이스에서 사용되는 파일 항목과 폴더 항목의 비트필드 구성의 일 예를 도시한 도면,
도 5는 본 발명에 따른 데이터베이스와 할당테이블 간의 파일 이름 및 폴더 이름을 효과적으로 획득하는 방법의 개념을 도시한 도면,
도 6은 본 발명에 따른 파일 및 폴더에 대한 이름 요청에 따른 처리 방법을 도시한 도면이다.

Claims (7)

  1. 저장매체에 저장된 하나 이상의 파일 및 폴더에 대한 데이터베이스를 관리하는 방법에 있어서,
    (a-1) 상기 저장매체의 할당테이블을 분석하는 단계;
    (a-2) 상기 저장매체의 파일 및 폴더에 대한 데이터베이스를 생성하는 단계;
    (a-3) 상기 저장매체의 파일 및 폴더에 대한 엔트리 로케이션을 상기 저장매체의 할당테이블로부터 입수하여 상기 데이터베이스의 파일 항목 및 폴더 항목에 배정하여 기록하는 단계;
    (a-4) 상기 파일 항목에 대하여 각 파일이 속한 폴더의 크로스링크를 상기 데이터베이스에 기록하는 단계;
    (b-1) 특정의 파일 항목에 대해 파일 이름을 요청받는 단계;
    (b-2) 상기 요청된 파일 항목에 대하여 상기 데이터베이스로부터 파일 엔트리 로케이션 및 크로스링크를 획득하는 단계;
    (b-3) 상기 저장매체로부터 상기 크로스링크에 대응되는 폴더를 오픈하는 단계; 및
    (b-4) 상기 오픈된 폴더 내에서 상기 파일 엔트리 로케이션에 대응되는 파일 이름을 획득하여 제공하는 단계;
    를 포함하여 구성되는 저장매체 데이터베이스 관리 방법.
  2. 청구항 1에 있어서,
    상기 저장매체 데이터베이스 관리 방법은,
    (a-5) 상기 저장매체의 폴더에 대하여 상위 폴더의 DB 인덱스를 데이터베이스에 기록하는 단계;
    (b-5) 특정의 폴더 항목에 대하여 폴더 이름을 요청받는 단계;
    (b-6) 상기 요청된 폴더 항목에 대하여 상기 데이터베이스로부터 폴더 엔트리 로케이션 및 상위폴더 DB 인덱스를 획득하는 단계;
    (b-7) 상기 저장매체로부터 상기 상위폴더 DB 인덱스에 따른 폴더를 오픈하는 단계; 및
    (b-8) 상기 오픈된 폴더 내에서 상기 폴더 엔트리 로케이션에 대응되는 폴더 이름을 획득하여 제공하는 단계;
    를 더 포함하여 구성되는 저장매체 데이터베이스 관리 방법.
  3. 청구항 2에 있어서,
    상기 (b-4) 단계는,
    (b-4-1) 상기 오픈된 폴더에 포함된 하나 이상의 파일 정보 중 상기 파일 엔트리 로케이션과 매칭되는 파일 정보를 검색하는 단계; 및
    (b-4-2) 상기 검색된 파일 정보로부터 파일 이름을 획득하여 제공하는 단계;
    를 포함하여 구성되는 것을 특징으로 하는 저장매체 데이터베이스 관리 방법.
  4. 청구항 3에 있어서,
    상기 (b-8) 단계는,
    (b-8-1) 상기 오픈된 폴더에 포함된 하나 이상의 폴더 정보 중 상기 폴더 엔트리 로케이션과 매칭되는 폴더 정보를 검색하는 단계; 및
    (b-8-2) 상기 폴더 정보에 기입된 폴더 이름을 획득하여 제공하는 단계;
    를 포함하여 구성되는 것을 특징으로 하는 저장매체 데이터베이스 관리 방법.
  5. 청구항 4에 있어서,
    상기 저장매체 데이터베이스 관리 방법은,
    (a-6) 상기 저장매체의 각 폴더에 대하여 소속된 최초 파일에 대한 DB 인덱스를 상기 데이터베이스에 저장하는 단계;
    (b-9) 특정의 폴더 항목에 대해 파일 탐색을 요청받는 단계;
    (b-10) 상기 요청된 폴더 항목에 대하여 상기 데이터베이스로부터 최초파일 DB 인덱스를 획득하는 단계; 및
    (b-11) 상기 데이터베이스에서 상기 최초파일 DB 인덱스에 대응되는 파일 항목으로부터 상기 파일 탐색을 수행하는 단계;
    를 더 포함하여 구성되는 저장매체 데이터베이스 관리 방법.
  6. 청구항 5에 있어서,
    상기 저장매체 데이터베이스 관리 방법은,
    (c-1) 특정의 파일 항목에 대해 재생을 요청받는 단계;
    (c-2) 상기 요청된 파일 항목에 대하여 상기 데이터베이스로부터 파일 엔트리 로케이션을 획득하는 단계; 및
    (c-3) 상기 저장매체에서 상기 파일 엔트리 로케이션에 대응되는 물리적 주소로부터 데이터를 판독하여 재생을 수행하는 단계;
    를 더 포함하여 구성되는 저장매체 데이터베이스 관리 방법.
  7. 청구항 6에 있어서,
    상기 저장매체 데이터베이스 관리 방법은,
    (a-7) 상기 저장매체의 파일에 대하여 코덱 타입 정보를 상기 저장매체에 기록하는 단계;
    를 더 포함하여 구성되는 저장매체 데이터베이스 관리 방법.
KR1020080032890A 2008-04-08 2008-04-08 저장매체에 대한 데이터베이스 관리 방법 KR100941026B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080032890A KR100941026B1 (ko) 2008-04-08 2008-04-08 저장매체에 대한 데이터베이스 관리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080032890A KR100941026B1 (ko) 2008-04-08 2008-04-08 저장매체에 대한 데이터베이스 관리 방법

Publications (2)

Publication Number Publication Date
KR20090107389A KR20090107389A (ko) 2009-10-13
KR100941026B1 true KR100941026B1 (ko) 2010-02-05

Family

ID=41537198

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080032890A KR100941026B1 (ko) 2008-04-08 2008-04-08 저장매체에 대한 데이터베이스 관리 방법

Country Status (1)

Country Link
KR (1) KR100941026B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030095438A (ko) * 2002-06-10 2003-12-24 삼성전자주식회사 플래쉬 메모리용 파일 시스템
JP2004310621A (ja) 2003-04-10 2004-11-04 Hitachi Ltd 記憶装置システムにおけるファイルアクセス方法及びファイルアクセスのためのプログラム
KR20060010424A (ko) * 2004-07-28 2006-02-02 삼성전자주식회사 메모리 카드의 파일 검색 방법 및 장치
KR20070059281A (ko) * 2005-12-06 2007-06-12 엘지전자 주식회사 홈 네트워크 컴퓨터에서의 파일 관리 방법 및 시스템

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030095438A (ko) * 2002-06-10 2003-12-24 삼성전자주식회사 플래쉬 메모리용 파일 시스템
JP2004310621A (ja) 2003-04-10 2004-11-04 Hitachi Ltd 記憶装置システムにおけるファイルアクセス方法及びファイルアクセスのためのプログラム
KR20060010424A (ko) * 2004-07-28 2006-02-02 삼성전자주식회사 메모리 카드의 파일 검색 방법 및 장치
KR20070059281A (ko) * 2005-12-06 2007-06-12 엘지전자 주식회사 홈 네트워크 컴퓨터에서의 파일 관리 방법 및 시스템

Also Published As

Publication number Publication date
KR20090107389A (ko) 2009-10-13

Similar Documents

Publication Publication Date Title
US9298384B2 (en) Method and device for storing data in a flash memory using address mapping for supporting various block sizes
US6732222B1 (en) Method for performing flash memory file management
US7761648B2 (en) Caching method for NAND flash translation layer
CN107526550B (zh) 一种基于日志结构合并树的两阶段合并方法
CN103838853B (zh) 一种基于不同存储介质的混合文件***
CN108052643B (zh) 基于LSM Tree结构的数据存储方法、装置及存储引擎
CN101464901A (zh) 一种对象存储设备中的对象查找方法
CN108491402B (zh) 一种轻量级文件***的实现方法
US20120158804A1 (en) Method for converting data in optical disc drive
CN105260139B (zh) 一种磁盘管理方法以及***
TWI397060B (zh) 物件導向儲存裝置之磁碟配置方法
CN114416646A (zh) 一种层级存储***的数据处理方法及装置
CN102236609B (zh) 存储设备及其访问方法
US20070050396A1 (en) Fast algorithm for building multimedia library database
KR20100083976A (ko) 해시 인덱스 구성 방법과 그 장치, 및 상기 장치를 구비하는 데이터 저장 장치, 및 상기 방법을 구현하는 프로그램이 기록된 기록매체
CN115576956B (zh) 一种数据处理方法、***、设备以及存储介质
CN108829897A (zh) 数据存储方法及数据存储***
KR100941026B1 (ko) 저장매체에 대한 데이터베이스 관리 방법
US20100268870A1 (en) Data storage device and data storage system including the same
CN114996275A (zh) 一种基于多树转换机制的键值存储方法
CN100444166C (zh) Fat文件***中基于位置的接口访问方法及其装置
CN108776578B (zh) 一种快速合并对象的方法和***
CN100541490C (zh) 无需回收的目录入口***及其方法
CN105630692A (zh) 一种利用mram存储文件目录的文件存储***
CN100405330C (zh) 一种获取fat文件***剩余空间的方法及其装置

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: 20130107

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140107

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150114

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160104

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170124

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180122

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20190115

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20200115

Year of fee payment: 11