WO2014034383A1 - Information processing device, record location information specification method, and information processing program - Google Patents

Information processing device, record location information specification method, and information processing program Download PDF

Info

Publication number
WO2014034383A1
WO2014034383A1 PCT/JP2013/071127 JP2013071127W WO2014034383A1 WO 2014034383 A1 WO2014034383 A1 WO 2014034383A1 JP 2013071127 W JP2013071127 W JP 2013071127W WO 2014034383 A1 WO2014034383 A1 WO 2014034383A1
Authority
WO
WIPO (PCT)
Prior art keywords
record
item
database
value
position information
Prior art date
Application number
PCT/JP2013/071127
Other languages
French (fr)
Japanese (ja)
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 WO2014034383A1 publication Critical patent/WO2014034383A1/en

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/22Indexing; Data structures therefor; Storage structures

Definitions

  • the present invention relates to database management technology, and particularly to management technology for large-scale data stored in a distributed manner.
  • Search that accumulates data, retrieves necessary data from it, and presents it is the basic role of the database management device.
  • An index is essential for speeding up this search. Examples of the existing index include B-Tree and hash (for example, see Non-Patent Document 1).
  • Non-Patent Document 1 Douglas Comer “The Ubiquitous B-Tree”, Computing Surveys, June 1979, Vol 11, No. 1 2, p121-p137
  • the conventional index cannot handle large-scale data or data obtained in a distributed manner.
  • an index in a large-scale database has a property that a necessary storage capacity does not increase rapidly even if the database becomes large.
  • the size is preferably O (n).
  • the data is acquired without being server-less, and the data acquired in each place is distributed and managed as it is, and can be freely accessed via the network. These cannot be realized with the current index.
  • the present invention has been made in view of the above circumstances, and an object of the present invention is to provide a technology that can manage a large-scale database at low cost without restrictions on the use environment and provide an easy-to-use environment.
  • the present invention is an index for specifying position information of a desired record from a database in which a plurality of records each having a unique record number is stored, and returns a record number of a specified value and a predetermined item
  • An information processing apparatus including a position information specifying unit that specifies position information of a record using an index that returns a record number corresponding to the rank after sorting is provided.
  • the size of this index is proportional to the original database size.
  • FIG. 1 It is a block diagram of the database system of a first embodiment.
  • (A)-(d) is explanatory drawing for demonstrating the database of 1st embodiment.
  • (A)-(d) is explanatory drawing for demonstrating the database of 1st embodiment. It is explanatory drawing for demonstrating the virtual integrated data and virtual integrated sort data of 1st embodiment.
  • (A)-(c) is explanatory drawing for demonstrating the index file for every data item of 1st embodiment.
  • (A) And (b) is explanatory drawing for demonstrating the index file for every table of 1st embodiment. It is a flowchart of the 1st search process of 1st embodiment.
  • an information processing apparatus including a position information specifying unit that specifies position information of a record using an index that returns a record number corresponding to a rank after sorting by a predetermined item.
  • the size of this index is proportional to the original database size.
  • an information processing apparatus that manages a database including records that store item values for predetermined data items, using an index file for each data item that can be searched, and the index file
  • a position information specifying unit that specifies position information of a desired record, and each record is uniquely given a record number in advance, and the position information specifying unit specifies the record number as the position information.
  • the index file for each data item can acquire the record number from the item value of the data item, and can acquire the record number from the order of the sort database in which the data item is sorted as a key item.
  • a database ID is uniquely assigned to each database in advance
  • the index file is generated for each database
  • the sort database includes the plurality of databases.
  • the virtual integrated database virtually integrated is sorted using the data items as key items, and the position information specifying unit further specifies the database ID of the database to which the desired record belongs as the position information. You may do.
  • the index file for each data item stores a value list for storing unique item values belonging to the data item in a predetermined order, and the cumulative number of records in the database for each item value in the order in which the value list is stored. And a sort list that stores the order of the record numbers after sorting in the predetermined order using the data item as a key item.
  • the index file for each data item includes the database, the data item of the database, the sort list that stores the order of the record numbers after sorting the data item as a key item in a predetermined order, and the data item of the database And an original data list that stores the item values in the initial arrangement order.
  • the position information specifying unit may include a first search unit that uses the index file for each data item and specifies the position information of the specified item value of the data item. Further, the position information specifying unit may include a second search unit for specifying the position information of a specified position in the sort database using an index file for each data item. The position information specifying unit may further include, for each item value for each data item, a record number calculation unit that calculates, for each database, the number of records smaller than the item value and the number of records equal to the item value. .
  • a record extracting unit that extracts the desired record from the database according to the position information specified by the position information specifying unit may be further provided.
  • a record position information specifying method for specifying position information of a desired record in a database including a record storing item values for each predetermined data item and a record number uniquely assigned to each record.
  • An index file that can acquire the record number from the item value of the data item, and that can acquire the record number from the order of a sorted database obtained by sorting the database using the data item as a key item,
  • a record position information specifying method characterized by including a position information specifying step for specifying the position information by specifying the record number of the desired record using an index file generated every time.
  • the position information specifying step includes a first search step of specifying a data item and an item value of the desired record and specifying the record number of the desired record using the index file of the data item. May be. Further, the position information specifying step receives the designation of the data item of the record and the rank in the sort database as the desired record, and uses the index file of the data item, and the desired information in the sort database.
  • a second search step for specifying the record number of the record may be provided. In the second search step, the position information specifying step calculates, for each database, the number of records smaller than the item value and the number of records equal to the item value for each item value of the data item of the record.
  • a record number calculating step may be provided.
  • the integrated database is a virtual integrated sort database in which the data items are sorted as key items.
  • the database ID of the database to which the desired record belongs may be further specified as the position information. Good.
  • an information processing apparatus including a position information specifying unit that specifies position information of a desired record, a database including records storing item values for each predetermined data item stored in a storage device, A record position information specifying method for specifying position information of a record having a target value that is a predetermined item value of a target item that is a predetermined data item in a database in which a record number is uniquely assigned in advance.
  • the storage device further stores an index file for each of the data items that can be searched.
  • the index file stores a value list that stores unique item values belonging to the data item in a predetermined order, and the value list. In the storage order, the cumulative number of records in the database is stored for each item value.
  • the presence / absence determination step for determining whether or not the target item of the database has the target value, and when determined to be present in the presence / absence determination step, using the cumulative number list and the sort list,
  • a record position information specifying method comprising: specifying a record number of the target value and specifying a record number as the position information.
  • the information storage device includes a record that stores an item value for each predetermined data item stored in a storage device.
  • a record position information specifying method for specifying position information of a record having a target value that is a predetermined item value of a target item that is a predetermined data item in a database in which a record number is uniquely assigned in advance The storage device further stores an index file for each of the data items that can be searched. The index file stores the order of the record numbers after the database is sorted in a predetermined order using the data item as a key item.
  • Sort list to perform and the value of the data item in the database An original data list stored in an initial arrangement order, accessing the original data list of the target item, and whether or not the target item of the database has the target value If it is determined in the presence / absence rank determination step that determines the rank and the presence / absence rank determination step, the rank of the original data list is specified as the record number of the target value, and the position information And a record number specifying step, wherein the record position information specifying method is provided.
  • an information processing apparatus including a position information specifying unit that specifies position information of a desired record, a plurality of databases including records storing item values for each predetermined data item stored in a storage device, Virtual records in a virtual integrated sort database in which a plurality of databases are virtually integrated and sorted as key items in a plurality of databases in which record numbers are uniquely assigned in advance to each record.
  • the storage device further stores an index file for each of the data items that can be searched for each database, The index file stores unique item values belonging to the data item.
  • a search value determination step for determining a search value including a position, the value list of the key item, the cumulative number list, and the sort list, and a search value corresponding to the target position in the determined search value is A position information specifying step for specifying the table to which the table belongs and the rank in the table as the position information.
  • An information processing apparatus including a position information specifying unit that specifies position information of a desired record includes a record that stores an item value for each predetermined data item stored in a storage device.
  • a target position which is a virtual position in a virtual integrated sort database obtained by virtually integrating the plurality of databases and sorting predetermined data items as key items in a plurality of databases assigned record numbers to
  • a record position information specifying method for specifying position information of a record wherein the storage device further stores an index file for each data item that can be searched for each database, and the index file is stored in the database. Are sorted in the specified order using the data item as a key item.
  • a record position information specifying method comprising: a table to which a search value corresponding to the target position in a search value belongs; and a position information specifying step for specifying a rank in the table as the position information.
  • a record extraction method for extracting a desired record from a database comprising a record for storing an item value for each predetermined data item and a record number uniquely assigned to each record.
  • a record extraction method including a record extraction step of extracting the desired record in accordance with position information specified by the method.
  • the computer is a plurality of databases each of which stores values for each predetermined data item, and each database of each database is assigned with a unique record number in advance.
  • An information processing program that functions as position information specifying means for specifying position information of a desired record using an index file included in the index file, wherein the index file is generated from each of the databases, and for each data item,
  • an information processing program for acquiring the record number from the item value of a data item and acquiring the record number from the rank of a sorted database obtained by sorting the data item as a key item.
  • the information processing program may be provided by being recorded on a computer-readable storage medium.
  • a first information processing apparatus that manages a database that is connected via a network and that includes records that store item values for each predetermined data item, and a second information processing that specifies position information of the desired record
  • the first information processing apparatus includes an index file for each data item that can be a search target, and each record is uniquely assigned a record number in advance,
  • the index file for each data item can acquire the record number from the item value of the data item, and can acquire the record number from the order of the sort database in which the data item is sorted as a key item.
  • the second information processing apparatus specifies the record number as the position information. To provide a database system for the butterflies.
  • a database ID is uniquely assigned to each database in advance
  • the index file is generated for each database
  • the sort database is the plurality of databases.
  • a virtual integrated database obtained by virtually integrating the databases is a database in which the data items are sorted as key items
  • the second information processing apparatus uses the database ID of the database to which a desired record belongs as the position information. You may comprise so that it may specify further.
  • at least one database among the plurality of databases to be managed may be stored on different first information processing apparatuses connected to the network.
  • FIG. 1 is a diagram for explaining an outline of a database system 100 according to an embodiment of the present invention and functional blocks of an information processing apparatus provided in the database system 100.
  • a plurality of information processing apparatuses 110-0, 110-1, and 110-2 are connected via a network 120.
  • the information processing apparatus 110 represents the information processing apparatus.
  • the case where three information processing apparatuses 110 are connected to the network 120 is shown, but the number of information processing apparatuses 110 connected is not limited thereto.
  • Each information processing apparatus 110 functions as a data management apparatus that manages a database held by each information processing apparatus 110 while holding a database described later.
  • a data management device for example, a database browsing function, a search function, and the like are also provided.
  • Each information processing apparatus 110 includes a CPU 111, a memory 112, and a storage device 113.
  • NWIF network interface
  • Each information processing device 110 is connected to an input device 115 and a display device 116 which are user interfaces of the information processing device 110.
  • an external storage device 117 may be connected.
  • the information processing apparatuses 110-0, 110-1, and 110-2 store the databases 200-0, 200-1, and 200-2, respectively.
  • the database is represented by the tabular data 201 when it is not necessary to distinguish between the databases.
  • the database 200 is stored in the storage device 113 or the external storage device 117 of each information processing apparatus 110.
  • the information processing apparatuses 110-0, 110-1, and 110-2 are index files 300-0, 300-1, and 300 of the databases 200-0, 200-1, and 200-2, respectively. -2. If there is no need to distinguish the index file, the index file 300 is representative.
  • the index file 300 is stored in the storage device 113 or the memory 112 of each information processing device 110.
  • the index file 300 is created at an arbitrary time interval. For example, it is created every time a predetermined amount of data is collected.
  • the database of the present embodiment may be structured tabular data, semi-structured data, or unstructured data.
  • the structured tabular data 201 is an array of one or more records (rows) 213 including item values 212 corresponding to one or more data items (columns) 211 as shown in FIG.
  • Each record 213 is given a record number (RecNo.) 214.
  • This record number is information indicating the position where the record is stored in the tabular data 201.
  • This record number is given to the tabular data 201 at a predetermined timing.
  • the predetermined timing is, for example, the time when the tabular data 201 is created.
  • each record can be accessed by designating a record number.
  • the records are not always arranged in the order of the record numbers (Rec No.) 214.
  • the tabular data 201 at the time of creation (referred to as the original tabular data 201) is sorted so that the item values 212 are arranged in ascending order using the predetermined data item 211 as a key item
  • the sorted tabular format The order of records in the data 201 s is different from the order of records in the original tabular data 201.
  • FIG. 2B shows a sorting result when the tabular data 201 is sorted in ascending order using the data item 211 “Name” as a key item.
  • information indicating the order of records in the database 200 of each aspect is referred to as a record order number (rank) 215.
  • the record order number 215 matches the record number (RecNo.) 214.
  • FIG. 2A exemplifies five records 213 including three items ⁇ Gender>, ⁇ Name>, and ⁇ Age> as the data item 211.
  • FIG. for example, in the record 213 with the record number 214 being 0, the item value 212 of the ⁇ Generator> data item 211 is “female”, the item value 212 of the ⁇ Name> data item 211 is “Jemi”, and the data item 211.
  • the item value 212 of ⁇ Age> is “2”.
  • the number of data items 211 and the number of records 213 are not limited thereto.
  • the item value 212 may be either numeric data or text data, but it is assumed that the order can be uniquely assigned. For example, numerical data such as 2, 1,... Is stored as the item value 212 of ⁇ Age> in the data item 211, and text data such as Jemi, Griza,... As the item value 212 of the ⁇ Name> is stored in the data item 211. Stored.
  • the data item 211 of the tabular data 201 of this embodiment is a repeated item that can store a plurality of item values 212 in each record 213. Also good.
  • the case where the data item 211 of ⁇ Name> is a repetition item is illustrated.
  • the plurality of item values 212 stored in the repeated item does not matter in the normal order. That is, the tabular data 201 of FIG. 2C and the tabular data 201 shown in FIG. 2D are considered to be logically the same.
  • the semi-structured data 202 basically has the same configuration as the tabular data 201. That is, it is an array of one or more records including item values 212 corresponding to one or more data items 211. However, in the semi-structured data 202, the data item 211 includes a data item 211 that is guaranteed to have a value and a data item 211 that is not guaranteed.
  • ⁇ ID> is a data item 211 that is guaranteed to have a value
  • other ⁇ name>, ⁇ address>, ⁇ gender>, ⁇ age>, ⁇ food> Is a data item 211 that is not guaranteed.
  • the unstructured data 203 also basically has the same configuration as the tabular data 201. That is, it is an array of one or more records 213 including item values 212 corresponding to one or more data items 211. However, in the unstructured data 203, there is no data item for which data is guaranteed to exist.
  • the semi-structured data 203 and the unstructured data 204 are mapped to a structure similar to that of the tabular data 201 as shown in FIGS. 3C and 3D, respectively. I do.
  • the handling of the item value 212 without a value is determined in advance.
  • the NULL item is described as being handled as the minimum value of each data item 211.
  • the tabular data 201 included in each information processing apparatus 110 is referred to as a table.
  • Each table is uniquely assigned an identification number i in advance.
  • the tabular data 201-0, 201-1 and 201-2 are referred to as Table 0, Table 1 and Table 2 with identification numbers 0, 1 and 2, respectively.
  • a plurality of tables may be provided in one information processing apparatus 110.
  • the identification number i of each table is called a table ID.
  • the information processing apparatus 110 specifies position information of a desired record from a table group that is distributed and managed.
  • a database obtained by virtually integrating a table group that is distributed and managed in the order of table IDs is referred to as a virtual integrated database (virtual integrated DB).
  • a database in which the virtual integrated DB is sorted using predetermined data items as key items is referred to as a virtual integrated sort database (virtual integrated sort DB).
  • the record order number of the virtual integrated sort DB is called a virtual row (Vrec).
  • FIG. 4 is a diagram for explaining the virtual integrated DB and the virtual integrated sort DB.
  • the search target table group is a table 0 (Table 0) and a table 1 (Table 1) is illustrated.
  • the virtual integration DB 500 is a table in which table 0 and table 1 are virtually integrated in the order of table IDs.
  • the virtual integrated sort DB 510 is obtained by sorting the virtual integrated DB 500 using predetermined data items (here, ⁇ Name>) as keys.
  • the item 501 indicates a table ID and a record number.
  • the table 0 is the tabular data 201 shown in FIG. 2A, and is structured tabular data having five records.
  • Table 1 is unstructured data with six records and NULL items.
  • the information processing apparatus 110 searches the table group, and records 213 having the item value 212 designated by the data item 211. Identify and return location information.
  • the position information is a table ID and a record number of a table (affiliation table) to which the record 213 equal to the item value 212 belongs.
  • the user specifies a data item 211 as a key item when generating the virtual integrated sort DB 510 and a virtual row (Vrec), position information of the record 213 of the virtual row (Vrec) is returned.
  • FIG. 5 shows a functional block diagram of the information processing apparatus 110 that realizes the above functions.
  • the information processing apparatus 110 of this embodiment includes an index creation unit 410 and a position information identification unit 420.
  • Each of these functions is realized by the CPU 111 included in the information processing apparatus 110 loading a program stored in the storage device 113 in advance into the memory 112 and executing it. Details of each part will be described below.
  • the index creation unit 410 creates the index file 300 from the tabular data 201 at an arbitrary time interval.
  • the index file 300 created by the index creation unit 410 of this embodiment will be described.
  • the index file 300 according to the present embodiment includes one or more elements provided to speed up the process of specifying the position of a desired record 213 from the tabular data 201 managed on each information processing apparatus 110.
  • FIG. 6 is a diagram for explaining the index file 300 of the present embodiment.
  • the index creation unit 410 according to the present embodiment creates the following index files 300 for all tables that are distributed and managed.
  • the index file 300 created from the tabular data 201 shown in FIG. 2A will be described as an example.
  • the index file 300 is generated for each data item 211 of the tabular data 201.
  • the data item 211 for creating the index file 300 is called an item of interest.
  • 6A shows an example in which the item of interest is ⁇ Gender>
  • FIG. 6B shows an example in which the item of interest is ⁇ Name>
  • FIG. 6C shows an example in which the item of interest is ⁇ Age>.
  • the index file 300 according to the present embodiment includes a value list (VL) 310, an accumulation number list (CAGR) 320, and a sort list (SOS) 330.
  • Each list is composed of an element and a rank (Ord) indicating a record sequence number as its position.
  • Each list can be extracted from each list by specifying the rank (Ord). Further, the element of the rank j starting from 0 in the list ABC is denoted as ABC [j].
  • VL310 is a list in which unique item values 212 appearing in the item of interest are sorted in a predetermined order (for example, ascending or descending order) and stored as elements. Specifically, the VL 310 generates the table format data 201 by sorting the table item data 201 in a predetermined order using the item of interest as a key, and suppressing the same value as the result (sorted table format data 201s).
  • the SOS 330 stores the tabular data 201 as an element in the arrangement order of the record numbers 214 when the item of interest is sorted as a key. Sorting is performed in the same order as VL310. By providing the SOS 330, the record number 214 corresponding to the sorted item value 212 can be freely extracted.
  • CAGR 320 stores an accumulated value of the number of records of each item value 212 as an element.
  • the number of records is accumulated in the order of VL310.
  • the CAGR 320 can know the storage range of each element of the VL 310 in the SOS 330. That is, when i is larger than 0, the element VL [j] of the VL310 is the section of [CAGR [j-1], CAGR [j]) of the SOS 330, that is, CAGR [j-1] to CAGR [j] Stored in order of -1. Note that the element VL [0] of the VL310 is stored in the rank of the section [0, CAGR [0]) of the SOS330.
  • a closed section is indicated by []
  • an open section is indicated by ().
  • the element “Grizza” of VL rank 1 will be described.
  • the element of rank 0 of CAGR 320 is “1”, and the element of rank 1 of CAGR 320 is “3”. Therefore, “Grizza” is stored in the range of the rank [1, 3) of the SOS 330, that is, the range of the rank [1, 2].
  • FIGS. 7A and 7B show an example of an index file 300 when the item of interest is ⁇ Name>.
  • 7A shows the index file 300 of the table
  • FIG. 7B shows the index file 300 of the table 1.
  • the position information specifying unit 420 searches the table group using the index file 300 in accordance with an instruction from the user, and specifies position information of a predetermined record.
  • the position information specifying unit 420 searches for a record having the item value 212 of the data item 211 in response to the designation of the data item 211 and the predetermined item value 212,
  • the data item 211 as the sort key item, and the virtual row (Vrec)
  • the record of the virtual row (Vrec) is searched and the position information is specified.
  • a second search unit 422 that calculates the number of records specified, and a record number calculation unit 423 that calculates the specified number of records.
  • the record number calculation unit 423 of the present embodiment prepares two functions represented by the following expressions (1) and (2), and when the first search unit 421 and the second search unit 422 search for position information, The number of records shown by the following formulas (3) and (6) is calculated. The calculation is performed using the VL310, CAGR320, and SOS330 of the designated data item 211.
  • VL (i) each list of the table (i) is referred to as VL (i), CAGR (i), and SOS (i), respectively.
  • CLTP (i) [j] obtained by Expression (1) is the number of records belonging to a value smaller than the item value of the order j of VL (i).
  • CEQP (i) [j] obtained by Expression (2) is the number of records belonging to a value equal to the item value of rank j of VL (i).
  • CLTV (i) ⁇ x> obtained by Expression (3) is the number of records belonging to a value smaller than a predetermined item value x in the table i.
  • case1 is a case where the item value x exists in VL (i), and j is a rank in the VL (i) of the item value x.
  • Case 2 is a case where the item value x does not exist in VL (i), and j is the maximum item value when a value smaller than x exists in the item value of VL (i).
  • the order of Case 3 is a case where the item value x does not exist in VL (i), and a value smaller than x does not exist in the item value of VL (i).
  • CEQV (i) ⁇ x> obtained by Expression (4) is the number of records belonging to a value equal to the predetermined item value x in the table i.
  • case1 is a case where the item value x exists in VL (i)
  • j is a rank in the VL (i) of the item value x.
  • Case 2 is a case where the item value x does not exist in VL (i).
  • CALTV ⁇ x> obtained by Expression (5) is the number of records belonging to a value smaller than a predetermined item value x in the virtual integrated DB 500 and the virtual integrated sort DB 510.
  • CAEQV ⁇ x> obtained by Expression (6) is the number of records belonging to a value equal to a predetermined item value x in the virtual integrated DB 500 and the virtual integrated sort DB 510.
  • the first search unit 421 when the data item 211 and the item value are given by the user, the first search unit 421 returns the position information in the distribution management target table. That is, the table ID and record number of the record having the value are specified from the value.
  • the search is performed for VL (i) in the index file 300 having the data item 211 as the target item, and the presence / absence of the specified item value is present. Identifies its location.
  • the search for VL (i) is performed using a bisection method or the like.
  • the record number is specified by the above method using CAGR (i) and SOS (i).
  • FIG. 8 is a processing flow example of the first search process by the first search unit 421 of the present embodiment.
  • the number of tables to be searched is M (M is an integer of 1 or more). It is assumed that the table group to be searched is determined in advance. At this time, the search result is stored in the first search result storage area in the storage device 113.
  • a search target data item 211 (Target Item: TI) and an item value 212 (Target Value: TV) are given by the user
  • the index file 300 of the data item TI of the table i is accessed.
  • VL (i) is accessed and the item value TV is searched (step S1102).
  • the search is performed using a bisection method or the like. If the item value TV exists in VL (i), the rank is extracted, CAGR (i) is accessed, and the storage range of the item value TV in SOS (i) is specified by the above-described method (step S1103). ). According to the obtained storage range, the SOS (i) is accessed, and the record number 214 of the item value TV is obtained (step S1104). The obtained record number 214 is additionally stored in the first search result storage area in association with the table ID of the table being searched (step S1105).
  • step S1102 is repeated (steps S1106 and 1107).
  • step S1102 if the item value TV does not exist in VL (i) in step S1102, the process proceeds to step S1106 as it is and the process is repeated.
  • a set of table ID and record number stored in the first search result storage area is output as position information (step S1108).
  • the second search unit 422 returns the position information of the corresponding record. That is, the table ID and the record number 214 of the record of the designated virtual row TP of the virtual integrated sort DB 510 are specified.
  • the VL 310 is accessed in the order of the table ID, and a value at a predetermined position (for example, near the center) is extracted as a temporary search value (provisional search value).
  • a virtual row provisional virtual row
  • the obtained virtual virtual line is compared with the designated virtual line, and the search is repeated until they match. Then, the position information of the matching provisional search value is calculated.
  • the temporary virtual row of the temporary search value is calculated by Expression (5) and Expression (6) by the record number calculation unit 423.
  • the range of the temporary virtual row (rank) is [CALTV ⁇ provisional search value>, CALTV ⁇ provisional search value> + CAEQV ⁇ provisional search value>). That is, CALTV ⁇ provisional search value> to CALTV ⁇ provisional search value> + CAEQV ⁇ provisional search value> -1.
  • FIG. 9 is a processing flow example of the second search process by the second search unit 422 of the present embodiment.
  • the number of tables to be searched is M (M is an integer of 1 or more).
  • M is an integer of 1 or more.
  • an area for storing the search result in the storage device 113 is set as a second search result storage area.
  • an area that holds the value extracted as the temporary search value is set as a temporary search value storage area.
  • step S1201 When TP is given as a designated virtual row by the user, first, the table number to be searched and the second search result storage area are initialized (step S1201). Then, the index file 300 of the key item TI when creating the virtual integrated sort DB 510 in the table i is accessed.
  • VL (i) is accessed, and the provisional search value vp is determined according to a predetermined rule (step S1202).
  • a predetermined rule for example, the median is extracted as described above.
  • the rank of the temporary search value vp in the VL (i) is j.
  • the determined provisional search value vp and rank j are additionally registered in the provisional search value storage area (step S1203).
  • the record number calculation unit 423 is caused to calculate the range of the virtual row (temporary virtual row) of the temporary search value vp (step S1204).
  • the designated virtual row TP is compared with the range of the temporary virtual row (step S1205).
  • Designated virtual line TP is within the range of the temporary virtual line, temporary search value vp is, determines that the value V TP of the virtual line (Step S1209).
  • the value V TP performs position information specifying process of specifying a table ID and a record number of the virtual line TP (step S1210), the process ends.
  • step S1206 it is determined whether a new temporary search value can be determined in the table i according to a predetermined rule.
  • a new temporary search value can be determined in the table i according to a predetermined rule.
  • the temporary search value vp in VL (i) and the temporary search value already stored in the temporary search value storage area are used. It is determined between the maximum value among the values smaller than the search value vp.
  • the temporary search value vp in VL (i) and the temporary search value stored in the temporary search value storage area are larger than the temporary search value vp. Decide between the smallest of the values.
  • step S1207 If it can be determined, a new temporary search value vp is determined (step S1207), the process proceeds to step S1203, and the process is repeated.
  • step S1208 when the new temporary search value vp cannot be determined within the above range, the process moves to the next table (step S1208), and the process is repeated from step S1202.
  • FIG. 10 is a processing flow example of the position information specifying process of the present embodiment by the second search unit 422.
  • step S1301 affiliation table determination processing for determining the table ID of the table to which the affiliation belongs is performed.
  • step S1302 the total number AC (i) ⁇ V TP > of records having a value equal to the value V TP included in the table below i is calculated (step S1302).
  • AC (i) is calculated by the following equation (7).
  • the rank POS (i) ⁇ V TP > (calculated virtual row) in the virtual integrated sort DB 510 of the record having the largest rank among the records having a value equal to the item value V TP of the table i is determined.
  • This POS (i) ⁇ V TP > is obtained by the following formula (8) in which AC (i) ⁇ V TP > is added to the total number of records CALTV ⁇ V TP > having a value smaller than the item value V TP ( Step S1303).
  • the calculated virtual row POS (i) ⁇ V TP > is compared with the designated virtual row TP (step S1304).
  • the affiliation table of the record corresponding to the virtual row TP is determined as the table i (step S1305).
  • step S1304 if the calculated virtual row is smaller than the designated virtual row TP, the process moves to the next table (step S1310), returns to step S1302, and repeats the process.
  • the record order AA of the record corresponding to the virtual row TP among the records belonging to the value equal to the item value VTP in the table i is calculated (step S1307). This is obtained by subtracting 1 from the value obtained by subtracting POS (i ⁇ 1) ⁇ V TP > (or CALTV ⁇ V TP >) from the virtual row TP.
  • the order Ord in SOS (i) is calculated (step S1308).
  • the second search unit 422 accesses the index file 300 in which the item of interest shown in FIG. First, VL (0) of the table 0 is accessed, and for example, “Jemi” having a rank of 2 is extracted as the temporary search value vp. Then, the record number calculation unit 423 obtains the range of the rank of “Jemi” in the virtual integrated sort DB 510. Here, [6, 7] is obtained.
  • the designated virtual row TP is a smaller value outside this range, a smaller value is extracted again as the temporary search value vp in VL (0).
  • “Grizza” is set to vp.
  • [3, 5] is obtained as the range of rank in the virtual integrated sort DB 510 of “Grizza”. Since the virtual row TP is within the range, the temporary virtual value vp “Grizza” is set as the virtual row value V TP .
  • the process moves to the next table 1 and performs the same processing.
  • a virtual row in the virtual integrated sort DB 510 for the one with the highest rank of “Grizza” in Table 1, 5 is obtained. Since this is a value less than or equal to the virtual row TP, the affiliation table of the record of the virtual row TP is determined as 1.
  • the table ID of the table to which the table belongs and the record number are output as the position information.
  • the present invention is not limited to this.
  • sequential record numbers integrated record numbers
  • the integrated record number is obtained by adding the total number of records in a table having a table ID smaller than the own table to the record number of the own table.
  • the number of databases set as search targets may be one.
  • the first search unit 421 and the second search unit 422 search only the index file 300 of the database and return only the record number as the position information.
  • the record number of the record having the item value can be obtained.
  • the record number of the record can be obtained by designating a predetermined row of the sorted database using a predetermined data item as a key item.
  • each information processing apparatus 110 includes the index creation unit 110 and the position information identification unit 420
  • the position information specifying unit 420 is an information processing apparatus independent of the information processing apparatus 110 that holds the database, and may be provided with an information processing apparatus that can transmit and receive data to and from each information processing apparatus 110 that holds the database. Good.
  • the information processing apparatus 110 including the position information specifying unit 420 accesses the information processing apparatus 110 including the desired database 200 and the index file 300, and executes the processing by the position information specifying unit 420.
  • the user may select a database to be integrated and search for data.
  • a list of databases that can be selected by the user may be displayed and received from the list.
  • the user may specify the data item 211 and the item value 212 to be subjected to the first search process.
  • the user may instruct the designated virtual row TP for performing the second search process.
  • the information processing apparatus 110 may further include a display control unit.
  • the display control unit accesses the table according to the position information specified by the first search unit 421 or the second search unit 422, extracts records, and displays them in the display area of the display device 116. That is, the display control unit implements a record extraction function and a display function.
  • a search process in which a specific item value is specified can be realized.
  • the search process is realized as follows.
  • the first search unit 421 specifies the position information of the record having the item value 212 specified by the user.
  • the display control unit extracts the record from each table and displays it on the display area of the display device 116.
  • browsing processing of the virtual integrated sort DB 510 can be realized.
  • the browsing process is realized as follows.
  • the second search unit 422 specifies the position information of each record of a predetermined number of virtual rows including the virtual row TP designated by the user.
  • the position information of the virtual rows of the number of rows (here, L rows) that can be displayed in the display area of the display device 116 is specified.
  • the display control unit extracts these records from each table i and displays them in the display area of the display device 116 in the order of virtual rows. For example, each time the virtual row TP designated by the user is changed by a scroll operation or the like, this series of processing is performed to update the display.
  • the database 200 of this embodiment returns the position information of the record belonging to the item value 212, and the virtual row of the virtual integrated sort DB 510
  • TP is designated
  • an index file 300 is provided that returns position information of the virtual row TP.
  • the position information specifying unit 420 searches for a record designated by the user using the index file 300, and specifies the position information.
  • the database 200 is managed in a distributed manner, it is possible to return position information of records in a specified order in a virtually integrated and sorted state.
  • a user can easily search for a desired record using the index file 300 of the present embodiment, regardless of whether the database is single or distributed and managed in a plurality of databases.
  • the position information can be specified.
  • the use area of an index such as a B-tree conventionally used for searching a large amount of database increases (O (nlog (n)) at an accelerated rate as the amount of data in the original database increases.
  • the index file 300 of this embodiment is proportional to the size of the original database (O (n)), so that even if the size of the original database is enormous, the storage area is greatly increased. There is no pressure on you.
  • each list constituting the index file 300 of this embodiment can be accessed in order (Ord). Further, the above search is realized only by searching the index file 300. For this reason, the amount of communication between sites that are pre-distributed and managed for searching can be suppressed. Therefore, the communication amount does not increase when searching and extracting records.
  • the index file 300 of the present embodiment has a simple configuration as described above, it can be created regardless of the database type. Therefore, it is possible to easily specify and extract the position of desired data regardless of the database type to be managed. In addition, prior design for searching is not necessary.
  • the index file 300 has a large scale such that a very high-speed search can be realized and a database of 1 trillion records can be practically constructed. Furthermore, since the index file 300 of the present embodiment has a unique record number that is an index that can be used even between databases with different schemas, the index file 300 has wide-area dispersibility, and cooperation between databases that are behind each other is also possible. Is possible. Moreover, according to this embodiment, a server is not required. That is, a search is performed using the client CPU. For this reason, the number of CPUs to be added increases as the number of clients increases, and a large number of clients can be connected without difficulty. Further, since it is serverless, a server system and server software are unnecessary, and a database system can be constructed at a low cost.
  • Second Embodiment a second embodiment to which the present invention is applied will be described. Although it is the same function as 1st embodiment, a different index is used.
  • the database system of this embodiment is basically the same as the database system 100 of the first embodiment shown in FIG. The same applies to each device of the database system 100.
  • the index file 300 is different as described above. Therefore, the configuration of the index file 300 in the information processing apparatus 110 is different, and the processes of the index creation unit 410 and the position information identification unit 420 are different.
  • the applicable database types are also different.
  • the present embodiment will be described focusing on the configuration different from the first embodiment.
  • the functional configuration of the information processing apparatus 110 basically includes an index creating unit 410 and a position information specifying unit 420 as in the first embodiment shown in FIG. And the positional information specific
  • the index creation unit 410 creates the index file 300 from the tabular data 201 at an arbitrary time interval, as in the first embodiment. For example, it is created every time a predetermined amount of data is collected. However, the index file 300 to be created is different.
  • FIG. 12 is a diagram for explaining the index file 300 of the present embodiment.
  • the index creation unit 410 according to the present embodiment creates the following index files 300 for all tables that are distributed and managed.
  • the index file 300 of this embodiment is also one or more lists in an array format including one or more elements created for each data item 211 of the tabular data 201, as in the first embodiment.
  • the data item 211 for creating the index file 300 is referred to as a focused item.
  • the index file 300 created from the tabular data 201 shown in FIG. 2A of the first embodiment will be described as an example.
  • 12A is an example in which the item of interest is ⁇ Gender>
  • FIG. 12B is an example in which the item of interest is ⁇ Name>
  • FIG. 12C is an example in which the item of interest is ⁇ Age>.
  • the index file 300 includes a sort list (SOS) 330 and a list (original data list: ORG) 340 composed of data of an item of interest in the original table.
  • Each list includes an element and a rank (Ord) indicating its position.
  • Each list can be extracted from each list by specifying the rank (Ord).
  • the element of the rank j starting from 0 in the list ABC is denoted as ABC [j].
  • the configuration and creation method of the SOS 330 are the same as those in the first embodiment.
  • each list of the index file 300 is created for each table.
  • FIG. 13A and FIG. 13B show an example of the index file 300 when the item of interest is ⁇ Name>.
  • 13A shows the index file 300 of the table
  • FIG. 13B shows the index file 300 of the table 1.
  • SOS 330 and ORG 340 are used as the index file 300.
  • any of structured data, semi-structured data, and unstructured data may be used, as in the first embodiment.
  • one item value is stored in each data item.
  • the position information specifying unit 420 of this embodiment also specifies position information in accordance with an instruction from the user.
  • the first search unit 421 searches for a record having the item value 212 of the data item 211 and identifies position information.
  • the second search unit 422 searches for the record of the virtual row (Vrec) in the virtual integrated sort DB 510 in response to the designation of the data item 211 and the virtual row (Vrec) as the sort key items, and the position Returns information.
  • the first search process by the first search unit 421 searches for and specifies position information of a record having a specified value.
  • the search target data item 211 (Target Item: TI) and the item value 212 (Target Value: TV) are specified
  • the first search unit 421 of this embodiment searches the ORG 340 in the order of the table ID.
  • the search uses a conventional search method such as a two-division method.
  • the first search unit 421 additionally stores the record number and the table ID in the first search result storage area with the order (Ord) of the record as the record number every time it hits.
  • the second search process of the second search unit 422 of this embodiment also returns position information of the corresponding record when a key item and a virtual row (Vrec) of the virtual integrated sort DB 510 are designated by the user. That is, the table ID and the record number 214 of the record of the designated virtual row TP of the virtual integrated sort DB 510 are specified.
  • the ORG 340 is accessed in the order of the table ID, and a value at a predetermined position (for example, near the center) is extracted to obtain a provisional search value (provisional search value).
  • provisional search value provisional search value
  • a virtual row (temporary virtual row) in the sort DB 510 is obtained.
  • the obtained virtual virtual line is compared with the designated virtual line, and the search is repeated until they match. Then, the position information of the matching provisional search value is calculated.
  • the flow of the second search process of the present embodiment is basically the same as the second search process shown in FIGS. 9 and 10 of the first embodiment.
  • the determination method of the initial temporary search value vp in step S1202 the information stored in the temporary search value storage area in step S1203, and the determination method of the new temporary search value vp in step S1206 are different.
  • CLTV (i) ⁇ x> indicating the number of records belonging to a value smaller than the value x in the table (i) used in the second search process by the record number calculation unit 423 is the same as the x
  • the calculation method of CEQV (i) ⁇ x> indicating the number of records belonging to a value equal to is different from the first embodiment.
  • the above-described record number calculation process by the record number calculation unit 423 of this embodiment will be described.
  • the record number calculation unit 423 searches for ORG (i) and acquires the rank (Ord) in the table (i) when the value x is designated.
  • the calculation is performed using a two-division method or the like, and the search is performed until one rank (Ord) is designated.
  • CLTV (i) ⁇ x> is obtained with the value e1 of the minimum order of the storage range, and CEQV (i) ⁇ x> subtracts the minimum order e1 from the number in the storage range, that is, the maximum order e2. It is obtained as a value obtained by adding 1 to the obtained value.
  • the calculation method of the number of records CALTV ⁇ x> belonging to a value smaller than the value x and the number of records CAEQV ⁇ x> belonging to a value equal to the value x in the virtual integrated DB 500 used in the second search process is as follows. This is the same as the embodiment.
  • the first provisional search value vp is determined in the following procedure in each table i. That is, first, SOS (i) is accessed, and an element (ElementA) at a predetermined position (for example, near the center) is extracted. Then, the ORG 340 is accessed, and the element (ValueB) of the record having the element (ElementA) in the rank (Ord) is extracted and set as the provisional search value vp.
  • step S1203 the temporary search value vp, the rank (Ord) in ORG (i), and the rank (Ord) of the temporary search value vp in SOS (i) are also stored in this embodiment.
  • step S1206 the new provisional search value vp is sequentially determined by performing the bisection method in SOS (i). At this time, when the designated virtual row TP is smaller than the minimum value of the temporary virtual row, the rank of the current temporary search value vp in SOS (i) and the temporary search value already stored in the temporary search value storage area are used. The maximum value among the values smaller than the current provisional search value vp and the rank in the SOS (i) are determined.
  • the rank of the current temporary search value vp in SOS (i) and the temporary search value already stored in the temporary search value storage area are: It is determined between the rank in the SOS (i) of the minimum value among the values larger than the current provisional search value vp.
  • the second search unit 422 accesses the index file 300 whose table of interest is Name in Table 0 shown in FIG. Then, SOS (0) is accessed, and for example, element 0 having a rank of 3 is extracted. Then, ORG (0) is accessed, and the element “Jemi” with rank 0 is extracted as the provisional search value vp.
  • the range of the ranking of “Jemi” in the virtual integrated sort DB 510 is obtained.
  • [6, 7] is obtained. Since the virtual row TP is a smaller value outside this range, a value having a smaller rank is re-extracted as the temporary search value vp in SOS (0). For example, element 1 with rank 1 is extracted, ORG (0) is accessed, and element “Grizza” with rank 1 is set as a new temporary search value vp.
  • [3, 5] is obtained as the range of the rank of “Grizza” in the virtual integrated sort DB 510. Since the virtual row TP is within the range, “Grizza” is set as the value V TP of the virtual row.
  • the number of “Grizza” up to Table 0 is calculated (CALTV ⁇ Grizza>), and 2 is obtained. Further, the total number of values smaller than “Grizza” (CALTV ⁇ Grizza>) in the virtual integrated sort DB 510 is 3. Therefore, the virtual row in the virtual integrated sort DB 510 with the highest rank of “Grizza” in the table 0 is 4.
  • the process moves to the next table 1 and performs the same processing.
  • a virtual row in the virtual integrated sort DB 510 for the one with the highest rank of “Grizza” in Table 1, 5 is obtained. Since this is a value less than or equal to the virtual row TP, the affiliation table of the record of the virtual row TP is determined as 1.
  • the position information specifying unit 420 may be constructed in an information processing device independent of the information processing device 110 that holds the database. Furthermore, a display control unit similar to that of the first embodiment may be provided so that search processing, browsing processing, and the like can be realized. In addition, an interface that allows the user to specify item values to be specified and extraction targets, a virtual row, and an interface from which the user can select a database to be searched may be provided.
  • the configuration of the index file 300 is not limited to the configuration of each of the above embodiments. That is, it is created from the original database, the size and size of the original database are proportional, and given a predetermined data item and value, the position information of the record that satisfies it can be returned, and Any index file can be used as long as it is an index file that can be integrated virtually and can return position information of records in a specified rank in a state of being sorted by predetermined data items. For example, it may be a combination of a first list capable of determining the number of predetermined item values (including 0) and a second list capable of grasping the rank of each record after sorting by a predetermined data item. .
  • 100 Database system
  • 110 Index creation unit
  • 110 Information processing device
  • 111 CPU
  • 112 Memory
  • 113 Storage device
  • 114 NWIF
  • 115 Input device
  • 116 Display device
  • 117 External storage device
  • 120 Network
  • 200 Database
  • 201 Tabular data
  • 201s Tabular data after sorting
  • 202 Semi-structured data
  • 203 Semi-structured data
  • 203 Unstructured data
  • 204 Unstructured data
  • 212 item value
  • 213 record
  • 214 record number
  • 215 record order number
  • 300 index file
  • 310 VL
  • 320 CAGR
  • 340 ORG
  • 410 index Creation unit
  • 420 position information identification unit
  • 421 first search Part
  • 422 second search unit
  • 423 record number calculation unit
  • 500 virtual integration DB
  • 501 table ID and a record number
  • 510 virtual integration Sort DB

Abstract

Provided is a technology which provides an easily usable environment whereby a large database is administered inexpensively and without restriction on usage environment. Provided is an information processing device, comprising: a location information specification unit which returns a record number of a designated value which is an index for specifying location information of a desired record from a database wherein a plurality of records are stored which each respectively have unique record numbers, and which specifies the location information of the record using the index which returns the record number corresponding to an order after sorting with a prescribed item. The size of the index is proportional to the size of the original database.

Description

情報処理装置、レコード位置情報特定方法および情報処理プログラムInformation processing apparatus, record position information specifying method, and information processing program
 本発明は、データベース管理技術に係り、特に、分散記憶される大規模データの管理技術に関する。 The present invention relates to database management technology, and particularly to management technology for large-scale data stored in a distributed manner.
 データを蓄積し、必要なデータをそこから取り出して提示する「検索」はデータベース管理装置の基本的な役割である。この検索を高速化するためにはインデックスが必須である。既存のインデックスには、例えば、B-Tree、ハッシュなどがある(例えば、非特許文献1参照)。 “Search” that accumulates data, retrieves necessary data from it, and presents it is the basic role of the database management device. An index is essential for speeding up this search. Examples of the existing index include B-Tree and hash (for example, see Non-Patent Document 1).
 近年、データ量が急激に増加し、必然的にデータベースは大規模化している。また、大規模なデータベースは、データが各地で分散収集されることが多い。例えば、各店舗で発生するPOSデータ、各地の天文台や気象台などで取得される観測データなどである。 In recent years, the amount of data has increased rapidly, and the database has inevitably become larger. In addition, a large database often collects data in various locations. For example, POS data generated at each store, observation data acquired at observatories and meteorological stations in various locations, and the like.
 非特許文献1: Douglas Comer ”The Ubiquitous B-Tree”, Computing Surveys, June 1979, Vol 11, No.2, p121-p137 Non-Patent Document 1: Douglas Comer “The Ubiquitous B-Tree”, Computing Surveys, June 1979, Vol 11, No. 1 2, p121-p137
 従来のインデックスでは、大規模なデータ、分散して取得されるデータには対応しきれていない。 The conventional index cannot handle large-scale data or data obtained in a distributed manner.
 まず、大規模化に伴って切実に要求されるようになる処理速度が十分ではない。例えば、従来のインデックスを用いると、100万行分のデータの検索に約1秒かかるシステムがあるとしよう。1秒なら満足できる。ところが、データが1億行になると、同じ処理速度を維持したとしても100秒かかり、使用に耐えない。また、従来最も頻繁に使用されてきたインデックスであるB-Treeは、動作機構が複雑で、キャッシュにヒットしにくく、大規模データでの速度が出にくい。このため、データ規模が大きくなると、専用のシステムなどを構築し、対応せざるを得ない。 First of all, the processing speed that is urgently required as the scale increases is not sufficient. For example, if a conventional index is used, suppose that there is a system that takes about 1 second to retrieve 1 million rows of data. One second is satisfactory. However, when the data becomes 100 million rows, even if the same processing speed is maintained, it takes 100 seconds and cannot be used. In addition, B-Tree, which is the most frequently used index in the past, has a complicated operation mechanism, is hard to hit the cache, and is difficult to speed up with large-scale data. For this reason, when the data scale becomes large, a dedicated system or the like must be constructed and dealt with.
 また、既存技術ではサーバレス化、データベースの分散化ができない。大規模なデータベースは、上述のように、データが各地で分散収集されることが多いが、従来の検索システムでは、データをサーバに集め、その後、検索等の処理を行う。このような手順となるのは、従来のインデックスが、データベース内のデータに、一意のレコード番号を付与することができないためである。一意のレコード番号はスキーマが異なるデータベース間でも通用する指標であるが、従来のインデックスはこの性質を有しないためにデータを分散管理することが困難となる。従って、検索時は、データを集積したサーバ側で、サーバのCPUばかりを使いながら検索処理を行うこととなり、同時アクセス数の増加につれ、早い段階で検索遅延が発生する。 Also, with existing technology, serverless and database decentralization is not possible. As described above, in a large-scale database, data is often distributed and collected in various places. However, in a conventional search system, data is collected in a server, and thereafter, processing such as search is performed. This is because the conventional index cannot give a unique record number to data in the database. The unique record number is an index that can be used even between databases with different schemas. However, since conventional indexes do not have this property, it is difficult to distribute and manage data. Therefore, at the time of search, the search processing is performed on the server side where data is accumulated while using only the CPU of the server, and a search delay occurs at an early stage as the number of simultaneous accesses increases.
 このサーバ側での処理は、高コスト化と使用環境の制約とをもたらす。通常、1台のサーバでは、せいぜい100万行分のデータしか管理できない。このため、取扱いデータが1億行になると100台のサーバが必要となり、導入費用、管理費用が膨大なものとなるとともに、これらのサーバを設置管理する施設が必要となる。上述のように、専用システムを構築する場合は、尚更である。また、このとき、インデックスそのものの容量も問題となる。例えば、B-Treeは、データベースの格納データ数をnとすると、O(n*log(n))の格納領域を必要とする。インデックスの容量の肥大化は、パフォーマンスの低下にもつながる。 This processing on the server side increases costs and restricts the usage environment. Normally, only one million lines of data can be managed by one server. For this reason, when the handling data reaches 100 million rows, 100 servers are required, the introduction cost and the management cost become enormous, and a facility for installing and managing these servers is required. As mentioned above, it is even more so when building a dedicated system. At this time, the capacity of the index itself also becomes a problem. For example, B-Tree requires a storage area of O (n * log (n)), where n is the number of data stored in the database. An increase in index capacity also leads to a decrease in performance.
 従って、大規模データベースでのインデックスは、データベースが大規模になっても、必要な記憶容量が急激に増大しない性質を有することが望ましい。例えば、データベースの格納データ数をnとすると、そのサイズはO(n)が望ましい。また、サーバレス化し、各地で取得されたデータを、そのまま各地で分散管理し、ネットワークを介して、自在にアクセスできることが望ましい。これらは現状のインデックスでは実現できない。 Therefore, it is desirable that an index in a large-scale database has a property that a necessary storage capacity does not increase rapidly even if the database becomes large. For example, if the number of data stored in the database is n, the size is preferably O (n). In addition, it is desirable that the data is acquired without being server-less, and the data acquired in each place is distributed and managed as it is, and can be freely accessed via the network. These cannot be realized with the current index.
 本発明は、上記事情に鑑みてなされたもので、大規模データベースを、低コストで使用環境の制約なく管理でき、使い勝手のよい環境を提供する技術を提供することを目的とする。 The present invention has been made in view of the above circumstances, and an object of the present invention is to provide a technology that can manage a large-scale database at low cost without restrictions on the use environment and provide an easy-to-use environment.
 本発明は、それぞれ一意のレコード番号を有する複数のレコードが格納されるデータベースから所望のレコードの位置情報を特定するためのインデックスであって、指定された値のレコード番号を返すとともに、所定の項目でソート後の順位に応じたレコード番号を返すインデックスを用いたレコードの位置情報を特定する位置情報特定部を備える情報処理装置を提供する。また、このインデックスのサイズは、元のデータベースサイズに比例的とする。 The present invention is an index for specifying position information of a desired record from a database in which a plurality of records each having a unique record number is stored, and returns a record number of a specified value and a predetermined item An information processing apparatus including a position information specifying unit that specifies position information of a record using an index that returns a record number corresponding to the rank after sorting is provided. The size of this index is proportional to the original database size.
 大規模データベースを、低コストで使用環境の制約なく管理でき、使い勝手のよいデータベース管理環境を提供できる。 大 Large-scale databases can be managed at low cost without restrictions on the usage environment, and an easy-to-use database management environment can be provided.
第一の実施形態のデータベースシステムのブロック図である。It is a block diagram of the database system of a first embodiment. (a)~(d)は、第一の実施形態のデータベースを説明するための説明図である。(A)-(d) is explanatory drawing for demonstrating the database of 1st embodiment. (a)~(d)は、第一の実施形態のデータベースを説明するための説明図である。(A)-(d) is explanatory drawing for demonstrating the database of 1st embodiment. 第一の実施形態の仮想統合データおよび仮想統合ソートデータを説明するための説明図である。It is explanatory drawing for demonstrating the virtual integrated data and virtual integrated sort data of 1st embodiment. 第一の実施形態の情報処理装置の機能ブロック図である。It is a functional block diagram of the information processing apparatus of 1st embodiment. (a)~(c)は、第一の実施形態のデータ項目毎のインデックスファイルを説明するための説明図である。(A)-(c) is explanatory drawing for demonstrating the index file for every data item of 1st embodiment. (a)および(b)は、第一の実施形態のテーブル毎のインデックスファイルを説明するための説明図である。(A) And (b) is explanatory drawing for demonstrating the index file for every table of 1st embodiment. 第一の実施形態の第一探索処理のフローチャートである。It is a flowchart of the 1st search process of 1st embodiment. 第一の実施形態の第二探索処理のフローチャートである。It is a flowchart of the 2nd search process of 1st embodiment. 第一の実施形態の位置情報特定処理のフローチャートである。It is a flowchart of the positional information specific process of 1st embodiment. 第一の実施形態の閲覧処理を説明するための説明図である。It is explanatory drawing for demonstrating the browsing process of 1st embodiment. (a)~(c)は、第二の実施形態のデータ項目毎のインデックスファイルを説明するための説明図である。(A)-(c) is explanatory drawing for demonstrating the index file for every data item of 2nd embodiment. (a)および(b)は、第二の実施形態のテーブル毎のインデックスファイルを説明するための説明図である。(A) And (b) is explanatory drawing for demonstrating the index file for every table of 2nd embodiment.
 本発明の実施形態では、それぞれ一意のレコード番号を有する複数のレコードが格納されるデータベースから所望のレコードの位置情報を特定するためのインデックスであって、指定された値のレコード番号を返すとともに、所定の項目でソート後の順位に応じたレコード番号を返すインデックスを用いたレコードの位置情報を特定する位置情報特定部を備える情報処理装置を提供する。また、このインデックスのサイズは、元のデータベースサイズに比例的とする。 In the embodiment of the present invention, it is an index for specifying position information of a desired record from a database storing a plurality of records each having a unique record number, and returns a record number of a specified value, There is provided an information processing apparatus including a position information specifying unit that specifies position information of a record using an index that returns a record number corresponding to a rank after sorting by a predetermined item. The size of this index is proportional to the original database size.
 具体的には、予め定めたデータ項目毎の項目値を格納するレコードからなるデータベースを管理する情報処理装置であって、検索対象となり得る前記データ項目毎のインデックスファイルと、前記インデックスファイルを用いて、所望のレコードの位置情報を特定する位置情報特定部と、を備え、前記各レコードには、予め一意にレコード番号が付与され、前記位置情報特定部は、前記位置情報として前記レコード番号を特定し、前記データ項目毎のインデックスファイルは、当該データ項目の前記項目値から前記レコード番号を取得でき、かつ、当該データ項目をキー項目としてソートしたソートデータベースの順位から前記レコード番号を取得できるものであることを特徴とする情報処理装置を提供する。 Specifically, an information processing apparatus that manages a database including records that store item values for predetermined data items, using an index file for each data item that can be searched, and the index file A position information specifying unit that specifies position information of a desired record, and each record is uniquely given a record number in advance, and the position information specifying unit specifies the record number as the position information. The index file for each data item can acquire the record number from the item value of the data item, and can acquire the record number from the order of the sort database in which the data item is sorted as a key item. There is provided an information processing apparatus characterized by being.
 このとき、管理対象の前記データベースは複数であり、前記各データベースには、予め一意にデータベースIDが付与され、前記インデックスファイルは、前記データベース毎に生成され、前記ソートデータベースは、前記複数のデータベースを仮想的に統合した仮想統合データベースを、当該データ項目をキー項目としてソートしたものであり、前記位置情報特定部は、前記位置情報として、所望の前記レコードが属する前記データベースの前記データベースIDをさらに特定するものであってもよい。 At this time, there are a plurality of databases to be managed, a database ID is uniquely assigned to each database in advance, the index file is generated for each database, and the sort database includes the plurality of databases. The virtual integrated database virtually integrated is sorted using the data items as key items, and the position information specifying unit further specifies the database ID of the database to which the desired record belongs as the position information. You may do.
 また、前記データ項目毎のインデックスファイルは、当該データ項目に属する一意の項目値を所定順に格納する値リストと、前記値リストの格納順に、前記項目値毎に当該データベース中の累積レコード数を格納する累積数リストと、前記データベースを、当該データ項目をキー項目として前記所定順にソート後の前記レコード番号の並び順を格納するソートリストと、を備えてもよい。 The index file for each data item stores a value list for storing unique item values belonging to the data item in a predetermined order, and the cumulative number of records in the database for each item value in the order in which the value list is stored. And a sort list that stores the order of the record numbers after sorting in the predetermined order using the data item as a key item.
 また、前記データ項目毎のインデックスファイルは、当該データベースを、当該データ項目をキー項目として所定順にソート後の前記レコード番号の並び順を格納するソートリストと、前記データベースの、当該データ項目が備える前記項目値を、当初の並び順で格納する元データリストと、を備えてもよい。 In addition, the index file for each data item includes the database, the data item of the database, the sort list that stores the order of the record numbers after sorting the data item as a key item in a predetermined order, and the data item of the database And an original data list that stores the item values in the initial arrangement order.
 また、前記位置情報特定部は、前記データ項目毎のインデックスファイルを用い、当該データ項目の指定された項目値の位置情報を特定する第一探索部を備えてもよい。
 また、前記位置情報特定部は、前記データ項目毎のインデックスファイルを用い、前記ソートデータベースの、指定された位置の、前記位置情報を特定する第二探索部を備えてもよい。
 前記位置情報特定部は、前記データ項目毎の各項目値について、当該項目値より小さいレコード数および当該項目値に等しいレコード数を、前記データベース毎に算出するレコード数計算部をさらに備えてもよい。
In addition, the position information specifying unit may include a first search unit that uses the index file for each data item and specifies the position information of the specified item value of the data item.
Further, the position information specifying unit may include a second search unit for specifying the position information of a specified position in the sort database using an index file for each data item.
The position information specifying unit may further include, for each item value for each data item, a record number calculation unit that calculates, for each database, the number of records smaller than the item value and the number of records equal to the item value. .
 また、前記位置情報特定部が特定した位置情報に従って、前記データベースから前記所望のレコードを抽出するレコード抽出部をさらに備えてもよい。 Further, a record extracting unit that extracts the desired record from the database according to the position information specified by the position information specifying unit may be further provided.
 また、予め定めたデータ項目ごとの項目値を格納するレコードと、各レコードに一意に付与されたレコード番号とを備えるデータベースにおいて、所望のレコードの位置情報を特定するレコード位置情報特定方法であって、前記データ項目の前記項目値から前記レコード番号を取得でき、かつ、前記データ項目をキー項目として前記データベースをソートしたソートデータベースの順位から前記レコード番号を取得できるインデックスファイルであって、前記データ項目毎に生成されるインデックスファイルを用い、前記所望のレコードの前記レコード番号を特定することにより、前記位置情報を特定する位置情報特定ステップを含むことを特徴とするレコード位置情報特定方法を提供する。 A record position information specifying method for specifying position information of a desired record in a database including a record storing item values for each predetermined data item and a record number uniquely assigned to each record. An index file that can acquire the record number from the item value of the data item, and that can acquire the record number from the order of a sorted database obtained by sorting the database using the data item as a key item, There is provided a record position information specifying method characterized by including a position information specifying step for specifying the position information by specifying the record number of the desired record using an index file generated every time.
 前記位置情報特定ステップは、前記所望のレコードのデータ項目と項目値との指定を受け、当該データ項目の前記インデックスファイルを用い、前記所望のレコードの前記レコード番号を特定する第一探索ステップを備えてもよい。
 また、前記位置情報特定ステップは、前記所望のレコードとして、当該レコードの前記データ項目と前記ソートデータベースにおける順位との指定を受け、当該データ項目の前記インデックスファイルを用い、前記ソートデータベースにおける、前記所望のレコードの前記レコード番号を特定する第二探索ステップを備えてもよい。
 また、前記位置情報特定ステップは、前記第二探索ステップにおいて、前記レコードのデータ項目の各項目値について、当該項目値より小さいレコード数および当該項目値に等しいレコード数を、前記データベース毎に算出するレコード数計算ステップを備えてもよい。
The position information specifying step includes a first search step of specifying a data item and an item value of the desired record and specifying the record number of the desired record using the index file of the data item. May be.
Further, the position information specifying step receives the designation of the data item of the record and the rank in the sort database as the desired record, and uses the index file of the data item, and the desired information in the sort database. A second search step for specifying the record number of the record may be provided.
In the second search step, the position information specifying step calculates, for each database, the number of records smaller than the item value and the number of records equal to the item value for each item value of the data item of the record. A record number calculating step may be provided.
 前記データベースは複数であり、前記各データベースには、予め一意にデータベースIDが付与され、前記インデックスファイルは、前記データベース毎に生成され、前記ソートデータベースは、前記複数のデータベースを仮想的に統合した仮想統合データベースを、当該データ項目をキー項目としてソートした仮想統合ソートデータベースであり、前記位置情報特定ステップでは、前記位置情報として、前記所望のレコードが属する前記データベースの前記データベースIDをさらに特定してもよい。 There are a plurality of databases, a database ID is uniquely assigned to each database in advance, the index file is generated for each database, and the sort database is a virtual integration of the plurality of databases. The integrated database is a virtual integrated sort database in which the data items are sorted as key items. In the position information specifying step, the database ID of the database to which the desired record belongs may be further specified as the position information. Good.
 また、所望のレコードの位置情報を特定する位置情報特定部を備える情報処理装置において、記憶装置に格納された、予め定めたデータ項目毎の項目値を格納するレコードからなるデータベースであって、各レコードには予め一意にレコード番号が付与されているデータベースにおける、予め定めたデータ項目であるターゲット項目の所定の項目値であるターゲット値を有するレコードの位置情報を特定するレコード位置情報特定方法であって、前記記憶装置には、検索対象となり得る前記データ項目毎のインデックスファイルがさらに格納され、前記インデックスファイルは、当該データ項目に属する一意の項目値を所定順に格納する値リストと、前記値リストの格納順に、前記項目値毎に当該データベース中の累積レコード数を格納する累積数リストと、前記データベースを、当該データ項目をキー項目として前記所定順でソート後の前記レコード番号の並び順を格納するソートリストと、を備え、前記ターゲット項目の前記値リストにアクセスし、当該データベースの当該ターゲット項目が、前記ターゲット値を有しているか否かを判別する有無判別ステップと、前記有無判別ステップで有りと判別された場合、前記累積数リストと前記ソートリストとを用い、当該ターゲット値の前記レコード番号を特定し、前記位置情報とするレコード番号特定ステップと、を備えることを特徴とするレコード位置情報特定方法を提供する。 Further, in an information processing apparatus including a position information specifying unit that specifies position information of a desired record, a database including records storing item values for each predetermined data item stored in a storage device, A record position information specifying method for specifying position information of a record having a target value that is a predetermined item value of a target item that is a predetermined data item in a database in which a record number is uniquely assigned in advance. The storage device further stores an index file for each of the data items that can be searched. The index file stores a value list that stores unique item values belonging to the data item in a predetermined order, and the value list. In the storage order, the cumulative number of records in the database is stored for each item value. A cumulative list, and the database, the data list as a key item, a sort list that stores the order of the record numbers after sorting in the predetermined order, and accessing the value list of the target item, The presence / absence determination step for determining whether or not the target item of the database has the target value, and when determined to be present in the presence / absence determination step, using the cumulative number list and the sort list, A record position information specifying method comprising: specifying a record number of the target value and specifying a record number as the position information.
 また、所望のレコードの位置情報を特定する位置情報特定部を備える情報処理装置において、記憶装置に格納された、予め定めたデータ項目毎の項目値を格納するレコードからなり、前記各レコードには予め一意にレコード番号が付与されているデータベースにおける、予め定めたデータ項目であるターゲット項目の所定の項目値であるターゲット値を有するレコードの位置情報を特定するレコード位置情報特定方法であって、前記記憶装置には、検索対象となり得る前記データ項目毎のインデックスファイルがさらに格納され、前記インデックスファイルは、当該データベースを、当該データ項目をキー項目として所定順にソート後の前記レコード番号の並び順を格納するソートリストと、前記データベースの、当該データ項目の前記値を、当初の並び順で格納する元データリストと、を備え、前記ターゲット項目の前記元データリストにアクセスし、当該データベースの当該ターゲット項目が、前記ターゲット値を有しているか否かおよび有している場合、その順位を判別する有無順位判別ステップと、前記有無順位判別ステップで有りと判別された場合、当該元データリストの前記順位を、当該ターゲット値の前記レコード番号として特定し、前記位置情報とするレコード番号特定ステップと、を含むことを特徴とするレコード位置情報特定方法を提供する。 Further, in an information processing apparatus including a position information specifying unit that specifies position information of a desired record, the information storage device includes a record that stores an item value for each predetermined data item stored in a storage device. A record position information specifying method for specifying position information of a record having a target value that is a predetermined item value of a target item that is a predetermined data item in a database in which a record number is uniquely assigned in advance, The storage device further stores an index file for each of the data items that can be searched. The index file stores the order of the record numbers after the database is sorted in a predetermined order using the data item as a key item. Sort list to perform and the value of the data item in the database An original data list stored in an initial arrangement order, accessing the original data list of the target item, and whether or not the target item of the database has the target value If it is determined in the presence / absence rank determination step that determines the rank and the presence / absence rank determination step, the rank of the original data list is specified as the record number of the target value, and the position information And a record number specifying step, wherein the record position information specifying method is provided.
 さらに、所望のレコードの位置情報を特定する位置情報特定部を備える情報処理装置において、記憶装置に格納された、予め定めたデータ項目毎の項目値を格納するレコードからなる複数のデータベースであって、各レコードには予め一意にレコード番号が付与されている複数のデータベースにおける、前記複数のデータベースを仮想的に統合して予め定めたデータ項目をキー項目としてソートした仮想統合ソートデータベース内の仮想的な位置であるターゲット位置のレコードの位置情報を特定するレコード位置情報特定方法であって、前記記憶装置には、前記データベース毎の、検索対象となり得る前記データ項目毎のインデックスファイルがさらに格納され、前記インデックスファイルは、当該データ項目に属する一意の項目値を所定順に格納する値リストと、前記値リストの格納順に、前記項目値毎に当該データベース中の累積レコード数を格納する累積数リストと、前記データベースを、当該データ項目をキー項目として前記所定順でソート後の前記レコード番号の並び順を格納するソートリストと、を備え、前記キー項目の前記値リストと前記累積数リストと前記ソートリストとを用い、前記仮想統合ソートデータベースにおける格納範囲に、前記ターゲット位置を含む探索値を決定する探索値決定ステップと、前記キー項目の前記値リストと前記累積数リストと前記ソートリストとを用い、前記決定した探索値内で前記ターゲット位置に相当する探索値が属するテーブルと、当該テーブル内での順位とを前記位置情報として特定する位置情報特定ステップと、を備えることを特徴とするレコード位置情報特定方法を提供する。 Furthermore, in an information processing apparatus including a position information specifying unit that specifies position information of a desired record, a plurality of databases including records storing item values for each predetermined data item stored in a storage device, Virtual records in a virtual integrated sort database in which a plurality of databases are virtually integrated and sorted as key items in a plurality of databases in which record numbers are uniquely assigned in advance to each record. In the record position information specifying method for specifying the position information of the record of the target position which is a correct position, the storage device further stores an index file for each of the data items that can be searched for each database, The index file stores unique item values belonging to the data item. A value list to be stored in order, a cumulative number list to store the cumulative number of records in the database for each item value in the storage order of the value list, and the database to be sorted in the predetermined order using the data item as a key item A sort list for storing the order of the subsequent record numbers, and using the value list of the key items, the cumulative number list, and the sort list, the storage range in the virtual integrated sort database in the target range A search value determination step for determining a search value including a position, the value list of the key item, the cumulative number list, and the sort list, and a search value corresponding to the target position in the determined search value is A position information specifying step for specifying the table to which the table belongs and the rank in the table as the position information. Providing record position information specifying method according to claim Rukoto.
 所望のレコードの位置情報を特定する位置情報特定部を備える情報処理装置において、記憶装置に格納された、予め定めたデータ項目毎の項目値を格納するレコードからなり、前記各レコードには予め一意にレコード番号が付与されている複数のデータベースにおける、前記複数のデータベースを仮想的に統合して予め定めたデータ項目をキー項目としてソートした仮想統合ソートデータベース内の仮想的な位置であるターゲット位置のレコードの位置情報を特定するレコード位置情報特定方法であって、前記記憶装置には、前記データベース毎の、検索対象となり得る前記データ項目毎のインデックスファイルがさらに格納され、前記インデックスファイルは、当該データベースを、当該データ項目をキー項目として所定順にソート後の前記レコード番号の並び順を格納するソートリストと、前記データベースの、当該データ項目の前記値を、当初の並び順で格納する元データリストと、を備え、前記キー項目の前記ソートリストと前記元データリストとを用い、前記仮想統合ソートデータベースにおける格納範囲に、前記ターゲット位置を含む探索値を決定する探索値決定ステップと、前記キー項目の前記ソートリストと前記元データリストを用い、前記決定した探索値内で前記ターゲット位置に相当する探索値が属するテーブルと、当該テーブル内での順位とを前記位置情報として特定する位置情報特定ステップと、を含むことを特徴とするレコード位置情報特定方法を提供する。 An information processing apparatus including a position information specifying unit that specifies position information of a desired record includes a record that stores an item value for each predetermined data item stored in a storage device. Of a target position which is a virtual position in a virtual integrated sort database obtained by virtually integrating the plurality of databases and sorting predetermined data items as key items in a plurality of databases assigned record numbers to A record position information specifying method for specifying position information of a record, wherein the storage device further stores an index file for each data item that can be searched for each database, and the index file is stored in the database. Are sorted in the specified order using the data item as a key item. A sort list for storing the order of the record numbers; and an original data list for storing the values of the data items in the database in an initial order of order, the sort list for the key items and the source A search value determining step for determining a search value including the target position in a storage range in the virtual integrated sort database, and using the sort list and the original data list of the key item. A record position information specifying method, comprising: a table to which a search value corresponding to the target position in a search value belongs; and a position information specifying step for specifying a rank in the table as the position information. provide.
 予め定めたデータ項目ごとの項目値を格納するレコードと、各レコードに一意に付与されたレコード番号とを備えるデータベースから、所望のレコードを抽出するレコード抽出方法であって、上述のレコード位置情報特定方法で特定した位置情報に従って、前記所望のレコードを抽出するレコード抽出ステップを含むことを特徴とするレコード抽出方法を提供する。 A record extraction method for extracting a desired record from a database comprising a record for storing an item value for each predetermined data item and a record number uniquely assigned to each record. There is provided a record extraction method including a record extraction step of extracting the desired record in accordance with position information specified by the method.
 また、コンピュータを、それぞれ、予め定めたデータ項目毎の値を格納するレコードからなる複数のデータベースであって、各データベースの各レコードには予め一意にレコード番号が付与されているデータベースから、各データベースが備えるインデックスファイルを用いて、所望のレコードの位置情報を特定する位置情報特定手段として機能させる情報処理プログラムであって、前記インデックスファイルは、前記データベースそれぞれから生成され、前記データ項目毎に、当該データ項目の前記項目値から前記レコード番号を取得し、かつ、当該データ項目をキー項目としてソートしたソートデータベースの順位から前記レコード番号を取得するものであることを特徴とする情報処理プログラムを提供する。当該情報処理プログラムは、コンピュータ読み取り可能な記憶媒体に記録されて提供されてもよい。 Further, the computer is a plurality of databases each of which stores values for each predetermined data item, and each database of each database is assigned with a unique record number in advance. An information processing program that functions as position information specifying means for specifying position information of a desired record using an index file included in the index file, wherein the index file is generated from each of the databases, and for each data item, Provided is an information processing program for acquiring the record number from the item value of a data item and acquiring the record number from the rank of a sorted database obtained by sorting the data item as a key item. . The information processing program may be provided by being recorded on a computer-readable storage medium.
 また、ネットワークで接続された、予め定めたデータ項目毎の項目値を格納するレコードからなるデータベースを管理する第一の情報処理装置と、所望の前記レコードの位置情報を特定する第二の情報処理装置と、を備えるデータベースシステムであって、前記第一の情報処理装置は、検索対象となり得る前記データ項目毎のインデックスファイルを備え、前記各レコードには、予め一意にレコード番号が付与され、前記データ項目毎のインデックスファイルは、当該データ項目の前記項目値から前記レコード番号を取得でき、かつ、当該データ項目をキー項目としてソートしたソートデータベースの順位から前記レコード番号を取得できるものであり、前記第二の情報処理装置は、前記位置情報として前記レコード番号を特定することを特徴とするデータベースシステムを提供する。 In addition, a first information processing apparatus that manages a database that is connected via a network and that includes records that store item values for each predetermined data item, and a second information processing that specifies position information of the desired record The first information processing apparatus includes an index file for each data item that can be a search target, and each record is uniquely assigned a record number in advance, The index file for each data item can acquire the record number from the item value of the data item, and can acquire the record number from the order of the sort database in which the data item is sorted as a key item. The second information processing apparatus specifies the record number as the position information. To provide a database system for the butterflies.
 このデータベースシステムにおいて、管理対象の前記データベースは複数であり、前記各データベースには、予め一意にデータベースIDが付与され、前記インデックスファイルは、前記データベース毎に生成され、前記ソートデータベースは、前記複数のデータベースを仮想的に統合した仮想統合データベースを、当該データ項目をキー項目としてソートしたデータベースであり、前記第二の情報処理装置は、前記位置情報として、所望のレコードが属するデータベースの前記データベースIDをさらに特定するよう構成してもよい。このとき、前記管理対象の複数のデータベースのうち、少なくとも1以上のデータベースが、それぞれ前記ネットワークに接続された異なる第一の情報処理装置上に格納されていてもよい。 In this database system, there are a plurality of databases to be managed, a database ID is uniquely assigned to each database in advance, the index file is generated for each database, and the sort database is the plurality of databases. A virtual integrated database obtained by virtually integrating the databases is a database in which the data items are sorted as key items, and the second information processing apparatus uses the database ID of the database to which a desired record belongs as the position information. You may comprise so that it may specify further. At this time, at least one database among the plurality of databases to be managed may be stored on different first information processing apparatuses connected to the network.
 <<第一の実施形態>>
 以下、本発明を適用する実施形態を、図面を用いて説明する。まず、本実施形態のシステム構成を説明する。
<< First Embodiment >>
Hereinafter, embodiments to which the present invention is applied will be described with reference to the drawings. First, the system configuration of this embodiment will be described.
 図1は、本発明の実施形態のデータベースシステム100の概略およびデータベースシステム100が備える情報処理装置の機能ブロックを説明するための図である。本図に示すように、本実施形態では、複数の情報処理装置110-0、110-1、110-2がネットワーク120を介して接続される。以下、各情報処理装置を区別する必要が無い場合は、情報処理装置110で代表する。なお、ここでは、一例として、ネットワーク120に接続される情報処理装置110が3台の場合を示すが、接続される情報処理装置110の数はこれに限られない。 FIG. 1 is a diagram for explaining an outline of a database system 100 according to an embodiment of the present invention and functional blocks of an information processing apparatus provided in the database system 100. As shown in the figure, in this embodiment, a plurality of information processing apparatuses 110-0, 110-1, and 110-2 are connected via a network 120. Hereinafter, when there is no need to distinguish each information processing apparatus, the information processing apparatus 110 represents the information processing apparatus. Here, as an example, the case where three information processing apparatuses 110 are connected to the network 120 is shown, but the number of information processing apparatuses 110 connected is not limited thereto.
 各情報処理装置110は、後述するデータベースを保持するとともに、各情報処理装置110が保持するデータベースを管理するデータ管理装置として機能する。データ管理装置として、例えば、データベースの閲覧機能、検索機能なども提供する。各情報処理装置110は、CPU111とメモリ112と記憶装置113とを備える。また、ネットワーク120を介して、各情報処理装置110間でデータの送受信を可能とするネットワークインタフェース(NWIF)114を備える。また、各情報処理装置110には、情報処理装置110のユーザインタフェースである入力装置115および表示装置116が接続される。さらに、外部記憶装置117が接続されていてもよい。 Each information processing apparatus 110 functions as a data management apparatus that manages a database held by each information processing apparatus 110 while holding a database described later. As a data management device, for example, a database browsing function, a search function, and the like are also provided. Each information processing apparatus 110 includes a CPU 111, a memory 112, and a storage device 113. In addition, a network interface (NWIF) 114 that enables data transmission / reception between the information processing apparatuses 110 via the network 120 is provided. Each information processing device 110 is connected to an input device 115 and a display device 116 which are user interfaces of the information processing device 110. Furthermore, an external storage device 117 may be connected.
 本実施形態では、各情報処理装置110-0、110-1、110-2が、それぞれ、データベース200-0、200-1、200-2を蓄積する。データベースについても、特に区別する必要が無い場合は、表形式データ201で代表する。データベース200は、各情報処理装置110の記憶装置113または外部記憶装置117に蓄積される。 In the present embodiment, the information processing apparatuses 110-0, 110-1, and 110-2 store the databases 200-0, 200-1, and 200-2, respectively. The database is represented by the tabular data 201 when it is not necessary to distinguish between the databases. The database 200 is stored in the storage device 113 or the external storage device 117 of each information processing apparatus 110.
 さらに、本実施形態では、各情報処理装置110-0、110-1、110-2は、それぞれ、データベース200-0、200-1、200-2のインデックスファイル300-0、300-1、300-2を備える。インデックスファイルについても、特に区別する必要が無い場合は、インデックスファイル300で代表する。インデックスファイル300は、各情報処理装置110の記憶装置113またはメモリ112に蓄積される。また、インデックスファイル300は、任意の時間間隔で作成される。例えば、所定量のデータが収集される毎に作成される。 Further, in the present embodiment, the information processing apparatuses 110-0, 110-1, and 110-2 are index files 300-0, 300-1, and 300 of the databases 200-0, 200-1, and 200-2, respectively. -2. If there is no need to distinguish the index file, the index file 300 is representative. The index file 300 is stored in the storage device 113 or the memory 112 of each information processing device 110. The index file 300 is created at an arbitrary time interval. For example, it is created every time a predetermined amount of data is collected.
 次に、各情報処理装置110が蓄積するデータベース200について説明する。本実施形態のデータベースは、構造化された表形式データ、半構造化データ、非構造化データ、いずれであってもよい。 Next, the database 200 stored in each information processing apparatus 110 will be described. The database of the present embodiment may be structured tabular data, semi-structured data, or unstructured data.
 構造化された表形式データ201の例を図2(a)に示す。構造化された表形式データ201は、本図に示すように、1つ以上のデータ項目(列)211に対応した項目値212を含む1つ以上のレコード(行)213の配列である。 An example of structured tabular data 201 is shown in FIG. The structured tabular data 201 is an array of one or more records (rows) 213 including item values 212 corresponding to one or more data items (columns) 211 as shown in FIG.
 各レコード213には、レコード番号(RecNo.)214が付与される。このレコード番号は、表形式データ201の中の、レコードが収容されている位置を表す情報である。このレコード番号は、表形式データ201に、所定のタイミングで付与される。所定のタイミングは、例えば、表形式データ201が作成された時点などとする。本実施形態のデータベース200では、レコード番号を指定することにより、各レコードにアクセスできる。 Each record 213 is given a record number (RecNo.) 214. This record number is information indicating the position where the record is stored in the tabular data 201. This record number is given to the tabular data 201 at a predetermined timing. The predetermined timing is, for example, the time when the tabular data 201 is created. In the database 200 of this embodiment, each record can be accessed by designating a record number.
 一般に、表形式データ201は、レコードが常にレコード番号(RecNo.)214の順番に配列されているとは限らない。たとえば、作成時の表形式データ201(元の表形式データ201と呼ぶ。)を、所定のデータ項目211をキー項目として、その項目値212が昇順に並ぶようにソートすると、ソート後の表形式データ201sのレコードの並び順は、元の表形式データ201のレコードの並び順とは異なる。このような例を図2(b)に示す。図2(b)は、データ項目211「Name」をキー項目として、表形式データ201を昇順にソートした場合のソート結果である。本明細書では、各態様のデータベース200のレコードの並び順を表す情報を、レコード順序番号(順位)215と呼ぶ。元の表形式データ201では、レコード順序番号215は、レコード番号(RecNo.)214に一致する。 Generally, in the tabular data 201, the records are not always arranged in the order of the record numbers (Rec No.) 214. For example, when the tabular data 201 at the time of creation (referred to as the original tabular data 201) is sorted so that the item values 212 are arranged in ascending order using the predetermined data item 211 as a key item, the sorted tabular format The order of records in the data 201 s is different from the order of records in the original tabular data 201. Such an example is shown in FIG. FIG. 2B shows a sorting result when the tabular data 201 is sorted in ascending order using the data item 211 “Name” as a key item. In this specification, information indicating the order of records in the database 200 of each aspect is referred to as a record order number (rank) 215. In the original tabular data 201, the record order number 215 matches the record number (RecNo.) 214.
 なお、図2(a)では、データ項目211として、<Gender>、<Name>、<Age>の3つを備える5つのレコード213を例示する。ここでは、例えば、レコード番号214が0のレコード213の、データ項目211が<Gender>の項目値212は「female」、データ項目211が<Name>の項目値212は「Jemi」、データ項目211が<Age>の項目値212は、「2」である。ただし、本実施形態では、データ項目211の数、レコード213の数はこれに限られない。 2A exemplifies five records 213 including three items <Gender>, <Name>, and <Age> as the data item 211. FIG. Here, for example, in the record 213 with the record number 214 being 0, the item value 212 of the <Generator> data item 211 is “female”, the item value 212 of the <Name> data item 211 is “Jemi”, and the data item 211. The item value 212 of <Age> is “2”. However, in the present embodiment, the number of data items 211 and the number of records 213 are not limited thereto.
 なお、項目値212は、数値データ、テキストデータのいずれであってもよいが一意に順序を付与できるものとする。例えば、データ項目211が<Age>の項目値212として2、1・・といった数値データが格納され、データ項目211が<Name>の項目値212としてJemi、Griza、・・・・といったテキストデータが格納される。 The item value 212 may be either numeric data or text data, but it is assumed that the order can be uniquely assigned. For example, numerical data such as 2, 1,... Is stored as the item value 212 of <Age> in the data item 211, and text data such as Jemi, Griza,... As the item value 212 of the <Name> is stored in the data item 211. Stored.
 なお、図2(c)および図2(d)に示すように、本実施形態の表形式データ201のデータ項目211は、各レコード213に複数の項目値212を格納可能な繰り返し項目であってもよい。ここでは、<Name>のデータ項目211が、繰り返し項目である場合を例示する。なお、繰り返し項目の中に格納される複数の項目値212は、通常順序を問わない。すなわち、図2(c)の表形式データ201と図2(d)に示す表形式データ201とは、論理的に同じとみなされる。 As shown in FIG. 2C and FIG. 2D, the data item 211 of the tabular data 201 of this embodiment is a repeated item that can store a plurality of item values 212 in each record 213. Also good. Here, the case where the data item 211 of <Name> is a repetition item is illustrated. It should be noted that the plurality of item values 212 stored in the repeated item does not matter in the normal order. That is, the tabular data 201 of FIG. 2C and the tabular data 201 shown in FIG. 2D are considered to be logically the same.
 半構造化データ202の例を、図3(a)に示す。半構造化データ202は、基本的に表形式データ201と同様の構成を有する。すなわち、1つ以上のデータ項目211に対応した項目値212を含む1つ以上のレコードの配列である。ただし、半構造化データ202では、データ項目211には、必ず値があることが保証されるデータ項目211と、保証されていないデータ項目211とがある。 An example of the semi-structured data 202 is shown in FIG. The semi-structured data 202 basically has the same configuration as the tabular data 201. That is, it is an array of one or more records including item values 212 corresponding to one or more data items 211. However, in the semi-structured data 202, the data item 211 includes a data item 211 that is guaranteed to have a value and a data item 211 that is not guaranteed.
 図3(a)の例では、<ID>が、必ず値があることが保証されるデータ項目211であり、その他の<name>、<address>、<gender>、<age>、<food>は、保証されていないデータ項目211である。 In the example of FIG. 3A, <ID> is a data item 211 that is guaranteed to have a value, and other <name>, <address>, <gender>, <age>, <food> Is a data item 211 that is not guaranteed.
 非構造化データ203の例を図3(b)に示す。非構造化データ203も、基本的に表形式データ201と同様の構成を有する。すなわち、1つ以上のデータ項目211に対応した項目値212を含む1つ以上のレコード213の配列である。ただし、非構造化データ203では、データが存在することを保証されるデータ項目はない。 An example of the unstructured data 203 is shown in FIG. The unstructured data 203 also basically has the same configuration as the tabular data 201. That is, it is an array of one or more records 213 including item values 212 corresponding to one or more data items 211. However, in the unstructured data 203, there is no data item for which data is guaranteed to exist.
 なお、本実施形態では、半構造化データ203および非構造化データ204は、それぞれ図3(c)および図3(d)に示すように、表形式データ201と同様の構造にマッピングし、処理を行う。なお、値のない項目値212(NULL項目)の取り扱いは、予め定めておく。以下、本実施形態では、NULL項目は、各データ項目211の最小値として取り扱うものとして説明する。 In this embodiment, the semi-structured data 203 and the unstructured data 204 are mapped to a structure similar to that of the tabular data 201 as shown in FIGS. 3C and 3D, respectively. I do. The handling of the item value 212 without a value (NULL item) is determined in advance. Hereinafter, in the present embodiment, the NULL item is described as being handled as the minimum value of each data item 211.
 以下、本実施形態では、データベース200として、NULL項目を有する場合も含め、構造化された表形式データ201が登録されている場合を例にあげて説明する。他の形式のデータであっても、処理は同様である。 Hereinafter, in the present embodiment, a case where structured tabular data 201 is registered as the database 200, including a case where a NULL item is included, will be described as an example. The processing is the same for other types of data.
 また、本実施形態では、表形式データ201は、分散管理されているものとする。以下、本明細書では、各情報処理装置110が備える表形式データ201を、それぞれテーブル(Table)と呼ぶ。各テーブルは、予め一意に識別番号iが付与されるものとする。本実施形態では、表形式データ201-0、201-1、201-2を、それぞれ、識別番号0、1、2が付与された、Table0,Table1,Table2と呼ぶ。なお、本実施形態では、テーブルは、1の情報処理装置110が複数備えていてもよい。また、各テーブルの識別番号iを、テーブルIDと呼ぶ。 In this embodiment, it is assumed that the tabular data 201 is distributedly managed. Hereinafter, in this specification, the tabular data 201 included in each information processing apparatus 110 is referred to as a table. Each table is uniquely assigned an identification number i in advance. In the present embodiment, the tabular data 201-0, 201-1 and 201-2 are referred to as Table 0, Table 1 and Table 2 with identification numbers 0, 1 and 2, respectively. In the present embodiment, a plurality of tables may be provided in one information processing apparatus 110. The identification number i of each table is called a table ID.
 本実施形態の情報処理装置110は、分散管理されているテーブル群から、所望のレコードの位置情報を特定する。分散管理されているテーブル群を、テーブルID順に仮想的に統合したデータベースを、仮想統合データベース(仮想統合DB)と呼ぶ。また、仮想統合DBを、所定のデータ項目をキー項目としてソートしたデータベースを、仮想統合ソートデータベース(仮想統合ソートDB)と呼ぶ。仮想統合ソートDBのレコード順序番号を、仮想行(Vrec)と呼ぶ。 The information processing apparatus 110 according to the present embodiment specifies position information of a desired record from a table group that is distributed and managed. A database obtained by virtually integrating a table group that is distributed and managed in the order of table IDs is referred to as a virtual integrated database (virtual integrated DB). A database in which the virtual integrated DB is sorted using predetermined data items as key items is referred to as a virtual integrated sort database (virtual integrated sort DB). The record order number of the virtual integrated sort DB is called a virtual row (Vrec).
 図4は、仮想統合DBと仮想統合ソートDBを説明するための図である。ここでは、検索対象テーブル群を、テーブル0(Table0)とテーブル1(Table1)とする場合を例示する。本図に示すように、仮想統合DB500は、テーブル0と、テーブル1とをテーブルID順に仮想的に統合したものである。また、仮想統合ソートDB510は、仮想統合DB500を、所定のデータ項目(ここでは、<Name>)をキーとしてソートしたものである。ここで、項目501は、テーブルIDとレコード番号とを示すものである。 FIG. 4 is a diagram for explaining the virtual integrated DB and the virtual integrated sort DB. Here, a case where the search target table group is a table 0 (Table 0) and a table 1 (Table 1) is illustrated. As shown in this figure, the virtual integration DB 500 is a table in which table 0 and table 1 are virtually integrated in the order of table IDs. The virtual integrated sort DB 510 is obtained by sorting the virtual integrated DB 500 using predetermined data items (here, <Name>) as keys. Here, the item 501 indicates a table ID and a record number.
 本例では、テーブル0は、図2(a)に示す表形式データ201であり、レコード数5つの構造化された表形式データである。一方、テーブル1は、レコード数6つで、NULL項目を有する非構造化データである。 In this example, the table 0 is the tabular data 201 shown in FIG. 2A, and is structured tabular data having five records. On the other hand, Table 1 is unstructured data with six records and NULL items.
 本実施形態の情報処理装置110は、ユーザからデータ項目211と所定の項目値212とを指定されると、テーブル群を探索し、当該データ項目211で指定された項目値212を有するレコード213を特定し、位置情報を返す。位置情報は、当該項目値212に等しいレコード213が所属するテーブル(所属テーブル)のテーブルIDと、レコード番号とする。また、ユーザから、仮想統合ソートDB510を生成する際のキー項目とするデータ項目211と、仮想行(Vrec)とを指定されると、当該仮想行(Vrec)のレコード213の位置情報を返す。 When the data item 211 and the predetermined item value 212 are designated by the user, the information processing apparatus 110 according to the present embodiment searches the table group, and records 213 having the item value 212 designated by the data item 211. Identify and return location information. The position information is a table ID and a record number of a table (affiliation table) to which the record 213 equal to the item value 212 belongs. Also, when the user specifies a data item 211 as a key item when generating the virtual integrated sort DB 510 and a virtual row (Vrec), position information of the record 213 of the virtual row (Vrec) is returned.
 これを実現する情報処理装置110の機能を以下に説明する。図5に、上記機能を実現する情報処理装置110の機能ブロック図を示す。本図に示すように、本実施形態の情報処理装置110は、インデックス作成部410と、位置情報特定部420とを備える。これらの各機能は、情報処理装置110が備えるCPU111が、予め記憶装置113に保持するプログラムを、メモリ112にロードして実行することにより実現される。以下、各部の詳細について説明する。 The function of the information processing apparatus 110 that realizes this will be described below. FIG. 5 shows a functional block diagram of the information processing apparatus 110 that realizes the above functions. As shown in the figure, the information processing apparatus 110 of this embodiment includes an index creation unit 410 and a position information identification unit 420. Each of these functions is realized by the CPU 111 included in the information processing apparatus 110 loading a program stored in the storage device 113 in advance into the memory 112 and executing it. Details of each part will be described below.
 インデックス作成部410は、任意の時間間隔で、表形式データ201からインデックスファイル300を作成する。 The index creation unit 410 creates the index file 300 from the tabular data 201 at an arbitrary time interval.
 ここで、本実施形態のインデックス作成部410が作成するインデックスファイル300について説明する。本実施形態のインデックスファイル300は、各情報処理装置110上で管理される表形式データ201から、所望のレコード213の位置を特定する処理を高速化するために設けられる、1以上の要素を備える配列形式の1以上のリストである。 Here, the index file 300 created by the index creation unit 410 of this embodiment will be described. The index file 300 according to the present embodiment includes one or more elements provided to speed up the process of specifying the position of a desired record 213 from the tabular data 201 managed on each information processing apparatus 110. One or more lists in array format.
 図6は、本実施形態のインデックスファイル300を説明するための図である。本実施形態のインデックス作成部410は、分散管理される全てのテーブルについて、それぞれ以下のインデックスファイル300を作成する。ここでは、図2(a)に示す表形式データ201から作成されるインデックスファイル300を例にあげて説明する。 FIG. 6 is a diagram for explaining the index file 300 of the present embodiment. The index creation unit 410 according to the present embodiment creates the following index files 300 for all tables that are distributed and managed. Here, the index file 300 created from the tabular data 201 shown in FIG. 2A will be described as an example.
 インデックスファイル300は、表形式データ201のデータ項目211毎に生成される。インデックスファイル300を作成するデータ項目211を着目項目と呼ぶ。図6(a)は、着目項目が<Gender>の、図6(b)は、着目項目が<Name>の、図6(c)は、着目項目が<Age>の例である。これらの図に示すように、本実施形態のインデックスファイル300は、値リスト(VL)310と、蓄積数リスト(CAGR)320と、ソートリスト(SOS)330と、を備える。各リストは、要素とその位置であるレコード順序番号を示す順位(Ord)とから構成される。各リストは、順位(Ord)を指定することにより、各要素を抽出することができる。また、リストABCの、0から始まる順位jの要素をABC[j]と示す。 The index file 300 is generated for each data item 211 of the tabular data 201. The data item 211 for creating the index file 300 is called an item of interest. 6A shows an example in which the item of interest is <Gender>, FIG. 6B shows an example in which the item of interest is <Name>, and FIG. 6C shows an example in which the item of interest is <Age>. As shown in these drawings, the index file 300 according to the present embodiment includes a value list (VL) 310, an accumulation number list (CAGR) 320, and a sort list (SOS) 330. Each list is composed of an element and a rank (Ord) indicating a record sequence number as its position. Each list can be extracted from each list by specifying the rank (Ord). Further, the element of the rank j starting from 0 in the list ABC is denoted as ABC [j].
 VL310は、着目項目に表れる一意の項目値212を、予め定めた順(例えば、昇順または降順)にソートし、要素として格納したリストである。具体的には、VL310は、表形式データ201を、着目項目をキーとして、予め定めた順にソートし、その結果(ソート後の表形式データ201s)の同一値をサプレスすることにより生成する。 VL310 is a list in which unique item values 212 appearing in the item of interest are sorted in a predetermined order (for example, ascending or descending order) and stored as elements. Specifically, the VL 310 generates the table format data 201 by sorting the table item data 201 in a predetermined order using the item of interest as a key, and suppressing the same value as the result (sorted table format data 201s).
 SOS330は、表形式データ201を、着目項目をキーとしてソートした際のレコード番号214の並び順を要素として格納したものである。ソートは、VL310と同じ同順とする。SOS330を備えることにより、ソート後の項目値212に対応するレコード番号214を自由に取り出すことができる。 The SOS 330 stores the tabular data 201 as an element in the arrangement order of the record numbers 214 when the item of interest is sorted as a key. Sorting is performed in the same order as VL310. By providing the SOS 330, the record number 214 corresponding to the sorted item value 212 can be freely extracted.
 CAGR320は、各項目値212のレコード数の累積値を要素として格納したものである。レコード数の累積は、VL310の順になされる。これは、VL310とSOS330とを関連付けるリストでもある。CAGR320により、VL310の各要素の、SOS330の格納範囲を知ることができる。すなわち、iが0より大きい場合、VL310の要素VL[j]は、SOS330の、[CAGR[j-1],CAGR[j])の区間、すなわち、CAGR[j-1]からCAGR[j]-1の順位に格納される。なお、VL310の要素VL[0]は、SOS330の、[0,CAGR[0])の区間の順位に格納される。以下、本明細書では、区間、範囲を説明する際、閉区間を[]で示し、開区間を()で示す。 CAGR 320 stores an accumulated value of the number of records of each item value 212 as an element. The number of records is accumulated in the order of VL310. This is also a list that associates the VL 310 with the SOS 330. The CAGR 320 can know the storage range of each element of the VL 310 in the SOS 330. That is, when i is larger than 0, the element VL [j] of the VL310 is the section of [CAGR [j-1], CAGR [j]) of the SOS 330, that is, CAGR [j-1] to CAGR [j] Stored in order of -1. Note that the element VL [0] of the VL310 is stored in the rank of the section [0, CAGR [0]) of the SOS330. Hereinafter, in the present specification, when a section and a range are described, a closed section is indicated by [] and an open section is indicated by ().
 例えば、図6(b)の例では、VLの順位1の要素「Grizza」について説明する。CAGR320の順位0の要素は「1」であり、CAGR320の順位1の要素は「3」である。従って、「Grizza」は、SOS330の順位[1、3)の範囲、すなわち、順位[1,2]の範囲に格納される。 For example, in the example of FIG. 6B, the element “Grizza” of VL rank 1 will be described. The element of rank 0 of CAGR 320 is “1”, and the element of rank 1 of CAGR 320 is “3”. Therefore, “Grizza” is stored in the range of the rank [1, 3) of the SOS 330, that is, the range of the rank [1, 2].
 また、インデックスファイル300の各リストは、テーブル毎に作成される。図7(a)および図7(b)に、着目項目が<Name>の場合のインデックスファイル300例を示す。図7(a)がテーブル0のインデックスファイル300であり、図7(b)がテーブル1のインデックスファイル300である。 Also, each list of the index file 300 is created for each table. FIGS. 7A and 7B show an example of an index file 300 when the item of interest is <Name>. 7A shows the index file 300 of the table 0, and FIG. 7B shows the index file 300 of the table 1.
 次に、位置情報特定部420について説明する。位置情報特定部420は、ユーザからの指示に従って、インデックスファイル300を用い、テーブル群を探索し、所定のレコードの位置情報を特定する。これを実現するため、本実施形態の位置情報特定部420は、データ項目211と所定の項目値212とが指定されたことを受け、当該データ項目211の項目値212を有するレコードを探索し、位置情報を特定する第一探索部421と、ソートキー項目とするデータ項目211と仮想行(Vrec)とが指定されたことを受け、当該仮想行(Vrec)のレコードを探索し、位置情報を特定する第二探索部422と、指定されたレコード数を計算するレコード数計算部423と、を備える。 Next, the position information specifying unit 420 will be described. The position information specifying unit 420 searches the table group using the index file 300 in accordance with an instruction from the user, and specifies position information of a predetermined record. In order to realize this, the position information specifying unit 420 according to the present embodiment searches for a record having the item value 212 of the data item 211 in response to the designation of the data item 211 and the predetermined item value 212, In response to the designation of the first search unit 421 for specifying the position information, the data item 211 as the sort key item, and the virtual row (Vrec), the record of the virtual row (Vrec) is searched and the position information is specified. A second search unit 422 that calculates the number of records specified, and a record number calculation unit 423 that calculates the specified number of records.
 本実施形態のレコード数計算部423は、以下の式(1)および式(2)で示す2つの関数を用意し、第一探索部421および第二探索部422が位置情報を探索する際、以下の式(3)および式(6)で示すレコード数を計算する。算出は、指定されたデータ項目211の、VL310、CAGR320、SOS330を用いて行う。以下、テーブル(i)の各リストを、それぞれ、VL(i)、CAGR(i)、SOS(i)と呼ぶ。 The record number calculation unit 423 of the present embodiment prepares two functions represented by the following expressions (1) and (2), and when the first search unit 421 and the second search unit 422 search for position information, The number of records shown by the following formulas (3) and (6) is calculated. The calculation is performed using the VL310, CAGR320, and SOS330 of the designated data item 211. Hereinafter, each list of the table (i) is referred to as VL (i), CAGR (i), and SOS (i), respectively.
Figure JPOXMLDOC01-appb-M000001
式(1)で得られるCLTP(i)[j]は、VL(i)の順位jの項目値より小さい値に属するレコード数である。
Figure JPOXMLDOC01-appb-M000002
式(2)で得られるCEQP(i)[j]は、VL(i)の順位jの項目値と等しい値に属するレコード数である。
Figure JPOXMLDOC01-appb-M000001
CLTP (i) [j] obtained by Expression (1) is the number of records belonging to a value smaller than the item value of the order j of VL (i).
Figure JPOXMLDOC01-appb-M000002
CEQP (i) [j] obtained by Expression (2) is the number of records belonging to a value equal to the item value of rank j of VL (i).
Figure JPOXMLDOC01-appb-M000003
式(3)で得られるCLTV(i)<x>は、テーブルiの、予め定めた項目値xより小さい値に属するレコード数である。なお、式(3)において、case1は、項目値xがVL(i)に存在する場合であり、jは、項目値xのVL(i)内の順位である。また、case2は、項目値xがVL(i)に存在しない場合であって、jは、VL(i)の項目値の中に、xより小さい値が存在する場合の、その最大の項目値の順位とする。また、case3は、項目値xがVL(i)に存在しない場合であって、かつ、VL(i)の項目値の中に、xより小さい値が存在しない場合である。
Figure JPOXMLDOC01-appb-M000003
CLTV (i) <x> obtained by Expression (3) is the number of records belonging to a value smaller than a predetermined item value x in the table i. In Expression (3), case1 is a case where the item value x exists in VL (i), and j is a rank in the VL (i) of the item value x. Case 2 is a case where the item value x does not exist in VL (i), and j is the maximum item value when a value smaller than x exists in the item value of VL (i). The order of Case 3 is a case where the item value x does not exist in VL (i), and a value smaller than x does not exist in the item value of VL (i).
Figure JPOXMLDOC01-appb-M000004
式(4)で得られるCEQV(i)<x>は、テーブルiの、予め定めた項目値xと等しい値に属するレコード数である。なお、(4)において、case1は、項目値xがVL(i)に存在する場合であり、jは、項目値xのVL(i)内の順位とする。また、case2は、項目値xがVL(i)に存在しない場合である。
Figure JPOXMLDOC01-appb-M000004
CEQV (i) <x> obtained by Expression (4) is the number of records belonging to a value equal to the predetermined item value x in the table i. In (4), case1 is a case where the item value x exists in VL (i), and j is a rank in the VL (i) of the item value x. Case 2 is a case where the item value x does not exist in VL (i).
Figure JPOXMLDOC01-appb-M000005
式(5)で得られるCALTV<x>は、仮想統合DB500および仮想統合ソートDB510における、予め定めた項目値xより小さい値に属するレコード数である。
Figure JPOXMLDOC01-appb-M000005
CALTV <x> obtained by Expression (5) is the number of records belonging to a value smaller than a predetermined item value x in the virtual integrated DB 500 and the virtual integrated sort DB 510.
Figure JPOXMLDOC01-appb-M000006
式(6)で得られるCAEQV<x>は、仮想統合DB500および仮想統合ソートDB510における、予め定めた項目値xと等しい値に属するレコード数である。
Figure JPOXMLDOC01-appb-M000006
CAEQV <x> obtained by Expression (6) is the number of records belonging to a value equal to a predetermined item value x in the virtual integrated DB 500 and the virtual integrated sort DB 510.
 次に、本実施形態の第一探索部421の処理を説明する。上述のように、第一探索部421は、ユーザからデータ項目211と項目値とが与えられると、分散管理対象のテーブル内の位置情報を返す。すなわち、値から、当該値を有するレコードの、テーブルIDとレコード番号とを特定する。 Next, processing of the first search unit 421 of the present embodiment will be described. As described above, when the data item 211 and the item value are given by the user, the first search unit 421 returns the position information in the distribution management target table. That is, the table ID and record number of the record having the value are specified from the value.
 具体的には、各テーブルiについて、テーブルID順に、当該データ項目211を着目項目とするインデックスファイル300の中のVL(i)を探索し、指定された項目値の有無、および、有りの場合はその位置を特定する。VL(i)の探索は、2分割法などを用いて行う。そして、VL(i)内で指定された項目値が有る場合は、CAGR(i)、SOS(i)を用い、上記手法で、そのレコード番号を特定する。 Specifically, for each table i, in the order of table ID, the search is performed for VL (i) in the index file 300 having the data item 211 as the target item, and the presence / absence of the specified item value is present. Identifies its location. The search for VL (i) is performed using a bisection method or the like. When there is an item value specified in VL (i), the record number is specified by the above method using CAGR (i) and SOS (i).
 図8は、本実施形態の第一探索部421による第一探索処理の処理フロー例である。なお、ここでは、探索対象とするテーブル数をM(Mは1以上の整数)とする。探索対象とするテーブル群は、予め定められているものとする。また、このとき、探索結果は、記憶装置113内の第一探索結果格納領域に格納されるものとする。 FIG. 8 is a processing flow example of the first search process by the first search unit 421 of the present embodiment. Here, the number of tables to be searched is M (M is an integer of 1 or more). It is assumed that the table group to be searched is determined in advance. At this time, the search result is stored in the first search result storage area in the storage device 113.
 本図に示すように、ユーザから、探索対象のデータ項目211(Target Item:TI)と項目値212(Target Value:TV)とが与えられると、まず、探索するテーブルIDを初期化する(i=0)とともに、第一探索結果格納領域を初期化する(ステップS1101)。そして、テーブルiのデータ項目TIのインデックスファイル300にアクセスする。 As shown in this figure, when a search target data item 211 (Target Item: TI) and an item value 212 (Target Value: TV) are given by the user, first, a table ID to be searched is initialized (i = 0) and the first search result storage area is initialized (step S1101). Then, the index file 300 of the data item TI of the table i is accessed.
 まず、VL(i)にアクセスし、項目値TVを探索する(ステップS1102)。ここでは、2分割法などを用い、探索する。VL(i)に項目値TVが存在する場合、その順位を抽出し、CAGR(i)にアクセスし、上述の手法で、項目値TVのSOS(i)での格納範囲を特定する(ステップS1103)。得られた格納範囲に従ってSOS(i)にアクセスし、項目値TVのレコード番号214を得る(ステップS1104)。得られたレコード番号214を、探索中のテーブルのテーブルIDに対応づけて、第一探索結果格納領域に追加保存する(ステップS1105)。 First, VL (i) is accessed and the item value TV is searched (step S1102). Here, the search is performed using a bisection method or the like. If the item value TV exists in VL (i), the rank is extracted, CAGR (i) is accessed, and the storage range of the item value TV in SOS (i) is specified by the above-described method (step S1103). ). According to the obtained storage range, the SOS (i) is accessed, and the record number 214 of the item value TV is obtained (step S1104). The obtained record number 214 is additionally stored in the first search result storage area in association with the table ID of the table being searched (step S1105).
 その後、全てのテーブルの処理を終えるまで、次のテーブルのインデックスファイル(i)にアクセスし、ステップS1102からの処理を繰り返す(ステップS1106、1107)。 Thereafter, the index file (i) of the next table is accessed until the processing of all tables is completed, and the processing from step S1102 is repeated (steps S1106 and 1107).
 一方、ステップS1102において、VL(i)に項目値TVが存在しない場合、そのままステップS1106に移行し、処理を繰り返す。 On the other hand, if the item value TV does not exist in VL (i) in step S1102, the process proceeds to step S1106 as it is and the process is repeated.
 全てのテーブルの処理を終えると、第一探索結果格納領域に保存されるテーブルIDとレコード番号との組を、位置情報として出力する(ステップS1108)。 When all the tables have been processed, a set of table ID and record number stored in the first search result storage area is output as position information (step S1108).
 以上の第一探索部421による第一探索処理を、図7を用い、具体例で説明する。例えば、データ項目211として<Name>が、項目値として「Sillabub」が指定されたものとする。まず、テーブル0のVL(0)にアクセスし、「Sillabub」の有無を判別する。テーブル0には、この項目値はないため、次にテーブル1に移る。そして、テーブル1で、同様にVL(1)にアクセスし、順位として4を得る。CAGR(0)にアクセスし、その格納範囲として[4,5]を得る。そして、SOS(0)にアクセスし、レコード番号1、2を得る。最終的に探索結果として、テーブル1のレコード番号1、2を出力する。 The first search process by the first search unit 421 described above will be described with reference to FIG. For example, it is assumed that <Name> is designated as the data item 211 and “Sillarub” is designated as the item value. First, VL (0) in table 0 is accessed to determine whether or not “Sillarub” exists. Since table 0 does not have this item value, it moves to table 1 next. Then, in the table 1, VL (1) is similarly accessed, and 4 is obtained as the rank. CAGR (0) is accessed and [4, 5] is obtained as its storage range. Then, SOS (0) is accessed, and record numbers 1 and 2 are obtained. Finally, record numbers 1 and 2 of Table 1 are output as search results.
 次に、本実施形態の第二探索部422の処理を説明する。上述のように、第二探索部422は、ユーザからキー項目と仮想統合ソートDB510の仮想行(Vrec)とを指定されると、該当レコードの位置情報を返す。すなわち、仮想統合ソートDB510の指定仮想行TPのレコードの、テーブルIDとレコード番号214とを特定する。 Next, processing of the second search unit 422 of this embodiment will be described. As described above, when the key item and the virtual row (Vrec) of the virtual integrated sort DB 510 are designated by the user, the second search unit 422 returns the position information of the corresponding record. That is, the table ID and the record number 214 of the record of the designated virtual row TP of the virtual integrated sort DB 510 are specified.
 具体的には、テーブルID順に、VL310にアクセスし、所定の位置(例えば、中央付近)の値を抽出し、仮の探索値(仮探索値)とし、仮探索値の、仮想統合ソートDB510における仮想行(仮仮想行)を得る。得られた仮仮想行と指定仮想行とを比較し、両者が一致するまで、探索を繰り返す。そして、一致した仮探索値の位置情報を算出する。 Specifically, the VL 310 is accessed in the order of the table ID, and a value at a predetermined position (for example, near the center) is extracted as a temporary search value (provisional search value). A virtual row (provisional virtual row) is obtained. The obtained virtual virtual line is compared with the designated virtual line, and the search is repeated until they match. Then, the position information of the matching provisional search value is calculated.
 なお、仮探索値の仮仮想行は、上記レコード数計算部423による式(5)および式(6)で算出する。すなわち、仮仮想行(順位)の範囲は、[CALTV<仮探索値>、CALTV<仮探索値>+CAEQV<仮探索値>)である。すなわち、CALTV<仮探索値>からCALTV<仮探索値>+CAEQV<仮探索値>-1である。 Note that the temporary virtual row of the temporary search value is calculated by Expression (5) and Expression (6) by the record number calculation unit 423. In other words, the range of the temporary virtual row (rank) is [CALTV <provisional search value>, CALTV <provisional search value> + CAEQV <provisional search value>). That is, CALTV <provisional search value> to CALTV <provisional search value> + CAEQV <provisional search value> -1.
 図9は、本実施形態の第二探索部422による第二探索処理の処理フロー例である。なお、ここでは、探索対象とするテーブル数をM(Mは1以上の整数)とする。また、このとき、記憶装置113内の、探索結果を格納する領域を第二探索結果格納領域とする。また、仮探索値として抽出した値を保持する領域を、仮探索値格納領域とする。 FIG. 9 is a processing flow example of the second search process by the second search unit 422 of the present embodiment. Here, the number of tables to be searched is M (M is an integer of 1 or more). At this time, an area for storing the search result in the storage device 113 is set as a second search result storage area. Further, an area that holds the value extracted as the temporary search value is set as a temporary search value storage area.
 ユーザから指定仮想行としてTPが与えられると、まず、探索するテーブル番号および第二探索結果格納領域を初期化する(ステップS1201)。そして、テーブルiの、仮想統合ソートDB510作成時のキー項目TIの、インデックスファイル300にアクセスする。 When TP is given as a designated virtual row by the user, first, the table number to be searched and the second search result storage area are initialized (step S1201). Then, the index file 300 of the key item TI when creating the virtual integrated sort DB 510 in the table i is accessed.
 まず、VL(i)にアクセスし、予め定めた規則に従って仮探索値vpを決定する(ステップS1202)。ここでは、上述のように、例えば、中央値を抽出する。このとき、仮探索値vpの、当該VL(i)における順位をjとする。また、決定した仮探索値vpおよび順位jを、仮探索値格納領域に追加登録する(ステップS1203)。そして、レコード数計算部423に、仮探索値vpの仮想行(仮仮想行)の範囲を算出させる(ステップS1204)。 First, VL (i) is accessed, and the provisional search value vp is determined according to a predetermined rule (step S1202). Here, for example, the median is extracted as described above. At this time, the rank of the temporary search value vp in the VL (i) is j. Further, the determined provisional search value vp and rank j are additionally registered in the provisional search value storage area (step S1203). Then, the record number calculation unit 423 is caused to calculate the range of the virtual row (temporary virtual row) of the temporary search value vp (step S1204).
 指定仮想行TPと仮仮想行の範囲とを比較する(ステップS1205)。指定仮想行TPが、仮仮想行の範囲内であれば、仮探索値vpが、仮想行の値VTPであると決定する(ステップS1209)。そして、値VTPの中の、仮想行TPのテーブルIDとレコード番号とを特定する位置情報特定処理を行い(ステップS1210)、処理を終了する。 The designated virtual row TP is compared with the range of the temporary virtual row (step S1205). Designated virtual line TP is within the range of the temporary virtual line, temporary search value vp is, determines that the value V TP of the virtual line (Step S1209). Then, in the value V TP, performs position information specifying process of specifying a table ID and a record number of the virtual line TP (step S1210), the process ends.
 一方、指定仮想行TPが仮仮想行の範囲外である場合、予め定めた規則に従って、テーブルi内で新たな仮探索値を決定可能か判断する(ステップS1206)。ここでは、例えば、指定仮想行TPが、仮仮想行の最小値より小さい場合、VL(i)内の仮探索値vpと、仮探索値格納領域に既に格納されている仮探索値で、仮探索値vpより小さい値の中の最大値と、の間で決定する。一方、指定仮想行TPが仮仮想行の最大値より大きい場合、VL(i)内の仮探索値vpと、仮探索値格納領域に格納されている仮探索値で、仮探索値vpより大きい値の中の最小値との間で決定する。 On the other hand, if the designated virtual row TP is outside the range of the temporary virtual row, it is determined whether a new temporary search value can be determined in the table i according to a predetermined rule (step S1206). Here, for example, when the designated virtual row TP is smaller than the minimum value of the temporary virtual row, the temporary search value vp in VL (i) and the temporary search value already stored in the temporary search value storage area are used. It is determined between the maximum value among the values smaller than the search value vp. On the other hand, when the designated virtual row TP is larger than the maximum value of the temporary virtual row, the temporary search value vp in VL (i) and the temporary search value stored in the temporary search value storage area are larger than the temporary search value vp. Decide between the smallest of the values.
 決定可能な場合、新たな仮探索値vpを決定し(ステップS1207)、ステップS1203へ移行し、処理を繰り返す。 If it can be determined, a new temporary search value vp is determined (step S1207), the process proceeds to step S1203, and the process is repeated.
 一方、新たな仮探索値vpを、上記範囲で決定できない場合、次のテーブルに移行し(ステップS1208)、ステップS1202から処理を繰り返す。 On the other hand, when the new temporary search value vp cannot be determined within the above range, the process moves to the next table (step S1208), and the process is repeated from step S1202.
 次に、本実施形態の第二探索部422による、上記位置情報特定処理の流れを説明する。ここでは、テーブルID順に、仮想行TPに相当するレコードが、当該テーブルに属するか否かを判別し、属する場合、その中のレコード番号を決定する。これらの判別および決定には、レコード数計算部423による計算結果を用いる。図10は、第二探索部422による本実施形態の位置情報特定処理の処理フロー例である。 Next, the flow of the position information specifying process by the second search unit 422 of the present embodiment will be described. Here, it is determined whether or not the record corresponding to the virtual row TP belongs to the table in order of the table ID, and if it belongs, the record number is determined. For the determination and determination, the calculation result by the record number calculation unit 423 is used. FIG. 10 is a processing flow example of the position information specifying process of the present embodiment by the second search unit 422.
 まず、所属するテーブルのテーブルIDを決定する所属テーブル決定処理を行う。ここでは、テーブルID順に(ステップS1301)、i以下のテーブルが有する、値VTPに等しい値のレコードの総数AC(i)<VTP>を算出する(ステップS1302)。AC(i)は、以下の式(7)で算出する。
First, affiliation table determination processing for determining the table ID of the table to which the affiliation belongs is performed. Here, in the order of table ID (step S1301), the total number AC (i) <V TP > of records having a value equal to the value V TP included in the table below i is calculated (step S1302). AC (i) is calculated by the following equation (7).
 そして、当該テーブルiの項目値VTPに等しい値を有するレコードの中の順位が最大のレコードの、仮想統合ソートDB510内の順位POS(i)<VTP>(算出仮想行)を決定する。このPOS(i)<VTP>は、項目値VTPより小さい値のレコード総数CALTV<VTP>に、AC(i)<VTP>を加算する、以下の式(8)により得られる(ステップS1303)。
Figure JPOXMLDOC01-appb-M000008
Then, the rank POS (i) <V TP > (calculated virtual row) in the virtual integrated sort DB 510 of the record having the largest rank among the records having a value equal to the item value V TP of the table i is determined. This POS (i) <V TP > is obtained by the following formula (8) in which AC (i) <V TP > is added to the total number of records CALTV <V TP > having a value smaller than the item value V TP ( Step S1303).
Figure JPOXMLDOC01-appb-M000008
 その後、算出された仮想行POS(i)<VTP>と指定された仮想行TPとの大小を比較する(ステップS1304)。その結果、POS(i)<VTP>が仮想行TP以上の場合、仮想行TPに対応するレコードの所属テーブルは、テーブルiと決定する(ステップS1305)。 Thereafter, the calculated virtual row POS (i) <V TP > is compared with the designated virtual row TP (step S1304). As a result, when POS (i) <V TP > is greater than or equal to the virtual row TP, the affiliation table of the record corresponding to the virtual row TP is determined as the table i (step S1305).
 ステップS1304で、算出された仮想行が指定された仮想行TPより小さい場合、次のテーブルに移り(ステップS1310)、ステップS1302に戻り、処理を繰り返す。 In step S1304, if the calculated virtual row is smaller than the designated virtual row TP, the process moves to the next table (step S1310), returns to step S1302, and repeats the process.
 一方、所属テーブルiが決定すると、以下の式を用い、仮想行TPに相当するレコードの、テーブルi内のレコード番号(RecNo.)を算出するレコード番号算出処理を行う。 On the other hand, when the affiliation table i is determined, a record number calculation process for calculating a record number (RecNo.) In the table i of the record corresponding to the virtual row TP is performed using the following formula.
 レコード番号算出処理では、まず、仮想統合ソートDB510の、テーブルiの項目値VTPに等しい値に属するレコードの、直前のレコードの位置を算出する(ステップS1306)。これは、POS(i-1)<VTP>である。なお、i=0のときは、CALTV<VTP>とする。 Record number calculation processing, first, calculates the virtual integration sorting DB 510, the records belonging to a value equal to the item value V TP table i, the position immediately before the record (step S1306). This is POS (i−1) <V TP >. When i = 0, CALTV <V TP > is set.
 そして、テーブルi内の項目値VTPに等しい値に属するレコードの中で、仮想行TPに相当するレコードのレコード順位AAを算出する(ステップS1307)。これは、仮想行TPから、POS(i-1)<VTP>(または、CALTV<VTP>)を減算した値から、さらに1を減算したものとして得られる。 Then, the record order AA of the record corresponding to the virtual row TP among the records belonging to the value equal to the item value VTP in the table i is calculated (step S1307). This is obtained by subtracting 1 from the value obtained by subtracting POS (i−1) <V TP > (or CALTV <V TP >) from the virtual row TP.
 そして、SOS(i)内での順位Ordを算出する(ステップS1308)。テーブルi内の項目値VTPより小さい値に属するレコード数CLTV(i)<VTP>に、レコード順AAを加算した値が、SOS(i)の位置(順位Ord)を示す。すなわち、BB=CLTV(i)<VTP>+AAとすると、仮想行TPに相当するレコードの、SOS(i)内の位置(順位Ord)は、BBで表される。 Then, the order Ord in SOS (i) is calculated (step S1308). A value obtained by adding the record order AA to the number of records CLTV (i) <V TP > belonging to a value smaller than the item value V TP in the table i indicates the position (order Ord) of SOS (i). That is, when BB = CLTV (i) <V TP > + AA, the position (rank Ord) in the SOS (i) of the record corresponding to the virtual row TP is represented by BB.
 そして、SOS(i)[BB]の要素を、レコード番号(RecNo.)として決定し(ステップS1309)、処理を終了する。 Then, the element of SOS (i) [BB] is determined as the record number (RecNo.) (Step S1309), and the process is terminated.
 以下、本実施形態の第二探索処理を、図4および図7を用い、具体例で説明する。キー項目として<Name>、仮想行(Vrec)TPとして、5が指定されたものとする。 Hereinafter, the second search process of the present embodiment will be described using a specific example with reference to FIGS. 4 and 7. It is assumed that <Name> is specified as the key item and 5 is specified as the virtual row (Vrec) TP.
 第二探索部422は、図7に示す着目項目がNameのインデックスファイル300にアクセスする。まず、テーブル0のVL(0)にアクセスし、例えば、順位が2の「Jemi」を仮探索値vpに抽出する。そして、レコード数計算部423により、仮想統合ソートDB510での「Jemi」の順位の範囲を得る。ここでは、[6,7]と得る。 The second search unit 422 accesses the index file 300 in which the item of interest shown in FIG. First, VL (0) of the table 0 is accessed, and for example, “Jemi” having a rank of 2 is extracted as the temporary search value vp. Then, the record number calculation unit 423 obtains the range of the rank of “Jemi” in the virtual integrated sort DB 510. Here, [6, 7] is obtained.
 指定された仮想行TPはこの範囲外で、より小さい値であるため、VL(0)において、仮探索値vpとして、より小さい値を抽出し直す。例えば、「Grizza」をvpとする。「Grizza」の仮想統合ソートDB510での順位の範囲として、同様に、[3、5]を得る。仮想行TPが範囲内であるため、仮仮想値vp「Grizza」を、仮想行の値VTPとする。 Since the designated virtual row TP is a smaller value outside this range, a smaller value is extracted again as the temporary search value vp in VL (0). For example, “Grizza” is set to vp. Similarly, [3, 5] is obtained as the range of rank in the virtual integrated sort DB 510 of “Grizza”. Since the virtual row TP is within the range, the temporary virtual value vp “Grizza” is set as the virtual row value V TP .
 次に、テーブルを決定する。ここでは、まず、テーブル0までの、「Grizza」の数を算出し、2を得る。また、仮想統合ソートDB510の「Grizza」より小さい値の総数(CALTV<Grizza>)は3である。よって、テーブル0の「Grizza」の最大順位のものの、仮想統合ソートDB510における仮想行は、4となる。 Next, determine the table. Here, first, the number of “Grizza” up to Table 0 is calculated, and 2 is obtained. Further, the total number of values smaller than “Grizza” (CALTV <Grizza>) in the virtual integrated sort DB 510 is 3. Therefore, the virtual row in the virtual integrated sort DB 510 with the highest rank of “Grizza” in the table 0 is 4.
 仮想行TPと比較すると、算出された仮想行の方が小さいため、次のテーブル1に移行し、同様の処理を行う。テーブル1の「Grizza」の最大順位のものの、仮想統合ソートDB510における仮想行として、5を得る。これは、仮想行TP以下の値であるため、仮想行TPのレコードの所属テーブルは1と決定する。 Since the calculated virtual row is smaller than the virtual row TP, the process moves to the next table 1 and performs the same processing. As a virtual row in the virtual integrated sort DB 510 for the one with the highest rank of “Grizza” in Table 1, 5 is obtained. Since this is a value less than or equal to the virtual row TP, the affiliation table of the record of the virtual row TP is determined as 1.
 最後に、レコード番号を決定する。仮想統合ソートDB510において、テーブル1の「Grizza」の直前のレコードの順位として、4を得る。テーブル1内の、指定仮想行TPに相当する「Grizza」の順位AAは0となる。テーブル1内で、「Grizza」より小さい値のレコード数(CLTV<Grizza>)は2であるため、SOS(1)の順位2の要素が、指定仮想行TPの「Grizza」のレコード番号となる。 Finally, determine the record number. In the virtual integrated sort DB 510, 4 is obtained as the rank of the record immediately before “Grizza” in Table 1. The rank AA of “Grizza” corresponding to the designated virtual row TP in the table 1 is 0. In Table 1, since the number of records having a value smaller than “Grizza” (CLTV <Grizza>) is 2, the element of rank 2 of SOS (1) becomes the record number of “Grizza” in the designated virtual row TP. .
 なお、本実施形態では、位置情報として、所属するテーブルのテーブルIDと、レコード番号とを出力するよう構成しているが、これに限られない。例えば、各テーブルのレコード数を用い、テーブルID順に全テーブルの全レコードに、連番のレコード番号(統合レコード番号)を付与し、統合レコード番号を返すよう構成してもよい。統合レコード番号は、自身のテーブルよりテーブルIDの小さいテーブルの総レコード数を、自身のテーブルのレコード番号に加算したものとなる。 In the present embodiment, the table ID of the table to which the table belongs and the record number are output as the position information. However, the present invention is not limited to this. For example, using the number of records in each table, sequential record numbers (integrated record numbers) may be assigned to all records in all tables in the order of table ID, and the integrated record numbers may be returned. The integrated record number is obtained by adding the total number of records in a table having a table ID smaller than the own table to the record number of the own table.
 なお、上記実施形態では、複数のデータベースを探索対象とする場合を例にあげて説明したが、探索対象とするデータベース数は1つであってもよい。ただし、データベース数が1つの場合、第一探索部421および第二探索部422は、当該データベースのインデックスファイル300内のみを検索し、位置情報としてレコード番号のみを返す。 In the above embodiment, the case where a plurality of databases are set as search targets has been described as an example. However, the number of databases set as search targets may be one. However, when the number of databases is one, the first search unit 421 and the second search unit 422 search only the index file 300 of the database and return only the record number as the position information.
 すなわち、単一データベースに対し、本実施形態のインデックスファイル300を用い、所定のデータ項目と項目値とを指定することにより当該項目値を有するレコードのレコード番号を得ることができる。また、所定のデータ項目をキー項目としてソート後のデータベースの所定の行を指定することにより、当該レコードのレコード番号を得ることができる。 That is, by using the index file 300 of the present embodiment for a single database and specifying a predetermined data item and item value, the record number of the record having the item value can be obtained. Moreover, the record number of the record can be obtained by designating a predetermined row of the sorted database using a predetermined data item as a key item.
 また、上記実施形態では、各情報処理装置110が、インデックス作成部110および位置情報特定部420を備える場合を例にあげて説明したが、これに限られない。位置情報特定部420は、データベースを保持する情報処理装置110とは独立した情報処理装置であって、データベースを保持する各情報処理装置110とデータの送受信が可能な情報処理装置が備えていてもよい。インデックス作成部110についても同様である。この場合、位置情報特定部420を備える情報処理装置110から、所望のデータベース200およびそのインデックスファイル300を備える情報処理装置110にアクセスし、上記位置情報特定部420による処理を実行する。 In the above embodiment, the case where each information processing apparatus 110 includes the index creation unit 110 and the position information identification unit 420 has been described as an example. However, the present invention is not limited to this. The position information specifying unit 420 is an information processing apparatus independent of the information processing apparatus 110 that holds the database, and may be provided with an information processing apparatus that can transmit and receive data to and from each information processing apparatus 110 that holds the database. Good. The same applies to the index creation unit 110. In this case, the information processing apparatus 110 including the position information specifying unit 420 accesses the information processing apparatus 110 including the desired database 200 and the index file 300, and executes the processing by the position information specifying unit 420.
 また、統合し、データを探索する対象のデータベースを、ユーザが選択するよう構成してもよい。ユーザが選択する場合、ユーザに選択可能なデータベースの一覧を表示し、その中から受け付けるよう構成してもよい。 Also, the user may select a database to be integrated and search for data. When the user selects, a list of databases that can be selected by the user may be displayed and received from the list.
 また、本実施形態において、第一探索処理を行う対象のデータ項目211および項目値212の指定は、ユーザが行うよう構成してもよい。この場合、ユーザからデータ項目211および項目値212の指定を受け付けるユーザインタフェース画面を提供するよう構成してもよい。第二探索処理も同様に、第二探索処理を行う指定仮想行TPの指示をユーザが行うよう構成してもよい。この場合、ユーザから仮想行TPの指示を受け付けるユーザインタフェース画面を提供するよう構成してもよい。 In the present embodiment, the user may specify the data item 211 and the item value 212 to be subjected to the first search process. In this case, you may comprise so that the user interface screen which receives designation | designated of the data item 211 and the item value 212 from a user may be provided. Similarly, in the second search process, the user may instruct the designated virtual row TP for performing the second search process. In this case, you may comprise so that the user interface screen which receives the instruction | indication of virtual row TP from a user may be provided.
 また、本実施形態の情報処理装置110は、さらに、表示制御部を備えていてもよい。表示制御部は、第一探索部421または第二探索部422が特定した位置情報に従って、当該テーブルにアクセスしてレコードを抽出し、表示装置116の表示領域に表示する。すなわち、表示制御部は、レコード抽出機能と表示機能とを実現する。 In addition, the information processing apparatus 110 according to the present embodiment may further include a display control unit. The display control unit accesses the table according to the position information specified by the first search unit 421 or the second search unit 422, extracts records, and displays them in the display area of the display device 116. That is, the display control unit implements a record extraction function and a display function.
 これにより、例えば、特定の項目値を指定した検索処理を実現できる。検索処理は、以下のように実現される。ユーザが指定したデータ項目211において、ユーザが指定した項目値212を有するレコードの位置情報を第一探索部421が特定する。第一探索部421が特定した位置情報に従って、表示制御部が、当該レコードを各テーブルから抽出し、表示装置116の表示領域に表示する。 Thus, for example, a search process in which a specific item value is specified can be realized. The search process is realized as follows. In the data item 211 specified by the user, the first search unit 421 specifies the position information of the record having the item value 212 specified by the user. In accordance with the position information specified by the first search unit 421, the display control unit extracts the record from each table and displays it on the display area of the display device 116.
 また、仮想統合ソートDB510の閲覧処理を実現できる。閲覧処理は、以下のように実現される。ユーザが指定した仮想行TPを含む所定数の仮想行それぞれのレコードの位置情報を第二探索部422が特定する。ここでは、図11に示すように、表示装置116の表示領域に表示可能な行数(ここでは、L行)の仮想行の位置情報を特定する。第二探索部422が特定した位置情報に従って、表示制御部がこれらのレコードを各テーブルiから抽出し、仮想行順に表示装置116の表示領域に表示させる。例えば、スクロール操作などにより、ユーザが指定する仮想行TPが変更される毎にこの一連の処理を行い、表示を更新する。 Also, browsing processing of the virtual integrated sort DB 510 can be realized. The browsing process is realized as follows. The second search unit 422 specifies the position information of each record of a predetermined number of virtual rows including the virtual row TP designated by the user. Here, as shown in FIG. 11, the position information of the virtual rows of the number of rows (here, L rows) that can be displayed in the display area of the display device 116 is specified. In accordance with the position information specified by the second search unit 422, the display control unit extracts these records from each table i and displays them in the display area of the display device 116 in the order of virtual rows. For example, each time the virtual row TP designated by the user is changed by a scroll operation or the like, this series of processing is performed to update the display.
 以上説明したように、本実施形態のデータベース200は、特定のデータ項目211において項目値212が指定されると当該項目値212に属するレコードの位置情報を返し、また、仮想統合ソートDB510の仮想行TPが指定されると、当該仮想行TPの位置情報を返すインデックスファイル300を備える。そして、位置情報特定部420は、このインデックスファイル300を用いてユーザが指定するレコードを探索し、その位置情報を特定する。特に、データベース200が分散管理されていたとしても、仮想的に統合し、ソートした状態の、指定された順位のレコードの、位置情報を返すことができる。 As described above, when the item value 212 is specified in the specific data item 211, the database 200 of this embodiment returns the position information of the record belonging to the item value 212, and the virtual row of the virtual integrated sort DB 510 When TP is designated, an index file 300 is provided that returns position information of the virtual row TP. Then, the position information specifying unit 420 searches for a record designated by the user using the index file 300, and specifies the position information. In particular, even if the database 200 is managed in a distributed manner, it is possible to return position information of records in a specified order in a virtually integrated and sorted state.
 従って、本実施形態によれば、ユーザは、データベースが単一であっても、複数のデータベースに分散管理されていても、本実施形態のインデックスファイル300により、容易に、所望のレコードを探索し、その位置情報を特定することができる。 Therefore, according to the present embodiment, a user can easily search for a desired record using the index file 300 of the present embodiment, regardless of whether the database is single or distributed and managed in a plurality of databases. The position information can be specified.
 これにより、上述のように、分散管理されているデータベースであっても、容易に、全データベースの中から、所望の値を抽出する検索処理を実現できる。さらに、容易に、全データベースを仮想的に統合し、ソートした状態での閲覧処理を実現できる。また、検索処理、閲覧処理時に仮想的な統合で済み、実際に統合する必要がないため、実際に全てのデータベースをコピーし、一元管理する必要がない。このため、コピーのための時間も不要となり、かつ、一元管理のための巨大なメモリ領域を用意する必要もない。 Thus, as described above, even for a database that is distributed and managed, it is possible to easily realize a search process for extracting a desired value from all databases. Furthermore, it is possible to easily integrate the entire database and realize browsing processing in a sorted state. Further, since virtual integration is only required during search processing and browsing processing, and there is no need for actual integration, there is no need to actually copy and centrally manage all databases. For this reason, the time for copying becomes unnecessary, and it is not necessary to prepare a huge memory area for centralized management.
 また、従来、大量データベースの検索に用いられていたB木等のインデックスの使用領域は、元となるデータベースのデータ量が大きくなるに従って、加速度的に増加(O(nlog(n))する。これに比べ、本実施形態のインデックスファイル300のサイズは、元のデータベースのサイズに比例的(O(n))である。このため、元のデータベースのサイズが膨大であっても、記憶領域を大幅に圧迫することがない。 In addition, the use area of an index such as a B-tree conventionally used for searching a large amount of database increases (O (nlog (n)) at an accelerated rate as the amount of data in the original database increases. The index file 300 of this embodiment is proportional to the size of the original database (O (n)), so that even if the size of the original database is enormous, the storage area is greatly increased. There is no pressure on you.
 また、本実施形態のインデックスファイル300を構成する各リスト内の要素には、いずれも順位(Ord)でアクセスできる。また、上記探索をインデックスファイル300の検索のみにより実現している。このため、探索のために事前分散管理されているサイト間の通信量も抑えられる。従って、レコードの探索、抽出時に通信量が増大することがない。 In addition, all the elements in each list constituting the index file 300 of this embodiment can be accessed in order (Ord). Further, the above search is realized only by searching the index file 300. For this reason, the amount of communication between sites that are pre-distributed and managed for searching can be suppressed. Therefore, the communication amount does not increase when searching and extracting records.
 従って、大規模データベースであっても、また、そのデータベースが分散管理されていたとしても、大容量のデータの送受信がないため、専用の通信網を用意しなくてもよい。このため、本実施形態によれば、インターネットなどの既存のネットワークを用いて、データベースシステムを構築可能である。 Therefore, even if it is a large-scale database, and even if the database is distributedly managed, there is no need to prepare a dedicated communication network because there is no transmission / reception of a large amount of data. For this reason, according to this embodiment, it is possible to construct a database system using an existing network such as the Internet.
 また、本実施形態のインデックスファイル300は、上述のような簡易な構成であるため、データベース種を問わず、作成が可能である。このため、管理対象のデータベース種を問わず、容易に所望のデータの位置の特定および抽出が可能となる。また、検索のための事前設計も不要である。 In addition, since the index file 300 of the present embodiment has a simple configuration as described above, it can be created regardless of the database type. Therefore, it is possible to easily specify and extract the position of desired data regardless of the database type to be managed. In addition, prior design for searching is not necessary.
 従って、本実施形態によれば、大規模なデータベースであっても、分散管理されていても、容易に、高速に、使用環境の制約もなく、汎用のハードウェア、汎用の通信網上で、小規模サイズ、ミドルサイズのデータベースと同様に取り扱うことができる。 Therefore, according to the present embodiment, even if it is a large-scale database, distributedly managed, easily, at high speed, without restrictions on the use environment, on general-purpose hardware and a general-purpose communication network, It can be handled in the same way as a small-sized or middle-sized database.
 すなわち、本実施形態のインデックスファイル300は、非常に高速な検索を実現でき、1兆レコードに及ぶデータベースを現実的に構築できる、といった大規模性を有する。さらに、本実施形態のインデックスファイル300は、スキーマが異なるデータベース間でも通用する指標である一意のレコード番号を有するため、広域分散性を有し、互いに地球の裏側にあるようなデータベース間の連携も可能である。また、本実施形態によれば、サーバを必要としない。すなわち、クライアントのCPUを用いて検索が行われる。このため、クライアント数の増加に連れて投入されるCPU数が増え、多数のクライアントを無理なく接続することができる。また、サーバレスであるため、サーバ装置及びサーバソフトが不要で低コストでデータベースシステムを構築できる。 That is, the index file 300 according to the present embodiment has a large scale such that a very high-speed search can be realized and a database of 1 trillion records can be practically constructed. Furthermore, since the index file 300 of the present embodiment has a unique record number that is an index that can be used even between databases with different schemas, the index file 300 has wide-area dispersibility, and cooperation between databases that are behind each other is also possible. Is possible. Moreover, according to this embodiment, a server is not required. That is, a search is performed using the client CPU. For this reason, the number of CPUs to be added increases as the number of clients increases, and a large number of clients can be connected without difficulty. Further, since it is serverless, a server system and server software are unnecessary, and a database system can be constructed at a low cost.
 <<第二の実施形態>>
 次に、本発明を適用する第二の実施形態を説明する。第一の実施形態とは、同機能ではあるが、異なるインデックスを用いる。
<< Second Embodiment >>
Next, a second embodiment to which the present invention is applied will be described. Although it is the same function as 1st embodiment, a different index is used.
 本実施形態のデータベースシステムは、基本的に図1に示す、第一の実施形態のデータベースシステム100と同様である。また、データベースシステム100の各装置も同様である。ただし、上述のように、インデックスファイル300が異なる。従って、情報処理装置110内の、インデックスファイル300の構成が異なるとともに、インデックス作成部410および位置情報特定部420の処理が異なる。また、適用可能なデータベース種も異なる。以下、本実施形態について、第一の実施形態と異なる構成に主眼をおいて説明する。 The database system of this embodiment is basically the same as the database system 100 of the first embodiment shown in FIG. The same applies to each device of the database system 100. However, the index file 300 is different as described above. Therefore, the configuration of the index file 300 in the information processing apparatus 110 is different, and the processes of the index creation unit 410 and the position information identification unit 420 are different. The applicable database types are also different. Hereinafter, the present embodiment will be described focusing on the configuration different from the first embodiment.
 本実施形態の情報処理装置110の機能構成は、基本的に図5に示す第一の実施形態と同様に、インデックス作成部410と、位置情報特定部420とを備える。そして、位置情報特定部420は、第一の実施形態同様、第一探索部421と、第二探索部422と、レコード数計算部423とを備える。 The functional configuration of the information processing apparatus 110 according to the present embodiment basically includes an index creating unit 410 and a position information specifying unit 420 as in the first embodiment shown in FIG. And the positional information specific | specification part 420 is provided with the 1st search part 421, the 2nd search part 422, and the record number calculation part 423 like 1st embodiment.
 本実施形態のインデックス作成部410は、第一の実施形態同様、任意の時間間隔で、表形式データ201からインデックスファイル300を作成する。例えば、所定量のデータが収集される毎に作成する。ただし、作成するインデックスファイル300が異なる。 The index creation unit 410 according to the present embodiment creates the index file 300 from the tabular data 201 at an arbitrary time interval, as in the first embodiment. For example, it is created every time a predetermined amount of data is collected. However, the index file 300 to be created is different.
 本実施形態のインデックス作成部410が作成するインデックスファイル300について説明する。図12は、本実施形態のインデックスファイル300を説明するための図である。本実施形態のインデックス作成部410は、分散管理される全てのテーブルについて、それぞれ、以下のインデックスファイル300を作成する。また、本実施形態のインデックスファイル300も、第一の実施形態同様、表形式データ201の各データ項目211に対して作成される、1以上の要素を備える配列形式の1以上のリストである。第一の実施形態同様、インデックスファイル300を作成するデータ項目211を、着目項目と呼ぶ。 The index file 300 created by the index creation unit 410 of this embodiment will be described. FIG. 12 is a diagram for explaining the index file 300 of the present embodiment. The index creation unit 410 according to the present embodiment creates the following index files 300 for all tables that are distributed and managed. The index file 300 of this embodiment is also one or more lists in an array format including one or more elements created for each data item 211 of the tabular data 201, as in the first embodiment. As in the first embodiment, the data item 211 for creating the index file 300 is referred to as a focused item.
 ここでは、第一の実施形態の図2(a)に示す表形式データ201から作成されるインデックスファイル300を例にあげて説明する。図12(a)は、着目項目が<Gender>の、図12(b)は、着目項目が<Name>の、図12(c)は、着目項目が<Age>の例である。これらの図に示すように、インデックスファイル300は、ソートリスト(SOS)330と、元となるテーブルの着目項目のデータにより構成されるリスト(元データリスト:ORG)340と、を備える。各リストは、要素とその位置を示す順位(Ord)とから構成される。各リストは、順位(Ord)を指定することにより、各要素を抽出することができる。また、また、リストABCの、0から始まる順位jの要素をABC[j]と示す。なお、SOS330の構成および作成手法は第一の実施形態と同様である。 Here, the index file 300 created from the tabular data 201 shown in FIG. 2A of the first embodiment will be described as an example. 12A is an example in which the item of interest is <Gender>, FIG. 12B is an example in which the item of interest is <Name>, and FIG. 12C is an example in which the item of interest is <Age>. As shown in these drawings, the index file 300 includes a sort list (SOS) 330 and a list (original data list: ORG) 340 composed of data of an item of interest in the original table. Each list includes an element and a rank (Ord) indicating its position. Each list can be extracted from each list by specifying the rank (Ord). Further, the element of the rank j starting from 0 in the list ABC is denoted as ABC [j]. The configuration and creation method of the SOS 330 are the same as those in the first embodiment.
 また、本実施形態においても、インデックスファイル300の各リストは、テーブル毎に作成される。図13(a)および図13(b)に、着目項目が<Name>の場合の、インデックスファイル300例を示す。図13(a)がテーブル0のインデックスファイル300であり、図13(b)がテーブル1のインデックスファイル300である。 Also in this embodiment, each list of the index file 300 is created for each table. FIG. 13A and FIG. 13B show an example of the index file 300 when the item of interest is <Name>. 13A shows the index file 300 of the table 0, and FIG. 13B shows the index file 300 of the table 1.
 次に、本実施形態で適用可能なデータベースについて説明する。本実施形態では、インデックスファイル300として、SOS330と、ORG340とを用いる。このため、本実施形態では、第一の実施形態同様、構造化データ、半構造化データおよび非構造化データのいずれであってもよい。ただし、いずれの形式のデータベースであっても、各データ項目に格納する項目値は1つとする。 Next, databases applicable in the present embodiment will be described. In the present embodiment, SOS 330 and ORG 340 are used as the index file 300. For this reason, in the present embodiment, any of structured data, semi-structured data, and unstructured data may be used, as in the first embodiment. However, in any type of database, one item value is stored in each data item.
 次に、本実施形態の位置情報特定部420について説明する。本実施形態の位置情報特定部420も、第一の実施形態同様、ユーザからの指示に従って、位置情報を特定する。第一探索部421は、データ項目211と所定の項目値212とが指定されたことを受け、当該データ項目211の項目値212を有するレコードを探索し、位置情報を特定する。また、第二探索部422は、ソートキー項目とするデータ項目211と仮想行(Vrec)とが指定されたことを受け、仮想統合ソートDB510の、当該仮想行(Vrec)のレコードを探索し、位置情報を返す。 Next, the position information specifying unit 420 of this embodiment will be described. Similarly to the first embodiment, the position information specifying unit 420 of this embodiment also specifies position information in accordance with an instruction from the user. In response to the designation of the data item 211 and the predetermined item value 212, the first search unit 421 searches for a record having the item value 212 of the data item 211 and identifies position information. Further, the second search unit 422 searches for the record of the virtual row (Vrec) in the virtual integrated sort DB 510 in response to the designation of the data item 211 and the virtual row (Vrec) as the sort key items, and the position Returns information.
 まず、第一探索部421による第一探索処理を説明する。本実施形態の第一探索処理も、第一の実施形態同様、指定された値を有するレコードの位置情報を探索し、特定する。本実施形態の第一探索部421は、探索対象のデータ項目211(Target Item:TI)と項目値212(Target Value:TV)とを指定されると、テーブルID順にORG340を探索する。探索は、2分割法等の従来の探索法を用いる。 First, the first search process by the first search unit 421 will be described. Similarly to the first embodiment, the first search process of this embodiment searches for and specifies position information of a record having a specified value. When the search target data item 211 (Target Item: TI) and the item value 212 (Target Value: TV) are specified, the first search unit 421 of this embodiment searches the ORG 340 in the order of the table ID. The search uses a conventional search method such as a two-division method.
 本実施形態の第一探索部421は、ヒットする毎に、第一探索結果格納領域に、当該レコードの順位(Ord)をレコード番号として、レコード番号とテーブルIDとを追加保存する。 The first search unit 421 according to the present embodiment additionally stores the record number and the table ID in the first search result storage area with the order (Ord) of the record as the record number every time it hits.
 以下、本実施形態の第一探索処理を、図13を用い、具体例で説明する。例えば、データ項目211として<Name>が、項目値212として「Sillabub」が指定されたものとする。まず、テーブル0のORG340にアクセスし、2分割法で「Sillabub」の有無を判別する。テーブル0には、この値はないため、次にテーブル1に移る。そして、テーブル1で、同様にORG340にアクセスし、順位として、1と2とを得る。これをレコード番号として、テーブルIDに対応づけて第一探索結果格納領域に格納し、最終的に出力する。 Hereinafter, the first search process of the present embodiment will be described using a specific example with reference to FIG. For example, it is assumed that <Name> is specified as the data item 211 and “Silllab” is specified as the item value 212. First, the ORG 340 of the table 0 is accessed, and the presence / absence of “Sillabub” is determined by the two-division method. Since table 0 does not have this value, it moves to table 1 next. Then, in the table 1, the ORG 340 is similarly accessed, and 1 and 2 are obtained as ranks. This is stored as a record number in the first search result storage area in association with the table ID, and finally output.
 次に、本実施形態の第二探索部422の第二探索処理を説明する。本実施形態の第二探索処理も、第一の実施形態同様、ユーザからキー項目と仮想統合ソートDB510の仮想行(Vrec)とを指定されると、該当レコードの位置情報を返す。すなわち、仮想統合ソートDB510の指定仮想行TPのレコードの、テーブルIDとレコード番号214とを特定する。 Next, the second search process of the second search unit 422 of this embodiment will be described. Similarly to the first embodiment, the second search process of the present embodiment also returns position information of the corresponding record when a key item and a virtual row (Vrec) of the virtual integrated sort DB 510 are designated by the user. That is, the table ID and the record number 214 of the record of the designated virtual row TP of the virtual integrated sort DB 510 are specified.
 このとき、本実施形態では、テーブルID順に、ORG340にアクセスし、所定の位置(例えば、中央付近)の値を抽出し、仮の探索値(仮探索値)とし、仮探索値の、仮想統合ソートDB510における仮想行(仮仮想行)を得る。得られた仮仮想行と指定仮想行とを比較し、両者が一致するまで、探索を繰り返す。そして、一致した仮探索値の位置情報を算出する。 At this time, in the present embodiment, the ORG 340 is accessed in the order of the table ID, and a value at a predetermined position (for example, near the center) is extracted to obtain a provisional search value (provisional search value). A virtual row (temporary virtual row) in the sort DB 510 is obtained. The obtained virtual virtual line is compared with the designated virtual line, and the search is repeated until they match. Then, the position information of the matching provisional search value is calculated.
 従って、本実施形態の第二探索処理の流れは、基本的に第一の実施形態の図9および図10に示す第二探索処理と同様である。ただし、ステップS1202における最初の仮探索値vpの決定手法、ステップS1203で仮探索値格納領域に格納する情報、および、ステップS1206における新たな仮探索値vpの決定手法が異なる。 Therefore, the flow of the second search process of the present embodiment is basically the same as the second search process shown in FIGS. 9 and 10 of the first embodiment. However, the determination method of the initial temporary search value vp in step S1202, the information stored in the temporary search value storage area in step S1203, and the determination method of the new temporary search value vp in step S1206 are different.
 また、本実施形態では、レコード数計算部423による、上記第二探索処理において用いる、テーブル(i)内の値xより小さい値に属するレコード数を示すCLTV(i)<x>と、同xに等しい値に属するレコード数を示すCEQV(i)<x>との算出法が第一の実施形態と異なる。本実施形態の第二探索処理の説明に先立ち、本実施形態のレコード数計算部423による上記各レコード数算出処理について説明する。 In the present embodiment, CLTV (i) <x> indicating the number of records belonging to a value smaller than the value x in the table (i) used in the second search process by the record number calculation unit 423 is the same as the x The calculation method of CEQV (i) <x> indicating the number of records belonging to a value equal to is different from the first embodiment. Prior to the description of the second search process of this embodiment, the above-described record number calculation process by the record number calculation unit 423 of this embodiment will be described.
 本実施形態のレコード数計算部423は、値xが指定されると、ORG(i)を探索し、テーブル(i)内の順位(Ord)を取得する。ここでは、2分割法などを用いて算出し、1つの順位(Ord)が指定されるまで、探索を行う。 The record number calculation unit 423 according to the present embodiment searches for ORG (i) and acquires the rank (Ord) in the table (i) when the value x is designated. Here, the calculation is performed using a two-division method or the like, and the search is performed until one rank (Ord) is designated.
 ここで、値xがORG(i)内で検出されない場合、当該テーブルiのCLTV(i)<x>およびCEQV(i)<x>を、ともに0とする。 Here, when the value x is not detected in ORG (i), CLTV (i) <x> and CEQV (i) <x> of the table i are both set to 0.
 一方、1つの順位(Ord)が検出されると、SOS(i)を探索し、値xのSOS(i)内での格納範囲[e1、e2]を特定する。ここでは、検出された順位Ordxを要素に持つレコードの前後のレコードのORG(i)の要素を判別することにより決定する。 On the other hand, when one rank (Ord) is detected, SOS (i) is searched, and the storage range [e1, e2] in SOS (i) of the value x is specified. Here, it is determined by discriminating the elements of ORG (i) of the records before and after the record having the detected rank Ordx as an element.
 このとき、CLTV(i)<x>は、格納範囲の最小順位の値e1で得られ、CEQV(i)<x>は、格納範囲内の個数、すなわち、最大順位e2から最小順位e1を減算した値に1を足した値として得られる。 At this time, CLTV (i) <x> is obtained with the value e1 of the minimum order of the storage range, and CEQV (i) <x> subtracts the minimum order e1 from the number in the storage range, that is, the maximum order e2. It is obtained as a value obtained by adding 1 to the obtained value.
 なお、第二探索処理において用いる、仮想統合DB500における、値xより小さい値に属するレコード数CALTV<x>、および、値xに等しい値に属するレコード数CAEQV<x>の算出法は、第一の実施形態と同様である。 The calculation method of the number of records CALTV <x> belonging to a value smaller than the value x and the number of records CAEQV <x> belonging to a value equal to the value x in the virtual integrated DB 500 used in the second search process is as follows. This is the same as the embodiment.
 次に、本実施形態の第二探索処理の詳細を説明する。ここでは、図9に示す、第一の実施形態の第二探索処理の処理フロー例に従って、第一の実施形態と異なる処理に主眼をおいて説明する。 Next, details of the second search process of this embodiment will be described. Here, according to the example of the processing flow of the second search process of the first embodiment shown in FIG.
 ステップS1202において、本実施形態では、各テーブルiにおいて、最初の仮探索値vpを以下の手順で決定する。すなわち、まず、SOS(i)にアクセスし、所定の位置(例えば、中央付近)の要素(ElementA)を抽出する。そして、ORG340にアクセスし、要素(ElementA)を順位(Ord)に持つレコードの要素(ValueB)を抽出し、仮探索値vpとする。 In step S1202, in the present embodiment, the first provisional search value vp is determined in the following procedure in each table i. That is, first, SOS (i) is accessed, and an element (ElementA) at a predetermined position (for example, near the center) is extracted. Then, the ORG 340 is accessed, and the element (ValueB) of the record having the element (ElementA) in the rank (Ord) is extracted and set as the provisional search value vp.
 また、ステップS1203において、本実施形態では、仮探索値vpと、ORG(i)における順位(Ord)と、当該仮探索値vpのSOS(i)での順位(Ord)も併せて保存する。 In step S1203, the temporary search value vp, the rank (Ord) in ORG (i), and the rank (Ord) of the temporary search value vp in SOS (i) are also stored in this embodiment.
 さらに、ステップS1206において、新たな仮探索値vpは、SOS(i)内で2分割法を行い、順次決定する。このとき、指定仮想行TPが、仮仮想行の最小値より小さい場合、現在の仮探索値vpのSOS(i)での順位と、仮探索値格納領域に既に格納されている仮探索値で、現在の仮探索値vpより小さい値の中の最大値のSOS(i)での順位と、の間で決定する。一方、指定仮想行TPが、仮仮想行の最大値より大きい場合、現在の仮探索値vpのSOS(i)での順位と、仮探索値格納領域に既に格納されている仮探索値で、現在の仮探索値vpより大きい値の中の最小値のSOS(i)での順位と、の間で決定する。 Further, in step S1206, the new provisional search value vp is sequentially determined by performing the bisection method in SOS (i). At this time, when the designated virtual row TP is smaller than the minimum value of the temporary virtual row, the rank of the current temporary search value vp in SOS (i) and the temporary search value already stored in the temporary search value storage area are used. The maximum value among the values smaller than the current provisional search value vp and the rank in the SOS (i) are determined. On the other hand, when the designated virtual row TP is larger than the maximum value of the temporary virtual row, the rank of the current temporary search value vp in SOS (i) and the temporary search value already stored in the temporary search value storage area are: It is determined between the rank in the SOS (i) of the minimum value among the values larger than the current provisional search value vp.
 以下、本実施形態の第二探索処理の具体例を、図4および図13(a)、(b)を用いて説明する。ここでは、キー項目として<Name>、仮想行(Vrec)TPとして、5が指定されたものとする。 Hereinafter, a specific example of the second search process according to the present embodiment will be described with reference to FIGS. 4 and 13A and 13B. Here, it is assumed that <Name> is designated as the key item and 5 is designated as the virtual row (Vrec) TP.
 第二探索部422は、まず、図13(a)に示す、テーブル0の、着目項目がNameのインデックスファイル300にアクセスする。そして、SOS(0)にアクセスし、例えば、順位が3の要素0を抽出する。そして、ORG(0)にアクセスし、順位が0の要素「Jemi」を仮探索値vpとして抽出する。 First, the second search unit 422 accesses the index file 300 whose table of interest is Name in Table 0 shown in FIG. Then, SOS (0) is accessed, and for example, element 0 having a rank of 3 is extracted. Then, ORG (0) is accessed, and the element “Jemi” with rank 0 is extracted as the provisional search value vp.
 そして、仮想統合ソートDB510での「Jemi」の順位の範囲を得る。ここでは、[6,7]と得る。仮想行TPはこの範囲外で、より小さい値であるため、SOS(0)において、仮探索値vpとして、より小さい順位の値を抽出し直す。例えば、順位が1の要素1を抽出し、ORG(0)にアクセスし、順位が1の要素「Grizza」を新たな仮探索値vpとする。 Then, the range of the ranking of “Jemi” in the virtual integrated sort DB 510 is obtained. Here, [6, 7] is obtained. Since the virtual row TP is a smaller value outside this range, a value having a smaller rank is re-extracted as the temporary search value vp in SOS (0). For example, element 1 with rank 1 is extracted, ORG (0) is accessed, and element “Grizza” with rank 1 is set as a new temporary search value vp.
 同様に、仮想統合ソートDB510での「Grizza」の順位の範囲として、[3、5]を得る。仮想行TPが範囲内であるため、「Grizza」を、仮想行の値VTPとする。 Similarly, [3, 5] is obtained as the range of the rank of “Grizza” in the virtual integrated sort DB 510. Since the virtual row TP is within the range, “Grizza” is set as the value V TP of the virtual row.
 次に、テーブルを決定する。ここでは、まず、テーブル0までの、「Grizza」の数を算出し(CALTV<Grizza>)、2を得る。また、仮想統合ソートDB510の「Grizza」より小さい値の総数(CALTV<Grizza>)は3である。よって、テーブル0の「Grizza」の最大順位のものの、仮想統合ソートDB510における仮想行は、4となる。 Next, determine the table. Here, first, the number of “Grizza” up to Table 0 is calculated (CALTV <Grizza>), and 2 is obtained. Further, the total number of values smaller than “Grizza” (CALTV <Grizza>) in the virtual integrated sort DB 510 is 3. Therefore, the virtual row in the virtual integrated sort DB 510 with the highest rank of “Grizza” in the table 0 is 4.
 仮想行TPと比較すると、算出された仮想行の方が小さいため、次のテーブル1に移行し、同様の処理を行う。テーブル1の「Grizza」の最大順位のものの、仮想統合ソートDB510における仮想行として、5を得る。これは、仮想行TP以下の値であるため、仮想行TPのレコードの所属テーブルは1と決定する。 Since the calculated virtual row is smaller than the virtual row TP, the process moves to the next table 1 and performs the same processing. As a virtual row in the virtual integrated sort DB 510 for the one with the highest rank of “Grizza” in Table 1, 5 is obtained. Since this is a value less than or equal to the virtual row TP, the affiliation table of the record of the virtual row TP is determined as 1.
 最後に、レコード番号を決定する。仮想統合ソートDB510において、テーブル1の「Grizza」の直前のレコードの順位として、4を得る。テーブル1内の、指定仮想行TPに相当する「Grizza」の順位AAとして、0を得る。テーブル1内で、「Grizza」より小さい値のレコード数(CLTV<Grizza>)は2であるため、SOS(1)の順位2の要素が、指定仮想行TPの「Grizza」のレコード番号となる。 Finally, determine the record number. In the virtual integrated sort DB 510, 4 is obtained as the rank of the record immediately before “Grizza” in Table 1. 0 is obtained as the rank AA of “Grizza” corresponding to the designated virtual row TP in the table 1. In Table 1, since the number of records having a value smaller than “Grizza” (CLTV <Grizza>) is 2, the element of rank 2 of SOS (1) becomes the record number of “Grizza” in the designated virtual row TP. .
 なお、本実施形態においても、上記実施形態では、複数のデータベースを探索対象とする場合を例にあげて説明したが、探索対象とするデータベース数は1つであってもよい。また、位置情報特定部420が、データベースを保持する情報処理装置110とは独立した情報処理装置に構築されていてもよい。さらに、第一の実施形態と同様の表示制御部を備え、検索処理、閲覧処理等を実現可能なよう構成してもよい。また、ユーザが特定対象、抽出対象とする項目値、仮想行を指定可能なインタフェース、ユーザが検索対象とするデータベースを選択可能なインタフェースを備えていてもよい。 In the present embodiment, the case where a plurality of databases are set as search targets has been described as an example in the above embodiment, but the number of databases set as search targets may be one. Further, the position information specifying unit 420 may be constructed in an information processing device independent of the information processing device 110 that holds the database. Furthermore, a display control unit similar to that of the first embodiment may be provided so that search processing, browsing processing, and the like can be realized. In addition, an interface that allows the user to specify item values to be specified and extraction targets, a virtual row, and an interface from which the user can select a database to be searched may be provided.
 以上説明したように、本実施形態においても、第一の実施形態と同様の効果を得ることができる。 As described above, also in this embodiment, the same effect as that of the first embodiment can be obtained.
 なお、上記インデックスファイル300の構成は、上記各実施形態の構成に限られない。すなわち、元のデータベースから作成され、元のデータベースのサイズとサイズが比例的であり、かつ、所定のデータ項目と値とが与えられると、それを満たすレコードの位置情報を返すことができ、かつ、仮想的に統合し、所定のデータ項目でソートされた状態の指定された順位のレコードの、位置情報を返すことができるインデックスファイルであれば、その構成は問わない。例えば、所定の項目値の個数(0も含む)を判別可能な第一のリストと、所定のデータ項目でソート後の各レコードの順位を把握可能な第二のリストの組合せであってもよい。 Note that the configuration of the index file 300 is not limited to the configuration of each of the above embodiments. That is, it is created from the original database, the size and size of the original database are proportional, and given a predetermined data item and value, the position information of the record that satisfies it can be returned, and Any index file can be used as long as it is an index file that can be integrated virtually and can return position information of records in a specified rank in a state of being sorted by predetermined data items. For example, it may be a combination of a first list capable of determining the number of predetermined item values (including 0) and a second list capable of grasping the rank of each record after sorting by a predetermined data item. .
 100:データベースシステム、110:インデックス作成部、110:情報処理装置、111:CPU、112:メモリ、113:記憶装置、114:NWIF、115:入力装置、116:表示装置、117:外部記憶装置、120:ネットワーク、200:データベース、201:表形式データ、201s:ソート後の表形式データ、202:半構造化データ、203:半構造化データ、203:非構造化データ、204:非構造化データ、211:データ項目、212:項目値、213:レコード、214:レコード番号、215:レコード順序番号、300:インデックスファイル、310:VL、320:CAGR、330:SOS、340:ORG、410:インデックス作成部、420:位置情報特定部、421:第一探索部、422:第二探索部、423:レコード数計算部、500:仮想統合DB、501:テーブルIDとレコード番号、510:仮想統合ソートDB 100: Database system, 110: Index creation unit, 110: Information processing device, 111: CPU, 112: Memory, 113: Storage device, 114: NWIF, 115: Input device, 116: Display device, 117: External storage device, 120: Network, 200: Database, 201: Tabular data, 201s: Tabular data after sorting, 202: Semi-structured data, 203: Semi-structured data, 203: Unstructured data, 204: Unstructured data , 211: data item, 212: item value, 213: record, 214: record number, 215: record order number, 300: index file, 310: VL, 320: CAGR, 330: SOS, 340: ORG, 410: index Creation unit, 420: position information identification unit, 421: first search Part, 422: second search unit, 423: record number calculation unit, 500: virtual integration DB, 501: table ID and a record number, 510: virtual integration Sort DB

Claims (16)

  1.  予め定めたデータ項目毎の項目値を格納するレコードからなるデータベースを管理する情報処理装置であって、
     検索対象となり得る前記データ項目毎のインデックスファイルと、
     前記インデックスファイルを用いて、所望の前記レコードの位置情報を特定する位置情報特定部と、を備え、
     前記各レコードには、予め一意にレコード番号が付与され、
     前記位置情報特定部は、前記位置情報として前記レコード番号を特定し、
     前記データ項目毎のインデックスファイルは、当該データ項目の前記項目値から前記レコード番号を取得でき、かつ、当該データ項目をキー項目として前記データベースをソートしたソートデータベースの順位から前記レコード番号を取得できるものであること
     を特徴とする情報処理装置。
    An information processing apparatus for managing a database composed of records storing item values for each predetermined data item,
    An index file for each data item that can be searched;
    Using the index file, comprising a position information specifying unit for specifying position information of the desired record,
    Each record is uniquely given a record number in advance,
    The position information specifying unit specifies the record number as the position information,
    The index file for each data item can acquire the record number from the item value of the data item, and can acquire the record number from the rank of the sort database obtained by sorting the database using the data item as a key item An information processing apparatus characterized by
  2.  請求項1記載の情報処理装置であって、
     管理対象の前記データベースは複数であり、
     前記各データベースには、予め一意にデータベースIDが付与され、
     前記インデックスファイルは、前記データベース毎に生成され、
     前記ソートデータベースは、前記複数のデータベースを仮想的に統合した仮想統合データベースを、当該データ項目をキー項目としてソートしたものであり、
     前記位置情報特定部は、前記位置情報として、所望の前記レコードが属する前記データベースの前記データベースIDをさらに特定すること、
     を特徴とする情報処理装置。
    The information processing apparatus according to claim 1,
    There are multiple databases to be managed,
    Each database is uniquely given a database ID in advance,
    The index file is generated for each database,
    The sort database is a virtual integrated database obtained by virtually integrating the plurality of databases, the data items being sorted as key items,
    The position information specifying unit further specifies the database ID of the database to which the desired record belongs as the position information;
    An information processing apparatus characterized by the above.
  3.  請求項1または2記載の情報処理装置であって、
     前記データ項目毎のインデックスファイルは、
     当該データ項目に属する一意の項目値を所定順に格納する値リストと、
     前記値リストの格納順に、前記項目値毎に当該データベース中の累積レコード数を格納する累積数リストと、
     前記データベースを、当該データ項目をキー項目として前記所定順にソート後の前記レコード番号の並び順を格納するソートリストと、を備えること
     を特徴とする情報処理装置。
    The information processing apparatus according to claim 1, wherein
    The index file for each data item is
    A value list for storing unique item values belonging to the data item in a predetermined order;
    A cumulative number list for storing the cumulative number of records in the database for each item value in the storage order of the value list;
    An information processing apparatus comprising: the database; and a sort list that stores an arrangement order of the record numbers after sorting in the predetermined order using the data item as a key item.
  4.  請求項1または2記載の情報処理装置であって、
     前記データ項目毎のインデックスファイルは、
     当該データベースを、当該データ項目をキー項目として所定順にソート後の前記レコード番号の並び順を格納するソートリストと、
     前記データベースの、当該データ項目が備える前記項目値を、当初の並び順で格納する元データリストと、を備えること
     を特徴とする情報処理装置。
    The information processing apparatus according to claim 1, wherein
    The index file for each data item is
    A sort list for storing the order of the record numbers after sorting the database in a predetermined order using the data item as a key item;
    An information processing apparatus comprising: an original data list that stores the item values included in the data item of the database in an initial arrangement order.
  5.  請求項1から4いずれか1項記載の情報処理装置であって、
     前記位置情報特定部は、前記データ項目毎のインデックスファイルを用い、当該データ項目の指定された項目値の位置情報を特定する第一探索部を備えること
     を特徴とする情報処理装置。
    The information processing apparatus according to any one of claims 1 to 4,
    The information processing apparatus according to claim 1, wherein the position information specifying unit includes a first search unit that uses an index file for each data item and specifies position information of an item value designated by the data item.
  6.  請求項1から4いずれか1項記載の情報処理装置であって、
     前記位置情報特定部は、前記データ項目毎のインデックスファイルを用い、前記ソートデータベースの、指定された位置の、前記位置情報を特定する第二探索部を備えること
     を特徴とする情報処理装置。
    The information processing apparatus according to any one of claims 1 to 4,
    The information processing apparatus according to claim 1, wherein the position information specifying unit includes a second search unit that uses the index file for each data item and specifies the position information of a specified position in the sort database.
  7.  請求項6記載の情報処理装置であって、
     前記位置情報特定部は、前記データ項目毎の各項目値について、当該項目値より小さいレコード数および当該項目値に等しいレコード数を、前記データベース毎に算出するレコード数計算部をさらに備えること
     を特徴とする情報処理装置。
    An information processing apparatus according to claim 6,
    The position information specifying unit further includes, for each item value for each data item, a record number calculating unit that calculates, for each database, the number of records smaller than the item value and the number of records equal to the item value. Information processing apparatus.
  8.  請求項1から7いずれか1項記載の情報処理装置であって、
     前記位置情報特定部が特定した位置情報に従って、前記データベースから前記所望のレコードを抽出するレコード抽出部をさらに備えること
     を特徴とする情報処理装置。
    The information processing apparatus according to any one of claims 1 to 7,
    An information processing apparatus, further comprising: a record extraction unit that extracts the desired record from the database according to the position information specified by the position information specifying unit.
  9.  予め定めたデータ項目ごとの項目値を格納するレコードと、各レコードに一意に付与されたレコード番号とを備えるデータベースにおいて、所望のレコードの位置情報を特定するレコード位置情報特定方法であって、
     前記データ項目の前記項目値から前記レコード番号を取得でき、かつ、前記データ項目をキー項目として前記データベースをソートしたソートデータベースの順位から前記レコード番号を取得できるインデックスファイルであって、前記データ項目毎に生成されるインデックスファイルを用い、前記所望のレコードの前記レコード番号を特定することにより、前記位置情報を特定する位置情報特定ステップを含むこと
     を特徴とするレコード位置情報特定方法。
    A record position information specifying method for specifying position information of a desired record in a database including records storing item values for each predetermined data item and a record number uniquely assigned to each record,
    An index file that can acquire the record number from the item value of the data item, and that can acquire the record number from the order of a sorted database in which the database is sorted using the data item as a key item. A position information specifying method for specifying the position information by specifying the record number of the desired record using an index file generated in step (a).
  10.  請求項9記載のレコード位置情報特定方法であって、
     前記データベースは複数であり、
     前記各データベースには、予め一意にデータベースIDが付与され、
     前記インデックスファイルは、前記データベース毎に生成され、
     前記ソートデータベースは、前記複数のデータベースを仮想的に統合した仮想統合データベースを、当該データ項目をキー項目としてソートした仮想統合ソートデータベースであり、
     前記位置情報特定ステップでは、前記位置情報として、前記所望のレコードが属する前記データベースの前記データベースIDをさらに特定すること
     を特徴とするレコード位置情報特定方法。
    A method for specifying record position information according to claim 9,
    The database is plural,
    Each database is uniquely given a database ID in advance,
    The index file is generated for each database,
    The sort database is a virtual integrated sort database in which a virtual integrated database obtained by virtually integrating the plurality of databases is sorted using the data items as key items,
    In the position information specifying step, as the position information, the database ID of the database to which the desired record belongs is further specified.
  11.  請求項9または10記載のレコード位置情報特定方法であって、
     前記データ項目毎に生成されるインデックスファイルは、
     当該データ項目に属する一意の項目値を所定順に格納する値リストと、
     前記値リストの格納順に、前記項目値毎に当該データベース中の累積レコード数を格納する累積数リストと、
     前記データベースを、当該データ項目をキー項目として前記所定順にソート後の前記レコード番号の並び順を格納するソートリストと、を備え、
     前記位置情報特定ステップは、
     前記所望のレコードのデータ項目であるターゲット項目の前記値リストにアクセスし、当該データベースの当該ターゲット項目が、前記所望のレコードの項目値であるターゲット値を有しているか否かを判別する有無判別ステップと、
     前記有無判別ステップで有りと判別された場合、前記累積数リストと前記ソートリストとを用い、当該ターゲット値の前記レコード番号を特定し、前記位置情報とするレコード番号特定ステップと、を含むこと
     を特徴とするレコード位置情報特定方法。
    The record position information specifying method according to claim 9 or 10,
    The index file generated for each data item is
    A value list for storing unique item values belonging to the data item in a predetermined order;
    A cumulative number list for storing the cumulative number of records in the database for each item value in the storage order of the value list;
    A sort list for storing the order of the record numbers after the database is sorted in the predetermined order using the data item as a key item;
    The location information specifying step includes:
    Access to the value list of the target item that is the data item of the desired record and determine whether or not the target item of the database has a target value that is the item value of the desired record Steps,
    A record number specifying step of specifying the record number of the target value using the cumulative number list and the sort list and determining the position information when the presence / absence determining step is determined to be present. A method for specifying record position information as a feature.
  12.  請求項9または10記載のレコード位置情報特定方法であって、
     前記データ項目毎に生成されるインデックスファイルは、
     当該データベースを、当該データ項目をキー項目として所定順にソート後の前記レコード番号の並び順を格納するソートリストと、
     前記データベースの、当該データ項目が備える前記項目値を、当初の並び順で格納する元データリストと、を備え、
     前記位置情報特定ステップは、
     前記所望のレコードのデータ項目であるターゲット項目の前記元データリストにアクセスし、当該データベースの当該ターゲット項目が、前記所望のレコードの項目値であるターゲット値を有しているか否かおよび有している場合、その順位を判別する有無順位判別ステップと、
     前記有無順位判別ステップで有りと判別された場合、当該元データリストの前記順位を、当該ターゲット値の前記レコード番号として特定し、前記位置情報とするレコード番号特定ステップと、を含むこと
     を特徴とするレコード位置情報特定方法。
    The record position information specifying method according to claim 9 or 10,
    The index file generated for each data item is
    A sort list for storing the order of the record numbers after sorting the database in a predetermined order using the data item as a key item;
    An original data list for storing the item values of the database in the data item, in an initial arrangement order;
    The location information specifying step includes:
    Accessing the original data list of the target item that is the data item of the desired record, and whether or not the target item of the database has a target value that is the item value of the desired record; Presence / absence ranking determination step for determining the ranking,
    A record number specifying step of specifying the rank of the original data list as the record number of the target value and determining the position information when the presence / absence rank determination step is determined to be present. To identify record position information.
  13.  請求項10記載のレコード位置情報特定方法であって、
     前記データ項目毎に生成されるインデックスファイルは、
     当該データ項目に属する一意の項目値を所定順に格納する値リストと、
     前記値リストの格納順に、前記項目値毎に当該データベース中の累積レコード数を格納する累積数リストと、
     前記データベースを、当該データ項目をキー項目として前記所定順にソート後の前記レコード番号の並び順を格納するソートリストと、を備え、
     前記位置情報特定ステップは、
     前記キー項目の前記値リストと前記累積数リストと前記ソートリストとを用い、ユーザから指定された、前記仮想統合ソートデータベースにおける仮想的な位置であるターゲット位置を含む探索値を決定する探索値決定ステップと、
     前記キー項目の前記値リストと前記累積数リストと前記ソートリストとを用い、前記決定した探索値内で前記ターゲット位置に相当する探索値が属するテーブルと、当該テーブル内での順位とを前記位置情報として特定する位置情報特定ステップと、を含むこと
     を特徴とするレコード位置情報特定方法。
    The record position information specifying method according to claim 10,
    The index file generated for each data item is
    A value list for storing unique item values belonging to the data item in a predetermined order;
    A cumulative number list for storing the cumulative number of records in the database for each item value in the storage order of the value list;
    A sort list for storing the order of the record numbers after the database is sorted in the predetermined order using the data item as a key item;
    The location information specifying step includes:
    Search value determination for determining a search value including a target position, which is a virtual position in the virtual integrated sort database, designated by the user, using the value list of the key items, the cumulative number list, and the sort list. Steps,
    Using the value list, the cumulative number list, and the sort list of the key item, a table to which a search value corresponding to the target position in the determined search value belongs, and a rank in the table are represented by the position. And a position information specifying step for specifying the information as information.
  14.  請求項10記載のレコード位置情報特定方法であって、
     前記データ項目毎に生成されるインデックスファイルは、
     当該データベースを、当該データ項目をキー項目として所定順にソート後の前記レコード番号の並び順を格納するソートリストと、
     前記データベースの、当該データ項目が備える前記項目値を、当初の並び順で格納する元データリストと、を備え、
     前記位置情報特定ステップは、
     前記キー項目の前記ソートリストと前記元データリストとを用い、ユーザから指定された、前記仮想統合ソートデータベースにおける仮想的な位置であるターゲット位置を含む探索値を決定する探索値決定ステップと、
     前記キー項目の前記ソートリストと前記元データリストを用い、前記決定した探索値内で前記ターゲット位置に相当する探索値が属するテーブルと、当該テーブル内での順位とを前記位置情報として特定する位置情報特定ステップと、を含むこと
     を特徴とするレコード位置情報特定方法。
    The record position information specifying method according to claim 10,
    The index file generated for each data item is
    A sort list for storing the order of the record numbers after sorting the database in a predetermined order using the data item as a key item;
    An original data list for storing the item values of the database in the data item, in an initial arrangement order;
    The location information specifying step includes:
    A search value determination step for determining a search value including a target position, which is a virtual position in the virtual integrated sort database, designated by a user, using the sort list of the key items and the original data list;
    A position that uses, as the position information, a table to which a search value corresponding to the target position in the determined search value belongs, and a rank in the table, using the sorted list of the key items and the original data list An information specifying step; and a record position information specifying method.
  15.  予め定めたデータ項目ごとの項目値を格納するレコードと、各レコードに一意に付与されたレコード番号とを備えるデータベースから、所望のレコードを抽出するレコード抽出方法であって、
     請求項9から12いずれか1項記載のレコード位置情報特定方法で特定した位置情報に従って、前記所望のレコードを抽出するレコード抽出ステップを含むこと
     を特徴とするレコード抽出方法。
    A record extraction method for extracting a desired record from a database comprising a record for storing an item value for each predetermined data item and a record number uniquely assigned to each record,
    The record extraction method characterized by including the record extraction step which extracts the said desired record according to the positional information specified by the record positional information specific method of any one of Claim 9-12.
  16.  コンピュータを、
     それぞれ、予め定めたデータ項目毎の値を格納するレコードからなり、前記各データベースの各レコードには予め一意にレコード番号が付与されている複数のデータベースから、前記各データベースが備えるインデックスファイルを用いて、所望のレコードの位置情報を特定する位置情報特定手段として機能させる情報処理プログラムであって、
     前記インデックスファイルは、前記データベースそれぞれから生成され、前記データ項目毎に、当該データ項目の前記項目値から前記レコード番号を取得し、かつ、ソートデータベースの順位から前記レコード番号を取得するものであり、
     前記ソートデータベースは、前記複数のデータベースを仮想的に統合した仮想統合データベースを、当該データ項目をキー項目としてソートしたものであること
     を特徴とする情報処理プログラム。
    Computer
    Each of the databases consists of a record storing a value for each predetermined data item, and each record of each database is uniquely assigned with a record number in advance, using an index file included in each database. An information processing program that functions as position information specifying means for specifying position information of a desired record,
    The index file is generated from each of the databases, and for each data item, obtains the record number from the item value of the data item, and obtains the record number from the order of the sort database,
    The information processing program, wherein the sort database is obtained by sorting a virtual integrated database obtained by virtually integrating the plurality of databases using the data items as key items.
PCT/JP2013/071127 2012-08-29 2013-08-05 Information processing device, record location information specification method, and information processing program WO2014034383A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2012-189041 2012-08-29
JP2012189041A JP2015207026A (en) 2012-08-29 2012-08-29 Information processor, record position information specification method and information processing program

Publications (1)

Publication Number Publication Date
WO2014034383A1 true WO2014034383A1 (en) 2014-03-06

Family

ID=50183201

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/071127 WO2014034383A1 (en) 2012-08-29 2013-08-05 Information processing device, record location information specification method, and information processing program

Country Status (2)

Country Link
JP (1) JP2015207026A (en)
WO (1) WO2014034383A1 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6744179B2 (en) * 2016-09-14 2020-08-19 株式会社エスペラントシステム Data integration method, data integration device, data processing system, and computer program
JP2021067962A (en) * 2018-02-21 2021-04-30 株式会社ターボデータラボラトリー Information processing system and information processing method
JP6970867B1 (en) * 2021-06-30 2021-11-24 株式会社インフォメックス Search device, search method, and program
EP4137962A4 (en) * 2021-06-30 2024-01-31 Informex Inc Search device, search method, and recording medium
JP6974666B1 (en) * 2021-08-05 2021-12-01 株式会社インフォメックス Search device, search method, and program
WO2023152965A1 (en) * 2022-02-14 2023-08-17 晋二 古庄 Data providing device, data providing method, and program

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0362239A (en) * 1989-07-31 1991-03-18 Mitsubishi Electric Corp File input/output device
JPH06168274A (en) * 1993-06-25 1994-06-14 Matsushita Electric Ind Co Ltd Information retrieving device
JPH1091644A (en) * 1996-09-10 1998-04-10 Oki Electric Ind Co Ltd Method and device for processing data base query
WO2008155852A1 (en) * 2007-06-21 2008-12-24 Turbo Data Laboratories Inc. Method and device for tallying tabular form data in memory shared parallel processing system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0362239A (en) * 1989-07-31 1991-03-18 Mitsubishi Electric Corp File input/output device
JPH06168274A (en) * 1993-06-25 1994-06-14 Matsushita Electric Ind Co Ltd Information retrieving device
JPH1091644A (en) * 1996-09-10 1998-04-10 Oki Electric Ind Co Ltd Method and device for processing data base query
WO2008155852A1 (en) * 2007-06-21 2008-12-24 Turbo Data Laboratories Inc. Method and device for tallying tabular form data in memory shared parallel processing system

Also Published As

Publication number Publication date
JP2015207026A (en) 2015-11-19

Similar Documents

Publication Publication Date Title
JP5873935B2 (en) Database management method, management computer and storage medium
US9087090B1 (en) Facilitating execution of conceptual queries containing qualitative search terms
WO2014034383A1 (en) Information processing device, record location information specification method, and information processing program
KR101443475B1 (en) Search suggestion clustering and presentation
CN101055580B (en) System, method and user interface for retrieving documents
CN108304444B (en) Information query method and device
JP6047017B2 (en) Pattern extraction apparatus and control method
JP2017157192A (en) Method of matching between image and content item based on key word
CN103136228A (en) Image search method and image search device
US20110082803A1 (en) Business flow retrieval system, business flow retrieval method and business flow retrieval program
US9407589B2 (en) System and method for following topics in an electronic textual conversation
WO2011134141A1 (en) Method of extracting named entity
JP6390139B2 (en) Document search device, document search method, program, and document search system
JP2017157193A (en) Method of selecting image that matches with content based on metadata of image and content
JP2016157290A (en) Document search apparatus, document search method, and document search program
US9552415B2 (en) Category classification processing device and method
WO2012115254A1 (en) Search device, search method, search program, and computer-readable memory medium for recording search program
US9984107B2 (en) Database joins using uncertain criteria
JP5980723B2 (en) Emergency know-how reference support method, emergency know-how reference support device, and emergency know-how reference support program
US10275497B2 (en) Electronic whiteboard system, search result display method of electronic whiteboard, and non-transitory computer readable medium storing program thereof
JP5743938B2 (en) Associative search system, associative search server, and program
KR101823463B1 (en) Apparatus for providing researcher searching service and method thereof
US20160092459A1 (en) Translating a keyword search into a structured query
US20170255691A1 (en) Information processing system, information processing method, and program
JP5899587B2 (en) File search method, file search device, and program

Legal Events

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

Ref document number: 13833613

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13833613

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP