WO2021229724A1 - 統合装置、データテーブル統合方法、プログラム - Google Patents

統合装置、データテーブル統合方法、プログラム Download PDF

Info

Publication number
WO2021229724A1
WO2021229724A1 PCT/JP2020/019121 JP2020019121W WO2021229724A1 WO 2021229724 A1 WO2021229724 A1 WO 2021229724A1 JP 2020019121 W JP2020019121 W JP 2020019121W WO 2021229724 A1 WO2021229724 A1 WO 2021229724A1
Authority
WO
WIPO (PCT)
Prior art keywords
row
data
data table
limit position
ascending sort
Prior art date
Application number
PCT/JP2020/019121
Other languages
English (en)
French (fr)
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 日本電気株式会社
Priority to JP2022522413A priority Critical patent/JP7513086B2/ja
Priority to PCT/JP2020/019121 priority patent/WO2021229724A1/ja
Priority to US17/924,139 priority patent/US12086124B2/en
Publication of WO2021229724A1 publication Critical patent/WO2021229724A1/ja

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
    • G06F16/2282Tablespace storage structures; Management thereof
    • 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/21Design, administration or maintenance of databases
    • G06F16/211Schema design and management
    • G06F16/213Schema design and management with details for schema evolution support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/06Arrangements for sorting, selecting, merging, or comparing data on individual record carriers
    • G06F7/08Sorting, i.e. grouping record carriers in numerical or other ordered sequence according to the classification of at least some of the information they carry

Definitions

  • the present invention relates to an integrated device, a data table integration method, and a program.
  • Patent Document 1 discloses a technique of performing an outer join (outer join) process to generate a new output table.
  • each of the data elements of the first data table of the two data tables containing at least the data elements that can be compared in magnitude as information in one row unique?
  • the data element of each row of the second data table of the two data tables and each row of the first data table are unique.
  • the magnitude of each row after ascending sort using the data elements of is compared with the data element of each row, and the row of the second data table is the most of the first data table after the ascending sort so as to match the ascending sort.
  • the position specifying means for specifying the lower limit position that can be added to the lower row, the data element of the row of the second data table, and the said in the first data table after the ascending order specified by using the data element of the row.
  • the integration target row indicating those data elements is specified in the second data table and the first data table, and at least those first.
  • each of the data elements of the first data table of the two data tables including at least the data elements that can be compared in magnitude as information in one row is unique. If each of the data elements is unique in the array of data elements of the first data table, the data element of each row of the second data table of the two data tables and the first data element are present. A magnitude comparison is made with the data elements of each row after ascending sort using the data elements of each row of the data table, and each row of the first data table after the ascending sort of the data elements of each row of the second data table is performed.
  • the lower limit position in the array of data elements of the above is specified, and the data element of the row of the second data table and the lower limit position specified by using the data element of the row are the first data table after the ascending order sorting.
  • the rows to be integrated that match the data elements of the row with the lower limit position in the array of are specified in the second data table and the first data table, and at least those second data table and the first data table are specified. Generate an integrated data table that integrates the above-mentioned integration target rows with.
  • the program uses the computer of the integrated device as the data element of the first data table of the two data tables containing at least the data elements that can be compared in magnitude as information in one row.
  • a unique determination means for determining whether is unique, and when each of the data elements is unique in the array of data elements of the first data table, each row of the second data table of the two data tables The magnitude comparison between the data element and the data element of each row after ascending order using the data element of each row of the first data table is performed, and the data element of each row of the second data table is compared with each other after the ascending order sorting.
  • the position specifying means for specifying the lower limit position in the array of the data elements of each row of the first data table, the data element of the row of the second data table, and the lower limit position specified by using the data element of the row.
  • the rows to be integrated that match the data elements of the row having the lower limit position in the array of the first data table after ascending order are specified in the second data table and the first data table, and at least those first.
  • the amount of processing can be reduced in the generation of the integrated data table.
  • FIG. 1 It is a figure which shows the structure of the information processing system provided with the integrated apparatus by this embodiment. It is a figure which shows the hardware configuration of the integrated apparatus by this embodiment. It is a functional block diagram of the integrated apparatus by this embodiment. It is a figure which shows the generation example of the integrated data table by this embodiment. It is the first figure which shows the example of the two data tables of the integration target by this embodiment. It is a figure which shows the processing flow of the integrated apparatus by this embodiment. It is the first figure which shows the processing outline of the integrated apparatus by this embodiment. It is a second figure which shows the example of the two data tables of the integration target by this embodiment. It is the 2nd figure which shows the processing outline of the integrated apparatus by this embodiment. It is a figure which shows the minimum structure of the integrated apparatus by this embodiment. It is a figure which shows the processing flow of the integrated apparatus by the minimum configuration by this embodiment.
  • FIG. 1 is a diagram showing a configuration of an information processing system including an integrated device according to the same embodiment.
  • the information processing system 100 may be configured by connecting the integrated device 1 and the terminal 2 by a communication network.
  • the integrated device 1 generates an integrated data table in which at least two data tables stored in the own device or the like in advance are integrated into one data table.
  • the terminal 2 is used by the user who operates the integrated device 1.
  • the integrated device 1 and the terminal 2 are computers, respectively.
  • FIG. 2 is a diagram showing a hardware configuration of the integrated device.
  • the integrated device 1 includes hardware such as a CPU (Central Processing Unit) 101, a ROM (Read Only Memory) 102, a RAM (Random Access Memory) 103, a database 104, and a communication module 105. It's a computer.
  • the terminal 2 is also a computer equipped with similar hardware.
  • FIG. 3 is a functional block diagram of the integrated device.
  • the integrated device 1 executes an integrated data table generation program. As a result, the integrated device 1 exerts the functions of the control unit 11, the sort unit 12, the unique determination unit 13, the position specifying unit 14, and the integrated unit 15.
  • the control unit 11 controls each functional unit of the integrated device 1.
  • the sorting unit 12 sorts each row of the data table including at least data elements that can be compared in magnitude as information of one row, based on the data elements included in the row.
  • the unique determination unit 13 determines whether each of the data elements of the first data table of the two data tables including at least the data elements that can be compared in magnitude is unique as the information in one row.
  • the position specifying unit 14 uses the data element of each row of the second data table and the data element of each row of the first data table of the two data tables. Compare the magnitude with the data element of each row after ascending order sorting. The position specifying unit 14 performs a magnitude comparison thereof and identifies a lower limit position where a row of the second data table can be added to the bottom row of the first data table after the ascending sort so as to match the ascending sort.
  • the integration unit 15 matches the data element of the row of the second data table with the data element of the next row in the ascending sort of the lower limit position in the first data table after the ascending sort specified by using the data element of the row.
  • the rows to be integrated indicating those data elements are specified in the second data table and the first data table.
  • the integration unit 15 generates an integrated data table that integrates at least the rows to be integrated with the second data table and the first data table.
  • FIG. 4 is a diagram showing an example of generating an integrated data table.
  • an example of generating an integrated data table 43 in which two data tables of the purchase history table 41 and the purchaser table 42 are integrated is shown.
  • the two data tables, the purchase history table 41 and the purchaser table 42 each include a purchaser ID as a data element that can be compared in size as a data element of each row.
  • the purchase history table 41 can be regarded as the first data table of the two data tables, and the purchaser table 42 can be regarded as the second data table of the two data tables.
  • the purchaser table 42 may be regarded as the first data table of the two data tables, and the purchase history table 41 may be regarded as the second data table of the two data tables.
  • the purchase history table 41 is a data table in which the purchaser ID, the name (product name) of the product purchased by the purchaser indicated by the purchaser ID, the price of the product, and the date indicating the purchase date are linked.
  • the purchaser table 42 is a data table in which the purchaser ID, the name of the purchaser of the purchaser ID, and the age are associated with each other. By integrating these two data tables based on the purchaser ID, it is possible to generate an integrated data table 43 in which the purchaser ID, product name, price, date, name, and age are linked.
  • the integrated data table 43 does not integrate the rows including the purchaser ID; 2, name; Hanako, age; 45 included in the purchaser table 42.
  • the information of the person indicated by the purchaser ID; 2, the name; Hanako, and the age; 45 may be integrated. In this case, the information may not be included in the column of the product name, price, and date as the information of the person (Null).
  • FIG. 5 is a first diagram showing an example of two data tables to be integrated.
  • FIG. 5 shows two data tables to be integrated according to the present embodiment, a right table 51 (first data table) and a left table 52 (second data table).
  • Each of the right table 51 and the left table 52 has a plurality of rows in which the row ID and the key are associated with each other.
  • the two data tables, the right table 51 and the left table 52 each include a key as a data element that can be compared in size as a data element of each row.
  • FIG. 6 is a diagram showing a processing flow of the integrated device.
  • FIG. 7 is a first diagram showing an outline of processing of the integrated device.
  • the user operates the terminal 2 to access the integrated device 1.
  • the user operates the terminal 2 to specify two data tables to be integrated, specify data elements that can be compared in size in those data tables, and give an instruction to start integration to the integration device 1.
  • the integration device 1 starts the integration processing of the two data tables (step S101).
  • the two data tables are the right table 51 (first data table) and the left table 52 (second data table) shown in FIG.
  • the types of data elements that can be compared in size in the two data tables are the same.
  • the key is a data element whose magnitude can be compared.
  • the key information in the two data tables is the same type of information.
  • the control unit 10 of the integration device 1 When the control unit 10 of the integration device 1 receives the instruction to start integration, the control unit 10 instructs the sorting unit 12 to sort the data elements in ascending order that can be compared in magnitude.
  • the sorting unit 12 sorts each row of the right table and the left table in ascending order using the key (step S102). As a result, as shown in FIG. 7 (1), the sort unit 12 arranges the right table 51 so that the keys in each row of the right table 51 are "1", "2", "3", and "6" in order from the top. Sort each line in ascending order. Further, as shown in FIG. 7 (1), the sort unit 12 sets the left table 52 so that the keys in each row of the left table 52 are "1", "3", "3", and "5" in order from the top. Rearranges.
  • the control unit 10 instructs the unique determination unit 13 to process.
  • the unique determination unit 13 determines whether each key as a data element capable of comparing the magnitude of each row in the right table 51 is unique (step S103).
  • the unique determination unit 13 outputs the determination result to the control unit 10.
  • the control unit 10 defines the right table 51 as the first data table and the left table 52 as the second data table as they are. Start the integration processing of the following data tables by the processing load reduction method.
  • the unique determination unit 13 determines whether the key as a data element capable of comparing the magnitude of each row in the right table 51 is unique. (Step S104).
  • the unique determination unit 13 outputs the determination result to the control unit 10.
  • the control unit 10 reversely replaces the definitions of the first data table and the second data table of the right table 51 and the left table 52.
  • the left table 52 is defined as the first data table
  • the right table 51 is defined as the second data table, and the integration processing of the following data tables by the processing load reduction method is started.
  • the key as a data element that can compare the size of each row in the left table 52 is not unique. That is, there are two rows having the key "3" in the left table 52. Therefore, the description of the case where the right table 51 is defined as the first data table and the left table 52 is defined as the second data table and the following data table integration processing by the processing load reducing method is started will be continued.
  • the key as a data element capable of comparing the magnitude of each row in the right table 51 is not unique, and the key as a data element capable of comparing the magnitude of each row in the left table 52 is also not unique.
  • the determination result is output to the control unit 10.
  • the control unit 10 determines that if the key as a data element capable of comparing the magnitude of each row is not unique in any of the data tables, the data table is switched to the integrated processing in which the processing load cannot be reduced (step S105).
  • the sorting unit 12 sorts the keys as data elements that can be compared in size in each row in the data tables of both the right table 51 and the left table 52 in ascending order, but at least the size comparison is performed.
  • a data table in which each key as a data element that can be created is unique may be sorted.
  • the control unit 10 When the control unit 10 starts the data table integration process by the processing load reduction method, the control unit 10 outputs the data table integration process by the processing load reduction method to the position specifying unit 14.
  • the position specifying unit 14 acquires the key “1” on the L3 line.
  • the position specifying unit 14 compares the size of the key "1" which is the data element of the row L3 of the left table 52 with the key of each row after ascending sort using the key which is the data element of each row of the right table 51.
  • the lower limit position where the L3 row of the left table 52 can be added to the bottom row of the right table 51 after the ascending sort is specified so as to fit the ascending sort.
  • the spaces between the rows in the right table 51 are referred to as boundary positions B0 to B4, respectively.
  • Ascending sort is performed by comparing the size of the key "1" which is the data element of the row L3 of the left table 52 and the data element of each row after ascending sort using the key which is the data element of each row of the right table 51.
  • the lower limit position where the L3 row of the left table 52 can be added to the bottom row of the right table 51 after ascending sort so as to conform to is the boundary position B0. That is, in this case, the lower limit position is B0.
  • the position specifying unit 14 acquires the key “3” on the L0 line.
  • the position specifying unit 14 compares the size of the key "3" which is the data element of the row L0 of the left table 52 with the key of each row after ascending sort using the key which is the data element of each row of the right table 51.
  • the lower limit position where the L0 row of the left table 52 can be added to the bottom row of the right table 51 after the ascending sort is specified so as to fit the ascending sort.
  • Ascending sort is performed by comparing the size of the key "3" which is the data element of the row L0 of the left table 52 and the data element of each row after ascending sort using the key which is the data element of each row of the right table 51.
  • the lower limit position where the L0 row of the left table 52 can be added to the bottom row of the right table 51 after ascending sort so as to conform to is the boundary position B2. That is, in this case, the lower limit position is B2.
  • the position specifying unit 14 acquires the key “3” on the L2 line.
  • the position specifying unit 14 compares the size of the key "3" which is the data element of the row L2 of the left table 52 with the key of each row after ascending sort using the key which is the data element of each row of the right table 51.
  • the lower limit position where the L2 row of the left table 52 can be added to the bottom row of the right table 51 after the ascending sort is specified so as to fit the ascending sort.
  • Ascending sort is performed by comparing the size of the key "3" which is the data element of the row L2 of the left table 52 and the data element of each row after ascending sort using the key which is the data element of each row of the right table 51.
  • the lower limit position where the L2 row of the left table 52 can be added to the bottom row of the right table 51 after ascending sort so as to conform to is the boundary position B2. That is, in this case, the lower limit position is B2.
  • the position specifying unit 14 acquires the key “5” of the L1 line.
  • the position specifying unit 14 compares the size of the key "5", which is the data element of the row L1 of the left table 52, with the key of each row after ascending sort using the key which is the data element of each row of the right table 51.
  • the lower limit position where the L1 row of the left table 52 can be added to the bottom row of the right table 51 after the ascending sort is specified so as to fit the ascending sort.
  • Ascending sort is performed by comparing the size of the key "5" which is the data element of the row L1 of the left table 52 and the data element of each row after ascending sort using the key which is the data element of each row of the right table 51.
  • the lower limit position where the L1 row of the left table 52 can be added to the bottom row of the right table 51 after ascending sort so as to conform to is the boundary position B3. That is, in this case, the lower limit position is B3.
  • the position specifying unit 14 specifies the lower limit position where the L3 row of the left table 52 can be added to the bottom row of the right table 51 after ascending sort as B0. Further, the position specifying unit 14 specifies the lower limit position where the L0 row of the left table 52 can be added to the bottom row of the right table 51 after sorting in ascending order as B2. Further, the position specifying unit 14 specifies the lower limit position where the L2 row of the left table 52 can be added to the bottom row of the right table 51 after sorting in ascending order as B2. Further, the position specifying unit 14 specifies the lower limit position where the L1 row of the left table 52 can be added to the bottom row of the right table 51 after sorting in ascending order as B3.
  • the position specifying unit 14 specifies the lower limit position that can be added to the bottom row of the right table 51 after ascending sort for all the rows of the left table 52 (step S106). Then, the position specifying unit 14 generates a position specifying table 53 in which the row ID of the left table 52 and the lower limit position specified for the row ID are associated with each other. Then, the position specifying unit 14 outputs the processing end to the control unit 10.
  • the processing of the position specifying unit 14 is the data element of each row of the second data table (left table 52) of the two data tables when each data element of the first data table (right table 51) is unique. And the data element of each row of the first data table (right table 51) are used to compare the magnitude with the data element of each row after ascending sort, and the second data table (left table 52) is adapted to the ascending sort.
  • This is one aspect of the process of specifying the lower limit position where the row can be added to the bottom row of the first data table (right table 51) after ascending order sorting.
  • the above-mentioned magnitude comparison is performed using a binary search. Alternatively, other search methods may be used for magnitude comparison. For example, the magnitude comparison may be performed by a simple search. Since the magnitude comparison is performed after ascending sorting of the keys that are data elements, the processing amount and processing load can be reduced by performing a binary search.
  • the control unit 10 instructs the integration unit 15 to integrate the two data tables.
  • the integration unit 15 identifies the row L3 and the row R1 as the integration target rows, and integrates the row L3 and the row R1 into the row ID “L3”, the row ID “R1”, and the key “1”. Generate an integrated data table to include in.
  • the integration unit 15 specifies whether all the rows in the left table 52 are the same integration target rows, and integrates the rows in the left table 52 identified as the integration target rows and the rows in the right table 51. And merge it into the integrated data table. As a result, an integrated data table is generated (step S107).
  • control unit 10 determines in step S105 to switch to the data table integration process whose processing load cannot be reduced, the control unit 10 outputs the data table integration process to the position specifying unit 14.
  • FIG. 8 is a second diagram showing an example of two data tables to be integrated.
  • the right table 61 first data table
  • the left table 62 second data table
  • Each of the right table 61 and the left table 62 has a plurality of rows in which the row ID and the key are associated with each other.
  • the key as a data element capable of comparing the magnitude of each row in the data table is not unique.
  • there are two rows having the key "1”, and the keys as data elements that can be compared in size of each row are not unique.
  • the left table 62 there are two rows having the key "3", and the key as a data element capable of comparing the magnitude of each row is not unique. In this way, if the key as a data element that can compare the size of each row is not unique in any of the data tables, the following data table integration processing is performed.
  • FIG. 9 is a second diagram showing an outline of processing of the integrated device.
  • the keys of each row of the right table 61 are "1", “1", and “2" in order from the top.
  • Each line is sorted in ascending order so as to be "3".
  • the keys of each row of the left table 62 are arranged in ascending order so that the keys of each row are "1", "3", "3", and "5" in order from the top. It has been changed.
  • the position specifying unit 14 acquires the key “1” on the L3 line.
  • the position specifying unit 14 compares the size of the key "1" which is the data element of the row L3 of the left table 62 with the key of each row after ascending sort using the key which is the data element of each row of the right table 61.
  • the lower limit position where the L3 row of the left table 62 can be added to the bottom row of the right table 61 after the ascending sort is specified so as to fit the ascending sort.
  • the spaces between the rows in the right table 61 are referred to as positions B0 to B4, respectively.
  • Ascending sort is performed by comparing the size of the key "1" which is the data element of the row L3 of the left table 62 and the data element of each row after ascending sort using the key which is the data element of each row of the right table 61.
  • the lower limit position where the L3 row of the left table 62 can be added to the bottom row of the right table 61 after ascending sort so as to conform to is the boundary position B0. That is, in this case, the lower limit position is B0.
  • the position specifying unit 14 acquires the key “3” on the L0 line.
  • the position specifying unit 14 compares the size of the key "3" which is the data element of the row L0 of the left table 62 with the key of each row after ascending sort using the key which is the data element of each row of the right table 61.
  • the lower limit position where the L0 row of the left table 62 can be added to the bottom row of the right table 61 after the ascending sort is specified so as to fit the ascending sort.
  • the ascending sort is performed.
  • the lower limit position where the L0 row of the left table 62 can be added to the bottom row of the right table 61 after ascending sort so as to conform to is the boundary position B3. That is, in this case, the lower limit position is B3.
  • the position specifying unit 14 acquires the key “3” on the L2 line.
  • the position specifying unit 14 compares the size of the key "3" which is the data element of the row L2 of the left table 62 with the key of each row after ascending sort using the key which is the data element of each row of the right table 61.
  • the lower limit position where the L2 row of the left table 62 can be added to the bottom row of the right table 61 after the ascending sort is specified so as to fit the ascending sort.
  • the ascending sort is performed.
  • the lower limit position where the L2 row of the left table 62 can be added to the bottom row of the right table 61 after ascending sort so as to conform to is the boundary position B3. That is, in this case, the lower limit position is B3.
  • the position specifying unit 14 acquires the key “5” of the L1 line.
  • the position specifying unit 14 compares the size of the key "5" which is the data element of the row L1 of the left table 62 with the key of each row after ascending sort using the key which is the data element of each row of the right table 61.
  • the lower limit position where the L1 row of the left table 62 can be added to the bottom row of the right table 61 after the ascending sort is specified so as to fit the ascending sort.
  • Ascending sort is performed by comparing the size of the key "5" which is the data element of the row L1 of the left table 62 and the data element of each row after ascending sort using the key which is the data element of each row of the right table 61.
  • the lower limit position where the L1 row of the left table 62 can be added to the bottom row of the right table 61 after ascending sort so as to conform to is the boundary position B4. That is, in this case, the lower limit position is B4.
  • the position specifying unit 14 specifies the lower limit position where the L3 row of the left table 62 can be added to the bottom row of the right table 61 after ascending sort as B0. Further, the position specifying unit 14 specifies the lower limit position where the L0 row of the left table 62 can be added to the bottom row of the right table 61 after sorting in ascending order as B3. Further, the position specifying unit 14 specifies the lower limit position where the L2 row of the left table 62 can be added to the bottom row of the right table 61 after sorting in ascending order as B3. Further, the position specifying unit 14 specifies the lower limit position where the L1 row of the left table 62 can be added to the bottom row of the right table 61 after ascending sort as B4. That is, the position specifying unit 14 specifies the lower limit position that can be added to the bottom row of the right table 61 after ascending sort for all the rows of the left table 62 (step S201).
  • step S201 of the position specifying unit 14 is the processing of each row of the second data table (left table 62) of the two data tables when each of the data elements of the first data table (right table 61) is not unique.
  • a magnitude comparison is made between the data element and the data element of each row after ascending sort using the data element of each row of the first data table (right table 61), and the second data table (left table) is matched to the ascending sort.
  • 62) is one aspect of the process of specifying the lower limit position that can be added to the bottom row of the first data table (right table 61) after ascending order sorting.
  • the above magnitude comparison is performed using a binary search. Alternatively, other search methods may be used for magnitude comparison.
  • the magnitude comparison may be performed by a simple search. Since the magnitude comparison is performed after ascending sorting of the keys that are data elements, the processing amount and processing load can be reduced by performing a binary search.
  • the upper limit position where the L3 row of the left table 52 can be added to the top row of the right table 51 after the ascending sort is specified so as to fit the ascending sort. Ascending sort is performed by comparing the size of the key "1" which is the data element of the row L3 of the left table 62 and the data element of each row after ascending sort using the key which is the data element of each row of the right table 61.
  • the upper limit position where the L3 row of the left table 62 can be added to the top row of the right table 61 after ascending sort so as to conform to is the boundary position B2. That is, in this case, the upper limit position is B2.
  • the position specifying unit 14 acquires the key “3” on the L0 line.
  • the position specifying unit 14 compares the size of the key "3" which is the data element of the row L0 of the left table 62 with the key of each row after ascending sort using the key which is the data element of each row of the right table 61.
  • the upper limit position where the L0 row of the left table 62 can be added to the top row of the right table 61 after the ascending sort is specified so as to fit the ascending sort.
  • the ascending sort is performed.
  • the upper limit position where the L0 row of the left table 62 can be added to the top row of the right table 61 after ascending sort so as to conform to is the boundary position B4. That is, in this case, the upper limit position is B4.
  • the position specifying unit 14 acquires the key “3” on the L2 line.
  • the position specifying unit 14 compares the size of the key "3" which is the data element of the row L2 of the left table 62 with the key of each row after ascending sort using the key which is the data element of each row of the right table 61.
  • the upper limit position where the L2 row of the left table 62 can be added to the top row of the right table 61 after the ascending sort is specified so as to fit the ascending sort.
  • the ascending sort is performed.
  • the upper limit position where the L2 row of the left table 62 can be added to the top row of the right table 61 after ascending sort so as to conform to is the boundary position B4. That is, in this case, the upper limit position is B4.
  • the position specifying unit 14 acquires the key “5” of the L1 line.
  • the position specifying unit 14 compares the size of the key "5" which is the data element of the row L1 of the left table 62 with the key of each row after ascending sort using the key which is the data element of each row of the right table 61.
  • the upper limit position where the L1 row of the left table 62 can be added to the top row of the right table 61 after the ascending sort is specified so as to fit the ascending sort.
  • Ascending sort is performed by comparing the size of the key "5" which is the data element of the row L1 of the left table 62 and the data element of each row after ascending sort using the key which is the data element of each row of the right table 61.
  • the upper limit position where the L1 row of the left table 62 can be added to the top row of the right table 61 after ascending sort so as to conform to is the boundary position B4. That is, in this case, the upper limit position is B4.
  • the position specifying unit 14 specifies the upper limit position where the L3 row of the left table 62 can be added to the top row of the right table 61 after ascending sort as B2. Further, the position specifying unit 14 specifies the upper limit position where the L0 row of the left table 62 can be added to the top row of the right table 61 after ascending sort as B4. Further, the position specifying unit 14 specifies the upper limit position where the L2 row of the left table 62 can be added to the top row of the right table 61 after ascending sort as B4. Further, the position specifying unit 14 specifies the upper limit position where the L1 row of the left table 62 can be added to the top row of the right table 61 after ascending sort as B4.
  • the position specifying unit 14 specifies the upper limit positions that can be added to the top row of the right table 61 after ascending sort for all the rows of the left table 62 (step S202). Then, the position specifying unit 14 generates a position specifying table 63 in which the row ID of the left table 62, the lower limit position specified for the row ID, and the upper limit position are associated with each other. Then, the position specifying unit 14 outputs the processing end to the control unit 10.
  • the processing of the position specifying unit 14 is performed with the data element of each row of the second data table (left table 62) of the two data tables when each of the data elements of the first data table (right table 61) is not unique.
  • a magnitude comparison is made with the data elements of each row after ascending sort using the data elements of each row of the first data table (right table 61), and the second data table (left table 62) is adjusted to match the ascending sort.
  • This is one aspect of the process of specifying the upper limit position that can be added to the top row of the first data table (right table 61) after the row is sorted in ascending order.
  • the magnitude comparison in specifying the upper limit position described above is also performed using a binary search.
  • a magnitude comparison in specifying the upper limit position may be performed using a simple search. Since the magnitude comparison is performed after ascending sorting of the keys that are data elements, the processing amount and processing load can be reduced by performing a binary search.
  • the control unit 10 instructs the integration unit 15 to integrate the two data tables.
  • the data element of the next row R1 in the ascending sort of the lower limit position B0 in the right table 61 after the ascending sort specified by using the key "1" which is a data element and the key "1" which is the data element of the row L3. It is determined whether or not a certain key "1" matches. In this case, the keys are "1", so they match.
  • the integration unit 15 identifies the row L3 and the row R1 as the integration target rows, and integrates the row L3 and the row R1 into the row ID “L3”, the row ID “R1”, and the key “1”. Generate an integrated data table to include in.
  • the integration unit 15 identifies the rows L3 and R3 as the integration target rows, and includes the row ID “L3”, the row ID “R3”, and the key “1” that integrate the rows L3 and the row R3. Merge rows into an integrated data table.
  • the next row in the ascending sort of the lower limit position B3 in the right table 61 after the ascending sort specified by using the key "3" which is the data element of ID L0) and the key "3" which is the data element of the row L0. It is determined whether or not the key "3", which is a data element of R2, matches. In this case, the keys are "3", so they match.
  • the integration unit 15 identifies the rows L0 and R2 as the integration target rows, and includes the row ID “L0”, the row ID “R2”, and the key “3” that integrate the rows L0 and the row R2. Merge rows into an integrated data table.
  • the next row in the ascending sort of the lower limit position B3 in the right table 61 after the ascending sort specified by using the key "3" which is the data element of ID L2) and the key "3" which is the data element of the row L2. It is determined whether or not the key "3", which is a data element of R2, matches. In this case, the keys are "3", so they match.
  • the integration unit 15 identifies the rows L2 and R2 as the integration target rows, and includes the row ID “L2”, the row ID “R2”, and the key “3” that integrate the rows L2 and the row R2. Merge rows into an integrated data table.
  • the next row in the ascending sort of the lower limit position B4 in the right table 61 after the ascending sort specified by using the key "5" which is the data element of ID L1) and the key "5" which is the data element of the row L1. It is determined whether or not the key, which is the data element of R2, matches.
  • the integration unit 15 specifies whether all the rows in the left table 62 are the same integration target rows, and integrates the rows in the left table 62 identified as the integration target rows and the rows in the right table 61. And merge it into the integrated data table. As a result, an integrated data table is generated (step S203).
  • each of the data elements of the first data table of the two data tables is unique, it is only necessary to specify the lower limit position, and each of the data elements of the first data table is not unique. In some cases, the lower limit position and the upper limit position are specified respectively. Therefore, when each of the data elements of the first data table of the two data tables is unique, the processing load and the processing amount can be reduced in generating the integrated data table only by specifying the lower limit position. Can be done.
  • FIG. 10 is a diagram showing the minimum configuration of the integrated device.
  • FIG. 11 is a diagram showing a processing flow of the integrated device with the minimum configuration.
  • the integrated device 1 includes at least the unique determination means 1001, the position specifying means 1002, and the integrated means 1003.
  • the unique determination means 1001 determines whether each of the data elements of the first data table of the two data tables including at least the data elements that can be compared in magnitude is unique (step S301).
  • the position specifying means 1002 uses the data elements of each row of the second data table and the data elements of each row of the first data table to sort each row in ascending order.
  • a magnitude comparison with the data element is performed to identify the lower limit position where the row of the second data table can be added to the bottom row of the first data table after the ascending sort so as to fit the ascending sort (step S302).
  • the integration means 1003 matches the data element of the row of the second data table with the data element of the next row in the ascending sort of the lower limit position in the first data table after the ascending sort specified by using the data element of the row.
  • the integration target rows indicating those data elements are specified, and at least the integration target rows of the second data table and the first data table are integrated to generate an integration data table (step S303).
  • the above-mentioned integrated device 1 has a computer system inside.
  • the process of each process described above is stored in a computer-readable recording medium in the form of a program, and the process is performed by the computer reading and executing this program.
  • the computer-readable recording medium means a magnetic disk, a magneto-optical disk, a CD-ROM, a DVD-ROM, a semiconductor memory, or the like.
  • this computer program may be distributed to a computer via a communication line, and the computer receiving the distribution may execute the program.
  • the above program may be for realizing a part of the above-mentioned functions.
  • a so-called difference file difference program
  • difference program difference program

