JP2021067962A - Information processing system and information processing method - Google Patents

Information processing system and information processing method Download PDF

Info

Publication number
JP2021067962A
JP2021067962A JP2018028665A JP2018028665A JP2021067962A JP 2021067962 A JP2021067962 A JP 2021067962A JP 2018028665 A JP2018028665 A JP 2018028665A JP 2018028665 A JP2018028665 A JP 2018028665A JP 2021067962 A JP2021067962 A JP 2021067962A
Authority
JP
Japan
Prior art keywords
record
data
value
records
item
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
JP2018028665A
Other languages
Japanese (ja)
Inventor
古庄 晋二
Shinji Kosho
晋二 古庄
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Turbo Data Laboratory Kk
Turbo Data Laboratories Inc
Original Assignee
Turbo Data Laboratory Kk
Turbo Data Laboratories Inc
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 Turbo Data Laboratory Kk, Turbo Data Laboratories Inc filed Critical Turbo Data Laboratory Kk
Priority to JP2018028665A priority Critical patent/JP2021067962A/en
Priority to PCT/JP2019/005141 priority patent/WO2019163610A1/en
Publication of JP2021067962A publication Critical patent/JP2021067962A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor

Landscapes

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

Abstract

To enable a plurality of big data files dispersed over a network such as the Internet by the use side of big data to be freely combined and desired data to be easily searched and displayed.SOLUTION: The present invention is characterized by including: storage means for storing a table in which a plurality of records are stored, first array data in which the prescribed item value included in each of the plurality of records is stored, second array data in which a record number to identify the record is stored, and third array data that correlates the first array data and the second array data; and acquisition means for acquiring, in accordance with the designation of the item value or the record number, and using the first array data, the second array data and the third array data, one or more records that correspond to the designated item value or record number among the plurality of records stored in the table.SELECTED DRAWING: Figure 1

Description

本発明は、情報処理システム及び情報処理方法に関する。 The present invention relates to an information processing system and an information processing method.

B−Treeやハッシュ等のインデックスを用いて、データベースに格納されているデータを検索し、その検索結果を表示する技術が従来から知られている(例えば、特許文献1及び2)。 Techniques for searching data stored in a database using an index such as B-tree or hash and displaying the search results have been conventionally known (for example, Patent Documents 1 and 2).

特開2007−25735号公報Japanese Unexamined Patent Publication No. 2007-25735 特開平6−335165号公報Japanese Unexamined Patent Publication No. 6-335165

ところで、近年、各種センサ機器や観測機器等の発達により、センシング結果や観測結果等を表す大量のデータが得られるようになった。このため、これらの大量のデータ(いわゆる、ビッグデータ)から所望のデータを検索し、その検索結果を表示することが求められている。 By the way, in recent years, with the development of various sensor devices and observation devices, a large amount of data representing sensing results and observation results has come to be obtained. Therefore, it is required to search for desired data from such a large amount of data (so-called big data) and display the search result.

しかしながら、ビッグデータは、そのデータサイズのため、転送や集約が困難である。また、ビッグデータから所望のデータを検索するための検索サーバは、一般に、高性能なハードウェアリソースを備えている必要があり、その設置コストが高額になる。更に、高性能なハードウェアリソースを備えている検索サーバを設置した場合、その維持費(例えば、メンテナンスコストや消費電力等)も高額となる。 However, big data is difficult to transfer and aggregate due to its data size. In addition, a search server for retrieving desired data from big data generally needs to have high-performance hardware resources, and its installation cost is high. Further, when a search server equipped with high-performance hardware resources is installed, its maintenance cost (for example, maintenance cost, power consumption, etc.) is also high.

このため、ビッグデータの提供側は、検索に関わる高価なハードウェア・ソフトウェアを搭載しない単なるファイルサーバとし、ビッグデータをファイルとして提示する形態にしたい。この場合、維持管理も簡単で、かつ、低コストとなる。 For this reason, the big data provider wants to use a simple file server that does not have expensive hardware and software related to search, and presents big data as a file. In this case, maintenance is easy and the cost is low.

また、ビッグデータの利用側は、一般的なPC(パーソナルコンピュータ)等とし、ビッグデータ提供側のファイルを自由に組み合わせて検索し、その検索結果を表示することができるようにしたい。 In addition, the user side of big data wants to be able to search by freely combining files on the big data provider side with a general PC (personal computer) or the like and display the search result.

本発明は、上記の点に鑑みてなされたもので、ビッグデータの利用側がインターネット等のネットワーク上に分散した複数のビッグデータのファイルを自由に組み合わせ、所望のデータを容易に検索及び表示できるようにする。 The present invention has been made in view of the above points, so that a user of big data can freely combine a plurality of big data files distributed on a network such as the Internet, and easily search and display desired data. To.

上記課題を解決するために、本発明の実施の形態は、複数のレコードが格納されたテーブルと、該複数のレコードそれぞれに含まれる所定の項目値が格納された第1の配列データと、前記レコードを識別するレコード番号が格納された第2の配列データと、前記第1の配列データと前記第2の配列データとを対応付ける第3の配列データとを記憶する記憶手段と、前記項目値又は前記レコード番号の指定に応じて、前記第1の配列データと前記第2の配列データと前記第3の配列データを用いて、前記テーブルに格納されている複数のレコードのうち、指定された前記項目値又は前記レコード番号に対応する1以上のレコードを取得する取得手段と、を有することを特徴とする。 In order to solve the above problems, an embodiment of the present invention includes a table in which a plurality of records are stored, a first array data in which predetermined item values included in each of the plurality of records are stored, and the above. A storage means for storing the second array data in which the record number for identifying the record is stored, the third array data for associating the first array data with the second array data, and the item value or the item value. The designated record among a plurality of records stored in the table using the first sequence data, the second sequence data, and the third sequence data according to the designation of the record number. It is characterized by having an acquisition means for acquiring one or more records corresponding to an item value or the record number.

ビッグデータの利用側がインターネット等のネットワーク上に分散した複数のビッグデータのファイルを自由に組み合わせ、所望のデータを容易に検索及び表示できる。 The user side of big data can freely combine a plurality of big data files distributed on a network such as the Internet, and easily search and display desired data.

本発明の実施の形態におけるデータ管理システムの全体構成の一例を示す図である。It is a figure which shows an example of the whole structure of the data management system in embodiment of this invention. コンピュータのハードウェア構成の一例を示す図である。It is a figure which shows an example of the hardware configuration of a computer. テーブルの一例を示す図である。It is a figure which shows an example of a table. レコード順ビューの一例を示す図である。It is a figure which shows an example of the record order view. 値順ビューの一例を示す図である。It is a figure which shows an example of the value order view. レコード順UNIONビューの一例を示す図である。It is a figure which shows an example of the record order UNION view. 値順UNIONビューの一例を示す図である。It is a figure which shows an example of the value order UNION view. 内部的なデータ構造の一例を示す図(その1)である。It is a figure (the 1) which shows an example of an internal data structure. 内部的なデータ構造の一例を示す図(その2)である。It is a figure (No. 2) which shows an example of an internal data structure. SVL、IND及びINVの作成方法の一例を説明するための図である。It is a figure for demonstrating an example of the method of making SVL, IND and INV. 応用例1を説明するための図である。It is a figure for demonstrating application example 1. FIG. 応用例2を説明するための図である。It is a figure for demonstrating application example 2. FIG.

以下、本発明の実施の形態(以降、「本実施形態」とも表す。)について説明する。以降では、データベースに格納されているデータを表示及び検索するデータ管理システム1について説明する。 Hereinafter, embodiments of the present invention (hereinafter, also referred to as “the present embodiment”) will be described. Hereinafter, a data management system 1 for displaying and retrieving data stored in a database will be described.

<全体構成>
まず、本実施形態に係るデータ管理システム1の全体構成について、図1を参照しながら説明する。図1は、本発明の実施の形態におけるデータ管理システム1の全体構成の一例を示す図である。
<Overall configuration>
First, the overall configuration of the data management system 1 according to the present embodiment will be described with reference to FIG. FIG. 1 is a diagram showing an example of the overall configuration of the data management system 1 according to the embodiment of the present invention.

図1に示すように、本実施形態に係るデータ管理システム1には、1以上の端末装置10と、1以上のデータ管理装置20とが含まれる。また、端末装置10とデータ管理装置20とは、例えばインターネットやLAN(Local Area Network)、電話回線網等のネットワークNを介して通信可能に接続される。 As shown in FIG. 1, the data management system 1 according to the present embodiment includes one or more terminal devices 10 and one or more data management devices 20. Further, the terminal device 10 and the data management device 20 are communicably connected via a network N such as the Internet, a LAN (Local Area Network), or a telephone line network.

端末装置10は、ビッグデータの利用側であるユーザが操作するPC等の情報処理装置(コンピュータ)である。ユーザは、端末装置10を操作して、データ管理装置20が管理するデータの表示及び検索を行うことができる。 The terminal device 10 is an information processing device (computer) such as a PC operated by a user who uses big data. The user can operate the terminal device 10 to display and search the data managed by the data management device 20.

端末装置10は、データ管理装置20が管理するデータを表示及び検索するための表示処理部100を有する。表示処理部100は、例えば、端末装置10にインストールされた1以上のプログラムがCPU(Central Processing Unit)に実行させる処理により実現される。 The terminal device 10 has a display processing unit 100 for displaying and retrieving data managed by the data management device 20. The display processing unit 100 is realized, for example, by a process of causing a CPU (Central Processing Unit) to execute one or more programs installed in the terminal device 10.

表示処理部100は、ユーザの操作に応じて、データ管理装置20が管理するデータのビューを作成及び表示する。また、表示処理部100は、或るビューから所望のデータを検索し、この検索結果を表示する。ビューとは、1つ又は複数のテーブル(又は他のビュー)から任意に選択したデータを表す表示用の情報である。テーブル(又は表)とは、1以上のデータで構成される情報である。また、データ検索とは、或るビューを構成する各データの或る項目について、その項目の値の範囲(例えば、=、<、>、between等)を指定することで、当該ビューから所望のデータを抽出することである。したがって、或るビューからデータ検索を行った結果もビューとなる。このため、後述するレコード順ビューや値順ビュー、レコード順UNIONビュー、値順UNIONビューは、1つ以上のテーブル1000を構成する全てのレコードによって作成されるビューと言うことができる一方で、データ検索の検索結果は、これらのビューの一部のレコードが表示されたビューと言うことができる。 The display processing unit 100 creates and displays a view of data managed by the data management device 20 in response to a user operation. Further, the display processing unit 100 searches for desired data from a certain view and displays the search result. A view is display information that represents data arbitrarily selected from one or more tables (or other views). A table (or table) is information composed of one or more data. Further, in the data search, for a certain item of each data constituting a certain view, a range of values of the item (for example, =, <,>, beween, etc.) is specified, and the desired view is obtained. To extract the data. Therefore, the result of performing a data search from a certain view is also a view. Therefore, the record-ordered view, the value-ordered view, the record-ordered UNION view, and the value-ordered UNION view, which will be described later, can be said to be views created by all the records constituting one or more tables 1000, while data. The search result of the search can be said to be a view in which some records of these views are displayed.

端末装置10は、PCに限られず、例えば、スマートフォンやタブレット端末等の種々の情報処理装置であっても良い。 The terminal device 10 is not limited to a PC, and may be, for example, various information processing devices such as a smartphone or a tablet terminal.

データ管理装置20は、ビッグデータの提供側が種々のデータを管理するデータベースサーバ等の情報処理装置(コンピュータ)である。データ管理装置20は、各種データを管理するデータ処理部200と、各種データが格納されたデータベース300とを有する。データ処理部200は、例えば、データ管理装置20にインストールされた1以上のプログラムがCPUに実行させる処理により実現される。また、データベース300は、例えば、補助記憶装置等により実現可能である。 The data management device 20 is an information processing device (computer) such as a database server in which the big data provider manages various data. The data management device 20 has a data processing unit 200 that manages various data, and a database 300 that stores various data. The data processing unit 200 is realized, for example, by a process of causing the CPU to execute one or more programs installed in the data management device 20. Further, the database 300 can be realized by, for example, an auxiliary storage device or the like.

データ処理部200は、端末装置10からの要求に応じて、データベース300に格納されているデータのうち、該当のデータを当該端末装置10に送信する。これにより、端末装置10では、ビューが作成及び表示されたり、検索結果が表示されたりする。 In response to a request from the terminal device 10, the data processing unit 200 transmits the corresponding data among the data stored in the database 300 to the terminal device 10. As a result, in the terminal device 10, a view is created and displayed, and a search result is displayed.

ここで、データベース300には、1以上のデータで構成されるテーブル1000と、ビューの作成やデータ検索に用いられるSVL(Sorted Value List)1100、IND(Indirect Record Index)1200及びINV(Inverted Record Index)1300とが格納されている。SVL1100と、IND1200と、INV1300とは、テーブル1000を構成する各レコードの或る項目に関して作成される内部的なデータである。これらのデータの詳細については後述する。 Here, the database 300 includes a table 1000 composed of one or more data, an SVL (Sorted Value List) 1100, an IND (Indirect Record Index) 1200, and an INV (Inverted Record Index) used for creating a view and searching data. ) 1300 and is stored. SVL1100, IND1200, and INV1300 are internal data created for a certain item of each record constituting the table 1000. Details of these data will be described later.

本実施形態に係る端末装置10の表示処理部100が表示するビューには、レコード順ビューと、値順ビューと、レコード順UNIONビューと、値順UNIONビューとが存在する。レコード順ビューとは、テーブル1000を構成する各データ(このデータは「レコード」とも称される。)をレコード番号順に表示するビューである。値順ビューは、テーブル1000を構成する各レコードを、これらのレコードの或る指定された項目(この項目は「カラム」とも称される。)の値順に表示するビューである。レコード順UNIONビューは、複数のテーブル1000をそれぞれ構成する各レコードをレコード順に表示するビューである。値順UNIONビューは、複数のテーブル1000をそれぞれ構成する各レコードを、これらのレコードの或る指定された項目の値順に表示するビューである。これらのビューの詳細については後述する。なお、複数のテーブル1000(又はビュー)から1つのビューを作成することを「UNION」又は「仮想(Virtual)UNION」とも称する。 The view displayed by the display processing unit 100 of the terminal device 10 according to the present embodiment includes a record order view, a value order view, a record order UNION view, and a value order UNION view. The record order view is a view that displays each data constituting the table 1000 (this data is also referred to as a "record") in the order of record numbers. The value-ordered view is a view that displays each record constituting the table 1000 in the order of the value of a specified item (this item is also referred to as a "column") of these records. The record order UNION view is a view that displays each record constituting each of the plurality of tables 1000 in record order. The value-ordered UNION view is a view that displays each record constituting each of the plurality of tables 1000 in the order of the value of a specified item of these records. Details of these views will be described later. Creating one view from a plurality of tables 1000 (or views) is also referred to as "UNION" or "Virtual UNION".

このとき、レコード順UNIONビュー及び値順UNIONビューは、同一のデータ管理装置20で管理されているテーブル1000を構成するレコードから作成されても良いし、異なるデータ管理装置20でそれぞれ管理されているテーブル1000を構成するレコードから作成されても良い。以降では、異なるデータ管理装置20の各々を区別するときは、データ管理装置20−1、データ管理装置20−2等と表す。同様に、異なるテーブル1000の各々を区別するときは、テーブル1000−1、テーブル1000−2等と表す。異なるSVL1100の各々、異なるIND1200の各々、異なるINV1300の各々を区別するときも同様である。 At this time, the record-ordered UNION view and the value-ordered UNION view may be created from the records constituting the table 1000 managed by the same data management device 20, or may be managed by different data management devices 20. It may be created from the records that make up table 1000. Hereinafter, when distinguishing each of the different data management devices 20, they are referred to as data management device 20-1, data management device 20-2, and the like. Similarly, when distinguishing each of the different tables 1000, they are represented as table 1000-1, table 1000-2, and the like. The same applies when distinguishing each of the different SVL1100s, each of the different IND1200s, and each of the different INV1300s.

本実施形態に係るデータ管理システム1は、各種ビューを作成及び表示する際に、SVL1100と、IND1200と、INV1300とを用いることで、テーブル1000を構成するレコード数が膨大であっても、容易かつ高速に各種ビューを作成及び表示することができるようになる。また、本実施形態に係るデータ管理システム1は、データ検索を行う際に、SVL1100と、IND1200と、INV1300とを用いることで、高速に検索を行うことができると共に、検索結果を少ないデータ容量で保持することができるようになる。 The data management system 1 according to the present embodiment uses the SVL 1100, the IND 1200, and the INV 1300 when creating and displaying various views, so that even if the number of records constituting the table 1000 is huge, it is easy. It will be possible to create and display various views at high speed. Further, the data management system 1 according to the present embodiment can perform a high-speed search by using the SVL1100, the IND1200, and the INV1300 when performing a data search, and can search the search results with a small amount of data. You will be able to hold it.

なお、図1に示す例では、端末装置10とデータ管理装置20とが異なる装置である場合を示したが、これらの装置が一体で構成されている場合であっても本実施形態を同様に適用することができる。また、データ管理装置20は、例えば、NAS(Network Attached Storage)等により実現されていても良い。 In the example shown in FIG. 1, the case where the terminal device 10 and the data management device 20 are different devices is shown, but even when these devices are integrally configured, the present embodiment is similarly applied. Can be applied. Further, the data management device 20 may be realized by, for example, NAS (Network Attached Storage) or the like.

<ハードウェア構成>
次に、本実施形態に係る端末装置10及びデータ管理装置20を実現する1台以上のコンピュータのハードウェア構成について、図2を参照しながら説明する。図2は、コンピュータ500のハードウェア構成の一例を示す図である。
<Hardware configuration>
Next, the hardware configuration of one or more computers that realize the terminal device 10 and the data management device 20 according to the present embodiment will be described with reference to FIG. FIG. 2 is a diagram showing an example of the hardware configuration of the computer 500.

図2に示すコンピュータ500は、入力装置501と、表示装置502と、外部I/F503と、RAM(Random Access Memory)504と、ROM(Read Only Memory)505と、CPU506と、通信I/F507と、補助記憶装置508とを有する。これら各ハードウェアは、それぞれがバスBを介して通信可能に接続されている。 The computer 500 shown in FIG. 2 includes an input device 501, a display device 502, an external I / F 503, a RAM (Random Access Memory) 504, a ROM (Read Only Memory) 505, a CPU 506, and a communication I / F 507. , With an auxiliary storage device 508. Each of these hardware is connected so as to be able to communicate with each other via the bus B.

入力装置501は、例えばキーボードやマウス、タッチパネル等であり、ユーザが各種操作を入力するのに用いられる。表示装置502は、例えばディスプレイ等であり、各種の処理結果(例えば、各種ビュー等)を表示する。なお、データ管理装置20は、入力装置501及び表示装置502のうちの少なくとも一方を有していなくても良い。 The input device 501 is, for example, a keyboard, a mouse, a touch panel, or the like, and is used for a user to input various operations. The display device 502 is, for example, a display or the like, and displays various processing results (for example, various views or the like). The data management device 20 does not have to have at least one of the input device 501 and the display device 502.

外部I/F503は、外部装置とのインタフェースである。外部装置には、記録媒体503a等がある。端末装置10及びデータ管理装置20は、外部I/F503を介して記録媒体503a等の読み取りや書き込み等を行うことができる。 The external I / F 503 is an interface with an external device. The external device includes a recording medium 503a and the like. The terminal device 10 and the data management device 20 can read or write the recording medium 503a or the like via the external I / F 503.

記録媒体503aには、例えば、フレキシブルディスク、CD(Compact Disc)、DVD(Digital Versatile Disk)、SDメモリカード(Secure Digital memory card)、USB(Universal Serial Bus)メモリカード等がある。 The recording medium 503a includes, for example, a flexible disk, a CD (Compact Disc), a DVD (Digital Versatile Disk), an SD memory card (Secure Digital memory card), a USB (Universal Serial Bus) memory card, and the like.

通信I/F507は、コンピュータ500をネットワークNに接続するためのインタフェースである。端末装置10及びデータ管理装置20は、通信I/F507を介して他の装置とデータ通信を行うことができる。 The communication I / F 507 is an interface for connecting the computer 500 to the network N. The terminal device 10 and the data management device 20 can perform data communication with other devices via the communication I / F 507.

RAM504は、プログラムやデータを一時保持する揮発性の半導体メモリである。ROM505は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。ROM505には、例えば、OS(Operating System)設定やネットワーク設定等が格納されている。 The RAM 504 is a volatile semiconductor memory that temporarily holds programs and data. The ROM 505 is a non-volatile semiconductor memory capable of holding programs and data even when the power is turned off. The ROM 505 stores, for example, OS (Operating System) settings, network settings, and the like.

CPU506は、ROM505や補助記憶装置508等からプログラムやデータをRAM504上に読み出して処理を実行する演算装置である。 The CPU 506 is an arithmetic unit that reads a program or data from the ROM 505, the auxiliary storage device 508, or the like onto the RAM 504 and executes processing.

補助記憶装置508は、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)等であり、プログラムやデータを格納している不揮発性の記憶装置である。補助記憶装置508に格納されているプログラムやデータには、例えば、OS、当該OS上で各種機能を実現するアプリケーションソフトウェア等がある。なお、端末装置10を実現するコンピュータ500の補助記憶装置508には、上記の表示処理部100を実現する1以上のプログラムが格納されている。同様に、データ管理装置20を実現するコンピュータ500の補助記憶装置508には、上記のデータ処理部200を実現する1以上のプログラムが格納されている。 The auxiliary storage device 508 is, for example, an HDD (Hard Disk Drive), an SSD (Solid State Drive), or the like, and is a non-volatile storage device that stores programs and data. The programs and data stored in the auxiliary storage device 508 include, for example, an OS, application software that realizes various functions on the OS, and the like. The auxiliary storage device 508 of the computer 500 that realizes the terminal device 10 stores one or more programs that realize the display processing unit 100. Similarly, the auxiliary storage device 508 of the computer 500 that realizes the data management device 20 stores one or more programs that realize the data processing unit 200.

本実施形態に係る端末装置10及びデータ管理装置20は、図2に示すコンピュータ500のハードウェア構成により、本実施形態に係る各種処理を実現することができる。 The terminal device 10 and the data management device 20 according to the present embodiment can realize various processes according to the present embodiment by the hardware configuration of the computer 500 shown in FIG.

<テーブル>
ここで、本実施形態では、図3(a)に示すテーブル1000−1と、図3(b)に示すテーブル1000−2とを用いて、各ビューを表示する場合について説明する。以降では、図3(a)に示すテーブル1000−1のテーブル番号を「0」、図3(b)に示すテーブル1000−2のテーブル番号を「1」とする。なお、テーブル1000とは、1以上のデータ(レコード)で構成される電子ファイル又はデータのことである。また、テーブル番号とは、少なくともビューの作成及び表示に用いられるテーブル1000を識別する識別情報である。
<Table>
Here, in the present embodiment, a case where each view is displayed by using the table 1000-1 shown in FIG. 3A and the table 1000-2 shown in FIG. 3B will be described. Hereinafter, the table number of the table 1000-1 shown in FIG. 3A is referred to as “0”, and the table number of the table 1000-2 shown in FIG. 3B is referred to as “1”. The table 1000 is an electronic file or data composed of one or more data (records). The table number is at least identification information that identifies the table 1000 used for creating and displaying a view.

図3(a)に示すテーブル1000−1は、例えば、データ管理装置20−1のデータベース300に格納されている一方で、図3(b)に示すテーブル1000−2は、例えば、データ管理装置20−2のデータベース300に格納されているものとする。ただし、図3(a)に示すテーブル1000−1と、図3(b)に示すテーブル1000−2とが同一のデータ管理装置20のデータベース300に格納されていても良い。 Table 1000-1 shown in FIG. 3A is stored in, for example, the database 300 of the data management device 20-1, while table 1000-2 shown in FIG. 3B is stored in, for example, the data management device 20-1. It is assumed that it is stored in the database 300 of 20-2. However, the table 1000-1 shown in FIG. 3A and the table 1000-2 shown in FIG. 3B may be stored in the same database 300 of the data management device 20.

