KR20050061557A - 데이터 처리방법 및 데이터 처리 프로그램 - Google Patents

데이터 처리방법 및 데이터 처리 프로그램 Download PDF

Info

Publication number
KR20050061557A
KR20050061557A KR1020057007001A KR20057007001A KR20050061557A KR 20050061557 A KR20050061557 A KR 20050061557A KR 1020057007001 A KR1020057007001 A KR 1020057007001A KR 20057007001 A KR20057007001 A KR 20057007001A KR 20050061557 A KR20050061557 A KR 20050061557A
Authority
KR
South Korea
Prior art keywords
array
value
item
list
pointer
Prior art date
Application number
KR1020057007001A
Other languages
English (en)
Other versions
KR101030250B1 (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 가부시키가이샤 터보 데이터 라보라토리
Publication of KR20050061557A publication Critical patent/KR20050061557A/ko
Application granted granted Critical
Publication of KR101030250B1 publication Critical patent/KR101030250B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/22Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
    • G06F7/24Sorting, i.e. extracting data from one or more carriers, rearranging the data in numerical or other ordered sequence, and rerecording the sorted data on the original carrier or on a different carrier or set of carriers sorting methods in general
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24554Unary operations; Data partitioning operations
    • G06F16/24556Aggregation; Duplicate elimination
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24558Binary matching operations
    • G06F16/2456Join operations

Abstract

배열을 부분집합에 관한 처리시간을 단축한다. 표형식데이터는, 각각이, 항목에 속하는 항목값에 대응한 항목값번호의 순서로 상기 항목값이 저장되어 있는 값 리스트(VL)와, 일의적인 레코드번호의 순서로, 항목값번호를 가리키기 위한 포인터 값이 저장된 포인터 배열(PV)로 이루어지는 정보블록으로 분할되어 있다. 레코드 중, 그 일부가 부분집합으로서 선택된 것에 응답하여, 부분집합의 레코드번호를 수용한 순서부여된 집합배열이 생성되고, 순서부여된 집합 각각의 레코드번호가리키는 위치의, 상기 포인터 배열 중의 포인터 값이, 상기 레코드번호가 배치된 위치에 대응하여, 항목값번호배열 중에 배치되고, 항목값번호배열 중의 값을 참조하여, 위치의 요소를 저장한 제 2 포인터 배열(PV2) 및 값의 요소를 저장한 제 2 값 리스트(VL2)가 생성된다.

Description

데이터 처리방법 및 데이터 처리 프로그램{DATA PROCESSING METHOD AND DATA PROCESSING PROGRAM}
본 발명은, 표형식데이터의 부분집합을 효율적으로 처리하기 위한 방법 및 프로그램에 관한 것이다.
데이터베이스 등 대량인 데이터를, 검색, 집계, 소트하기 위해서, 또는, 이들 데이터를 조인(join), 갱신 등 하기 위해서는 엄청난 시간을 요한다. 이것을 해결하기 위해, 본 발명자는, 표형식의 데이터를 매우 구속하여 검색, 집계 및 소트하기 위한 방법, 및, 표형식의 데이터를 조인하고, 갱신하고, 또는, 트랜잭션 처리하는 방법을 제안하고 있다(예컨대, 국제공개 제WO00/10103호 팜플렛, 일본 특허공개 2000-339390호 공보 및 일본 특허공개 2001-043290호 공보 참조).
이들 문헌에 제시된 일련의 방법은, 전혀 인덱스를 사용하지 않고, 통일적인 처리를 실행할 수 있고, 또한, 부분집합에 대해서도 효율을 떨어뜨리는 일없이 처리를 실행하는 것이 가능하다라는 점에서 혁신적이다.
본 발명자의 고안에 따른 표형식데이터는, 이하에 설명하는 바와 같은 데이터구조를 구비하고 있다. 도 1(a)은, 표형식데이터의 예를 나타내는 도면이다. 이 예에서는, 레코드번호를 저장한 배열(100) 중의 각 레코드번호의 각각에, 「회원명」,「지역」 및 「팬」이라는 항목의 값(항목값)이 대응되어 있다(부호101 참조). 본 발명자의 고안에 따른 데이터구조는, 도 1(a)에 나타내는 바와 같은 표형식데이터를, 도 2(a)~(c)에 나타내는 바와 같은 형식으로 유지하고 있다.
예컨대, 도 2(a)에 나타내는 바와 같이, 항목「회원명」에 관해서, 상기 항목값이 50음순(영문자에서는 알파벳순)으로 소트된 값 리스트(이하, 경우에 따라 「VL」로 칭한다.)(211)와, 각 레코드번호에 대응하여, 상기 레코드번호가 가리키는 값 리스트(211) 중의 요소위치를 나타내는 번호가 저장된, 값 리스트에의 포인터 배열(이하, 경우에 따라서 「PV」로 칭한다)(212)이 설치되어 있다. 이와 같이 소정 항목에 관해서, 포인터 배열 및 값 리스트, 및, 이들에 추가해서 경우에 따라서 부수되는 1이상의 배열을 포함하는 배열군을, 정보블록(부호201 참조)으로 칭한다. 도 2(a)로부터 이해할 수 있는 바와 같이, 포인터 배열은, 표형식데이터의 레코드수와 동일한 수의 요소를 포함한다. 항목「지역」에 관해서도, 정보블록(202)은, PV 및 VL을 포함하고, 마찬가지로, 항목「팬」에 관해서도, 정보블록(203)은, PV 및 VL을 포함한다.
레코드번호「0」에 착안하면, 정보블록(201) 중의 PV의 값은, 「5」이기 때문에, 저장위치가 「5」인 VL 중의 항목값「Greene」가 특정된다. 마찬가지로, 정보블록(202,203)의 PV의 값은, 각각, 「5」 및 「2」이기 때문에, 대응하는 저장위치번호의 항목값「Tokyo」 및 「G-Team」이 특정된다. 이들은, 도 1(a)에 있어서의 레코드번호「1」에 포함되는 각각의 항목값과 일치하는 것을 이해할 수 있다.
이와 같은 데이터구조를 이용하여, 검색, 집계, 소트, 또는, 조인을 함으로써, 현저하게 고속의 처리를 실현하고 있다.
그러나, 상기 데이터구조를 이용한 검색 등의 처리에 있어서, 이하와 같은 문제점이 생길 수 있는 것이 인식되었다.
전체의 레코드수로부터 소수의 부분집합을 처리대상으로 하여, 부분집합 중에서 원하는 레코드를 검색하는 경우이여도, 본 출원인이 고안한 방법에 있어서는, VL과 동일한 사이즈의 배열을 설치하고, 그 배열의 요소로서, 검색되는 값의 범위에 포함되는지의 여부를 나타내는 플래그를 배치한다. 마찬가지로, 검색의 합격 여부판정에도 값 리스트와 동일한 사이즈의 배열이 필요하게 된다.
소트시나 집계시에 있어서도, 값 리스트와 동일한 사이즈의 1이상의 배열을 요한다. 또한, 조인의 처리시에도, 값 리스트와 동일한 사이즈의 각종 배열을 설치할 필요가 있다.
따라서, 현저하게 큰 레코드수로부터, 극히 소수의 부분집합을 처리대상으로 하여 검색, 집계, 소트 및 조인의 처리를 행할 경우이여도, 정보블록 중에 대규모의 값 리스트가 설치되어 있으면, 처리에 필요한 배열을 위해 큰 메모리 영역을 필요로 한다. 또한, 상기 배열 중에 값을 배치하는 처리, 값을 주사하는 처리 등을 요하기 때문에, 레코드 전체를 처리대상으로 한 경우와 비교하여, 처리대상이 소수인 것에 비해서는, 처리시간을 단축할 수 없다라는 문제점이 있었다.
본 발명은, 상기 배열을 부분집합의 크기, 이것에 따라 한정되는 값 리스트의 부분집합의 크기에 합치시켜서, 부분집합의 크기에 상당하는 처리시간의 단축을 실현하는 방법을 제공하는 것을 목적으로 한다.
도 1은 표형식데이터의 예, 및, 그 부분집합의 예를 나타내는 도면이다.
도 2는 도 1의 표형식데이터에 기초하는 정보블록의 예를 나타내는 도면이다.
도 3은 본 발명의 실시형태에 따른 처리를 실현하기 위한 프로그램을 실행하는 컴퓨터 시스템의 하드웨어 구성을 나타내는 도면이다.
도 4는 본 실시형태에 있어서, 컴퓨터 시스템에서 실행되는 처리의 개략을 나타내는 플로우차트이다.
도 5는 본 실시형태에 따른 사전처리를 보다 상세하게 나타내는 플로우차트이다.
도 6은 본 실시형태에 따른 항목값번호배열의 생성을 설명하기 위한 도면이다.
도 7은 본 실시형태에 따른 편집처리의 예를 나타내는 플로우차트이다.
도 8은 본 실시형태에 따른 편집처리를 설명하기 위한 도면이다.
도 9는 본 실시형태에 따른 검색처리를 나타내는 플로우차트이다.
도 10은 본 실시형태에 따른 검색처리를 설명하기 위한 도면이다.
도 11은 본 실시형태에 따른 검색처리를 설명하기 위한 도면이다.
도 12는 본 실시형태에 따른 검색처리를 설명하기 위한 도면이다.
도 13은 본 실시형태에 따른 소트처리를 나타내는 플로우차트이다.
도 14는 본 실시형태에 따른 소트처리를 나타내는 플로우차트이다.
도 15는 본 실시형태에 따른 소트처리를 설명하기 위한 도면이다.
도 16은 본 실시형태에 따른 소트처리를 설명하기 위한 도면이다.
도 17은 본 실시형태에 따른 소트처리를 설명하기 위한 도면이다.
도 18은 본 실시형태에 따른 소트처리를 설명하기 위한 도면이다.
도 19는 본 실시형태에 따른 소트처리를 설명하기 위한 도면이다.
도 20은 본 실시형태에 따른 조인의 개략을 설명하기 위한 도면이다.
도 21은 본 실시형태에 있어서 조인된 표(view)의 예를 나타내는 도면이다.
도 22는 본 실시형태에 있어서, 조인되는 표형식데이터에 기초하는 정보블록을 나타내는 도면이다.
도 23은 본 실시형태에 따른 조인 처리를 설명하기 위한 도면이다.
도 24는 본 실시형태에 따른 조인 처리의 개략을 설명하는 플로우차트이다.
도 25는 본 실시형태에 따른 값 리스트 공유화 처리를 나타내는 플로우차트이다.
도 26은 본 실시형태에 따른 조인 처리를 설명하기 위한 도면이다.
도 27은 본 실시형태에 따른 조인 처리를 설명하기 위한 도면이다.
도 28은 본 실시형태에 따른 조인 처리를 설명하기 위한 도면이다.
도 29는 본 실시형태에 따른 조인 처리를 설명하기 위한 도면이다.
도 30은 본 실시형태에 따른 조인 처리를 설명하기 위한 도면이다.
도 31은 본 실시형태에 따른 조인 처리를 설명하기 위한 도면이다.
도 32는 본 실시형태에 따른 조인 처리를 설명하기 위한 도면이다.
도 33은 본 실시형태에 따른 조인 처리를 설명하기 위한 도면이다.
도 34는 본 실시형태에 따른 조인 처리를 설명하기 위한 도면이다.
도 35는 본 실시형태에 따른 조인 처리를 설명하기 위한 도면이다.
도 36은 본 실시형태에 따른 조인 처리를 설명하기 위한 도면이다.
도 37은 본 실시형태에 따른 조인 처리 중, 레코드번호 산출처리를 나타내는 플로우차트이다.
도 38은 본 실시형태에 따른 레코드 산출처리를 설명하기 위한 도면이다.
도 39는 본 실시형태에 따른 레코드 산출처리를 설명하기 위한 도면이다.
도 40은 본 실시형태에 따른 레코드 산출처리를 설명하기 위한 도면이다.
도 41은 본 실시형태에 따른 레코드 산출처리를 설명하기 위한 도면이다.
도 42는 본 실시형태에 따른 레코드 산출처리를 설명하기 위한 도면이다.
도 43은 본 실시형태에 따른 레코드 산출처리를 설명하기 위한 도면이다.
도 44는 본 실시형태에 따른 레코드 산출처리를 설명하기 위한 도면이다.
도 45는 본 실시형태에 따른 조인 처리에 의해 최종적으로 얻어지는 표(view)을 나타내는 도면이다.
본 발명의 목적은, 각각이 항목과 그 항목에 속하는 항목값을 포함하는 레코드의 배열로서 표시되는 표형식데이터 중, 처리대상으로 해야 할 부분집합을 추출하기 위한 데이터 처리방법으로서,
a) 상기 표형식데이터를, 각각이, 특정 항목에 속하는 항목값에 대응한 항목값번호의 순서로 상기 항목값이 저장되어 있는 값 리스트와, 일의적인 레코드번호의 순서로, 상기 항목값번호를 가리키기 위한 포인터 값이 저장된 포인터 배열로 이루어지는 정보블록으로 분할하도록 구성하는 스텝과,
b) 상기 레코드 중, 그 일부가 부분집합으로서 선택된 것에 응답하여, 상기 부분집합의 레코드번호를 수용한 순서부여된 집합배열을 생성하는 스텝과,
c) 상기 순서부여된 집합의 각각의 레코드번호가 가리키는 위치의, 상기 포인터 배열 중의 포인터 값을, 상기 레코드번호가 배치된 위치에 대응하여, 항목값번호배열 중에 배치하는 스텝과,
d) 상기 항목값번호배열 중의 값을 참조하여, 위치의 요소를 저장한 제 2 포인터 배열 및 값의 요소를 저장한 제 2 값 리스트를 생성하는 스텝을 구비하고,
상기 순서부여된 집합배열의 레코드번호로부터, 상기 레코드번호가 가리키는 위치의 제 2 포인터 배열 중의 요소, 및, 제 2 포인터 배열 중의 요소가 가리키는 위치의 상기 제 2 값 리스트 중의 요소를 통해서, 값 리스트 중의 값이 특정되는 것을 특징으로 하는 데이터 처리방법에 의해 달성된다.
본 발명에 의하면, 부분집합을 구성하는 레코드번호에 관련되는 값 리스트의 항목값을 가리키는 제 2 값 리스트를 생성하고, 제 2 값 리스트를 참조하여, 데이터 처리(후술하는, 검색, 집계, 소트, 결합처리)를 실행하는 것이 가능하게 된다. 따라서, 참조하는 데이터량을 작게 할 수 있기 때문에 처리시간을 단축화할 수 있다. 또한, 데이터 처리시에 생성되는 배열의 사이즈도, 제 2 값 리스트나 제 2 포인터 배열과 동일하게 할 수 있기 때문에, 필요로 되는 메모리 영역을 작게 하는 것이 가능하게 된다.
바람직한 실시형태에 있어서는, 상기 제 2 포인터 배열 및 제 2 값 리스트를 생성하는 스텝이, 상기 항목값번호배열 중의 요소를 소트하고, 또한, 중복값이 배제된 상태로 된 배열을 생성하여, 이것을 제 2 값 리스트로 하는 스텝과, 상기 소트 및 중복값의 배제를 반영하도록, 상기 항목값번호배열 중의 요소를 변환하여, 제 2 포인터 배열을 생성하는 스텝을 갖는다.
또한, 별도의 바람직한 실시형태에 있어서, 각각이 항목과 그 항목에 속하는 항목값을 포함하는 레코드의 배열로서 표시되는 표형식데이터 중, 처리대상으로 해야 할 부분집합을 추출하기 위한 데이터 처리방법은,
a) 상기 표형식데이터를, 각각이, 특정 항목에 속하는 항목값에 대응한 항목값번호의 순서로 상기 항목값이 저장되어 있는 값 리스트와, 일의적인 레코드번호의 순서로, 상기 항목값번호를 가리키기 위한 포인터 값이 저장된 포인터 배열로 이루어지는 정보블록으로 분할하도록 구성하는 스텝과,
b) 상기 레코드 중, 그 일부가 부분집합으로서 선택된 것에 응답하여, 상기 부분집합의 레코드번호를 수용한 순서부여된 집합배열을 생성하는 스텝과,
c) 상기 순서부여된 집합의 각각의 레코드번호가 가리키는 위치의, 상기 포인터 배열 중의 포인터 값을, 상기 레코드번호가 배치된 위치에 대응하여, 항목값번호배열 중에 배치하는 스텝과,
e) 상기 항목값번호배열 중을 제 2 값 리스트로서 이용함과 아울러, 원래의 값 리스트를 제 2 값 리스트로서 이용하는 스텝을 구비하고,
상기 순서부여된 집합배열의 레코드번호로부터, 상기 레코드번호가 가리키는 위치의 제 2 포인터 배열 중의 요소, 및, 제 2 포인터 배열 중의 요소가 가리키는 위치의 상기 제 2 값 리스트 중의 요소를 통해서, 값 리스트 중의 값이 특정된다.
이 실시형태에 있어서는, 제 2 값 리스트는, 원래의 값 리스트이기 때문에, 그 사이즈를 작게 할 수는 없지만, 제 2 포인터 배열로서, 순서부여된 집합배열과 동일한 사이즈의 항목값번호배열을 이용하고 있다. 따라서, 원래의 포인터 배열 및 원래의 값 리스트를 이용할 경우와 비교하면, 참조하는 데이터량을 작게 할 수 있고, 처리시간을 단축화하는 것이 가능하게 된다.
바람직한 실시형태에 있어서는, 추가로, 상기 순서부여된 집합배열의 사이즈와, 상기 값 리스트의 사이즈를 비교하는 스텝을 구비하고, 상기 비교의 결과, 부분집합의 사이즈가, 값 리스트의 사이즈보다 소정의 비율로 작을 경우에, 상기 c) 및 d), 또는, 상기 c) 및 e)의 스텝을 실행한다.
여기서는, 제 2 포인터 배열 및 제 2 값 리스트를 생성하기 위한 처리시간을 고려해도, 처리시간의 단축화가 인정되는 경우에, 제 2 포인터 배열 및 제 2 값 리스트를 생성하여, 이들을 이용한 처리를 실행하도록 구성하고 있다. 소정의 비율은, 예컨대, (부분집합의 사이즈, 즉, 레코드수)/(값 리스트의 사이즈, 즉, 레코드수)=1/n(n은 1보다 큰 수)로 정할 수 있다. 이 「n」은, 작업자가 원하는 수를 입력함으로써 정해져도 좋고, 미리 소정의 수로 정해져 있어도 된다.
또한, 본 발명의 목적은, 상기 데이터 처리방법에 의해 생성된 제 2 포인터 배열 및/또는 제 2 값 리스트를 이용한 검색방법으로서, 제 2 값 리스트 중의 요소 중, 검색 대상이 되는 항목값을 가리키는 요소를 특정하는 스텝과, 상기 제 2 값 리스트와 동일한 사이즈의 플래그 배열 중, 상기 특정된 요소의 위치와 대응하는 위치에, 플래그가 온인 상태를 나타내는 값을 배치하는 스텝과, 상기 순서부여된 집합 중의 레코드번호가 가리키는, 제 2 포인터 배열의 요소를 특정하는 스텝과, 상기 플래그 배열 중, 상기 제 2 포인터 배열의 요소가 가리키는 위치의 플래그의 상태를 참조하는 스텝과, 상기 플래그의 상태가 온일 경우, 상기 레코드번호를, 새롭게 설치된 출력용 순서부여된 집합배열로, 순차 배치하는 스텝을 구비한 것을 특징으로 하는 방법에 의해도 달성된다.
별도의 실시형태에 있어서, 상기 데이터 처리방법에 의해 생성된 제 2 포인터 배열 및/또는 제 2 값 리스트를 이용한 집계방법은, 상기 제 2 값 리스트의 요소에 대응하여, 값의 카테고리를 나타내는 분류번호를 배치하는 분류번호배열을 생성하는 스텝과, 지정된 분류번호에 대응하는, 상기 순서부여된 집합배열 중의 레코드번호를 특정하는 스텝과, 상기 특정된 레코드번호가 가리키는, 소정의 값 리스트의 항목값을 이용한 집계를 실행하는 스텝을 구비하고 있다.
또한 별도의 실시형태에 있어서, 상기 데이터 처리방법에 의해 생성된 제 2 포인터 배열 및/또는 제 2 값 리스트를 이용한 소트방법은, 상기 제 2 값 리스트의 값마다, 상기 제 2 포인터 배열이 가리키는 요소의 수인 존재수를 산출하는 스텝과, 상기 존재수에 기초하여, 상기 제 2 값 리스트의 값에 대응하는, 상기 순서부여된 집합배열 중의 레코드번호를 배치해야 할 선두의 위치를 나타내는 누계수 배열을 생성하는 스텝과, 상기 누계수 배열을 참조하여, 상기 값 리스트 중의 항목값의 소트순이 반영되도록, 상기 순서부여된 집합배열의 레코드번호를, 출력용 배열 중에 배치하는 스텝을 구비하고 있다.
또한, 별도의 실시형태에 있어서, 상기 데이터 처리방법에 의해, 생성된 복수의 표형식데이터 각각에 관한 정보블록에 있어서의, 제 2 포인터 배열 및/또는 제 2 값 리스트를 이용하여, 표형식데이터를 결합하는 방법은, 복수의 표형식데이터 각각에 있어서, 공유화해야 할 항목을 찾아내는 스텝과, 상기 항목에 관한 정보블록의 제 2 값 리스트 중의 항목값을 등가로 하는 스텝과, 상기 항목값을 등가로 하는 것에 응답하여, 각각의 정보블록에 있어서, 제 2 포인터 배열 중의 요소를, 상기 항목값의 배치의 변화에 합치하도록 갱신하는 스텝을 구비하고 있다.
또한, 본 발명의 목적은, 각각이 항목과 그 항목에 속하는 항목값을 포함하는 레코드의 배열로서 표시되는 표형식데이터 중, 처리대상으로 해야 할 부분집합을 추출하기 위해서, 컴퓨터를 동작시키는 데이터 처리 프로그램으로서,
a) 상기 표형식데이터를, 각각이, 특정 항목에 속하는 항목값에 대응한 항목값번호의 순서로 상기 항목값이 저장되어 있는 값 리스트와, 일의적인 레코드번호의 순서로, 상기 항목값번호를 가리키기 위한 포인터 값이 저장된 포인터 배열로 이루어지는 정보블록으로 분할하도록 구성하는 스텝과,
b) 상기 레코드 중, 그 일부가 부분집합으로서 선택된 것에 응답하여, 상기 부분집합의 레코드번호를 수용한 순서부여된 집합배열을 생성하는 스텝과,
c) 상기 순서부여된 집합의 각각의 레코드번호가 가리키는 위치의, 상기 포인터 배열 중의 포인터 값을, 상기 레코드번호가 배치된 위치에 대응하여, 항목값번호배열 중에 배치하는 스텝과,
d)상기 항목값번호배열 중의 값을 참조하여, 위치의 요소를 저장한 제 2 포인터 배열 및 값의 요소를 저장한 제 2 값 리스트를 생성하는 스텝을, 상기 컴퓨터에 실행시키고,
상기 순서부여된 집합배열의 레코드번호로부터, 상기 레코드번호가 가리키는 위치의 제 2 포인터 배열 중의 요소, 및, 제 2 포인터 배열 중의 요소가 가리키는 위치의 상기 제 2 값 리스트 중의 요소를 통해서, 값 리스트 중의 값이 특정되도록, 상기 컴퓨터를 동작시키는 것을 특징으로 하는 데이터 처리 프로그램에 의해도 달성된다.
바람직하게는, 상기 제 2 포인터 배열 및 제 2 값 리스트를 생성하는 스텝에 있어서, 상기 항목값번호배열 중의 요소를 소트하고, 또한, 중복값이 배제된 상태로 된 배열을 생성하여, 이것을 제 2 값 리스트로 하는 스텝과, 상기 소트 및 중복값의 배제를 반영하도록, 상기 항목값번호배열 중의 요소를 변환하여, 제 2 포인터 배열을 생성하는 스텝을 상기 컴퓨터에 실행시킨다.
별도의 실시형태에 있어서, 각각이 항목과 그 항목에 속하는 항목값을 포함하는 레코드의 배열로서 표시되는 표형식데이터 중, 처리대상으로 해야 할 부분집합을 추출하기 위해서, 컴퓨터를 동작시키는 데이터 처리 프로그램은,
a) 상기 표형식데이터를, 각각이, 특정 항목에 속하는 항목값에 대응한 항목값번호의 순서로 상기 항목값이 저장되어 있는 값 리스트와, 일의적인 레코드번호의 순서로, 상기 항목값번호를 가리키기 위한 포인터 값이 저장된 포인터 배열로 이루어지는 정보블록으로 분할하도록 구성하는 스텝과,
b) 상기 레코드 중, 그 일부가 부분집합으로서 선택된 것에 응답하여, 상기 부분집합의 레코드번호를 수용한 순서부여된 집합배열을 생성하는 스텝과,
c) 상기 순서부여된 집합의 각각의 레코드번호가 가리키는 위치의, 상기 포인터 배열 중의 포인터 값을, 상기 레코드번호가 배치된 위치에 대응하여, 항목값번호배열 중에 배치하는 스텝과,
e) 상기 항목값번호배열 중을 제 2 값 리스트로서 이용함과 아울러, 원래의 값 리스트를 제 2 값 리스트로서 이용하는 스텝을, 상기 컴퓨터에 실행시키고,
상기 순서부여된 집합배열의 레코드번호로부터, 상기 레코드번호가 가리키는 위치의 제 2 포인터 배열 중의 요소, 및, 제 2 포인터 배열 중의 요소가 가리키는 위치의 상기 제 2 값 리스트 중의 요소를 통해서, 값 리스트 중의 값이 특정되도록, 상기 컴퓨터를 동작시킨다.
바람직하게는, 추가로, 상기 순서부여된 집합배열의 사이즈와, 상기 값 리스트의 사이즈를 비교하는 스텝을, 상기 컴퓨터에 실행시키고, 상기 비교의 결과, 부분집합의 사이즈가, 값 리스트의 사이즈보다 소정의 비율로 작을 경우에, 상기 c) 및 d), 또는, 상기 c) 및 e)의 스텝을, 상기 컴퓨터에 실행시킨다.
또한, 본 명세서에 있어서, 각종 배열 중에 수용되는 수치를, 「요소」나 「값」으로 칭하지만, 이들은 표현상의 차이점에 지나지 않고, 본질적인 차이점은 없다. 예컨대, 「값 리스트」에 수용되는 것은, 「항목값 」이라고도 표현하지만, 이것도 값 리스트 중의 「요소」인 것은 명확하다.
본 발명의 목적 및 다른 목적은, 첨부도면과 함께 실시예를 참조함으로써, 보다 명확하게 될 수 있다. 여기서,
이하, 첨부도면을 참조하여, 본 발명의 실시형태에 대해 설명을 더한다. 도 3은, 본 발명의 실시형태에 따른 표형식데이터 중의 처리대상이 되는 부분집합을 위한 변환 배열을 작성하는 처리, 및, 검색, 집계, 소트 및 조인의 처리를 실현하는 컴퓨터 시스템의 하드웨어 구성을 나타내는 블록 다이어그램이다. 본 실시형태에 있어서는, 검색, 집계, 소트 및 조인의 처리에 앞서서, 도 2(a)~(c)에 나타내는 바와 같은 정보블록에 관해서, 처리대상이 되는 레코드 및 값 리스트의 요소만을 포함하는 배열을 작성한다. 이 처리를 「사전처리」라고 칭한다. 이어서, 사전처리에 의해 작성된 배열을 작업영역으로 하여, 검색, 집계 등의 각종 처리를 실행한다.
도 3에 나타내는 바와 같이, 이 컴퓨터 시스템(10)은, 통상의 것과 마찬가지의 구성이며, 프로그램을 실행함으로써 시스템 전체 및 개개의 구성부분을 제어하는 CPU(12), 공작물 데이터 등을 기억하는 RAM(Random Access Memory)(14), 프로그램 등을 기억하는 ROM(Read Only Memory)(16), 하드디스크 등의 고정기억매체(18), CD-ROM(19)을 액세스하기 위한 CD-ROM 드라이버(20), CD-ROM 드라이버(20)나 외부 네트워크(도시 생략)와 접속된 외부단자와의 사이에 설치된 인터페이스(I/F)(22), 키보드나 마우스로 이루어지는 입력장치(24), CRT 표시장치(26)를 구비하고 있다.
CPU(12), RAM(14), ROM(16), 외부기억매체(18), I/F(22), 입력장치(24) 및 표시장치(26)는, 버스(28)를 통해서 상호 접속되어 있다.
본 실시의 형태에 따른, 전처리의 프로그램, 검색, 집계, 소트, 조인 등의 프로그램은, CD-ROM(19)에 수용되고, CD-ROM 드라이버(20)에 읽어들여도 좋고, ROM(16)에 미리 기억되어 있어도 된다. 또한, 일단 CD-ROM(19)으로부터 판독한 것을, 외부기억매체(18)의 소정의 영역에 기억해 두어도 된다. 또는, 상기 프로그램은, 네트워크(도시 생략), 외부단자 및 I/F(22)을 경유하여 외부로부터 공급되는 것이어도 된다.
또한, 본 실시형태에 있어서는, 전처리, 고속의 검색, 집계, 소트 및 조인 처리를 실현하기 위해서, 도 2(a)~(c)에 나타내는 데이터 형식의 정보블록을 생성 할 필요가 있다. 이 정보블록 생성 프로그램도 마찬가지로, CD-ROM(19)에 수용되어, ROM(16)에 기억되거나, 혹은, 외부기억매체(18)에 기억되어도 좋다. 또는, 이들 프로그램은, 네트워크(도시 생략)을 통해서, 외부로부터 공급되어도 좋은 것은 말할 필요도 없다. 또한, 본 실시형태에 있어서, 정보블록 생성 프로그램에 의해 생성된 데이터(정보블록)는, RAM(14)에 기억되거나, 혹은, 외부기억매체(18)의 소정의 영역에 기억된다.
다음에, 컴퓨터 시스템(10)에서 실행되는 처리의 개략에 대해서 설명을 추가한다. 도 4에 나타내는 바와 같이, 본 실시형태에 있어서는 레코드 전체 또는 그 일부를 처리대상으로 하는 검색, 집계 또는 소트의 처리에 의해, 레코드가 보다 한정적으로 선택되고(스텝401), 또한, 선택된 레코드의 집합을 처리대상으로 하여, 검색, 집계, 소트 또는 조인의 처리가 개시될 때에(스텝402), 일정한 조건하에서(스텝403), 사전처리가 실행된다(스텝404). 이 사전처리를, 경우에 따라 「스코프」의 설정처리라고 칭하고, 사전처리가 행해진 후에 행해지는 검색 등의 처리를, 「스코프를 이용한」 검색 등의 처리라고 칭한다(스텝405).
또한, 선택된 레코드의 집합을 「순서부여된 집합」이라고 칭한다. 이 순서부여된 집합의 배열에는, 선택된 레코드번호가, 소정의 순서[예컨대 승순(昇順)]로 배치된다. 사전처리에 있어서는, 나중의 검색 등의 처리에 이용하기 위한 제 2 포인터 배열(PV2) 및 제 2 값 리스트(VL2)가 생성된다. 이 생성처리에 대해서는 후술한다. 제 2 포인터 배열은, 순서부여된 집합의 요소수와 동일한 요소를 포함하고, 순서부여된 집합의 배열 중의 요소에 대응하는 제 2 값 리스트 중의 요소를 가리키게 되어 있다. 또한, 제 2 값 리스트에는, 값 리스트(VL)의 저장위치번호가 수용된다. 제 2 값 리스트의 요소의 수는, 순서부여된 집합의 배열 중의 요소의 수 이하이다. 즉, 순서부여된 집합의 배열 중의 요소(선택된 레코드)에 대응하는 항목값의 전체가 다른 경우만, 이들 요소의 수가 일치한다. 따라서, 순서부여된 집합의 배열 중의 요소수는, 제 2 값 리스트의 요소수가 가질 수 있는 최대값이 된다.
그래서, 본 실시형태에 있어서는, 본래의 값 리스트(VL)의 요소수(사이즈)가, 순서부여된 집합의 배열 중의 요소수(사이즈)보다 충분히 작은 경우에는(스텝403 참조), 본 실시형태에 있어서의 제 2 포인터 배열 및 제 2 VL을 이용한 처리, 즉, 스코프를 이용한 검색 등의 처리가 실행되는(스텝405). 예컨대, 순서부여된 집합의 사이즈가, VL의 사이즈의 1/n(n:설정된 1보다 큰 값) 이하인 것으로 하면 좋다. 이 「n」은, 레코드수, 프로세서의 처리능력 등에 따라서 설정할 수 있다.
이와 같은 판단은, 이하의 이유에 의해 실행된다. 스코프를 이용한 처리에 있어서는, 사전처리(스텝404)가 필요하고, 그 실행에는 시간을 요한다. 이 때문에, 순서부여된 집합의 사이즈(실제로는 제 2 값 리스트의 사이즈)이, VL의 사이즈보다 충분히 작고, 사전처리의 실행시간이 더해졌을 경우이여도, 일반적인 처리(스텝406)를 실행하는 것에 비교해서, 전체의 처리시간을 단축할 수 있다라고 생각되는 경우에만, 즉, 사전처리 및 스코프를 이용한 검색 등의 처리에 의해, 통상의 처리와 비교하여, 처리시간을 단축할 수 있을 경우에만, 스텝404 및 스텝406의 처리를 실행하는 것이 바람직하기 때문이다.
따라서, 상기 「충분히 작은」은, 사전처리를 경유하여 처리시간을 단축할 수 있을 정도로 작은 것을 의미하고, 절대적인 수의 대소를 정의하는 것은 아니다.
다음에, 본 실시형태에 따른 사전처리에 대해서 설명을 더한다. 도 5는, 본 실시형태에 따른 사전처리를 나타내는 플로우차트이다. 도 5에 나타내는 바와 같이, 순서부여된 집합의 배열 중의 위치(저장위치번호)을 지정하는 파라미터를 초기화한 후(스텝501), 상기 파라미터가 나타내는 순서부여된 집합의 배열 중의 요소가 특정된다(스텝502). 초기적으로는, 도 6에 있어서, 순서부여된 집합의 배열(601) 중, 저장위치번호가 「0」번의 요소「0」이 특정된다.
이어서, 상기 순서부여된 집합의 배열 중의 요소가 가리키는, 포인터 배열 중의 요소를 참조하여, 상기 요소가 가리키는 위치의 항목값의 번호(항목값번호)가 특정된다(스텝503). 상술한 초기적 상태의 예에서는, 순서부여된 집합의 배열 중의 요소「0」이 가리키는 포인터 배열 중의 요소「2」가 특정된다. 이 요소는, 값 리스트 중의 관련되는 요소(항목값)의 위치를 나타내는 번호를 의미하고 있기 때문에, 이것을 항목값번호라고 칭하고 있다.
이 항목값번호는, 별도 설치된 항목값번호배열 중, 파라미터가 가리키는 위치에 배치된다(스텝504). 상기 초기적 상태의 예에서는, 포인터 배열(212) 중의 요소(항목값번호) 「2」가, 항목값번호배열(611) 중, 파라미터「0」이 가리키는 위치에 저장된다. 또한, 항목값번호배열은, 순서부여된 집합의 배열과 동일한 수의 요소를 구비한다.
이와 같은 처리를 반복함으로써(스텝505,506 참조), 순서부여된 집합 중의 요소(선택된 레코드번호)마다, 대응하는 항목값번호를 수용한 항목값번호배열을 작성할 수 있다(도 6의 부호611 참조).
항목값번호배열의 생성을 완료하면, 편집처리가 실행된다(스텝507). 본 실시형태에 있어서는, 레코드의 부분집합이 처리대상일 경우에, 상기 부분집합에 관련되는 값 리스트 중의 항목값만을 참조하고 있다. 따라서, 처리대상이 되는 범위를 한정하는 것이므로, 본 서면에 있어서 「스코프 」라고도 칭한다.
스코프를 실현하기 위해서는, 부분 중의 요소가 참조하는 값 리스트의 부분집합과, 레코드의 부분집합 중의 요소(레코드번호)와, 값 리스트의 부분집합과의 변환 배열을 요한다. 전자가, 제 2 값 리스트(VL2)이며, 후자가 제 2 포인터 배열(PV2)로 된다. 그리고, 제 2 값 리스트 및 제 2 포인터 배열을 생성하는 처리를 편집처리라고 칭한다.
도 7은, 편집처리의 일례를 나타내는 플로우차트이다. 이 예에 따른 편집처리에 있어서는, 우선, 항목값번호배열의 복제가 작성된다(스텝701). 도 6에 나타내는 바와 같은 정보블록(201) 및 레코드의 부분집합인 순서부여된 집합의 배열(601)에 관한 예에서는, 도 8(a)에 나타내는 바와 같이, 항목값번호배열(원래의 배열)과 동일한 요소를 갖는 복제 배열이 생성된다.
이어서, 복제 배열이 소트된 후(스텝702 및 도 8(b) 참조), 소트된 복제 배열 중의 중복값이 배제되고, 배열이 콘덴스(consense)된다[스텝703 및 도 8(c) 참조]. 이와 같이 하여, 요소가 소트되고 또한 중복값이 배제된 배열이, 제 2 값 리스트(VL2)로 된다. 또한, 항목값번호배열(원래의 배열) 중의 각 요소의, 제 2 값 리스트 중의 위치가 특정되고, 특정된 위치를 나타내는 값이, 원래의 배열의 저장위치번호의 요소로서, 새롭게 준비한 배열로 저장된다[스텝704 및 도 8(d) 참조]. 스텝704에서 요소가 저장된 배열이, 제 2 포인터 배열(PV2)로 된다.
항목값번호배열은, 값의 성분과 위치의 성분이 혼재한다라고 생각할 수 있다. 그래서, 스텝701~703의 처리에 있어서, 값의 성분만을 추출하고, 추출된 값의 성분만을 포함하는 제 2 값 리스트(VL2)가 생성되어 있다. 또한, 계속되는 스텝704에 있어서 위치의 성분을 추출하고, 위치의 성분만을 포함하는 제 2 포인터 배열(PV2)이 생성되어 있다.
이와 같이 하여, 편집처리에 의해 생성된 제 2 값 리스트 및 제 2 포인터 배열은, 정보블록의 일부로 하여, 후술하는 검색, 집계, 소트, 조인 등의 처리에 이용된다.
다음에, 상기 제 2 값 리스트 및 제 2 포인터 배열을 이용한(스코프를 이용한) 검색처리에 대해서 설명한다. 도 9는, 본 실시형태에 따른 스코프를 이용한 검색처리를 나타내는 플로우차트이다. 이 처리에 있어서는, 우선, 제 2 값 리스트(VL2)와 동일한 사이즈의 플래그 배열영역이 확보된다(스텝901). 이 플래그 배열에 있어서는, 값 리스트의 요소(항목값) 중, 검색 대상이 된 것이 저장되는 위치(저장위치)와 동일한 위치에, 「1」이 배치되고, 다른 위치에는 「0」가 배치된다. 따라서, 다음 스텝에 있어서, 플래그 배열 중에 「1」 또는 「0」의 값이 배치된다.
도 10은, 선택된 레코드(순서부여된 집합)의 항목「팬」에 관해서, 「T-team」이라는 항목값을 갖는 레코드를 검색하는 예를 나타내고 있다. 여기서는, 제 2 값 리스트(VL2)의 요소가 특정되고, 상기 요소가 가리키는 값 리스트(VL) 중의 요소(항목값)이 검색 대상인지의 여부가 판단된다. 항목값이 검색 대상이면, 플래그 배열 중, 제 2 값 리스트(VL2)의 요소의 저장위치에 대응하는 위치에, 「1」을 배치한다. 도 10의 예에서는, 항목값「T-team」이 검색 대상이기 때문에, 플래그 배열 중, 제 2 값 리스트(VL2) 중, 값 리스트(VL)의 항목값「T-team」을 가리키는 요소의 저장위치(저장위치번호「1」)에, 값「1」이 배치된다.
이와 같이 하여, 플래그 배열에 값이 배치되면, 순서부여된 집합의 배열 중의 위치 8 저장위치번호를 나타내는 파라미터를 초기화한 후(스텝903), 상기 파라미터가 가리키는, 순서부여된 집합의 배열 중의 요소가 특정된다(스텝904). 도 11의 예에서는, 초기적으로는, 순서부여된 집합의 배열 중, 저장위치번호가 「0」번의 요소「0」이 특정된다. 이어서, 상기 요소가 가리키는, 제 2 포인터 배열(PV2) 중의 요소가 특정되고, 또한, PV2 중의 요소가 가리키는 플래그 배열 중의 값이 특정된다(스텝905). 상기 초기적 상태의 예에서는, 제 2 포인터 배열(PV2) 중의 요소「0」이 가리키는 위치의 플래그 배열의 값은 「0」인 것이 특정된다.
이어서, 상기 특정된 플래그 값이 「1」인지의 여부가 판단된다(스텝906). 플래그 값이 「1」이면[스텝906에서 예(Yes)], 순서부여된 집합의 배열의 요소가, 설치된 출력용 배열 중에 배치된다(스텝907). 도 11의 예에 있어서는, 순서부여된 집합의 배열 중, 저장위치번호「1」의 요소「2」에 대해서, PV2 및 플래그 배열을 찾으면, 플래그 배열 중의 플래그 값이 「1」이 된다. 따라서, 출력용 배열 중에, 상기 순서부여된 정확한 배열의 요소「2」가 저장된다.
이와 같은 처리가, 순서부여된 집합의 저장위치번호에 대한 모든 파라미터에 관해서 실행된다(스텝908,909 참조). 출력용 배열로 얻어진 요소가, 각각, 검색에 의해 추출된 레코드번호가 된다.
이와 같이, 본 실시형태에 의하면, 레코드의 부분집합인 순서부여된 집합 중의 요소에 대응된, 값 리스트 중의 요소를 나타내는 정보(값 리스트의 저장위치번호)를, 제 2 값 리스트(VL2)에 저장하고, 검색처리에 있어서, 이 사이즈와 동일한 사이즈의 플래그 배열을 작성하고, 플래그 배열 중의 값을 참조하여, 검색 대상이 된 레코드인지의 여부를 판단하고 있다. 플래그 배열의 사이즈는, 제 2 값 리스트의 사이즈로 같으므로, 모든 레코드에 관련되는 값 리스트의 사이즈와 비교해서 충분하게 작다. 따라서, 플래그 배열의 작성이나 값의 참조에 요하는 시간을 단축할 수 있고, 이것에 의해, 검색처리의 처리시간을 충분하게 짧게 하는 것이 가능하게 된다.
다음에, 스코프를 이용한 집계처리에 대해서 설명을 추가한다. 집계처리는, 소정 특정의 1이상의 항목값을 갖는 레코드수를 산출하는 것이다. 본 실시형태에서는, 제 2 값 리스트와 동일한 사이즈의 존재수 배열을 설치하고, 상기 존재수 배열에, 제 2 값 리스트(VL2) 중의 항목값에 관련되는 레코드의 수를 저장해 두고, 이 존재수 배열 중의 요소를 취출함으로써, 곧바로, 집계를 실현할 수 있다.
도 12는, 항목「팬」에 관한 정보블록에 있어서의 제 2 포인터 배열(PV2), 제 2 값 리스트(VL2) 및 존재수 배열을 나타내는 도면이다. PV2에 있어서, 저장위치번호「0」 및 「2」의 2개의 요소가, VL2의 저장위치번호「0」에 일치한다. 따라서, 존재수 배열 중, 저장위치번호「0」의 요소는, 「2」가 된다. 한편, PV2에 있어서, 저장위치번호「1」의 1개(단일)의 요소가, VL2의 저장위치번호「1」에 일치한다. 따라서, 존재수 배열 중, 저장위치번호「1」의 요소는, 「1」이 된다. 또한, 존재수 배열의 생성에 대해서는, 다음에 서술하는 소트처리에 있어서, 상세하게 설명한다.
본 실시형태에 의하면, 집계처리에 있어서도, 이용하는 존재수 배열의 사이즈를, 본래의 값 리스트보다도 충분히 작은 제 2 값 리스트와 동일한 사이즈로 할 수 있다. 따라서, 존재수 배열의 작성에 요하는 시간을 단축할 수 있고, 이것에 의해 전체의 처리시간을 짧게 하는 것이 가능하게 된다.
다음에, 스코프를 이용한 소트처리에 대해서 설명을 추가한다. 도 13 및 도 14는, 스코프를 이용한 소트처리를 나타내는 플로우차트이다. 도 13에 나타내는 바와 같이, 우선, 제 2 값 리스트(VL2)와 동일한 사이즈이며, 또한, 초기값「0」가 배치된 초기적인 존재수 배열이 생성된다(스텝1301). 이어서, 제 2 포인터 배열(PV2)의 위치(저장위치번호)를 지정하기 위한 파라미터를 초기화한 후(스텝1302), 순서부여된 집합의 배열 중, 파라미터가 가리키는 위치의 요소가 특정되고, 이어서, 존재수 배열 중, 상기 요소가 나타내는 위치의 값이 증가된다(스텝1303). 스텝1303은, 최종의 파라미터에 도달할 때까지 반복된다(스텝1304,1305 참조). 스텝1305에서 예(Yes)라고 판단된 단계에서, 존재수 배열이 완성된다.
도 15 및 도 16은, 항목「팬」에 관한 존재수 배열 및 후술하는 누계수 배열의 생성과정의 예를 나타내는 도면이다. 도 15(a)에 나타내는 바와 같이, 초기적으로는, 파라미터「0」의 위치의 PV2의 요소「0」이 특정되고, 존재수 배열 중, 상기 PV2의 요소가 나타내는 위치의 값이 「0」에서 「1」로 증가된다. 이어서, 도 15(b)에 나타내는 바와 같이, 파라미터「1」의 위치의 PV2의 요소「1」이 특정되고, 존재수 배열 중, 상기 PV2의 요소가 나타내는 위치의 값이 , 「0」에서 「1」로 증가된다. 또한, 도 16(a)에 나타내는 바와 같이, 파라미터「2」의 위치의 PV2의 요소「0」이 특정되고, 존재수 배열 중, 상기 PV2의 요소가 나타내는 위치의 값이, 「1」에서 「2」로 증가된다.
존재수 배열이 완성되면, 존재수 배열에 기초하여, 그 요소를 누계화한 누계수를 저장한 누계수 배열이 생성된다(스텝1306). 누계수 배열은, 소정 저장위치번호보다 앞의 저장위치번호에 관해서, 합계로 몇 요소가 존재했는지를 나타낸다. 도 16(b)의 예에서는, 누계수 배열(1612)에 있어서, 저장위치번호「0」의 요소는, 그것보다 작은 저장위치번호가 존재하지 않기 때문에 「0」으로 되고, 저장위치번호「1」의 요소는, 그보다 작은 저장위치번호「0」의 존재수[존재수 배열(1611) 중의 요소]과 같고, 「2」가 된다. 또한, 이 누계수 배열에 있어서는, 더나은 요소[저장위치번호「2」의 요소]로서, 저장위치번호「2」보다 작은 저장위치번호의 존재수의 총합 「3」이 배치되어도 좋다[부호(1612)의 괄호 참조].
이와 같이 하여 누계수 배열이 생성되면, 누계수 배열을 이용하여, 새롭게 확보한 출력용 배열 중에 레코드번호를 배치한다. 도 14에 나타내는 바와 같이, 우선, 순서부여된 집합의 배열 중의 위치(저장위치번호)를 지정하는 파라미터를 초기화한 후(스텝1401), 파라미터가 가리키는 순서부여된 집합의 배열 중의 요소가 특정되고, 다음으로, 제 2 포인터 배열(PV2) 중, 특정된 요소가 나타내는 위치의 요소가 특정된다(스텝1402).
다음으로, 누계수 배열 중, 제 2 포인터 배열(PV2) 중의 특정된 요소가 나타내는 위치의 값(누계수)이 특정된다(스텝1403). 또한, 파라미터가 나타내는 순서부여된 집합의 배열 중의 요소가, 별도 설치한 출력용 배열 중, 스텝1403에서 특정된 누계수가 나타내는 위치에 배치된다(스텝1404). 이 후, 누계수 배열에 있어서, 스텝1403에서 특정된 누계수가 증가된다(스텝1405).
스텝1403에서 특정되는 누계수는, 상기 누계수를 특정하는 원래대로 된 순서부여된 집합의 배열 중의 요소, 즉, 레코드번호를, 출력용 배열에 저장해야 할 위치를 나타낸다. 따라서, 소정 레코드번호를 배치한 후, 다음에 동일한 누계수가 특정되고, 출력용 배열에 레코드번호를 저장하기 위해서, 스텝1405에 있어서, 누계수를 증가시켜 둔다. 또한, 순서부여된 집합의 배열 중의 요소가 저장되기 때문에, 출력용 배열은, 순서부여된 집합의 배열과 동일한 사이즈가 된다.
이와 같은 처리를, 최종 파라미터에 도달할 때까지 반복한다(스텝1406,1407 참조). 이와 같이 하여 얻어진 출력용 배열에 있어서, 키가 된 항목에 관해서, 소트된 레코드번호가 나타내진다.
도 17 내지 도 19는, 항목「팬」을 키로 한 소트처리의 과정에 있어서의 배열의 상태를 나타내는 도면이다. 도 17에 있어서는, 초기적으로, 파라미터「0」이 나타내는 순서부여된 집합의 배열의 요소(레코드번호) 「0」이 특정되어 있다. 따라서, PV2를 통해서, PV2 중이 관련되는 요소가 나타내는 위치의 누계수 배열의 값(누계수) 「0」이 특정된다. 따라서, 출력용 배열 중, 누계수가 나타내는 저장위치번호「0」의 위치에, 순서부여된 집합배열의 요소「0」이 저장되고, 그 후, 누계수가 「0」에서 「1」로 증가된다.
도 18에 있어서도, 마찬가지로, 파라미터「1」이 가리키는 순서부여된 집합의 배열의 값「2」가, 출력용 배열 중, PV2를 거쳐 얻어진 누계수 배열 중의 누계수「2」에 대응하는 위치에 저장되고, 그 후, 누계수 배열 중의 누계수가 「2」에서 「3」으로 증가된다. 또한, 도 19에 있어서도 마찬가지로, 파라미터「2」가 가리키는 순서부여된 집합의 배열의 값「9」가, 출력 배열 중, PV2를 거쳐서 얻어진 누계수 배열 중의 누계수「1」에 대응하는 위치에 저장되고, 그 후, 누계수 배열 중의 누계수가 「1」에서 「2」로 증가된다.
이와 같이, 본 실시형태에 의하면, 소트의 처리에 있어서도, 처리에 있어서 이용되는 누계수 배열을, 제 2 값 리스트와 동일한 사이즈로 할 수 있고, 이것에 의해, 처리시간의 단축을 도모할 수 있다.
다음에, 스코프를 이용한 조인 처리에 대해서 설명을 추가한다. 조인 처리는 복수의 테이블로부터, 소정의 항목을 키로 하여, 상기 복수의 테이블을 공통화해서 결합하는 것을 말한다. 예컨대, 도 20(a)에 나타내는 야구 애호회 회원의 원래의 테이블(원래의 테이블)(2001)로부터, 항목「지역」의 값이 「Tokyo」인 레코드를 추출한 테이블(야구 애호회 회원 테이블)(2011)을 작성하고, 또한, 도 20(b)에 나타내는 바와 같이, 야구의 시합예정의 원래의 테이블(2011)로부터, 항목「야구장」의 값이 「Tokyo」인 레코드를 추출한 테이블(시합 예정 테이블)(2012)을 작성한 경우를 생각한다. 조인의 처리에서는, 야구 애호회 회원 테이블(2011) 중의 항목「지역」 및 시합 예정 테이블(2012)의 항목「야구장」을 키로 하여, 도 21에 나타내는 바와 같은, 키 항목이 결합된 테이블이 생성된다. 여기에, 소트순이 반영되는(유지되는) 테이블(2101)을 마스터측의 테이블, 다른쪽의 테이블(2111)을 슬레이브측의 테이블이라고 칭한다.
조인 처리에 있어서, 마스터측 및 슬레이브측도, 키가 되는 항목에 의해 소정의 값을 갖는 레코드를 추출하고, 테이블을 생성한다. 따라서, 레코드를 추출했을 때에, 본래의 값 리스트의 요소수(사이즈)가 순서부여된 집합의 배열 중의 요소수(사이즈)보다 충분히 작을 경우에, 스코프를 이용한 조인 처리가 실행되게 된다.
본 실시형태에 의하면, 예컨대, 시합예정 원래의 테이블은, 도 22에 나타내는 바와 같은 구조를 구비하고 있다. 즉, 「구단」, 「시합일」 및 「야구장」이라고 하는 각각의 항목에 관해서, 값 리스트에의 포인터 배열(PV) 및 값 리스트(VL)를 포함하는 정보블록이 설치되어 있다. 또한, 상술한 바와 같이 항목「야구장」의 값이 「Tokyo」인 레코드는, 레코드번호가 「0」,「4」,「9」 및 「10」을 갖고 있다. 따라서, 상기 레코드번호를 승순으로 나열한 배열이, 순서부여된 집합의 배열이 된다.
도 23은, 항목「구단」의 정보블록에 관한 사전처리(도 5 참조)의 과정을 설명하는 도면이다. 도 5의 스텝501~505의 처리에 의해, 항목값번호배열이 생성되고, 또한, 편집처리(도 5의 스텝507 및 도 7 참조)에 의해, 제 2 값 리스트(VL2) 및 제 2 포인터 배열(PV2)이 생성된다.
도 24는, 제 2 값 리스트 및 제 2 포인터 배열을 이용한 조인 처리, 즉, 스코프를 이용한 조인 처리를 나타내는 플로우차트이다. 조인 처리에 있어서는, 우선, 키가 되는 항목의 값 리스트가 공통화된다(스텝2401). 도 25는, 값 리스트 공통화의 처리를 보다 상세하게 나타내는 플로우차트이다. 값 리스트 공유화 처리에 있어서는, 우선, 마스터측의 값 리스트 중의 값과 슬레이브측의 값 리스트 중의 값이 비교되고, 어느 값이 작은지(예컨대, 알파벳에서는, 어디가 전방에 위치하는지)가 판단된다(스텝2501).
도 26은, 마스터측의 테이블을 구성하는 항목「팬」의 정보블록 및 슬레이브측의 테이블을 구성하는 항목「구단」의 정보블록의 편집후의 초기상태를 나타내는 도면이다. 도 26에 나타내는 바와 같이, 각각의 정보블록에 대해서, 공유후의 값 리스트(NewVL)의 값을 가리키기 위한 새로운 제 2 값 리스트(신 VL2)가 설치되고, 또한, 제 2 값 리스트 중, 처리대상이 되는 요소의 위치(즉, 값을 배치해야 할 위치)를 나타내는 포인터(PUT 포인터)가 배치된다. 이 포인터가 가리키는 위치를, 「PUT 위치」라고 칭한다. 마찬가지로, 공유후의 값 리스트 중에 값을 배치해야 할 위치를 나타내는 포인터(PUT 포인터)도 준비된다.
초기적으로는, 마스터측의 제 2 값 리스트(VL2)의 선두의 요소「2」가 가리키는 마스터측 값 리스트(VL)의 값「G-team」과, 슬레이브측의 제 2 값 리스트(VL2)의 선두의 요소「2」가 가리키는 슬레이브측 값 리스트(VL)의 값「D-team」이 비교되고, 알파벳순으로 「D-team<G-team」인 것으로 판단된다(도 27 참조).
이어서, 비교결과 작다라고 판단된 값(도 27에 있어서는, 「D-team」)이, 공유후의 값 리스트(newVL) 중, 「PUT 포인터」가 가리키는 위치(PUT 위치)에 저장된다(스텝2502). 다음에, 스텝2502에서 공유후의 값 리스트에 저장된 값을 갖고 있던 새로운 제 2 값 리스트[도 27에 있어서는, 슬레이브측의 「신 VL2」]의, 「PUT 포인터」가 가리키는 위치(PUT 위치)에, 공유후의 값 리스트(newVL)의 「PUT 위치」(도 27에 있어서는, 「0」)이 저장된다(스텝2503). 이것에 의해, 「PUT 위치」가 저장된 새로운 제 2 값 리스트(신 VL2)가, 공유후의 값 리스트(newVL)의 대응하는 요소를 가리키게 된다.
다음으로, 「PUT 위치」가 저장된 제 2 값 리스트(도 27에서는, 슬레이브측VL2) 및 공유후의 값 리스트(newVL)의 「PUT 위치」가 증가된다(스텝2504).
이와 같은 처리를, 마스터측의 제 2 값 리스트(VL2) 및 슬레이브측의 제 2 값 리스트(VL2)의 말미까지 반복한다(스텝2505 및 스텝2506 참조). 도 27의 예에 계속해서, 도 28에 나타내는 바와 같이, 마스터측의 제 2 값 리스트(VL2)의 선두의 요소「2」가 가리키는 값 리스트「VL」의 요소「G-team」이 취출되고, 한편, 슬레이브측의 제 2 값 리스트(VL2)의 2번째의 요소「3」이 가리키는 값 리스트「VL」의 요소「G-team」이 취출된다. 양자를 비교하면 「G-team=G-team」이므로, 「G-team」을, 공유후의 값 리스트(newVL)의 「PUT 위치」에 저장함과 아울러, 마스터측, 슬레이브측 쌍방의 새로운 제 2 값 리스트(신 VL2)의 「PUT 위치」에, 공유후의 값 리스트(newVL)의 「PUT 위치」를 저장한다. 그 후, 각각의 배열(신 VL2, newVL)의 「PUT 위치」가 증가된다.
이것에 계속해서, 도 29에 나타내는 바와 같이, 마스터측의 제 2 값 리스트(VL2)의 2번째의 요소「3」이 가리키는 값 리스트「VL」의 요소「T-team」이 취출되고, 한편, 슬레이브측의 제 2 값 리스트(VL2)의 3번째의 요소「5」가 가리키는 값 리스트「VL」의 요소「T-team」이 취출되고, 양자가 비교된다. 여기서는, 「T-team=T-team」이므로, 「T-team」을, 공유후의 값 리스트(newVL)의 「PUT 위치」에 저장함과 아울러, 마스터측, 슬레이브측 쌍방의 새로운 제 2 값 리스트(신 VL2)의 「PUT 위치」에, 공유후의 값 리스트(newVL)의 「PUT 위치」를 저장한다. 그 후, 각각의 배열(신 VL2, newVL)의 「PUT 위치」가 증가된다. 이와 같이 하여, 마스터측 및 슬레이브측의 새로운 제 2 값 리스트(신 VL2) 및 공유후의 값 리스트(NewVL)이 완성된다.
또한, 실제로는, 새로운 제 2 값 리스트(신 VL2)의 영역을 별도 작성하지 않고, 처리의 과정에 있어서, 제 2 값 리스트(VL2)를 덮어 써도 좋다. 또한, 설명의 편의를 위해, 공유후의 값 리스트(newVL)의 영역을 확보해서 값을 배치하고 있지만, 이것은 필수가 아니고, 상기 공유후의 값 리스트의 사이즈만을 파악하여, 메모리 등에 기억해 두면 충분한다.
값 리스트의 공유화가 종료하면, 슬레이브측의 존재수 배열, 마스터측의 누계수 배열, 및, 슬레이브측의 누계수 배열이 순차 생성된다(스텝2403). 이 처리에 대해서, 도 31 내지 도 34을 이용하여, 더 상세하게 설명한다. 우선, 슬레이브측의 제 2 포인터 배열(PV2)로부터 취출된 요소가 가리키는, 제 2 값 리스트(신 VL2) 중의 값이 특정된다. 다음으로, 존재수 배열 중, 상기 제 2 값 리스트(신 VL2)의 값이 가리키는 위치의 값이 증가된다.
도 31(a)에 있어서는, 「PV2」의 선두의 요소「2」가 가리키는 「신 VL2」의 값「2」가 특정되어, 이어서, 존재수 배열 중, 저장위치번호가 「2」의 값이 「0」에서 「1」로 증가된다. 마찬가지로, 「PV2」의 2번째의 요소「1」에 관해서, 존재수 배열 중, 저장위치번호가 「1」의 값이 「0」에서 「1」로 증가되고[도 31(b) 참조], 「PV2」의 3번째의 요소「0」에 관해서, 존재수 배열 중, 저장위치번호가 「0」의 값이 「0」에서 「1」로 증가되고[도 32(a) 참조], 또한, 「PV2」의 4번째의 요소「1」에 관해서, 존재수 배열 중, 저장위치번호가 「1」의 값이 「1」에서 「2」로 증가된다[도 32(b) 참조]. 이와 같이 하여, 슬레이브측의 존재수 배열의 최종형을 얻을 수 있다(부호3211 참조).
다음에, 상기 슬레이브측의 존재수 배열을 이용하여, 마스터측의 존재수 배열, 및, 상기 존재수 배열 중의 요소(존재수)를 누계수화한 누계수 배열이 생성된다. 이 마스터측의 존재수 배열의 요소(존재수)는, 마스터측의 제 2 포인터 배열에서 특정되는, 값 리스트 중의 값이, 슬레이브 배열에서는 몇개 존재했는지를 나타낸다.
도 33에 나타내는 바와 같이, 마스터측의 제 2 포인터 배열(PV2)의 선두의 요소「0」에 의해 특정되는 새로운 제 2 값 리스트(신 VL2)의 값은 「1」이다. 이것을 이용하여, 슬레이브측의 존재수 배열을 참조하면, 상기 값「1」이 가리키는 위치의 요소는 「2」가 된다. 따라서, 존재수 배열의 선두의 요소로서 「2」가 배치된다. 또한, 마스터측의 제 2 포인터 배열(PV2)의 2번째의 요소「1」에 의해 특정되는 새로운 제 2 값 리스트(신 VL2)의 값은 「2」이다. 이것을 이용하여, 슬레이브측의 존재수 배열을 참조하면, 상기 값「2」가 가리키는 시의 요소는 「1」이 된다. 따라서, 존재수 배열의 2번째의 요소로서 「1」이 배치된다. 마찬가지로, 마스터측의 제 2 포인터 배열(PV2)의 3번째의 요소「0」에 의해 특정되는 새로운 제 2 값 리스트(신 VL2)의 값은 「1」이다. 이것을 이용하여, 슬레이브측의 존재수 배열을 참조하면, 상기 값「1」이 가리키는 위치의 요소는 「2」가 된다. 따라서, 존재수 배열의 3번째의 요소로서 「2」가 배치된다.
다음으로, 상기 마스터측의 존재수 배열에 기초하여, 누계수 배열이 생성된 다. 이 마스터측의 누계수 배열을, 경우에 따라서, 「사영(射影)배열①」이라고도 칭한다. 4번째의 위치에 배합된 값「5」는, 조인된 테이블에 있어서의 전체 레코드수를 나타낸다. 또한, 도 34에 나타내는 바와 같이, 슬레이브측의 존재수 배열에 기초하여, 누계수 배열이 생성된다. 슬레이브측의 누계수 배열을, 경우에 따라서 「사영배열③」이라고도 칭한다. 또한, 마스터측의 순서부여된 집합을, 경우에 따라서, 「사영배열②」이라고도 칭한다.
이와 같이, 각종 존재수 배열 및 누계수 배열이 생성된 후, 슬레이브측의 레코드번호를 배치한 순서부여된 집합이 소트된다(스텝2403). 도 35 및 도 36을 참조하여, 보다 구체적으로 순서부여된 집합의 소트를 설명한다. 슬레이브측의 순서부여된 집합(즉, 슬레이브측의 레코드번호의 집합)으로부터 요소(즉 레코드번호)가 취출되고, 계속해서, 상기 요소[도 35(a)에 있어서는 「0」]가 가리키는 제 2 포인터 배열(PV2)의 요소[도 35(a)에 있어서는 「2」]가 특정된다. 또한, PV2의 요소가 가리키는 새로운 제 2 값 리스트(신 VL2)의 값[도 35(a)에 있어서는 「2」]이 특정된다. 이어서, 누계수 배열 중, 상기 신 VL2의 값이 나타내는 위치의 값(누계수)[도 35(a)에 있어서는 「3」]이 취출되고, 소트후의 순서부여된 집합배열 중, 상기 누계수가 나타내는 위치에, 순서부여된 집합의 요소(레코드번호)가 배치된다. 그 후, 상기 누계수가 [예컨대, 도 35(a)에 있어서는, 「3」에서 「4」로] 증가된다.
도 35(b)에 나타내는 바와 같이, 순서부여된 집합배열의 2번째의 요소「4」에 대해서도, 마찬가지로, 제 2 포인터 배열(PV2), 새로운 제 2 값 리스트(신 VL2)를 거쳐서, 누계수 배열에 있어서, 2번째(저장위치번호「1」)의 요소(누계수) 「1」이 특정된다. 따라서, 소트후의 순서부여된 집합배열에 있어서, 누계수「1」이 나타내는 위치에, 아래의 순서부여된 집합배열의 요소「4」가 배치된다. 그 후, 누계수가 「1」에서 「2」로 증가된다.
마찬가지로, 도 36(a)에 나타내는 바와 같이, 순서부여된 집합배열의 3번째의 요소「9」에 대해서, 제 2 포인터 배열(PV2), 새로운 제 2 값 리스트(신 VL2)를 거쳐서, 누계수 배열에 있어서, 1번째(저장위치번호「0」)의 요소(누계수) 「0」이 특정된다. 따라서, 소트후의 순서부여된 집합배열에 있어서, 누계수「0」이 나타내는 위치에, 원래의 순서부여된 집합배열의 요소「9」가 배치되고, 그 후, 누계수가, 「0」에서 「1」로 증가된다. 또한, 도 36(b)에 나타내는 바와 같이, 순서부여된 집합배열의 4번째의 요소「10」에 대해서, 제 2 포인터 배열(PV2), 새로운 제 2 값 리스트(신 VL2)를 거쳐서, 누계수 배열에 있어서, 2번째(저장위치번호「1」)의 요소(누계수) 「2」가 특정된다. 따라서, 소트후의 순서부여된 집합배열에 있어서, 누계수「2」가 나타내는 위치에, 원래의 순서부여된 집합배열의 요소「10」이 배치되고, 그 후, 누계수가, 「2」에서 「3」으로 증가된다. 이와 같이 하여, 슬레이브측의 레코드번호의 소트가 완료된다.
이어서, 조인된 테이블의 레코드번호에 대응하는, 마스터측의 테이블 및 슬레이브측의 테이블의 레코드번호가 산출된다. 조인된 테이블의 레코드번호의 총수(레코드수)는, 마스터측의 누계수 배열(사영배열①)의 누계수의 말미에 배치된 값에 일치한다. 따라서, 도 31 내지 도 36 등을 참조해서 설명한 예에서는, 레코드수는 「5」가 된다.
도 37 및 도 38은, 조인된 테이블의 레코드번호로부터, 대응하는 마스터측 및 슬레이브측의 레코드번호를 각각 산출하는 처리(레코드번호 산출처리)를 나타내는 플로우차트이다. 또한, 도 39는, 도 33 내지 도 36에 나타내는 예에 대해서, 도 37 및 도 38에 나타내는 처리를 실시하여 얻어진 마스터측의 레코드번호배열 및 슬레이브측의 레코드번호배열을 나타내는 도면이다.
이하, 도 33 내지 도 36에서 얻어진 사영배열을 이용하여, 도 39에 나타내는 레코드번호의 배열을 취득할 경우를 예로, 레코드번호 산출처리를 상세하게 설명한다.
우선, 조인된 테이블의 레코드번호가 취출된다(스텝3701). 이 레코드번호를, 레코드번호 산출처리에 있어서 「값A」라고 칭한다. 초기적으로는, 도 40에 나타내는 바와 같이, 조인 테이블의 레코드번호배열로부터, 선두의 요소「0」이 취출된다.
다음으로, 마스터측 누계수 배열(사영배열①) 중, 스텝3701에서 취출된 요소(레코드번호) 이하의 최대값 및 그 저장위치가 특정된다(스텝3702). 이 최대값을, 레코드번호 산출처리에서는, 「값B」라고 칭한다. 도 40의 예에서는, 사영배열①에 있어서, 레코드번호「0」이하의 최대값은 「0」이기 때문에, 「값B」가 「0」이며, 또한, 그 저장위치가 「0」으로 특정된다.
그 후, 마스터측의 순서부여된 집합배열(사영배열②) 중, 상기 저장위치의 요소(마스터측의 레코드번호)가 특정되고, 이 요소(레코드번호)가, 마스터측 레코드번호배열 중, 조인 테이블 중의 저장위치에 대응하는 위치에 배치된다(스텝3703). 도 40의 예에서는, 사영배열②에 있어서, 저장위치가 「0」 즉 선두의 값「0」이 취출되고, 이것이, 도 39에 나타내는 마스터측 레코드번호배열의 선두의 요소로서 저장된다(부호3901 참조). 이와 같이 하여, 조인 테이블의 레코드번호에 대응하는 마스터측의 레코드번호가 산출된다.
이어서, 「값A」와 「값B」의 차분이 취해진다(스텝3704). 레코드번호 산출처리에 있어서, 이 차분값을 「값C」라고 칭한다. 도 40의 예에 있어서는, 「값C=0」으로 된다(부호4010 참조).
또한, 마스터측 제 2 값 리스트(PV2) 중, 스텝3702에서 특정된 저장위치의 요소가 특정되고(스텝3705), 또한, VL2의 요소가 가리키는 위치의 새로운 제 2 값 리스트(신 VL2) 중의 값이 특정된다(스텝3706). 도 40의 예에 있어서는, PV2 중, 저장위치「0」의 요소「0」이 특정되고, 다음으로, 신 VL2 중, 저장위치가 「0」의 값「1」이 취출된다.
또한, 슬레이브측 누계수 배열(사영배열③) 중, 새로운 제 2 값 리스트(신 VL2)의 값이 가리키는 위치의 요소가 특정된다(스텝3801). 이 요소를, 레코드번호 산출처리에 있어서 「값D」라고 칭한다. 도 40의 예에서는, 사영배열③에 있어서, 신 VL2의 값「1」이 나타내는 위치의 요소(누계수) 「1」이, 값D로서 특정된다.
이 후, 「값C」와 「값D」가 가산된다(스텝3802). 레코드번호 산출처리에 있어서, 상기 가산값을 「값E」라고 칭한다. 도 40의 예에서는, 「값E=0+1=1」로 된다.
다음으로, 슬레이브측 순서부여된 집합배열[사영배열④] 중, 「값E」가 나타내는 위치의 요소(슬레이브측의 레코드번호)가 특정되고, 이 요소(레코드번호)가, 슬레이브측의 레코드번호배열 중, 조인 테이블 중의 저장위치에 대응하는 위치에 배치된다(스텝3803). 도 40의 예에서는, 사영배열④의 「1」에 대응하는 위치의 값「4」가 취출되고, 이것이, 도 39에 나타내는 슬레이브측 레코드번호배열의 선두의 요소로서 저장된다(스텝3911 참조).
스텝3701~스텝3803의 처리를, 순차, 조인 테이블의 레코드번호 각각에 대해서 실시함으로써(스텝3804,3805 참조), 조인 테이블의 각 레코드번호에 대응하는, 마스터측 및 슬레이브측의 레코드번호가 산출되고, 각각의 레코드번호가, 레코드번호배열의, 대응하는 위치에 배치된다.
도 41 내지 도 44는, 각각, 조인 테이블의 레코드번호배열 중, 2번째(저장위치번호「1」) 내지 5번째(저장위치번호「4」)의 레코드번호로부터, 마스터측 및 슬레이브측의 레코드번호를 산출하는 과정을 설명하는 도면이다.
도 41에 있어서, 조인 테이블의 레코드번호배열의 요소(레코드번호)는 「1」이며, 사영배열①에 있어서, 「1」이하의 최대값「0」 및 그 저장위치「0」이 특정된다(스텝3701,3702). 사영배열② 중, 상기 저장위치「0」에 나타내어지는 위치의 요소「0」이, 마스터측의 레코드번호로 되고, 마스터측 레코드번호배열 중의 대응하는 위치에 저장된다(스텝3703 및 부호3902 참조). 또한, 「값C=1-0=1」이 산출된다(스텝3704).
그 한편, 마스터측 PV2 중, 저장위치「0」의 요소「0」, 신 VL2 중, PV2의 요소「0」이 가리키는 위치의 값「1」이 특정되고, 또한, 사영배열③ 중, 신 VL2의 값「1」로 나타내어지는 요소(누계수) 「1」가 특정된다(스텝3705,3706 및 3801). 다음으로, 「값E=1+1=2」가 산출되고(스텝3802), 사영배열② 중, 저장위치「2」에 있는 요소(레코드번호)「10」이 취출되고, 슬레이브측 레코드번호배열 중의 대응하는 위치에 저장된다(스텝3803 및 부호3912 참조).
도 42에 있어서, 조인 테이블의 레코드번호배열의 요소(레코드번호)는 「2」이며, 사영배열①에 있어서, 「2」이하의 최대값「2」 및 그 저장위치「1」이 특정된다(스텝3701,3702). 사영배열② 중, 상기 저장위치「1」에 나타내어지는 위치의 요소「2」가, 마스터측의 레코드번호로 되고, 마스터측 레코드번호배열 중의 대응하는 위치에 저장된다(스텝3703 및 부호3903 참조). 또한, 「값C=2-2=0」이 산출된다(스텝3704).
한편, 마스터측 PV2 중, 저장위치「1」의 요소「1」, 신 VL2 중, PV2의 요소「1」이 가리키는 위치의 값「2」가 특정되고, 또한, 사영배열③ 중, 신 VL2의 값「2」로 나타내어지는 요소(누계수) 「3」이 특정된다(스텝3705,3706 및 3801). 다음으로, 「값E=0+3=3」이 산출되고(스텝3802), 사영배열② 중, 저장위치「3」에 있는 요소(레코드번호) 「0」이 취출되고, 슬레이브측 레코드번호배열 중의 대응하는 위치에 저장된다(스텝3803 및 부호3913 참조).
마찬가지로, 도 43에 있어서, 조인 테이블의 레코드번호배열의 요소(레코드번호)는 「3」이며, 사영배열①에 있어서, 「3」이하의 최대값「3」 및 그 저장위치「2」가 특정된다(스텝3701,3702). 사영배열② 중, 상기 저장위치「2」에 나타내어지는 위치의 요소「9」가, 마스터측의 레코드번호로 되고, 마스터측 레코드번호배열 중의 대응하는 위치에 저장된다(스텝3703 및 부호3904 참조). 또한, 「값C=3-3=0」이 산출된다(스텝3704).
한편, 마스터측 PV2 중, 저장위치「2」의 요소「0」, 신 VL2 중, PV2의 요소「0」이 가리키는 위치의 값「1」이 특정되고, 또한, 사영배열③ 중, 신 VL2의 값「1」로 나타내어지는 요소(누계수) 「1」이 특정된다(스텝3705,3706 및 3801). 다음으로, 「값E=0+1=1」이 산출되고(스텝3802), 사영배열② 중, 저장위치「1」에 있는 요소(레코드번호) 「4」가 취출되고, 슬레이브측 레코드번호배열 중의 대응하는 위치에 저장된다(스텝3803 및 부호3914 참조).
또한, 도 44에 있어서, 조인 테이블의 레코드번호배열의 요소(레코드번호)는 「4」이며, 사영배열①에 있어서, 「4」이하의 최대값「3」 및 그 저장위치「2」가 특정된다(스텝3701,3702). 사영배열② 중, 상기 저장위치「2」에 나타내어지는 위치의 요소「9」가, 마스터측의 레코드번호로 되고, 마스터측 레코드번호배열 중의 대응하는 위치에 저장된다(스텝3703 및 부호3905 참조). 또한, 「값C=4-3=1」이 산출된다(스텝3704).
한편, 마스터측 PV2 중, 저장위치「2」의 요소「0」, 신 VL2 중, PV2의 요소「0」이 가리키는 위치의 값「1」이 특정되고, 또한, 사영배열③ 중, 신 VL2의 값「1」으로 나타내어지는 요소(누계수) 「1」이 특정된다(스텝3705,3706 및 3801). 다음으로, 「값E=1+1=2」이 산출되고(스텝3802), 사영배열② 중, 저장위치「2」에 있는 요소(레코드번호) 「10」이 취출되고, 슬레이브측 레코드번호배열 중의 대응하는 위치에 저장된다(스텝3803 및 부호3915 참조).
도 45는, 상술한 처리의 결과 얻어진 마스터측 테이블의 레코드번호배열 및 슬레이브측 테이블의 레코드번호배열, 및, 조인된 view 등을 나타내는 도면이다. 마스터측 테이블의 레코드번호배열(3900)(중의 레코드번호)에 따라서, 마스터측의 원래의 테이블[야구 애호회 회원 원래의 테이블(4501)]로부터 레코드를 추출함으로써, 원래의 테이블의 순서가 유지된 테이블[야구 애호회 회원 테이블(4521)]이 얻어진다. 한편, 슬레이브측 테이블의 레코드번호배열(3910)(중의 레코드번호)에 따라서, 슬레이브측의 원래의 테이블[시합 예정원 테이블(45119)]로부터 레코드를 추출함으로써, 마스터측의 레코드와 대응된 테이블[시합 예정 테이블(45319)]을 얻을 수 있다.
이와 같이, 본 실시형태에 의하면, 조인의 처리에 있어서도, 각각의 사영배열을, 제 2 값 리스트와 동일하게 할 수 있다. 또한, 공유화된 값 리스트(공유화된 새로운 값 리스트)도, 기껏해야, 마스터측의 제 2 값 리스트와 슬레이브측의 제 2 값 리스트를 더한 사이즈에 불과하다. 따라서, 사영배열 중의 요소를 특정하거나, 또는, 제 2 값 리스트의 값을 특정할 때의 처리시간을 단축하는 것이 가능하게 된다.
본 발명은, 이상의 실시형태에 한정되는 일없이, 특허청구의 범위에 기재된 발명의 범위 내에서, 각종 변경이 가능해서, 그들도 본 발명의 범위 내에 포함되는 것은 말할 필요도 없다.
예컨대, 상기 실시형태에 있어서, 집계처리로서, 존재수 배열을 작성하고, 존재수 배열 중의 요소를 취출할 경우에 대해서 설명하고 있지만, 이것에 한정되는 것은 아니다. 일반적으로, 집계는, 근원적으로 「0이상의 복수의 차원 」과 「0 또는 1의 측도 」로 분해된다. 예컨대, 「성별×체중별의 체중의 평균치」를 생각하면, 차원은 「2차원」(「성별」 및 「체중별」), 측도는 「체중」이 된다. 측도가 「0」일 경우에는, 요소의 개수가, 집계로 얻어지는 값(집계값)이 된다. 이 경우에는, 존재수 배열 중의 요소가 집계값이 된다. 그 밖에, 측도로서, 합계, 최대, 최소, 평균 등을 취할 수 있다.
차원으로서는, 각종 분류가 가능하다. 예컨대, 연령에 있어서, 0~9세를 10세미만으로 하여 하나의 카테고리로 할 수 있다. 여기서는, 값 리스트와 동일한 요소수를 갖는 분류번호배열을 구비하고, 분류번호배열에 있어서, 값 리스트의 값(연령)「0」~「9」에 대응하는 위치의 요소로서 「0」을 배치하고, 다른 요소로서 「1」을 배치하면 좋다. 물론, 근원적으로는, 구별가능한 하나의 값마다, 1개의 카테고리를 배정할 수 있다. 즉, 연령에 있어서, 분류번호배열에 있어서, 예컨대 승순으로, 「0」,「1」,「2」,ㆍㆍㆍ이라는 값을 배치하는 것이 가능하다. 그리고, 집계에 있어서는, 소정 분류번호에 관련되는 레코드번호의 집합을 취득하고, 상기 레코드번호로부터 특정되는 값에 대하여, 소정의 연산을 실시하면 좋다. 이것에 의해, 합계, 최대, 최소 등 각종 집계값을 얻는 것이 가능하게 된다. 본 실시형태에 있어서도, 제 2 값 리스트와 동일한 사이즈의 분류번호배열을 구비하고, 거기에, 카테고리에 대응하는 값을 배정하면, 각종 집계값을 취득하는 것이 가능하다.
또한, 상기 실시형태에 있어서는, 제 2 포인터 배열 및 제 2 값 리스트를 생성함으로써 검색, 집계, 소트, 조인 등에 이용하는 배열의 사이즈를 압축하고, 이것에 의해, 필요로 하는 메모리 영역을 작게 하여, 처리시간의 단축을 도모하고 있다. 그러나, 이것에 한정되는 것은 아니고, 제 2 포인터 배열 및 제 2 값 리스트를 생성하는 중간단계에 생성한 항목값번호배열을 이용해도 좋다. 이 경우에는, 제 2 포인터 배열(PV2) 대신에, 항목값번호배열을 이용하고, 제 2 값 리스트(VL2) 대신에, 원래의 값 리스트(VL)를 이용하면 좋다. 즉, 상기 실시형태에 있어서, 예컨대, 값 리스트 중의 항목값을 특정하기 위해서,
순서부여된 집합배열 중의 요소, 제 2 포인터 배열 중의 요소, 제 2 값 리스트 중의 요소, 값 리스트 중의 요소(항목값)의 순서로, 요소가 특정된 것에 대해서, 상기 변형예에서는, 순서부여된 집합배열 중의 요소, 항목값번호배열 중의 요소, 값 리스트 중의 요소(항목값)의 순서로, 요소가 특정되면 좋다.
또한, 검색, 집계, 소트, 조인 등의 처리에 있어서도, 값을 참조하는 배열로서, 제 2 포인터 배열 대신에 항목값번호배열을 이용하고, 또한, 제 2 값 리스트 대신에 원래의 값 리스트를 이용하면 좋다.
또한, 상기 실시형태에 있어서는, 일반 컴퓨터 시스템(10) 내에, 소정의 프로그램을 입력하여, 그 프로그램을 실행함으로써, 복수의 표형식데이터의 조인 및 조인된 표형식데이터에 관한 처리를 실현하고 있지만, 본 발명은 이것에 한정되는 것은 아니고, 퍼스널 컴퓨터 등과 같은 일반 컴퓨터 시스템에, 데이터베이스 처리전용의 보드 컴퓨터를 접속하여, 상기 보드 컴퓨터가 상기 처리를 실행할 수 있도록 구성해도 좋은 것은 말할 필요도 없다. 따라서, 본 명세서에 있어서, 수단은 반드시 물리적수단을 의미하는 것은 아니고, 각 수단의 기능이, 소프트웨어 및/또는 하드웨어에 의해 실현되는 경우를 포함한다. 또한, 1개의 수단의 기능이, 두개이상의 물리적수단에 의해 실현되어도, 혹은, 2개이상의 수단의 기능이, 1개의 물리적수단에 의해 실현되어도 좋다.
본 발명에 의하면, 상기 배열을 부분집합의 크기, 이것에 따라서 한정되는 값 리스트의 부분집합의 크기에 합치시켜서, 부분집합의 크기에 상당하는 처리시간의 단축을 실현하는 방법을 제공하는 것이 가능하게 된다.
본 발명은, 특히, 대량의 데이터를 관리하는 시스템, 예컨대, 데이터 베이스, 데이터 웨어하우스에 이용할 수 있다. 보다 구체적으로는, 대규모의 과학기술계산, 수발주 관리나 증권거래 등의 기간업무관리, 사무관리에 이용가능하다.

Claims (12)

  1. 각각이 항목과 그 항목에 속하는 항목값을 포함하는 레코드의 배열로서 표시되는 표형식데이터 중, 처리대상으로 해야 할 부분집합을 추출하기 위한 데이터 처리방법으로서,
    a) 상기 표형식데이터를, 각각이, 특정 항목에 속하는 항목값에 대응한 항목값번호의 순서로 상기 항목값이 저장되어 있는 값 리스트와, 일의적인 레코드번호의 순서로, 상기 항목값번호를 가리키기 위한 포인터 값이 저장된 포인터 배열로 이루어지는 정보블록으로 분할하도록 구성하는 스텝;
    b) 상기 레코드 중, 그 일부가 부분집합으로서 선택된 것에 응답하여, 상기 부분집합의 레코드번호를 수용한 순서부여된 집합배열을 생성하는 스텝;
    c) 상기 순서부여된 집합의 각각의 레코드번호가 가리키는 위치의, 상기 포인터 배열 중의 포인터 값을, 상기 레코드번호가 배치된 위치에 대응하여, 항목값번호배열 중에 배치하는 스텝; 및
    d) 상기 항목값번호배열 중의 값을 참조하여, 위치의 요소를 저장한 제 2 포인터 배열 및 값의 요소를 저장한 제 2 값 리스트를 생성하는 스텝을 구비하고, 상기 순서부여된 집합배열의 레코드번호로부터, 상기 레코드번호가 가리키는 위치의 제 2 포인터 배열 중의 요소, 및, 제 2 포인터 배열 중의 요소가 가리키는 위치의 상기 제 2 값 리스트 중의 요소를 통해서, 값 리스트 중의 값이 특정되는 것을 특징으로 하는 데이터 처리방법.
  2. 제1항에 있어서, 상기 제 2 포인터 배열 및 제 2 값 리스트를 생성하는 스텝이,
    상기 항목값번호배열 중의 요소를 소트하고, 또한, 중복값이 배제된 상태로 된 배열을 생성하여, 이것을 제 2 값 리스트로 하는 스텝; 및
    상기 소트 및 중복값의 배제를 반영하도록, 상기 항목값번호배열 중의 요소를 변환하여, 제 2 포인터 배열을 생성하는 스텝을 갖는 것을 특징으로 하는 데이터 처리방법.
  3. 각각이 항목과 그 항목에 속하는 항목값을 포함하는 레코드의 배열로서 표시되는 표형식데이터 중, 처리대상으로 해야 할 부분집합을 추출하기 위한 데이터 처리방법으로서,
    a) 상기 표형식데이터를, 각각이, 특정 항목에 속하는 항목값에 대응한 항목값번호의 순서로 상기 항목값이 저장되어 있는 값 리스트와, 일의적인 레코드번호의 순서로, 상기 항목값번호를 가리키기 위한 포인터 값이 저장된 포인터 배열로 이루어지는 정보블록으로 분할하도록 구성하는 스텝;
    b) 상기 레코드 중, 그 일부가 부분집합으로서 선택된 것에 응답하여, 상기 부분집합의 레코드번호를 수용한 순서부여된 집합배열을 생성하는 스텝;
    c) 상기 순서부여된 집합의 각각의 레코드번호가 가리키는 위치의, 상기 포인터 배열 중의 포인터 값을, 상기 레코드번호가 배치된 위치에 대응하여, 항목값번호배열 중에 배치하는 스텝; 및
    e) 상기 항목값번호배열 중을 제 2 값 리스트로서 이용함과 아울러, 원래의 값 리스트를 제 2 값 리스트로서 이용하는 스텝을 구비하고,
    상기 순서부여된 집합배열의 레코드번호로부터, 상기 레코드번호가 가리키는 위치의 제 2 포인터 배열 중의 요소, 및, 제 2 포인터 배열 중의 요소가 가리키는 위치의 상기 제 2 값 리스트 중의 요소를 통해서, 값 리스트 중의 값이 특정되는 것을 특징으로 하는 데이터 처리방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 순서부여된 집합배열의 사이즈와, 상기 값 리스트의 사이즈를 비교하는 스텝을 추가로 구비하고,
    상기 비교의 결과, 부분집합의 사이즈가, 값 리스트의 사이즈보다 소정의 비율로 작을 경우에, 상기 c) 및 d), 또는, 상기 c) 및 e)의 스텝을 실행하는 것을 특징으로 하는 데이터 처리방법.
  5. 제1항 내지 제4항 중 어느 한 항에 기재된 데이터 처리방법에 의해 생성된 제 2 포인터 배열 및/또는 제 2 값 리스트를 이용한 검색방법으로서,
    제 2 값 리스트 중의 요소 중, 검색 대상이 되는 항목값을 가리키는 요소를 특정하는 스텝;
    상기 제 2 값 리스트와 동일한 사이즈의 플래그 배열 중, 상기 특정된 요소의 위치와 대응하는 위치에, 플래그가 온인 상태를 나타내는 값을 배치하는 스텝;
    상기 순서부여된 집합 중의 레코드번호가 가리키는, 제 2 포인터 배열의 요소를 특정하는 스텝;
    상기 플래그 배열 중, 상기 제 2 포인터 배열의 요소가 가리키는 위치의 플래그의 상태를 참조하는 스텝; 및
    상기 플래그의 상태가 온일 경우, 상기 레코드번호를, 새롭게 설치된 출력용 순서부여된 집합배열로, 순차적으로 배치하는 스텝을 구비한 것을 특징으로 하는 검색방법.
  6. 제1항 내지 제4항 중 어느 한 항에 기재된 데이터 처리방법에 의해 생성된 제 2 포인터 배열 및/또는 제 2 값 리스트를 이용한 집계방법으로서,
    상기 제 2 값 리스트의 요소에 대응하여, 값의 카테고리를 나타내는 분류번호를 배치하는 분류번호배열을 생성하는 스텝;
    지정된 분류번호에 대응하는, 상기 순서부여된 집합배열 중의 레코드번호를 특정하는 스텝; 및
    상기 특정된 레코드번호가 가리키는, 소정의 값 리스트의 항목값을 이용한 집계를 실행하는 스텝을 구비한 것을 특징으로 하는 집계방법.
  7. 제1항 내지 제4항 중 어느 한 항에 기재된 데이터 처리방법에 의해 생성된 제 2 포인터 배열 및/또는 제 2 값 리스트를 이용한 소트방법으로서,
    상기 제 2 값 리스트의 값마다, 상기 제 2 포인터 배열이 가리키는 요소의 수인 존재수를 산출하는 스텝;
    상기 존재수에 기초하여, 상기 제 2 값 리스트의 값에 대응하는, 상기 순서부여된 집합배열 중의 레코드번호를 배치해야 할 선두의 위치를 나타내는 누계수 배열을 생성하는 스텝; 및
    상기 누계수 배열을 참조하여, 상기 값 리스트 중의 항목값의 소트순이 반영되도록, 상기 순서부여된 집합배열의 레코드번호를, 출력용 배열 중에 배치하는 스텝을 구비한 것을 특징으로 하는 소트방법.
  8. 제1항 내지 제4항 중 어느 한 항에 기재된 데이터 처리방법에 의해, 생성된, 복수의 표형식데이터 각각에 관한 정보블록에 있어서의, 제 2 포인터 배열 및/또는 제 2 값 리스트를 이용하여, 표형식데이터를 결합하는 방법으로서,
    복수의 표형식데이터 각각에 있어서, 공유화해야 할 항목을 찾아내는 스텝;
    상기 항목에 관한 정보블록의 제 2 값 리스트 중의 항목값을 등가로 하는 스텝; 및
    상기 항목값을 등가로 하는 것에 응답하여, 각각의 정보블록에 있어서, 제 2 포인터 배열 중의 요소를, 상기 항목값의 배치의 변화에 합치하도록 갱신하는 스텝을 구비한 것을 특징으로 하는 표형식데이터를 결합하는 방법.
  9. 각각이 항목과 그 항목에 속하는 항목값을 포함하는 레코드의 배열로서 표시되는 표형식데이터 중, 처리대상으로 해야 할 부분집합을 추출하기 위해서, 컴퓨터를 동작시키는 데이터 처리 프로그램으로서,
    a) 상기 표형식데이터를, 각각이, 특정 항목에 속하는 항목값에 대응한 항목값번호의 순서로 상기 항목값이 저장되어 있는 값 리스트와, 일의적인 레코드번호의 순서로, 상기 항목값번호를 가리키기 위한 포인터 값이 저장된 포인터 배열로 이루어지는 정보블록으로 분할하도록 구성하는 스텝;
    b) 상기 레코드 중, 그 일부가 부분집합으로서 선택된 것에 응답하여, 상기 부분집합의 레코드번호를 수용한 순서부여된 집합배열을 생성하는 스텝;
    c) 상기 순서부여된 집합의 각각의 레코드번호가 가리키는 위치의, 상기 포인터 배열 중의 포인터 값을, 상기 레코드번호가 배치된 위치에 대응하여, 항목값번호배열 중에 배치하는 스텝; 및
    d) 상기 항목값번호배열 중의 값을 참조하여, 위치의 요소를 저장한 제 2 포인터 배열 및 값의 요소를 저장한 제 2 값 리스트를 생성하는 스텝을, 상기 컴퓨터에 실행시키고,
    상기 순서부여된 집합배열의 레코드번호로부터, 상기 레코드번호가 가리키는 위치의 제 2 포인터 배열 중의 요소, 및, 제 2 포인터 배열 중의 요소가 가리키는 위치의 상기 제 2 값 리스트 중의 요소를 통해서, 값 리스트 중의 값이 특정되도록, 상기 컴퓨터를 동작시키는 것을 특징으로 하는 데이터 처리 프로그램.
  10. 제9항에 있어서, 상기 제 2 포인터 배열 및 제 2 값 리스트를 생성하는 스텝에 있어서,
    상기 항목값번호배열 중의 요소를 소트하고, 또한, 중복값이 배제된 상태로 된 배열을 생성하여, 이것을 제 2 값 리스트로 하는 스텝; 및
    상기 소트 및 중복값의 배제를 반영하도록, 상기 항목값번호배열 중의 요소를 변환하여, 제 2 포인터 배열을 생성하는 스텝을 상기 컴퓨터에 실행시키는 것을 특징으로 하는 데이터 처리 프로그램.
  11. 각각이 항목과 그 항목에 속하는 항목값을 포함하는 레코드의 배열로서 표시되는 표형식데이터 중, 처리대상으로 해야 할 부분집합을 추출하기 위해서, 컴퓨터를 동작시키는 데이터 처리 프로그램으로서,
    a) 상기 표형식데이터를, 각각이, 특정 항목에 속하는 항목값에 대응한 항목값번호의 순서로 상기 항목값이 저장되어 있는 값 리스트와, 일의적인 레코드번호의 순서로, 상기 항목값번호를 가리키기 위한 포인터 값이 저장된 포인터 배열로 이루어지는 정보블록으로 분할하도록 구성하는 스텝;
    b) 상기 레코드 중, 그 일부가 부분집합으로서 선택된 것에 응답하여, 상기 부분집합의 레코드번호를 수용한 순서부여된 집합배열을 생성하는 스텝;
    c) 상기 순서부여된 집합의 각각의 레코드번호가 가리키는 위치의, 상기 포인터 배열 중의 포인터 값을, 상기 레코드번호가 배치된 위치에 대응하여, 항목값번호배열 중에 배치하는 스텝; 및
    e) 상기 항목값번호배열 중을 제 2 값 리스트로서 이용함과 아울러, 원래의 값 리스트를 제 2 값 리스트로서 이용하는 스텝을, 상기 컴퓨터에 실행시키고,
    상기 순서부여된 집합배열의 레코드번호로부터, 상기 레코드번호가 가리키는 위치의 제 2 포인터 배열 중의 요소, 및, 제 2 포인터 배열 중의 요소가 가리키는 위치의 상기 제 2 값 리스트 중의 요소를 통해서, 값 리스트 중의 값이 특정되도록, 상기 컴퓨터를 동작시키는 것을 특징으로 하는 데이터 처리 프로그램.
  12. 제9항 내지 제11항 중 어느 한 항에 있어서, 추가로, 상기 순서부여된 집합배열의 사이즈와, 상기 값 리스트의 사이즈를 비교하는 스텝을, 상기 컴퓨터에 실행시키고,
    상기 비교의 결과, 부분집합의 사이즈가, 값 리스트의 사이즈보다 소정의 비율로 작을 경우에, 상기 c) 및 d), 또는, 상기 c) 및 e)의 스텝을, 상기 컴퓨터에 실행시키는 것을 특징으로 하는 데이터 처리 프로그램.