Landscapes

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

Abstract

少なくとも大小比較のできるデータ要素を一つの行の情報として含む2つのデータテーブルのうちの第一データテーブルのデータ要素それぞれがユニークであるかを判定する。ユニークである場合には、昇順ソートに適合するように第二データテーブルの行を昇順ソート後の第一データテーブルの最下行に加えることのできる下限位置を特定する。第二データテーブルの行のデータ要素と、当該行のデータ要素を用いて特定した昇順ソート後の第一データテーブルにおける下限位置の昇順ソートにおける次の行のデータ要素とが一致する場合に、それらデータ要素を示す統合対象行を統合した統合データテーブルを生成する。

Description

統合装置、データテーブル統合方法、プログラム
 本発明は、統合装置、データテーブル統合方法、プログラムに関する。
 少なくとも大小比較のできるデータ要素を一つの行の情報として含む2つのデータテーブルを統合して新たなデータテーブルを生成する技術が存在する。
 関連する技術が特許文献1に開示されている。特許文献1には、アウタジョイン(外結合)処理を行って、新たな出力テーブルを生成する技術が開示されている。
特開平03-288967号公報
 上述した統合データテーブルの生成において、処理量を軽減できる技術が求められていた。
 そこでこの発明は、上述課題を解決する統合装置、データテーブル統合方法、プログラムを提供することを目的としている。
 本発明の第1の態様によれば、統合装置は、少なくとも大小比較のできるデータ要素を一つの行の情報として含む2つのデータテーブルのうちの第一データテーブルのデータ要素それぞれがユニークであるかを判定するユニーク判定手段と、前記第一データテーブルのデータ要素それぞれがユニークである場合には、前記2つのデータテーブルのうちの第二データテーブルの各行のデータ要素と前記第一データテーブルの各行のデータ要素を用いた昇順ソート後の各行のデータ要素との大小比較を行って、前記昇順ソートに適合するように前記第二データテーブルの行を前記昇順ソート後の前記第一データテーブルの最下行に加えることのできる下限位置を特定する位置特定手段と、前記第二データテーブルの行のデータ要素と、当該行のデータ要素を用いて特定した前記昇順ソート後の前記第一データテーブルにおける前記下限位置の前記昇順ソートにおける次の行のデータ要素とが一致する場合に、それらデータ要素を示す統合対象行を、前記第二データテーブルと前記第一データテーブルとにおいて特定し、少なくともそれら前記第二データテーブルと前記第一データテーブルとの前記統合対象行を統合した統合データテーブルを生成する統合手段と、を備える。
 本発明の第2の態様によれば、データテーブル統合方法は、少なくとも大小比較のできるデータ要素を一つの行の情報として含む2つのデータテーブルのうちの第一データテーブルのデータ要素それぞれがユニークであるかを判定し、前記第一データテーブルのデータ要素の配列において当該データ要素それぞれがユニークである場合には、前記2つのデータテーブルのうちの第二データテーブルの各行のデータ要素と前記第一データテーブルの各行のデータ要素を用いた昇順ソート後の各行のデータ要素との大小比較を行って、前記第二データテーブルの各行のデータ要素についての前記昇順ソート後の前記第一データテーブルの各行のデータ要素の配列における下限位置を特定し、前記第二データテーブルの行のデータ要素と、当該行のデータ要素を用いて特定した前記下限位置であって前記昇順ソート後の前記第一データテーブルの配列における前記下限位置を持つ行のデータ要素とが一致する統合対象行を、前記第二データテーブルと前記第一データテーブルとにおいて特定し、少なくともそれら前記第二データテーブルと前記第一データテーブルとの前記統合対象行を統合した統合データテーブルを生成する。
 本発明の第3の態様によれば、プログラムは、統合装置のコンピュータを、少なくとも大小比較のできるデータ要素を一つの行の情報として含む2つのデータテーブルのうちの第一データテーブルのデータ要素それぞれがユニークであるかを判定するユニーク判定手段、前記第一データテーブルのデータ要素の配列において当該データ要素それぞれがユニークである場合には、前記2つのデータテーブルのうちの第二データテーブルの各行のデータ要素と前記第一データテーブルの各行のデータ要素を用いた昇順ソート後の各行のデータ要素との大小比較を行って、前記第二データテーブルの各行のデータ要素についての前記昇順ソート後の前記第一データテーブルの各行のデータ要素の配列における下限位置を特定する位置特定手段、前記第二データテーブルの行のデータ要素と、当該行のデータ要素を用いて特定した前記下限位置であって前記昇順ソート後の前記第一データテーブルの配列における前記下限位置を持つ行のデータ要素とが一致する統合対象行を、前記第二データテーブルと前記第一データテーブルとにおいて特定し、少なくともそれら前記第二データテーブルと前記第一データテーブルとの前記統合対象行を統合した統合データテーブルを生成する統合手段、として機能させる。
 本発明によれば、統合データテーブルの生成において、処理量を軽減することができる。
本実施形態による統合装置を備えた情報処理システムの構成を示す図である。 本実施形態による統合装置のハードウェア構成を示す図である。 本実施形態による統合装置の機能ブロック図である。 本実施形態による統合データテーブルの生成例を示す図である。 本実施形態による統合対象の2つのデータテーブルの例を示す第一の図である。 本実施形態による統合装置の処理フローを示す図である。 本実施形態による統合装置の処理概要を示す第一の図である。 本実施形態による統合対象の2つのデータテーブルの例を示す第二の図である。 本実施形態による統合装置の処理概要を示す第二の図である。 本実施形態による統合装置の最小構成を示す図である。 本実施形態による最小構成による統合装置の処理フローを示す図である。
 以下、本発明の一実施形態による統合装置を図面を参照して説明する。
 図1は同実施形態による統合装置を備えた情報処理システムの構成を示す図である。
 図1が示すように、情報処理システム100は、統合装置1と端末2とを通信ネットワークにより接続して構成されてよい。統合装置1は、あらかじめ自装置などで記憶する少なくとも2つのデータテーブルを、1つのデータテーブルへと統合した統合データテーブルを生成する。端末2は統合装置1を操作するユーザが利用する。統合装置1と端末2とはそれぞれコンピュータである。
 図2は統合装置のハードウェア構成を示す図である。
 図2で示すように、統合装置1は、CPU(Central Processing Unit)101、ROM(Read Only Memory)102、RAM(Random Access Memory)103、データベース104、通信モジュール105等の各ハードウェアを備えたコンピュータである。なお、端末2も、同様のハードウェアを備えたコンピュータである。
 図3は統合装置の機能ブロック図である。
 統合装置1は、統合データテーブル生成プログラムを実行する。これにより統合装置1は、制御部11、ソート部12、ユニーク判定部13、位置特定部14、統合部15の各機能を発揮する。
 制御部11は、統合装置1の各機能部を制御する。
 ソート部12は、少なくとも大小比較のできるデータ要素を一つの行の情報として含むデータテーブルの各行を、当該行に含まれるデータ要素に基づいてソートする。
 ユニーク判定部13は、少なくとも大小比較のできるデータ要素を一つの行の情報として含む2つのデータテーブルのうちの第一データテーブルのデータ要素それぞれがユニークであるかを判定する。
 位置特定部14は、第一データテーブルのデータ要素それぞれがユニークである場合には、2つのデータテーブルのうちの第二データテーブルの各行のデータ要素と第一データテーブルの各行のデータ要素を用いた昇順ソート後の各行のデータ要素との大小比較を行う。位置特定部14は、その大小比較を行って、昇順ソートに適合するように第二データテーブルの行を昇順ソート後の第一データテーブルの最下行に加えることのできる下限位置を特定する。
 統合部15は、第二データテーブルの行のデータ要素と、当該行のデータ要素を用いて特定した昇順ソート後の第一データテーブルにおける下限位置の昇順ソートにおける次の行のデータ要素とが一致する場合に、それらデータ要素を示す統合対象行を、第二データテーブルと第一データテーブルとにおいて特定する。統合部15は、少なくともそれら第二データテーブルと第一データテーブルとの統合対象行を統合した統合データテーブルを生成する。
 図4は統合データテーブルの生成例を示す図である。
 図4で示す統合データテーブルの生成例では、購入履歴テーブル41と、購入者テーブル42の2つのデータテーブルを統合した統合データテーブル43を生成する例を示している。購入履歴テーブル41と、購入者テーブル42の2つのデータテーブルは、それぞれ大小比較のできるデータ要素として購入者IDを、各行のデータ要素として含んでいる。なお、購入履歴テーブル41は2つのデータテーブルのうちの第一データテーブル、購入者テーブル42を2つのデータテーブルのうちの第二データテーブルと見做すことができる。購入者テーブル42を2つのデータテーブルのうちの第一データテーブル、購入履歴テーブル41を2つのデータテーブルのうちの第二データテーブルと見做してもよい。
 購入履歴テーブル41は、購入者ID、その購入者IDが示す購入者の購入した商品の名称(商品名)、商品の価格、購入日を示す日付、を紐づけたデータテーブルである。購入者テーブル42は、購入者ID、その購入者IDの購入者の名前、年齢、を紐づけたデータテーブルである。購入者IDに基づいて、それら二つのデータテーブルを統合することにより、購入者ID、商品名、価格、日付、名前、年齢を紐づけた、統合データテーブル43を生成することができる。ここで、統合データテーブル43には、購入者テーブル42に含まれる購入者ID;2、名前;ハナコ、年齢;45を含む行が統合されていない。これは、購入履歴テーブル41において、購入者ID;2、名前;ハナコ、年齢;45で示される人物の購入履歴がない為である。以下、このような統合データテーブルの生成について順を追って説明する。なお統合データテーブルには、購入者ID;2、名前;ハナコ、年齢;45で示される人物の情報を統合してもよい。この場合、当該人物の情報としての商品名、価格、日付の欄に情報が含まれない(NULL)状態となる場合がある。
 図5は統合対象の2つのデータテーブルの例を示す第一の図である。
 本実施形態による統合対象の2つのデータテーブルである、右テーブル51(第一データテーブル)と左テーブル52(第二データテーブル)とを図5に示す。右テーブル51と左テーブル52のそれぞれは、行IDとキーとを紐づけた行を複数行有している。本実施形態において、右テーブル51と、左テーブル52の2つのデータテーブルは、それぞれ大小比較のできるデータ要素となるキーを、各行のデータ要素として含んでいる。
 図6は統合装置の処理フローを示す図である。
 図7は統合装置の処理概要を示す第一の図である。
 ユーザは端末2を操作して統合装置1にアクセスする。そしてユーザは端末2を操作して、統合装置1に統合対象となる2つのデータテーブルの指定と、それらデータテーブルにおいて大小比較のできるデータ要素の指定と、統合開始の指示を与える。これにより、統合装置1は2つのデータテーブルの統合処理を開始する(ステップS101)。2つのデータテーブルは、図5で示した右テーブル51(第一データテーブル)と、左テーブル52(第二データテーブル)であるとする。なお2つのデータテーブルにおいて大小比較のできるデータ要素の種類は同じであるとする。図6においてはキーが大小比較のできるデータ要素である。2つのデータテーブルにおけるキーの情報は、同じ種類の情報である。
 統合装置1の制御部10は統合開始の指示を受け付けると、ソート部12に対して、大小比較のできるデータ要素の昇順ソートを指示する。ソート部12は、右テーブルと左テーブルのそれぞれの各行を、キーを用いて昇順にソートする(ステップS102)。これによりソート部12は、図7(1)で示すように、右テーブル51の各行のキーが、上から順に「1」、「2」、「3」、「6」となるよう右テーブル51の各行を昇順に並び替える。またソート部12は、図7(1)で示すように、左テーブル52の各行のキーが、上から順に「1」、「3」、「3」、「5」となるよう左テーブル52を並び替える。
 ソートが完了すると制御部10は、ユニーク判定部13に処理を指示する。ユニーク判定部13は、右テーブル51の各行の大小比較のできるデータ要素としてのキーがそれぞれユニークかを判定する(ステップS103)。ユニーク判定部13は、判定結果を制御部10へ出力する。制御部10は、右テーブル51の各行の大小比較のできるデータ要素としてのキーがそれぞれユニークである場合、そのまま右テーブル51を第一データテーブル、左テーブル52を第二データテーブルと定義して、処理負荷軽減手法による以下のデータテーブルの統合処理を開始する。
 ユニーク判定部13は、右テーブル51の各行の大小比較のできるデータ要素としてのキーがそれぞれユニークでない場合、次に左テーブル52の各行の大小比較のできるデータ要素としてのキーがそれぞれユニークかを判定する(ステップS104)。ユニーク判定部13は、判定結果を制御部10へ出力する。制御部10は、右テーブル51の各行の大小比較のできるデータ要素としてのキーがそれぞれユニークである場合、右テーブル51と左テーブル52の第一データテーブルと第二データテーブルの定義を逆に入れ替えて、左テーブル52を第一データテーブル、右テーブル51を第二データテーブルと定義し、処理負荷軽減手法による以下のデータテーブルの統合処理を開始する。今、左テーブル52の各行の大小比較のできるデータ要素としてのキーがそれぞれユニークでない。つまり、左テーブル52においてキー「3」を有する行が2行ある。従って、右テーブル51を第一データテーブル、左テーブル52を第二データテーブルと定義して、処理負荷軽減手法による以下のデータテーブルの統合処理を開始する場合の説明を続ける。
 なお、ユニーク判定部13は、右テーブル51の各行の大小比較のできるデータ要素としてのキーがそれぞれユニークでなく、左テーブル52の各行の大小比較のできるデータ要素としてのキーもそれぞれユニークでない場合、その判定結果を制御部10へ出力する。制御部10は、いずれのデータテーブルも各行の大小比較のできるデータ要素としてのキーがそれぞれユニークでない場合、処理負荷を軽減することができないデータテーブルの統合処理へ切り替えると判定する(ステップS105)。
 なお上述の処理においては、ソート部12が、右テーブル51と左テーブル52の両方のデータテーブルにおいて、各行の大小比較のできるデータ要素としてのキーを昇順にソートしているが、少なくとも、大小比較のできるデータ要素としてのキーがそれぞれユニークとなるデータテーブルを、ソートすればよい。
 制御部10は、処理負荷軽減手法によるデータテーブルの統合処理を開始した場合、その処理負荷軽減手法によるデータテーブルの統合処理を位置特定部14へ出力する。位置特定部14は、n=1と設定し、左テーブル52のn=1行目を特定する。左テーブル52の1(n=1)行目は行ID=L3の行である。位置特定部14は、L3行のキー「1」を取得する。位置特定部14は、左テーブル52のL3の行のデータ要素であるキー「1」と、右テーブル51の各行のデータ要素であるキーを用いた昇順ソート後の各行のキーとの大小比較を行って、昇順ソートに適合するように左テーブル52のL3行を昇順ソート後の右テーブル51の最下行に加えることのできる下限位置を特定する。ここで、図7の(1)で示すように、右テーブル51において各行の間をそれぞれ境界位置B0~B4と呼ぶこととする。左テーブル52のL3の行のデータ要素であるキー「1」と、右テーブル51の各行のデータ要素であるキーを用いた昇順ソート後の各行のデータ要素との大小比較を行うと、昇順ソートに適合するように左テーブル52のL3行を昇順ソート後の右テーブル51の最下行に加えることのできる下限位置は、境界位置B0となる。つまりこの場合、下限位置はB0である。
 同様に位置特定部14は、n=n+1によりn=2と設定し、左テーブル52のn=2行目を特定する。左テーブル52の2(n=2)行目は行ID=L0の行である。位置特定部14は、L0行のキー「3」を取得する。位置特定部14は、左テーブル52のL0の行のデータ要素であるキー「3」と、右テーブル51の各行のデータ要素であるキーを用いた昇順ソート後の各行のキーとの大小比較を行って、昇順ソートに適合するように左テーブル52のL0行を昇順ソート後の右テーブル51の最下行に加えることのできる下限位置を特定する。左テーブル52のL0の行のデータ要素であるキー「3」と、右テーブル51の各行のデータ要素であるキーを用いた昇順ソート後の各行のデータ要素との大小比較を行うと、昇順ソートに適合するように左テーブル52のL0行を昇順ソート後の右テーブル51の最下行に加えることのできる下限位置は、境界位置B2となる。つまりこの場合、下限位置はB2である。
 同様に位置特定部14は、n=n+1によりn=3と設定し、左テーブル52のn=3行目を特定する。左テーブル52の3(n=3)行目は行ID=L2の行である。位置特定部14は、L2行のキー「3」を取得する。位置特定部14は、左テーブル52のL2の行のデータ要素であるキー「3」と、右テーブル51の各行のデータ要素であるキーを用いた昇順ソート後の各行のキーとの大小比較を行って、昇順ソートに適合するように左テーブル52のL2行を昇順ソート後の右テーブル51の最下行に加えることのできる下限位置を特定する。左テーブル52のL2の行のデータ要素であるキー「3」と、右テーブル51の各行のデータ要素であるキーを用いた昇順ソート後の各行のデータ要素との大小比較を行うと、昇順ソートに適合するように左テーブル52のL2行を昇順ソート後の右テーブル51の最下行に加えることのできる下限位置は、境界位置B2となる。つまりこの場合、下限位置はB2である。
 同様に位置特定部14は、n=n+1によりn=4と設定し、左テーブル52のn=4行目を特定する。左テーブル52の4(n=4)行目は行ID=L1の行である。位置特定部14は、L1行のキー「5」を取得する。位置特定部14は、左テーブル52のL1の行のデータ要素であるキー「5」と、右テーブル51の各行のデータ要素であるキーを用いた昇順ソート後の各行のキーとの大小比較を行って、昇順ソートに適合するように左テーブル52のL1行を昇順ソート後の右テーブル51の最下行に加えることのできる下限位置を特定する。左テーブル52のL1の行のデータ要素であるキー「5」と、右テーブル51の各行のデータ要素であるキーを用いた昇順ソート後の各行のデータ要素との大小比較を行うと、昇順ソートに適合するように左テーブル52のL1行を昇順ソート後の右テーブル51の最下行に加えることのできる下限位置は、境界位置B3となる。つまりこの場合、下限位置はB3である。
 これにより位置特定部14は、左テーブル52のL3行を昇順ソート後の右テーブル51の最下行に加えることのできる下限位置をB0と特定する。また位置特定部14は、左テーブル52のL0行を昇順ソート後の右テーブル51の最下行に加えることのできる下限位置をB2と特定する。また位置特定部14は、左テーブル52のL2行を昇順ソート後の右テーブル51の最下行に加えることのできる下限位置をB2と特定する。また位置特定部14は、左テーブル52のL1行を昇順ソート後の右テーブル51の最下行に加えることのできる下限位置をB3と特定する。つまり、位置特定部14は、左テーブル52の全ての行についての、昇順ソート後の右テーブル51の最下行に加えることのできる下限位置を特定する(ステップS106)。そして位置特定部14は、左テーブル52の行IDと、その行IDについて特定した下限位置とを紐づけた位置特定テーブル53を生成する。そして、位置特定部14は、制御部10へ処理終了を出力する。
 当該位置特定部14の処理は、第一データテーブル(右テーブル51)のデータ要素それぞれがユニークである場合に、2つのデータテーブルのうちの第二データテーブル(左テーブル52)の各行のデータ要素と第一データテーブル(右テーブル51)の各行のデータ要素を用いた昇順ソート後の各行のデータ要素との大小比較を行って、昇順ソートに適合するように第二データテーブル(左テーブル52)の行を昇順ソート後の第一データテーブル(右テーブル51)の最下行に加えることのできる下限位置を特定する処理の一態様である。なお上述の大小比較は、二分探索を用いて行う。または大小比較は他の探索手法を用いてもよい。例えば大小比較を、単純探索により行ってもよい。データ要素であるキーの昇順ソート後に大小比較を行うため、二分探索をすることで処理量、処理負荷を軽減することができる。
 制御部10は次に、統合部15に2つのデータテーブルの統合を指示する。すると統合部15は、左テーブル52と、右テーブル51と、位置特定テーブル53とを参照し、n=1と設定し、左テーブルのn=1行目の行(行ID=L3)のデータ要素であるキー「1」と、当該行L3のデータ要素であるキー「1」を用いて特定した昇順ソート後の右テーブル51における下限位置B0の昇順ソートにおける次の行R1のデータ要素であるキー「1」とが一致するかを判定する。この場合キーはそれぞれ「1」であるため一致する。従って、統合部15は、それら行L3と行R1を統合対象行と特定し、それら行L3と行R1とを統合した、行ID「L3」、行ID「R1」、キー「1」を行に含む統合データテーブルを生成する。
 統合部15は次に、n=n+1=2と設定し、左テーブルのn=2行目の行(行ID=L0)のデータ要素であるキー「3」と、当該行L0のデータ要素であるキー「3」を用いて特定した昇順ソート後の右テーブル51における下限位置B2の昇順ソートにおける次の行R2のデータ要素であるキー「3」とが一致するかを判定する。この場合キーはそれぞれ「3」であるため一致する。従って、統合部15は、それら行L0と行R2を統合対象行と特定し、それら行L0と行R2とを統合した、行ID「L0」、行ID「R2」、キー「3」を含む行を統合データテーブルにマージする。
 統合部15は次に、n=n+1=3と設定し、左テーブルのn=3行目の行(行ID=L2)のデータ要素であるキー「3」と、当該行L2のデータ要素であるキー「3」を用いて特定した昇順ソート後の右テーブル51における下限位置B2の昇順ソートにおける次の行R2のデータ要素であるキー「3」とが一致するかを判定する。この場合キーはそれぞれ「3」であるため一致する。従って、統合部15は、それら行L2と行R2を統合対象行と特定し、それら行L2と行R2とを統合した、行ID「L2」、行ID「R2」、キー「3」を含む行を統合データテーブルにマージする。
 統合部15は次に、n=n+1=4と設定し、左テーブルのn=4行目の行(行ID=L1)のデータ要素であるキー「5」と、当該行L1のデータ要素であるキー「5」を用いて特定した昇順ソート後の右テーブル51における下限位置B3の昇順ソートにおける次の行R3のデータ要素であるキー「6」とが一致するかを判定する。この場合キーはそれぞれ「5」と「6」であるため一致しない。従って、統合部15は、それら行L1と行R3を統合対象行と特定しない。なお、ある統合処理においては、行L1の情報のみを統合データテーブルにマージしてもよい。
 そして統合部15は、左テーブル52の全ての行について同様の統合対象行とするかの特定を行って、統合対象行と特定した左テーブル52の行と、右テーブル51の行とを統合して統合データテーブルにマージする。これにより統合データテーブルを生成する(ステップS107)。
 一方、制御部10は、ステップS105において処理負荷を軽減することができないデータテーブルの統合処理へ切り替えると判定した場合、そのデータテーブルの統合処理を位置特定部14へ出力する。
 図8は統合対象の2つのデータテーブルの例を示す第二の図である。
 右テーブル61(第一データテーブル)と左テーブル62(第二データテーブル)とを図6に示す。右テーブル61と左テーブル62のそれぞれは、行IDとキーとを紐づけた行を複数行有している。図8で示すように右テーブル61と左テーブル62の何れのデータテーブルも、データテーブル内の各行の大小比較のできるデータ要素としてのキーがそれぞれユニークでない。例えば右テーブル61ではキー「1」となる行が2つ存在し、各行の大小比較のできるデータ要素としてのキーがそれぞれユニークでない。また左テーブル62ではキー「3」となる行が2つ存在し、各行の大小比較のできるデータ要素としてのキーがそれぞれユニークでない。このように、いずれのデータテーブルも各行の大小比較のできるデータ要素としてのキーがそれぞれユニークでない場合、以下のデータテーブルの統合処理が行われる。
 図9は統合装置の処理概要を示す第二の図である。
 すでにステップS102により昇順ソートが行われているとすると、図9(2)の右テーブル61で示すように、右テーブル61の各行のキーが、上から順に「1」、「1」「2」、「3」となるよう各行が昇順に並び替えられている。また図9(2)の左テーブル62で示すように、左テーブル62の各行のキーが、上から順に「1」、「3」、「3」、「5」となるよう各行が昇順に並び変えられている。
 そして制御部10からの指示により、位置特定部14は、処理負荷軽減手法によるデータテーブルの統合処理における下限位置の特定と同様の処理を行う。つまり、位置特定部14は、n=1と設定し、左テーブル62のn=1行目を特定する。左テーブル62の1(n=1)行目は行ID=L3の行である。位置特定部14は、L3行のキー「1」を取得する。位置特定部14は、左テーブル62のL3の行のデータ要素であるキー「1」と、右テーブル61の各行のデータ要素であるキーを用いた昇順ソート後の各行のキーとの大小比較を行って、昇順ソートに適合するように左テーブル62のL3行を昇順ソート後の右テーブル61の最下行に加えることのできる下限位置を特定する。ここで、図9の(1)で示すように、右テーブル61において各行の間をそれぞれ位置B0~B4と呼ぶこととする。左テーブル62のL3の行のデータ要素であるキー「1」と、右テーブル61の各行のデータ要素であるキーを用いた昇順ソート後の各行のデータ要素との大小比較を行うと、昇順ソートに適合するように左テーブル62のL3行を昇順ソート後の右テーブル61の最下行に加えることのできる下限位置は、境界位置B0となる。つまりこの場合、下限位置はB0である。
 同様に位置特定部14は、n=n+1によりn=2と設定し、左テーブル62のn=2行目を特定する。左テーブル62の2(n=2)行目は行ID=L0の行である。位置特定部14は、L0行のキー「3」を取得する。位置特定部14は、左テーブル62のL0の行のデータ要素であるキー「3」と、右テーブル61の各行のデータ要素であるキーを用いた昇順ソート後の各行のキーとの大小比較を行って、昇順ソートに適合するように左テーブル62のL0行を昇順ソート後の右テーブル61の最下行に加えることのできる下限位置を特定する。左テーブル62のL0の行のデータ要素であるキー「3」と、右テーブル61の各行のデータ要素であるキーを用いた昇順ソート後の各行のデータ要素との大小比較を行うと、昇順ソートに適合するように左テーブル62のL0行を昇順ソート後の右テーブル61の最下行に加えることのできる下限位置は、境界位置B3となる。つまりこの場合、下限位置はB3である。
 同様に位置特定部14は、n=n+1によりn=3と設定し、左テーブル62のn=3行目を特定する。左テーブル62の3(n=3)行目は行ID=L2の行である。位置特定部14は、L2行のキー「3」を取得する。位置特定部14は、左テーブル62のL2の行のデータ要素であるキー「3」と、右テーブル61の各行のデータ要素であるキーを用いた昇順ソート後の各行のキーとの大小比較を行って、昇順ソートに適合するように左テーブル62のL2行を昇順ソート後の右テーブル61の最下行に加えることのできる下限位置を特定する。左テーブル62のL2の行のデータ要素であるキー「3」と、右テーブル61の各行のデータ要素であるキーを用いた昇順ソート後の各行のデータ要素との大小比較を行うと、昇順ソートに適合するように左テーブル62のL2行を昇順ソート後の右テーブル61の最下行に加えることのできる下限位置は、境界位置B3となる。つまりこの場合、下限位置はB3である。
 同様に位置特定部14は、n=n+1によりn=4と設定し、左テーブル62のn=4行目を特定する。左テーブル62の4(n=4)行目は行ID=L1の行である。位置特定部14は、L1行のキー「5」を取得する。位置特定部14は、左テーブル62のL1の行のデータ要素であるキー「5」と、右テーブル61の各行のデータ要素であるキーを用いた昇順ソート後の各行のキーとの大小比較を行って、昇順ソートに適合するように左テーブル62のL1行を昇順ソート後の右テーブル61の最下行に加えることのできる下限位置を特定する。左テーブル62のL1の行のデータ要素であるキー「5」と、右テーブル61の各行のデータ要素であるキーを用いた昇順ソート後の各行のデータ要素との大小比較を行うと、昇順ソートに適合するように左テーブル62のL1行を昇順ソート後の右テーブル61の最下行に加えることのできる下限位置は、境界位置B4となる。つまりこの場合、下限位置はB4である。
 これにより位置特定部14は、左テーブル62のL3行を昇順ソート後の右テーブル61の最下行に加えることのできる下限位置をB0と特定する。また位置特定部14は、左テーブル62のL0行を昇順ソート後の右テーブル61の最下行に加えることのできる下限位置をB3と特定する。また位置特定部14は、左テーブル62のL2行を昇順ソート後の右テーブル61の最下行に加えることのできる下限位置をB3と特定する。また位置特定部14は、左テーブル62のL1行を昇順ソート後の右テーブル61の最下行に加えることのできる下限位置をB4と特定する。つまり、位置特定部14は、左テーブル62の全ての行についての、昇順ソート後の右テーブル61の最下行に加えることのできる下限位置を特定する(ステップS201)。
 当該位置特定部14のステップS201の処理は、第一データテーブル(右テーブル61)のデータ要素それぞれがユニークでない場合に、2つのデータテーブルのうちの第二データテーブル(左テーブル62)の各行のデータ要素と第一データテーブル(右テーブル61)の各行のデータ要素を用いた昇順ソート後の各行のデータ要素との大小比較を行って、昇順ソートに適合するように第二データテーブル(左テーブル62)の行を昇順ソート後の第一データテーブル(右テーブル61)の最下行に加えることのできる下限位置を特定する処理の一態様である。上述の大小比較は、二分探索を用いて行う。または大小比較は他の探索手法を用いてもよい。例えば大小比較を単純探索により行ってもよい。データ要素であるキーの昇順ソート後に大小比較を行うため、二分探索をすることで処理量、処理負荷を軽減することができる。
 次に位置特定部14は、処理負荷軽減手法によるデータテーブルの統合処理において行わなかった上限位置の特定を行う。つまり、位置特定部14は、n=1と設定し、左テーブル52のn=1行目を特定する。左テーブル52の1(n=1)行目は行ID=L3の行である。位置特定部14は、L3行のキー「1」を取得する。位置特定部14は、左テーブル52のL3の行のデータ要素であるキー「1」と、右テーブル51の各行のデータ要素であるキーを用いた昇順ソート後の各行のキーとの大小比較を行って、昇順ソートに適合するように左テーブル52のL3行を昇順ソート後の右テーブル51の最上行に加えることのできる上限位置を特定する。左テーブル62のL3の行のデータ要素であるキー「1」と、右テーブル61の各行のデータ要素であるキーを用いた昇順ソート後の各行のデータ要素との大小比較を行うと、昇順ソートに適合するように左テーブル62のL3行を昇順ソート後の右テーブル61の最上行に加えることのできる上限位置は、境界位置B2となる。つまりこの場合、上限位置はB2である。
 同様に位置特定部14は、n=n+1によりn=2と設定し、左テーブル62のn=2行目を特定する。左テーブル62の2(n=2)行目は行ID=L0の行である。位置特定部14は、L0行のキー「3」を取得する。位置特定部14は、左テーブル62のL0の行のデータ要素であるキー「3」と、右テーブル61の各行のデータ要素であるキーを用いた昇順ソート後の各行のキーとの大小比較を行って、昇順ソートに適合するように左テーブル62のL0行を昇順ソート後の右テーブル61の最上行に加えることのできる上限位置を特定する。左テーブル62のL0の行のデータ要素であるキー「3」と、右テーブル61の各行のデータ要素であるキーを用いた昇順ソート後の各行のデータ要素との大小比較を行うと、昇順ソートに適合するように左テーブル62のL0行を昇順ソート後の右テーブル61の最上行に加えることのできる上限位置は、境界位置B4となる。つまりこの場合、上限位置はB4である。
 同様に位置特定部14は、n=n+1によりn=3と設定し、左テーブル62のn=3行目を特定する。左テーブル62の3(n=3)行目は行ID=L2の行である。位置特定部14は、L2行のキー「3」を取得する。位置特定部14は、左テーブル62のL2の行のデータ要素であるキー「3」と、右テーブル61の各行のデータ要素であるキーを用いた昇順ソート後の各行のキーとの大小比較を行って、昇順ソートに適合するように左テーブル62のL2行を昇順ソート後の右テーブル61の最上行に加えることのできる上限位置を特定する。左テーブル62のL2の行のデータ要素であるキー「3」と、右テーブル61の各行のデータ要素であるキーを用いた昇順ソート後の各行のデータ要素との大小比較を行うと、昇順ソートに適合するように左テーブル62のL2行を昇順ソート後の右テーブル61の最上行に加えることのできる上限位置は、境界位置B4となる。つまりこの場合、上限位置はB4である。
 同様に位置特定部14は、n=n+1によりn=4と設定し、左テーブル62のn=4行目を特定する。左テーブル62の4(n=4)行目は行ID=L1の行である。位置特定部14は、L1行のキー「5」を取得する。位置特定部14は、左テーブル62のL1の行のデータ要素であるキー「5」と、右テーブル61の各行のデータ要素であるキーを用いた昇順ソート後の各行のキーとの大小比較を行って、昇順ソートに適合するように左テーブル62のL1行を昇順ソート後の右テーブル61の最上行に加えることのできる上限位置を特定する。左テーブル62のL1の行のデータ要素であるキー「5」と、右テーブル61の各行のデータ要素であるキーを用いた昇順ソート後の各行のデータ要素との大小比較を行うと、昇順ソートに適合するように左テーブル62のL1行を昇順ソート後の右テーブル61の最上行に加えることのできる上限位置は、境界位置B4となる。つまりこの場合、上限位置はB4である。
 これにより位置特定部14は、左テーブル62のL3行を昇順ソート後の右テーブル61の最上行に加えることのできる上限位置をB2と特定する。また位置特定部14は、左テーブル62のL0行を昇順ソート後の右テーブル61の最上行に加えることのできる上限位置をB4と特定する。また位置特定部14は、左テーブル62のL2行を昇順ソート後の右テーブル61の最上行に加えることのできる上限位置をB4と特定する。また位置特定部14は、左テーブル62のL1行を昇順ソート後の右テーブル61の最上行に加えることのできる上限位置をB4と特定する。つまり、位置特定部14は、左テーブル62の全ての行についての、昇順ソート後の右テーブル61の最上行に加えることのできる上限位置を特定する(ステップS202)。そして位置特定部14は、左テーブル62の行IDと、その行IDについて特定した下限位置と、上限位置とを紐づけた位置特定テーブル63を生成する。そして、位置特定部14は、制御部10へ処理終了を出力する。
 当該位置特定部14の処理は、第一データテーブル(右テーブル61)のデータ要素それぞれがユニークでない場合に、2つのデータテーブルのうちの第二データテーブル(左テーブル62)の各行のデータ要素と第一データテーブル(右テーブル61)の各行のデータ要素を用いた昇順ソート後の各行のデータ要素との大小比較を行って、昇順ソートに適合するように第二データテーブル(左テーブル62)の行を昇順ソート後の第一データテーブル(右テーブル61)の最上行に加えることのできる上限位置を特定する処理の一態様である。なお上述の上限位置の特定における大小比較も、二分探索を用いて行う。または上限位置の特定における大小比較は他の探索手法を用いてもよい。例えば上限位置の特定における大小比較を単純探索を用いて行ってもよい。データ要素であるキーの昇順ソート後に大小比較を行うため、二分探索をすることで処理量、処理負荷を軽減することができる。
 制御部10は次に、統合部15に2つのデータテーブルの統合を指示する。すると統合部15は、左テーブル62と、右テーブル61と、位置特定テーブル63とを参照し、n=1と設定し、左テーブル62のn=1行目の行(行ID=L3)のデータ要素であるキー「1」と、当該行L3のデータ要素であるキー「1」を用いて特定した昇順ソート後の右テーブル61における下限位置B0の昇順ソートにおける次の行R1のデータ要素であるキー「1」とが一致するかを判定する。この場合キーはそれぞれ「1」であるため一致する。従って、統合部15は、それら行L3と行R1を統合対象行と特定し、それら行L3と行R1とを統合した、行ID「L3」、行ID「R1」、キー「1」を行に含む統合データテーブルを生成する。
 統合部15は左テーブル62のn=1行目の行(行ID=L3)について特定した右テーブル61の上限位置B2の次の行R0のデータ要素との一致判定を行っていない為、当該n=1行目を用いた一致判定を続ける。統合部15は、左テーブルのn=1行目の行(行ID=L3)のデータ要素であるキー「1」と、当該行L3のデータ要素であるキー「1」を用いて特定した昇順ソート後の右テーブル51における下限位置B0の次に上の境界位置B1の昇順ソートにおける次の行R3のデータ要素であるキー「1」とが一致するかを判定する。この場合キーはそれぞれ「1」であるため一致する。従って、統合部15は、それら行L3と行R3を統合対象行と特定し、それら行L3と行R3とを統合した、行ID「L3」、行ID「R3」、キー「1」を含む行を統合データテーブルにマージする。
 統合部15は左テーブル62のn=1行目の行(行ID=L3)について特定した右テーブル61の上限位置B2の次の行のデータ要素との一致判定を行っていない為、当該n=1行目を用いた一致判定を続ける。統合部15は、左テーブルのn=1行目の行(行ID=L3)のデータ要素であるキー「1」と、当該行L3のデータ要素であるキー「1」を用いて特定した昇順ソート後の右テーブル51における境界位置B1の次に上の境界位置B2の昇順ソートにおける次の行R0のデータ要素であるキー「2」とが一致するかを判定する。この場合キーはそれぞれ「1」、「2」であるため一致しない。従って、統合部15は、それら行L3と行R0を統合対象行と特定しない。そして、統合部15は、境界位置B2は左テーブル62のn=1行目の行(行ID=L3)について特定した上限位置であり、これにより、左テーブル62のn=1行目の行(行ID=L3)について特定した右テーブル61の上限位置B2の次の行のデータ要素との一致判定を行ったため、n=1行目の処理を終了する。
 次に統合部15は、左テーブル62と、右テーブル61と、位置特定テーブル63とを参照し、n=n+1=2と設定し、左テーブル62のn=2行目の行(行ID=L0)のデータ要素であるキー「3」と、当該行L0のデータ要素であるキー「3」を用いて特定した昇順ソート後の右テーブル61における下限位置B3の昇順ソートにおける次の行R2のデータ要素であるキー「3」とが一致するかを判定する。この場合キーはそれぞれ「3」であるため一致する。従って、統合部15は、それら行L0と行R2を統合対象行と特定し、それら行L0と行R2とを統合した、行ID「L0」、行ID「R2」、キー「3」を含む行を統合データテーブルにマージする。
 統合部15は左テーブル62のn=2行目の行(行ID=L0)について特定した右テーブル61の上限位置B4の次の行のデータ要素との一致判定を行っていない為、当該n=2行目を用いた一致判定を続ける。統合部15は、左テーブル62のn=2行目の行(行ID=L0)のデータ要素であるキー「3」と、当該行L0のデータ要素であるキー「3」を用いて特定した昇順ソート後の右テーブル61における下限位置B3の次に上の境界位置B4の昇順ソートにおける次の行のデータ要素であるキーとが一致するかを判定する。この場合、統合部15は、境界位置B4の昇順ソートにおける次の行がなく、境界位置B4は左テーブル62のn=2行目の行(行ID=L0)について特定した上限位置であるため、処理を終了する。
 次に統合部15は、左テーブル62と、右テーブル61と、位置特定テーブル63とを参照し、n=n+1=3と設定し、左テーブル62のn=3行目の行(行ID=L2)のデータ要素であるキー「3」と、当該行L2のデータ要素であるキー「3」を用いて特定した昇順ソート後の右テーブル61における下限位置B3の昇順ソートにおける次の行R2のデータ要素であるキー「3」とが一致するかを判定する。この場合キーはそれぞれ「3」であるため一致する。従って、統合部15は、それら行L2と行R2を統合対象行と特定し、それら行L2と行R2とを統合した、行ID「L2」、行ID「R2」、キー「3」を含む行を統合データテーブルにマージする。
 統合部15は左テーブル62のn=3行目の行(行ID=L2)について特定した右テーブル61の上限位置B4の次の行のデータ要素との一致判定を行っていない為、当該n=3行目を用いた一致判定を続ける。統合部15は、左テーブル62のn=3行目の行(行ID=L2)のデータ要素であるキー「3」と、当該行L2のデータ要素であるキー「3」を用いて特定した昇順ソート後の右テーブル61における下限位置B3の次に上の境界位置B4の昇順ソートにおける次の行のデータ要素であるキーとが一致するかを判定する。この場合、統合部15は、境界位置B4の昇順ソートにおける次の行がなく、境界位置B4は左テーブル62のn=3行目の行(行ID=L2)について特定した上限位置であるため、処理を終了する。
 次に統合部15は、左テーブル62と、右テーブル61と、位置特定テーブル63とを参照し、n=n+1=4と設定し、左テーブル62のn=4行目の行(行ID=L1)のデータ要素であるキー「5」と、当該行L1のデータ要素であるキー「5」を用いて特定した昇順ソート後の右テーブル61における下限位置B4の昇順ソートにおける次の行R2のデータ要素であるキーとが一致するかを判定する。この場合、統合部15は、境界位置B4の昇順ソートにおける次の行がなく、境界位置B4は左テーブル62のn=4行目の行(行ID=L2)について特定した上限位置でもあるため、処理を終了する。
 そして統合部15は、左テーブル62の全ての行について同様の統合対象行とするかの特定を行って、統合対象行と特定した左テーブル62の行と、右テーブル61の行とを統合して統合データテーブルにマージする。これにより統合データテーブルを生成する(ステップS203)。
 上述の処理によれば、2つのデータテーブルのうちの第一データテーブルのデータ要素それぞれがユニークである場合には、下限位置を特定するだけでよく、第一データテーブルのデータ要素それぞれがユニークでない場合には、下限位置と上限位置とをそれぞれ特定している。従って、2つのデータテーブルのうちの第一データテーブルのデータ要素それぞれがユニークである場合には、下限位置を特定するのみで、統合データテーブルを生成するにあたり、処理負荷、処理量を軽減することができる。
 図10は統合装置の最小構成を示す図である。
 図11は最小構成による統合装置の処理フローを示す図である。
 図10で示すように統合装置1は、ユニーク判定手段1001、位置特定手段1002、統合手段1003を少なくとも備える。
 ユニーク判定手段1001は、少なくとも大小比較のできるデータ要素を一つの行の情報として含む2つのデータテーブルのうちの第一データテーブルのデータ要素それぞれがユニークであるかを判定する(ステップS301)。
 位置特定手段1002は、第一データテーブルのデータ要素それぞれがユニークである場合には、第二データテーブルの各行のデータ要素と第一データテーブルの各行のデータ要素を用いた昇順ソート後の各行のデータ要素との大小比較を行って、昇順ソートに適合するように第二データテーブルの行を昇順ソート後の第一データテーブルの最下行に加えることのできる下限位置を特定する(ステップS302)。
 統合手段1003は、第二データテーブルの行のデータ要素と、当該行のデータ要素を用いて特定した昇順ソート後の第一データテーブルにおける下限位置の昇順ソートにおける次の行のデータ要素とが一致する場合に、それらデータ要素を示す統合対象行を特定し、少なくともそれら第二データテーブルと第一データテーブルとの統合対象行を統合した統合データテーブルを生成する(ステップS303)。
 ここで、上述の統合装置1は内部に、コンピュータシステムを有している。そして、上述した各処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、CD-ROM、DVD-ROM、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
 また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
1・・・統合装置
2・・・端末
11・・・制御部
12・・・ソート部
13・・・ユニーク判定部
14・・・位置特定部
15・・・統合部
100・・・情報処理システム

Claims (7)

  1.  少なくとも大小比較のできるデータ要素を一つの行の情報として含む2つのデータテーブルのうちの第一データテーブルのデータ要素それぞれがユニークであるかを判定するユニーク判定手段と、
     前記第一データテーブルのデータ要素それぞれがユニークである場合には、前記2つのデータテーブルのうちの第二データテーブルの各行のデータ要素と前記第一データテーブルの各行のデータ要素を用いた昇順ソート後の各行のデータ要素との大小比較を行って、前記昇順ソートに適合するように前記第二データテーブルの行を前記昇順ソート後の前記第一データテーブルの最下行に加えることのできる下限位置を特定する位置特定手段と、
     前記第二データテーブルの行のデータ要素と、当該行のデータ要素を用いて特定した前記昇順ソート後の前記第一データテーブルにおける前記下限位置の前記昇順ソートにおける次の行のデータ要素とが一致する場合に、それらデータ要素を示す統合対象行を、前記第二データテーブルと前記第一データテーブルとにおいて特定し、少なくともそれら前記第二データテーブルと前記第一データテーブルとの前記統合対象行を統合した統合データテーブルを生成する統合手段と、
     を備える統合装置。
  2.  前記ユニーク判定手段は、前記2つのデータテーブルのうちの一方のデータテーブルを前記第一データテーブルとして定義して前記第一データテーブルのデータ要素それぞれがユニークであるかを判定した結果、当該第一データテーブルのデータ要素それぞれがユニークでない場合、前記2つのデータテーブルのうちの他方のデータテーブルを前記第一データテーブルとして新たに定義して前記第一データテーブルのデータ要素それぞれがユニークであるかを判定する
     請求項1に記載の統合装置。
  3.  前記統合手段は、前記第二データテーブルの行のデータ要素と、当該行のデータ要素を用いて特定した前記昇順ソート後の前記第一データテーブルにおける前記下限位置の前記昇順ソートにおける次の行のデータ要素とが一致しない場合には、当該第二データテーブルの行を、前記前記第一データテーブルにおける前記下限位置の前記昇順ソートにおける次の行と統合せずに、前記統合データテーブルにマージする
     請求項2に記載の統合装置。
  4.  前記統合手段は、前記第二データテーブルの行のデータ要素と、当該行のデータ要素を用いて特定した前記昇順ソート後の前記第一データテーブルにおける前記下限位置の前記昇順ソートにおける次の行のデータ要素とが一致しない場合には、当該第一データテーブルにおける前記下限位置の前記昇順ソートにおける次の行を、前記第二データテーブルの行と統合せずに、前記統合データテーブルにマージする
     請求項2または請求項3に記載の統合装置。
  5.  二分探索を用いて前記大小比較を行う請求項1から請求項4の何れか一項に記載の統合装置。
  6.  少なくとも大小比較のできるデータ要素を一つの行の情報として含む2つのデータテーブルのうちの第一データテーブルのデータ要素それぞれがユニークであるかを判定し、
     前記第一データテーブルのデータ要素の配列において当該データ要素それぞれがユニークである場合には、前記2つのデータテーブルのうちの第二データテーブルの各行のデータ要素と前記第一データテーブルの各行のデータ要素を用いた昇順ソート後の各行のデータ要素との大小比較を行って、前記第二データテーブルの各行のデータ要素についての前記昇順ソート後の前記第一データテーブルの各行のデータ要素の配列における下限位置を特定し、
     前記第二データテーブルの行のデータ要素と、当該行のデータ要素を用いて特定した前記下限位置であって前記昇順ソート後の前記第一データテーブルの配列における前記下限位置を持つ行のデータ要素とが一致する統合対象行を、前記第二データテーブルと前記第一データテーブルとにおいて特定し、少なくともそれら前記第二データテーブルと前記第一データテーブルとの前記統合対象行を統合した統合データテーブルを生成する
     データテーブル統合方法。
  7.  統合装置のコンピュータを、
     少なくとも大小比較のできるデータ要素を一つの行の情報として含む2つのデータテーブルのうちの第一データテーブルのデータ要素それぞれがユニークであるかを判定するユニーク判定手段、
     前記第一データテーブルのデータ要素の配列において当該データ要素それぞれがユニークである場合には、前記2つのデータテーブルのうちの第二データテーブルの各行のデータ要素と前記第一データテーブルの各行のデータ要素を用いた昇順ソート後の各行のデータ要素との大小比較を行って、前記第二データテーブルの各行のデータ要素についての前記昇順ソート後の前記第一データテーブルの各行のデータ要素の配列における下限位置を特定する位置特定手段、
     前記第二データテーブルの行のデータ要素と、当該行のデータ要素を用いて特定した前記下限位置であって前記昇順ソート後の前記第一データテーブルの配列における前記下限位置を持つ行のデータ要素とが一致する統合対象行を、前記第二データテーブルと前記第一データテーブルとにおいて特定し、少なくともそれら前記第二データテーブルと前記第一データテーブルとの前記統合対象行を統合した統合データテーブルを生成する統合手段、
     として機能させるプログラム。
PCT/JP2020/019121 2020-05-13 2020-05-13 統合装置、データテーブル統合方法、プログラム WO2021229724A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2022522413A JP7513086B2 (ja) 2020-05-13 2020-05-13 統合装置、データテーブル統合方法、プログラム
PCT/JP2020/019121 WO2021229724A1 (ja) 2020-05-13 2020-05-13 統合装置、データテーブル統合方法、プログラム
US17/924,139 US12086124B2 (en) 2020-05-13 2020-05-13 Integration device, data table integration method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/019121 WO2021229724A1 (ja) 2020-05-13 2020-05-13 統合装置、データテーブル統合方法、プログラム

Publications (1)

Publication Number Publication Date
WO2021229724A1 true WO2021229724A1 (ja) 2021-11-18

Family

ID=78525507

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/019121 WO2021229724A1 (ja) 2020-05-13 2020-05-13 統合装置、データテーブル統合方法、プログラム

Country Status (3)

Country Link
US (1) US12086124B2 (ja)
JP (1) JP7513086B2 (ja)
WO (1) WO2021229724A1 (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09325888A (ja) * 1996-06-04 1997-12-16 Hitachi Ltd データ処理装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03288967A (ja) 1990-04-06 1991-12-19 Toshiba Corp データベース処理システム
US5664172A (en) 1994-07-19 1997-09-02 Oracle Corporation Range-based query optimizer
JP5913722B1 (ja) * 2015-11-26 2016-04-27 株式会社博報堂 情報処理システム及びプログラム
US11227002B2 (en) * 2015-11-30 2022-01-18 International Business Machines Corporation Method and apparatus for identifying semantically related records
JP6744179B2 (ja) * 2016-09-14 2020-08-19 株式会社エスペラントシステム データ統合方法、データ統合装置、データ処理システム及びコンピュータプログラム
US11699032B2 (en) * 2017-11-03 2023-07-11 Microsoft Technology Licensing, Llc Data set lookup with binary search integration and caching
JP7318646B2 (ja) * 2018-06-27 2023-08-01 ソニーグループ株式会社 情報処理装置、情報処理方法、およびプログラム
EP3641275A1 (de) * 2018-10-18 2020-04-22 Siemens Aktiengesellschaft Verfahren, vorrichtung und computerprogramm zur automatischen verarbeitung von datenbezeichnern
US11016978B2 (en) * 2019-09-18 2021-05-25 Bank Of America Corporation Joiner for distributed databases
US11604797B2 (en) * 2019-11-14 2023-03-14 Microstrategy Incorporated Inferring joins for data sets

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09325888A (ja) * 1996-06-04 1997-12-16 Hitachi Ltd データ処理装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ANONYMOUS: "HiRDB Command Reference; Version 6", HIRDB, December 1997 (1997-12-01), JP, pages 537, XP009532308 *
MATONO, AKIYOSHI ET AL.: "Bound Merge Join: A Skippable Join Algorithm between An Extended B+trees", DEIM FORUM 2010 (10TH ANNUAL MEETING OF THE DATABASE SOCIETY OF JAPAN), 25 May 2010 (2010-05-25), pages 1 - 8, XP055873195, Retrieved from the Internet <URL:http://db-event.jpn.org/deim2010/proceedings/files/E8-4.pdf> [retrieved on 20100609] *

Also Published As

Publication number Publication date
JPWO2021229724A1 (ja) 2021-11-18
JP7513086B2 (ja) 2024-07-09
US12086124B2 (en) 2024-09-10
US20230195711A1 (en) 2023-06-22

Similar Documents

Publication Publication Date Title
JP2009163497A (ja) 事務フロー生成装置およびその方法
WO2021229724A1 (ja) 統合装置、データテーブル統合方法、プログラム
US6968314B1 (en) Enhanced security features for an automated order fulfillment system
JP2000181942A (ja) I/oバッファ動作電源自動チェックシステム
KR102571781B1 (ko) 클러스터 노드 추천 시스템 및 그 제어방법
JP3926303B2 (ja) データ検索装置,方法およびプログラム
JPH096681A (ja) データ管理装置における機密チェック方法および装置
JP2002358305A (ja) データ処理装置及びデータ処理プログラム
JP2006268545A (ja) ファイル結合装置及びファイル結合方法及びプログラム
JP2003150763A (ja) 会計処理方法、及びその方法を実施するためのプログラムを記憶した記録媒体
JPH05314188A (ja) 範囲をもつデータの検索処理方式
JPH06187221A (ja) 文書処理システム
JP6354501B2 (ja) 比較プログラム、比較方法および情報処理装置
JP2001034529A (ja) データベース管理方法及びシステム及びデータベース管理プログラムを格納した記憶媒体
JP2629470B2 (ja) アドレシング決定方法およびその装置
JP2006031382A (ja) データベース管理システム、プログラムおよび記録媒体
JPH04286065A (ja) 文書管理方式
JP2001273170A (ja) システムチェックリスト作成装置と方法およびその処理プログラムを記録した記録媒体
JPH04559A (ja) データ検索方式
JPH09134357A (ja) 文字処理装置
JPH0635710A (ja) 汎用コンピュータオンラインプログラムにおける翻訳名称取得方法
JPH05265822A (ja) ファイルの命名方式
JPH04135266A (ja) 画面表示方式
JPH04138575A (ja) 有限要素データ再作成装置
JPH0535498A (ja) データベース情報変換装置

Legal Events

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

Ref document number: 20936004

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2022522413

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20936004

Country of ref document: EP

Kind code of ref document: A1