図3(a)に示すテーブル1000−1は4件のレコードで構成されており、各レコードには項目「Name」と項目「Age」とが含まれる。同様に、図3(b)に示すテーブル1000−2は4件のレコードで構成されており、各レコードには項目「Name」と項目「Age」とが含まれる。位置は、各テーブル1000において、先頭レコードからの相対的な位置を示す番号(例えば、各レコードが記憶されている記憶領域の番地(アドレス)等)のことである。 Table 1000-1 shown in FIG. 3A is composed of four records, and each record includes an item “Name” and an item “Age”. Similarly, the table 1000-2 shown in FIG. 3B is composed of four records, and each record includes an item “Name” and an item “Age”. The position is a number indicating a position relative to the first record in each table 1000 (for example, an address (address) of a storage area in which each record is stored).

なお、図3(a)及び図3(b)にそれぞれ示すテーブル1000−1及びテーブル1000−2は、いずれも4件のレコードで構成されているが、これは一例であって、各テーブル1000を構成するレコードの件数は任意である。ビッグデータを扱う場合には、各テーブル1000を構成するレコードの件数は、一般に、数万から数億以上となることが多い。また、図3(a)及び図3(b)にそれぞれ示すテーブル1000−1及びテーブル1000−2を構成する各レコードは2つの項目を有しているが、これは一例であって、各レコードが有する項目数も任意である。 Tables 1000-1 and 1000-2 shown in FIGS. 3 (a) and 3 (b) are each composed of four records, but this is an example and each table 1000 is used. The number of records that make up is arbitrary. When dealing with big data, the number of records constituting each table 1000 is generally tens of thousands to hundreds of millions or more. Further, each record constituting the table 1000-1 and the table 1000-2 shown in FIGS. 3 (a) and 3 (b) has two items, but this is an example and each record. The number of items possessed by is also arbitrary.

<各ビュー>
次に、図3(a)及び図3(b)にそれぞれ示すテーブル1000−1及びテーブル1000−2を用いた場合における各ビューについて説明する。
<Each view>
Next, each view when the tables 1000-1 and 1000-2 shown in FIGS. 3 (a) and 3 (b) are used will be described.

≪レコード順ビュー≫
図4(a)は、図3(a)に示すテーブル1000−1のレコード順ビューVW1−1である。また、図4(b)は、図3(b)に示すテーブル1000−2のレコード順ビューVW1−2である。
≪Record order view≫
FIG. 4A is a record order view VW1-1 of the table 1000-1 shown in FIG. 3A. Further, FIG. 4B is a record order view VW1-2 of the table 1000-2 shown in FIG. 3B.

このように、レコード順ビューは、テーブル1000を構成する各レコードの順で表示するビューである。ただし、レコード順ビューは、例えば、テーブル1000を構成する各レコードを逆順で表示するものであっても良い。 As described above, the record order view is a view that displays the records in the order of the records constituting the table 1000. However, the record order view may, for example, display each record constituting the table 1000 in the reverse order.

なお、図4に示すレコード順ビューVW1に表示されている各レコードでは、テーブル1000を構成する各レコードの全ての項目が含まれているが、これに限られない。レコード順ビューに表示される各レコードの項目は、テーブル1000を構成する各レコードの一部の項目であっても良い。このことは、値順ビューやレコード順UNIONビュー、値順UNIONビュー等の他のビューについても同様である。 It should be noted that each record displayed in the record order view VW1 shown in FIG. 4 includes all the items of each record constituting the table 1000, but is not limited to this. The items of each record displayed in the record order view may be a part of the items of each record constituting the table 1000. This also applies to other views such as a value-ordered view, a record-ordered UNION view, and a value-ordered UNION view.

≪値順ビュー≫
図5(a)は、図3(a)に示すテーブル1000−1の項目「Name」に関する値順ビューVW2−1である。また、図5(b)は、図3(b)に示すテーブル1000−2の項目「Name」に関する値順ビューVW2−2である。
≪Value order view≫
FIG. 5A is a value-ordered view VW2-1 relating to the item “Name” in Table 1000-1 shown in FIG. 3A. Further, FIG. 5 (b) is a value-ordered view VW2-2 relating to the item “Name” in Table 1000-2 shown in FIG. 3 (b).

図5(a)及び図5(b)に示すように、値順ビューVW2−1及びVW2−2の各レコードには、項目「RecNo」が追加される。項目「RecNo」の値は、テーブル1000におけるレコードの位置である。このように、値順ビューでは、各レコードに対して項目「RecNo」を追加される。これにより、この値順ビューの基になったテーブル1000における当該レコードの位置が値順ビューでも管理される。したがって、例えば、端末装置10のユーザにより値順ビューから所望のレコードが選択された場合、表示処理部100は、選択されたレコードの項目「RecNo」の値に基づいて、値順ビューの基になったテーブル1000から該当のレコードを取得することができるようになる。 As shown in FIGS. 5A and 5B, the item "RecNo" is added to each record of the value-ordered views VW2-1 and VW2-2. The value of the item "RecNo" is the position of the record in the table 1000. In this way, in the value-ordered view, the item "RecNo" is added to each record. As a result, the position of the record in the table 1000 on which the value-ordered view is based is also managed in the value-ordered view. Therefore, for example, when a desired record is selected from the value-ordered view by the user of the terminal device 10, the display processing unit 100 is based on the value-ordered view based on the value of the item "RecNo" of the selected record. The corresponding record can be obtained from the table 1000.

例えば、図5(a)に示す値順ビューVW2−1の位置「0」のレコードには、項目「RecNo」の値として、「1」が追加されている。これは、図5(a)に示す値順ビューVW2−1の位置「0」のレコードは、図3(a)に示すテーブル1000−1では位置「1」にあるレコードであることを示している。他のレコードの項目「RecNo」の値についても同様である。 For example, "1" is added as the value of the item "RecNo" to the record at the position "0" of the value-ordered view VW2-1 shown in FIG. 5A. This indicates that the record at position "0" in the value-ordered view VW2-1 shown in FIG. 5A is the record at position "1" in the table 1000-1 shown in FIG. 3A. There is. The same applies to the value of the item "RecNo" of other records.

また、値順ビューVW2−1及び値順ビューVW2−2では、項目「Name」の値について、それぞれアルファベット順(アルファベットの昇順)で表示されている。 Further, in the value-ordered view VW2-1 and the value-ordered view VW2-2, the values of the item "Name" are displayed in alphabetical order (ascending alphabetical order), respectively.

このように、値順ビューは、テーブル1000を構成する各レコードの或る指定された項目について、当該項目の値順(例えば、昇順(又は降順)やアルファベット順等)で表示するビューである。なお、図5(a)及び図5(b)では、項目「Name」に関する値順ビューを示したが、項目「Age」に関する値順ビューも同様に考えることができる。 As described above, the value-ordered view is a view that displays a certain designated item of each record constituting the table 1000 in the value order (for example, ascending order (or descending order), alphabetical order, etc.) of the item. Although the value-ordered views related to the item "Name" are shown in FIGS. 5 (a) and 5 (b), the value-ordered views related to the item "Age" can be considered in the same manner.

≪レコード順UNIONビュー≫
図6は、図3(a)に示すテーブル1000−1を構成する各レコードと、図3(b)に示すテーブル1000−2を構成する各レコードとのレコード順UNIONビューVW3である。
≪Record order UNION view≫
FIG. 6 is a record order UNION view VW3 of each record constituting the table 1000-1 shown in FIG. 3A and each record constituting the table 1000-2 shown in FIG. 3B.

図6に示すように、レコード順UNIONビューVW3では、テーブル1000−1を構成する各レコードの後に、テーブル1000−2を構成する各レコードが表示される。このとき、レコード順UNIONビューVW3では、テーブル1000−2を構成する各レコードの位置を読み替える。具体的には、テーブル1000−2を構成するレコードについて、当該レコードの位置をm、テーブル1000−1を構成するレコード数をNとした場合、レコード順UNIONビューVW3では、当該レコードの位置が「m+N」に読み替えられる。これにより、図3(b)に示すテーブル1000−2の位置「0」〜「3」の各レコードは、図6に示すレコード順UNIONビューVW3では、位置「4」〜位置「7」に読み替えられている。 As shown in FIG. 6, in the record order UNION view VW3, each record constituting the table 1000-2 is displayed after each record constituting the table 1000-1. At this time, in the record order UNION view VW3, the position of each record constituting the table 1000-2 is read. Specifically, for the records constituting the table 1000-2, when the position of the record is m and the number of records constituting the table 1000-1 is N, the position of the record is "in the record order UNION view VW3". It is read as "m + N". As a result, each record of the positions "0" to "3" in the table 1000-2 shown in FIG. 3B is read as the position "4" to the position "7" in the record order UNION view VW3 shown in FIG. Has been done.

なお、図6に示すレコード順UNIONビューVW3では、テーブル番号「0」のテーブル1000−1を構成する各レコードの後に、テーブル番号「1」のテーブル1000−2を構成する各レコードが表示されているが、この順は逆であっても良い。 In the record order UNION view VW3 shown in FIG. 6, each record constituting the table 1000-2 of the table number “1” is displayed after each record constituting the table 1000-1 of the table number “0”. However, the order may be reversed.

このように、レコード順UNIONビューは、各テーブル1000をそれぞれ構成するレコードを、テーブル番号順かつレコード順に表示するビューである。なお、図6に示すでは、2つのテーブル1000のレコード順UNIONビューを示したが、3つ以上のテーブル1000のレコード順UNIONビューも同様に考えることができる。 As described above, the record order UNION view is a view that displays the records constituting each table 1000 in the order of the table numbers and the records. Note that, in FIG. 6, the record-ordered UNION views of the two tables 1000 are shown, but the record-ordered UNION views of three or more tables 1000 can be considered in the same manner.

≪値順UNIONビュー≫
図7は、図3(a)に示すテーブル1000−1を構成する各レコードと、図3(b)に示すテーブル1000−2を構成する各レコードとの項目「Name」に関する値順UNIONビューVW4である。
≪Union view in order of value≫
FIG. 7 shows a value-ordered UNION view VW4 relating to the item “Name” of each record constituting the table 1000-1 shown in FIG. 3 (a) and each record constituting the table 1000-2 shown in FIG. 3 (b). Is.

図7に示すように、値順UNIONビューVW4の各レコードには、項目「RecNo」が追加される。項目「RecNo」は、上述した通りであるが、テーブル1000−2を構成する各レコードの位置は読み替えられる。具体的には、上記と同様に、テーブル1000−2を構成するレコードについて、当該レコードの位置をm、テーブル1000−1を構成するレコード数をNとした場合、レコード順UNIONビューVW3では、当該レコードの位置が「m+N」に読み替えられる。 As shown in FIG. 7, the item "RecNo" is added to each record of the value-ordered UNION view VW4. The item "RecNo" is as described above, but the position of each record constituting the table 1000-2 is read. Specifically, as described above, when the position of the record constituting the table 1000-2 is m and the number of records constituting the table 1000-1 is N, the record order UNION view VW3 is the same. The position of the record is read as "m + N".

したがって、例えば、端末装置10のユーザにより値順UNIONビューから所望のレコードが選択された場合、表示処理部100は、選択されたレコードの項目「RecNo」の値に基づいて、値順UNIONビューの基になったテーブル1000から該当のレコードを取得することができるようになる。この方法の詳細については後述する。 Therefore, for example, when a desired record is selected from the value-ordered UNION view by the user of the terminal device 10, the display processing unit 100 displays the value-ordered UNION view based on the value of the item "RecNo" of the selected record. The corresponding record can be obtained from the base table 1000. Details of this method will be described later.

また、値順UNIONビューVW4では、項目「Name」の値について、それぞれアルファベット順(アルファベットの昇順)で表示されている。より詳細には、値順UNIONビューVW4では、優先順位の高い順に、項目「Name」の値、テーブル番号、テーブル1000の位置の順に表示されている。 Further, in the value order UNION view VW4, the values of the item "Name" are displayed in alphabetical order (ascending alphabetical order). More specifically, in the value order UNION view VW4, the value of the item "Name", the table number, and the position of the table 1000 are displayed in the order of priority.

このように、値順UNIONビューは、複数のテーブル1000をそれぞれ構成する各レコードの或る指定された項目について、当該項目の値順(例えば、昇順(又は降順)やアルファベット順等)で表示するビューである。なお、図7では、項目「Name」に関する値順UNIONビューを示したが、項目「Age」に関する値順UNIONビューも同様に考えることができる。 In this way, the value-ordered UNION view displays a certain designated item of each record constituting the plurality of tables 1000 in the value order (for example, ascending order (or descending order), alphabetical order, etc.) of the item. It is a view. In FIG. 7, the value-ordered UNION view related to the item "Name" is shown, but the value-ordered UNION view related to the item "Age" can be considered in the same manner.

<内部的なデータ構造>
次に、データ管理装置20のデータベース300の内部的なデータ構造について説明する。上述したように、データベース300には、テーブル1000から作成される内部的なデータとして、SVL1100と、IND1200と、INV1300とが格納されている。そこで、以降では、図3(a)及び図3(b)にそれぞれ示すテーブル1000−1及びテーブル1000−2について、これらのテーブル1000から作成されたSVL1100と、IND1200と、INV1300とについて説明する。
<Internal data structure>
Next, the internal data structure of the database 300 of the data management device 20 will be described. As described above, the database 300 stores SVL1100, IND1200, and INV1300 as internal data created from the table 1000. Therefore, in the following, the SVL1100, IND1200, and INV1300 created from these tables 1000 will be described with respect to the tables 1000-1 and 1000-2 shown in FIGS. 3 (a) and 3 (b), respectively.

図8(a)は、テーブル番号「0」のテーブル1000−1と、このテーブル1000−1を構成する各レコードの項目「Name」に関して作成されたSVL1100−1、IND1200−1及びINV1300−1とを示している。 FIG. 8A shows a table 1000-1 having a table number “0” and SVL1100-1, IND1200-1 and INV1300-1 created for the item “Name” of each record constituting the table 1000-1. Is shown.

また、図8(b)は、テーブル番号「1」のテーブル1000−2と、このテーブル1000−2を構成する各レコードの項目「Name」に関して作成されたSVL1100−2、IND1200−2及びINV1300−2とを示している。ここで、レコードの位置の読み替えが発生する場合(すなわち、他のテーブル1000とUNIONする場合)には、INV1300−2の位置も読み替えられる。すなわち、例えば、テーブル1000−2の位置「0」〜「3」がそれぞれ位置「4」〜「7」に読み替えられる場合、INV1300−2の位置「0」〜「3」も図示のようにそれぞれ「7」、「5」、「4」、「6」に読み替えられる。 Further, FIG. 8B shows SVL1100-2, IND1200-2, and INV1300- created for the table 1000-2 of the table number "1" and the item "Name" of each record constituting the table 1000-2. It shows 2. Here, when the position of the record is read (that is, when UNION with another table 1000), the position of INV1300-2 is also read. That is, for example, when the positions "0" to "3" of the table 1000-2 are read as the positions "4" to "7", respectively, the positions "0" to "3" of INV1300-2 are also read as shown in the figure. It is read as "7", "5", "4", and "6".

図8(a)及び図8(b)に示すSVL1100は、テーブル1000を構成する各レコードの項目「Name」の値をユニーク及び昇順(アルファベットの昇順)にした上で、最後に最大値を示す値「∞」を追加したものである。 In SVL1100 shown in FIGS. 8A and 8B, the value of the item "Name" of each record constituting the table 1000 is set to unique and ascending order (ascending order of the alphabet), and finally the maximum value is shown. The value "∞" is added.

図8(a)及び図8(b)に示すIND1200は、SVL1100の各要素に対応するINV1300の開始位置が格納されたものである。SVL1100の或る要素ついて、当該要素に対応する開始位置から、SVL1100の次の要素に対応する開始位置の1つ前までが、当該或る要素についてのINV1300の対応する位置を示している。例えば、SVL1100−1の「Cathy」については、IND1200−1の対応する要素は「1」である。一方で、SVL1100−1の「Cathy」の次の要素「Emily」については、IND1200の対応する要素は「3」である。したがって、SVL1100の「Cathy」については、INV1300−1の対応する要素の位置は「1」から「2」までとなる。 The IND1200 shown in FIGS. 8A and 8B stores the start position of the INV1300 corresponding to each element of the SVL1100. For a certain element of the SVL1100, from the start position corresponding to the element to one before the start position corresponding to the next element of the SVL1100 indicates the corresponding position of the INV1300 for the certain element. For example, for "Cathy" of SVL1100-1, the corresponding element of IND1200-1 is "1". On the other hand, for the next element "Every" of "Cathy" of SVL1100-1, the corresponding element of IND1200 is "3". Therefore, for the "Cathy" of the SVL1100, the positions of the corresponding elements of the INV1300-1 are from "1" to "2".

また、IND1200の各要素は、当該要素に対応するSVL1100より小さい値の出現回数を与えている。例えば、図8(a)に示すIND1200−1の「Emily」に対応するIND1200−1の要素は「3」である。これは、テーブル1000−1において、項目「Name」の値が「Emily」よりも小さいレコードの数が「3」であることを示している。 Further, each element of IND1200 gives the number of occurrences of a value smaller than SVL1100 corresponding to the element. For example, the element of IND1200-1 corresponding to "Every" of IND1200-1 shown in FIG. 8A is "3". This indicates that in Table 1000-1, the number of records in which the value of the item "Name" is smaller than "Every" is "3".

図8(a)及び図8(b)に示すINV1300は、転置レコード番号である。例えば、図8(a)に示すINV1300−1では、SVL1100−1の「Emily」に対応する要素は「2」である。これは、テーブル1000−1において、項目「Name」の値が「Emily」のレコードは位置「2」に格納されていることを示している。同様に、例えば、図8(a)に示すINV1300−1では、SVL1100−1の「Cathy」に対応する要素は「0」及び「3」である。これは、テーブル1000−1において、項目「Name」の値が「Cathy」のレコードは位置「0」と「3」とに格納されていることを示している。 INV1300 shown in FIGS. 8 (a) and 8 (b) is a transposed record number. For example, in INV1300-1 shown in FIG. 8A, the element corresponding to “Every” of SVL1100-1 is “2”. This indicates that in the table 1000-1, the record in which the value of the item "Name" is "Every" is stored in the position "2". Similarly, for example, in INV1300-1 shown in FIG. 8A, the elements corresponding to “Cathy” of SVL1100-1 are “0” and “3”. This indicates that in Table 1000-1, the records in which the value of the item "Name" is "Cathy" are stored in the positions "0" and "3".

図8に示すように、SVL1100、IND1200及びINV1300は、配列データやリスト、ベクトルデータ等により実現される。 As shown in FIG. 8, the SVL1100, IND1200, and INV1300 are realized by array data, a list, vector data, and the like.

ここで、図8では、項目「Name」に関して作成されたSVL1100、IND1200及びINV1300を示したが、他の例として、項目「Age」に関して作成されたSVL1100、IND1200及びINV1300を図9に示す。 Here, in FIG. 8, the SVL1100, IND1200 and INV1300 created for the item “Name” are shown, but as another example, the SVL1100, IND1200 and INV1300 created for the item “Age” are shown in FIG.

図9(a)は、テーブル番号「0」のテーブル1000−1と、このテーブル1000−1を構成する各レコードの項目「Age」に関して作成されたSVL1100−1、IND1200−1及びINV1300−1とを示している。また、図9(b)は、テーブル番号「1」のテーブル1000−2と、このテーブル1000−2を構成する各レコードの項目「Age」に関して作成されたSVL1100−2、IND1200−2及びINV1300−2とを示している。なお、図9(b)でレコードの位置の読み替えが発生する場合には、上述したように、INV1300−2の位置も読み替えられる。すなわち、例えば、テーブル1000−2の位置「0」〜「3」がそれぞれ位置「4」〜「7」に読み替えられる場合、INV1300−2の位置「0」〜「3」も図示のようにそれぞれ「5」、「7」、「4」、「6」に読み替えられる。 FIG. 9A shows a table 1000-1 having a table number “0” and SVL1100-1, IND1200-1 and INV1300-1 created for the item “Age” of each record constituting the table 1000-1. Is shown. Further, FIG. 9B shows SVL1100-2, IND1200-2 and INV1300- created for the table 1000-2 of the table number "1" and the item "Age" of each record constituting the table 1000-2. It shows 2. When the position of the record is read in FIG. 9B, the position of INV1300-2 is also read as described above. That is, for example, when the positions "0" to "3" of the table 1000-2 are read as the positions "4" to "7", respectively, the positions "0" to "3" of INV1300-2 are also read as shown in the figure. It is read as "5", "7", "4", and "6".

図9では、SVL1100、IND1200及びINV1300の各要素の値が図8と異なっているが、これらのデータが表す意味は同じである。 In FIG. 9, the values of the elements of SVL1100, IND1200, and INV1300 are different from those in FIG. 8, but the meanings represented by these data are the same.

<SVL1100、IND1200及びINV1300の作成方法>
次に、一例として、図3(a)に示すテーブル1000−1から、図8(a)に示すSVL1100−1、IND1200−1及びINV1300−1を作成する場合について、図10を参照しながら説明する。図10のS1〜S5の各処理は、データ処理部200により行われる。
<Method of creating SVL1100, IND1200 and INV1300>
Next, as an example, a case where SVL1100-1, IND1200-1 and INV1300-1 shown in FIG. 8A are created from the table 1000-1 shown in FIG. 3A will be described with reference to FIG. To do. Each of the processes S1 to S5 in FIG. 10 is performed by the data processing unit 200.

S1.Add RecNo:データ処理部200は、テーブル1000−1から項目「Name」の各要素を抜き出した上で、これら各要素に対してレコード番号を値とする項目「RecNo」を追加する。このとき、レコード番号は、各要素の位置と同じ番号を付与すれば良い。 S1. Add RecNo: The data processing unit 200 extracts each element of the item "Name" from the table 1000-1 and adds an item "RecNo" having a record number as a value to each of these elements. At this time, the record number may be the same as the position of each element.

S2.Sort By Value:データ処理部200は、項目「Name」の値でソート(例えば、昇順にソート)する。 S2. Sort By Value: The data processing unit 200 sorts by the value of the item "Name" (for example, sorts in ascending order).

S3.Separate:データ処理部200は、各要素について、項目「Name」と項目「RecNo」とのを分離する。この分離後の項目「RecNo」の各要素がINV1300となる。 S3. Separate: The data processing unit 200 separates the item "Name" and the item "RecNo" for each element. Each element of the item "RecNo" after this separation becomes INV1300.

S4.Unique&Count:データ処理部200は、項目「Name」の各値の出現数をその値とする項目「Count」を作成すると共に、項目「Name」から同一値を無くす。 S4. Number & Count: The data processing unit 200 creates an item "Count" whose value is the number of occurrences of each value of the item "Name", and eliminates the same value from the item "Name".

S5.Aggregate:データ処理部200は、項目「Count」の先頭に値が「0」の要素を追加した上で、出現数を累計数に変換する。また、データ処理部200は、項目「Name」の最後に値が「∞」の要素を追加する。これらの処理を行った後の項目「Name」の各要素がSVL1100であり、項目「Count」の各要素がIND1200となる。 S5. Aggregate: The data processing unit 200 adds an element having a value of "0" to the beginning of the item "Count" and then converts the number of appearances into a cumulative number. Further, the data processing unit 200 adds an element having a value of "∞" to the end of the item "Name". After performing these processes, each element of the item "Name" becomes SVL1100, and each element of the item "Count" becomes IND1200.

なお、出現数を類計数に変換するとは、項目「Count」の各要素をc[i](i==1,・・・,I)とした場合、j=2からj=Iまで順に、c[1]+・・・+c[j]を改めてc[j]とすることである。 It should be noted that converting the number of appearances into a similar count means that if each element of the item "Count" is c [i] (i == 1, ..., I), then from j = 2 to j = I, in order. c [1] + ... + c [j] is to be changed to c [j] again.

図10に示す例では、一例として、項目「Name」に関するSVL1100、IND1200及びINV1300を作成したが、項目「Age」に関するSVL1100、IND1200及びINV1300についても上記と同様の方法で作成することができる。 In the example shown in FIG. 10, SVL1100, IND1200 and INV1300 related to the item "Name" were created as an example, but SVL1100, IND1200 and INV1300 related to the item "Age" can also be created by the same method as described above.

なお、上記のS1〜S5の処理は、例えば、新たなテーブル1000がデータベース300に追加された場合や、既にSVL1100、IND1200及びINV1300が作成されているテーブル1000に対して新たにレコードが追加された場合等に行われる。 In the above processing of S1 to S5, for example, when a new table 1000 is added to the database 300, or a new record is added to the table 1000 for which the SVL1100, IND1200, and INV1300 have already been created. It is done in some cases.

また、本実施形態では、上記のS1〜S5の処理を全てデータ処理部200で行うものとして説明したが、これに限られず、例えば、S1〜S5の処理のうちの1以上の処理がデータ管理装置20とは異なる装置で実行されても良い。特に、S1〜S5の全ての処理をデータ管理装置20とは異なる装置で実行した上で、この装置の処理結果をデータ管理装置20が格納するようにしても良い。 Further, in the present embodiment, it has been described that all the processes of S1 to S5 are performed by the data processing unit 200, but the present invention is not limited to this, and for example, one or more of the processes of S1 to S5 is data management. It may be executed in a device different from the device 20. In particular, the data management device 20 may store the processing results of this device after executing all the processes of S1 to S5 in a device different from the data management device 20.

<検索方法>
ここで、値順ビュー又は値順UNIONビューが得られた場合に、値順ビュー又は値順UNIONビューから所望のデータを検索する場合は、既知のバイセクション法(二分探索法)を用いて検索することができる。データ検索は、例えば、端末装置10のユーザが検索条件(例えば、=、<、>、between、これらの否定等)を指定することで行うことができる。なお、データ検索は、表示処理部100により行われても良いし、データ処理部200により行われても良い。
<Search method>
Here, when a value-ordered view or a value-ordered UNION view is obtained and a desired data is searched from the value-ordered view or the value-ordered UNION view, the search is performed using a known bisection method (binary search method). can do. The data search can be performed, for example, by the user of the terminal device 10 specifying search conditions (for example, =, <,>, beween, denial of these, etc.). The data search may be performed by the display processing unit 100 or by the data processing unit 200.

このとき、本実施形態では、以下の2つの理由により、値順ビュー又は値順UNIONビューから所望のデータを高速に検索することができると共に、検索結果を少ないデータ容量で保持することができる。 At this time, in the present embodiment, desired data can be searched at high speed from the value-ordered view or the value-ordered UNION view for the following two reasons, and the search result can be held with a small amount of data.

理由1:既知のバイセクション法等によってヒットした領域(ヒット領域)の先頭位置及び末尾位置を特定することができる。このため、先頭位置にあるレコード及び末尾位置あるレコード以外のレコードは、検索条件について評価する必要がない。 Reason 1: It is possible to specify the start position and the end position of the hit area (hit area) by a known bisection method or the like. Therefore, it is not necessary to evaluate the search condition for the records other than the record at the beginning position and the record at the end position.

理由2:ヒット数が膨大であった場合、従来の技術では検索結果としてヒット領域内の全てのレコードを保持する必要があったが、本実施形態では、検索結果としてヒット領域の先頭位置及び末尾位置だけで保持するだけで十分である。 Reason 2: When the number of hits is enormous, it is necessary to hold all the records in the hit area as the search result in the conventional technique, but in the present embodiment, the start position and the end of the hit area are used as the search result. It is enough to hold it only in position.

上記の理由2について、より詳しく説明すれば、例えば、図7に示す値順UNIONビューVW4において、項目「Name」の値が「Cathy」〜「Dorothy」までのレコードを検索する場合、該当のレコードは、位置「2」〜「6」のレコードとなる。このため、本実施形態では、ヒット領域の先頭位置「2」及び末尾位置「6」だけを保持しておくだけで十分となる。ここで、この場合、ヒット領域の長さは6−2+1=5であるため、ヒット件数は5となる、そこで、以下、5件の全てのレコードを取り出す場合について説明する。 The reason 2 described above will be described in more detail. For example, in the value-ordered UNION view VW4 shown in FIG. 7, when searching for a record in which the value of the item "Name" is from "Cathy" to "Dorothy", the corresponding record Is a record at positions "2" to "6". Therefore, in the present embodiment, it is sufficient to hold only the start position "2" and the end position "6" of the hit area. Here, in this case, since the length of the hit area is 6-2 + 1 = 5, the number of hits is 5, and therefore, a case where all five records are taken out will be described below.

この説明の前に、図7に示す値順UNIONビューVW4は仮想的なものであることに注意する。このため、図7に示す値順UNIONビューVW4から各レコードを取り出すには、この値順UNIONビューVW4の指定の行を取り出すルーチンを呼び出す必要がある。このルーチンから返される「RecNo」は読み替えをしたものであるため、RecNoの値から、テーブル1000−1又はテーブル1000−2のいずれであるのかを判別することでテーブル1000を特定し、かつ、読み替えをした結果のRecNoを読み替え前に戻す。なお、読み替えをした後のRecNoが返され、それを使ってテーブル1000を特定し、読み替え前のRecNoに戻すという手順を踏まずに、例えば、テーブル番号と読み替え前のRecNoを戻すようにルーチンを用いても良い。 Prior to this description, it should be noted that the value-ordered UNION view VW4 shown in FIG. 7 is virtual. Therefore, in order to retrieve each record from the value-ordered UNION view VW4 shown in FIG. 7, it is necessary to call a routine for fetching the specified row of the value-ordered UNION view VW4. Since the "RecNo" returned from this routine has been replaced, the table 1000 is specified by determining whether it is Table 1000-1 or Table 1000-2 from the value of RecNo, and the replacement is performed. The RecNo of the result of the above is returned to the state before the replacement. It should be noted that the RecNo after the replacement is returned, the table 1000 is specified using it, and the routine is set so as to return the table number and the RecNo before the replacement, for example, without following the procedure of returning to the RecNo before the replacement. You may use it.

(1)ヒットした最初のレコードのRecNoは0である。RecNo=0は(4未満であるため)テーブル1000−1に属す。RecNo=0からテーブル1000−1のオフセット=0を差し引き、テーブル内のRecNo=0−0=0である。このため、テーブル1000−1の位置「0」のレコードを得る。 (1) The RecNo of the first record hit is 0. RecNo = 0 belongs to Table 1000-1 (because it is less than 4). The offset = 0 of the table 1000-1 is subtracted from RecNo = 0, and RecNo = 0-0 = 0 in the table. Therefore, a record at position "0" in table 1000-1 is obtained.

(2)ヒットした2番目のレコードのRecNoは3である。RecNo=3は(4未満であるため)テーブル1000−1に属す。RecNo=3からテーブル1000−1のオフセット=0を差し引き、テーブル内のRecNo=3−0=3である。このため、テーブル1000−1の位置「3」のレコードを得る。 (2) The RecNo of the second hit record is 3. RecNo = 3 belongs to Table 1000-1 (because it is less than 4). The offset = 0 of the table 1000-1 is subtracted from RecNo = 3, and RecNo = 3-0 = 3 in the table. Therefore, a record at position "3" in table 1000-1 is obtained.

(3)ヒットした3番目のレコードのRecNoは5である。RecNo=5は(4以上であるため)テーブル1000−2に属す。RecNo=5からテーブル1000−2のオフセット=4を差し引き、テーブル内のRecNo=5−4=1である。このため、テーブル1000−2の位置「1」のレコードを得る。 (3) The RecNo of the third hit record is 5. RecNo = 5 belongs to Table 1000-2 (because it is 4 or more). The offset = 4 of the table 1000-2 is subtracted from RecNo = 5, and RecNo = 5-4 = 1 in the table. Therefore, the record of the position "1" of the table 1000-2 is obtained.

(4)ヒットした4番目のレコードのRecNoは4である。RecNo=4は(4以上であるため)テーブル1000−2に属す。RecNo=4からテーブル1000−2のオフセット=4を差し引き、テーブル内のRecNo=4−4=0である。このため、テーブル1000−2の位置「0」のレコードを得る。 (4) The RecNo of the fourth hit record is 4. RecNo = 4 belongs to Table 1000-2 (because it is 4 or more). The offset = 4 of the table 1000-2 is subtracted from RecNo = 4, and RecNo = 4-4 = 0 in the table. Therefore, a record at position "0" in table 1000-2 is obtained.

(5)ヒットした5番目のレコードのRecNoは6である。RecNo=6は(4以上であるため)テーブル1000−2に属す。RecNo=6からテーブル1000−2のオフセット=4を差し引き、テーブル内のRecNo=6−4=2である。このため、テーブル1000−2の位置「2」のレコードを得る。 (5) The RecNo of the fifth hit record is 6. RecNo = 6 belongs to Table 1000-2 (because it is 4 or more). The offset = 4 of the table 1000-2 is subtracted from RecNo = 6, and RecNo = 6-4 = 2 in the table. Therefore, the record of the position "2" of the table 1000-2 is obtained.

なお、検索結果を表すビューとしては、値順ビュー又は値順UNIONビューに表示されているレコードのうち、ヒット領域内のレコードが表示されたビューとすれば良い。この検索結果を表すビューは、表示処理部100により表示される。 The view representing the search result may be a view in which the records in the hit area are displayed among the records displayed in the value-ordered view or the value-ordered UNION view. The view representing the search result is displayed by the display processing unit 100.

<各ビューの作成方法>
次に、各ビューを作成する方法について説明する。各ビューが作成されることで、表示処理部100は、これらのビューを表示することができる。なお、表示処理部100がデータ管理装置20からデータを取得することでビューの作成及び表示を行っても良いし、データ処理部200がデータベース300からデータを取得することでビューを作成し、作成したビューを表示処理部100に送信することで、表示処理部100がビューを表示しても良い。ただし、例えば、異なるデータ管理装置20がそれぞれ管理しているテーブル1000をUNIONしたビューを作成する場合には、表示処理部100がビューの作成を行うことが好ましい。
<How to create each view>
Next, a method of creating each view will be described. By creating each view, the display processing unit 100 can display these views. The display processing unit 100 may create and display the view by acquiring the data from the data management device 20, or the data processing unit 200 may create and create the view by acquiring the data from the database 300. The display processing unit 100 may display the view by transmitting the displayed view to the display processing unit 100. However, for example, when creating a view in which the tables 1000 managed by different data management devices 20 are UNIONed, it is preferable that the display processing unit 100 creates the view.

≪レコード順ビューの作成方法≫
例えば、テーブル番号「0」のレコード順ビューVW1−1を作成する場合、図8(a)に示すテーブル1000−1の位置「0」〜「3」までのレコードを順に取得すれば良い。同様に、例えば、テーブル番号「1」のテーブル1000−2のレコード順ビューVW1−2を作成する場合、図8(b)に示すテーブル1000−2の位置「0」〜「3」までのレコードを順に取得すれば良い。
≪How to create record order view≫
For example, when creating the record order view VW1-1 with the table number “0”, the records from the positions “0” to “3” of the table 1000-1 shown in FIG. 8A may be acquired in order. Similarly, for example, when creating the record order view VW1-2 of the table 1000-2 of the table number "1", the records from the positions "0" to "3" of the table 1000-2 shown in FIG. 8 (b). Should be obtained in order.

≪値順ビューの作成方法≫
例えば、テーブル番号「0」のテーブル1000−1の項目「Name」に関する値順ビューVW2−1を作成する場合、図8(a)に示すINV1300−1の位置「0」〜「3」の各要素の値をその位置とするレコードをレコード順ビューVW1−1から取得すれば良い。より具体的には、図8(a)に示すINV1300−1の位置「0」〜「3」の各要素の値は、INV[0]=1、INV[1]=0、INV[2]=3、INV[3]=2である。したがって、図4(a)に示すレコード順ビューVW1−1から位置「1」、「0」、「3」、「2」のレコードを順に取得し、取得したレコードに対してこれらの値を項目「RecNo」の値としてそれぞれ追加する。これにより、図5(a)に示す値順ビューVW2−1が得られる。
≪How to create a value-based view≫
For example, when creating the value-ordered view VW2-1 regarding the item "Name" of the table 1000-1 of the table number "0", each of the positions "0" to "3" of INV1300-1 shown in FIG. 8A. The record whose position is the value of the element may be acquired from the record order view VW1-1. More specifically, the values of each element of the positions "0" to "3" of INV1300-1 shown in FIG. 8A are INV [0] = 1, INV [1] = 0, INV [2]. = 3, INV [3] = 2. Therefore, the records at positions "1", "0", "3", and "2" are acquired in order from the record order view VW1-1 shown in FIG. 4A, and these values are set as items for the acquired records. Add each as the value of "RecNo". As a result, the value-ordered view VW2-1 shown in FIG. 5A is obtained.

同様に、例えば、テーブル番号「1」のテーブル1000−2の項目「Name」に関する値順ビューVW2−2を作成する場合、図8(b)に示すINV1300−2の位置「0」〜「3」の各要素の値をその位置とするレコードをレコード順ビューVW1−2から取得すれば良い。より具体的には、図8(b)に示すINV1300−2の位置「0」〜「3」の各要素の値は、INV[0]=3、INV[1]=1、INV[2]=0、INV[3]=2である。したがって、図4(b)に示すレコード順ビューVW1−2から位置「3」、「1」、「0」、「2」のレコードを順に取得し、取得したレコードに対してこれらの値を項目「RecNo」の値としてそれぞれ追加する。これにより、図5(b)に示す値順ビューVW2−2が得られる。 Similarly, for example, when creating a value-ordered view VW2-2 relating to the item "Name" of table 1000-2 of table number "1", the positions "0" to "3" of INV1300-2 shown in FIG. 8 (b). The record whose position is the value of each element of "" may be acquired from the record order view VW1-2. More specifically, the values of the respective elements of the positions "0" to "3" of INV1300-2 shown in FIG. 8B are INV [0] = 3, INV [1] = 1, INV [2]. = 0, INV [3] = 2. Therefore, the records at positions "3", "1", "0", and "2" are acquired in order from the record order view VW1-2 shown in FIG. 4 (b), and these values are set as items for the acquired records. Add each as the value of "RecNo". As a result, the value-ordered view VW2-2 shown in FIG. 5B is obtained.

≪レコード順UNIONビューの作成方法≫
例えば、図6に示すレコード順UNIONビューVW3を作成する場合、図8(a)に示すテーブル1000−1の位置「0」〜「3」までのレコードを順に取得した後、図8(b)に示すテーブル1000−2の位置「0」〜「3」までのレコードを順に取得すれば良い。
≪How to create UNION view in record order≫
For example, when creating the record order UNION view VW3 shown in FIG. 6, after acquiring the records from the positions “0” to “3” of the table 1000-1 shown in FIG. 8 (a) in order, FIG. 8 (b) is shown. The records from the positions "0" to "3" in the table 1000-2 shown in the above may be acquired in order.

ただし、図8(b)に示すテーブル1000−2の位置「0」〜「3」のレコードが取得される際に読み替え後の位置「4」〜「7」が指定される場合は、これらの位置「4」〜「7」を読み替え前の位置「0」〜「3」に変換する。 However, if the positions "4" to "7" after the replacement are specified when the records of the positions "0" to "3" in the table 1000-2 shown in FIG. 8 (b) are acquired, these positions are specified. The positions "4" to "7" are converted to the positions "0" to "3" before the replacement.

≪値順UNIONビューの作成方法≫
例えば、図7に示す値順UNIONビューVW4を作成する場合、図5(a)及び図5(b)にそれぞれ示す値順ビューVW2−1及びVW2−2から、優先度の高い順に、項目「Name」の値、テーブル番号、テーブル内のレコード番号の順に取得すれば良い。
≪How to create a UNION view in order of value≫
For example, when the value-ordered UNION view VW4 shown in FIG. 7 is created, the items "from the value-ordered views VW2-1 and VW2-2 shown in FIGS. 5 (a) and 5 (b), respectively, in descending order of priority". The value of "Name", the table number, and the record number in the table may be acquired in this order.

したがって、この場合、以下の順で、図5(a)に示す値順ビューVW2−1と図5(b)に示す値順ビューVW2−2から各レコードが取得される。 Therefore, in this case, each record is acquired from the value-ordered view VW2-1 shown in FIG. 5 (a) and the value-ordered view VW2-2 shown in FIG. 5 (b) in the following order.

(1)図5(a)に示す値順ビューVW2−1の位置「0」のレコード
(2)図5(b)に示す値順ビューVW2−2の位置「0」のレコード
(3)図5(a)に示す値順ビューVW2−1の位置「1」のレコード
(4)図5(a)に示す値順ビューVW2−1の位置「2」のレコード
(5)図5(b)に示す値順ビューVW2−2の位置「1」のレコード
(6)図5(b)に示す値順ビューVW2−2の位置「2」のレコード
(7)図5(b)に示す値順ビューVW2−2の位置「3」のレコード
(8)図5(a)に示す値順ビューVW2−1の位置「3」のレコード
このとき、上記の(2)、(5)〜(7)では項目「RecNo」の読み替えが行われる。
(1) Record of position "0" of value-ordered view VW2-1 shown in FIG. 5 (a) (2) Record of position "0" of value-ordered view VW2-2 shown in FIG. 5 (b) (3) FIG. 5 (a) Record of position "1" of value-ordered view VW2-1 (4) Record of position "2" of value-ordered view VW2-1 shown in FIG. 5 (a) (5) FIG. 5 (b) Record of position "1" of value order view VW2-2 shown in (6) Record of position "2" of value order view VW2-2 shown in FIG. 5 (b) (7) Value order shown in FIG. 5 (b) Record of position "3" of view VW2-2 (8) Record of position "3" of view VW2-1 in order of value shown in FIG. 5 (a) At this time, the above (2), (5) to (7) Then, the item "RecNo" is replaced.

以上により、本実施形態に係るデータ管理システム1は、各種ビューを作成及び表示する際に、SVL1100と、IND1200と、INV1300とを用いることで、テーブル1000を構成するレコード数が膨大であっても、容易かつ高速に各種ビューを作成及び表示することができるようになる。また、本実施形態に係るデータ管理システム1は、データ検索を行う際に、SVL1100と、IND1200と、INV1300とを用いることで、高速に検索を行うことができると共に、検索結果を少ないデータ容量で保持することができるようになる。 As described above, the data management system 1 according to the present embodiment uses the SVL 1100, the IND 1200, and the INV 1300 when creating and displaying various views, so that even if the number of records constituting the table 1000 is enormous. , It becomes possible to create and display various views easily and at high speed. Further, the data management system 1 according to the present embodiment can perform a high-speed search by using the SVL1100, the IND1200, and the INV1300 when performing a data search, and can search the search results with a small amount of data. You will be able to hold it.

なお、本実施形態では複数のテーブル1000をUNIONしたビューを説明したが、UNIONの代わりにJOINを用いることもできる。この場合、例えば、上記のS4.Unique&Countで、該当の項目の値を出現数を計算する際に、当該出現数を、JOINする対象のテーブル1000でマッチする値の出現数倍して、IND1200及びINV1300を作れば良い。 In this embodiment, a view in which a plurality of tables 1000 are UNIONed has been described, but JOIN can be used instead of UNION. In this case, for example, S4. When calculating the number of appearances of the value of the corresponding item in Unique & Count, the number of appearances may be multiplied by the number of appearances of the matching value in the table 1000 to be joined to create IND1200 and INV1300.

<各種関数>
ここで、上記のデータ構造を有するテーブル1000に対して定義された各種関数について説明する。
<Various functions>
Here, various functions defined for the table 1000 having the above data structure will be described.

・Count_LT(テーブル番号,項目名,値)
指定されたテーブル番号のテーブルにおける指定された項目名の項目について、指定された値よりも小さい値のレコード数を得る関数である。
-Count_LT (table number, item name, value)
This function obtains the number of records with a value smaller than the specified value for the item with the specified item name in the table with the specified table number.

Count_LTは、例えば、指定された項目名の項目に関するSVL1100を探索し、指定された値と一致する要素がある場合、その要素の位置をiとして、IND[i]を取得すれば良い。一方で、Count_LTは、例えば、指定された項目名の項目に関するSVL1100を探索し、指定された値と一致する要素がない場合、このSVL1100の各要素の値のうち、指定された値よりも大きく、かつ、最小の値の要素の位置をiとして、IND[i]を取得すれば良い。 For example, Count_LT may search the SVL1100 for the item with the specified item name, and if there is an element that matches the specified value, set the position of the element as i and acquire IND [i]. On the other hand, Count_LT searches, for example, the SVL1100 for the item with the specified item name, and if there is no element that matches the specified value, the value of each element of the SVL1100 is larger than the specified value. And, IND [i] may be acquired with the position of the element having the smallest value as i.

・Count_LE(テーブル番号,項目名,値)
指定されたテーブル番号のテーブルにおける指定された項目名の項目について、指定された値以下の値のレコード数を得る関数である。
-Count_LE (table number, item name, value)
This function obtains the number of records whose value is less than or equal to the specified value for the item with the specified item name in the table with the specified table number.

Count_LEは、例えば、指定された項目名の項目に関するSVL1100を探索し、指定された値と一致する要素がある場合、その要素の位置をiとして、IND[i+1]を取得すれば良い。一方で、Count_LEは、例えば、指定された項目名の項目に関するSVL1100を探索し、指定された値と一致する要素がない場合、このSVL1100の各要素の値のうち、指定された値よりも大きく、かつ、最小の値の要素の位置をiとして、IND[i]を取得すれば良い。 For example, Count_LE may search SVL1100 for an item with a specified item name, and if there is an element that matches the specified value, set the position of the element as i and acquire IND [i + 1]. On the other hand, Count_LE searches the SVL1100 for the item with the specified item name, and if there is no element that matches the specified value, the value of each element of the SVL1100 is larger than the specified value. And, IND [i] may be acquired with the position of the element having the smallest value as i.

・Count_EQ(テーブル番号,項目名,値)
指定されたテーブル番号のテーブルにおける指定された項目名の項目について、指定された値と等しい値のレコード数を得る関数である。
-Count_EQ (table number, item name, value)
This function obtains the number of records with a value equal to the specified value for the item with the specified item name in the table with the specified table number.

Count_EQは、例えば、Count_EQ()=Count_LE()−Count_LT()とすれば良い。 The Count_EQ may be, for example, Count_EQ () = Count_LE ()-Count_LT ().

・Pos(テーブル番号,項目名,値)
指定されたテーブル番号のテーブルにおける指定された項目名の項目について、指定された値がSVL1100に出現する位置を得る関数である。
・ Pos (table number, item name, value)
It is a function to obtain the position where the specified value appears in SVL1100 for the item of the specified item name in the table of the specified table number.

Posは、例えば、指定された項目名の項目に関するSVL1100を探索し、指定された値と一致する要素があった場合は、この要素の位置を取得すれば良い。 For example, Pos may search the SVL1100 for an item with a specified item name, and if there is an element that matches the specified value, obtain the position of this element.

・Total_Count_LT(項目名,値)
指定された項目名の項目について、指定された値よりも小さい値のレコード数の全てのテーブルに関する和を得る関数である。
-Total_Count_LT (item name, value)
It is a function to get the sum of all tables of the number of records whose value is smaller than the specified value for the item with the specified item name.

Total_Count_LTは、テーブル番号をTable[i]として、ΣCount_LT(Table[i],項目名,値)とすれば良い。 Total_Count_LT may be ΣCount_LT (Table [i], item name, value) with the table number as Table [i].

・Total_Count_LE(項目名,値)
指定された項目名の項目について、指定された値より以下の値のレコード数の全てのテーブルに関する和を得る関数である。
-Total_Count_LE (item name, value)
It is a function to get the sum of all the tables of the number of records with the value less than the specified value for the item with the specified item name.

Total_Count_LEは、テーブル番号をTable[i]として、ΣCoun t_LE(Table[i],項目名,値)とすれば良い。 Total_Count_LE may be ΣCount_LE (Table [i], item name, value) with the table number as Table [i].

<値順UNIONビューからレコード順ビューのレコード番号を得る方法>
上述したように、値順UNIONビューの各レコードには項目「RecNo」が追加されている。このため、端末装置10のユーザにより値順UNIONビューから所望のレコードが選択された場合、選択されたレコードの項目「RecNo」の値から該当のテーブル1000のレコード順ビューの位置(レコード番号)を得ることができれば、この位置(レコード番号)により当該テーブル1000から該当のレコードを取得することができる。
<How to get the record number of the record order view from the value order UNION view>
As described above, the item "RecNo" is added to each record in the value-ordered UNION view. Therefore, when a desired record is selected from the value-ordered UNION view by the user of the terminal device 10, the position (record number) of the record-ordered view of the corresponding table 1000 is determined from the value of the item "RecNo" of the selected record. If it can be obtained, the corresponding record can be obtained from the table 1000 by this position (record number).

そこで、以降では、上記で定義した関数を用いて、値順UNIONビューのレコード番号(項目「RecNo」の値)から、テーブル番号と、このテーブル番号のテーブル1000に関するレコード順ビューのレコード番号(先頭レコードからの相対位置)とを得る方法について説明する。なお、以降で説明する方法は、値順UNIONビューにおけるレコード番号rが与えられた表示処理部100又はデータ処理部200のいずれが実行しても良い。また、以降では、SVL1100は、項目「Name」に関するものであるあるとする。したがって、以降では、上記の関数の引数「項目名」は「Name」であるものとして、その記載を省略するものとする。具体的には、例えば、項目「Name」の値をvとした場合、Total_Count_LT(Name,v)を、単に、Total_Count_LT(v)と表すものとする。 Therefore, in the following, using the function defined above, from the record number of the value-ordered UNION view (value of the item "RecNo"), the table number and the record number of the record-ordered view related to the table 1000 of this table number (first). The method of obtaining the relative position from the record) will be described. The method described below may be executed by either the display processing unit 100 or the data processing unit 200 given the record number r in the value-ordered UNION view. Further, hereinafter, it is assumed that SVL1100 relates to the item "Name". Therefore, in the following, it is assumed that the argument "item name" of the above function is "Name", and the description thereof is omitted. Specifically, for example, when the value of the item "Name" is v, Total_Count_LT (Name, v) is simply expressed as Total_Count_LT (v).

S11)rが所属するvを求める。 S11) Find v to which r belongs.

これは、以下を満たすvを探索すれば良い。 This may be done by searching for v that satisfies the following.

Total_Count_LT(v)≦r<Total_Count_LE(v)
各SVL1100は昇順かつその値がユニークであるため、上記のvは、例えば、既知のバイセクション法(二分探索法)を用いて効率良く探索することができる。
Total_Count_LT (v) ≤ r <Total_Count_LE (v)
Since each SVL1100 is in ascending order and its value is unique, the above v can be efficiently searched by using, for example, a known bisection method (binary search method).

一例として、図3(a)及び図3(b)にそれぞれ示すテーブル1000−1及びテーブル1000−2の項目「Name」について、各rに対するvの値を以下の表1に示す。 As an example, for the item "Name" in Tables 1000-1 and 1000-2 shown in FIGS. 3 (a) and 3 (b), the value of v for each r is shown in Table 1 below.

Figure 2021067962
S12)r及びvよりテーブル番号jを求める。
Figure 2021067962
S12) Obtain the table number j from r and v.

上記の表1からもわかるように、Total_Count_LT(v)は、値順UNIONビュー内で値vが開始する位置を与えている。そこで、offset=r−Total_Count_LT(v)とすると、offsetは、値順UNIONビュー内において、値rのレコードが、値vの開始位置から何レコード下がっているかを示す。 As can be seen from Table 1 above, Total_Count_LT (v) gives the position where the value v starts in the value-ordered UNION view. Therefore, if offset = r-Total_Count_LT (v), the offset indicates how many records of the value r are lower than the start position of the value v in the value-ordered UNION view.

したがって、テーブル番号jは、以下の式1を満たす最小のjを求めることで、テーブル番号jを得ることができる。 Therefore, the table number j can be obtained by finding the minimum j that satisfies the following equation 1.

Figure 2021067962

一例として、上記の表1に対して上記の式1により求めたテーブル番号jを追加した表2を以下に示す。
Figure 2021067962

As an example, Table 2 in which the table number j obtained by the above equation 1 is added to the above table 1 is shown below.

Figure 2021067962
S13)r、v及びjよりレコード順ビューのレコード番号rを求める。
Figure 2021067962
S13) The record number r 0 of the record order view is obtained from r, v, and j.

まず、i<jを満たす各テーブル番号iのテーブル1000の全てのレコード数を「レコード数1」とすると、レコード数1は、以下の式2で得ることができる。 First, assuming that the total number of records in the table 1000 of each table number i satisfying i <j is "number of records 1", the number of records 1 can be obtained by the following equation 2.

Figure 2021067962
また、i>jを満たす各テーブル番号iのテーブル1000の全てのレコード数を「レコード数2」とすると、レコード数2は、以下の式3で得ることができる。
Figure 2021067962
Further, assuming that the total number of records in the table 1000 of each table number i satisfying i> j is "the number of records 2", the number of records 2 can be obtained by the following equation 3.

Figure 2021067962
したがって、r=(r−レコード数1−レコード数2)を求めれば、テーブル番号jのテーブル1000に関する値順ビューにおける位置を得ることができる。したがって、テーブル番号jのテーブル1000のINV[r]により、このテーブル1000のレコード番号を取得することができる。なお、このレコード番号は、このテーブル1000に関するレコード順の先頭レコードからの相対位置と同一である。
Figure 2021067962
Therefore, if r j = (r-number of records 1-number of records 2) is obtained, the position of the table number j in the value-ordered view of the table 1000 can be obtained. Therefore, the record number of the table 1000 can be obtained by INV [r j ] of the table 1000 of the table number j. The record number is the same as the relative position from the first record in the record order with respect to the table 1000.

なお、必要に応じて、上記のレコード番号INV[r]を、以下の方法により値順UNIOビューのレコード番号rに変換することもできる。すなわち、値順UNIONビューの基となったj番目のテーブル1000(テーブル番号jのテーブル1000)のレコード番号INV[r]は、0〜(j−1)番目のテーブル1000をそれぞれ構成するレコードの数の総和を足すことで、値順UNIONビュー内のレコード番号(項目「RecNo」の値)に変換することができる。 If necessary, the above record number INV [r j ] can be converted to the record number r 0 of the value-ordered UNITO view by the following method. That is, the record number INV [r j ] of the j-th table 1000 (table 1000 of table number j), which is the basis of the value-ordered UNION view, is the record constituting the 0- (j-1) -th table 1000, respectively. By adding the sum of the numbers of, it is possible to convert to the record number (value of the item "RecNo") in the UNION view in order of value.

以上により、値順UNIONビューの項目「RecNo」の値(レコード番号)から、該当のテーブル1000に関するレコード順ビューの位置(レコード番号)を得ることができる。これにより、端末装置10のユーザにより値順UNIONビューから所望のレコードが選択された場合、この選択されたレコードを、該当のテーブル1000(選択されたレコードが格納されているテーブル1000)から取得することができるようになる。 As described above, the position (record number) of the record order view with respect to the corresponding table 1000 can be obtained from the value (record number) of the item "RecNo" of the value order UNION view. As a result, when a desired record is selected from the value-ordered UNION view by the user of the terminal device 10, the selected record is acquired from the corresponding table 1000 (table 1000 in which the selected record is stored). You will be able to do it.

<応用例1>
次に、本実施形態の応用例1について説明する。応用例1では、或る項目に関する値順UNIONビューを表示する際に、同一のテーブル1000内に当該項目の値が同一のレコードが存在する場合、テーブル1000毎に1つのレコードのみを表示する場合を説明する。
<Application example 1>
Next, application example 1 of this embodiment will be described. In Application Example 1, when displaying the value-ordered UNION view for a certain item, if there are records with the same value of the item in the same table 1000, only one record is displayed for each table 1000. Will be explained.

例えば、項目「Name」に関する値順UNIONビューを表示する場合、図11に示すように、各テーブル1000の値順ビューで、項目「Name」の値が同一のレコードのうち、1つのレコード以外を削除した上で、値順UNIONビューを作成すれば良い。 For example, when displaying the value-ordered UNION view related to the item "Name", as shown in FIG. 11, in the value-ordered view of each table 1000, among the records having the same value of the item "Name", other than one record is displayed. After deleting it, create a value-ordered UNION view.

図11に示す例では、テーブル番号「0」のテーブル1000−1の値順ビューにおいて、項目「Name」が「Cathy」であるレコードが2つ存在する。このため、これら2つのレコードのうち、1つのレコード以外を削除する。 In the example shown in FIG. 11, in the value-ordered view of table 1000-1 with the table number “0”, there are two records in which the item “Name” is “Cathy”. Therefore, of these two records, only one record is deleted.

同様に、テーブル番号「1」のテーブル1000−2の値順ビューにおいて、項目「Name」が「Dorothy」であるレコードが2つ存在する。このため、これら2つのレコードのうち、1つのレコード以外を削除する。 Similarly, in the value-ordered view of table 1000-2 of table number "1", there are two records in which the item "Name" is "Dorothy". Therefore, of these two records, only one record is deleted.

ここで、同一の値のレコードのうち、どのレコードを削除せずに残しておくかは任意に決めることができる。例えば、同一の値のレコードのうち、値順ビューの位置が最も小さいレコードを残しておいても良いし、項目「RecNo」の値(レコード番号)が最も小さいレコードを残しておいても良い。 Here, among the records having the same value, which record should be left without being deleted can be arbitrarily determined. For example, among the records having the same value, the record having the smallest value-ordered view position may be left, or the record having the smallest value (record number) of the item "RecNo" may be left.

なお、応用例1のように、テーブル1000毎に同一値のレコードのうちの1つのレコードのみを値順UNIONビューで表示する場合は、上記で定義したCount_LT及びCount_LEを以下のように修正する。 When displaying only one record of the same value in each table 1000 in the value-ordered UNION view as in application example 1, the Count_LT and Count_LE defined above are modified as follows.

・Count_LT(テーブル番号,項目名,値)
Count_LTは、例えば、指定された項目名の項目に関するSVL1100を探索し、指定された値と一致する要素がある場合、その要素の位置をiとして、iを取得すれば良い。一方で、Count_LTは、例えば、指定された項目名の項目に関するSVL1100を探索し、指定された値と一致する要素がない場合、このSVL1100の各要素の値のうち、指定された値よりも大きく、かつ、最小の値の要素の位置をiとして、iを取得すれば良い。
-Count_LT (table number, item name, value)
For example, Count_LT may search SVL1100 for an item with a specified item name, and if there is an element that matches the specified value, set i as the position of the element and acquire i. On the other hand, Count_LT searches, for example, the SVL1100 for the item with the specified item name, and if there is no element that matches the specified value, the value of each element of the SVL1100 is larger than the specified value. And, i may be acquired by setting the position of the element having the smallest value as i.

・Count_LE(テーブル番号,項目名,値)
Count_LEは、例えば、指定された項目名の項目に関するSVL1100を探索し、指定された値と一致する要素がある場合、その要素の位置をiとして、i+1を取得すれば良い。一方で、Count_LEは、例えば、指定された項目名の項目に関するSVL1100を探索し、指定された値と一致する要素がない場合、このSVL1100の各要素の値のうち、指定された値よりも大きく、かつ、最小の値の要素の位置をiとして、iを取得すれば良い。
-Count_LE (table number, item name, value)
For example, Count_LE may search SVL1100 for an item with a specified item name, and if there is an element that matches the specified value, set the position of the element as i and acquire i + 1. On the other hand, Count_LE searches the SVL1100 for the item with the specified item name, and if there is no element that matches the specified value, the value of each element of the SVL1100 is larger than the specified value. And, i may be acquired by setting the position of the element having the smallest value as i.

<応用例2>
次に、本実施形態の応用例2について説明する。応用例2は、本実施形態をキーワード検索に応用した例である。
<Application example 2>
Next, application example 2 of this embodiment will be described. Application example 2 is an example in which this embodiment is applied to a keyword search.

