KR100711567B1 - 표형식 데이터 결합방법 및 제시방법 - Google Patents

표형식 데이터 결합방법 및 제시방법 Download PDF

Info

Publication number
KR100711567B1
KR100711567B1 KR1020017015348A KR20017015348A KR100711567B1 KR 100711567 B1 KR100711567 B1 KR 100711567B1 KR 1020017015348 A KR1020017015348 A KR 1020017015348A KR 20017015348 A KR20017015348 A KR 20017015348A KR 100711567 B1 KR100711567 B1 KR 100711567B1
Authority
KR
South Korea
Prior art keywords
item
value
pointer
array
tabular data
Prior art date
Application number
KR1020017015348A
Other languages
English (en)
Other versions
KR20020009623A (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 KR20020009623A publication Critical patent/KR20020009623A/ko
Application granted granted Critical
Publication of KR100711567B1 publication Critical patent/KR100711567B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing

Landscapes

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

Abstract

각 표형식 데이터를 특정 항목에 속하는 항목값에 대응한 항목값번호의 순으로 해당 항목값이 격납되어 있는 값리스트와, 일의적인 레코드번호의 순으로 해당 항목값번호를 지시하기 위한 포인터값이 격납된 포인터배열로 이루어진 하나이상의 정보블록으로 분할하도록 구성한다. 복수의 표형식의 결합은, 복수의 표형식 데이터사이에서 등가인 항목을 찾아내고, 등가인 항목에 관한 정보블록을 특정하고, 복수의 표형식 데이터의 각각에 있어서, 특정된 정보블록에 포함되는 값리스트를 비교해서 쌍방의 값리스트를 동치로 하고, 값리스트를 동치로 할 때, 그 항목값이 추가된 정보블록에 있어서, 관련된 포인터배열의 포인터값을 추가하고, 복수의 표형식 데이터에 있어서, 특정 항목에 관한 정보블록에 포함되는 값리스트를 등가로 한다.

Description

표형식 데이터 결합방법 및 제시방법{METHOD FOR COMBINING TABLE DATA}
본 발명은 컴퓨터와 같은 정보처리장치를 이용해서 대량의 데이터를 처리하는 데이터처리방법 및 데이터처리장치에 관한 것으로, 보다 상세하게는 관계자료틀(relational data base)에 있어서, 복수의 표형식 데이터를 결합해서 원하는 레코드 등의 항목값을 검색, 집계하고, 소트하는 방법 및 장치에 관한 것이다.
데이터베이스는 여러가지 용도로 이용되고 있지만, 중간규모 내지 대규모시스템에 있어서는 논리적인 모순을 배제할 수 있는 관계자료틀(RDB)의 사용이 주류로 되고 있다. 예를 들면, RDB는 비행기의 좌석예약 등의 시스템에 이용되고 있다. 이 경우, 키항목을 지정함으로써, (대부분의 경우 1건의)타겟을 신속하게 검색할 수 있고, 또는 예약의 확정, 취소 혹은 변경 등을 행할 수 있다. 또, 각 편의 좌석수는 고작 수백이므로, 특정의 항공편의 빈자석수를 구하는 것도 가능하다.
그런데, 이 RDB를 이용해서, 연도마다, 요일마다, 월마다, 노선마다, 시간대마다 혹은 기종마다 등으로, 특정의 연산(예를 들면, 탑승율의 계산)을 하려고 하면, 매우 시간이 걸린다. 즉, RDB는 처리를 모순없이 실현하는 것이 우수한 반면, 상당수의 레코드를 검색, 집계 혹은 소트하는 성능이 낮다.
그래서, 최근, 검색이나 집계를 위해, RDB와는 별도로, 데이터웨어하우스(DWH)라고 불리는 데이터베이스를 시스템에 구축하는 것이 일반화되고 있다. 즉, 최종 사용자의 특정의 목적에 맞춰 특정 데이터형식 및 데이터항목명을 구비한 매우 대규모의 데이터베이스를 구축하고, 최종 사용자는 이것을 이용해서 특정의 검색이나 집계를 할 수 있도록 되어 있다.
그러나, RDB외에, 다른 DWH를 설치하는 것, 즉, 복수의 데이터베이스를 설치하는 것은 본래, 데이터를 집중관리할 수 있기 위해 데이터베이스, 특히, RDB가 고안되었다라는 본래의 취지에 동떨어지며, 이것에 유래해서 예를 들면, 이하에 서술하는 여러가지 문제점이 발생하고 있다.
(1)DWH는 고정적인 것이므로, 미리 DWH에 설정된 항목이외의 검색이나 집계를 행하는 것이 곤란하다.
(2)RDB외에 고정적인 DWH를 설치하기 때문에, 데이터용량이 매우 커지는 것외에, RDB의 갱신 등에 대응할 수 없다.
본 발명은 복수의 표형식 데이터를 원하는 대로 고속으로 조인할 수 있고, 또한 그 데이터용량도 작은 표형식 데이터의 구조, 그 결합방법, 및 결합한 표형식 데이터를 매우 고속으로 제시하는 제시방법을 제공하는 것을 목적으로 한다.
본 발명의 목적은 각각이, 항목과 이 항목에 포함되는 항목값을 포함하는 레코드의 배열로서 나타내어지는 복수의 표형식 데이터를 결합하는 방법으로서, 각 표형식 데이터를 각각이, 특정 항목에 속하는 항목값에 대응한 항목값번호의 순으로 해당 항목값이 격납되어 있는 값리스트와, 일의적인 레코드번호의 순으로 해당 항목값번호를 지시하기 위한 포인터값이 격납된 포인터배열로 이루어진 하나이상의 정보블록으로 분할하도록 구성하고, 복수의 표형식 데이터 사이에서 등가(等價)인 항목을 찾아내고, 상기 등가인 항목에 관한 정보블록을 특정하고, 상기 복수의 표형식 데이터의 각각에 있어서, 상기 특정된 정보블록에 포함되는 값리스트를 비교해서 쌍방의 값리스트를 동치(同値)로 하고, 상기 값리스트를 동치로 할 때, 그 항목값이 추가된 정보블록에서 관련된 포인터배열의 포인터값을 추가하고, 상기 복수의 표형식 데이터에 있어서, 특정 항목에 관한 정보블록에 포함되는 값리스트를 등가로 함으로써 표형식 데이터를 결합하는 것을 특징으로 하는 결합방법에 의해 달성된다.
본 발명에 의하면, 실제의 항목값이 격납된 값리스트와, 해당 값리스트의 항목값을 지정하기 위한 포인터값을 격납한 포인터배열에 의해 어느 항목에 관한 정보블록을 구성하고, 여러가지 항목에 관한 정보블록의 집합체로서 표형식 데이터를 표현하고 있다. 따라서, 복수의 표형식 데이터를 결합(즉 조인)할 때, 표형식 데이터사이의 정보블록중의 값리스트에 착안하여, 값리스트의 항목값을 동치로 해서 이것에 응답해서 관련된 포인터배열을 변경하고 있다. 따라서, 번잡한 처리를 필요로 하지 않고, 값리스트의 항목값의 추가 및 이것에 따른 포인터값의 추가를 행하는 것(즉, 값리스트를 공유화하는 것)에 의해, 두개의 표형식 데이터를 결합하는 것이 가능하게 된다.
본 발명의 바람직한 실시형태에 있어서는, 등가로 된 값리스트를 구비한 정보블록에 관해서 단일의 값리스트만이 현실적으로 유지된다. 즉 공유화된 값리스트 에 관해서는 어느 한 쪽을 유지하고 있으면 된다. 이것에 의해 필요한 메모리용량을 삭감하는 것이 가능하게 된다. 또, 조인을 위해 다대한 처리를 필요로 하지 않으므로, 표형식 데이터 결합(조인)을 매우 고속으로 실현하는 것이 가능하게 된다.
본 발명의 목적은 상기 결합방법에 의해 특정 항목에 관한 정보블록에 포함되는 값리스트가 등가로 된 복수의 표형식 데이터를 준비하고, 상기 복수의 표형식 데이터에 관해서, 상기 특정 항목에 관한 정보블록 중 포인터배열의 포인터값이 중복되지 않는 키항목에 관한 정보블록을 특정하고, 해당 정보블록을 구비한 표형식 데이터를 서브표형식 데이터로 결정하고, 어느 하나의 정보블록에 있어서, 값리스트의 항목값의 순으로 상기 서브표형식 데이터의 레코드번호를 특정하는 제2포인터배열을 생성하고, 상기 복수의 표형식 데이터에 포함되는 정보블록 중, 제시해야할 항목에 관한 정보블록을 특정하고, 상기 제시해야할 항목에 관한 정보블록 중, 상기 서브표형식 데이터이외의 표형식 데이터인 메인표형식 데이터를 구성하는 정보블록에 관해서 소정의 레코드번호에 대응한 포인터배열중의 포인터값을 참조해서 소정 항목값을 취득하고, 상기 제시해야할 항목에 관한 정보블록 중, 상기 서브표형식을 구성하는 정보블록에 관해서, 상기 소정의 레코드번호에 대응한 상기 제2포인터배열중의 서브표형식에 관한 레코드번호를 특정하고, 상기 서브표형식 데이터를 구성하는 정보블록에 있어서, 해당 서브표형식 데이터에 관한 레코드번호에 대응한 포인터배열중의 포인터값을 참조해서 소정의 항목값을 취득하고, 취득한 항목값을 제시하는 것을 특징으로 하는 결합된 표형식 데이터 제시방법에 의해서도 달성된다.
본 발명에 의하면, 예를 들면, 복수의 표형식 데이터에 관해서 유저에 의해 특정 항목이 선택되고, 그 제시가 요구된 경우에, 복수의 표형식 데이터를 결합하고, 서브표형식 데이터에 있어서는 메인표형식 데이터의 레코드번호로부터 서브 표형식 데이터의 레코드번호를 특정할 수 있도록(즉, 역해결 할 수 있도록) 제2포인터배열을 생성한다. 메인표형식 데이터에 관해서는 메인표형식 데이터의 레코드번호로부터 포인터배열중의 포인터값을 특정하고, 또한, 해당 포인터값에 의해 지시된 항목값을 특정함으로써, 원하는 항목값을 구할 수 있다. 한편, 서브표형식 데이터에 관해서는 메인표형식 데이터의 레코드번호로부터 서브표형식 데이터의 레코드번호를 특정하고, 계속해서, 포인터배열중의 포인터값 및 해당 포인터값에 의해 지시된 항목값을 순차 특정함으로써, 원하는 항목값을 구할 수 있다. 따라서, 복수의 표형식 데이터로부터 원하는 항목을 선택해서 조인한 표(뷰)를 고속으로 실현하는 것이 가능하게 된다.
상기 서브표형식 데이터의 레코드번호를 특정하기 위해, 상기 키항목에 관한 정보블록에, 해당 정보블록에 포함되는 값리스트의 항목값의 순으로 레코드번호를 지시하기 위한 포인터값이 격납된 제2포인터배열을 생성해도 좋다. 이 경우에는 제시해야할 항목에 관한 정보블록 중, 서브표형식 데이터를 구성하는 정보블록에 있어서, 상기 소정 레코드번호에 대응한 포인터배열중의 포인터값을 참조해서 대응하는 제2포인터배열중의 서브표형식 데이터에 관한 레코드번호를 특정하고, 해당 서브표형식 데이터를 구성하는 정보블록에 있어서, 해당 제2포인터배열중의 레코드번호에 대응한 포인터배열중의 포인터값을 참조함으로써 소정 항목값을 취득한다. 이 방법은 보다 구체적으로는 제1실시형태에서 설명이 이루어지고 있다.
또한, 상기 메인표형식 데이터를 구성하는 정보블록으로서, 그 값리스트가 등가로 된 정보블록중에 값리스트의 항목값의 순으로 상기 서브표형식 데이터의 레코드번호를 지시하기 위한 포인터값이 격납된 제2포인터배열을 생성하고, 상기 소정의 레코드번호에 대응한 상기 제2포인터배열중의 서브표형식 데이터에 관한 레코드번호를 특정하고, 상기 제시해야할 항목에 관한 정보블록 중, 상기 서브표형식 데이터를 구성하는 정보블록에 있어서, 상기 서브표형식 데이터에 관한 레코드번호에 대응한 포인터배열중의 포인터값을 참조해서, 소정의 항목값을 취득하도록 구성해도 좋고(제2실시형태 참조), 상기 서브표형식 데이터를 구성하는 정보블록 중, 적어도 제시해야할 항목에 관한 정보블록에 값리스트의 항목값의 순으로 해당 서브표형식 데이터의 레코드번호를 지시하기 위한 포인터값이 격납된 제2포인터배열을 생성하고, 상기 제시해야할 항목에 관한 정보블록 중, 서브표형식 데이터를 구성하는 정보블록에 있어서, 상기 소정 레코드번호에 대응한 포인터배열중의 포인터값을 참조해서 대응하는 제2포인터배열중의 서브표형식 데이터에 관한 레코드번호를 특정하고, 상기 서브표형식 데이터를 구성하는 정보블록에 있어서, 해당 제2포인터배열중의 레코드번호에 대응한 포인터배열중의 포인터값을 참조함으로써, 소정 항목값을 취득하도록 구성해도 좋다(제3실시형태 참조).
본 발명의 다른 실시형태에 있어서는, 또한, 소정의 순서에 따라서, 그 항목값을 소트해야할 정보블록에 메인표형식 데이터에 관한 레코드의 개수를 나타낸 존재수를 항목값에 대응해서 격납하는 존재수배열을 생성하고, 상기 존재수배열에 따라서, 상기 메인표형식 데이터에 관한 레코드번호를 격납하는 위치의 초기값을 나 타낸 위치지시배열을 생성하고, 상기 메인표형식 데이터의 레코드번호를 대응하는 포인터값에 의해 나타내어지는 위치의 위치지시배열에 따라 배치하는 동시에, 해당 위치지시배열의 대응하는 값을 인크리먼트함으로써, 메인표형식 데이터의 레코드번호가 소트되어 격납된 소트배열을 생성하고, 상기 소트배열에 격납된 레코드번호의 순으로 필요한 항목값을 취득해서, 해당 키항목에 기초하여 소트된 항목값을 제시하도록 구성되어 있다. 이 실시형태에 의하면 메인표형식 데이터의 레코드번호가 소트된 형태로 격납된 소트배열을 생성하고, 해당 소트배열에 격납된 레코드번호에 기초하여 포인터값 및 항목값을 특정하므로, 번잡한 처리를 하지 않고, 원하는 항목에 대해서 소트한 표(뷰)를 구할 수 있다.
예를 들면, 소트해야할 항목이 키항목인 경우에는, 키항목에 관한 정보블록에 메인표형식 데이터를 구성하는 정보블록으로서 해당 정보블록과 등가인 값리스트를 갖는 정보블록의 포인터배열중의 포인터값의 개수를 나타낸 존재수를 해당 키항목의 정보블록중의 값리스트의 순에 따라서 격납하는 존재수배열을 생성한다. 그 이외의 경우에는 키항목에 관한 정보블록과 등가인 메인표형식 데이터를 구성하는 정보블록중의 포인터배열과, 상기 제2포인터배열을 이용해서 상기 항목값을 소트해야할 정보블록에 메인표형식 데이터에 관한 레코드의 수를 나타낸 존재수를 격납하는 존재수배열을 생성하면 좋다.
본 발명의 또 다른 실시형태에 있어서는, 결합된 표형식 데이터를 제시하는 방법은 특정 항목에 관한 정보블록에 포함되는 값리스트가 등가로 된 복수의 표형식 데이터를 준비하고, 상기 복수의 표형식 데이터에 관해서, 상기 특정 항목에 관 한 정보블록 중, 제시할 때 디폴트의 소트순이 반영되는 표형식 데이터를 주(主)표형식 데이터로 결정하고, 그 이외의 표형식 데이터를 종(從)표형식 데이터로 결정하고, 상기 종표형식 데이터를 구성하는 정보블록으로서, 그 항목값이 등가로 된 정보블록에 종표형식 데이터에 관한 레코드의 개수를 나타낸 존재수를 항목값에 대응해서 격납하는 제1존재수배열을 생성하고, 상기 제1존재수배열에 따라서 상기 종표형식 데이터의 레코드번호를 소트한 상태에서 배치하는 초기위치를 결정하는 제1위치지시배열을 생성하고, 상기 종표형식 데이터의 레코드번호를 대응하는 포인터값에 의해 나타내어지는 위치의 제1위치지시배열에 따라 배치하는 동시에, 해당 위치지시배열의 대응하는 값을 인크리먼트함으로써, 종표형식 데이터의 레코드번호가 소트되어 격납된 제1소트배열을 생성하고, 상기 위치지시배열의 초기값 및 최종값과, 상기 주표형식 데이터에 관해서 그 값리스트가 등가로 된 정보블록중의 포인터배열을 참조해서 상기 주표형식 데이터에 관한 다른 정보블록의 포인터배열의 중복도를 산출하고, 해당 중복도에 따라 포인터배열을 확장하고, 상기 위치지시배열의 초기값 및 최종값과, 상기 소트배열을 참조해서 상기 종표형식 데이터에 관한 정보블록의 포인터배열의 중복도를 참조해서 해당 중복도에 따라 포인터배열을 확장하고, 해당 확장된 포인터배열에 기초하여 필요한 항목값을 취득해서 제시하도록 구성되어 있다. 이것에 대해서는 제4실시형태에 있어서 보다 구체적인 설명이 부가되어 있다.
이 실시형태는 표형식 데이터에 관해서 키항목을 발견할 수 없는 경우에 적용될 수 있다. 이 경우에는 디폴트의 소트순이 반영되는 항목을 특정해서 이 항목 을 포함하는 표형식 데이터를 주표형식 데이터, 그 이외의 표형식 데이터를 종표형식 데이터로 한다. 본 실시형태에 의하면, 포인터배열의 중복도에 따라서, 이것을 확장하여, 확장된 포인터배열에 따라서, 항목값을 특정하고 있다. 따라서, 어느 항목값이 중복해서 이용되고 있는 표형식 데이터를 조인하는 경우라도, 번잡한 처리가 필요없고, 소트배열이나 포인터배열의 조작만으로 적절히 표(뷰)를 작성하는 것이 가능하게 된다.
주표형식 데이터의 메모리용량을 삭감하기 위해서는 상기 중복도에 기초하여 주표형식 데이터의 레코드번호가 중복해서 배치된 제1변환배열을 생성하고, 상기 주표형식 데이터에 관해서, 상기 제1변환배열에 따라서 정보블록의 값리스트로의 포인터배열을 참조해서 값리스트의 항목값을 취출하는 것이 바람직하다. 또, 종표형식 데이터의 메모리용량을 삭감하기 위해서는 상기 주표형식 데이터의 레코드번호와, 관련된 상기 중복도에 기초하여 종표형식 데이터의 레코드번호가 중복해서 배치된 제2변환배열을 생성하고, 상기 종표형식 데이터에 관해서, 상기 제2변환배열에 따라 정보블록의 값리스트로의 포인터배열을 참조해서 값리스트의 항목값을 취출하는 것이 바람직하다(제5실시형태 참조).
본 발명의 또 다른 실시형태에 있어서, 결합된 표형식 데이터를 제시하는 방법은 특정의 2이상의 항목에 관한 정보블록에 포함되는 값리스트가 각각 등가로 된 복수의 표형식 데이터를 준비하고, 상기 복수의 표형식 데이터에 관해서, 상기 특정 항목에 관한 정보블록 중, 제시할 때 디폴트의 소트값이 반영되는 항목을 포함하는 표형식 데이터를 주표형식 데이터로 결정하고, 그 이외의 표형식 데이터를 종 표형식 데이터로 결정하고, 상기 주표형식 데이터에 관해서 2이상의 등가로 된 값리스트의 곱집합인 가상의 값리스트의 포인터배열을 생성하고, 상기 종표형식 데이터에 관해서, 상기 가상의 값리스트로의 제2포인터배열을 생성하고, 상기 가상의 값리스트의 항목값의 순으로 상기 종표형식 데이터의 레코드번호를 특정하는 제3포인터배열을 작성하고, 상기 복수의 표형식 데이터에 포함되는 정보블록 중, 제시해야할 항목에 관한 정보블록을 특정하고, 상기 제시해야할 항목에 관한 정보블록 중, 표형식 데이터를 구성하는 정보블록에 관해서, 소정의 레코드번호에 대응한 포인터배열중의 포인터값을 참조해서, 소정의 항목값을 취득하고, 상기 제시해야할 항목에 관한 정보블록 중, 상기 서브표형식을 구성하는 정보블록에 관해서, 상기 소정의 레코드번호에 대응한 레코드번호를 참조해서 대응하는 상기 가상의 값리스트의 포인터배열중의 포인터값에 기초하여 상기 제3포인터배열중의 상기 종표형식 데이터의 레코드번호를 특정하고, 상기 종표형식 데이터를 구성하는 정보블록에 있어서, 해당 종표형식 데이터에 관한 레코드번호에 대응한 포인터배열중의 포인터값을 참조해서 소정의 항목값을 취득하여, 취득한 항목값을 제시하도록 구성되어 있다.
이 실시형태는 복수의 표형식 데이터에 있어서, 복수항목을 조인해서 소정의 표(뷰)의 제시가 구해진 경우에 적용할 수 있다. 이 실시형태에 의하면, 실제로는 작성되지 않는 복수항목의 항목값의 곱집합인 값리스트에 대한 포인터배열을 작성하고 있다. 따라서, 막대한 용량이 되는 것이 예상되는 곱집합인 값리스트를 실제로 작성하는 일없이, 포인터배열을 생성하는 것만으로, 매우 고속으로 복수항목을 조인한 상태의 표(뷰)를 얻을 수 있다.
예를 들면, 조인해야할 항목이 2이상의 경우에는 한 쪽의 정보블록에 관하여, 등가로 된 값리스트의 항목값의 수가 p, 또한 다른 쪽의 정보블록에 관한 등가로 된 값리스트의 항목값의 수를 q로 하면,
상기 주표형식 데이터에 관한 상기 가상의 값리스트로의 포인터값Pmi(0≤i≤p-1)이
Pmi=Pm1i*q+Pm2i
(단, Pm1i는 한 쪽의 정보블록에 관한 값리스트의 항목값, Pm2i는 다른 쪽의 정보블록에 관한 값리스트의 항목값)
으로 나타내어지며 또한,
상기 종표형식 데이터에 관한 상기 가상의 값리스트로의 포인터값Psj(0≤j≤p-1)이
Psj=Ps1j*q+Ps2j
(단Ps1j는 한 쪽의 정보블록에 관한 값리스트의 항목값, Ps2j는 다른 쪽의 정보블록에 관한 값리스트의 항목값)
으로 나타내어진다.
복수의 표형식 데이터에 있어서의 복수의 항목을 결합(조인)해서 원하는 항목의 항목값을 제시하기 위한 또 다른 방법은 특정의 2이상의 항목에 관한 정보블록에 포함되는 값리스트가 각각 등가로 된 복수의 표형식 데이터를 준비하고, 상기 복수의 표형식 데이터에 관해서, 상기 특정 항목에 관한 정보블록 중, 제시할 때 디폴트의 소트순이 반영되는 항목을 포함하는 표형식 데이터를 주표형식 데이터로 결정하고, 그 이외의 표형식 데이터를 종표형식 데이터로 결정하고, 상기 주표형식 데이터 및 주표형식 레코드의 각각에 관해서 디폴트의 소트순이 반영되는 항목이외의 항목으로 상기 레코드번호를 소트하고, 마지막에 상기 소트순이 반영되는 항목으로 상기 레코드번호를 소트함으로써, 제1소트배열을 생성하고, 상기 제1소트배열중의 레코드번호를 참조해서 상기 2이상의 항목에 관한 2이상의 값리스트의 대응하는 항목값을 각각 취출하고, 2이상의 항목값의 다차원배열로 이루어진 항목값을 구비한 다차원값리스트중의 대응하는 위치에 취출된 항목값의 다차원배열을 격납하고, 상기 다차원값리스트의 다차원배열을 특정하기 위한 포인터배열의 상기 레코드번호에 대응하는 위치에 상기 레코드번호를 격납하고, 어느 하나의 정보블록에 있어서, 값리스트의 항목값의 순으로 상기 종표형식 데이터의 레코드번호를 특정하는 제2포인터배열을 생성하고, 상기 제시해야할 항목에 관한 정보블록 중, 상기 주표형식 데이터를 구성하는 정보블록에 관해서, 소정의 레코드번호에 대응한 다차원값리스트를 특정하기 위한 포인터배열의 포인터값, 및/또는 다른 포인터배열의 포인터값을 참조해서 소정의 항목값을 취득하고, 상기 제시해야할 항목에 관한 정보블록 중, 상기 종표형식을 구성하는 정보블록에 관해서, 상기 소정의 레코드번호에 대응한 레코드번호를 참조해서 대응하는 상기 제2포인터배열중의 종표형식에 관한 레코드번호를 특정하고, 상기 서브표형식 데이터를 구성하는 정보블록에 있어서, 해당 종표형식 데이터에 관한 레코드번호에 대응한 다차원값리스트를 특정하기 위한 포인터배열의 포인터값, 및/또는 포인터배열중의 포인터값을 참조해서 소정의 항목값을 취득하고, 취득한 항목값을 제시하도록 구성되어 있다. 이것에 관해서는 제7실시형태에 의해 구체적인 설명이 이루어지고 있다.
이 실시형태에 의하면, 가상의 값리스트로의 포인터배열을 설정할 필요가 없으므로, 필요한 메모리용량을 더욱 삭감하는 것이 가능하게 된다.
또, 본 발명의 목적은 상기 방법을 실현하는 프로그램을 기억한 기억매체, 상기 방법의 스탭을 실현하는 수단으로 이루어진 표형식 데이터 결합장치, 표형식 데이터 제시장치에 의해서도 실현된다.
도 1은 본 발명의 실시형태에 따른 검색, 집계 및 서치방법을 실현할 수 있는 컴퓨터시스템의 하드웨어구성을 나타낸 블록다이어그램이다.
도 2는 본 실시형태에서 이용하는 정보블록을 나타낸 표이다.
도 3은 표형식 데이터의 예, 및 해당 표형식 데이터에 기초한 정보블록의 예를 나타낸 도이다.
도 4는 표형식 데이터의 다른 예, 및 해당 표형식 데이터에 기초한 정보블록의 다른 예를 나타낸 도이다.
도 5는 단일항목에 관한 검색방법을 나타낸 플로챠트이다.
도 6은 표형식 데이터에 기초하여 정보블록을 작성하기 위한 처리를 설명하는 플로챠트이다.
도 7은 정보블록을 작성하기 위한 원데이터의 예를 나타내 도이다.
도 8은 2개의 표형식 데이터의 예를 나타내 도이다.
도 9는 도 8에 나타낸 표형식 데이터에 기초한 정보블록을 나타낸 도이다.
도 10은 본 발명의 실시형태에 따른 CPU에서 실행되는 기능의 일례를 나타낸 블록다이어그램이다.
도 11은 본 실시형태에 따른 값리스트의 공유화를 위한 처리를 나타낸 플로챠트이다.
도 12의 (a)는 도 8 및 도 9에 나타낸 예에 관해서, 도 11에서 나타내어진 처리의 일부를 보다 상세하게 나타낸 도이다.
도 13은 본 실시형태에 따른 뷰작성처리를 나타낸 플로챠트이다.
도 14는 도 13에 의해 생성되는 뷰를 설명하기 위한 도이다.
도 15는 본 실시형태에 따른 필요한 항목에 관해서 소트한 표를 얻는 처리를 나타낸 플로챠트이다.
도 16은 「고객ID」, 「고객명」 및 「연회비」에 관한 뷰이고, 또한, 「서비스ID」에 기초하여 소트된 뷰를 표시하는 처리를 설명하기 위한 도이다.
도 17은 본 실시형태에 따른 레코드번호의 소트를 설명하기 위한 도이다.
도 18은 소정의 항목으로 소트된 뷰의 예를 나타낸 도이다.
도 19는 제2실시형태에 따른 포인터배열을 나타낸 도이다.
도 20은 제3실시형태에 따른 포인터배열을 나타낸 도이다.
도 21은 제4실시형태에서 이용되는 표형식 데이터(테이블)의 예를 나타낸 도 이다.
도 22는 제4실시형태에 따른 처리를 나타낸 플로챠트이다.
도 23은 제4실시형태에 따른 값리스트의 공유화를 설명하기 위한 도이다.
도 24는 제4실시형태에 따른 종테이블의 소트를 설명하기 위한 도이다.
도 25는 제4실시형태에 따른 주테이블의 값리스트로의 포인터배열의 확장처리를 나타낸 플로챠트이다.
도 26은 제4실시형태에 따른 주테이블의 값리스트로의 포인터배열의 확장을 설명하기 위한 도이다.
도 27은 제4실시형태에 따른 종테이블의 값리스트로의 포인터배열의 확장(생성)처리를 나타낸 플로챠트이다.
도 28은 제4실시형태에 따른 종테이블의 값리스트로의 포인터배열의 확장을 설명하기 위한 도이다.
도 29는 제4실시형태에 따른 조인된 표(뷰)를 작성하기 위한 정보블록을 나타낸 도이다.
도 30은 제5실시형태에 따른 주테이블측에 작성된 변환배열을 설명하기 위한 도이다.
도 31은 제5실시형태에 따른 종레코드측의 변환배열작성의 처리를 나타낸 플로챠트이다.
도 32는 제5실시형태에 따른 종테이블측의 변환배열작성의 일례를 나타낸 도이다.
도 33은 제5실시형태에 따른 처리에 의해 얻어진 종테이블측의 변환배열에 기초하여 가상적인 「시합일」의 정보블록을 얻는 순서를 설명하는 도이다.
도 34는 제6실시형태에서 이용되는 표형식 데이터(테이블)의 예를 나타낸 도이다.
도 35는 제6실시형태에 따른 처리를 나타낸 플로챠트이다.
도 36은 제6실시형태에 따른 공유화처리를 설명하기 위한 도이다.
도 37은 제6실시형태에 따른 가상적인 값리스트, 및 해당 값리스트로의 포인터배열을 설명하기 위한 도이다.
도 38은 제6실시형태에 따른 가상적인 값리스트, 및 해당 값리스트로의 포인터배열을 설명하기 위한 도이다.
도 39는 제6실시형태에 따른 가상적인 값리스트, 및 해당 값리스트로의 포인터배열을 설명하기 위한 도이다.
도 40은 제6실시형태에 따른 가상적인 값리스트, 및 레코드번호로의 포인터배열을 설명하기 위한 도이다.
도 41은 제6실시형태에 따른 처리에 따른 표(뷰)의 작성을 설명하기 위한 도이다.
도 42는 제7실시형태에 따른 처리를 나타낸 플로챠트이다.
도 43은 제7실시형태에 따른 주테이블의 2차소트를 설명하기 위한 도이다.
도 44는 제7실시형태에 따른 복수항목을 결합한 다차원배열인 포인터값을 갖는 값리스트, 및 포인터배열의 여러 처리를 나타낸 플로챠트이다.
도 45는 도 43에 나타낸 소트처리를 실시한 주테이블에 제7실시형태에 따른 새로운 정보블록을 작성한 상태를 나타낸 도이다.
도 46은 도 43에 나타낸 소트처리를 실시한 주테이블에 제7실시형태에 따른 새로운 정보블록을 작성한 상태를 나타낸 도이다.
도 47은 제7실시형태에 따른 종테이블에 관한 새로운 정보블록을 나타낸 도이다.
도 48은 제7실시형태에 따른 표(뷰)의 작성처리를 설명하기 위한 도이다.
도 49는 제1실시형태에 있어서, 다른 항목으로 소트된 표(뷰)를 얻기 위한 처리를 설명하기 위한 도이다.
(개략구성)
이하, 첨부도면을 참조해서 본 발명의 실시형태에 대해서 설명한다. 도 1은 본 발명의 실시형태에 따른 검색, 집계 및 서치방법을 실현할 수 있는 컴퓨터시스템의 하드웨어구성을 나타낸 블록다이어그램이다. 도 1에 나타내듯이, 이 컴퓨터시스템(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)를 거쳐 외부로부터 공급되는 것이어도 좋다.
또, 본 실시형태에 있어서는 검색, 집계 및 소트를 고속으로 실현하기 위해 후술하듯이 소정의 데이터형식의 정보블록을 생성할 필요가 있다. 이 정보블록생성프로그램도 마찬가지로, CD-ROM(19)에 수용되고, ROM(16)에 기억되며, 또한 외부기억매체(18)에 기억되어도 좋다. 또한 이들 프로그램은 네트워크(도시생략)를 통해 외부로부터 공급되어도 좋은 것은 말할 필요도 없다. 또, 실시형태에 있어서, 정보블록생성프로그램으로 생성된 데이터(정보블록)는 RAM(14)에 기억되거나 또는 외부기억매체(18)의 소정 영역에 기억된다.
(데이터관리 및 처리의 원리)
다음에, 본 발명의 전제가 되는 데이터형식이나, 검색, 집계 및 소트의 원리에 대해 설명한다. 본 발명자는 처리의 초고속화를 꾀하기 위해, 특정의 데이터형식을 갖는 표형식 데이터의 구축과, 검색, 집계 및 소트방법을 고안했다.(PCT/WO00/10103호). 본 발명에 있어서도, 기본적으로는 이 출원에 기초 하여 표형식 데이터를 소정 정보블록의 집합체로서 구축하고, 이것을 이용해서 검색, 집계 및 소트를 실현하고 있다.
도 2는 본 실시형태에서 이용하는 정보블록을 나타낸 도이다. 도 2에 나타내듯이, 정보블록(100)은 값리스트(110)와 값리스트로의 포인터배열(120)을 포함하고 있다. 값리스트(110)는 표형식 데이터의 각 항목에 대해서 그 항목에 속하는 항목값이 순서대로(정수화) 된 항목값번호의 순번으로 상기 항목값번호에 대응한 항목값(111)이 격납된 테이블이다. 값리스트로의 포인터배열(120)은 표형식 데이터의 어느 열(즉 항목)의 항목값번호, 즉 값리스트(110)로의 포인터가 표형식 데이터의 레코드번호순으로 격납된 배열이다.
상기 값리스트로의 포인터배열(120)과 값리스트(110)를 조합시킴으로써, 어느 레코드번호가 부여되었을 때 소정 항목에 관한 값리스트로의 포인터배열(120)로부터 그 레코드번호에 대응해서 격납된 항목값번호를 취출하고, 계속해서 값리스트(110)내에서 그 항목값번호에 대응해서 격납된 항목값을 취출함으로써 레코드번호로부터 항목값을 얻을 수 있다. 따라서, 종래의 데이터표와 마찬가지로, 레코드번호(행)와 항목(열)이라는 좌표를 이용해서 전체 데이터(항목값)를 참조할 수 있다.
예를 들면 도 3의 (a)에 나타낸 표형식 데이터를 참고한다. 이 예에서는 고객ID, 고객명, 전화번호라는 항목에 여러가지 항목값이 부여되어 있다. 본 실시형태에 있어서는 이러한 표형식 데이터를 도 3의 (b) 내지 (d)에 나타낸 형식의 정보블록으로서 유지하고 있다. 예를 들면 도 3의 (b)에 있어서, 포인터배열(120-1)은 고객(ID)을 나타낸 항목값을 격납한 값리스트(110-1)에 관련지어져 있다. 즉, 선두레코드(레코드번호"0")의 포인터배열의 포인터값은 0이고, 이것에 대응해서 고객ID를 나타낸 항목값"1"이 얻어진다. 도 3의 (b)에 있어서, 포인터배열(120-2)은 고객명을 나타낸 항목값을 격납할 값리스트(110-2)에 관련지어져 있다. 예를 들면 선두레코드(레코드번호"0")의 포인터배열에 있어서의 포인터값은 "5"이고, 이것에 대응해서 고객명을 나타낸 항목값"Washington"이 얻어진다. 도 3의 (c)에 있어서도 마찬가지로, 포인터배열(120-3)이 전화번호를 나타낸 항목값을 격납한 값리스트(110-3)에 관련지어져 있는 것을 이해할 수 있다. 또 각 값리스트에 있어서는 항목값이 순서지어져(이 예에서는 오름순)있는 것을 이해할 수 있다. 예를 들면 오름순을 채용한 경우에는 숫자에 있어서는 작은 것으로부터 순차, 값리스트중의 항목값으로서 격납된다. 또, 일본어에 있어서는 「아이우에오순(오십음순)」으로, 영어 등에 있어서는 「알파벳순」으로 항목값이 격납된다.
또한, 본 실시형태에서는 정보블록(100)의 값관리테이블은 값리스트(110)외에 검색이나 집계를 위해 이용하는 분류번호플래그배열, 항목값에 대응하는 포인터를 격납해야할 메모리공간의 선두어드레스를 나타낸 개시위치배열, 및 존재수배열이 포함되어 있다. 분류번호플래그배열의 각 플래그, 및 존재수배열의 각 존재수는 항목값의 각각에 대응지어져 있다. 분류번호플래그의 플래그값은 통상 "0"이고, 검색이나 집계시에 발견해야할 항목값에 대응해서 "1"로 셋트된다. 또, 존재수는 그 항목값을 갖는 레코드의 개수에 대응한다. 또, 개시위치는 대응하는 포인터값보다 작은 포인터값에 대응하는 존재수를 가산한 것에 대응하므로, 반드시 설정할 필요 는 없다.
도 4의 (a)는 표형식 데이터의 다른 예를 나타낸 도, 도 4의 (b) 및 (c)는 각각 「성별」 및 「연령」에 관한 정보블록을 나타낸 도이다. 도 4의 (b)에 나타내듯이, 성별에 관한 정보블록(200-1)의 값관리테이블(210-1)에는 포인터배열(220)의 각 포인터값에 대응하는 항목값(「남성」 및 「여성」)과, 각 항목값에 대응하는 분류번호, 개시위치 및 존재수가 나타내어져 있다. 예를 들면, 포인터값이 "0"(즉, 값리스트의 항목값이 「남성」)인 레코드의 수는 632564개이며, 한편, 포인터값이 "1"(즉 값리스트의 항목값이 「여성」)인 레코드의 수는 367426개로 되어 있다. 또, 각 항목값에 대응하는 개시위치는 후술하는 레코드로의 포인터배열(230-1)의 선두어드레스를 나타내고 있다. 도 4의 (c)에 있어서도 동일한 것을 이해할 수 있다.
이러한 데이터구조를 갖는 정보블록을 이용한 검색의 일례 및 정보블록의 생성원리에 대해서, 이하에 설명한다. 도 5는 단일항목에 관한 검색방법을 나타낸 플로챠트이다. 이 원리는 CPU(12(도 1참조))가 소정 검색프그램을 실행함으로써 실현된다. 이 예에서는 「연령」의 항목값이 16세 또는 19세인 레코드가 검색된다. 먼저, 표형식 데이터에 관한 정보블록 중 도 4의 (c)에 나타낸 「연령」에 관한 정보블록(200-2)이 특정된다. (스텝501).
계속해서, 특정된 정보블록(이하, 「특정 정보블록」이라고 칭함)의 값리스트(210-2)에 있어서, 항목값이 상기 검색조건에 합치하는 것(16세 또는 19세)에 대응하는 행의 분류번호가 "1"로 셋트된다(스텝502). 본 예의 경우에는 항목값번호"0" 및 항목값번호"3"에 대응하는 행의 분류번호가 1로 셋트된다. 계속해서, 분류번호가 "1"로 셋트되어 있는 행에 대응한 개시위치 및 존재수가 취득된다.(스텝503). 이들 정보를 포인터취출정보라고 칭한다. 레코드로의 포인터배열에 있어서, 스텝503에서 취득된 포인터취출정보에 기초하여 검색조건에 합치한 레코드로의 포인터를 나타낸 레코드번호가 취출된다.(스텝504). 본 예에 있어서는 항목값번호"0"에 대응한 레코드의 포인터는 레코드로의 포인터배열의 개시위치"0" 즉 선두로부터 45898개째까지의 영역에 격납되고, 한편, 항목값번호"3"에 대응한 레코드의 포인터는 레코드로의 포인터배열의 238137번째로부터 189653개분의 영역에 격납되어 있는 것을 알 수 있다. 마지막으로, 나중의 처리에서 이용할 수 있도록 하기 위해 취출된 레코드번호의 배열이 결과집합으로서 작성되고, 이것이 유지된다(스텝505).
또, 집계 및 소트도 분류번호, 개시위치 및 존재수를 이용함으로써 실현할 수 있다.
다음에, 상술하는 검색처리 등에 이용하기 위한 정보블록의 생성처리에 대해 설명한다. 도 6은 표형식 데이터에 기초하여 정보블록을 작성하기 위한 처리를 설명하는 플로챠트이다. 먼저, 시스템(10)은 표형식의 원데이터를 취득하고, 이것을 항목별의 것으로 분해한다(스텝601). 이 원데이터는 예를 들면 도 7의 (a)에 나타낸 것이어도 좋고, 또는 도 7의 (b)에 나타낸 것이어도 좋다. 이들 원데이터는 외부로부터 공급되는 것이어도 좋고, 또는 고정기억매체(18)에 기억된 것이어도 좋다. 이하에 서술하는 스텝602 내지 스텝604로 이루어진 처리블록(610)은 어느 하나의 항목에 관한 정보블록의 생성을 나타낸다. 따라서, 복수의 항목에 관한 정보블록을 생성하는 경우에는 항목의 수만큼 처리블록(610)에 대응하는 처리가 실행된다. 이하, 「성별」에 관한 항목의 정보블록을 예로 들어 설명한다.
먼저, 「성별」에 관한 항목의 정보블록용 영역이 예를 들면 RAM(14)중에 확보된다(스텝602). 계속해서, 이 확보된 영역중에 값관리테이블이 생성된다. 보다 상세하게는 먼저, 값관리테이블이 초기화된다. 계속해서, 원데이터 중, 「성별」에 관한 데이터를 선두로부터 말미까지 조작함으로써, 어떠한 항목명이 각각 몇개 존재하는 가가 발견된다. 본 예에서는 「여성」및「남성」이라는 항목명이 각각 367436개 및 632564개만큼 있는 것이 발견된다. 이것에 의해 값리스트에 「여성」 및 「남성」이라는 항목값이 셋트되고, 또, 존재수배열에도 소정 수가 셋트된다. 그 후에 항목값이 소정 기준에 따라 소트된다. 소트시에는 항목수의 재정렬에 따라 존재수도 재정렬된다. 계속해서, 개시위치배열의 값이 결정된다. 이것은 소트에 의해 자기보다 상위에 위치하는 존재수를 누산함으로써 구해진다. 또, 개시위치배열의 값을 대응하는 분류번호배열의 값에 할당한다. 이 값은 다음의 스텝에서 이용된다. 이렇게 해서 값관리테이블이 생성된 후에 레코드로의 포인터배열이 생성된다. 이 포인터배열의 영역의 크기는 존재수의 총합에 대응한다.
이렇게 해서, 소정 항목에 관한 정보블록을 작성하는 것이 가능하게된다. 이 정보블록의 생성을 미리 행해두고, 생성된 정보블록을 이용해서 검색, 집계 및 소트의 처리가 실행된다.
(제1실시형태)
2개의 표형식 데이터를 조합하여(JOIN(조인)처리의 실행), 하나의 표(뷰)를 작성하는 처리, 및 작성한 것으로부터 원하는 항목을 검색, 집계 및 소트하는 처리에 대해서 이하에 설명한다.
예를 들면, 도 8에 나타내는 2개의 표형식 데이터를 설명한다. 도 8의 (a)에 있어서는 고객ID마다 고객명, 전화번호, SVC-ID(서비스ID)가 대응지어져 있으며, 한편, 도 8의 (b)에 있어서는 서비스ID마다 연회비가 대응지어져 있다. 고객ID가 "1"인 「Washington」의 SVC-ID는 "D"이고, 서비스테이블의 서비스ID의 "D"항을 참조하면, 그의 연회비가 "12,000"엔인 것을 이해할 수 있다. 마찬가지로, 다른 고객에 대해서도 SVC-ID 및 서비스ID를 참조함으로써, 그 연회비를 알 수 있다. 고객ID, 고객명 및 연회비를 표형식 뷰로 나타낸 것이 도 8의 (c)이다. 도 8의 (c)로부터 이해할 수 있듯이, 이 뷰에서는 중복값을 가진 항목인「SVC-ID」(예를 들면, 「SVC-ID」에서는 항목값"C"나 "D"가 복수 출현하고 있다)로부터 중복값을 가지지 않은 소위 키항목인「서비스ID」를 경유해서 청구액이 표시되고 있다. 중복값을 가진 항목(=「많음」)으로부터 중복값을 가지지 않은 항목(=「1」)을 경유하는 것임을 고려해서 이것을 「많음:1」의 타입이라고 칭한다. 또, 본 명세서에 있어서, 상기 「많음」의 값의 표형식 데이터를 메인표형식 데이터「1」의 측의 표형식 데이터를 서브표형식 데이터라고도 칭한다.
「많음:1」의 타입인 2개의 표형식 데이터를 조인하는 방법에 대해 이하에 설명한다. 본 실시형태에 있어서는 도 6에 나타낸 방법에 의해, 미리 도 8에 나타낸 2개의 표형식 데이터로부터 도 9에 나타낸 정보블록이 생성되어 있다. 또, 도 9 의 (a) 내지 (d)는 도 8의 (a)에 나타낸 고객테이블에 관한 정보블록이며, 도 9의 (e) 및 (f)는 도 8의 (b)에 나타낸 서비스테이블에 관한 정보블록이다. 또, 이들 도면에 있어스는 값리스트만을 나타내고 있다.
고객테이블에 있어서는 B,C 및 D의 「SVC-ID」만이 이용되고 있는 것에 반해, 서비스테이블에 있어서는 A,B,C 및 D의 서비스ID가 이용되고 있다. 따라서, 「SVC-ID」의 정보블록내의 값리스트와, 「서비스ID」의 정보블록내의 값리스트를 공통화할 필요가 있다. 도 10은 본 실시형태에 따른 CPU(12)의 기능블록다이어그램, 도 11은 값리스트의 공유화를 위한 처리를 나타낸 플로챠트이다. 도 10에 나타내듯이, CPU(12)는 정보블록을 참조해서 공유화해야할 값리스트를 발견하는 테이블추출부(32)와, 값리스트를 공유화하는 값리스트변환부(34)와, 값리스트로의 포인터배열의 각 포인터값을 변환하는 동시에, 필요한 다른 포인터배열을 생성하는 포인터처리부(36)와, RAM(14) 등과의 데이터의 교환을 행하는 정보블록관리부(38)를 구비하고 있다.
도 11에 나타내듯이, 먼저, 정보블록관리부(38)가 쌍방의 표형식 데이터에 관한 정보블록을 RAM(14)으로부터 취출한다(스텝1101). 계속해서, 테이블추출부(32)가 정보블록의 값리스트를 참조해서 공유화해야할 값리스트를 추출한다(스텝1102). 예를 들면, 도 8 및 도 9를 나타낸 예에서는 고객테이블에 관해서, 「SVC-ID」의 정보블록의 값리스트가 추출되고, 서비스테이블에 관해서 「서비스ID」의 정보리스트의 값블록이 추출된다.
그 후에, 값리스트변환부(34)가 공유화해야할 2개의 값리스트 중, 항목값 등의 변환이 필요한 것을 선택하고(스텝1103), 다른쪽의 값리스트를 참조해서 항목값의 삽입을 행한다. 도 8 및 도 9에 나타낸 예에서는 중복값을 가진 항목인 「SVC-ID」에 관한 값리스트의 항목값의 변환이 필요하게 된다. 값리스트변환부(34)는 키항목인 「서비스ID」에 관한 값리스트의 항목값 중, 「SVC-ID」의 값리스트에 포함되지 않는 항목값을 발견한다. 계속해서, 값리스트변환부(34)는 소정 순서에 따라, 「SVC-ID」에 관한 값리스트에 발견된 항목값을 삽입한다(스텝1104). 한편, 값리스트의 항목값의 삽입에 따라, 값리스트로의 포인터값을 포함하는 포인터배열을 변경할 필요가 있다. 따라서, 포인터처리부(36)는 값리스트의 변환에 따라 항목값의 변환이 이루어진 값리스트에 대응하는 포인터배열의 포인터값을 생성한다(스텝1105). 도 12는 도 8 및 도 9에 나타낸 예에 관하여, 스텝1104 및 스텝1105에서 실행되는 처리를 설명하는 도이다. 값리스트의 항목값의 삽입, 및 포인터배열중의 포인터값의 변경을 해야할 「SVC-ID」의 정보블록에 있어서, 값리스트의 항목값「A」이 삽입된다. 이 실시형태에서는 오름순으로 항목값이 배열되어 있으므로, 항목값「A」는 선두의 행에 삽입된다. 선두의 행에 새롭게 항목값이 만들어졌기 때문에, 포인터배열중의 포인터값에는 각각 "1"이 가산된다. 상기 예에서는 선두에 하나의 항목값이 삽입되어 있지만, 복수의 항목값이 임의의 위치에 삽입되어도 좋은 것은 말할 필요도 없다. 이 경우에, 포인터값은 선두로부터 자기위치까지의 사이에 삽입된 항목값의 수만큼, 그 값을 증대시키면 된다.
이렇게 해서, 값리스트의 공유화가 종료된 후에 2개의 표형식 데이터가 조인한 뷰를 생성하므로, 또는 검색, 집계 및 소트처리를 고속으로 실행가능하게 하기 때문에, 서비스테이블에 관한 정보블록에 소정 처리가 실시된다. 포인터처리부(36)는 다른 쪽의 테이블(즉, 값리스트나 포인터배열의 변경을 행하고 있지 않은 테이블)의 값리스트로부터 레코드번호를 지시하는 포인터배열(레코드번호로의 포인터배열)을 생성한다(스텝1106). 이 레코드번호로의 포인터배열은 조인된 표(뷰)에서 표시해야할 항목 중, 다른 쪽의 테이블에 있어서, 값리스트의 공유화가 이루어지지 않은 것을 포함하는 정보블록중에 생성된다.
보다 상세하게는 먼저, 포인터처리부(36)는 값리스트로의 포인터배열과 같은 크기의 배열을 준비하고, 값리스트로의 포인터배열의 선두로부터 포인터값을 스캔하고, "i"번째의 포인터값이 "j"인 경우에, 준비한 배열에 있어서, "j"번째의 요소에 값"i"를 격납하는 처리를 실행한다. 이렇게 해서 레코드번호로의 포인터가 생성된다. 정보블록관리부(38)는 그 항목값 등이 변경된 정보블록이나 새로운 포인터배열이 추가된 정보블록을 RAM(14)의 소정 영역에 기억한다.(스텝1107).
또, 상술한 공유화의 처리에서는 2개의 테이블의 값리스트가 공유의 의미를 가지므로, 어떤 하나의 값리스트만을 유지하면 되는 것은 말할 필요도 없다.
이렇게 해서, 소정의 값리스트를 공유화, 즉, 2개의 표형식 데이터의 쌍방에 관해서, 값리스트가 가진 의미를 동일하게 한 후에, 원하는 항목을 취출한 뷰를 작성하는 「뷰작성처리」, 검색처리, 집계처리, 혹은 소트처리가 실행된다.
뷰작성처리에 대해서, 이하에 설명한다. 도 13은 뷰작성처리를 나타낸 플로챠트, 도 14는 구체적으로 「고객ID」, 「고객명」, 및 「연회비」에 관한 뷰를 표시하는 처리를 설명하기 위한 도이다.
여기에서, 도 13의 (a)는 포인터배열에 기초하여 값리스트중에 관한 항목값을 표시하는 경우의 처리를 나타내며, 도 13의 (b)는 공유화한 값리스트에 기초하고, 또한 다른 값리스트에 관한 항목값을 표시해야할 경우의 처리를 나타낸다. 예를 들면, 도 14에 나타낸 「고객ID」의 표시에 관한 처리를 서술하면, 먼저, 레코드번호가 초기화된다(스텝1301). 계속해서, 「고객ID」의 정보블록에 있어서, 값리스트로의 포인터배열중, 레코드번호"0"에 대응하는 행의 포인터값"0"이 참조되며(스텝1302), 대응하는 항목값"1"이 판독된다(스텝1303). 따라서, 고객ID의 가장 상측의 항목이 "1"이 된다(스텝1304). 전체 레코드번호에 대해서, 상기 스텝1302∼1304의 처리가 반복된다(스텝1305, 1306참조). 「고객명」의 표시에 대해서도 마찬가지의 처리가 행해진다. 보다 상세하게는 레코드번호"0"에 대응하는 행에 위치하는 포인터값"5"이 참조되며, 대응하는 항목값"Washington"이 판독된다. 이것에 의해, 표(뷰)에 있어서, 선두의 항목이 "Washington"이 된다.
한편, 공유화된 값리스트에 관한 경우, 즉, 「SVC-ID」 및 「서비스ID」의 포인터 등을 이용하는 경우에는 도 13의 (b)에 나타내듯이, 레코드번호가 초기화되고(스텝1311), 레코드번호"0"에 대응하는 행의 값리스트로의 포인터값"3"이 참조된다.(스텝1312). 계속해서, 공유화된 정보블록(이 경우에는 「서비스ID」의 정보블록)에 관하여 먼저 생성된 레코드번호로의 포인터배열(도 11의 스텝1106참조)에 있어서, 포인터값"3"에 의해 나타내어진 행에 위치하는 포인터값이 참조된다.(스텝1314). 스텝1314에서 참조되는 포인터값은 값리스트로부터 레코드번호를 특정하는 것이며, 이 포인터값에 대응하는 행에 위치하는, 다른 정보블록의 값리스트로의 포인터값을 경유함으로써, 필요한 항목값을 얻을 수 있게 된다.
상기 예에서는 레코드번호로의 포인터값"3"에 기초하여 「연회비」의 정보블록에 있어서, 레코드번호"3"에 대응하는 행의 값리스트로의 포인터배열중의 포인터값"0"이 발견되고, 대응하는 항목값"12,000"을 취출할 수 있다. 따라서, 표에 있어서 가장 상측의 항목이 "12,000"이 된다. 전체 레코드번호에 대해서, 상기 스텝1312∼1315의 처리를 반복함으로써(스텝1316, 1317참조), 연회비의 란의 항목을 모두 얻을 수 있다. 이렇게 해서, 도 8의 (c)에 나타내는 표(청구액뷰)를 얻을 수 있게 된다.
다음에, 필요한 항목에 관해서 소트한 표를 얻는 처리에 대해서 설명한다. 도 15는 이 처리의 내용을 나타낸 플로챠트, 도 16은 구체적으로, 「고객ID」, 「고객명」 및 「연회비」에 관한 뷰이고, 또한, 「서비스ID」에 기초하여 소트된 뷰를 표시하는 처리를 설명하기 위한 도이다. 이 처리는 존재수배열 등의 생성(스텝1501∼스텝1507)과, 소트배열의 생성(스텝1508∼스텝1513)으로 구성되어 있다. 먼저, 레코드번호가 초기화되고(스텝1501), 값리스트의 행수(항목수)와 같은 행수를 갖는 존재수배열이 확보된다(스텝1502). 계속해서, 어느 레코드번호에 대해서, 값리스트의 포인터배열이 참조되고(스텝1503), 포인터값에 대응하는 행의 존재수배열중의 값(존재수)가 인크리먼트된다(스텝1504). 예를 들면 도 16의 (a)에 있어서, 「SVC-ID」의 정보블록에 관해서, 레코드번호"0"에 대응하는 값리스트로의 포인터배열중의 포인터값은 "3"이고, 따라서, 존재수배열중의 대응하는 행(4행째)의 값(존재수)가 "0"에서 "1"로 된다. 또는 레코드번호"2"에 대응하는 값리스트로 의 포인터배열중의 포인터값은 "1"이고, 이것에 의해 존재수배열중의 대응하는 행(2행째)의 값이 "0"에서 "1"이 된다. 이렇게 해서 전체 레코드번호에 대해서 스텝1503 및 스텝1504에 나타낸 처리를 실행함으로써(스텝1505 및 스텝1506참조), 도 16의 (a)의 부호1601에 나타낸 존재수배열이 작성된다.
존재수배열이 완성되면, 이것에 기초하여 누계수배열, 및 소트에 의해 레코드번호가 위치해야 할 메모리공간중의 위치를 나타낸 개시위치배열이 생성된다.(스텝1507). 이 누계수배열은 초기적인 개시위치배열과 같은 것이며, 후술하는 여러가지 처리에서 이용된다. 또, 본 명세서에 있어서, 누계수배열 혹은 초기적인 개시위치배열을 초기값을 나타낸 위치지시배열 혹은 초기적인 위치지시배열이라고도 칭한다.
보다 상세하게는 존재수배열중의 어느 존재수가 위치하는 행에 대응하는 위치에 있는 누계수 및 개시위치는 해당 존재수가 위치하는 행보다 번호가 작은 행(도 16에서는 상측 행)에 있는 존재수의 총합이 된다. 예를 들면, 제1행째의 누계수 및 개시위치"0"이고, 제2행째의 누계수 및 개시위치도 제1행째의 존재수가 "0"이므로, "0"이 된다. 그 반면, 제3행째의 누계수 및 개시위치는 제1행째의 존재수가 "0", 또한 제2행째의 존재수가 "2"이므로, "(0+2=)2"가 된다.
이렇게 해서, 존재수배열, 누계수배열 및 개시위치배열이 작성되면, 작성된 개시위치배열을 이용해서 각 레코드번호를 소트된 위치에 배열하는 처리가 실행된다. 먼저, 레코드번호가 초기화되고(스텝1508), 레코드번호를 격납해야할 배열이 확보되면(스텝1509), 어느 레코드번호에 대해서, 값리스트의 포인터배열이 참조된 다(스텝1510). 계속해서, 개시위치배열에 있어서, 스텝1510에서 얻어진 포인터값이 나타낸 행의 개시위치가 조사되고, 레코드번호배열에 있어서, 얻어진 개시위치에 대응하는 영역에 해당 레코드번호가 격납된다(스텝1511). 예를 들면, 도 16의 (b)에 있어서, 「SVC-ID」의 정보블록에 있어서, 레코드번호"0"에 대응하는 값리스트로의 포인터배열중의 포인터값은 "3"이므로, 대응하는 개시위치(4행째의 개시위치)가 참조된다. 이 값은 "5"이므로, 레코드번호배열에 있어서, "5"에 대응하는 위치(즉 6행째)에 레코드번호"0"이 격납된다.
레코드번호의 격납이 종료되면, 참조된 개시위치를 인크리먼트한다(스텝1512). 이것은 다음에, 이 개시위치가 참조되었을 때 레코드번호중의 레코드번호를 격납해야할 위치를 인크리먼트해 둘 필요가 있기 때문이다. 이러한 처리를 필요한 전체 레코드번호에 대해서 실행함으로써(스텝1512, 1513참조), 소트된 레코드번호배열을 얻는 것이 가능하게 된다(도 17참조).
소트처리가 종료되면, 도 12에 나타낸 처리에서 얻어진 레코드번호에 대응하는 고객ID, 고객명, 연회비 등의 표시항목과 도 15에 의해 얻어진 소트된 레코드번호배열에 기초하여 원하는 항목으로 소트된 표(뷰)를 얻을 수 있다. 도 18의 (a)는 이렇게 해서 얻어진 표(「서비스ID」로 소트한 청구액뷰)를 나타낸 도이다. 예를 들면, 다른 항목(예를 들면 「연회비」)로 소트하는 경우에도, 같은 방법을 이용해서 도 18의 (b)에 나타낸 표(「연회비」로 소트한 청구액뷰)를 얻을 수 있는 것을 이해할 수 있다.
이렇게, 본 실시형태에 의하면, 2개의 표형식 데이터에 있어서, 각각의 표형 식 데이터를 구성하는 정보블록 중, 공유화해야할 값리스트를 발견하고, 해당 값리스트의 의미를 공통으로 함으로써 두개의 표형식 데이터의 조인을 실현할 수 있게 된다.
(제2실시형태)
다음에, 본 발명의 제2실시형태에 대해서 설명한다. 제1실시형태에서는 공유화한 정보블록에 있어서, 먼저, 한 쪽의 정보블록(「많음:1」에 있어서의 「많음」의 측의 정보블록)의 값리스트로의 포인터값을 참조하여, 계속해서, 이 포인터값에 의해 나타내어진 다른 쪽의 정보블록(「많음:1」에 있어서의 「1」의 측의 정보블록)레코드번호로의 포인터값을 참조하고, 다시 레코드번호로의 포인터값이 나타낸 레코드번호에 대응하는 값리스트로의 포인터값을 참조하고 있다. 예를 들면, 도 14에 나타낸 예에서는 ①「SVC-ID」의 정보블록중의 값리스트로의 포인터배열, ②「서비스ID」의 정보블록중의 레코드번호로의 포인터배열, 및 ③「연회비」의 정보블록중의 값리스트로의 포인터배열이 이용되며, 각각의 포인터값이 순차 참조되어 있다. 이것에 대해서, 제2실시형태에서는 한 쪽의 정보블록(「많음:1」에 있어서의 「많음」의 측의 정보블록)에 다른 쪽의 정보블록의 레코드번호로의 포인터배열을 준비하고 있다. 즉, 상기 ①∼③ 중, ① 및 ②를 통합한 포인터배열을 해당 한 쪽의 정보블록에 구축하고 있다. 이것에 의해 「많음」측의 정보블록으로부터 「1」의 측의 레코드번호를 특정하는 것이 가능하게 된다. 또, 제2실시형태에 있어서, 정보처리장치(10)의 구성, 실행되는 처리 등은 이하에 서술하는 점을 제외하면, 제1실시형태의 것과 동일하다.
도 19는 값리스트의 공유화를 위한 처리를 설명하기 위한 도이다. 도 19의 (a)에서는 제1실시형태에 관한 고객테이블 및 서비스테이블에 관한 정보블록의 일부를 나타내며, 도 19의 (b)에서는 제2실시형태에 관한 정보블록의 일부를 나타내고 있다. 도 19로부터 이해할 수 있듯이, 제1실시형태에서는 포인터처리부(36)(도 10참조)는 「서비스ID」의 정보블록측에 「연회비」의 정보블록중의 값리스트로의 포인터배열을 참조하기 위한 포인터배열(레코드번호로의 포인터배열)을 생성했다. 이것에 대해서, 제2실시형태에 있어서는 포인터처리부(36)는 「SVC-ID」의 정보블록측에 최종적으로 참조하고 싶은 정보블록인 「연회비」의 정보블록의 값리스트로의 포인터배열을 참조하기 위한 레코드번호로의 포인터배열을 생성한다.
보다 구체적으로는 제1실시형태에 있어서, 공유화된 값리스트를 포함하는 정보블록 중, 「1」의 측의 정보블록(예를 들면, 도 19의 (a)에 있어서는 「서비스ID」의 정보블록)에 관해서 작성된 레코드번호로의 포인터배열과 등가인 것을 가상적으로 작성하고, 「많음」의 측의 정보블록으로부터, 직접 「1」의 측의 레코드번호를 나타낼 수 있는 포인터배열을 작성하면 좋다.
또, 도 19의 (b)에 나타낸 예에서는 「서비스ID」의 정보블록에 있어서, 레코드번호로의 포인터배열중의 포인터값이 오름순으로 나열되어 있으므로, 「SVC-ID」의 정보블록에 있어서, 값리스트로의 포인터배열중의 포인터값과, 레코드번호로의 포인터배열중의 포인터값이 일치하고 있지만, 반드시 일치하지 않는 것은 말할 필요도 없다.
본 실시형태에 의하면, 「많음:1」에 있어서의 「많음」측의 정보블록에 레코드번호로의 포인터배열을 작성하므로, 제1실시형태와 비교해서 포인터배열의 사이즈가 커진다. 그러나, 뷰를 작성하거나, 소트를 실행하는 경우에 참조하는 포인터배열의 수를 감소시킬 수 있고, 이것에 의해 처리를 더욱 고속화하는 것이 가능하게 된다.
(제3실시형태)
다음에, 본 발명의 제3실시형태에 대해서 설명한다. 이 실시형태에 있어서는, 「많음:1」에 있어서의 「1」의 측에서 최종적으로 항목값을 표시해야할 정보블록(도 9에 나타낸 예에서는 「연회비」의 정보블록)중에 포인터배열을 작성하고 있다. (도 20참조). 즉, 제2실시형태에서는 「많음」측의 정보블록에 작성되어 있는 레코드번호로의 포인터배열(도 19의 (b)참조)이 표(뷰)로 나타내어야할 항목에 관한 「1」의 측의 정보블록에 작성되어 있다.
이 실시형태에 의하면, 「많음」의 측의 테이블에 관한 레코드번호로부터 직접, 「1」의 측의 테이블에 관한 레코드번호를 특정할 수 있으므로, 더욱 처리를 고속화하는 것이 가능하게 된다.
(제4실시형태)
다음에, 본 발명의 제4실시형태에 대해 설명한다. 제1 내지 제3 실시형태에 있어서는 중복값을 갖는 항목(=「많음」)으로부터 중복값을 가지지 않는 항목(=「1」)을 경유하는 타입(「많음:1」의 타입)에 관한 것이지만, 제4실시형태에서는 「많음:많음」의 타입에 있어서, 값리스트를 공유화하는 처리를 실행하고 있다.
예를 들면, 도 21에 나타낸 2개의 표형식 데이터를 참조한다. 도 21의 (a)에 있어서는 회원명과, 회원이 좋아하는 야구팀명이 대응지어져 있고, 도 21의 (b)에 있어서는 구단명과 시합일이 대응지어져 있다. 여기에서, 도 21의 (a)를 참조하면, 「Williams」씨는 「A팀」의 팬이며, 또한, 도 20의 (b)를 참조함으로써, 「A팀」의 시합은 「5/10」 및 「5/11」인 것을 알 수 있다. 또, 「Smith」씨도 「A팀」의 팬이며, 그 시합이 「5/10」 및 「5/11」인 것을 알 수 있다.
따라서, 각 회원이 원하는 티켓을 나타낸 표(티켓확인뷰)는 도 21의 (c)에 나타낸 것이 된다. 이 뷰에서는 「팬」내지 「구단명」이라는 항목을 조인하고 있지만, 「팬」이라는 항목은 중복값을 가지며(즉, 「A팀」이라는 항목값이 중복되어 출현하고), 한편, 「구단」이라는 항목도 중복값을 가지고 있다(즉, 「A팀」이라는 항목값이 중복되어 출현하고 있다). 중복값을 갖는 항목(=「많음」)으로부터 중복값을 갖는 항목(=「많음」)을 경유하는 것임을 참조해서 이러한 것을 「많음:많음」의 타입이라고 칭한다.
또, 「많음:많음」의 타입에서는 논리적으로는 2개의 테이블(도 21에 있어서는 「야구애호회 회원 테이블」 및 「시합예정 테이블」은 대등하지만, 여기에서는 출력되는 표(뷰)의 디폴트의 소트순이 반영되어 있는 테이블(도 21에 있어서는 「야구애호회 회원 테이블」)을 「주테이블」, 다른 쪽의 테이블을 「종테이블」이라고 칭한다. 또, 본 명세서에 있어서, 상기 주테이블을 경우에 따라서는 주표형식 데이터, 종테이블을 종표형식 테이블이라고 칭하는 일도 있다. 제1 내지 제3실시형태와 마찬가지로, 제4실시형태에 있어서도, CPU(12)는 도 10에 나타낸 구성을 구비하고, CPU(12)에 의해 도 22에 나타낸 처리가 실행된다.
도 22에 있어서, 값리스트공유화의 처리(스텝2201)은 도 11에 나타낸 처리에 대응하여, 종테이블에 관한 존재수배열 등을 생성하는 처리(스텝2202)는 도 15에 나타낸 처리의 전단(스텝1501∼스텝1507)에 대략 대응하고, 또한 종테이블의 소트배열을 생성하는 처리(스텝2203)은 도 15에 나타낸 처리의 후단(스텝1508∼스텝1513)에 대략 대응한다.
스텝2201에 있어서는, 공유화해야할 값리스트가 추출되고(도 11의 스텝1102), 항목값의 변환이 필요한 것이 선택되면(스텝1103), 값리스트중의 필요한 항목값이 삽입된다(도 11의 스텝1104 및 도 23의 부호 2301 및 2302참조). 계속해서, 변환된 값리스트를 포함하는 정보블록에 있어서의 값리스트로의 포인터배열중의 포인터값이 갱신된다(도 11의 스텝1105, 및 도 23의 부호 2303 및 2304 참조). 도 23의 예에서는 주테이블의 값리스트 및 값리스트로의 포인터배열의 변환 내지 갱신이 행해지고 있지만, 반드시 주테이블에 관한 변환 등만이 행해지는 것은 아니고, 종테이블에 관한 변환 등이나 쌍방의 테이블에 관한 변환 등이 행해져도 좋다.
계속해서, 스텝2202에 있어서, 종테이블에 관해서, 존재수배열(도시생략), 누계수배열(도시생략) 및 개시위치배열(도 24의 부호2402참조)이 생성된다. 스텝2401이 종료된 상태에서는 누계수배열중의 어느 행의 값과, 개시위치배열이 대응하는 위치의 값은 같아지고 있다. 종테이블에 있어서, 공유된 값리스트와 대응하는 존재수배열, 개시위치배열이 생성된 후에 종테이블에 관한 소트배열이 생성된다.(스텝2203). 도 24에서는 「구단」의 정보블록에 있어서, 레코드번호"0"에 대응 하는 값리스트로의 포인터배열중의 포인터값은 "2"이기 때문에, 대응하는 개시위치(개시위치배열의 3행째)가 참조되고,(도 15의 스텝1510참조), 이 값"3"에 따라서, 소트배열(레코드번호배열)의 대응하는 위치(즉 4행째)에 레코드번호"0"가 배치된다(도 15의 스텝1511참조). 또, 참조된 개시위치에 있는 값이 인크리먼트되고, "3"에서 "4"로 변화한다.
종테이블에 관한 각 레코드번호가 소트배열(레코드번호배열)의 소정 위치에 배치된(도 24의 부호 2401참조)후에 주테이블의 값리스트로의 포인터배열을 새롭게 생성한다. 이것은 본 실시형태와 같은 「많음:많음」의 타입에서는 주테이블측의 정보블록중의 항목값이 복수회 출현하므로, 이것에 대응할 수 있도록 하기 위한 것이다.
보다 상세하게는 도 25에 나타내듯이, 레코드번호의 초기화(스텝2501)후, 어느 레코드번호에 관해서 공유화한 값리스트를 포함하는 정보블록내의 값리스트로의 포인터배열이 발견되고, 레코드번호에 대응하는 위치(행)의 포인터값이 참조된다.(스텝2502). 계속해서 종테이블의 소트(스텝2203참조)에 의해 작성된 누계수배열 및 개시위치배열이 발견되고, 포인터값이 나타낸 위치의 개시위치와 누계수와의 차가 산출된다.(스텝2503).
이 차는 종테이블에 있어서, 공유화된 값리스트를 포함하는 정보블록의 값리스트중의 항목값이 주테이블의 어느 레코드번호에 대해서 몇회 중복해서 나타나는지를 표시하고 있다. 따라서, 조인한 표(뷰)에 있어서, 본래 주테이블측에 있는 항목에 관한 정보블록중의 값리스트로의 포인터배열이 상기 중복도를 나타낸 차에 기 초하여 확장된다(스텝2504). 즉, 어느 레코드번호에 관해서 산출된 차가 "d"인 경우에는 새롭게 생성해야할 값리스트로의 포인터배열에 있어서 레코드번호에 대응한 포인터값이 "d"개로 증가한다.
도 26에 있어서, 예를 들면, 레코드번호"0"에 관해서, 공유화한 값리스트를 포함하는 「팬」의 정보블록중의 값리스트로의 포인터배열이 발견된다. 이 포인터배열에 있어서, 레코드번호"0"에 대응하는 위치(1행째)의 포인터값은 "0"이므로, 종테이블의 측에서 공유화된 값리스트를 포함하는 「구단」의 정보블록중의 누계수배열 및 개시위치배열 중, 1행째의 누계수 및 개시위치가 참조되고, 개시위치와 누계수와의 차(2-0=2)가 산출된다. 계속해서, 조인한 표(뷰)를 작성하므로, 주테이블에 있어서의 「회원명」의 정보블록의 값리스트로의 포인터배열을 확장한 새로운 포인터배열이 작성된다. 또, 새로운 포인터배열을 포함하는 정보블록(「티켓·회원명」의 정보블록)중의 값리스트는 주테이블의 「회원명」의 정보블록에 포함되는 것과 동일하다. 이것은 「회원명」의 항목값자체는 양자에 있어서 공통이기 때문이다. 또, 이들 값리스트는 동일하므로, 하나의 값리스트만을 실재시켜서 이들을 두개의 항목에 관해서 공유시켜도 좋다.
이렇게 해서, 포인터값이 "2"인 포인터가 2개 만들어지게 된다.
마찬가지로, 레코드번호"1"에 관해서, 「팬」의 정보블록중의 레코드번호"1"에 대응하는 위치(2행째)의 포인터값은 2이기 때문에, 「구단」의 정보블록에 있어서, 대응하는 위치(3행째)의 누계수 및 개시위치가 취출되고, 후자로부터 전자를 뺀 값(4-3=1)이 산출된다. 따라서, 「티켓·회원명」의 정보블록에 있어서, 먼저 만들어진 포인터에 계속해서 「회원명」의 정보블록의 대응하는 값"0"을 갖는 포인터가 작성된다.
또, 같은 방법에 의해 주테이블의 「팬」도 표(뷰)에 표시해야할 항목이므로, 해당「팬」의 정보블록에 관해서도 「티켓·팬」이라는 새로운 정보블록이 생성된다.(도 29의 (b)참조).
이렇게 해서 주테이블측의 값리스트의 포인터배열이 생성된 후에 종테이블측의 값리스트의 포인터배열이 생성된다(스텝2205). 이것은 주테이블측에서 항목값이 복수회 출현하는 것에 따라서, 종테이블측에서도 이것에 대응한 항목값을 표시하기 위한 처리이다. 보다 상세하게는 도 27에 나타내듯이 레코드번호의 초기화(스텝2701)의 후에 어느 주테이블측의 레코드번호에 관해서 해당 주테이블측에서 공유화된 정보블록의 값리스트로의 포인터배열중, 해당 레코드번호에 대응하는 위치(행)의 포인터값이 참조된다(스텝2702). 계속해서, 종테이블의 소트(스텝2203참조)에 의해 작성된 누계수배열 및 개시위치배열이 발견되고, 상기 포인터값으로 나타내어지는 위치(행)의 누계수 및 개시위치가 참조된다.(스텝2703). 여기에서, 소트후의 레코드번호배열, 즉 소트배열(도 24의 부호 2401참조)에 있어서, 어느 위치로부터 얼마만큼의 수의 레코드번호가 주테이블의 레코드번호에 관련되어 있는 가를 각각 누계수 및 개시위치로부터 발견할 수 있다. 즉, 상기 위치는 누계수에 나타낸 위치와 일치하고, 상기 수는 개시위치와 누계수와의 차와 일치한다.
따라서, 스텝2703에서 참조한 누계수 및 개시위치에 따라서, 레코드번호가 취출되고, 조인한 표(뷰)에서 표시해야할 항목을 구비한 정보블록중의 값리스트로의 포인터배열에 있어서, 각 레코드번호가 나타낸 포인터값이 취출되고, 새로운 포인터배열로서 순서대로 나열된다(스텝2703). 이것에 의해, 조인해야할 정보블록군 중, 주테이블에 유래해야하는 것은 그 작성을 완료한 것이 된다.
도 28에 있어서, 레코드번호"0"에 관해서, 「팬」의 정보블록에 있는 값리스트의 포인터배열중의 대응하는 위치(1행째)의 포인터값은 "0"이므로, 소트처리를 실시한 종테이블측의 정보블록(「구단」의 정보블록)에 있어서, 상기 포인터값"0"에 대응하는 위치(1행째)의 누계수"0" 및 개시위치"2"가 취출된다. 이들 값에 의해 소트후의 집계(소트배열)에 있어서, "0"에 대응하는 위치(1행째)로부터 "2-0=2"개의 레코드번호"1" 및 "3"가 주테이블의 레코드번호"0"에 관련된 종테이블의 레코드번호인 것을 이해할 수 있다. 따라서, 종테이블측에서, 표(뷰)에 표시해야할 항목인 「시합일」의 정보블록중, 레코드번호 "1" 및 "3"이 나타낸 위치(2행째 및 4행째)의 포인터값"0" 및 "1"이 순차 취출되고, 새로운 포인터로서, 조인한 표(뷰)용의 정보블록인 「티켓·시합일」의 정보블록의 값리스트에 배치된다. 또, 이 「티켓·시합일」의 정보블록에 포함되는 값리스트는 종테이블에 있어서의 「시합일」의 정보블록에 포함되는 값리스트와 공통이다. 따라서, 하나의 값리스트만을 실현시켜 이들을 두개의 항목이 공유해도 좋다.
마찬가지로, 레코드번호"1"에 관해서, 「팬」의 정보블록에 있는 값리스트의 포인터배열중의 대응하는 위치(2행째)의 포인터값은 "2"이므로, 「구단」의 정보블록의 대응하는 위치(3행째)의 누계수"3" 및 개시위치"4"가 취출된다. 이것에 의해 소트후의 집합(소트배열)에 있어서, 누계수"2"에 대응하는 위치(4행째)로부터 "3-2=1"개의 레코드번호"0"가 주테이블의 레코드번호"1"에 대응하는 종테이블의 레코드번호인 것을 이해할 수 있다. 따라서, 「시합일」의 정보블록중의 값리스트로의 포인터배열에 있어서, 레코드번호가 나타낸 위치(1행째)의 포인터값"0"이 취출되고, 이것이 「티켓·시합일」의 정보블록에 포함되는 값리스트로의 포인터로서 먼저 만들어진 포인터(주테이블의 레코드번호"0"에 대응해서 만들어진 포인터)에 계속해서 배치된다.
도 29는 상술한 처리에 의해 얻어진 조인된 표(뷰)의 작성을 위한 정보블록을 나타낸 도이다. 도 29의 (a) 및 (b)는 주테이블측의 정보블록에 기초하여 도 25에 나타낸 처리에 의해 작성된 것이며, 도 29의 (c)는 종테이블측의 정보블록에 기초하여 도 27에 나타낸 처리에 의해 작성된 것이다. 상술한 처리에 의해 각 정보블록에 있어서, 중복해서 나타내어진 항목값에 대응할 수 있다. 따라서, 선두(제1행째)로부터 순서대로, 값리스트의 포인터값으로 나타내어지는 항목값을 취출함으로써, 표(뷰)에 나타내어야할 항목값을 얻을 수 있게 된다. 이것은 가상적인 배열(뷰를 위한 확장된 레코드번호배열)이 작성되며, 각 레코드번호마다 대응하는 포인터배열중의 포인터값에 기초하여 항목값이 얻어지고 있는 것을 의미하고 있다.
예를 들면 선두(제1항째)에 관해서 「티켓·회원」의 정보블록의 포인터배열에 있어서의 대응하는 포인터값은 "2"이므로, 항목값「Williams」를 표시해야한다고 결정할 수 있고, 「티켓·팬」의 정보블록의 포인터배열에 있어서의 대응하는 포인터값은 "0"이므로, 항목값「A팀」을 표시해야한다라고 결정할 수 있고, 또한, 「티켓·시합일」의 정보블록의 포인터배열에 있어서의 대응하는 포인터값은 "0"이므로, 항목값「5/10」을 표시해야한다라고 결정할 수 있다.
이상 상세하게 설명한 바와 같이, 본 실시형태에 있어서는 2개의 표를 조인하는 경우에, 출력되는 표(뷰)의 디폴트의 소트순이 반영되고 있는 테이블을 「주테이블」이라고 정의하고, 다른 쪽 테이블을 「종테이블」이라고 정의하고 있다. 또, 쌍방의 테이블에 있어서, 정보블록중의 값리스트를 공유화한 후, 종테이블측의 공유화된 값리스트를 포함하는 정보블록에 기초하여 종테이블측의 레코드번호를 소트한다. 즉, 종테이블의 링크항목으로 소트한다. 계속해서 주테이블 및 종테이블의 쌍방에 관해서 「많음:많음」에 의한 중복을 고려한 포인터배열을 상기 소트에 의해 얻어진 각 항목값의 누계수 및 최종적인 개시위치에 기초하여 그 중복도를 아는 것에 의해 생성한다. 그 후, 중복을 고려한 변환배열(가상적인 레코드번호)에 기초하여 대응하는 항목값을 취출함으로써 적절한 뷰를 얻을 수 있게 된다.
이렇게 표(뷰)를 작성하기 위한 정보블록(예를 들면, 도 29에 있어서의 「티켓·회원」, 「티켓·팬」 및 「티켓·시합일」의 정보블록)을 작성하면, 각 정보블록에 도 4의 (b), (c) 등을 참조해서 설명한 분류번호배열, 존재수배열, 개시위치배열을 작성함으로써 값리스트중의 단일 혹은 복수항목을 이용한 검색, 집계 또는 소트를 용이하게 할 수 있는 것은 확실하다. 이 경우, 도 4 등에 관해서 설명한 것에서는 「레코드번호」를 이용하고 있었지만, 본 실시형태에서는 그 대신에 상기 「변환배열(가상적인 레코드번호)」을 이용하면 좋다.
(제5실시형태)
다음에, 본 발명의 제5실시형태에 대해서 설명한다. 제5실시형태에 있어서도, 「많음:많음」의 타입에 관한 조인을 실현하고 있지만, 주테이블 및/또는 종테이블의 측에서 필요한 메모리용량을 삭감하고 있다.
먼저, 주테이블측의 메모리용량의 삭감방법에 대해서 설명한다. 도 25의 스텝(2504) 및 도 26을 참조하면, 종테이블에 있어서, 공유화된 값리스트를 포함하는 정보블록중의 항목값이 주테이블의 레코드번호에 대해서, 몇회 중복해서 나타내어지는 가가 산출되고, 이것에 의해 주테이블측에서 표(뷰)로 나타내어야할 항목의 각 정보블록내에 확장된 값리스트로의 포인터배열이 생성되어 있다. 그런데, 종테이블측에 있어서의 중복도에 따라서, 포인터가 확장되어 있으므로, 그 중복도는 주테이블중의 각 레코드번호에서 공통이다. 예를 들면, 도 29의 (a), (b)에 나타내듯이, 쌍방의 정보블록에 있어서의 값리스트로의 포인터배열중의 포인터값에 착안하면, 제1행째 및 제2행째의 포인터값이 공통되고 있다. 마찬가지로, 제4행째 및 제5행째도 공통되고 있다. 이들은 종테이블측의 중복도에 따라서 공통되고 있는 것이며, 따라서, 주테이블측에 상기 중복도를 고려한 배열을 하나 생성해 둠으로써 각 정보블록중의 값리스트로의 포인터배열을 생성할 필요가 없어진다.
도 30은 주테이블측에 설정된 변환배열(가상적인 레코드번호)를 설명하기위한 도이다. 도 30에서 확실하듯이, 이러한 변환배열을 만들어 두면 주테이블측에 관해서 도 29와 같은 뷰항목을 얻을 수 있게 된다. 이러한 변환배열은 도 25의 스텝2504의 처리를 약간 변경함으로써 생성될 수 있다. 즉, 주테이블의 레코드번호에 대응하는 포인터배열중의 포인터값을 경유함으로써, 종테이블측의 소트된 정보블록 의 누계수배열 및 개시위치배열에 도달할 수 있다. 여기에서, 상기 레코드번호에 대응하는 개시위치와 누계수와의 차를 산출함으로써, 레코드번호의 중복도를 얻을 수 있다. 그래서, 중복수만큼 레코드번호를 반복하는 새로운 변환배열을 얻을 수 있게 된다.
이 실시형태에서는 가상적인 정보블록(도 30의 부호 3001, 3002참조)을 실제로 작성할 필요가 없는 것을 이해할 수 있을 것이다. 즉, 가상적인 레코드인 변환배열만을 생성함으로써, 주테이블측의 정보블록의 값리스트로의 포인터배열을 참조함으로써, 표(뷰)작성시마다 가상적인 정보블록의 값리스트로의 포인터배열을 얻을 수 있게 된다. 따라서, 주테이블측에 있어서 변환배열을 작성하고, 이것을 유지하는 것만으로 조인된 표(뷰)의 생성이 가능하게 된다.
다음에, 종테이블의 메모리용량의 삭감방법에 대해 설명한다. 종테이블측에서도 모든 항목에 공통의 변환배열을 작성함으로써 유지해야할 메모리용량의 삭감이 가능하게 된다. 도 31은 종레코드측의 변환배열작성의 처리를 나타낸 플로챠트이다. 스텝3101내지 스텝3103의 처리는 도 27의 스텝2701내지 2703의 처리와 유사하다. 보다 상세하게는 주테이블측의 어느 레코드번호에 관해서 주테이블측에 있어서 공유화된 정보블록의 값리스트로의 포인터중, 해당 레코드번호에 대응하는 위치(행)의 포인터값이 참조되고(스텝3102), 계속해서 이 포인터값에 대응하는 누계수 및 개시위치가 특정되고, 개시위치와 누계수와의 차를 산출함으로써 소트후의 레코드번호의 집합(소트배열)에 있어서 대응하는 레코드번호가 격납되어 있는 범위가 특정된다(스텝3103). 그 후 특정된 레코드번호가 변환배열중에 순차 격납된다.
도 32는 종테이블측의 변환배열작성의 일례를 나타낸 도이다. 도 32의 (a)에 있어서, 주테이블의 레코드번호"0"에 대응해서 공유화된 「팬」의 정보블록의 대응하는 포인터값"0"이 참조된다. 종블록측에서 소트처리가 실시된 「구단」의 정보블록의 대응하는 위치(1행째)의 개시위치와 누계수와의 차는 "2"이므로, 소트후의 레코드번호의 집합(소트배열)에 있어서, 선두로부터 2개의 레코드번호"1" 및 "3"이 상기 주테이블의 레코드번호"0"에 관련되는 것을 이해할 수 있다. 따라서, 선두로부터 "1" 및 "3"이라는 값이 변환배열에 격납된다. 마찬가지로 도 32의 (b)에 있어서, 주테이블의 레코드번호"1"에 대응해서 참조되는 「팬」의 정보블록의 포인터값"2"에 기초하여 「구단」의 정보블록의 대응하는 위치(3행째)의 개시위치"4" 및 누계수"3"가 특정된다. 이들 차가 "1"이므로, 소트배열에 있어서 누계수"3"로 나타내어지는 위치(4행째)로부터 "1"의 레코드번호"0"가 주테이블의 레코드번호"1"에 대응하는 레코드번호인 것을 이해할 수 있다. 따라서, 상기 도 32의 (a)에 나타낸 변환배열에 있어서, 주레코드번호"0"에 관해서 격납된 영역에 계속되는 영역에 레코드번호"0"가 격납된다. 이와 같은 처리를 반복함으로써 종테이블에서 공통의 변환배열을 얻을 수 있게 된다.
도 33은 상술한 처리에 의해 얻어진 종테이블측의 변환배열에 기초하여 가상적인 「시합일」의 정보블록을 얻는 수순을 설명하는 도이다. 도 33에 나타내듯이, 변환배열중의 값으로부터 값리스트로의 포인터배열중의 대응하는 포인터값을 경유함으로써, 조인된 표(뷰)에서 이용할 수 있는 가상적인 정보블록을 작성할 수 있다. 주테이블에 관한 설명과 마찬가지로 이 가상적인 정보블록은 표(뷰)의 작성시 마다 생성하면 된다. 즉, 변환배열만을 만들어 두면 작성해야할 표(뷰)에 따라서 원하는 바와 같이 가상적인 정보블록을 생성하는 것이 가능하게 된다. 최종적으로 만들어진 「시합일」의 정보블록(도 33에 있어서 파선으로 둘러싸여진 것)은 변환배열 및 원래의 정보블록이 있으면 즉시 작성할 수 있으므로, 이들을 작성해서 보존해 둘 필요는 없다.
또, 주테이블측의 변환배열 또는 종테이블측의 변환배열 중 어느 한 쪽만을 만들어 두어도 좋다. 예를 들면 어느 한 쪽의 테이블측에 관해서만 메모리용량이 증대하는 경우에는 한 쪽의 테이블측에 관해서만 변환배열을 만들어도 좋다. 물론, 쌍방의 테이블에 관한 변환배열을 작성해도 좋은 것은 말할 필요도 없다.
또, 이 실시형태에서도 검색이나 소트는 제4실시형태와 동일한 방법을 이용하는 것이 가능하다.
본 실시형태에 의하면 「많음:많음」의 타입에 있어서, 주테이블 및/또는 종테이블에 변환배열을 하나씩 유지함으로써, 새롭게 정보블록을 작성하는 일없이 조인한 표(뷰)를 얻는 것이 가능하게 된다. 따라서, 필요한 메모리용량을 삭감하는 것이 가능하게 된다.
(제6실시형태)
다음에, 본 발명의 제6실시형태에 대해서 설명한다. 제4 및 제5실시형태에 있어서는 주테이블 및 종테이블중의 단일항목(정보블록)에 관해서 그 값리스트를 공유화했지만, 제6실시형태에 있어서는 복수의 항목의 조인을 실현하고 있다.
예를 들면, 도 34의 (a) 및 (b)에 나타내는, 2개의 테이블(인명테이블 및 연 령테이블)을 참조한다. 먼저, 인명테이블에 착안하면, 「회원성」이라는 항목과 「회원명」이라는 항목을 발견할 수 있다. 한편, 연령테이블에 착안하면, 「연령·회원성」이라는 항목, 「연령·회원명」이라는 항목 및 「연령」이라는 항목을 발견할 수 있다. 따라서 연령과 인명을 포함하는 인명연령뷰라는 표(뷰)를 작성하기 위해서는 「회원성」과 「연령·회원성」을 조인하는 동시에 「회원명」과 「연령·회원명」을 조인할 필요가 있다(도 34의 (c) 참조). 또, 상기 예에서는 인명테이블을 항목의 순서가 유지되는 것(주테이블)으로 하고 있다.
상술한 복수의 항목을 조인한 표(뷰)를 작성하는 방법에 대해 이하에 설명한다. 도 35는 제6실시형태에 따른 처리를 나타낸 플로챠트이다. 도 35에 나타내듯이, 먼저, 공유화해야할 모든 값리스트에 관해서 공유화의 처리가 실행된다(스텝3501). 각 공유화는 도 11에 나타낸 처리에 대응한다. 도 34에 나타낸 예에서는 인명테이블에 있어서의 「회원성」의 정보블록중의 값리스트와, 연령테이블에 있어서의 「연령·회원성」의 정보블록중의 값리스트가 공유화되는 동시에 인명테이블에 있어서의 「회원명」의 정보블록중의 값리스트와, 연령테이블에 있어서의 「연령·회원성」의 정보블록중의 값리스트가 공유화된다.(도 36 참조).
계속해서 주테이블에 관해서 조인한 표(뷰)를 얻을 때 필요한 항목을 결합한 가상의 값리스트에 관한 포인터배열이 작성된다(스텝3502). 예를 들면 공유화한 테이블이 2개이며, 그 한 쪽의 값리스트에 있어서 "p"개의 항목값이 격납되고, 또한 다른 쪽의 값리스트에 있어서 "q"개의 항목값이 격납되어 있는 경우에는 이들 조합으로서 "p×q"개의 항목값을 갖는 가상의 값리스트가 참조된다. 한편, 실제로 작성 되는 값리스트로의 포인터배열에는 주테이블의 레코드번호의 수와 같은 수의 포인터값이 격납된다.
보다 상세하게는 "i"번의 포인터값Pmi(0≤i≤p-1, p:한쪽의 값리스트에 있어서의 항목값의 수)은 이하와 같이 해서 산출된다. 조인해야할 항목의 한쪽의 정보블록에 관해서 값리스트로의 포인터배열중, "i"번째의 포인터값을 Pm1i, 다른 쪽의 정보블록에 관해서 값리스트로의 포인터배열중, "i"번째의 포인터값을 Pm2i로 하면, (1)식에 의해 얻어진다.
포인터값Pmi=Pm1i*q+Pm2i--------------------(1)
(q:다른 쪽의 값리스트에 있어서의 항목값의 수)
또, 종테이블에 관해서 조인한 표(뷰)를 얻을 때 필요한 항목을 결합한 가상의 값리스트에 대한 포인터배열이 작성된다(스텝3503). 이 포인터배열에는 종테이블의 레코드번호의 수와 같은 수의 포인터값이 격납된다.
"j"번의 포인터값Psj(0≤j≤p-1, p:한쪽의 값리스트에 있어서의 항목값의 수)도 상기 주테이블에 관한 포인터값과 동일하게 산출된다. 즉, 조인해야할 항목의 한 쪽의 정보블록에 관해서 값리스트로의 포인터배열중, "j"번째의 포인터값을 Ps1j, 다른 쪽의 정보블록에 관해서 값리스트로의 포인터배열중, "j"번째의 포인터값을 Ps2j라고 하면, (2)식에 의해 얻어진다.
포인터값Psj=Ps1j*q+Ps2j------------------(2)
(q:다른 쪽의 값리스트에 있어서의 항목값의 수)
또, 조인해야할 항목이 3개인 경우에는 "i"번의 포인터값Pmi(0≤i≤p-1, p:어느 하나의 값리스트에 있어서의 항목값의 수)는 (3)식에 따라서 구할 수 있다.
포인터값Pmi=Pm1i*q+Pm2i*r+Pm3i-----------(3)
또, 여기에서 Pm1i는 조인해야할 항목 중, 제1정보블록에 관해서 값리스트로의 포인터배열 중, "i"번째의 포인터값, Pm2i는 제2정보블록에 관해서 값리스트로의 포인터배열중, "i"번째의 포인터값, Pm3i는 제3정보블록에 관해서 "i"번째의 포인터값이며, 또, "q"는 제2값리스트에 있어서의 항목값의 수, "r"은 제3값리스트에 있어서의 항목값의 수이다. 항목이 4개이상인 경우에도 동일한 방법으로 포인터값을 구할 수 있는 것은 말할 필요도 없다.
도 37은 상기 인명테이블 및 연령테이블에 관해서 가상의 값리스트에 대한 값리스트로의 포인터배열을 설명하는 도이다. 주테이블인 「인명테이블」에 있어서, 「회원성」의 정보블록에 착안하면, 값리스트로의 포인터배열중, 레코드번호"0"에 대응하는(즉 1행째의)포인터값은 "1"이며, 한편, 「회원명」의 정보블록에 착안하면, 값리스트로의 포인터배열중, 1행째의 포인터값은 "0"이다. 따라서, 가상의 값리스트로의 포인터배열에 있어서, 레코드번호"0"에 대응하는 (즉 1행째의)포인터값은 1*q(여기에서는 4)+0=4로 된다. 또, 레코드번호"1"에 관해서 가상의 값리스트로의 포인터배열에 있어서 대응하는 포인터값은 0*4+3=3이 된다.
여기에서, 상기 가상의 값리스트로의 포인터배열에 있어서의 포인터값의 의미에 대해 이하에 설명한다. 상기 예에서는 「인명테이블」에 있어서, 「회원성」 의 정보블록에 관한 포인터값의 수p가 3이며, 「회원명」의 정보블록에 관한 포인터값의 수q가 4였다.
레코드번호"0"에 착안하면, 가상의 값리스트로의 포인터배열에 있어서의 포인터값은 "4"이다. 이 값은 "4/q=4/4=1"인 점에서, 「회원성」의 정보블록의 값리스트를 참조하면, 「Smith」성인 것을 이해할 수 있다. 또, "4mod(q)=4mod4=0
인 점에서부터, 「회원명」의 정보블록의 값리스트를 참조하면, 이름이 「John」인 것을 이해할 수 있다. 또, 레코드번호 "1" 및 "2"에 각각 착안하면, 가상의 값리스트로의 포인터배열에 있어서의 포인터값이 "3" 및 "5"이다. 이들 값은 각각 "3/q=3/4=0" 및 "5/q=5/4=1"인 것으로부터 「회원성」의 정보블록의 값리스트를 참조하면, 각각 「Carter」성 및 「Smith」성인 것을 이해할 수 있다. 또, 각각, "3mod(q)=3mod4=3" 및 "5mod(q)=5mod4=1"인 것으로부터 「회원명」의 정보블록의 값리스트를 참조하면, 각각의 이름이 「Tom」 및 「Ken」인 것을 이해할 수 있다.(도 38참조).
종테이블인 「연령테이블」에 관해서도 동일한 방법에 의해 가상의 값리스트로의 포인터배열중의 포인터값이 얻어지고 있다. 얻어진 포인터배열중의 포인터값이 가진 의미도 주테이블의 것과 동일하다.(도 39참조).
스텝3502 및 스텝3503의 처리에 이해 복수항목을 단일항목과 동일하게 생각할 수 있다. 따라서, 종테이블의 정보블록에 있어서, 가상의 값리스트로의 포인터배열을 이용해서 레코드번호로의 포인터배열의 포인터값이 생성되고, 이들이 소정 위치에 격납된다(스텝3504). 이 방법은 도 11의 스텝1105에서 이용한 것과 동일하다. 다시 설명하면, 먼저, 종테이블의 가상적인 정보블록에 있어서, 가상의 값리스트와 동일한 크기의 배열이 준비된다. 계속해서 값리스트로의 포인터배열의 선두로부터 포인터값을 스캔하고, "i"번째의 포인터값이 "j"인 경우에, 준비한 배열에 있어서, "j"번째의 요소로서 값"i"를 격납하는 처리가 실행된다.
도 40에 있어서는 종테이블인 「연령테이블」에 관해서 공유화에 의해 얻어진 가상적인 값리스트를 포함하는 「연령·회원성+연령·회원명」이라는 가상적인 정보블록중의 값리스트로의 포인터배열(스텝3503참조)에 격납된 각 포인터값이 참조된다. 예를 들면, 레코드번호"0"에 대응하는 포인터값은 "3"이므로, 레코드번호로의 포인터배열에 있어서는 대응하는 위치(4행째)에 레코드번호"0"가 격납된다.
이렇게 해서 레코드번호로의 포인터배열이 만들어진 후에 조인한 표(뷰)가 얻어진다(스텝3505). 보다 상세하게는 주테이블의 레코드번호에 의해 주테이블의 정보블록에 있어서, 그 항목값을 취출해야할 값리스트로의 포인터배열중의 포인터값이 지정된다. 또, 가상의 값리스트를 포함하는 정보블록에 있어서의 값리스트로의 포인터배열중의 포인터값을 참조하여, 이 포인터값에 기초하여 스텝3504에서 얻어진 레코드번호로의 포인터값이 특정된다. 이 포인터값에 의해 나타내어지는 레코드번호는 종테이블의 것이므로, 표시해야할 항목을 구비한 값리스트를 포함하는 정보블록에 있어서 대응하는 위치의 포인터값이 발견된고, 이것에 의해 값리스트중의 항목값이 특정된다.
도 41에 있어서, 주테이블의 레코드번호(예를 들면, "0")로부터 주테이블에 있어서의 「회원성」의 정보블록, 및 「회원명」의 정보블록중의 값리스트로부터 항목값(예를 들면, "Smith" 및 "John")이 얻어진다. 한편, 상기 레코드번호로부터 가상의 값리스트를 포함하는 「회원성+회원명」의 정보블록의 값리스트로의 포인터배열에 있어서의 대응하는 포인터값(예를 들면 "4")가 얻어지고, 이것에 의해 종테이블의 레코드번호(예를 들면 "1")가 발견된다. 따라서, 종테이블중의 표시해야할 항목을 갖는 「연령」의 정보블록의 값리스트로부터 대응하는 항목값(예를 들면 "22")을 취출하는 것이 가능하게 된다.
본 실시형태에 의하면, 조인해야할 복수의 항목을 단일항목으로서 취급하기 위해 복수의 항목을 결합한 상태의 정보블록을 형성하고, 이 정보블록에 의해 얻는 가상적인 항목값에 대응하는 포인터배열을 이용해서 필요한 레코드번호나 포인터값을 특정하고 있다. 또, 상기 가상적인 항목값을 포함하는 값리스트를 실제로 만드는 일없이 이 값리스트중의 항목값을 지정하기 위한 포인터배열만을 작성하고 있다. 예를 들면 2개의 항목의 항목값이 각각 "p", "q"인 경우에는 "p×q"의 사이즈의 레코드번호로의 포인터배열을 작성하면 된다. 따라서, 실제로 결합된 항목값을 구비한 막대한 양의 값리스트를 작성하는 일없이 복수항목의 조인을 실현할 수 있다.
(제7실시형태)
다음에, 본 발명의 제7실시형태에 대해서 설명한다. 상기 제6실시형태에서는 복수의 항목을 결합한 상태의 정보블록을 작성하고, 이 정보블록에 관해서 레코드번호로의 포인터배열을 작성했다. 그러나, 상기 2개의 항목의 항목값을 "p","q"로 한 경우, 각각이 매우 큰 경우(예를 들면 100,000인 경우)에 레코드번호로의 포인터배열만으로도 매우 큰 것이 되어 버린다. 그래서, 제7실시형태에 있어서는 가상적인 값리스트로의 포인터배열을 생성하는 일없이 복수항목을 다차원적(예를 들면, 2차원적)으로 기술한 값리스트를 생성함으로써, 포인터배열을 거대화하는 것을 방지하고 있다. 상기 복수항목을 기술한 값리스트의 항목값을, 본 명세서에 있어서 경우에 따라서는 다차원배열이라고 칭한다.
도 42는 제7실시형태에 따른 처리를 나타낸 플로챠트이다. 이 처리에 있어서도 도 35의 것과 마찬가지로, 먼저, 공유화처리가 실행된다(스텝4201). 계속해서, 주테이블에 관해서 조인해야할 복수의 항목의 각각에 대해서 레코드번호가 소트된다(스텝4202). 이것에 의해 소트된 레코드번호가 격납된 배열(소트배열 혹은 소트후 레코드번호리스트)가 생성된다.
조인해야할 항목이 2개인 경우에는 2회의 소트처리가 실행된다. 예를 들면 도 43에 나타내듯이, 주테이블에 관해서 「회원명」 및 「회원성」의 쌍방의 항목을 조인해야할 경우에는 공유화의 후에 레코드번호가 「회원명」의 정보블록중의 값리스트의 순서에 따라서 소트되고, 계속해서 「회원성」의 정보블록중의 값리스트의 순서에 따라서 소트된다.
계속해서, 소트배열중의 레코드번호를 참조함으로써, 복수항목을 결합한 값리스트, 및 값리스트로의 포인터배열이 생성된다(스텝4203). 보다 상세하게는 도 44에 나타내듯이, 소트배열의 번호를 초기화한(스텝4401)후에 복수항목 중 어느 하나에 대응하는 정보블록중의 값리스트로의 포인터배열에 착안하여, 소트배열중에 격납된 레코드번호가 나타낸 위치에 격납된 포인터값이 특정된다(스텝4402). 상기 복수항목의 전체에 대해서 스텝4402의 처리가 실시되면(스텝4403, 4404참조), 새로 운 값리스트에 있어서, 소트배열의 번호에 대응하는 위치에 복수의 포인터값이 소정의 순서로 배치된다(스텝4405). 이렇게 해서 배치된 복수의 포인터값(다차원배열인 포인터값)이 값리스트중의 항목값이 된다.
또한, 상기 새로운 값리스트의 항목값을 지정하기 위한 포인터배열의 대응하는 포인터값이 생성된다.(스텝4406). 즉, 상기 값리스트로의 포인터배열에 있어서, 레코드번호에 대응하는 위치에 항목값이 격납된 위치를 나타낸 값이 격납된다. 이것에 의해 레코드번호로부터 값리스트로의 포인터배열중의 대응하는 포인터값이 취출되고, 또한, 다차원배열의 포인터값을 항목값으로서 격납하고 있는 값리스트에 있어서 포인터값이 나타낸 항목값이 취출될 수 있다.
상기 스텝4402∼스텝4407의 처리를 전체 소트배열의 번호에 관해서 실행해서(스텝4407, 4408참조), 처리가 종료한다.
도 45 및 도 46은 도 43에 나타낸 소트처리후에 「회원성+회원명」이라는 정보블록을 작성한 예를 나타낸 도이다. 도 45에 나타내듯이, 소트배열(소트후 레코드번호 리스트)에 있어서 선두(제1번째)에 격납된 레코드번호는 "1"이므로, 각 정보블록의 값리스트로의 포인터배열에 있어서, 대응하는 위치(2행째)의 포인터값이 취출되고, 이 포인터값"0" 및 "3"이 결정된 순서로 「회원성+회원명」의 새로운 정보블록의 값리스트에 있어서 선두의 위치에 2차원배열"0 3"으로서 격납된다. 또 해당 값리스트가 격납되어 있는 위치가 값리스트로의 포인터값으로서 포인터배열중의 레코드번호가 나타낸 위치에 배치된다. 소트배열에 격납된 다른 레코드번호에 대해서도 동일한 순서로 2차원배열인 항목값 및 값리스트로의 포인터배열중의 포인터값이 격납된다.
종테이블에 관해서도 스텝4202 및 스텝4203과 동일한 처리가 실행된다(스텝4204, 4205). 상술한 예에 관해서 「연령테이블」의 「연령·회원성+연령·회원명」의 정보블록이 생성되고, 필요한 값리스트로의 포인터배열 및 2차원 배열의 항목값을 갖는 값리스트가 작성된다(도 47참조).
이렇게 해서 주테이블 및 종테이블에 있어서, 복수항목을 2차원배열의 항목값으로 나타낸 값리스트가 얻어지면, 이들 값리스트를 포함하는 정보블록, 및 표(뷰)에 나타내어야할 항목에 관한 다른 항목블록을 이용해서 도 11과 동일한 처리가 실행된다. 즉, 복수항목을 2차원배열의 항목값으로 나타낸 값리스트가 공유화된다(스텝1101∼스텝1105참조). 계속해서 상기 다른 정보블록중의 값리스트의 항목값을 특정하기 위해 레코드번호로의 포인터배열이 생성된다(스텝1106). 이렇게 해서 소정의 포인터배열이나 값리스트의 갱신이나 생성을 행한 후에 도 12에 나타내 처리를 실행해서 항목값을 취출함으로써 원하는 표(뷰)가 작성된다.
도 48은 제7실시형태에 있어서, 도 12에 나타낸 처리에 의한 표(뷰)의 작성을 설명하기 위한 도이다. 예를 들면, 레코드번호"0"에 관해서 복수항목을 2차원배열의 항목값으로 나타낸 값리스트를 포함하는 정보블록(「회원성+회원명」의 정보블록)에 있어서, 대응하는 값리스트로의 포인터배열중의 포인터값은 "0 3"이다. 이들 값 중 전자(즉 "0")은 항목값"Smith"를 의미하고 있고, 후자(즉 "3")은 항목값"John"을 의미하고 있다. 따라서, 표(뷰)에 있어서, 선두의 행에 "Smith" 및 "John"이 표시된다. 한편, 레코드번호"0"에 대해서 다른 테이블로의 레코드번호로 의 포인터배열에 있어서 대응하는 값은 "1"이다. 따라서, 「연령」의 정보블록 중, 값리스트로의 포인터배열의 대응하는 위치의 포인터값"0"이 발견된다. 따라서, 포인터값이 나타낸 위치의 항목값"22"이 선두의 행에 표시된다. 다른 레코드번호에 대해서도 동일한 순서로 항목값이 얻어지는 것은 말할 필요도 없다.
본 실시형태에 의하면, 필요한 메모리용량을 삭감하면서, 복수항목의 조인을 실현하는 것이 가능하게 된다.
(처리시간의 고찰)
다음에, 본 발명의 실시형태에 따른 방법을 이용해서 표형식 데이터를 조인하고, 또한, 조인된 표형식 데이터 중 소정의 항목을 포함하는 표(뷰)를 작성하는 처리와, 종래의 방법을 이용해서 동일한 표(뷰)를 작성하는 처리의 비교에 대해서 간단하게 서술한다.
본 발명의 실시형태에 관해서는 프로세서로서 PentiumPro(등록상표)를 200MHZ로 작동시키고, RAM상에 표형식 데이터를 구성하는 수집의 정보블록을 작성했다. 표형식 데이터로서 유저ID(0∼9999:항목1) 및 응원하는 야구구단명(12구단:항목2)을 구비한 유저테이블(10000레코드)와, 시합번호(0∼119:항목1), 야구구단명(12구단:항목2), 각 시합의 득점(0∼19점)을 구비한 시합테이블(120×12=1440레코드)를 고려하고, 각 유저마다 유저가 응원하고 있는 구단의 득점의 일람표를 작성했다. 이 경우에 총레코드수는 10000(유저)×120(시합)=120만 레코드가 된다. 상기 레코드를 제5실시형태에 기초하고, 또한, 주테이블 및 종테이블의 쌍방의 메모리를 절약하는 방법으로 일람표를 작성하기 때문에 평균 0.195초를 필요로 했다.
이것에 대해서, 종래의 방법에 따라 시판되는 데이터베이스로서 InterBase4.2(등록상표)를 이용하고, 클라이언트로서 Paradox7(등록상표)를 이용한 머신(프로세서로서 PentiumPro(등록상표)를 상기 처리와 동일조건에서 작동시켰다)으로 상기 표형식 데이터를 조인시키고, 뷰를 작성하면 510초를 필요로 했다. 따라서 본 발명에 의하면 종래의 것의 대략 3000배의 속도로 표형식 데이터의 조인 및 표(뷰)의 작성을 실현할 수 있는 것을 알 수 있었다.
본 발명은 이상의 실시형태에 한정되는 것은 아니고, 특허청구의 범위에 기재된 발명의 범위내에서 여러가지 변경이 가능하며, 이들도 본 발명의 범위내에 포함되는 것임은 말할 필요도 없다.
예를 들면 상기 제1실시형태에 있어서, 도 18(b)와 같이, 키항목이외의 항목으로 소트한 표(뷰)를 표시하는 경우에 대해서 설명한다. 도 18의 (a)에 나타내듯이 키항목으로 소트해서 표(뷰)를 표시하는 경우에는 키항목이 되는 정보블록(상기 예에서는 「서비스ID」의 정보블록)에 관해서 값리스트의 항목값마다의 메인표형식 데이터의 레코드수가 산출되고(존재수배열), 이것에 기초하여 메인표형식 데이터의 레코드번호를 소트한 상태에서 재배치하고 있지만(도 17참조), 그 이외의 항목에 의한 소트를 위해서는 약간의 수순이 추가된다.
제1실시형태에 따른 방법에있어서는 도 49의 (a)에 나타내듯이, 키항목에 관한 정보블록(이 경우에는 「서비스ID」의 정보블록)을 통해 다른 정보블록(이 경우에는 「연회비」의 정보블록)에 존재수배열이나 누계수배열 등이 생성된다. 즉, 공유화된 값리스트를 갖는 정보블록을 통해 소트된 메인표형식 데이터에 관한 레코드번호(친레코드번호)의 배열이 생성된다(도 49의 (b)참조).
또, 상기 실시형태에 있어서는 조인 및 표(뷰)의 작성시마다 값리스트를 공유화시켜야 할 정보블록의 특정이나 존재수배열 및/또는 개시위치배열의 산출, 변환배열의 생성 등을 실행하고 있지만, 미리 필요하다라고 생각되는 것을 조인하거나 또는 필요한 배열을 생성해 두어도 좋다. 또한, 표형식 데이터에 기초한 소정의 형태의 정보블록의 구축은 표형식 데이터를 수취한 시점에서 미리 실행해도 좋고, 표(뷰)의 작성의 지시에 응답해서 실행해도 좋다.
또한, 상기 제6 및 제7실시형태에 있어서는 복수의 표형식 데이터에 있어서, 2개의 항목을 조인해서 소정 항목에 관한 항목값을 제시하는 방법에 대해서 서술했지만, 3개이상의 항목을 조인하는 것도 가능한 것은 말할 필요도 없다. 예를 들면 상기 제6실시형태에 관해서는 상술한 바와 같이 (p×q×r)개의 포인터값을 구비한 가상의 값리스트로의 포인터배열을 작성하고, 해당 가상의 값리스트로의 대응을 결정해 두면 좋다. 또는 제7실시형태에 관해서는 각각이 3개이상으로 이루어진 다차원배열의 집합이 되는 값리스트를 작성하면 좋다.
또한, 상기 실시형태에 있어서는 일반적인 컴퓨터시스템(10)내에 소정의 프로그램을 판독하고, 해당 프로그램을 실행함으로써 복수의 표형식 데이터의 조인 및 조인된 표형식 데이터에 관한 처리를 실현하고 있지만, 본 발명은 이것에 한정되는 것은 아니고, 퍼스널컴퓨터 등과 같은 일반적인 컴퓨터시스템에 데이터베이스처리전용의 보드컴퓨터를 접속하고, 상기 보드컴퓨터가 상기 처리를 실행할 수 있 도록 구성해도 좋은 것은 말할 필요도 없다. 따라서, 본 명세서에 있어서 수단으로는 반드시 물리적 수단을 의미하는 것은 아니고, 각 수단의 기능이 소프트웨어에 의해 실현되는 경우도 포함된다. 또한, 하나의 수단의 기능이 둘 이상의 물리적 수단에 의해 실현되거나 또는 둘이상의 수단의 기능이 하나의 물리적 수단에 의해 실현도어도 좋다.
상술한 바와 같이 본 발명에 의하면 복수의 표형식 데이터를 원하는 바와 같이 조인할 수 있고, 또한, 그 데이터용량도 작은 표형식 데이터의 구조, 그 결합방법 및 결합한 표형식 데이터 제시방법을 제공하는 것이 가능하게 된다.
본 발명은 특히 대량의 데이터를 관리하는 시스템, 예를 들면 데이터베이스, 데이터웨어하우스에 이용할 수 있다. 보다 구체적으로는 대규모의 과학기술계산, 수발주관리나 증권거래 등의 기간업무관리, 사무관리에 이용가능하다.

Claims (33)

  1. 각각이, 항목과 이 항목에 포함되는 항목값을 포함하는 레코드배열로서 나타내어지는 복수의 표형식 데이터를 결합하는 방법으로서,
    각 표형식 데이터를 각각이, 특정 항목에 속하는 항목값에 대응한 항목값번호의 순으로 해당 항목값이 격납되어 있는 값리스트와, 일의적인 레코드번호의 순으로 해당 항목값번호를 지시하기 위한 포인터값이 격납된 포인터배열로 이루어진 하나이상의 정보블록으로 분할하도록 구성하는 단계,
    복수의 표형식 데이터사이에서 등가인 항목을 찾아내는 단계,
    상기 등가인 항목에 관한 정보블록을 특정하는 단계,
    상기 복수의 표형식 데이터의 각각에 있어서, 상기 특정된 정보블록에 포함되는 값리스트를 비교해서 쌍방의 값리스트의 항목값을 동치로 하는 단계, 및
    상기 값리스트의 항목값을 동치로 할 때, 그 항목값이 추가된 정보블록에 있어서, 관련된 포인터배열의 포인터값을 추가하는 단계를 포함하고,
    상기 복수의 표형식 데이터가, 특정 항목에 관한 정보블록에 포함되는 값리스트를 등가로 함으로써 결합되는 것을 특징으로 하는 표형식 데이터 결합방법.
  2. 제1항에 있어서, 상기 쌍방의 값리스트의 항목값을 동치로 하는 단계에 있어서, 상기 값리스트의 항목값을 동치로 된 정보블록에 관해서 단일의 값리스트만을 실제로 유지하는 것을 특징으로 하는 표형식 데이터 결합방법.
  3. 제1항 또는 제2항에 기재된 결합방법에 의해 생성되고, 특정 항목에 관한 정보블록에 포함되는 값리스트가 등가로 된 복수의 표형식 데이터를 준비하는 단계,
    상기 복수의 표형식 데이터에 관해서, 상기 특정 항목에 관한 정보블록 중 포인터배열의 포인터값이 중복되지 않는 키항목에 관한 정보블록을 특정하고, 해당 정보블록을 구비한 표형식 데이터를 서브표형식 데이터로 결정하는 단계,
    어느 하나의 정보블록에 있어서, 값리스트의 항목값의 순으로 상기 서브표형식 데이터의 레코드번호를 특정하는 제2포인터배열을 생성하는 단계,
    상기 복수의 표형식 데이터에 포함되는 정보블록 중, 제시해야할 항목에 관한 정보블록을 특정하는 단계,
    상기 제시해야할 항목에 관한 정보블록 중, 상기 서브표형식 데이터이외의 표형식 데이터인 메인표형식 데이터를 구성하는 정보블록에 관해서 소정의 레코드번호에 대응한 포인터배열중의 포인터값을 참조해서 소정의 항목값을 취득하는 단계,
    상기 제시해야할 항목에 관한 정보블록 중, 상기 서브표형식을 구성하는 정보블록에 관해서, 상기 소정의 레코드번호에 대응하는 상기 제2포인터배열중의 서브표형식에 관한 레코드번호를 특정하는 단계,
    상기 서브표형식 데이터를 구성하는 정보블록에 있어서, 해당 서브표형식 데이터에 관한 상기 특정된 레코드번호에 대응한 포인터배열중의 포인터값을 참조해서 소정의 항목값을 취득하는 단계, 및
    취득한 항목값을 제시하는 단계를 포함하는 것을 특징으로 하는 결합된 표형식 데이터 제시방법.
  4. 제1항 또는 제2항에 기재된 결합방법에 의해 생성되고, 특정 항목에 관한 정보블록에 포함되는 값리스트가 등가로 된 복수의 표형식 데이터를 준비하는 단계,
    상기 복수의 표형식 데이터에 관해서, 상기 특정 항목에 관한 정보블록 중 포인터배열의 포인터값이 중복되지 않는 키항목에 관한 정보블록을 특정하고, 해당 정보블록을 구비한 표형식 데이터를 서브표형식 데이터로 결정하는 단계,
    상기 키항목에 관한 정보블록에 해당 정보블록에 포함되는 값리스트의 항목값의 순으로 레코드번호를 지시하기 위한 포인터값이 격납된 제2포인터배열을 생성하는 단계,
    상기 복수의 표형식 데이터에 포함되는 정보블록 중, 제시해야할 항목에 관한 정보블록을 특정하는 단계,
    상기 제시해야할 항목에 관한 정보블록 중, 상기 서브표형식 데이터이외의 표형식 데이터인 메인표형식 데이터를 구성하는 정보블록에 관해서 소정의 레코드번호에 대응한 포인터배열중의 포인터값을 참조해서 소정의 항목값을 취득하는 단계, 및
    상기 제시해야할 항목에 관한 정보블록 중, 서브표형식 데이터를 구성하는 정보블록에 있어서, 상기 소정의 레코드번호에 대응한 포인터배열중의 포인터값을 참조해서 대응하는 제2포인터배열중의 서브표형식 데이터에 관한 레코드번호를 특정하고, 해당 서브표형식 데이터를 구성하는 정보블록에 있어서, 해당 제2포인터배열중의 레코드번호에 대응한 포인터배열중의 포인터값을 참조함으로써 소정 항목값을 취득하는 단계를 포함하는 것을 특징으로 하는 표형식 데이터 제시방법.
  5. 제1항 또는 제2항에 기재된 결합방법에 의해 생성되고, 특정 항목에 관한 정보블록에 포함되는 값리스트가 등가로 된 복수의 표형식 데이터를 준비하는 단계,
    상기 복수의 표형식 데이터에 관해서, 상기 특정 항목에 관한 정보블록 중 포인터배열의 포인터값이 중복되지 않는 키항목에 관한 정보블록을 특정하고, 해당 정보블록을 구비한 표형식 데이터를 서브표형식 데이터로 결정하는 단계,
    상기 메인표형식 데이터를 구성하는 정보블록으로서, 그 값리스트가 등가로 된 정보블록중에 값리스트의 항목값의 순으로 상기 서브표형식 데이터의 레코드번호를 지시하기 위한 포인터값이 격납된 제2포인터배열을 생성하는 단계,
    상기 복수의 표형식 데이터에 포함되는 정보블록 중, 제시해야할 항목에 관한 정보블록을 특정하는 단계,
    상기 제시해야할 항목에 관한 정보블록 중, 상기 서브표형식 데이터이외의 표형식 데이터인 메인표형식 데이터를 구성하는 정보블록에 관해서 소정의 레코드번호에 대응한 포인터배열중의 포인터값을 참조해서 소정의 항목값을 취득하는 단계,
    상기 소정의 레코드번호에 대응한 상기 제2포인터배열중의 서브표형식 데이터에 관한 레코드번호를 특정하는 단계,
    상기 제시해야할 항목에 관한 정보블록 중, 상기 서브표형식 데이터를 구성하는 정보블록에 있어서, 상기 서브표형식 데이터에 관한 레코드번호에 대응한 포인터배열중의 포인터값을 참조해서, 소정의 항목값을 취득하는 단계, 및
    취득된 항목값을 제시하는 단계를 포함하는 것을 특징으로하는 표형식 데이터 제시방법.
  6. 제1항 또는 제2항에 기재된 결합방법에 의해 생성되고, 특정 항목에 관한 정보블록에 포함되는 값리스트가 등가로 된 복수의 표형식 데이터를 준비하는 단계,
    상기 복수의 표형식 데이터에 관해서, 상기 특정 항목에 관한 정보블록 중 포인터배열의 포인터값이 중복되지 않는 키항목에 관한 정보블록을 특정하고, 해당 정보블록을 구비한 표형식 데이터를 서브표형식 데이터로 결정하는 단계,
    상기 서브표형식 데이터를 구성하는 정보블록 중, 적어도 제시해야할 항목에 관한 정보블록에 값리스트의 항목값의 순으로 해당 서브표형식 데이터의 레코드번호를 지시하기 위한 포인터값이 격납된 제2포인터배열을 생성하는 단계,
    상기 복수의 표형식 데이터에 포함되는 정보블록 중, 제시해야할 항목에 관한 정보블록을 특정하는 단계,
    상기 제시해야할 항목에 관한 정보블록 중, 상기 서브표형식 데이터이외의 표형식 데이터인 메인표형식 데이터를 구성하는 정보블록에 관해서 소정의 레코드번호에 대응한 포인터배열중의 포인터값을 참조해서 소정의 항목값을 취득하는 단계,
    상기 제시해야할 항목에 관한 정보블록 중, 서브표형식 데이터를 구성하는 정보블록에 있어서, 상기 소정의 레코드번호에 대응한 포인터배열중의 포인터값을 참조해서 대응하는 제2포인터배열중의 서브표형식 데이터에 관한 레코드번호를 특정하고, 해당 서브표형식 데이터를 구성하는 정보블록에 있어서, 해당 제2포인터배열중의 레코드번호에 대응한 포인터배열중의 포인터값을 참조함으로써, 소정 항목값을 취득하는 단계, 및
    취득된 항목값을 제시하는 단계를 포함하는 것을 특징으로 하는 결합된 표형식 데이터 제시방법.
  7. 제3항에 있어서, 소정의 순서에 따라서 소트되어야 할 항목값을 포함하는 정보블록에, 메인표형식 데이터에 관한 레코드의 개수를 나타낸 존재수를 항목값에 대응해서 격납하는 존재수배열을 생성하는 단계,
    상기 존재수배열에 따라서 상기 메인표형식 데이터에 관한 레코드번호를 격납하는 위치의 초기값을 나타내는 위치지시배열을 생성하는 단계,
    상기 메인표형식 데이터의 레코드번호를 대응하는 포인터값에 의해 나타내어지는 위치의 위치지시배열에 따라서 배치하는 동시에, 해당 위치지시배열의 대응하는 값을 인크리먼트함으로써, 메인표형식 데이터의 레코드번호가 소트되어 격납된 소트배열을 생성하는 단계, 및
    상기 소트배열에 격납된 레코드번호의 순으로 필요한 항목값을 취득해서, 해당 키항목에 기초하여 소트된 항목값을 제시하는 단계를 더 포함하는 것을 특징으로 하는 표형식 데이터 제시방법.
  8. 제7항에 있어서, 상기 존재수배열을 생성하는 단계가, 키항목에 관한 정보블록에 메인표형식 데이터를 구성하는 정보블록으로서 해당 정보블록과 등가인 값리스트를 갖는 정보블록의 포인터배열중의 포인터값의 개수를 나타낸 존재수를 해당 키항목의 정보블록중의 값리스트의 순서에 따라서 격납하는 존재수배열을 생성하는 단계를 포함하는 것을 특징으로 하는 표형식 데이터 제시방법.
  9. 제7항에 있어서, 상기 존재수배열을 생성하는 단계가, 키항목에 관한 정보블록과 등가이고, 또한 메인표형식 데이터를 구성하는 정보블록중의 포인터배열과, 상기 제2포인터배열을 이용해서 상기 항목값이 소트되어야 할 정보블록에 메인표형식 데이터에 관한 레코드의 수를 나타낸 존재수를 격납하는 존재수배열을 생성하는 단계를 포함하는 것을 특징으로 하는 표형식 데이터 제시방법.
  10. 제1항 또는 제2항에 기재된 결합방법에 의해 생성되고, 특정 항목에 관한 정보블록에 포함되는 값리스트가 등가로 된 복수의 표형식 데이터를 준비하는 단계,
    상기 복수의 표형식 데이터에 관해서, 상기 특정 항목에 관한 정보블록 중, 제시할 때 디폴트의 소트순이 반영되는 표형식 데이터를 주표형식 데이터로 결정하고, 그 이외의 표형식 데이터를 종표형식 데이터로 결정하는 단계,
    상기 종표형식 데이터를 구성하고, 등가로 된 항목값을 포함하는 정보블록에 종표형식 데이터에 관한 레코드의 개수를 나타낸 존재수를 항목값에 대응해서 격납하는 제1존재수배열을 생성하는 단계,
    상기 제1존재수배열에 따라서, 상기 종표형식 데이터의 레코드번호를 소트한 상태로 배치하는 초기위치를 결정하는 제1위치지시배열을 생성하는 단계,
    상기 종표형식 데이터의 레코드번호를 대응하는 포인터값에 의해 나타내어지는 위치의 제1위치지시배열에 따라 배치하는 동시에, 해당 위치지시배열의 대응하는 값을 인크리먼트함으로써, 종표형식 데이터의 레코드번호가 소트되어 격납된 제1소트배열을 생성하는 단계,
    상기 위치지시배열의 초기값 및 최종값과, 상기 주표형식 데이터에 관해서 그 값리스트가 등가로 된 정보블록중의 포인터배열을 참조해서 상기 주표형식 데이터에 관한 다른 정보블록의 포인터배열의 중복도를 산출하고, 해당 중복도에 따라 포인터배열을 확장하는 단계,
    상기 위치지시배열의 초기값 및 최종값과, 상기 소트배열을 참조해서 상기 종표형식 데이터에 관한 정보블록의 포인터배열의 중복도를 참조해서 해당 중복도에 따라 포인터배열을 확장하는 단계, 및
    해당 확장된 포인터배열에 기초하여 필요한 항목값을 취득해서 제시하는 단계를 포함하는 것을 특징으로 하는 표형식 데이터 제시방법.
  11. 제10항에 있어서, 상기 확장된 포인터배열에 기초하여 필요한 항목값을 취득해서 제시하는 단계가,
    상기 산출된 상기 주표형식 데이터에 관한 다른 정보블록의 포인터배열의 상기 중복도에 기초하여 주표형식 데이터의 레코드번호가 중복해서 배치된 제1변환배열을 생성하는 단계, 및
    상기 주표형식 데이터에 관해서, 상기 제1변환배열에 따라서 정보블록의 값리스트로의 포인터배열을 참조해서 값리스트의 항목값을 취출하는 단계를 포함하는 것을 특징으로 하는 표형식 데이터 제시방법.
  12. 제10항 또는 제11항에 있어서, 상기 확장된 포인터배열에 기초하여 필요한 항목값을 취득해서 제시하는 단계가,
    상기 주표형식 데이터의 레코드번호와, 관련된 상기 중복도에 기초하여 종표형식 데이터의 레코드번호가 중복해서 배치된 제2변환배열을 생성하는 단계, 및
    상기 종표형식 데이터에 관해서, 상기 제2변환배열에 따라 정보블록의 값리스트로의 포인터배열을 참조해서 값리스트의 항목값을 취출하는 단계를 포함하는 것을 특징으로 하는 표형식 데이터 제시방법.
  13. 제1항 또는 제2항에 기재된 결합방법에 의해 생성되고, 특정의 2이상의 항목에 관한 정보블록에 포함되는 값리스트가 각각 등가로 된 복수의 표형식 데이터를 준비하는 단계,
    상기 복수의 표형식 데이터에 관해서, 상기 특정 항목에 관한 정보블록 중, 제시할 때 디폴트의 소트값이 반영되는 항목을 포함하는 표형식 데이터를 주표형식 데이터로 결정하고, 그 이외의 표형식 데이터를 종표형식 데이터로 결정하는 단계,
    상기 주표형식 데이터에 관해서, 2이상의 등가로 된 값리스트의 곱집합인 가상의 값리스트로의 포인터배열을 생성하는 단계,
    상기 종표형식 데이터에 관해서, 상기 가상의 값리스트로의 제2포인터배열을 생성하는 단계,
    상기 가상의 값리스트의 항목값의 순으로 상기 종표형식 데이터의 레코드번호를 특정하는 제3포인터배열을 작성하는 단계,
    상기 복수의 표형식 데이터에 포함되는 정보블록 중, 제시해야할 항목에 관한 정보블록을 특정하는 단계,
    상기 제시해야할 항목에 관한 정보블록 중, 표형식 데이터를 구성하는 정보블록에 관해서 소정의 레코드번호에 대응한 포인터배열중의 포인터값을 참조해서 소정의 항목값을 취득하는 단계,
    상기 제시해야할 항목에 관한 정보블록 중, 상기 서브표형식을 구성하는 정보블록에 관해서, 상기 소정의 레코드번호에 대응한 레코드번호를 참조해서 대응하는 상기 가상의 값리스트로의 포인터배열중의 포인터값에 기초하여 상기 제3포인터배열중의 상기 종표형식 데이터의 레코드번호를 특정하는 단계,
    상기 종표형식 데이터를 구성하는 정보블록에 있어서, 해당 종표형식 데이터에 관한 레코드번호에 대응한 포인터배열중의 포인터값을 참조해서 소정의 항목값을 취득하는 단계, 및
    취득한 항목값을 제시하는 단계를 포함하는 것을 특징으로 하는 결합된 표형식 데이터 제시방법.
  14. 제13항에 있어서, 상기 등가로 된 값리스트를 갖는 정보블록이 두개이며, 한쪽의 정보블록에 관한 등가로 된 값리스트의 항목값의 수가 p이고, 또한 다른 쪽의 정보블록에 관한 등가로 된 값리스트의 항목값의 수가 q인 경우에,
    상기 주표형식 데이터에 관해서, 2이상의 등가로 된 값리스트의 곱집합인 가상의 값리스트로의 포인터배열을 생성하는 단계에 있어서, 상기 주표형식 데이터에 관한 상기 가상의 값리스트로의 포인터값Pmi(0≤i≤p-1)이
    Pmi=Pm1i*q+Pm2i
    (단, Pm1i는 한 쪽의 정보블록에 관한 값리스트의 항목값, Pm2i는 다른 쪽의 정보블록에 관한 값리스트의 항목값)
    으로 나타내어지며 또한,
    상기 종표형식 데이터에 관해서, 상기 가상의 값리스트로의 제2포인터배열을 생성하는 단계에 있어서, 상기 종표형식 데이터에 관한 상기 가상의 값리스트로의 포인터값Psj(0≤j≤p-1)이
    Psj=Ps1j*q+Ps2j
    (단, Ps1j는 한 쪽의 정보블록에 관한 값리스트의 항목값, Ps2j는 다른 쪽의 정보블록에 관한 값리스트의 항목값)
    으로 나타내어지는 것을 특징으로 하는 표형식 데이터 제시방법.
  15. 제1항 또는 제2항에 기재된 결합방법에 의해 생성되고, 특정의 2이상의 항목에 관한 정보블록에 포함되는 값리스트가 각각 등가로 된 복수의 표형식 데이터를 준비하는 단계,
    상기 복수의 표형식 데이터에 관해서, 상기 특정 항목에 관한 정보블록 중, 제시할 때 디폴트의 소트순이 반영되는 항목을 포함하는 표형식 데이터를 주표형식 데이터로 결정하고, 그 이외의 표형식 데이터를 종표형식 데이터로 결정하는 단계,
    상기 주표형식 데이터 및 주표형식 레코드의 각각에 관해서 디폴트의 소트순이 반영되는 항목이외의 항목으로 상기 레코드번호를 소트하고, 마지막으로 상기 소트순이 반영되는 항목으로 상기 레코드번호를 소트함으로써 제1소트배열을 생성하는 단계,
    상기 제1소트배열중의 레코드번호를 참조해서 상기 2이상의 항목에 관한 2이상의 값리스트의 대응하는 항목값을 각각 취출하는 단계,
    2이상의 항목값의 다차원배열로 이루어진 항목값을 구비한 다차원값리스트중의 대응하는 위치에 취출된 항목값의 다차원배열을 격납하는 단계,
    상기 다차원값리스트의 다차원배열을 특정하기 위한 포인터배열의 상기 레코드번호에 대응하는 위치에 상기 레코드번호를 격납하는 단계,
    어느 하나의 정보블록에 있어서 값리스트의 항목값의 순으로 상기 종표형식 데이터의 레코드번호를 특정하는 제2포인터배열을 생성하는 단계,
    상기 제시해야할 항목에 관한 정보블록 중, 상기 주표형식 데이터를 구성하는 정보블록에 관해서, 소정의 레코드번호에 대응한 다차원값리스트를 특정하기 위한 포인터배열의 포인터값 및/또는 다른 포인터배열의 포인터값을 참조해서 소정의 항목값을 취득하는 단계,
    상기 제시해야할 항목에 관한 정보블록 중, 상기 종표형식을 구성하는 정보블록에 관해서, 상기 소정의 레코드번호에 대응한 레코드번호를 참조해서 대응하는 상기 제2포인터배열중의 종표형식에 관한 레코드번호를 특정하는 단계,
    상기 서브표형식 데이터를 구성하는 정보블록에 있어서, 해당 종표형식 데이터에 관한 레코드번호에 대응한 다차원값리스트를 특정하기 위한 포인터배열의 포인터값 및/또는 포인터배열중의 포인터값을 참조해서 소정의 항목값을 취득하는 단계, 및
    취득한 항목값을 제시하는 단계를 포함하는 것을 특징으로 하는 표형식 데이터 제시방법.
  16. 각각이, 항목과 이 항목에 포함되는 항목값을 포함하는 레코드의 배열로서 나타내어지는 복수의 표형식 데이터를 결합하는 방법을 컴퓨터시스템에서 실행할 수 있는 프로그램을 기억한 기억매체로서,
    상기 복수의 표형식 데이터를 결합하는 방법이,
    각 표형식 데이터를 각각이, 특정 항목에 속하는 항목값에 대응한 항목값번호의 순으로 해당 항목값이 격납되어 있는 값리스트와, 일의적인 레코드번호의 순으로 해당 항목값번호를 지시하기 위한 포인터값이 격납된 포인터배열로 이루어진 하나이상의 정보블록으로 분할하도록 구성하는 단계,
    복수의 표형식 데이터사이에서 등가인 항목을 찾아내는 단계,
    상기 등가인 항목에 관한 정보블록을 특정하는 단계,
    상기 복수의 표형식 데이터의 각각에 있어서 상기 특정된 정보블록에 포함되는 값리스트를 비교해서 쌍방의 값리스트의 항목값을 동치로 하는 단계, 및
    상기 값리스트를 동치로 할 때, 그 항목값이 추가된 정보블록에 있어서, 관련된 포인터배열의 포인터값을 추가하는 단계를 포함하고,
    상기 복수의 표형식 데이터가, 특정 항목에 관한 정보블록에 포함되는 값리스트를 등가로 함으로써 결합되는 것을 특징으로 하는 기억매체.
  17. 제16항에 기재된 프로그램에 의해 실행된 결합방법에 의해 생성되고, 특정 항목에 관한 정보블록에 포함되는 값리스트가 등가로 된 복수의 표형식 데이터에 기초하여 특정 항목에 관한 항목값을 제시하는 방법을 컴퓨터시스템에서 실행할 수 있는 프로그램을 기억한 기억매체로서,
    상기 특정의 항목에 관한 항목값을 제시하는 방법이,
    상기 복수의 표형식 데이터에 관해서, 상기 특정 항목에 관한 정보블록 중 포인터배열의 포인터값이 중복되지 않는 키항목에 관한 정보블록을 특정하고, 해당 정보블록을 구비한 표형식 데이터를 서브표형식 데이터로 결정하는 단계,
    어느 하나의 정보블록에 있어서, 값리스트의 항목값의 순으로 상기 서브표형식 데이터의 레코드번호를 특정하는 제2포인터배열을 생성하는 단계,
    상기 복수의 표형식 데이터에 포함되는 정보블록 중, 제시해야할 항목에 관한 정보블록을 특정하는 단계,
    상기 제시해야할 항목에 관한 정보블록 중, 상기 서브표형식 데이터이외의 표형식 데이터인 메인표형식 데이터를 구성하는 정보블록에 관해서, 소정의 레코드번호에 대응한 포인터배열중의 포인터값을 참조해서 소정 항목값을 취득하는 단계,
    상기 제시해야할 항목에 관한 정보블록 중, 상기 서브표형식을 구성하는 정보블록에 관해서, 상기 소정의 레코드번호에 대응하는 상기 제2포인터배열중의 서브표형식에 관한 레코드번호를 특정하는 단계,
    상기 서브표형식 데이터를 구성하는 정보블록에 있어서, 해당 서브표형식 데이터에 관한 상기 특정된 레코드번호에 대응한 포인터배열중의 포인터값을 참조해서 소정의 항목값을 취득하는 단계, 및
    취득한 항목값을 제시하는 단계를 포함하는 것을 특징으로 하는 기억매체.
  18. 제16항에 기재된 프로그램에 의해 실행된 결합방법에 의해 생성되고, 특정 항목에 관한 정보블록에 포함되는 값리스트가 등가로 된 복수의 표형식 데이터에 기초하여 특정 항목에 관한 항목값을 제시하는 방법을 컴퓨터시스템에서 실행할 수 있는 프로그램을 기억한 기억매체로서,
    상기 특정의 항목에 관한 항목값을 제시하는 방법이,
    상기 복수의 표형식 데이터에 관해서, 상기 특정 항목에 관한 정보블록 중 포인터배열의 포인터값이 중복되지 않는 키항목에 관한 정보블록을 특정하고, 해당 정보블록을 구비한 표형식 데이터를 서브표형식 데이터로 결정하는 단계,
    상기 키항목에 관한 정보블록에 해당 정보블록에 포함되는 값리스트의 항목값의 순으로 레코드번호를 지시하기 위한 포인터값이 격납된 제2포인터배열을 생성하는 단계,
    상기 복수의 표형식 데이터에 포함되는 정보블록 중, 제시해야할 항목에 관한 정보블록을 특정하는 단계,
    상기 제시해야할 항목에 관한 정보블록 중, 상기 서브표형식 데이터이외의 표형식 데이터인 메인표형식 데이터를 구성하는 정보블록에 관해서, 소정의 레코드번호에 대응한 포인터배열중의 포인터값을 참조해서 소정 항목값을 취득하는 단계, 및
    상기 제시해야할 항목에 관한 정보블록 중, 서브표형식 데이터를 구성하는 정보블록에 있어서, 상기 소정 레코드번호에 대응한 포인터배열중의 포인터값을 참조해서 대응하는 제2포인터배열중의 서브표형식 데이터에 관한 레코드번호를 특정하고, 해당 서브표형식 데이터를 구성하는 정보블록에 있어서, 해당 제2포인터배열중의 레코드번호에 대응한 포인터배열중의 포인터값을 참조함으로써 소정의 항목값을 취득하는 단계를 포함하는 것을 특징으로 하는 기억매체.
  19. 제16항에 기재된 프로그램에 의해 실행된 결합방법에 의해 생성되고, 특정 항목에 관한 정보블록에 포함되는 값리스트가 등가로 된 복수의 표형식 데이터에 기초하여 특정 항목에 관한 항목값을 제시하는 방법을 컴퓨터시스템에서 실행할 수 있는 프로그램을 기억한 기억매체로서,
    상기 특정의 항목에 관한 항목값을 제시하는 방법이,
    상기 복수의 표형식 데이터에 관해서, 상기 특정 항목에 관한 정보블록 중 포인터배열의 포인터값이 중복되지 않는 키항목에 관한 정보블록을 특정하고, 해당 정보블록을 구비한 표형식 데이터를 서브표형식 데이터로 결정하는 단계,
    상기 메인표형식 데이터를 구성하는 정보블록으로서, 그 값리스트가 등가로 된 정보블록중에 값리스트의 항목값의 순으로 상기 서브표형식 데이터의 레코드번호를 지시하기 위한 포인터값이 격납된 제2포인터배열을 생성하는 단계,
    상기 복수의 표형식 데이터에 포함되는 정보블록 중, 제시해야할 항목에 관한 정보블록을 특정하는 단계,
    상기 제시해야할 항목에 관한 정보블록 중, 상기 서브표형식 데이터이외의 표형식 데이터인 메인표형식 데이터를 구성하는 정보블록에 관해서, 소정의 레코드번호에 대응한 포인터배열중의 포인터값을 참조해서 소정 항목값을 취득하는 단계,
    상기 소정의 레코드번호에 대응한 상기 제2포인터배열중의 서브표형식 데이터에 관한 레코드번호를 특정하는 단계,
    상기 제시해야할 항목에 관한 정보블록 중, 상기 서브표형식 데이터를 구성하는 정보블록에 있어서, 상기 서브표형식 데이터에 관한 레코드번호에 대응한 포인터배열중의 포인터값을 참조해서 소정의 항목값을 취득하는 단계, 및
    취득된 항목값을 제시하는 단계를 포함하는 것을 특징으로 하는 기억매체.
  20. 제16항에 기재된 프로그램에 의해 실행된 결합방법에 의해 생성되고, 특정 항목에 관한 정보블록에 포함되는 값리스트가 등가로 된 복수의 표형식 데이터에 기초하여 특정 항목에 관한 항목값을 제시하는 방법을 컴퓨터시스템에서 실행할 수 있는 프로그램을 기억한 기억매체로서,
    상기 특정의 항목에 관한 항목값을 제시하는 방법이,
    상기 복수의 표형식 데이터에 관해서, 상기 특정 항목에 관한 정보블록 중 포인터배열의 포인터값이 중복되지 않는 키항목에 관한 정보블록을 특정하고, 해당 정보블록을 구비한 표형식 데이터를 서브표형식 데이터로 결정하는 단계,
    상기 서브표형식 데이터를 구성하는 정보블록 중, 적어도 제시해야할 항목에 관한 정보블록에 값리스트의 항목값의 순으로 해당 서브표형식 데이터의 레코드번호를 지시하기 위한 포인터값이 격납된 제2포인터배열을 생성하는 단계,
    상기 복수의 표형식 데이터에 포함되는 정보블록 중, 제시해야할 항목에 관한 정보블록을 특정하는 단계,
    상기 제시해야할 항목에 관한 정보블록 중, 상기 서브표형식 데이터이외의 표형식 데이터인 메인표형식 데이터를 구성하는 정보블록에 관해서, 소정의 레코드번호에 대응한 포인터배열중의 포인터값을 참조해서 소정 항목값을 취득하는 단계,
    상기 제시해야할 항목에 관한 정보블록 중, 서브표형식 데이터를 구성하는 정보블록에 있어서, 상기 소정 레코드번호에 대응한 포인터배열중의 포인터값을 참조해서 대응하는 제2포인터배열중의 서브표형식 데이터에 관한 레코드번호를 특정하고, 해당 서브표형식 데이터를 구성하는 정보블록에 있어서, 해당 제2포인터배열중의 레코드번호에 대응한 포인터배열중의 포인터값을 참조함으로써 소정 항목값을 취득하는 단계, 및
    취득된 항목값을 제시하는 단계를 포함하는 것을 특징으로 하는 기억매체.
  21. 제18항 내지 제20항 중 어느 한 항에 있어서, 상기 특정의 항목에 관한 항목값을 제시하는 방법이,
    소정의 순서에 따라서 소트되어야 할 항목값을 포함하는 정보블록에 메인표형식 데이터에 관한 레코드의 개수를 나타낸 존재수를 항목값에 대응해서 격납하는 존재수배열을 생성하는 단계,
    상기 존재수배열에 따라서, 상기 메인표형식 데이터에 관한 레코드번호를 격납하는 위치의 초기값을 나타낸 위치지시배열을 생성하는 단계,
    상기 메인표형식 데이터의 레코드번호를 대응하는 포인터값에 의해 나타내어지는 위치의 위치지시배열에 따라서 배치하는 동시에, 해당 위치지시배열의 대응하는 값을 인크리먼트함으로써, 메인표형식 데이터의 레코드번호가 소트되어 격납된 소트배열을 생성하는 단계, 및
    상기 소트배열에 격납된 레코드번호의 순으로 필요한 항목값을 취득해서 해당 키항목에 기초하여 소트된 항목값을 제시하는 단계를 더 포함하는 것을 특징으로 하는 기억매체.
  22. 제21항에 있어서, 상기 존재수배열을 생성하는 단계가, 키항목에 관한 정보블록에 메인표형식 데이터를 구성하는 정보블록으로서 해당 정보블록과 등가인 값리스트를 갖는 정보블록의 포인터배열중의 포인터값의 개수를 나타낸 존재수를 해당 키항목의 정보블록중의 값리스트의 순서에 따라서 격납하는 존재수배열을 생성하는 단계를 포함하는 것을 특징으로 하는 기억매체.
  23. 제21항에 있어서, 상기 존재수배열을 생성하는 단계가, 키항목에 관한 정보블록과 등가이고, 또한 메인표형식 데이터를 구성하는 정보블록중의 포인터배열과, 상기 제2포인터배열을 이용해서 상기 항목값이 소트되어야 할 정보블록에 메인표형식 데이터에 관한 레코드의 수를 나타낸 존재수를 격납하는 존재수배열을 생성하는 단계를 포함하는 것을 특징으로 하는 기억매체.
  24. 제16항에 기재된 프로그램에 의해 실행된 결합방법에 의해 생성되고, 특정 항목에 관한 정보블록에 포함되는 값리스트가 등가로 된 복수의 표형식 데이터에 기초하여 특정 항목에 관한 항목값을 제시하는 방법을 컴퓨터시스템에서 실행할 수 있는 프로그램을 기억한 기억매체로서,
    상기 특정의 항목에 관한 항목값을 제시하는 방법이,
    상기 복수의 표형식 데이터에 관해서, 상기 특정 항목에 관한 정보블록 중, 제시할 때 디폴트의 소트순이 반영되는 표형식 데이터를 주표형식 데이터로 결정하고, 그 이외의 표형식 데이터를 종표형식 데이터로 결정하는 단계,
    상기 종표형식 데이터를 구성하고, 등가로 된 항목값을 포함하는 정보블록에 종표형식 데이터에 관한 레코드의 개수를 나타낸 존재수를 항목값에 대응해서 격납하는 제1존재수배열을 생성하는 단계,
    상기 제1존재수배열에 따라서, 상기 종표형식 데이터의 레코드번호를 소트한 상태로 배치하는 초기상태를 결정하는 제1위치지시배열을 생성하는 단계,
    상기 종표형식 데이터의 레코드번호를, 대응하는 포인터값에 의해 나타내어지는 위치의 제1위치지시배열에 따라 배치하는 동시에, 해당 위치지시배열의 대응하는 값을 인크리먼트함으로써, 종표형식 데이터의 레코드번호가 소트되어 격납된 제1소트배열을 생성하는 단계,
    상기 위치지시배열의 초기값 및 최종값과, 상기 주표형식 데이터에 관해서 그 값리스트가 등가로 된 정보블록중의 포인터배열을 참조해서 상기 주표형식 데이터에 관한 다른 정보블록의 포인터배열의 중복도를 산출하고, 해당 중복도에 따라 포인터배열을 확장하는 단계,
    상기 위치지시배열의 초기값 및 최종값과, 상기 소트배열을 참조해서 상기 종표형식 데이터에 관한 정보블록의 포인터배열의 중복도를 참조해서 해당 중복도에 따라서 포인터배열을 확장하는 단계, 및
    해당 확장된 포인터배열에 기초하여 필요한 항목값을 취득해서 제시하는 단계를 포함하는 것을 특징으로 하는 기억매체.
  25. 제24항에 있어서, 해당 확장된 포인터배열에 기초하여 필요한 항목값을 취득해서 제시하는 단계가,
    상기 산출된 상기 주표형식 데이터에 관한 다른 정보블록의 포인터배열의 상기 중복도에 기초하여 주표형식 데이터의 레코드번호가 중복해서 배치된 제1변환배열을 생성하는 단계, 및
    상기 주표형식 데이터에 관해서, 상기 제1변환배열에 따라서 정보블록의 값리스트로의 포인터배열을 참조해서 값리스트의 항목값을 취출하는 단계를 포함하는 것을 특징으로 하는 기억매체.
  26. 제24항 또는 제25항에 있어서, 해당 확장된 포인터배열에 기초하여 필요한 항목값을 취득해서 제시하는 단계가,
    상기 주표형식 데이터의 레코드번호와, 관련된 상기 중복도에 기초하여 종표형식 데이터의 레코드번호가 중복해서 배치된 제2변환배열을 생성하는 단계, 및
    상기 종표형식 데이터에 관해서, 상기 제2변환배열에 따라서 정보블록의 값리스트로의 포인터배열을 참조해서 값리스트의 항목값을 취출하는 단계를 포함하는 것을 특징으로 하는 기억매체.
  27. 제16항에 기재된 프로그램에 의해 실행된 결합방법에 의해 생성되고, 특정의 2이상의 항목에 관한 정보블록에 포함되는 값리스트가 각각 등가로 된 복수의 표형식 데이터에 기초하여 특정 항목에 관한 항목값을 제시하는 방법을 컴퓨터시스템에서 실행할 수 있는 프로그램을 기억한 기억매체로서,
    상기 특정의 항목에 관한 항목값을 제시하는 방법이,
    상기 복수의 표형식 데이터에 관해서, 상기 특정 항목에 관한 정보블록 중, 제시할 때 디폴트의 소트순이 반영되는 항목을 포함하는 표형식 데이터를 주표형식 데이터로 결정하고, 그 이외의 표형식 데이터를 종표형식 데이터로 결정하는 단계,
    상기 주표형식 데이터에 관해서, 2이상의 등가로 된 값리스트의 곱집합인 가상의 값리스트의 포인터배열을 생성하는 단계,
    상기 종표형식 데이터에 관해서, 상기 가상의 값리스트로의 제2포인터배열을 생성하는 단계,
    상기 가상의 값리스트의 항목값의 순으로 상기 종표형식 데이터의 레코드번호를 특정하는 제3포인터배열을 작성하는 단계,
    상기 복수의 표형식 데이터에 포함되는 정보블록 중, 제시해야할 항목에 관한 정보블록을 특정하는 단계,
    상기 제시해야할 항목에 관한 정보블록 중, 표형식 데이터를 구성하는 정보블록에 관해서, 소정의 레코드번호에 대응한 포인터배열중의 포인터값을 참조해서 소정의 항목값을 취득하는 단계,
    상기 제시해야할 항목에 관한 정보블록 중, 상기 서브표형식을 구성하는 정보블록에 관해서, 상기 소정의 레코드번호에 대응한 레코드번호를 참조해서 대응하는 상기 가상의 값리스트로의 포인터배열중의 포인터값에 기초하여 상기 제3의 포인터배열중의 상기 종표형식 데이터의 레코드번호를 특정하는 단계,
    상기 종표형식 데이터를 구성하는 정보블록에 있어서, 해당 종표형식 데이터에 관한 레코드번호에 대응한 포인터배열중의 포인터값을 참조해서 소정의 항목값을 취득하는 단계, 및
    취득한 항목값을 제시하는 단계를 포함하는 것을 특징으로 하는 기억매체.
  28. 제16항에 기재된 프로그램에 의해 실행된 결합방법에 의해 생성되고, 특정의 2이상의 항목에 관한 정보블록에 포함되는 값리스트가 각각 등가로 된 복수의 표형식 데이터에 기초하여 특정 항목에 관한 항목값을 제시하는 방법을 컴퓨터시스템에서 실행할 수 있는 프로그램을 기억한 기억매체로서,
    상기 특정의 항목에 관한 항목값을 제시하는 방법이,
    상기 복수의 표형식 데이터에 관해서, 상기 특정 항목에 관한 정보블록 중, 제시할 때 디폴트의 소트순서가 반영되는 항목을 포함하는 표형식 데이터를 주표형식 데이터로 결정하고, 그 이외의 표형식 데이터를 종표형식 데이터로 결정하는 단계,
    상기 주표형식 데이터 및 주표형식 레코드의 각각에 관해서, 디폴트의 소트순이 반영되는 항목이외의 항목으로 상기 레코드번호를 소트하고, 마지막으로 상기 소트순이 반영되는 항목으로 상기 레코드번호를 소트함으로써 제1소트배열을 생성하는 단계,
    상기 제1소트배열중의 레코드번호를 참조해서 상기 2이상의 항목에 관한 2이상의 값리스트의 대응하는 항목값을 각각 취출하는 단계,
    2이상의 항목값의 다차원배열로 이루어진 항목값을 구비한 다차원값리스트중의 대응하는 위치에 취출된 항목값의 다차원배열을 격납하는 단계,
    상기 다차원값리스트의 다차원배열을 특정하기 위한 포인터배열의 상기 레코드번호에 대응하는 위치에 상기 레코드번호를 격납하는 단계,
    어느 하나의 정보블록에 있어서, 값리스트의 항목값의 순으로 상기 종표형식 데이터의 레코드번호를 특정하는 제2포인터배열을 생성하는 단계,
    상기 제시해야할 항목에 관한 정보블록 중, 상기 주표형식 데이터를 구성하는 정보블록에 관해서, 소정의 레코드번호에 대응한 다차원값리스트를 특정하기 위한 포인터배열의 포인터값 및/또는 다른 포인터배열의 포인터값을 참조해서 소정의 항목값을 취득하는 단계,
    상기 제시해야할 항목에 관한 정보블록 중, 상기 종표형식을 구성하는 정보블록에 관해서, 상기 소정 레코드번호에 대응한 레코드번호를 참조해서 대응하는 상기 제2포인터배열중의 종표형식에 관한 레코드번호를 특정하는 단계,
    상기 서브표형식 데이터를 구성하는 정보블록에 있어서, 해당 종표형식 데이터에 관한 레코드번호에 대응한 다차원값리스트를 특정하기 위한 포인터배열의 포인터값 및/또는 포인터배열중의 포인터값을 참조해서 소정의 항목값을 취득하는 단계, 및
    취득한 항목값을 제시하는 단계를 포함하는 것을 특징으로 하는 기억매체.
  29. 각각이, 항목과 이 항목에 포함되는 항목값을 포함하는 레코드의 배열로서 나타내어지는 복수의 표형식 데이터를 결합하는 표형식 데이터 결합장치로서,
    각 표형식 데이터를 각각이, 특정 항목에 속하는 항목값에 대응한 항목값번호의 순으로 해당 항목값이 격납되어 있는 값리스트와, 일의적인 레코드번호의 순으로 해당 항목값번호를 지시하기 위한 포인터값이 격납된 포인터배열로 이루어진 하나이상의 정보블록으로 분할하는 데이터분할수단;
    복수의 표형식 데이터사이에서 등가인 항목을 찾아내어 상기 등가인 항목에 관한 정보블록을 특정하는 공유화항목특정수단;
    상기 복수의 표형식 데이터의 각각에 있어서, 상기 특정된 정보블록에 포함되는 값리스트를 비교해서 쌍방의 값리스트의 항목값을 동치로 하는 값리스트공유화수단; 및
    상기 값리스트의 항목값을 동치로 할 때, 그 항목값이 추가된 정보블록에 있어서, 관련된 포인터배열의 포인터값을 추가하는 포인터값갱신수단을 구비하고,
    상기 복수의 표형식 데이터에 있어서, 특정 항목에 관한 정보블록에 포함되는 값리스트를 등가로 함으로써 표형식 데이터를 결합하는 것을 특징으로 하는 표형식 데이터 결합장치.
  30. 제29항에 기재된 표형식 데이터 결합장치에 의해 생성되고, 특정 항목에 관한 정보블록에 포함되는 값리스트가 등가로 된 복수의 표형식 데이터에 기초하여 소정의 항목에 관한 항목값을 제시하는 데이터 제시장치로서,
    상기 복수의 표형식 데이터에 관해서, 상기 특정 항목에 관한 정보블록 중 포인터배열의 포인터값이 중복되지 않는 키항목에 관한 정보블록을 특정하고, 해당 정보블록을 구비한 표형식 데이터를 서브표형식 데이터로 결정하는 키항목결정수단;
    어느 하나의 정보블록에 있어서, 값리스트의 항목값의 순으로 상기 서브표형식 데이터의 레코드번호를 특정하는 제2포인터배열을 생성하는 제2포인터생성수단;
    상기 복수의 표형식 데이터에 포함되는 정보블록 중, 제시해야할 항목에 관한 정보블록을 특정하는 제시항목특정수단;
    상기 제시해야할 항목에 관한 정보블록 중, 상기 서브표형식 데이터이외의 표형식 데이터인 메인표형식 데이터를 구성하는 정보블록에 관해서, 소정의 레코드번호에 대응한 포인터배열중의 포인터값을 참조해서 소정 항목값을 취득하는 제1항목값취득수단;
    상기 제시해야할 항목에 관한 정보블록 중, 상기 서브표형식을 구성하는 정보블록에 관해서, 상기 소정의 레코드번호에 대응하는 상기 제2포인터배열중의 서브표형식에 관한 레코드번호를 특정하는 서브표형식 레코드특정수단;
    상기 서브표형식 데이터를 구성하는 정보블록에 있어서, 해당 특정된 서브표형식 데이터에 관한 레코드번호에 대응한 포인터배열중의 포인터값을 참조해서 소정의 항목값을 취득하는 제2항목값취득수단; 및
    취득한 항목값을 제시하는 수단을 구비하는 것을 특징으로 하는 데이터 제시장치.
  31. 제29항에 기재된 표형식 데이터 결합장치에 의해 생성되고, 특정 항목에 관한 정보블록에 포함되는 값리스트가 등가로 된 복수의 표형식 데이터에 기초하여 소정의 항목에 관한 항목값을 제시하는 데이터 제시장치로서,
    상기 복수의 표형식 데이터에 관하여 상기 특정 항목에 관한 정보블록 중, 제시할 때 디폴트의 소트순이 반영되는 표형식 데이터를 주표형식 데이터로 결정하고, 그 이외의 표형식 데이터를 종표형식 데이터로 결정하는 주/종 결정수단;
    상기 종표형식 데이터를 구성하는 정보블록으로서, 그 항목값이 등가로 된 정보블록에 종표형식 데이터에 관한 레코드의 개수를 나타낸 존재수를 항목값에 대응해서 격납하는 제1존재수배열을 생성하는 제1존재수배열생성수단;
    상기 제1존재수배열에 따라서, 상기 종표형식 데이터의 레코드번호를 소트한 상태에서 배치하는 초기위치를 결정하는 제1위치지시배열을 생성하는 제1위치지시 배열생성수단;
    상기 종표형식 데이터의 레코드번호를 대응하는 포인터값에 의해 나타내어지는 위치의 제1위치지시배열에 따라서 배치하는 동시에, 해당 위치지시배열의 대응하는 값을 인크리먼트함으로써 종표형식 데이터의 레코드번호가 소트되어 격납된 제1소트배열을 생성하는 제1소트배열생성수단;
    상기 위치지시배열의 초기값 및 최종값과, 상기 주표형식 데이터에 관해서 그 값리스트가 등가로 된 정보블록중의 포인터배열을 참조해서 상기 주표형식 데이터에 관한 다른 정보블록의 포인터배열의 중복도를 산출하고, 해당 중복도에 따라서 포인터배열을 확장하는 제1포인터배열확장수단;
    상기 위치지시배열의 초기값 및 최종값과, 상기 소트배열을 참조해서 상기 종표형식 데이터에 관한 정보블록의 포인터배열의 중복도를 참조해서 상기 중복도에 따라서 포인터배열을 확장하는 제2포인터배열 확장수단; 및
    상기 확장된 포인터배열에 기초하여 필요한 항목값을 취득해서 제시하는 수단을 구비하는 것을 특징으로 하는 데이터 제시장치.
  32. 제29항에 기재된 표형식 데이터 결합장치에 의해 생성되고, 특정의 2이상의 항목에 관한 정보블록에 포함되는 값리스트가 각각 등가로 된 복수의 표형식 데이터에 기초하여 소정의 항목에 관한 항목값을 제시하는 데이터 제시장치로서,
    상기 복수의 표형식 데이터에 관하여, 상기 특정 항목에 관한 정보블록 중, 제시할 때 디폴트의 소트순이 반영되는 항목을 포함하는 표형식 데이터를 주표형식 데이터로 결정하고, 그 이외의 표형식 데이터를 종표형식 데이터로 결정하는 주/종 결정수단;
    상기 주표형식 데이터에 관해서, 2이상의 등가로 된 값리스트의 곱집합인 가상의 값리스트로의 포인터배열을 생성하는 가상배열 생성수단;
    상기 종표형식 데이터에 관해서, 상기 가상의 값리스트로의 제2포인터배열을 생성하는 제2포인터배열 생성수단;
    상기 가상의 값리스트의 항목값의 순으로 상기 종표형식 데이터의 레코드번호를 특정하는 제3포인터배열을 작성하는 제3포인터배열 생성수단;
    상기 복수의 표형식 데이터에 포함되는 정보블록 중, 제시해야할 항목에 관한 정보블록을 특정하여 제시하는 블록특정수단;
    상기 제시해야할 항목에 관한 정보블록 중, 표형식 데이터를 구성하는 정보블록에 관해서, 소정의 레코드번호에 대응한 포인터배열중의 포인터값을 참조해서 소정의 항목값을 취득하는 제1항목값취득수단;
    상기 제시해야할 항목에 관한 정보블록 중, 상기 서브표형식을 구성하는 정보블록에 관해서, 상기 소정의 레코드번호에 대응한 레코드번호를 참조해서 대응하는 상기 가상의 값리스트로의 포인터배열중의 포인터값에 기초하여 상기 제3포인터배열중의 상기 종표형식 데이터의 레코드번호를 특정하는 종표형식 레코드번호 특정수단;
    상기 종표형식 데이터를 구성하는 정보블록에 있어서, 해당 종표형식 데이터에 관한 레코드번호에 대응한 포인터배열중의 포인터값을 참조해서 소정의 항목값을 취득하는 제2항목값 값취득수단; 및
    취득한 항목값을 제시하는 수단을 구비하는 것을 특징으로 하는 데이터 제시장치.
  33. 제29항에 기재된 표형식 데이터 결합장치에 의해 생성되고, 특정의 2이상의 항목에 관한 정보블록에 포함되는 값리스트가 각각 등가로 된 복수의 표형식 데이터에 기초하여 소정의 항목에 관한 항목값을 제시하는 데이터 제시장치로서,
    상기 복수의 표형식 데이터에 관하여, 상기 특정 항목에 관한 정보블록 중, 제시할 때 디폴트의 소트순이 반영되는 항목을 포함하는 표형식 데이터를 주표형식 데이터로 결정하고, 그 이외의 표형식 데이터를 종표형식 데이터로 결정하는 주/종 결정수단;
    상기 주표형식 데이터 및 주표형식 레코드의 각각에 관해서, 디폴트의 소트순이 반영되는 항목이외의 항목으로 상기 레코드번호를 소트하고, 마지막으로 상기 소트순이 반영되는 항목으로 상기 레코드번호를 소트함으로써 제1소트배열을 생성하는 제1소트배열 생성수단;
    상기 제1소트배열중의 레코드번호를 참조해서 상기 2이상의 항목에 관한 2이상의 값리스트의 대응하는 항목값을 각각 취출하는 항목값 특정수단;
    2이상의 항목값의 다차원배열로 이루어진 항목값을 구비한 다차원값 리스트중의 대응하는 위치에 취출된 항목값의 다차원배열을 격납하는 다차원배열 생성수단;
    상기 다차원값리스트의 다차원배열을 특정하기 위한 포인터배열의 상기 레코드번호에 대응하는 위치에 상기 레코드번호를 격납하는 레코드배열 생성수단;
    어느 하나의 정보블록에 있어서, 값리스트의 항목값의 순으로 상기 종표형식 데이터의 레코드번호를 특정하는 제2포인터배열을 생성하는 제2포인터배열 생성수단;
    상기 제시해야할 항목에 관한 정보블록 중, 상기 주표형식 데이터를 구성하는 정보블록에 관해서, 소정의 레코드번호에 대응한 다차원값 리스트를 특정하기 위한 포인터배열의 포인터값 및/또는 다른 포인터배열의 포인터값을 참조해서 소정의 항목값을 취득하는 제1항목값 취득수단;
    상기 제시해야할 항목에 관한 정보블록 중, 상기 종표형식을 구성하는 정보블록에 관해서, 상기 소정의 레코드번호에 대응한 레코드번호를 참조해서 대응하는 상기 제2포인터배열중의 종표형식에 관한 레코드번호를 특정하는 종표형식 레코드 특정수단;
    상기 서브표형식 데이터를 구성하는 정보블록에 있어서, 해당 종표형식 데이터에 관한 레코드번호에 대응한 다차원값리스트를 특정하기 위한 포인터배열의 포인터값 및/또는 포인터배열중의 포인터값을 참조해서 소정의 항목값을 취득하는 제2항목값 취득수단; 및
    취득된 항목값을 제시하는 수단을 구비하는 것을 특징으로 하는 데이터 제시장치.
KR1020017015348A 1999-05-31 2000-05-30 표형식 데이터 결합방법 및 제시방법 KR100711567B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP15115699A JP4428488B2 (ja) 1999-05-31 1999-05-31 表形式データの結合方法、上記方法を実現するプログラムを記憶した記憶媒体、および、表形式データを結合する装置
JPJP-P-1999-00151156 1999-05-31

Publications (2)

Publication Number Publication Date
KR20020009623A KR20020009623A (ko) 2002-02-01
KR100711567B1 true KR100711567B1 (ko) 2007-04-27

Family

ID=15512587

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020017015348A KR100711567B1 (ko) 1999-05-31 2000-05-30 표형식 데이터 결합방법 및 제시방법

Country Status (7)

Country Link
US (1) US6721751B1 (ko)
EP (1) EP1191462A4 (ko)
JP (1) JP4428488B2 (ko)
KR (1) KR100711567B1 (ko)
CN (1) CN1306437C (ko)
CA (1) CA2375139C (ko)
WO (1) WO2000073939A1 (ko)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4563558B2 (ja) * 2000-07-31 2010-10-13 株式会社ターボデータラボラトリー データのコンパイル方法、および、コンパイル方法を記憶した記憶媒体
JP2002108756A (ja) * 2000-09-28 2002-04-12 Hitachi Ltd ユーザインタフェース統合方法
WO2003036777A1 (en) * 2001-10-22 2003-05-01 Apple Computer, Inc. Methods and apparatus for charging a battery in a peripheral device
JP3860992B2 (ja) * 2001-11-09 2006-12-20 株式会社ターボデータラボラトリー データの結合・提示方法、および、データ結合・提示プログラム
US7149962B1 (en) * 2002-03-01 2006-12-12 General Electric Railcar Services Corporation System and method for providing a gauge table
JP4646624B2 (ja) * 2002-05-10 2011-03-09 オラクル・インターナショナル・コーポレイション リレーショナルデータを圧縮格納フォーマットに格納および問合せすること
US7103608B1 (en) 2002-05-10 2006-09-05 Oracle International Corporation Method and mechanism for storing and accessing data
US7058783B2 (en) * 2002-09-18 2006-06-06 Oracle International Corporation Method and mechanism for on-line data compression and in-place updates
JP3861044B2 (ja) 2002-10-24 2006-12-20 株式会社ターボデータラボラトリー 連鎖したジョインテーブルのツリー構造への変換方法、および、変換プログラム
JP4136594B2 (ja) 2002-10-25 2008-08-20 株式会社ターボデータラボラトリー データ処理方法およびデータ処理プログラム
JP2005135221A (ja) * 2003-10-31 2005-05-26 Turbo Data Laboratory:Kk 表形式データの結合方法、結合装置およびプログラム
US7617237B2 (en) 2004-09-30 2009-11-10 Sharp Kabushiki Kaisha Encoding device, encoding method, decoding device, decoding method, program and machine readable recording medium containing the program
US8041742B1 (en) 2004-12-20 2011-10-18 American Megatrends, Inc. Method, system, and apparatus for providing generic database services within an extensible firmware interface environment
US8027969B2 (en) * 2005-12-29 2011-09-27 Sap Ag Efficient calculation of sets of distinct results in an information retrieval service
CN100433019C (zh) * 2007-07-26 2008-11-12 杭州华三通信技术有限公司 一种数据存储与检索的方法及系统
US9104711B2 (en) 2008-05-30 2015-08-11 Nec Corporation Database system, method of managing database, and computer-readable storage medium
US8620880B2 (en) 2008-05-30 2013-12-31 Nec Corporation Database system, method of managing database, and computer-readable storage medium
JP5199948B2 (ja) * 2009-05-22 2013-05-15 日本電信電話株式会社 データベース管理方法、データベース装置、およびプログラム
JP5408442B2 (ja) * 2010-01-21 2014-02-05 株式会社日立製作所 並列分散処理方法、及び、計算機システム
WO2011099114A1 (ja) * 2010-02-09 2011-08-18 株式会社ターボデータラボラトリー ハイブリッド型データベースシステム及びその動作方法
CN101899577B (zh) * 2010-08-27 2012-11-21 上海交通大学 金属熔体在线电磁净化装置
US8341131B2 (en) * 2010-09-16 2012-12-25 Sap Ag Systems and methods for master data management using record and field based rules
CN102622436A (zh) * 2012-02-29 2012-08-01 浙江吉利汽车研究院有限公司 人力资源管理系统的数据表创建方法
US8645332B1 (en) 2012-08-20 2014-02-04 Sap Ag Systems and methods for capturing data refinement actions based on visualized search of information
KR101447119B1 (ko) 2012-11-12 2014-10-06 스마트팩토리 주식회사 데이터 구조 통합 방법 및 이를 위한 장치
US9460135B2 (en) * 2012-12-18 2016-10-04 Webtrends Inc. Methods and automated systems for testing, optimization, and analysis that use robust statistical processing of non-binomial experimental results
JP6222923B2 (ja) * 2012-12-28 2017-11-01 富士通株式会社 ファイル管理プログラム、ファイル管理装置およびファイル管理方法
JP6459669B2 (ja) * 2015-03-17 2019-01-30 日本電気株式会社 カラムストア型データベース管理システム
JP2016177347A (ja) 2015-03-18 2016-10-06 日本電気株式会社 データベースシステム
CN106777280B (zh) * 2016-12-29 2020-07-17 深圳市华傲数据技术有限公司 基于超大数据集的数据处理方法及装置
CN109710611B (zh) * 2018-12-25 2019-09-17 北京三快在线科技有限公司 存储表数据的方法、查询表数据的方法、装置及存储介质
CN110727656A (zh) * 2019-09-25 2020-01-24 贝壳技术有限公司 一种数据的分表方法、装置、电子设备以及可读存储介质
WO2022153401A1 (ja) * 2021-01-13 2022-07-21 株式会社エスペラントシステム 情報処理方法、情報処理装置及びプログラム
CN113420538B (zh) * 2021-08-23 2021-12-14 深圳市明源云科技有限公司 数值格式智能显示方法、设备终端及计算机可读存储介质

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63298626A (ja) 1987-05-29 1988-12-06 Matsushita Electric Ind Co Ltd デ−タベ−ス管理方法
CN1036092A (zh) * 1989-01-12 1989-10-04 华南农业大学 一种计算机自动制表方法及其系统
US5241648A (en) * 1990-02-13 1993-08-31 International Business Machines Corporation Hybrid technique for joining tables
US5410693A (en) * 1994-01-26 1995-04-25 Wall Data Incorporated Method and apparatus for accessing a database
JPH07239850A (ja) * 1994-02-28 1995-09-12 Hitachi Ltd 構造化文書作成支援システム
US5548754A (en) * 1995-02-07 1996-08-20 International Business Machines Corporation Optimization of SQL queries using early-out join transformations
US5675784A (en) * 1995-05-31 1997-10-07 International Business Machnes Corporation Data structure for a relational database system for collecting component and specification level data related to products
US5778370A (en) * 1995-08-25 1998-07-07 Emerson; Mark L. Data village system
US5748905A (en) * 1996-08-30 1998-05-05 Fujitsu Network Communications, Inc. Frame classification using classification keys
US6138111A (en) * 1997-05-02 2000-10-24 Informix Software, Inc. Cardinality-based join ordering
US5903887A (en) * 1997-09-15 1999-05-11 International Business Machines Corporation Method and apparatus for caching result sets from queries to a remote database in a heterogeneous database system
JPH11120224A (ja) * 1997-10-15 1999-04-30 Fujitsu Ltd 人事異動支援システム
US6611274B1 (en) * 1999-10-12 2003-08-26 Microsoft Corporation System method, and computer program product for compositing true colors and intensity-maped colors into a frame buffer
US7173930B2 (en) * 1999-10-26 2007-02-06 Ciena Corporation Transparent flexible concatenation

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
없음

Also Published As

Publication number Publication date
EP1191462A1 (en) 2002-03-27
JP4428488B2 (ja) 2010-03-10
CN1360700A (zh) 2002-07-24
WO2000073939A8 (fr) 2002-01-17
CA2375139A1 (en) 2000-12-07
JP2000339390A (ja) 2000-12-08
WO2000073939A1 (fr) 2000-12-07
US6721751B1 (en) 2004-04-13
CN1306437C (zh) 2007-03-21
KR20020009623A (ko) 2002-02-01
CA2375139C (en) 2009-05-05
EP1191462A4 (en) 2008-03-26

Similar Documents

Publication Publication Date Title
KR100711567B1 (ko) 표형식 데이터 결합방법 및 제시방법
JP3581831B2 (ja) 表形式データの検索・集計・ソート方法及び装置
CN102521416B (zh) 数据关联查询方法和数据关联查询装置
CN100449541C (zh) 文档组分析设备、文档组分析方法及文档组分析系统
CN106716416A (zh) 数据检索装置、程序及记录介质
US20110082803A1 (en) Business flow retrieval system, business flow retrieval method and business flow retrieval program
JP4425377B2 (ja) データ処理装置、および、データ処理方法
US7634487B2 (en) System and method for index reorganization using partial index transfer in spatial data warehouse
CN104021210B (zh) 以GeoJSON格式半结构化方式存储地理数据的MongoDB集群的地理数据读写方法
JP2003519841A (ja) 情報モデリング方法及び情報モデリングにより構築されたデータベースを用いて検索を行う方法
US7184996B2 (en) Method for concatenating table-format data
KR101030250B1 (ko) 데이터 처리방법 및 데이터 처리 프로그램
JP2005135221A (ja) 表形式データの結合方法、結合装置およびプログラム
JPH08305724A (ja) 設計支援情報文書管理装置
JP2001216307A (ja) リレーショナルデータベース管理システム及びそれを記憶した記憶媒体
KR102141640B1 (ko) 실시간 네트워크 데이터 관리 방법 및 이를 실행하는 서버
CN111984647B (zh) 一种表单元素智能合并展现和存储的方法
KR101436423B1 (ko) 시설물 유지보수 데이터 관리 시스템 및 방법
JPH08329101A (ja) データベースシステム
JP2002041289A (ja) 成果物管理方法及びシステム
JP2012018579A (ja) 情報検索装置、情報検索方法及びプログラム
JP2001195414A (ja) 空間データを用いた情報管理システム
CN115705323A (zh) 一种灵活配置扩展系统架构的方法
Xiangxiang Research on the management and service technologies of massive remote sensing image data
Jensen et al. Fundamental Concepts

Legal Events

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

Payment date: 20100119

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20130125

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160405

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee