WO2010005261A2 - 데이터 검색을 위한 파일 생성 방법 및 데이터 파일의 검색방법 그리고 데이터 파일 검색을 위한 데이터베이스 관리 시스템 - Google Patents

데이터 검색을 위한 파일 생성 방법 및 데이터 파일의 검색방법 그리고 데이터 파일 검색을 위한 데이터베이스 관리 시스템 Download PDF

Info

Publication number
WO2010005261A2
WO2010005261A2 PCT/KR2009/003790 KR2009003790W WO2010005261A2 WO 2010005261 A2 WO2010005261 A2 WO 2010005261A2 KR 2009003790 W KR2009003790 W KR 2009003790W WO 2010005261 A2 WO2010005261 A2 WO 2010005261A2
Authority
WO
WIPO (PCT)
Prior art keywords
data
file
rvr
rat
recording position
Prior art date
Application number
PCT/KR2009/003790
Other languages
English (en)
French (fr)
Other versions
WO2010005261A3 (ko
Inventor
정종선
Original Assignee
Jung Jong Sun
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 Jung Jong Sun filed Critical Jung Jong Sun
Priority to US13/003,649 priority Critical patent/US8423513B2/en
Publication of WO2010005261A2 publication Critical patent/WO2010005261A2/ko
Publication of WO2010005261A3 publication Critical patent/WO2010005261A3/ko
Priority to US13/845,999 priority patent/US20130275462A1/en

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • 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/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/19Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier
    • G11B27/28Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording
    • G11B27/32Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on separate auxiliary tracks of the same or an auxiliary record carrier
    • G11B27/327Table of contents
    • G11B27/329Table of contents on a disc [VTOC]
    • 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
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • G11B20/1217Formatting, e.g. arrangement of data block or words on the record carriers on discs
    • G11B20/1252Formatting, e.g. arrangement of data block or words on the record carriers on discs for discontinuous data, e.g. digital information signals, computer programme data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2508Magnetic discs
    • G11B2220/2516Hard disks

Definitions

  • FIG. 1 is a schematic diagram showing how data is stored in a general hard disk.
  • Another object of the present invention is to provide a method for analyzing and calculating large-scale data, without placing large amounts of data in dynamic random access memory (DRAM) (below 128 Giga Bytes DRAM is less practical due to the high price), It is to provide a method to perform at a speed similar to that of DRAM on a hard disk.
  • DRAM dynamic random access memory
  • the present invention provides a method for searching an unstructured single data file, comprising: (A1) receiving a division unit of data; (A2) generating an RVR file by dividing the atypical single data file by the input division unit; (A3) generating a RAT file by detecting a recording position for each division unit of the RVR file; And (A4) a file generation method for data retrieval performed including storing the RVR file and the RAT file.
  • the present invention is a database for storing the RVR file generated by dividing the input unstructured single data file into the set division unit and the recording position of the division unit of the RVR file is stored;
  • the recording position of the search information is detected from the RAT file with respect to the input search information, the physical storage position in the storage medium of the data corresponding to the search information is detected from the recording position, and the data of the physical location is searched to read Shipping RVR controller;
  • a database management system for retrieving a data file including an analysis module for analyzing a result read by the RVR controller.
  • FIGS. 12 and 13 are exemplary diagrams comparing a data search rate and a sequential data search rate of a general hard disk according to a specific embodiment of the present invention.
  • FIG. 16 is an exemplary diagram visually showing division units for classifying structured data by an RVR DBMS according to the present invention.
  • a record allocation table (RAT) file is a file in which a dynamic table indicating a location of a recording unit of the RVR file is stored, and refers to a file indicating a location of specific data in the RVR file at the time of data retrieval.
  • the recording position may be represented by the accumulated data size.
  • the general document refers to an unstructured document whose format is unstructured
  • the term atypical refers to most documents which are not written in a standardized form rather than a matrix form (table, etc.).
  • General documents and unstructured documents are used interchangeably below.
  • the first paragraph is an RVR file generated by using [paragraph] as a division unit, and each paragraph is divided by the division factor '>' as shown.
  • the division unit of the data is determined by a user's selection, and the division symbol may be replaced with a sign of mouth.
  • a RAT file is generated from the generated RVR file.
  • the RAT file is generated by including a serial number indicating a row number of the RVR file in a matrix form and a recording position where the corresponding data is stored.
  • each record and computer [O / S] type bytes value is calculated slightly differently.
  • the file can be made into a binary file by the fwrite () function.
  • the size of each record in the input file is returned in bytes. Therefore, in the process of converting large-scale data into a rack of virtual RAM (RVR), all record addresses are converted into a RAT file using bytes values received from the fwrite () function and Equations 1, 2, and 3 above. Save the output.
  • the RVR DBMS includes at least one database (DB), an RVR controller, and an analysis module for performing analysis using data stored in the database.
  • a unique number is assigned to the separated seven-digit base sequence (S320).
  • each base of the separated base sequence is any one of A, G, T or C, it is efficient to assign a unique number using a ternary number.
  • FIG. 20 is a flowchart illustrating a method of generating an RVR file and a RAT file for large-scale green data by the RVR DBMS according to the present invention
  • FIG. 21 illustrates an RVR file and a large-scale green data by the RVR DBMS according to the present invention.
  • the large-scale green data refers to data in which a plurality of green data are collected to form large-scale data, as shown in FIG. 21.
  • the RVR file corresponds to data obtained by dividing the inputted large-scale abstract data by serial numbers (abstract 1, abstract 2 ... in FIG. 21), and the RAT file includes each word and its serial number and their The number of stores is stored.
  • the method of searching and analyzing data using the RVR file and the RAT file is performed on the same principle as the above-described nucleotide sequence data.
  • the word is inputted as a Query and performed.
  • the RVR DBMS according to the present invention has been described using an HDD, but the present invention can be used in various storage media used as a substitute for HDD.
  • the present invention relates to a method for generating and storing a file to facilitate a search and a data retrieval method using the same.
  • RVR DBMS can be used as a DBMS for various purposes, but the current version is (1) a method for analyzing and managing large-scale bulk data for science and technology. With a few extra formats (minimal formatting), there is a direct link between the DBMS and the data processing and analysis modules. Also, (2) it is useful for fast DBMS execution of several files, such as when using PCs of individuals like Web2,0 as a server. (3) Cloud computing refers to a service in which a large number of individual users use the internet to use analytical / computing equipment centralized in one place. Therefore, a large number of users can perform a quick calculation. RVR DBMSs are best suited for cloud computing. In addition, high-density indexes for all data can be used to quickly distribute data. This distributed data can be quickly executed in parallel using a large number of PC-clusters, the greatest advantage of cloud computing technology.

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)
  • Signal Processing (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 본 발명은 저장매체 상에 저장된 데이터의 검색을 용이하도록 하는 파일을 생성하여 저장하는 방법 및 이를 이용한 데이터 검색 방법에 관한 것으로, 본 발명은 단일 데이터로, 구분단위 별로 구분요소에 의해 다수개로 구분되어 저장되는 RVR 파일과; 상기 RVR 파일의 각각의 구분 단위에 대한 기록위치가 저장되는 RAT 파일을 생성하고 이를 이용한다. 이와 같은 본 발명에 의하면, 대규모 비정형 데이터에 대한 DB생성 및 빠른 데이터 분석이 가능해지는 장점이 있다.

Description

데이터 검색을 위한 파일 생성 방법 및 데이터 파일의 검색방법 그리고 데이터 파일 검색을 위한 데이터베이스 관리 시스템
본 발명은 검색을 용이하도록 하는 파일을 생성하여 저장하는 방법 및 이를 이용한 데이터 검색 방법에 관한 것이다.
도 1은 일반적인 하드 디스크에 데이터가 저장된 모습을 도시한 개략도이다.
이에 도시한 바와 같이, 하드디스크는 원판을 이루는 트렉(tract)들이 모여 실린더(cylinder)를 구성하고, 각 트렉의 Boom에 연결된 Read/Write Header에 의해서 I/O가 수행이 된다. 도 1에서 데이터의 가장 작은 단위인 레코드가 1번, 2번, 3번, 4번... i-1번, i번... N번 섹터(sector)에 저장되어 있다고 가정한다. 클러스터(cluster)는 인접하고 있는 섹터들의 집합을 의미한다. 그리고 파일관리 프로그램(file manager)은 클러스터(cluster)와 물리적 주소(physical location)를 FAT(file allocation table)에 의하여 정렬한다.
그리고 FAT시스템에서 레코드들은 여러 클러스터들에 순차적으로 정렬되어 있다. 따라서 중간 단계인 i-섹터의 레코드 정보를 검색하려면 첫 번째 섹터에서 i-번째 섹터까지 순차적으로 트랙(tract)을 돌면서 내려와 i-번째 섹터에 도달하고 그 안에 있는 레코드들을 검색한다.
반면에, RAM의 경우 변수 혹은 변수명이 있는 파일들에서 필요한 정보를 빠르게 추출하려면 모든 변수를 프로그래밍과정에서 DRAM(dynamic random access memory)에 올려놓고 작업을 하면, 해당 변수명이 저장된 위치를 바로 검색한다. 따라서 빠르게 필요한 정보를 추출할 수 있다.
그러나, DRAM은 반도체이고 용량이 증가할수록 Hard Disk에 비하여 가격이 기하급수적으로 증가하기 때문에 128 Giga Bytes이상을 필요로 하는 대규모 데이터에는 비용대비 활용성이 떨어진다. 그러므로 대용량의 데이터를 저장하는 데는 DRAM 보다 하드 디스크가 사용되고 있다.
따라서 디스크에 데이터를 저장하여 사용하는 종래기술에서는 다음과 같은 문제점이 있다.
즉, 저장된 대규모 데이터를 검색함에 있어 디스크와 같이 순차적 (sequential access) 검색 방법이 사용되는 경우, 검색 속도는 데이터 레코드를 무작위검색(random access)하는 속도와 비교해서 데이터의 크기에 따라 기하 급수적으로 차이가 난다.
또한, 모든 데이터 레코드에 대한 무작위적인 접근주소(고집적 인덱스)를 미리 계산하고 외장으로 저장하지 않으면 데이터의 크기에 따라 검색속도가 기하급수적으로 차이가 난다.
특히 최근에 biotechnology의 급격한 성장에 힘입어 게노믹스, 혹은 오믹스(대규모 생물정보 데이터) 데이터 등의 유전체임상역학유전기능 관련 데이터가 급격히 생산되고 있으며, 이러한 데이터를 가지고 연구자들은 계산을 통하여 유용한 정보를 추출한다. 이러한 비정형 데이터들을 현재 그 크기가 수~수십 Tera Byte에 달하고, 향후 더 큰 프로잭트가 수행시 Penta Byte 수준에 이를 것으로 예상된다. 이 경우 데이터 검색 시간의 순차적 검색 및 고집적 인덱스 기술에 의한 무작위 검색의 속도차이는 몇 일 ~ 몇 년 차이까지 생길 수 있으므로, 데이터 검색을 원활하게 할 수 없는 문제점이 있다.
본 발명은 상기와 같은 종래의 문제점을 해결하기 위하여 안출된 것으로, 본 발명의 목적은 대규모 데이터들의 모든 구성단위(page, paragraph, line, word, string, integer, 및 float)들의 다양한 레코드들에 대하여 RAT(record allocation table)을 만들고 Hard Disk 상에서의 위치정보(address)를 무작위검색(random access)할 수 있도록 하여, 대규모 비정형 데이터들에 대한 DBMS를 실현하고, Hard Disk를 DRAM처럼 빠르게 데이터 검색을 가능하게 하는 방법을 제공하는 것이다.
본 발명의 다른 목적은 대규모 데이터 분석 및 계산하기 위한 방법을 제공하는 것으로, 거대 용량의 데이터를 DRAM(dynamic random access memory)에 올려놓지 않고(128 Giga Bytes DRAM 이상은 높은 가격 때문에 실용성이 떨어짐), Hard Disk 상에서 DRAM에서 검색하는 속도와 유사한 속도로 수행 가능하도록 하는 방법을 제공하는 것이다.
따라서 본 발명은 대규모 파일을 빠르고 효과적으로 검색할 수 있도록 함에 의해, 대규모 데이터의 군집화 연구에 필수적인 데이터 처리 방법을 제시하고자 하는 것이다.
상기한 바와 같은 목적을 달성하기 위한 본 발명의 특징에 따르면, 본 발명은 비정형 단일 데이터 파일을 검색하기 위한 방법에 있어서, (A1) 데이터의 구분 단위를 입력받는 단계와; (A2) 상기 입력된 구분단위로 상기 비정형 단일 데이터 파일을 구분하여 RVR 파일을 생성하는 단계와; (A3) 상기 RVR 파일의 구분 단위별 기록위치를 검출하여 RAT 파일을 생성하는 단계; 그리고 (A4) 상기 RVR 파일 및 RAT 파일을 저장하는 단계를 포함하여 수행되는 데이터 검색을 위한 파일 생성 방법을 포함한다.
이때, 상기 데이터는 비정형 데이터이고, 상기 구분 단위는 [page], [paragraph], [line] 또는 [word] 중 어느 하나일 수도 있다.
또한, 본 발명은 정형 단일 데이터 파일을 검색하기 위한 방법에 있어서, (B1) 정형 단일 데이터의 행과 열을 구분하여 RVR 파일을 생성하는 단계와; (B2) 상기 RVR 파일의 행 또는 열 별 기록위치를 검출하여 RAT 파일을 생성하는 단계; 그리고 (B3) 상기 RVR 파일 및 RAT 파일을 저장하는 단계를 포함하여 수행되는 데이터 검색을 위한 파일 생성 방법을 포함한다.
그리고 상기 기록 위치는, 상기 단일 데이터 내에서 상기 해당 데이터가 기록된 위치까지의 누적된 데이터 크기일 수도 있다.
또한, 상기 기록위치는, 상기 해당 부분의 데이터가 기록된 하드 디스크 클러스터 넘버일 수도 있다.
그리고 본 발명은 단일 데이터 파일을 검색하는 방법에 있어서, (C1) 검색정보를 입력받는 단계와; (C2) RAT 파일로부터 상기 검색정보에 해당하는 상기 단일 데이터 내의 기록위치를 검출하는 단계와; (C3) 상기 기록위치로부터 상기 검색정보에 해당하는 데이터의 저장매체 내의 물리적 저장위치를 검출하는 단계; 그리고 (C4) 상기 데이터의 물리적 위치의 데이터를 검색하여 결과를 출력하는 단계를 포함하여 수행되는 데이터 파일의 검색방법을 포함한다.
이때, 상기 단일 데이터가 비정형 데이터인 경우, 상기 검색정보는 구분단위의 순번을 의미할 수도 있다.
그리고 상기 단일 데이터가 정형 데이터인 경우, 상기 검색정보는 정형 데이터 중 해당 데이터의 행 또는 열 번호일 수도 있다.
또한, 상기 기록 위치는, 상기 단일 데이터 내에서 상기 해당 데이터가 기록된 위치까지의 누적된 데이터 크기일 수도 있다.
이때, 상기 저장위치의 검출은, 상기 각각의 구분 단위의 데이터 크기를 이용하여 상기 기록위치로부터 클러스터 위치를 산출하고, 상기 클러스터 위치의 물리적 저장위치를 FAT으로부터 독출하여 검출할 수도 있다.
그리고 상기 기록위치는, 상기 해당 부분의 데이터가 기록된 하드 디스크 클러스터 넘버일 수도 있다.
한편, 본 발명은 입력된 비정형의 단일 데이터 파일을 설정된 구분단위로 구분하여 생성된 RVR 파일 및 상기 RVR 파일의 구분 단위별 기록위치를 검출하여 생성된 RAT 파일이 저장되는 데이터 베이스와; 입력된 검색정보에 대하여 상기 RAT 파일로부터 상기 검색정보의 기록위치를 검출하여 상기 기록위치로부터 상기 검색정보에 해당하는 데이터의 저장매체 내의 물리적 저장위치를 검출하고, 상기 물리적 위치의 데이터를 검색하여 독출하는 RVR 컨트롤러; 그리고 상기 RVR 컨트롤러에 의해 독출된 결과물을 분석하는 분석모듈을 포함하여 구성되는 데이터 파일 검색을 위한 데이터 베이스 관리 시스템을 포함한다.
여기서 상기 구분 단위는, [pagen], [page], [fastan], [fasta], [line], [image], [audio] 또는 [video] 중 어느 하나일 수도 있다.
그리고 상기 검색정보는 구분단위의 순번을 의미할 수도 있다.
또한, 상기 기록 위치는, 상기 단일 데이터 내에서 상기 해당 데이터가 기록된 위치까지의 누적된 데이터 크기일 수도 있다.
그리고 상기 기록위치는, 상기 해당 부분의 데이터가 기록된 하드 디스크 클러스터 넘버일 수도 있다.
또한, 상기 저장매체는, 반도체 형태의 저장매체일 수도 있다.
한편, 본 발명은 입력된 단일 데이터 파일을 행과 열에 의해 정형화된 구분단위로 구분되어 생성된 RVR 파일 및 상기 RVR 파일의 구분단위 열 별 기록위치를 검출하여 생성된 RAT 파일이 저장되는 데이터 베이스와; 입력된 검색정보에 대하여 상기 RAT 파일로부터 상기 검색정보의 기록위치를 검출하여 상기 기록위치로부터 상기 검색정보에 해당하는 데이터의 저장매체 내의 물리적 저장위치를 검출하고, 상기 물리적 위치의 데이터를 검색하여 독출하는 RVR 컨트롤러; 그리고 상기 RVR 컨트롤러에 의해 독출된 결과물을 분석하는 분석모듈을 포함하여 구성되는 데이터 파일 검색을 위한 데이터 베이스 관리 시스템을 포함한다.
이때, 상기 정형 데이터의 구분단위는, [seq], [int], [float], [string], [csv], [r], [xml] 또는 [smtx] 중 어느 하나일 수도 있다.
그리고 상기 검색정보는, 상기 정형 데이터 중 해당 데이터의 행 또는 열 번호일 수도 있다.
또한, 상기 기록 위치는, 상기 단일 데이터 내에서 상기 해당 데이터가 기록된 위치까지의 누적된 데이터 크기일 수도 있다.
그리고 상기 저장위치의 검출은, 상기 각각의 구분 단위의 데이터 크기를 이용하여 상기 기록위치로부터 클러스터 위치를 산출하고, 상기 클러스터 위치의 물리적 저장위치를 FAT으로부터 독출하여 검출할 수도 있다.
또한, 상기 기록위치는, 상기 해당 부분의 데이터가 기록된 하드 디스크 클러스터 넘버일 수도 있다.
그리고 본 발명은 (D1) 게놈 염기서열을 일정크기의 염기단위로 조각화 하는 단계와; (D2) 상기 조작화된 염기단위에 고유번호를 할당하는 단계와; (D3) 상기 염기단위에 대한 저장위치를 저장하는 단계; 그리고 (D4) RAT 파일을 생성하는 단계를 포함하여 수행되는 데이터 파일의 검색방법을 포함한다.
이때, 상기 (D2) 단계의 고유번호는, 상기 염기단위를 구성하는 염기에 따라 구분된 4진수일 수도 있다.
한편, 본 발명은 (E1) 입력 데이터에 구분단위에 따라 일련번호를 부여하는 단계와; (E2) 상기 입력 데이터에 포함된 단어가 포함된 데이터의 일련번호를 산출하는 단계와; (E3) 상기 단어 및 상기 일련번호를 포함하여 해시 테이블을 생성하는 단계; 그리고 (E4) 상기 해시 테이블을 이용하여 RAT 파일을 생성하는 단계를 포함하여 수행되는 데이터 파일의 검색방법을 포함한다.
위에서 살핀 바와 같은 본 발명에 의한 단일 데이터 검색을 위한 파일 생성 방법 및 이를 단일 데이터 파일의 검색방법에서는 다음과 같은 효과를 기대할 수 있다.
즉, 본 발명에서는 binary파일인 RVR은 모든 데이터 레코드들의 Hard Disk상의 주소(address)가 RAT파일에 기록되어 있다. 따라서 사용자(user)가 자체 프로그래밍 언어(Perl, Python, Fortran, C/C++, JAVA, 등)를 사용하여 RAT파일에 저장된 주소 정보를 이용하여 RVR 파일 레코드 정보를 무작위 검색(random access)하고 자체 프로그램밍 언어로 포맷하여 출력한다. 따라서 대규모 비정형 데이터에 대한 DB생성 및 빠른 데이터 분석이 가능해지는 장점이 있다.
또한, 본 발명에서는 대용량 DRAM 없이, 비교적 저렴한 하드디스크를 이용하여 무작위검색을 가능하게 하므로, 경제적으로 유리한 효과가 있다.
그리고 현재 biotechnology의 향상으로 다양한 미생물에서 동식물에 이르기까지 2,000종이상의 전장게놈염기서열(whole genome sequence)이 해독되었고 1명의 인간게놈의 염기서열은 약 3 Giga Bytes 분량이다.
또한, 본 발명에 의한 한편, RVR DBMS는 종래의 표준 DBMS가 정형 데이터 테이블을 만들어 놓고 테이블에 데이터를 입력하고 입력된 테이블에 대한 DBMS를 수행하는 것과는 다르게, 데이터 파일의 데이터 레코드들과 그들의 주소를 가지고 DBMS를 수행한다. 그리고 표준 DBMS처럼 여러 개의 테이블을 만들고 상호(inter) 혹은 자체적(intra)테이블들의 관계를 시스템적으로 DBMS를 수행한다. 이러한 표준 방식과 비교해서 RVR DBMS는 서로 다른 파일들에서 서로 다른 포맷의 데이터 레코드들에 대한 RVR-RAT들을 만들고 이것들에 대한 상호(inter) 혹은 자체적(intra)파일들에 대한 DBMS를 수행 할 수 있는 장점이 있다.
한편, 본 발명에 의한 RVR DBMS는 종래 표준 DBMS들인 MMDBMS(main memory based DBMS), DRDBMS(Disk resident DBMS) 및 HDBMS(hybrid DBMS)와 대비하여 볼때, 다음과 같은 장점을 갖는다. 즉, 상기 MMDBMS(main memory based DBMS), DRDBMS(Disk resident DBMS) 및 HDBMS(hybrid DBMS)의 차이점은 데이터가 메모리에 있는 테이블에 채워지는지(MMDBMS), HDD에 있는 테이블에 채워지는지(DRDBMS), 그리고 빠른 계산을 위해서는 메모리에 그리고 안정적인 보관은 디스크에 보관하는 방식(HDBMS)등으로 설명 될 수 있다. 데이터의 크기가 큰 것은 DRDBMS가 유리하나 속도는 느리다. 그러나 데이터의 크기가 작고 빠른 계산이 필요한 것은 MMDBMS가 유용하다. 그리고 이 두 가지 장점을 합친 방법인 Hybrid DBMS도 있다.
RVR DBMS방식은 표준 DBMS와 비교하여 (1)HDD에 저장된 특정 포맷으로 만들어진 데이터 파일의 하드 디스크 고집적 인덱스 주소만을 사용하기 때문에 DRDBMS와 같은 방식이지만 (2)MMDBMS와 유사하고 상호작용 속도가 빠르다. (3)특히, 대규모 과학기술용 벌크(bulk) 데이터의 경우에도 적용 가능하고 또한 표준 DBMS로 처리 불가한 많은 게놈 염기서열과 같은 비정형 데이터의 경우에도 쉽게 DBMS및 분석 작업을 수행 할 수 있다. 그리고 (4) RVR DBMS는 데이터 파일들에 대한 DBMS이기 때문에 데이터들 간의 통계 및 분석 계산을 수행할 수 있는 장점을 가지고 있다.
따라서 상호작용을 하면서 수행하는 과학기술용 데이터 분석 시스템에 활용할 수 있다. (5) 또한, RVR DBMS는 하드 디스크의 모든 파일을 고집적 인덱스화를 수행한 후에 관리를 하기 때문에 쉽게 데이터를 분산 할 수 있다. 이러한 쉽게 데이터를 분산하는 능력은 분산계산에 장점을 가지고 있는 cloud computing에 유용하게 사용 가능하다는 장점이 있다.
도 1은 일반적인 하드 디스크에 데이터가 저장된 모습을 도시한 개략도.
도 2는 본 발명의 구체적인 실시예에 의한 데이터 파일, RAT 파일 및 RVR 파일의 관계를 도시한 예시도.
도 3은 본 발명의 구체적인 실시예에 의한 RVR 파일 및 RAT 파일과 디스크의 데이터 저장된 데이터와의 관계를 도시한 예시도.
도 4는 본 발명의 구체적인 실시예에 의한 데이터 파일 및 RAT 파일의 관계를 도시한 예시도.
도 5 및 도 6은 본 발명에 의한 저장 데이터가 일반 문서인 경우, 데이터 파일로부터 RAT 파일 및 RVR 파일을 생성하는 일 예를 도시한 예시도.
도 7 및 도 8은 본 발명에 의한 저장 데이터가 매트릭스인 경우, 데이터 파일로부터 RAT 파일 및 RVR 파일을 생성하는 일 예를 도시한 예시도.
도 9는 본 발명의 구체적인 실시예에 의한 RVR 파일 및 RAT 파일의 기록 및 검색 기능을 수행하는 프로그램 과 소스코드의 일 예를 도시한 예시도.
도 10은 본 발명의 구체적인 실시예에 의한 RVR 파일 및 RAT 파일의 생성 방법을 도시한 흐름도.
도 11은 본 발명의 구체적인 실시예에 의한 데이터 검색 방법을 도시한 흐름도.
도 12 및 도 13은 본 발명의 구체적인 실시예에 의한 데이터 검색속도와 일반적인 하드 디스크의 순차적인 데이터 검색속도를 비교한 예시도.
도 14는 본 발명에 의한 RVR DBMS의 시스템 구성도.
도 15는 본 발명에 의한 RVR DBMS에 의해 비정형 데이터를 구분하는 구분단위들을 가시적으로 도시한 예시도.
도 16은 본 발명에 의한 RVR DBMS에 의해 정형 데이터를 구분하는 구분단위들을 가시적으로 도시한 예시도.
도 17은 본 발명에 의한 RVR DBMS에 의해 데이터를 추가, 삭제, 업데이트 및 검색하는 방법을 가시적으로 도시한 예시도.
도 18은 본 발명에 의한 RVR DBMS에 의해 염기서열 데이터에 대하여 RVR 파일 및 RAT 파일을 생성하는 방법을 도시한 흐름도.
도 19는 본 발명에 의한 RVR DBMS에 의해 염기서열 데이터에 대하여 RVR 파일 및 RAT 파일을 생성하는 방법을 도시한 예시도.
도 20은 본 발명에 의한 RVR DBMS에 의해 대규모 초록 데이터에 대하여 RVR 파일 및 RAT 파일을 생성하는 방법을 도시한 흐름도.
도 21은 본 발명에 의한 RVR DBMS에 의해 대규모 초록 데이터에 대하여 RVR 파일 및 RAT 파일을 생성하는 방법을 도시한 예시도.
이하에서는 상기한 바와 같은 본 발명에 의한 디스크 상의 데이터 기록 방법 및 데이터 검색 방법의 구체적인 실시예를 첨부된 도면을 참고하여 상세하게 설명한다.
도 2는 본 발명의 구체적인 실시예에 의한 데이터 파일, RAT 파일 및 RVR 파일의 관계를 도시한 예시도이고, 도 3은 본 발명의 구체적인 실시예에 의한 RVR 파일 및 RAT 파일과 디스크의 데이터 저장된 데이터와의 관계를 도시한 예시도이며, 도 4는 본 발명의 구체적인 실시예에 의한 데이터 파일 및 RAT 파일의 관계를 도시한 예시도이다.
이들 도면에 도시된 바와 같이, 본 발명에 의한 데이터는 RVR(rack of virtual RAM)파일 형태로 저장되고, 이와 더불어 RVR 레코드의 동적 테이블인 RAT(record allocation table)파일이 생성되어 저장된다.
즉, 임의의 데이터 파일을 저장하고자 하는 경우, 상기 데이터 파일을 RVR 파일로 변환하고, 이에 따라 RAT 파일을 생성하여 상기 RVR 파일 및 RAT 파일을 하드 디스크에 저장한다.
여기서, RVR(rack of virtual RAM)파일 이라 함은, 데이터 파일에 구분 인자를 포함하여 생성한 파일을 말한다. 그리고 상기 구분 인자는 데이터의 레코딩 단위인 구분단위별로 데이터를 구분하는 것으로, 상기 구분단위는 [paragraph], [line], [word], [string], [integer], 또는 [float] 등으로 다양하게 설정될 수 있다.
상기 구분 인자(구분단위)의 종류 및 기능은 상기 RVR 파일 및 RAT 파일의 생성 방법을 살핌에 있어 상세히 설명하도록 한다.
또한, RAT(record allocation table)파일 이라 함은, 상기 RVR 파일의 레코딩 단위의 위치를 표시하는 동적 테이블이 저장된 파일로, 데이터 검색시 RVR 파일에서 특정 데이터의 위치를 나타내는 파일을 말한다.
도 3에 도시된 바와 같이, 데이터 저장 장치인 Hard Disk에서 데이터의 가장 작은 단위인 레코드가 1번, 2번, 3번, 4번... i-1번, i번... N번 섹터(sector)에 저장되어 있다고 가정한다. 클러스터(cluster)는 섹터들의 집합으로 데이터의 기록 단위이다.
그리고 파일관리 프로그램(file manager)에 의해 클러스터(cluster)와 물리적 주소(physical location)를 FAT(file allocation table)에 의하여 정렬되어 파일이 저장된다.
다만, 하나의 파일을 저장하는데, 다수의 클러스터가 필요하고, 상기 클러스터는 순서대로 할당되지 않는다. 즉, 기록 가능한 클러스터를 찾아 상기 파일을 저장하고, 상기 파일의 기록에 사용된 클러스터의 순서를 FAT이 기록하여, 파일의 재생(검색)시 상기 클러스터의 순서를 읽어들여 데이터를 독출함에 의해 상기 파일을 재생 또는 검색한다.
즉, 도시된 바와 같이, 일련의 클러스터 넘버에 따라 개별적인 물리적 클러스터 위치가 저장된다.
한편, 상기 데이터에 대한 RAT 파일은 구분단위 별로 구분인자에 의해 구분된 데이터 파일을 말하는 것으로, 도 3에서는 line 단위로 구분된 텍스트의 예가 도시되어 있다. 이는 본 발명에 의한 저장데이터가 일반 문서인 경우의 실시예이다.
그리고 이에 따라 생성된 RAT 파일은 상기 구분인자의 순서를 나타내는 일련번호(도 3에서는 line 번호)와 이에 해당하는 데이터가 기록된 기록 위치(adress)가 저장된다.
이때, 상기 기록위치는 누적된 데이터 크기로 표현될 수 있다.
즉, 상기 기록 위치는 수학식 1과 같이 표현될 수 있는데,
수학식 1
Figure PCTKR2009003790-appb-M000001
여기서, 모든 레코드가 같은 bytes을 가졌다고 가정하면 bytes_of_record는 하드 디스크의 특성에 따라 결정되는 상수가 된다.
따라서, 기록위치를 상수(bytes_of_record)로 나누면 클러스터 넘버(i')를 알 수 있고, 이에 의해 FAT를 통해 물리적인 데이터의 기록 위치를 알 수 있다.
한편, 본 발명에 의한 저장 데이터가 매트릭스(테이블) 형태인 경우에는 특정 데이터가 메트릭스 형태로 저장이 되어 있고 메트릭스의 모든 레코드(기록단위)의 bytes가 동일하다면 메트릭스 상의 특정 위치(k) 레코드 주소(address)는 상기 수학식 1을 단순히 세분화(partitioning)하면 된다.
즉, 상기 수학식 1을 세분화하면, 아래의 수학식 2가 된다.
수학식 2
여기서 k 는 메트릭스 기록단위의 일련번호 이다. 그리고 N은 x축의 구분 인자 개수에 해당한다.
만약, 각 레코드의 bytes가 모두 다르다고 가정하면 아래 수학식 3과 같은 형태로 표현될 수 있다.
수학식 3
Figure PCTKR2009003790-appb-M000003
여기서 k는 메트릭스 기록단위의 일련번호이고, bytes.of.record[i]는 각기 다른 line이나 paragraph 레코드들의 bytes을 의미하고 i 는 이러한 특정 line 혹은 paragraph 레코드 일련번호를 의미한다. 그리고, address[k=1]은 0으로 최기화하여 사용한다.
도 5 는 본 발명에 의한 저장 데이터가 일반 문서인 경우, 데이터 파일로부터 RVR 파일을 생성하는 일 예를 도시한 예시도이고, 도 6은 본 발명에 의한 저장 데이터가 매트릭스 형태의 정형 문서인 경우, 데이터 파일로부터 RAT 파일을 생성하는 일 예를 도시한 예시도이다.
도 5에 도시한 바와 같이, 저장 데이터가 일반문서(데이터, 문서 및 데이터는 동일한 의미로 사용한다)인 경우, 구분단위의 종류는 [paragraph], [line] 또는 [word] 등이 있다. 상기 도 5에는 동일한 문서를 각각 [paragraph], [line] 및 [word]를 구분단위로 하여 RVR 파일을 생성한 예를 도시한다.
여기서 일반 문서라 함은 문서의 형태가 정형화되지 않은 비정형 문서를 말하는 것이고, 비정형이라 함은 매트릭스 형태(표 등)가 아닌 정형화된 틀 안에 작성되지 않은 대부분의 문서를 말한다. 이하 일반 문서 및 비정형 문서는 같은 의미로 사용한다.
즉, 첫 번째 문단은 [paragraph]를 구분단위로 하여 RVR 파일을 생성한 것으로, 도시된 바와 같이 각각의 문단이 구분인자 '>'로 나뉘어 표시되고 있다.
또한 두 번째, 문단은 [line]를 구분단위로 하여 RVR 파일을 생성한 것으로, 도시된 바와 같이 각각의 line이 구분인자 '\n'로 나뉘어 표시되고 있다.
그리고 세 번째 문단은 [word]를 구분단위로 하여 RVR 파일을 생성한 것으로, 도시된 바와 같이 각각의 문단이 구분인자 ' '로 나뉘어 표시되고 있다.
상기 데이터의 구분단위는 사용자의 선택에 의해 결정되며, 상기 구분기호는 입의의 기호로 대체될 수 있다.
한편, 도 6에 도시된 바와 같이, 상기 생성된 RVR 파일로부터 RAT 파일이 생성된다. 상기 RAT 파일은 상기 RVR 파일의 순차적인 구분단위의 순서를 나타내는 일련번호와, 해당 데이터가 저장되는 기록위치가 포함되어 생성됨을 전술한 바와 같다.
즉, 도시된 바와 같이, 누적된 데이터 량이 기록 위치가 된다.
한편, 도 7 및 도 8은 본 발명에 의한 저장 데이터가 매트릭스인 경우, 데이터 파일로부터 RAT 파일 및 RVR 파일을 생성하는 일 예가 도시되어 있다.
도 7에 도시한 바와 같이, 저장 데이터가 매트릭스 형태인 경우, 별도의 구분단위 및 구분인자는 없다. 즉, 매트릭스의 행과 열이 각각 구분 단위 및 구분인자가 된다.
이때, 매트릭스 형태의 문서는 정형화된 문서를 말하는 것으로, 매틀릭스 형태의 문서 및 정형문서는 동일한 의미로 사용된다.
다만, 이 경우 각 매트릭스에 저장되는 데이터의 형태에 따라 저장형태가 [string], [integer] 또는 [float] 등으로 구분된다.
상기 도 7에는 각각 [string], [integer] 및 [float]의 저장형태를 갖는 임의의 RVR 파일의 예가 도시되어 있다.
여기서, string이라 함은 매트릭스 한의 셀에 저장되는 데이터가 문자, 숫자(소수점 포함) 구분없이 자유롭게 저장될 수 있는 저장형태를 말한다.
그리고 integer이라 함은 매트릭스 한의 셀에 저장되는 데이터가 정수형 변수인 저장형태를 말한다.
또한, float이라 함은 매트릭스 한의 셀에 저장되는 데이터가 소수점을 포함하는 변수인 저장형태를 말한다.
한편, 도 8에 도시된 바와 같이, 상기 생성된 RVR 파일로부터 RAT 파일이 생성된다. 상기 RAT 파일은 매트릭스 형태의 상기 RVR 파일의 행 번호를 나타내는 일련번호와, 해당 데이터가 저장되는 기록위치가 포함되어 생성됨을 전술한 바와 같다.
도 9는 본 발명의 구체적인 실시예에 의한 RVR 파일 및 RAT 파일의 기록 및 검색 기능을 수행하는 프로그램과 소스코드의 일 예가 도시되어 있다.
여기서 RVR-RAT의 read/write을 수행하는 프로그램은 IRVR (Indexing RVR)이다. 그리고 도 5 및 도 7의 6가지 다른 데이터(구분단위 또는 데이터 형태에 따른)에 대한 레코드들의 실제 예문들을 보여준다.
각각의 레코드의 종류에 따라 그리고 컴퓨터 [O/S] 종류에 따라 약간씩 다르게 bytes값 들이 계산이 된다. 특히 C/C++ 컴퓨터 언어에서는 fwrite()기능에 의하여 파일을 binary파일로 만들 수 있는데 입력파일 각각의 레코드들의 크기를 bytes으로 돌려준다(return). 따라서 대규모 데이터를 RVR(rack of virtual RAM)화 하는 과정에서 모든 데이터 레코드를 fwrite()기능으로부터 받은 bytes값들과 위의 수학식 1, 2 및 3을 사용하여 모든 레코드 주소(address)를 RAT파일로 출력 저장한다.
FAT-Sector(도 2참조)들의 정보는 고급 시스템 프로그램을 하는 전문가들을 제외한 일반 사용자(user)들은 접근이 불가능하다. 따라서 FAT-Sector사이에 컨트롤러(controller)가 중간 가교역할을 하는데 같은 방식으로 Hard Disk에 저장된 파일의 레코드와 레코드 주소인 RVR-RAT는 대부분의 상위 컴퓨터언어(Perl, Python, Fortran, C/C++, JAVA, 등)를 사용하는 일반 사용자(user)들이 FAT-Sector의 컨트롤러와 같은 기능을 하도록 만들어 쓸 수 있다.
이하에서는 본 발명에 따른 디스크 상의 데이터 기록 방법 및 데이터 검색 방법의 작용을 RVR/RAT 파일의 생성 방법 및 이를 이용한 데이터 검색 방법에 따라 상세하게 설명하기로 한다.
도 10은 본 발명의 구체적인 실시예에 의한 RVR 파일 및 RAT 파일의 생성 방법을 도시한 흐름도이고, 도 11은 본 발명의 구체적인 실시예에 의한 데이터 검색 방법을 도시한 흐름도이다.
이하에서는 저장데이터가 일반 문서 데이터인 경우를 예로 들어 설명한다.
먼저, RAT 파일 및 RVR 파일의 생성 방법을 살펴보면, 도 10에 도시된 바와 같이, 데이터를 저장하고자 하는 경우, 사용자로부터 구분 단위를 입력받는다(S110).
이후, DATA 파일로부터 전술한 바와 같이, 상기 구분단위에 해당하는 구분 인자를 포함시켜 RVR 파일을 생성한다(S120). 물론, 상기 구분인자는 실질적으로 검색에 있어 어떤 기능을 포함하는 것이 아니고 RAT 파일의 생성을 용이하게 하는 것이므로 RVR 파일에 포함되지 않을 수도 있다.
그리고 상기 RVR 파일로부터 RAT 파일을 생성한다(S130). 상기 RAT 파일은 RVR 파일을 상기 구분인자로 구분하고 일련번호를 넘버링하여 각 일련번호에 해당하는 데이터의 기록위치를 기록함에 의해 생성된다.
물론, 상기 구분인자는 실질적으로 검색에 있어 어떤 기능을 포함하는 것이 아니고 RAT 파일의 생성을 용이하게 하는 것이므로 RVR 파일에 포함되지 않을 수도 있다. 이 경우 상기 데이터를 상기 구분단위로 나누어 가면서 일련 넘버를 넘버링하고 이와 동시에 해당 데이터의 기록위치를 저장함에 따라 RAT 파일을 생성한다.
그리고, 상기 생성된 RVR 파일 및 RAT 파일을 저장한다(S140).
이하에서는 상기 RAT 파일을 이용하여 데이터를 검색하는 방법에 대하여 살펴보기로 한다.
본 발명에 의한 RAT 파일을 이용하여 데이터를 검색하기 위해서는, 도 11에 도시된 바와 같이, 먼저 사용자로부터 검색정보를 입력받는다(S210).
상기 검색정보란, 일반데이터인 경우 구분단위의 순번을 의미하고, 매트릭스 형태의 데이터인 경우, 매트릭스의 행 번호를 말한다.
즉, 구분 단위가 [paragraph]인 경우, N 번째 문단을 검색하고자 하는 경우 상기 검색정보는 N 이고, 상기 구분 단위가 [line]인 경우, N' 번째 line을 검색하고자 하는 경우 상기 검색정보는 N' 이며, 구분 단위가 [word]인 경우, N" 번째 단어를 검색하고자 하는 경우 상기 검색정보는 N"가 된다.
이후, 저장된 RAT 파일을 검색하여 상기 검색정보에 대응하는 기록위치를 독출한다(S220).
다음으로 상기 기록위치로부터 클러스터 넘버를 산출하여 FAT으로부터 데이터의 물리적 저장위치(cluster location)를 산출한다(S230).
이때, 상기 클러스터 넘버를 산출하기 위하여 상기 수학식 1 내지 3을 활용함은 전술한 바와 같다.
이후, 하드 디스크의 상기 물리적 데이터 저장위치를 독출하고, 그 결과를 출력한다(S250).
다음으로, 일반적 하드디스크에서 사용되는 순차적인 데이터 검색과 본 발명에 의한 데이터 검색의 속도 차이를 비교한다.
도 12 및 도 13에는 본 발명의 구체적인 실시예에 의한 데이터 검색속도와 일반적인 하드 디스크의 순차적인 데이터 검색속도를 비교한 예시도가 도시되어 있다.
이때, 검색 데이터는 [X:20,000]*[Y:1,000,000]의 차원을 가진 192 Giga Bytes의 단일 대규모 데이터를 사용하였다.
여기서 X은 소수점을 포함하는 변수 20,000개가 있음을 의미한다. 그리고 Y는 [X:20000]이 백만 개가 있음을 의미한다. 본 데이터에서 Y값의 10, 100, 1,000, 10,000, 100,000, 그리고 1,000,000 번째의 기록 값들의 순차적검색(sequential access)시간과 RVR-RAT을 사용하여 무작위검색(random access) 시간을 비교하였다.
본 테스트는 fedora 8.0 Linux환경에서 64bit Quadra Core Zeon CPU를 가지고 수행 하였고, 테스트는 도 9에서 설명한 [IRVR]로 계산을 하였다.
데이터의 기록위치가 앞쪽에 위치한 데이터는 액세스 시간이 비교적 짧았으나, 백만 번째 이상의 데이터에 대하여는 그 액세스 속도가 기하 급수적으로 늘어나는 것을 알 수 있다(도 12 참조).
이에 반에 본 발명에 의한 데이터 액세스 속도는 그 기록 위치에 상관없이 거의 일정한 시간을 유지함을 알 수 있고, 그 시간은 0.1sec 내외로 매우 양호 함을 알 수 있다.
이는, 본 발명에 의한 방법이 비록 RVR 파일 및 RAT 파일을 생성하는데, 시간이 소요되지만, 일단 RVR 파일 및 RAT 파일이 생성된 이후에는 데이터의 검색이 매우 손쉬움을 알 수 있다.
이하에서는 위에서 설명한 파일 검색방법을 이용하여 데이터 베이스를 관리하는 관리시스템[이하 'RVR DBMS(Rack of Virtual RAM Data Base Managing System) 이라 한다]에 대하여 설명하기로 한다.
도 14는 본 발명에 의한 RVR DBMS의 시스템 구성도이고, 도 15는 본 발명에 의한 RVR DBMS에 의해 비정형 데이터를 구분하는 구분단위들을 가시적으로 도시한 예시도이며, 도 16은 본 발명에 의한 RVR DBMS에 의해 정형 데이터를 구분하는 구분단위들을 가시적으로 도시한 예시도이고, 도 17은 본 발명에 의한 RVR DBMS에 의해 데이터를 추가, 삭제, 업데이트 및 검색하는 방법을 가시적으로 도시한 예시도이다.
본 발명에 의한 RVR DBMS는 데이터 파일을 데이터 레코드들의 집합체(RVR 파일)와 상기 데이터 레코드들의 집합체의 하드디스크 고집적 인덱스들의 집합체(RAT 파일)로 구성하여 상기 RVR 파일과 RAT 파일을 이용하여 표준 데이터 베이스 관리 시스템과 같은 데이터 관리 및 분석을 수행한다.
이를 위해 도 14에 도시된 바와 같이 본 발명에 의한 RVR DBMS는 하나 이상의 데이터 베이스(DB)와 RVR 컨트롤러 그리고 상기 데이터 베이스에 저장된 데이터를 이용하여 분석을 수행하기 위한 분석모듈을 포함하여 구성된다.
이때, 상기 데이터 베이스에는 상기 RVR DBMS로 입력되는 데이터 파일이 저장되고, 상기 데이터 파일을 전술한 바와 같이 가공하여 생산되는 RVR File 및 RAT File이 저장된다. 상기 RVR File 및 RAT File의 생성 및 저장은 발명의 실시를 위한 최선의 형태에서 설명한 바와 같다.
따라서, 상기 RVR 컨트롤러는 상기 데이터 파일을 이용하여 RVR File 및 RAT File을 생성 하여 저장하고, 저장된 RVR File 및 RAT File을 이용하여 원하는 분석작업을 수행하도록 한다.
한편, 상기 분석작업을 수행하기 위하여 상기 분석모듈은 PLL(programming langauge library) 및 SLL(statistics langauge library)을 포함하여 구성된다.
여기서 PLL은 다양한 컴퓨터 언어(Java, Perl, Python, C/C++ 등)로 만들어진 분석모듈이고, SLL은 다양한 통계언어(R, SAS, SPSS 등)로 만들어진 분석모듈이다. 그리고 PLL 및 SLL의 역할은 RVR DB의 포인터를 pipe을 사용하여 바로 입력받아서 분석 계산을 수행할 수 있도록 만든 분석모듈 libary이다. 따라서 분석시스템에서 I/O를 위한 시간을 최소화 하기 위한 분석용 libary이다.
다음으로 상기 RVR DBMS에서의 데이터 인식 및 구분 방법을 살펴보면, RVR DBMS에서 정의된 각 데이터 레코드에는 HDD의 하드 디스크 고집적 인덱스가 항상 병행된다. 위의 HDD주소는 C/C++에서 사용하는 방식의 pointer와 물리적 주소는 같으나, 물리적 주소를 인식하고 사용하는 방법은 다르다. 즉, C/C++의 pointer는 데이터 레코드와 상관없이 주어진 부위에 대한 상대적 절대 주소를 나타내는 반면, RVR DBMS에서의 HDD절대 주소(즉 pointer)는 주어진 파일의 첫 번째 데이터 레코드에서 시작하고 그것에 대한 상대 주소이고 시작과 끝의 주소에는 "상대 레코드 인덱스(RRN: relative record number)"가 주어 진다.
따라서 RVR DBMS에서의 pointer는 정의된 데이터 레코드들의 집합에서 각 데이터 레코드들의 하드 디스크 고집적 인덱스 주소들 만을 의미한다.
또한 데이터 레코드의 크기는 single character(=1byte)에서 the whole human genome(=3GB bytes)까지 혹은 그 이상의 다양한 크기로 존재할 수 있다.
특히, 게놈 염기서열(genome sequence)자체에 대한 모든 개별 염기들에 대한 주소의 경우는 일정크기(ex. 12 oligonucleotide)의 DNA조각을 1개 염기씩 이동하면서 전체 염색체에 대한 조각을 만들고 이것을 4가지 염기서열인 A, C, G 및 T를 0, 1, 2 및 3등으로 간주하고 4진수로 하여 수치화, 즉 4진수화하여서 hash table을 만들 수 있다. 그리고 숫자가 주어지면 다시 이것을 12개의 염기서열로 자유롭고 빠르게 변형하는 함수를 만들어 사용 가능하다.
위와 같은 경우에는 모든 염기가 위의 방식 또는 유사한 방식으로 일정크기로 레코드화가 되게 되면 12개의 염기서열로 구성된 레코드들에 대한 RVR-RAT를 만든다. 그리고 검색을 위한 퀘리(query) 염기서열도 같은 형식으로 12염기로 구성된 다수의 레코드들을 전체 게놈에서 무작위 접속을 통하여 독출할 수 있다.
상기 염기서열에 대한 실시예는 본 발명의 적용 예를 살핌에 있어 더욱 상세하게 설명하도록 한다.
그리고 데이터 레코드를 인식하고 표현 할 때 필요에 따라 tab(comma, white space, line breaker, 및 symbol '>')등이 사용 될 수 있다. 즉, 사용자의 의도에 따라 다르게 정의 될 수 있다.
이하에서, 상기 RVR DBMS에서 사용되는 다양한 구분단위들에 대하여 다시한번 설명하기로 한다.
상기 구분단위는 위 발명의 실시를 위한 최선의 형태에서 설명한것 이외에 다양하게 확장하여 사용할 수 있는바, 보다 확장된 구분단위들을 다음과 같이 설정할 수 있다.
즉, 도 15 및 13에 도시된 바와 같이, 상기 RVR DBMS의 프로세서들은 비정형(irregular) 데이터와 정형(regular) 데이터에 대하여 [1]pagen, [2]page, [3]fastan, [4]fasta, [5]line, [6]image, [7]audio, [8]video, [9]seq, [10]int, [11]float, [12]string, [13]csv, [14]r, [15]xml, 및 [16]smtx와 같이 다양한 구분단위를 이용하여 데이터를 처리할 수 있다.
여기서, 비정형(irregular type, or non-table type)의 구분단위를 설명하면 다음과 같다.
- pagen: 초록과 같은 paragraph type의 데이터를 data record화 하고 각 라인에 있는 line break를 인식한다,
- page: 초록과 같은 paragraph type의 데이터를 data record화 하지만 레코드의 끝에만 line break가 주어진다,
- fastan: fasta와 같지만 각 데이터 레코드에서 line break를 인식 할 수 있다.
- fasta: DNA/protein 데이터에 대한 fasta포맷(page 포맷처럼 각 레코드의 ID 및 설명 (혹은 주석)등의 내용을 포함한 line을 '>'으로 시작하는 포맷을 위한 프로세서이고 염기서열 및 아미노산 서열에서는 white space를 허용하지 않고 레코드의 끝에만 line break가 주어진다,
- line: 각 라인의 line breaker를 분리자로하여 데이터를 데이터 레코드로 하는 프로세서이다.
- image: multimedia의 개별적 데이터 레코드들을 위한 것으로, 다양한 정지한 영상에 대한 파일 포맷 형태 (gif, jpeg, bmp, pict, pcx 등)들을 데이터 레코드화 하는 프로세서이다.
- video: multimedia의 개별적 데이터 레코드들을 위한 것으로, 움직이는 다양한 파일 포맷 형태(mpeg, avi, asf, rm, wmv 등)을 데이터 레코드화 하는 프로세서이다.
- audio: multimedia의 개별적 데이터 레코드들을 위한 것으로, 사람의 청각에 의해 인지되는 데이터와 같이 다양한 파일 포맷 형태(wav, asf, mp3, ogg 등)을 데이터 레코드화 하는 프로세서이다.
한편, 정형 (regular type, or table type)데이터 에서는 HDD주소가 table line단위로 저장된다. 따라서 각 데이터 레코드의 주소는 각 라인의 주소에다 컬럼의 위치 값과 그 라인에서 위치 값 까지의 크기가 더해지는 형태로 계산된다.
상기 정형데이터의 구분단위는 아래와 같다.
- seq: DNA/protein 다중정렬(multiple alignment)의 각 라인을 data record로 하는 프로세서 이다.
- int: integer로 구성된 정형화된 table 데이터 포맷이다.
- float: double precision으로 구성된 정형화된 table 데이터 포맷이다.
- string: 크기가 서로 같거나 다른 word로 구성된 정형화된 table 데이터 포맷이다.
- csv: Excel파일의 comma로 분리된 값 및 table 데이터 포맷이다.
- r: header와 각 라인의 ID를 가지면서 csv포맷으로 된 파일에 대한 포맷이다.
특히 상기 RVR DBMS에서는 string, csv 및 r은 데이터 레코드들의 크기는 같거나 다르기 때문에 이러한 프로세서들(string, csv 및 r)은 double indexing schema를 사용한다. 즉, 각 라인에 대한 맵과 각 레코드들의 크기에 대한 맵을 저장한다. 그러나 int및 float은 데이터 레코드들의 크기가 동일하기 때문에 single 맵으로 모든 레코드들에 대한 무작위 접속이 가능하다.
xml: 오브젝트 형태의 구조화된 데이터를 위한 포맷에 사용함.
smtx : N*N 매트릭스의 축소형을 의미한다. 예를 들면, N*N 매트릭스에서 각 라인의 정보가 없는 부위 [즉, NULL 부분]를 모두 제거한 후 데이터 레코드의 개수를 표시하고 개수만큼 레코드 및 서브-레코드들을 나열하면 매트릭스의 크기를 최소화할 수 있다. 프로세서는 이러한 데이터를 N*N처럼 사용 가능하다.
다음으로는 비정형 데이터 및 정형 데이터에서의 인덱스를 살펴보기로 한다.
상기 RVR DBMS에서 사용하는 인덱스 (주소화)는 밀집 인덱스(dense index)를 사용한다. 즉, 데이터 레코드 하나에 항상 데이터 주소가 존재하는 방식과 데이터 레코드에 대한 키(key or ID)을 위한 해시(hashing table) 테이블을 함께 사용한다.
상기 RVR DBMS에서는 정형 데이터 레코드는 모든 서브 데이터 레코드들까지 dense index를 수행하고 비정형 데이터에 대해서는 데이터 레코드는 dense index 그리고 서브-레코드들에 대해서는 sparse index방법을 사용한다.
한편, 상기 RVR DBMS의 데이터 추가, 삭제, 삽입 및 보정에 대하여 도 17를 참조하여 설명하기로 한다.
상기 RVR DBMS의 경우는 데이터 레코드의 크기가 없고 단지 그곳의 주소만이 존재하기 때문에, addition의 경우 항상 전체 데이터 레코드의 끝에다 추가(addition)를 하고 deletion의 경우는 주소의 정보에 deletion이 되었다고 표시를 한다.
또한 insertion은 addition과 같은 의미로 사용한다. 즉, 데이터 레코드가 어느 위치에 있던지 탐색속도는 변함이 없기 때문이다.
그리고 update는 전체의 deletion, addition 및 순서 재조정(ex., insertion과 같이 특정 순서를 유지 해야 하는 경우)을 통한 데이터 레코드 삭제 및 Disk상의 데이터 레코드 주소들의 재조정 등의 작업을 위해 수행한다.
이하에서는 본 발명에 의한 RVR DBMS에 의해 특정 데이터(게놈 염기서열 및 대규모 초록 데이터)에 대하여 RVR 및 RAT 파일을 생성하여 데이터를 검색/분석하는 실시예에 대하여 구체적으로 살펴보기로 한다.
먼저, 도 18 및 도 19를 참조하여 게놈 염기서열 데이터를 처리하는 방법을 살피고, 도 20 및 도 21을 참조하여 대규모 초록 데이터를 처리하는 방법을 살피도록 한다.
도 18은 본 발명에 의한 RVR DBMS에 의해 염기서열 데이터에 대하여 RVR 파일 및 RAT 파일을 생성하는 방법을 도시한 흐름도이고, 도 19는 본 발명에 의한 RVR DBMS에 의해 염기서열 데이터에 대하여 RVR 파일 및 RAT 파일을 생성하는 방법을 도시한 예시도이다.
도 18에 도시된 바와 같이, 입력된 데이터가 게놈 염기서열 데이터인 경우 먼저, 게놈 염기서열을 일정크기의 염기단위로 조각화 한다(S310). 이때, 상기 일정크기는 다양하게 설정될 수 있으나, 도 19에 도시된 바와 같이 12개의 염기로 설정된 것을 예로 들어 설명한다.
즉, 도 19에 도시된 바와 같이, 전체 염기서열에 대하여 최초 첫 염기부터 12개의 염기를 구분하고, 다음으로 두 번째 염기부터 12개의 염기를 구분하며, 순차적으로 (전체 염기-12)번째의 염기로부터 마지막 12개의 염기를 구분할 때까지 구분작업을 지속한다.
다음으로, 구분된 7자리의 염기서열에 각각 고유번호를 할당한다(S320). 이때, 상기 구분된 염기서열의 각 염기는 A, G, T 또는 C 중 어느 하나 이므로 4진수를 이용하여 고유번호를 할당하면 효율적이다.
그리고 상기 고유번호가 할당된 각 염기서열이 포함된 개수 및 각각의 위치를 도 19에 도시한 바와 같이 인덱스화 한다(S330).
다음으로, 상기 제 330 단계에 의해 인덱스화된 데이터로부터 전술한 smtx 형태의 RVR 파일 및 RAT 파일을 생성하여 저장한다.
여기서, RVR 파일은 전체 염기서열 데이터가 해당하고, RAT 파일에는 7개 염기 단위로 구분된 염기데이터 및 이에 부가된 일련번호 그리고 이의 저장위치가 저장된다.
한편, 상기 RVR 파일 및 RAT 파일을 이용하여, 데이터를 검색 분석하는 경우, 사용자는 찾고자하는 염기단위(12개로구분된)를 Query로 입력하면, 본 발명에 의한 RVR DBMS는 입력된 염기단위를 RAT 파일에서 검색하여 상기 염기단위가 포함된 데이터 위치를 검색하고, 상기 위치에 해당하는 데이터를 사용자에게 알려준다. 물론, 검색 이외에 다른 분석 명령이 있는 경우 위와 같은 방법으로 검색된 결과를 이용하여 분석 작업을 수행하고 그 결과를 사용자에게 출력한다.
다음으로, 본 발명에 의한 RVR DBMS에 의해 대규모 초록 데이터를 마이닝 하는 방법에 대하여 살펴보도록 한다.
도 20은 본 발명에 의한 RVR DBMS에 의해 대규모 초록 데이터에 대하여 RVR 파일 및 RAT 파일을 생성하는 방법을 도시한 흐름도이고, 도 21은 본 발명에 의한 RVR DBMS에 의해 대규모 초록 데이터에 대하여 RVR 파일 및 RAT 파일을 생성하는 방법을 도시한 예시도이다.
여기서, 대규모 초록 데이터라 함은 도 21에 도시된 바와 같이, 다수개의 초록데이터가 모여 대규모 데이터를 구성한 데이터를 말한다.
상기 입력 데이터가 대규모 초록 데이터인 경우, 도 20에 도시된 바와 같이, 상기 초록 데이터를 각각의 초록데이터 별로 일련번호를 부여한다(S410).
그리고, 상기 초록 데이터에 포함된 단어들에 대하여 상기 단어가 포함된 데이터의 일련번호(RRN)를 산출한다(S420).
다음으로, 상기 각 단어과 상기 단어들에 대한 일련번호 그리고 이들의 개수를 해시(hash) 테이블화 한다(S430).
이때, 상기 제410단계 내지 제430단계는 각각 별개로 수행된다기 보다 상기 초록데이터를 처음부터 끝까지 써치하면서, 최초로 나오는 단어들에 대하여 일련번호를 산출하여 저장하고, 중복된 단어들에 대하여는 기존 데이터에 개수 및 일련번호를 추가하면서 생성한다.
이후, 상기 제430단계에 의해 테이블화 된 데이터로부터 smtx 형태의 RVR 파일 및 RAT 파일을 생상한다(S440).
여기서, 상기 RVR 파일은 입력된 대규모 초록 데이터를 일련번호로 구분한(도 21에서 abstract 1, abstract 2 ...) 데이터에 해당하고, RAT 파일에는 각각의 단어 및 이들에 대한 일련번호 그리고 이들의 저장 개수가 저장된다.
한편, 상기 RVR 파일 및 RAT 파일을 이용하여, 데이터를 검색 분석하는 방법은 전술한 염기서열 데이터와 동일한 원리로 수행되며, 다만 이 경우, 단어를 Query로 입력받아 수행하게 된다.
본 발명의 권리는 위에서 설명된 실시예에 한정되지 않고 청구범위에 기재된 바에 의해 정의되며, 본 발명의 분야에서 통상의 지식을 가진 자가 청구범위에 기재된 권리범위 내에서 다양한 변형과 개작을 할 수 있다는 것은 자명하다.
위에서는 본 발명에 의한 RVR DBMS가 HDD에 사용되는 것을 예로들어 설명하였으나, 본 발명은 HDD 대용으로 사용되는 다양한 저장매체에 사용될 수 있다.
예를들어 HDD를 대체하여 플래시 메모리를 이용한 SSD(Solid State Drive, Solid State Disk)나 DRAM(Dynamic Random Access Memory)에도 본 발명은 적용될 수 있다. 이 경우 RVR 파일 및 RAT 파일의 개념은 위에서 설명한 바와 동일하고, 다만 HDD의 대용으로 SSD 및 DRAM이 해석되어야 한다.
본 발명은 검색을 용이하도록 하는 파일을 생성하여 저장하는 방법 및 이를 이용한 데이터 검색 방법에 관한 것이다.
최근 1,000명의 인간 게놈 서열을 해독하는 작업이 미국 NIH (http://www.1000genomes.org/)를 중심으로 전개되고 있다. 전체 데이량만 3 Tera Bytes이고 이미 표준 DBMS로 처리 할 수 있는 선을 넘었다.
또한 한국의 경우에도 2007년 질병관리본부 전장유전체분석사업(KARE-I 프로젝트)을 통하여 단일 유전체 데이터의 크기는 약 500 Giga Bytes이 생성되었고, 2008년 KARE-II에서 유사한 데이터가 2 Tera Bytes가 더 생산된다. 또한 이와 관련된 임상역학기능 정보와 연계한 Database생성은 표준 DBMS 능력을 초과한지 이미 오래되었다.
따라서, 이러한 대용량화되는 최신 연구 데이터의 저장 및 검색에 본 발명이 적용될 경우 경제성 및 연구 수행 속도에 있어 큰 효과를 나타낼 수 있다.
한 예로 이론적으로 100 K bytes x 100 K bytes 데이터 레코드들의 유사성(혹은 상동성) 메트릭스를 생성하고 이 메트릭스를 사용하여 데이터를 완전 군집화 (exhaustive clustering)을 수행하려면 정상적으로 위의 100 K bytes x 100 K bytes 메트릭스를 DRAM에 올려 놓아야 하는데 위의 경우 C/C++에서 두배수 정밀한 정수형 변수 (double)를 사용하면 8 Giga Bytes (TB)의 DRAM이 필요하다.
따라서 이러한 대규모 군집화연구에 하드디스크를 사용하는 RVR-RAT방식은 절대적으로 필요하다.
본 발명에 의한 RVR DBMS는 다양한 용도의 DBMS로 사용 가능하지만 현재 시점의 버전은 (1)과학 기술용 대규모 bulk데이터 분석 및 관리를 위한 방법으로 가장 유용하게 사용 가능하다. 외냐 하면 약간의 추가 포맷(최소한의 포맷작업)만으로 DBMS와 데이터 프로세스 및 분석 모듈과의 직접 연결이 가능하다. 또한 (2) Web2,0와 같은 개인들의 pc를 서버로 사용하는 경우처럼 여러 개의 파일들을 빠르게 DBMS를 수행하는 작업에 유용하다. (3) Cloud computing은 수많은 개별 사용자가 internet을 사용하여 한 곳에 병렬로 집중된 분석/계산 장비를 사용하는 방식의 서비스를 의미한다. 따라서 다수의 사용자가 빠른 계산을 수행 할 수 있다. RVR DBMS는 Cloud computing에서 최상의 응용을 할 수 있다. 외냐 하면 모든 데이터에 대한 고집적 인덱스를 수행하면 빠르게 데이터를 분산 할 수 있는데 이렇게 분산된 데이터들을 Cloud computing기술의 최대 장점인 수많은 PC-cluster들을 사용하여 빠르게 병렬 분산 계산을 수행 할 수 있다.

Claims (26)

  1. 비정형 단일 데이터 파일을 검색하기 위한 방법에 있어서,
    (A1) 데이터의 구분 단위를 입력받는 단계와;
    (A2) 상기 입력된 구분단위로 상기 비정형 단일 데이터 파일을 구분하여 RVR 파일을 생성하는 단계와;
    (A3) 상기 RVR 파일의 구분 단위별 기록위치를 검출하여 RAT 파일을 생성하는 단계; 그리고
    (A4) 상기 RVR 파일 및 RAT 파일을 저장하는 단계를 포함하여 수행됨을 특징으로 하는 데이터 검색을 위한 파일 생성 방법.
  2. 제 1 항에 있어서,
    상기 데이터는 비정형 데이터이고,
    상기 구분 단위는 [page], [paragraph], [line] 또는 [word] 중 어느 하나임을 특징으로 하는 데이터 검색을 위한 파일 생성 방법.
  3. 정형 단일 데이터 파일을 검색하기 위한 방법에 있어서,
    (B1) 정형 단일 데이터의 행과 열을 구분하여 RVR 파일을 생성하는 단계와;
    (B2) 상기 RVR 파일의 행 또는 열 별 기록위치를 검출하여 RAT 파일을 생성하는 단계; 그리고
    (B3) 상기 RVR 파일 및 RAT 파일을 저장하는 단계를 포함하여 수행됨을 특징으로 하는 데이터 검색을 위한 파일 생성 방법.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 기록 위치는,
    상기 단일 데이터 내에서 상기 해당 데이터가 기록된 위치까지의 누적된 데이터 크기임을 특징으로 하는 데이터 검색을 위한 파일 생성 방법.
  5. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 기록위치는,
    상기 해당 부분의 데이터가 기록된 하드 디스크 클러스터 넘버임을 특징으로 하는 데이터 검색을 위한 파일 생성 방법.
  6. 단일 데이터 파일을 검색하는 방법에 있어서,
    (C1) 검색정보를 입력받는 단계와;
    (C2) RAT 파일로부터 상기 검색정보에 해당하는 상기 단일 데이터 내의 기록위치를 검출하는 단계와;
    (C3) 상기 기록위치로부터 상기 검색정보에 해당하는 데이터의 저장매체 내의 물리적 저장위치를 검출하는 단계; 그리고
    (C4) 상기 데이터의 물리적 위치의 데이터를 검색하여 결과를 출력하는 단계를 포함하여 수행됨을 특징으로 하는 데이터 파일의 검색방법.
  7. 제 6 항에 있어서,
    상기 단일 데이터가 비정형 데이터인 경우,
    상기 검색정보는 구분단위의 순번을 의미함을 특징으로 하는 데이터 파일의 검색방법.
  8. 제 6 항에 있어서,
    상기 단일 데이터가 정형 데이터인 경우,
    상기 검색정보는 정형 데이터 중 해당 데이터의 행 또는 열 번호임을 특징으로 하는 데이터 파일의 검색방법.
  9. 제 6 항 내지 제 8 항 중 어느 한 항에 있어서,
    상기 기록 위치는,
    상기 단일 데이터 내에서 상기 해당 데이터가 기록된 위치까지의 누적된 데이터 크기임을 특징으로 하는 데이터 파일의 검색방법.
  10. 제 9 항에 있어서,
    상기 저장위치의 검출은,
    상기 각각의 구분 단위의 데이터 크기를 이용하여 상기 기록위치로부터 클러스터 위치를 산출하고, 상기 클러스터 위치의 물리적 저장위치를 FAT으로부터 독출하여 검출함을 특징으로 하는 데이터 파일의 검색방법.
  11. 제 6 항 내지 제 8 항 중 어느 한 항에 있어서,
    상기 기록위치는,
    상기 해당 부분의 데이터가 기록된 하드 디스크 클러스터 넘버임을 특징으로 하는 데이터 파일의 검색방법.
  12. 입력된 비정형의 단일 데이터 파일을 설정된 구분단위로 구분하여 생성된 RVR 파일 및 상기 RVR 파일의 구분 단위별 기록위치를 검출하여 생성된 RAT 파일이 저장되는 데이터 베이스와;
    입력된 검색정보에 대하여 상기 RAT 파일로부터 상기 검색정보의 기록위치를 검출하여 상기 기록위치로부터 상기 검색정보에 해당하는 데이터의 저장매체 내의 물리적 저장위치를 검출하고, 상기 물리적 위치의 데이터를 검색하여 독출하는 RVR 컨트롤러; 그리고
    상기 RVR 컨트롤러에 의해 독출된 결과물을 분석하는 분석모듈을 포함하여 구성됨을 특징으로 하는 데이터 파일 검색을 위한 데이터 베이스 관리 시스템.
  13. 제 12 항에 있어서,
    상기 구분 단위는,
    [pagen], [page], [fastan], [fasta], [line], [image], [audio] 또는 [video] 중 어느 하나임을 특징으로 하는 데이터 파일 검색을 위한 데이터 베이스 관리 시스템.
  14. 제 13 항에 있어서,
    상기 검색정보는 구분단위의 순번을 의미함을 특징으로 하는 데이터 파일 검색을 위한 데이터 베이스 관리 시스템.
  15. 제 12 항 내지 제 14 항 중 어느 한 항에 있어서,
    상기 기록 위치는,
    상기 단일 데이터 내에서 상기 해당 데이터가 기록된 위치까지의 누적된 데이터 크기임을 특징으로 하는 데이터 파일 검색을 위한 데이터 베이스 관리 시스템.
  16. 제 12 항 내지 제 14 항 중 어느 한 항에 있어서,
    상기 기록위치는,
    상기 해당 부분의 데이터가 기록된 하드 디스크 클러스터 넘버임을 특징으로 하는 데이터 파일 검색을 위한 데이터 베이스 관리 시스템.
  17. 제 12 항 내지 제 14 항 중 어느 한 항에 있어서,
    상기 저장매체는,
    반도체 형태의 저장매체임을 특징으로 하는 데이터 파일 검색을 위한 데이터 베이스 관리 시스템.
  18. 입력된 단일 데이터 파일을 행과 열에 의해 정형화된 구분단위로 구분되어 생성된 RVR 파일 및 상기 RVR 파일의 구분단위 열 별 기록위치를 검출하여 생성된 RAT 파일이 저장되는 데이터 베이스와;
    입력된 검색정보에 대하여 상기 RAT 파일로부터 상기 검색정보의 기록위치를 검출하여 상기 기록위치로부터 상기 검색정보에 해당하는 데이터의 저장매체 내의 물리적 저장위치를 검출하고, 상기 물리적 위치의 데이터를 검색하여 독출하는 RVR 컨트롤러; 그리고
    상기 RVR 컨트롤러에 의해 독출된 결과물을 분석하는 분석모듈을 포함하여 구성됨을 특징으로 하는 데이터 파일 검색을 위한 데이터 베이스 관리 시스템.
  19. 제 18 항에 있어서,
    상기 정형 데이터의 구분단위는,
    [seq], [int], [float], [string], [csv], [r], [xml] 또는 [smtx] 중 어느 하나임을 특징으로 하는 데이터 파일 검색을 위한 데이터 베이스 관리 시스템.
  20. 제 19 항에 있어서,
    상기 검색정보는,
    상기 정형 데이터 중 해당 데이터의 행 또는 열 번호임을 특징으로 하는 데이터 파일 검색을 위한 데이터 베이스 관리 시스템.
  21. 제 18 항 내지 제 20 항 중 어느 한 항에 있어서,
    상기 기록 위치는,
    상기 단일 데이터 내에서 상기 해당 데이터가 기록된 위치까지의 누적된 데이터 크기임을 특징으로 하는 데이터 파일 검색을 위한 데이터 베이스 관리 시스템.
  22. 제 21 항에 있어서,
    상기 저장위치의 검출은,
    상기 각각의 구분 단위의 데이터 크기를 이용하여 상기 기록위치로부터 클러스터 위치를 산출하고, 상기 클러스터 위치의 물리적 저장위치를 FAT으로부터 독출하여 검출함을 특징으로 하는 데이터 파일 검색을 위한 데이터 베이스 관리 시스템.
  23. 제 18 항 내지 제 20 항 중 어느 한 항에 있어서,
    상기 기록위치는,
    상기 해당 부분의 데이터가 기록된 하드 디스크 클러스터 넘버임을 특징으로 하는 데이터 파일 검색을 위한 데이터 베이스 관리 시스템.
  24. (D1) 게놈 염기서열을 일정크기의 염기단위로 조각화 하는 단계와;
    (D2) 상기 조작화된 염기단위에 고유번호를 할당하는 단계와;
    (D3) 상기 염기단위에 대한 저장위치를 저장하는 단계; 그리고
    (D4) RAT 파일을 생성하는 단계를 포함하여 수행됨을 특징으로 하는 데이터 파일의 검색방법.
  25. 제 24 항에 있어서,
    상기 (D2) 단계의 고유번호는,
    상기 염기단위를 구성하는 염기에 따라 구분된 4진수임을 특징으로 하는 데이터 파일의 검색방법.
  26. (E1) 입력 데이터에 구분단위에 따라 일련번호를 부여하는 단계와;
    (E2) 상기 입력 데이터에 포함된 단어가 포함된 데이터의 일련번호를 산출하는 단계와;
    (E3) 상기 단어 및 상기 일련번호를 포함하여 해시 테이블을 생성하는 단계; 그리고
    (E4) 상기 해시 테이블을 이용하여 RAT 파일을 생성하는 단계를 포함하여 수행됨을 특징으로 하는 데이터 파일의 검색방법.
PCT/KR2009/003790 2008-07-11 2009-07-10 데이터 검색을 위한 파일 생성 방법 및 데이터 파일의 검색방법 그리고 데이터 파일 검색을 위한 데이터베이스 관리 시스템 WO2010005261A2 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US13/003,649 US8423513B2 (en) 2008-07-11 2009-07-10 File generation and search methods for data search, and database management system for data file search
US13/845,999 US20130275462A1 (en) 2008-07-11 2013-03-18 File creating method for searching of data, searching method of data file and managing system for searching of data file

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2008-0067778 2008-07-11
KR1020080067778A KR100880531B1 (ko) 2008-07-11 2008-07-11 단일 데이터 검색을 위한 파일 생성 방법 및 단일 데이터파일의 검색방법 그리고 단일 파일 검색을 위한 rat파일이 저장된 기록매체

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/845,999 Division US20130275462A1 (en) 2008-07-11 2013-03-18 File creating method for searching of data, searching method of data file and managing system for searching of data file

Publications (2)

Publication Number Publication Date
WO2010005261A2 true WO2010005261A2 (ko) 2010-01-14
WO2010005261A3 WO2010005261A3 (ko) 2010-04-29

Family

ID=40483165

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2009/003790 WO2010005261A2 (ko) 2008-07-11 2009-07-10 데이터 검색을 위한 파일 생성 방법 및 데이터 파일의 검색방법 그리고 데이터 파일 검색을 위한 데이터베이스 관리 시스템

Country Status (3)

Country Link
US (2) US8423513B2 (ko)
KR (1) KR100880531B1 (ko)
WO (1) WO2010005261A2 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9201916B2 (en) * 2012-06-13 2015-12-01 Infosys Limited Method, system, and computer-readable medium for providing a scalable bio-informatics sequence search on cloud
US9087459B2 (en) 2012-11-30 2015-07-21 The Nielsen Company (Us), Llc Methods, apparatus, and articles of manufacture to encode auxilary data into text data and methods, apparatus, and articles of manufacture to obtain encoded data from text data
US9042554B2 (en) * 2012-11-30 2015-05-26 The Nielsen Company (Us), Llc Methods, apparatus, and articles of manufacture to encode auxilary data into text data and methods, apparatus, and articles of manufacture to obtain encoded data from text data
US9990478B2 (en) 2012-11-30 2018-06-05 The Nielsen Company (Us), Llc Methods, apparatus, and articles of manufacture to encode auxiliary data into relational database keys and methods, apparatus, and articles of manufacture to obtain encoded data from relational database keys
KR102020446B1 (ko) 2013-01-10 2019-09-10 삼성전자주식회사 에피텍시얼막 형성 방법 및 이를 수행하기 위한 장치 및 시스템
CN104053015A (zh) * 2013-03-11 2014-09-17 中兴通讯股份有限公司 一种传输媒体数据的方法及虚拟桌面服务器
KR102094934B1 (ko) * 2014-11-19 2020-03-31 한국전자통신연구원 자연어 질의 응답 시스템 및 방법
KR101815529B1 (ko) 2016-07-29 2018-01-30 (주)신테카바이오 휴먼 하플로타이핑 시스템 및 방법
KR102085169B1 (ko) 2016-12-15 2020-03-04 (주)신테카바이오 개인 유전체 맵 기반 맞춤의학 분석 시스템 및 이를 이용한 분석 방법
KR102041497B1 (ko) 2018-12-20 2019-11-27 (주)신테카바이오 개인 유전체 맵 기반 맞춤의학 분석 플랫폼 및 이를 이용한 분석 방법
KR102041504B1 (ko) 2018-12-20 2019-11-27 (주)신테카바이오 환자 계층화를 위한 맞춤의학 분석 플랫폼
KR102078200B1 (ko) 2018-12-20 2020-02-17 (주)신테카바이오 개인 유전체 맵 기반 맞춤의학 분석 플랫폼 및 이를 이용한 분석 방법
CN112459329B (zh) * 2020-11-13 2022-05-13 重庆中科建设(集团)有限公司 一种叠合楼板桁架及底筋排布方法
US11797600B2 (en) * 2020-11-18 2023-10-24 Ownbackup Ltd. Time-series analytics for database management systems

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010010528A (ko) * 1999-07-21 2001-02-15 서윤득 디지털 오디오 데이터의 파일명 지정 방법
KR20010094691A (ko) * 2000-04-01 2001-11-01 최진근 인터넷 웹사이트에서 매트릭스 검색창을 이용한 광고방법및 시스템 및 컴퓨터에서 실행시키기 위한 프로그램을기록한 컴퓨터로 읽을수 있는 기록매체
KR20040079470A (ko) * 2003-03-07 2004-09-16 삼성전자주식회사 랜덤 액세스가 가능한 영상 및 음향 기록/재생 장치 및 그제어방법
WO2005101292A2 (fr) * 2004-04-05 2005-10-27 Tdf Procédé de recherche de contenu, notamment d'extraits communs entre deux fichiers informatiques

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5473584A (en) * 1992-01-29 1995-12-05 Matsushita Electric Industrial Co., Ltd. Recording and reproducing apparatus
JP3647885B2 (ja) * 1993-05-07 2005-05-18 日本電信電話株式会社 画像処理装置
US7124302B2 (en) * 1995-02-13 2006-10-17 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US6226710B1 (en) * 1997-11-14 2001-05-01 Utmc Microelectronic Systems Inc. Content addressable memory (CAM) engine
US7289723B2 (en) * 1997-12-12 2007-10-30 Kabushiki Kaisha Toshiba Digital recording system using variable recording rate
JP3597690B2 (ja) * 1998-01-21 2004-12-08 株式会社東芝 デジタル情報記録再生システム
US7197534B2 (en) * 1998-09-01 2007-03-27 Big Fix, Inc. Method and apparatus for inspecting the properties of a computer
US6233666B1 (en) * 1998-09-17 2001-05-15 International Business Machines Corporation Deferred disk drive space allocation for virtual memory pages with management of disk address recording in multipage tables without external process interrupts for table for input/output to memory
US6381656B1 (en) * 1999-03-10 2002-04-30 Applied Microsystems Corporation Method and apparatus for monitoring input/output (“I/O”) performance in I/O processors
EP1435619A3 (en) 2003-01-02 2007-07-18 Samsung Electronics Co., Ltd. Multimedia apparatus with "Slide-Show" and relevant audio output
US7814554B1 (en) * 2003-11-06 2010-10-12 Gary Dean Ragner Dynamic associative storage security for long-term memory storage devices
US20050132161A1 (en) * 2003-12-15 2005-06-16 Nokia Corporation Creation of virtual memory space in a memory
US8589574B1 (en) * 2005-12-29 2013-11-19 Amazon Technologies, Inc. Dynamic application instance discovery and state management within a distributed system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010010528A (ko) * 1999-07-21 2001-02-15 서윤득 디지털 오디오 데이터의 파일명 지정 방법
KR20010094691A (ko) * 2000-04-01 2001-11-01 최진근 인터넷 웹사이트에서 매트릭스 검색창을 이용한 광고방법및 시스템 및 컴퓨터에서 실행시키기 위한 프로그램을기록한 컴퓨터로 읽을수 있는 기록매체
KR20040079470A (ko) * 2003-03-07 2004-09-16 삼성전자주식회사 랜덤 액세스가 가능한 영상 및 음향 기록/재생 장치 및 그제어방법
WO2005101292A2 (fr) * 2004-04-05 2005-10-27 Tdf Procédé de recherche de contenu, notamment d'extraits communs entre deux fichiers informatiques

Also Published As

Publication number Publication date
US8423513B2 (en) 2013-04-16
KR100880531B1 (ko) 2009-01-28
WO2010005261A3 (ko) 2010-04-29
US20110246505A1 (en) 2011-10-06
US20130275462A1 (en) 2013-10-17

Similar Documents

Publication Publication Date Title
WO2010005261A2 (ko) 데이터 검색을 위한 파일 생성 방법 및 데이터 파일의 검색방법 그리고 데이터 파일 검색을 위한 데이터베이스 관리 시스템
US10114908B2 (en) Hybrid table implementation by using buffer pool as permanent in-memory storage for memory-resident data
KR101972645B1 (ko) 클러스터링 저장 방법 및 장치
US11386081B2 (en) System and method for facilitating efficient indexing in a database system
US20210109976A1 (en) System, method and computer program product for protecting derived metadata when updating records within a search engine
WO2010137814A2 (en) Method of providing by-viewpoint patent map and system thereof
WO2017146338A1 (ko) 인덱스정보를 생성하는 데이터베이스의 아카이빙 방법 및 장치, 인덱스정보를 포함하는 아카이빙된 데이터베이스의 검색 방법 및 장치
JP2008250722A (ja) 文書検索システム、文書番号部分列取得装置、および文書検索方法
US20170060890A1 (en) Method for storing data elements in a database
JP2019057082A (ja) データ検索システム、データ検索方法、及びプログラム
WO2016117739A1 (ko) 인-메모리 데이터베이스 기반의 데이터 관리 시스템 및 그 방법
WO2012030049A2 (ko) 동적 임계값이 적용된 유사문서 분류화 장치 및 방법
CN111045994A (zh) 一种基于kv数据库的文件分类检索方法及系统
KR101135126B1 (ko) 메타데이터 기반 색인 및 검색 장치와 그 방법
JP2007323546A (ja) 検索処理方法及び装置
WO2015178554A1 (ko) 압축 방식을 이용한 데이터 소스 관리 장치 및 방법
WO2020050627A1 (ko) 시료 미생물의 동정 및 분류 방법
JP2014130498A (ja) ファセットを提示する装置及び方法
JP2021067962A (ja) 情報処理システム及び情報処理方法
JP3656799B2 (ja) 帳票データ検索装置
JP7428035B2 (ja) データ検索装置、データ検索方法およびプログラム
WO2012008655A1 (ko) 동적 임계값이 적용된 문서 브라우징 장치 및 방법
JPH0752450B2 (ja) 辞書デ−タ検索装置
WO2013042864A1 (ko) 공유 데이터 베이스상에서의 데이터 맵핑 방법 및 시스템
JP3780772B2 (ja) データベースの索引創成装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09794667

Country of ref document: EP

Kind code of ref document: A2

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 13003649

Country of ref document: US

122 Ep: pct application non-entry in european phase

Ref document number: 09794667

Country of ref document: EP

Kind code of ref document: A2