KR1020057007001A 2002-10-25 2003-10-23 데이터 처리방법 및 데이터 처리 프로그램 KR101030250B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2002310618A JP4136594B2 (ja) 2002-10-25 2002-10-25 データ処理方法およびデータ処理プログラム
JPJP-P-2002-00310618 2002-10-25

Publications (2)

Publication Number Publication Date
KR20050061557A true KR20050061557A (ko) 2005-06-22
KR101030250B1 KR101030250B1 (ko) 2011-04-22

Family

ID=32171053

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057007001A KR101030250B1 (ko) 2002-10-25 2003-10-23 데이터 처리방법 및 데이터 처리 프로그램

Country Status (7)

Country Link
US (1) US7882114B2 (ko)
EP (1) EP1555609A1 (ko)
JP (1) JP4136594B2 (ko)
KR (1) KR101030250B1 (ko)
CN (1) CN100507830C (ko)
CA (1) CA2503503A1 (ko)
WO (1) WO2004038582A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4707198B2 (ja) * 2006-10-19 2011-06-22 富士通株式会社 情報検索プログラム、該プログラムを記録した記録媒体、情報検索方法、および情報検索装置
JP2008250546A (ja) * 2007-03-29 2008-10-16 Fujitsu Broad Solution & Consulting Inc データ検索方法、プログラム及び装置
US8108437B2 (en) * 2008-06-12 2012-01-31 Oracle International Corporation Sortable hash table
CN104067281A (zh) * 2011-11-28 2014-09-24 惠普发展公司,有限责任合伙企业 按多个时间维度的聚类事件数据
US8892576B2 (en) * 2012-10-26 2014-11-18 International Business Machines Corporation Ordering and presenting a set of data tuples
CN103984636B (zh) * 2013-02-08 2017-09-29 上海芯豪微电子有限公司 存储结构及信息存储、读取、寻址方法
JPWO2022153400A1 (ko) * 2021-01-13 2022-07-21
CN114172911A (zh) * 2021-10-29 2022-03-11 青岛海享智科技有限公司 群控系统控制方法、设备和介质
CN115630655B (zh) * 2022-12-22 2023-04-14 星汉智能科技股份有限公司 读取sim卡的记录文件的方法、系统及可读存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5544312A (en) * 1994-04-29 1996-08-06 Intel Corporation Method of detecting loss of power during block erasure and while writing sector data to a solid state disk
US6032207A (en) * 1996-12-23 2000-02-29 Bull Hn Information Systems Inc. Search mechanism for a queue system
CA2340008C (en) 1998-08-11 2008-09-23 Shinji Furusho Method and apparatus for retrieving, accumulating, and sorting table-formatted data
JP4428488B2 (ja) * 1999-05-31 2010-03-10 株式会社ターボデータラボラトリー 表形式データの結合方法、上記方法を実現するプログラムを記憶した記憶媒体、および、表形式データを結合する装置
JP4425377B2 (ja) 1999-07-29 2010-03-03 株式会社ターボデータラボラトリー データ処理装置、および、データ処理方法
JP2002169689A (ja) * 2000-12-04 2002-06-14 Toshiba Corp データソーティング方法およびデータソーティングシステム