例えば、図12(a)及び図12(b)に示すように、テーブル1000−1及びテーブル1000−2を構成する各レコードは、項目「Text」と、項目「Keyword」と、項目「RecNo」とを有するものとする。ここで、項目「Text」が検索対象のキーワードを含むテキストが格納されるカラムである。また、項目「Keyword」は、項目「Text」に格納されているテキストから予め抽出されたキーワードである。 For example, as shown in FIGS. 12 (a) and 12 (b), each record constituting the table 1000-1 and the table 1000-2 has an item "Text", an item "Keyword", and an item "RecNo". And shall have. Here, the item "Text" is a column in which the text including the keyword to be searched is stored. Further, the item "Keyword" is a keyword extracted in advance from the text stored in the item "Text".

このとき、本実施形態で説明したように、項目「Keyword」に関してSVL1100と、IND1200と、INV1300とを作成することで、項目「Text」に格納されたテキストのうち、指定されたキーワードを含むテキストの検索を行うことができるようになる。しかも、例えば、テーブル1000−1及びテーブル1000−2の値順UNIONビュー等も表示させることができるため、複数のテーブル1000を用いたキーワード検索を容易かつ高速に行うことができるようになる。 At this time, as described in the present embodiment, by creating SVL1100, IND1200, and INV1300 for the item "Keyword", the text including the specified keyword among the texts stored in the item "Text" is included. You will be able to search for. Moreover, for example, since the value-ordered UNION views of tables 1000-1 and 1000-2 can be displayed, keyword searches using a plurality of tables 1000 can be easily and quickly performed.

例えば、テーブル1000−1の値順ビューからキーワード「car」を含むテキストを検索したい場合、SVL1100−1と、IND1200−1と、INV1300−1とを用いて、INV[3]=1、INV[4]=2及びINV[5]=3が得られる。これにより、レコード番号「1」のレコードと、レコード番号「2」のレコードと、レコード番号「3」のレコードとを、指定されたキーワードを含むテキストとして、テーブル1000−1から取得することができる。テーブル1000−1及びテーブル1000−2の値順UNIONビューにおけるキーワード検索も同様である。 For example, when it is desired to search the text including the keyword "car" from the value-ordered view of the table 1000-1, INV [3] = 1, INV [3] using SVL1100-1, IND1200-1, and INV1300-1. 4] = 2 and INV [5] = 3 are obtained. As a result, the record of the record number "1", the record of the record number "2", and the record of the record number "3" can be acquired from the table 1000-1 as text including the specified keyword. .. The same applies to the keyword search in the value-ordered UNION views of tables 1000-1 and 1000-2.

本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。 The present invention is not limited to the above-described embodiment disclosed specifically, and various modifications and modifications can be made without departing from the scope of claims.

1 データ管理システム
10 端末装置
20 データ管理装置
100 表示処理部
200 データ処理部
1000 テーブル
1100 SVL
1200 IND
1300 INV
1 Data management system 10 Terminal equipment 20 Data management equipment 100 Display processing unit 200 Data processing unit 1000 Table 1100 SVL
1200 IND
1300 INV

Claims (9)

複数のレコードが格納されたテーブルと、該複数のレコードそれぞれに含まれる所定の項目値が格納された第1の配列データと、前記レコードを識別するレコード番号が格納された第2の配列データと、前記第1の配列データと前記第2の配列データとを対応付ける第3の配列データとを記憶する記憶手段と、
前記項目値又は前記レコード番号の指定に応じて、前記第1の配列データと前記第2の配列データと前記第3の配列データを用いて、前記テーブルに格納されている複数のレコードのうち、指定された前記項目値又は前記レコード番号に対応する1以上のレコードを取得する取得手段と、
を有することを特徴とする情報処理システム。
A table in which a plurality of records are stored, a first array data in which a predetermined item value included in each of the plurality of records is stored, and a second array data in which a record number for identifying the record is stored. , A storage means for storing the third sequence data that associates the first sequence data with the second sequence data.
Of a plurality of records stored in the table using the first sequence data, the second sequence data, and the third sequence data according to the designation of the item value or the record number. An acquisition means for acquiring one or more records corresponding to the specified item value or the record number, and
An information processing system characterized by having.
前記第1の配列データは、前記複数のレコードそれぞれに含まれる所定の項目値を、該項目値の順に重複なく配列に格納したデータである、ことを特徴とする請求項1に記載の情報処理システム。 The information processing according to claim 1, wherein the first array data is data in which predetermined item values included in each of the plurality of records are stored in an array in the order of the item values without duplication. system. 前記第2の配列データは、前記レコード番号を、前記項目値の順に配列に格納したデータである、ことを特徴とする請求項1又は2に記載の情報処理システム。 The information processing system according to claim 1 or 2, wherein the second array data is data in which the record numbers are stored in an array in the order of the item values. 前記第3の配列データは、前記項目値の出現回数を、前記テーブルに格納されているレコード順に累計した累計数を配列に格納したデータである、ことを特徴とする請求項1乃至3の何れか一項に記載の情報処理システム。 The third array data is any of claims 1 to 3, wherein the third array data is data in which the number of occurrences of the item values is accumulated in the array in the order of records stored in the table. The information processing system described in item 1. 前記情報処理システムには、前記記憶手段をそれぞれ有する複数のデータ管理装置が含まれ、
前記取得手段は、
前記項目値又は前記レコード番号の指定に応じて、前記複数のデータ管理装置がそれぞれ有する前記記憶手段に記憶されている前記第1の配列データと前記第2の配列データと前記第3の配列データを用いて、前記複数のデータ管理装置がそれぞれ有する前記記憶手段に記憶されている前記テーブルに格納されている複数のレコードのうち、指定された前記項目値又は前記レコード番号に対応する1以上のレコードを取得する、ことを特徴とする請求項1乃至4の何れか一項に記載の情報処理システム。
The information processing system includes a plurality of data management devices each having the storage means, and the information processing system includes a plurality of data management devices.
The acquisition means
The first sequence data, the second sequence data, and the third sequence data stored in the storage means of the plurality of data management devices according to the designation of the item value or the record number. Of the plurality of records stored in the table stored in the storage means of the plurality of data management devices, one or more corresponding to the specified item value or the record number. The information processing system according to any one of claims 1 to 4, wherein a record is acquired.
前記取得手段は、
第1のテーブルと第2のテーブルとを前記項目値の順に結合したビューにおける前記レコード番号の指定に応じて、前記第2のテーブルと対応する前記第1の配列データと前記第2の配列データと前記第3の配列データを用いて、前記レコード番号を読み替えることで、指定された前記レコード番号に対応する1以上のレコードを前記第2のテーブルから取得する、ことを特徴とする請求項5に記載の情報処理システム。
The acquisition means
The first array data and the second array data corresponding to the second table according to the designation of the record number in the view in which the first table and the second table are joined in the order of the item values. 5. The third array data is used to read the record number to acquire one or more records corresponding to the designated record number from the second table. Information processing system described in.
前記取得手段は、
前記レコード番号から、前記第1のテーブルのレコード数を減じることで、該レコード番号を読み替える、ことを特徴とする請求項6に記載の情報処理システム。
The acquisition means
The information processing system according to claim 6, wherein the record number is replaced by subtracting the number of records in the first table from the record number.
前記取得手段は、
前記指定された前記項目値又は前記レコード番号に対応する1以上のレコードのうち、先頭のレコードを特定する第1の情報と、末尾のレコードを特定する第2の情報とを取得し、取得した前記第1の情報と前記第2の情報とを検索結果として所定の記憶領域に保持する、ことを特徴とする請求項1乃至7の何れか一項に記載の情報処理システム。
The acquisition means
Among the one or more records corresponding to the specified item value or the record number, the first information for specifying the first record and the second information for specifying the last record are acquired and acquired. The information processing system according to any one of claims 1 to 7, wherein the first information and the second information are stored in a predetermined storage area as a search result.
複数のレコードが格納されたテーブルと、該複数のレコードそれぞれに含まれる所定の項目値が格納された第1の配列データと、前記レコードを識別するレコード番号が格納された第2の配列データと、前記第1の配列データと前記第2の配列データとを対応付ける第3の配列データとを記憶する記憶手段を有する情報処理装置が、
前記項目値又は前記レコード番号の指定に応じて、前記第1の配列データと前記第2の配列データと前記第3の配列データを用いて、前記テーブルに格納されている複数のレコードのうち、指定された前記項目値又は前記レコード番号に対応する1以上のレコードを取得する取得手順、
を実行することを特徴とする情報処理方法。
A table in which a plurality of records are stored, a first array data in which a predetermined item value included in each of the plurality of records is stored, and a second array data in which a record number for identifying the record is stored. An information processing apparatus having a storage means for storing the third sequence data that associates the first sequence data with the second sequence data.
Of a plurality of records stored in the table using the first sequence data, the second sequence data, and the third sequence data according to the designation of the item value or the record number. Acquisition procedure for acquiring one or more records corresponding to the specified item value or the record number,
An information processing method characterized by executing.
JP2018028665A 2018-02-21 2018-02-21 Information processing system and information processing method Pending JP2021067962A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018028665A JP2021067962A (en) 2018-02-21 2018-02-21 Information processing system and information processing method
PCT/JP2019/005141 WO2019163610A1 (en) 2018-02-21 2019-02-13 Information processing system and information processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018028665A JP2021067962A (en) 2018-02-21 2018-02-21 Information processing system and information processing method

Publications (1)

Publication Number Publication Date
JP2021067962A true JP2021067962A (en) 2021-04-30

Family

ID=67688098

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018028665A Pending JP2021067962A (en) 2018-02-21 2018-02-21 Information processing system and information processing method

Country Status (2)

Country Link
JP (1) JP2021067962A (en)
WO (1) WO2019163610A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023276162A1 (en) * 2021-07-02 2023-01-05 晋二 古庄 Data creation device, data creation method, and program

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1091644A (en) * 1996-09-10 1998-04-10 Oki Electric Ind Co Ltd Method and device for processing data base query
JP5241738B2 (en) * 2008-01-28 2013-07-17 株式会社ターボデータラボラトリー Method and apparatus for building tree structure data from tables
JP2015207026A (en) * 2012-08-29 2015-11-19 株式会社ターボデータラボラトリー Information processor, record position information specification method and information processing program

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023276162A1 (en) * 2021-07-02 2023-01-05 晋二 古庄 Data creation device, data creation method, and program

Also Published As

Publication number Publication date
WO2019163610A1 (en) 2019-08-29

Similar Documents

Publication Publication Date Title
Beebe et al. Digital forensic text string searching: Improving information retrieval effectiveness by thematically clustering search results
US8959079B2 (en) Method and system for providing relationships in search results
JP4930153B2 (en) Document search system, document number subsequence acquisition apparatus, and document search method
US10467203B2 (en) Data de-duplication
US8458187B2 (en) Methods and systems for visualizing topic location in a document redundancy graph
US7756798B2 (en) Extensible mechanism for detecting duplicate search items
JP2019057082A (en) Data retrieval system, data retrieving method, and program
JP2013109606A (en) Information processor and program
WO2014034383A1 (en) Information processing device, record location information specification method, and information processing program
JP5398663B2 (en) Data processing apparatus, data processing method, and program
JP4973503B2 (en) File search program, method and apparatus
US20120239657A1 (en) Category classification processing device and method
JP5284064B2 (en) Product ID server device and method for controlling product ID server device
US20240143634A1 (en) System and methods for categorizing captured data
JP2013041385A (en) Document retrieval method, document retrieval device, and document retrieval program
JP5912949B2 (en) Business document processing system and program
JP2021067962A (en) Information processing system and information processing method
US9286348B2 (en) Dynamic search system
JP2005010848A (en) Information retrieval device, information retrieval method, information retrieval program and recording medium
JP6123372B2 (en) Information processing system, name identification method and program
WO2023152965A1 (en) Data providing device, data providing method, and program
JP7418781B2 (en) Company similarity calculation server and company similarity calculation method
US11675751B2 (en) Systems and methods for capturing data schema for databases during data insertion
JP7487797B2 (en) Similarity determination program, similarity determination device, and similarity determination method
US20220043814A1 (en) Information processing device, information processing system, and computer-readable recording medium storing information processing program