Also Published As

Publication number Publication date
US7882114B2 (en) 2011-02-01
US20060218154A1 (en) 2006-09-28
EP1555609A1 (en) 2005-07-20
JP4136594B2 (ja) 2008-08-20
WO2004038582A1 (ja) 2004-05-06
CA2503503A1 (en) 2004-05-06
JP2004145692A (ja) 2004-05-20
CN100507830C (zh) 2009-07-01
CN1717652A (zh) 2006-01-04
KR101030250B1 (ko) 2011-04-22

Similar Documents

Publication Publication Date Title
JP3581831B2 (ja) 表形式データの検索・集計・ソート方法及び装置
CN110292775B (zh) 获取差异数据的方法及装置
KR101855736B1 (ko) 데이터베이스와 상호작용하는 컴퓨터 지원 설계 시스템의 세션 내에서의 모델링된 객체의 설계
KR100711567B1 (ko) 표형식 데이터 결합방법 및 제시방법
US5890150A (en) Random sampling method for use in a database processing system and a database processing system based thereon
CN104685496B (zh) 关系型数据库管理系统中删减聚类表的磁盘块
WO2016080413A1 (ja) データ検索装置、プログラム、及び記録媒体
EP2608074A2 (en) Systems and methods for merging source records in accordance with survivorship rules
JP2000187668A (ja) グループ化方法と重複排除方法
EP1672540A1 (en) Complex data access
EP3401808A1 (en) Interactive data exploration
KR101030250B1 (ko) 데이터 처리방법 및 데이터 처리 프로그램
CN100465946C (zh) 数据编译方法
JP3860992B2 (ja) データの結合・提示方法、および、データ結合・提示プログラム
JP2005135221A (ja) 表形式データの結合方法、結合装置およびプログラム
CN106055690A (zh) 一种基于属性匹配的快速检索与获取数据特征方法
JPH08305724A (ja) 設計支援情報文書管理装置
WO2021044497A1 (ja) データ分析処理装置、データ分析処理方法及びデータ分析処理プログラム
JP3552339B2 (ja) データベースシステム
JPH08234977A (ja) ソフトウェアプロジェクトにおける多面的進捗管理方式
CN113420062B (zh) 一种建筑机电系统bim模型信息快速检索方法
CN114661704B (zh) 数据资源全生命周期管理方法、系统、终端及介质
CN113448966B (zh) 一种订单类数据多维度分表系统
JPH01239631A (ja) 電子化文書検索装置
JP5916974B1 (ja) データ検索装置、プログラム、及び記録媒体

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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: 20140217

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170314

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180320

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee