Synonymous column candidate selection device and synonymous column candidate selection method
The synonymous column candidate selection device addresses the challenge of selecting similar column candidates by using a candidate selection unit, table relation management, and intermediate table generation to enhance data integration efficiency and reduce equipment downtime.
Patent Information
- Application Number
- PCT/JP2025/011560
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-04-19
- Filing Date
- 2025-03-24
- Publication Date
- 2025-10-23
AI Technical Summary
Existing technologies face difficulties in determining whether column characteristics, such as name or type, are similar, making it challenging to easily and appropriately select synonymous column candidates for data conversion in resource sharing intermediation services.
A synonymous column candidate selection device and method that includes a candidate selection unit, a table relation management unit, and an intermediate table generation unit to identify and absorb mapping candidate tables based on primary key similarities and table relations, facilitating the selection of appropriate synonymous columns.
Enables easy and accurate selection of synonymous column candidates, improving data integration efficiency and reducing equipment downtime and costs by enhancing resource sharing among factories.
Smart Images

Figure JP2025011560_23102025_PF_FP_ABST
Abstract
Description
Apparatus and method for selecting synonymous column candidates
[0001] The present invention relates to a synonymous column candidate selection device and is suitable for application to, for example, a synonymous column candidate selection device and method for selecting synonymous column candidates in a plurality of data models.
[0002] In recent years, the problem of long downtimes of factory resources (people and equipment) and reduced profits due to equipment maintenance costs has become a problem, leading to a demand for resource sharing among multiple factories. Therefore, there is a demand for an intermediary service for resource sharing (hereinafter referred to as a "resource sharing intermediary service"). For example, sharing resources such as equipment and manpower among factories can improve the equipment utilization rate and also brings several other benefits.
[0003] For example, if a factory has a process that is backlogged due to equipment with a 100% operating rate, it can reduce lead time by borrowing resources from another factory. Also, if it is necessary to temporarily use expensive manufacturing equipment, borrowing it from another factory can reduce the cost of purchasing new equipment.
[0004] To realize such a resource sharing intermediation service, it is necessary to collect various data (CSV, spreadsheet data, RDB (Relational Database), etc.) such as information about equipment and production plans from factory sites and store them in a common data model (RDB, XML (Extensible Markup Language), etc.) used in the resource sharing intermediation service. However, in such a resource sharing intermediation service, the data model of the factory site data (hereinafter also referred to as the "factory data model") differs from the common data model, so it is necessary to convert the factory site data into common data of the common data model.
[0005] As a technology for supporting data conversion, for example, Patent Document 1 describes a technology for detecting synonymous columns using rare words used in naming tables, i.e., words in a table that characterize the table configuration.
[0006] JP 2018-106400 A
[0007] However, with the technology described in Patent Document 1, it is difficult to determine whether the column characteristics, such as the name or type of the column, are similar, and therefore it is not possible to easily and appropriately select candidates for synonymous columns to be associated with the column in question.
[0008] The present invention has been made in consideration of the above points, and aims to propose a synonymous column candidate selection device and a synonymous column candidate selection method that can easily and appropriately select synonymous column candidates to be associated with a certain column from other data models.
[0009] In order to solve the problem, the present invention includes a candidate selection unit that receives a first data model and a second data model, selects a predetermined table from the second data model, and for each column of the predetermined table, selects a mapping candidate table to be a mapping candidate from among the tables of the first data model based on the characteristics of each column, and determines that a primary key is set in the mapping candidate table if a primary key of a table of the first data model is similar to the characteristics of a column of the primary key of the selected mapping candidate table; a table relation management unit that extracts table relations related to the mapping candidate table and accumulates them in a relational table; and an intermediate table generation unit that determines, for the mapping candidate table in which the primary key is set, whether the mapping candidate table can be absorbed based on the table relations and a predetermined absorption feasibility determination table, and if it is determined that the mapping candidate table can be absorbed, defines an intermediate table to be used provisionally during absorption and the relational table related to the intermediate table, and adds a column of the intermediate table as a column of the mapping candidate table using the primary key.
[0010] Furthermore, in the present invention, the method includes a candidate selection step in which a candidate selection unit receives a first data model and a second data model, selects a predetermined table from the second data model, and for each column of the predetermined table, selects a mapping candidate table to be a mapping candidate from among the tables of the first data model based on characteristics of each column, and determines that a primary key is set in the mapping candidate table if a primary key of a table of the first data model is similar to characteristics of a column of a primary key of the selected mapping candidate table; a table relation management step in which a table relation management unit extracts table relations related to the mapping candidate table and accumulates them in a relational table; and a column addition step in which an intermediate table generation unit determines, for the mapping candidate table in which the primary key is set, whether the mapping candidate table can be absorbed based on the table relations and a predetermined absorption feasibility determination table, and, if it is determined that absorption is possible, defines an intermediate table to be temporarily used during absorption and the relational table related to the intermediate table, and adds a column of the intermediate table as a column of the mapping candidate table using the primary key.
[0011] According to the present invention, candidates for synonymous columns to be associated with a given column can be easily and appropriately selected from other data models.
[0012] 1 is a configuration diagram showing an example of a computer system according to the present embodiment. FIG. 2 is a diagram showing an example of a factory data model and a common data model according to the present embodiment. FIG. 3 is a diagram showing an example of a factory data table. FIG. 4 is a diagram showing an example of a factory data table. FIG. 5 is a diagram showing an example of a factory data table. FIG. 6 is a diagram showing an example of a factory data table. FIG. 7 is a diagram showing an example of a factory data table. FIG. 8 is a flowchart showing an example of a procedure for a mapping candidate selection process. FIG. 9 is a diagram showing an example of a relationship table according to the present embodiment. FIG. 10 is a diagram showing an example of a relationship table according to the present embodiment. FIG. 11 is a diagram showing an example of an intermediate table. FIG. 12 is a diagram showing an example of a relationship table. FIG. 13 is a diagram showing an example of a table obtained as a result of inputting data from the factory data model into the common data model. FIG. 14 is a diagram showing an example of a table obtained as a result of inputting data from the factory data model into the common data model.
[0013] An embodiment of the present invention will be described in detail below with reference to the drawings. Fig. 1 is a system configuration diagram showing an example of the configuration of a computer system including a data integration server 10 according to this embodiment. The computer system includes the data integration server 10, multiple (three in the illustrated example) factory servers 20, 21, and 22, and multiple (three in the illustrated example) clients 30, 31, and 32.
[0014] The data integrating server 10 and the factory servers 20, 21, and 22 are connected via a network 11. The data integrating server 10 and the clients 30, 31, and 32 are connected via a network 12. The networks 11 and 12 may be, for example, a wide area network (WAN), a local area network (LAN), or any other network. The clients 30, 31, and 32 have the same configuration.
[0015] The factory server 20 is a server computer installed at a first base, the factory server 21 is a server computer installed at a second base, and the factory server 22 is a server computer installed at a third base. Since the factory servers 20, 21, and 22 have the same configuration, the following description will mainly focus on the factory server 20.
[0016] The factory server 20 includes, for example, a CPU (Central Processing Unit) 201 , a main memory device 202 , a network interface (hereinafter abbreviated as “I / F”) 203 , and a storage device 204 .
[0017] The main memory device 202 is, for example, a RAM, and stores programs executed by the CPU 201 and necessary information. The CPU 201 executes various processes in accordance with the programs and information stored in the main memory device 202. The network I / F 203 is an interface for communicating with other devices such as the data integration server 10 via the network 11.
[0018] The storage device 204 is, for example, a solid state drive (SSD) or a hard disk device, and stores programs executed by the CPU 201 and data used by the CPU 201. The storage device 204 has a factory data model 210. The factory data model 210 is an example of a first data model. The factory data model 210 is, for example, a data model that stores various data generated in a factory (hereinafter also referred to as "factory data"). The data model is, for example, an RDB (Relational Database) or an EML (Extensible Markup Language) that manages factory data in a table format that manages data groups using columns and rows. Details of the factory data will be described later.
[0019] The data integration server 10 is an example of a synonymous column candidate selection device, and executes a process (synonymous column candidate selection process) for selecting candidates (hereinafter referred to as "synonymous column candidates") for columns in the common data model 140 that are synonymous with columns in the factory data model 210 (hereinafter referred to as "synonymous columns") based on the factory data model 210 transmitted from the factory servers 20, 21, and 22 and the common data model 140 as an example of a second data model. A synonymous column is a column that belongs to a data model different from the data model to which a certain column belongs, and is synonymous with the certain column. Note that a synonymous column refers to a column that stores the same type of data as the data stored in a certain column.
[0020] Factory data includes information about workers working in the factory, manufacturing equipment, and products. Each data model includes multiple tables. Each table includes multiple columns. One of the multiple columns may be designated as a primary key. A primary key is set as a column among the columns of a table to uniquely identify a record (data). Hereinafter, a column that is set as a primary key will be referred to as "having a primary key," and a table without a primary key will be referred to as "not having a primary key." Columns are fields for storing information. Columns may include, for example, the name of a worker, the date and time that equipment is in operation, and product parts.
[0021] The common data model 140 is a data model used to mediate factory data as common data in, for example, a resource sharing mediation service. For example, when mediating factory data in a resource sharing service, the common data includes information such as the names of workers working in the factory and the operating hours of equipment, as well as various other information described below.
[0022] The data integration server 10 includes a CPU 101, a main memory device 102, a storage device 103, and a network interface (hereinafter abbreviated as "I / F") 104. The network I / F 104 is an interface for communicating with other devices such as the factory server 20 via the network 11, and with other devices such as the client 30 via the network 12. The CPU 101 executes various processes, including a synonymous column candidate selection process (described later), in accordance with a program stored in the main memory device 102.
[0023] The storage device 103 is, for example, a hard disk drive or a flash memory, and stores programs executed by the CPU 101 and data used by the CPU 101. In this embodiment, the storage device 103 stores a common data model 140.
[0024] The main memory device 102 is, for example, a RAM (Random Access Memory). The main memory device 102 stores programs executed by the CPU 101 and necessary information. The main memory device 102 stores, as programs, for example, a candidate selection unit 110, a table relationship management unit 120, an intermediate table generation unit 130, and a column determination unit 150. Furthermore, although not shown in FIG. 1 , the main memory device 102 stores a relationship table and an absorption feasibility determination table, which will be described later. The relationship table manages the table relationships between multiple tables. The absorption feasibility determination table manages information for determining whether a mapping candidate table can be absorbed.
[0025] The candidate selection unit 110 executes a process (column mapping process) for selecting synonymous column candidates as mapping candidates based on the results of a column feature determination that determines whether the features of a column in a table of a certain data model are similar to the features of a column in a table of another data model, and a process for determining the mapping type (hereinafter referred to as the "mapping type determination process"). Column features refer to information that characterizes a column, such as a column name, which is the name of the column, or a table name, which is the name of the table to which the column belongs. In this embodiment, the column feature determination uses "similarity" as the degree to which the features of a column in a table of a certain data model are similar to the features of a column in a table of another data model.
[0026] The candidate selection unit 110 performs the column feature determination based on the similarity, which is the degree to which the column features of the table in the factory data model 210 are similar to the column features of the table in the common data model 140 .
[0027] The candidate selection unit 110 determines whether or not a primary key is set in the mapping candidate table according to the following mapping type.
[0028] The mapping type mentioned above indicates whether a primary key is set in a column of the target table. The mapping type determination process determines whether the mapping is for a case where a primary key is set in a column of the target table (mapping with primary key), or for a case where a primary key is not set in any column of the target table (mapping without primary key). Note that the column characteristics are determined in this way depending on whether or not a primary key is present because the likelihood of similarity varying greatly depending on whether or not a primary key is present affects the accuracy of the column mapping process.
[0029] In the column feature determination, the candidate selection unit 110 calculates the similarity of tables using, for example, the following similarity calculation method. This similarity calculation method involves, for example, evaluating the similarity of column names using natural language processing. Specifically, the candidate selection unit 110 calculates, for example, the similarity of the first similar column + the similarity of the second similar column + ... + the similarity of the Nth similar column, and sets the calculation result as the similarity of the tables (N is a natural number). Note that "similar columns" refer to columns in the target table that are provisionally matched to columns in the other table to be compared.
[0030] In the column feature determination, the similarity of column features is calculated for pairs of columns (column pairs) of multiple data models. The candidate selection unit 110, for example, selects tables from the common data model 140, and for the selected tables, selects tables (hereinafter referred to as "mapping candidate tables") that should be mapping candidates for matching with each table in the factory data model 210 based on the results (similarity) of the column feature determination for the features of each column of the selected tables.
[0031] In the mapping type determination process, if the primary key of a table in the factory data model 210 is similar to the primary key of a table in the selected common data model 140, the candidate selection unit 110 determines that the mapping candidate table is a mapping candidate table with a primary key, but otherwise determines that the mapping candidate table is a mapping candidate table without a primary key.
[0032] The table relationship management unit 120 stores the relationships between tables in each data model (hereinafter referred to as "table relationships"). Table relationships are, for example, relationships between tables in the same data model (e.g., many-to-one, one-to-many, one-to-one, etc.). Table relationships may also be information about table relationships customized by the user (e.g., parent-child relationships, copy relationships).
[0033] The intermediate table generating unit 130 determines whether the mapping candidate table can be absorbed based on the mapping type (mapping with primary key or mapping without primary key) obtained by the above-described mapping type determination process and the above-described table relationships.
[0034] If the intermediate table generation unit 130 determines that a mapping candidate table can be absorbed based on the table relationships, it defines an intermediate table (not shown) and a relationship table of the intermediate table (hereinafter simply referred to as a "relationship table"), and adds the columns of the intermediate table to the mapping candidate table.
[0035] Based on the above-mentioned relationship table, the column determination unit 150 extracts the table of the common data model 140 to which the column of the table of the mapped data model belongs and the table of the factory data model 210, and performs column mapping processing by comparing the similarity of the tables while taking into account the above-mentioned relationship table.
[0036] The client 30 includes a CPU 301, a main memory device 302, a user I / F 303, a network I / F 304, and a storage device 305. The clients 31 and 32 have the same configuration as the client 30, and therefore a description thereof will be omitted.
[0037] The CPU 301 executes various processes in accordance with programs stored in the main memory device 302. The main memory device 302 is, for example, a RAM, and stores the programs executed by the CPU 301 and necessary information. The network I / F 304 is an interface for communicating with other devices such as the data integration server 10 via the network 12.
[0038] The storage device 305 is, for example, a hard disk drive or flash memory, and stores programs executed by the CPU 301 and data used by the CPU 301. The user interface (user I / F) 303 displays output results from processing in the data integration server 10 and also accepts input from the user.
[0039] Fig. 2 is a diagram showing an example of each table of the factory data model 210 and the common data model 140. Figs. 3A to 3D show an example of each table of the factory data model 210 shown in Fig. 2, and Figs. 3E and 3F are diagrams showing an example of each table of the common data model 140. Note that in the illustrated example, columns marked with "*" are set as primary keys, and are items for uniquely identifying data (rows, records) in the database.
[0040] 2, the factory data model 210 includes multiple factory data tables 2101, 2102, 2103, and 2104. Each of the factory data tables 2101, 2102, 2103, and 2104 includes one or more columns and manages factory data. Hereinafter, these columns are also referred to as "factory data columns." A factory data column is a column that holds information related to factory data (specifically, data values).
[0041] The factory data model 210 has factory data tables including various columns, such as a factory data table 2101 with the table name "ProductRoute" shown in FIG. 3A, a factory data table 2102 with the table name "AssemblyRoute" shown in FIG. 3B, a factory data table 2103 with the table name "AssemblyOperation" shown in FIG. 3C, and a factory data table 2104 with the table name "OperationType" shown in FIG. 3D.
[0042] 2, the common data model 140 includes multiple common data tables 1401 and 1402. The common data tables 1401 and 1402 have, for example, a "one-to-many" relationship and include one or more common data columns (e.g., "Route ID"). The common data columns are columns that hold information about data (hereinafter also referred to as "common data") that are common to the columns of the multiple common data tables 1401 and 1402.
[0043] The common data model 140 has, as common data tables including various columns, for example, a common data table 1401 with the table name "Route" shown in FIG. 3E and a common data table 1402 with the table name "Operation" shown in FIG. 3F.
[0044] The factory data tables 2101, 2102, 2103, and 2104 have a primary key indicated by an "*" mark, and include a table name indicating the name of the table, a column name indicating the name of the column, a primary key, and data. The table name is the name of the factory data table. The column name is the name of the column. The data is the specific data value for the column.
[0045] For example, the factory data table 2101, whose table name is "ProductRoute", includes the columns "ProductRouteID", "ProductID", "ProductRouteVal", and "ProductRouteType". The data in the column "ProductRouteID" is "ProductRoute1", etc.
[0046] The data integration server 10 and the like according to this embodiment are configured as described above. Next, an example of a method for selecting synonymous column candidates by the data integration server 10 and the like will be described. The synonymous column candidate selection method is outlined as follows: the candidate selection unit 110 receives a factory data model 210 as an example of a first data model and a common data model 140 as an example of a second data model, selects a predetermined table from the common data model 140, and for each column of the predetermined table, selects a mapping candidate table to be a mapping candidate from among the tables in the factory data model 210 based on the characteristics of each column. If the primary key of a table in the factory data model 210 is similar to the characteristics of the primary key column of the selected mapping candidate table, the mapping candidate table is determined to have a primary key set (a mapping candidate table with a primary key). The method includes a candidate selection step, a table relationship management step in which the table relationship management unit 120 extracts table relationships related to each mapping candidate table and stores them in a relationship table 501 (601), and a column addition step in which the intermediate table generation unit 130 determines whether a mapping candidate table, for which a primary key is set, can be absorbed based on the table relationships and a preset absorption feasibility determination table 502. If it is determined that absorption is possible, the method defines an intermediate table to be temporarily used during absorption and a relationship table 501 (601) related to the intermediate table, and adds columns of the intermediate table as columns of the mapping candidate table using the primary key. The synonym column candidate selection method includes a mapping candidate selection process and a mapping type determination process. A detailed description is given below.
[0047] Fig. 4 is a flowchart showing an example of the procedure for the mapping candidate selection process. In this embodiment, an example of the mapping candidate selection process will be described, in which the mapping candidate selection process is performed on each factory data table of the factory data model 210 shown in Fig. 2. Examples of each factory data table include the factory data tables 2101 to 2104 shown in Figs. 3A to 3D.
[0048] The client 30 instructs the data integrating server 10 via the network 12 to acquire the factory data model 210 and the common data model 140. In step S10, the data integrating server 10 receives the factory data model 210 and the common data model 140.
[0049] Specifically, in response to an instruction received from the client 30, the data integration server 10 requests the factory server 20 to transmit the factory data model 210 via the network 11. The factory server 20 acquires the factory data model 210 from the storage device 204 and transmits it to the data integration server 10 via the network 11.
[0050] The data integrating server 10 receives the factory data model 210 from the factory server 20 and stores it in the main memory device 102. The data integrating server 10 also acquires the common data model 140 from the storage device 103 and stores it in the main memory device 102 (step S10).
[0051] Next, in step S20, the candidate selection unit 110 of the data integration server 10 selects a table from the common data model 140 as a mapping candidate table selection process, and for the selected table, selects a mapping candidate table to be used as a mapping candidate from among the tables in the factory data model 210 based on the results (similarity) of column feature determination regarding the features of each column of the selected table. This will be explained in detail below.
[0052] In the common data model 140, for example, the candidate selection unit 110 selects the factory data table 2102 with the table name "AssemblyRoute" and the factory data table 2101 with the table name "ProductRoute" as mapping candidate tables for the common data table 1401 with the table name "Route" because they share the character string "Route" as a column feature.
[0053] In addition, the candidate selection unit 110 selects, as mapping candidate tables for the common data table 1402 with the table name "Operation" in the common data model 140, the factory data table 2103 with the table name "AssemblyOperation" in the factory data model 210 and the factory data table 2104 with the table name "OperationType".
[0054] Here, the former factory data table 2103 was selected because the characteristics of the columns "AssemblyOperationID", "AssemblyRouteID", and "AssemblyOperationVal" in the factory data table 2103 with the table name "AssemblyOperation" were determined to be similar to the characteristics of the columns "OperationID", "RouteID", and "OperationVal" in the table name "Operation" 1402 in that some character strings match.
[0055] The latter factory data table 2104 was selected because the characteristics of the "TypeVal" column in the factory data table 2104 with the table name "OperationType" were determined to be similar to the "OperationType" in the common data table 1402 with the table name "Operation" in that some character strings match.
[0056] Next, in step S30, as a mapping type determination process, the candidate selection unit 110 determines that the mapping candidate table is a mapping candidate table with a primary key if the primary key of a table in the factory data model 210 is similar to the characteristics of the primary key column of the selected mapping candidate table.
[0057] For example, in the factory data model 210, the column characteristics of the primary key "ProductRouteID" of the factory data table 2101 with the table name "ProductRoute", which is a mapping candidate table, and the primary key "AssemblyRouteID" of the factory data table 2102 with the table name "AssemblyRoute", which is a mapping candidate table, are similar to the primary key "RouteID" of the common data table 1401 with the table name "Route" in the common data model 140 (as the mapping destination data model, for example). Therefore, the candidate selection unit 110 determines that the factory data table 2101 with the table name "ProductRoute" and the factory data table 2102 with the table name "AssemblyRoute" are mapping candidate tables with primary keys.
[0058] In addition, the candidate selection unit 110 determines that the column "AssemblyOperationID" also has a primary key because the column characteristics of the primary key "AssemblyOperationID" of the mapping candidate table "AssemblyOperation" 2103 in the factory data model 210 are similar to the primary key "OperationID" of the common data table 1402 with the table name "Operation" in the common data model 140 (for example, as the mapping destination data model).
[0059] On the other hand, the candidate selection unit 110 determines that the column "OperationType" does not have a primary key because the column characteristics of the primary key "AssemblyOperationType" of the factory data table 2104 of the mapping candidate table "OperationType" of the factory data model 210 are not similar to the primary key "OperationID" of the common data table 1402 of the table name "Operation" of the common data model 140 (for example, as the mapping destination data model).
[0060] Next, in step S40, the table relation management unit 120 extracts table relations related to the mapping candidate tables and the like, and stores them in a relation table 501 shown in FIG. 5A (step S40).
[0061] Here, we will explain table relationships. A "one-to-one" relationship indicates that there is a one-to-one correspondence between a column in a first table and a column in a second table. A "one-to-many" relationship indicates that a column in a first table may be related to multiple columns in a second table, but that a column in a second table can only be related to a column in a maximum of one record with a column in the first table. A "many-to-one" relationship indicates that a column in a second table may be related to multiple columns in a first table, but that a column in a first table can only be related to a column in a maximum of one record with a column in the second table. A "none" relationship indicates that there are no related columns.
[0062] Next, in step S50, the intermediate table generation unit 130 determines whether or not the mapping candidate table with primary key can be absorbed based on the table relationships described above and the pre-set absorption feasibility determination table 502 shown in FIG. 5B.
[0063] If the intermediate table generating unit 130 determines that the mapping candidate table cannot be absorbed, it executes step S70, whereas if it determines that the mapping candidate table can be absorbed, it executes step S60.
[0064] In step S60, the intermediate table generation unit 130 defines an intermediate table to be temporarily used during absorption and a relational table 501 related to the intermediate table, and adds the columns of the intermediate table as columns of the mapping candidate table using the primary key.
[0065] Specifically, the intermediate table generation unit 130 determines that, for the common data table 1401 with the table name "Route" in the common data model 140 (for example, as the mapping destination data model), the factory data table 2101 with the table name "ProductRoute" in the factory data model 210 and the factory data table 2102 with the table name "AssemblyRoute" are candidate tables for mapping with primary keys.
[0066] The intermediate table generation unit 130 determines that the factory data table 2101 with the table name "ProductRoute" and the factory data table 2102 with the table name "AssemblyRoute" cannot be absorbed because they are not defined in the relationship table 501, for example.
[0067] Furthermore, the intermediate table generation unit 130 determines that, for the common data table 1402 with the table name "Operation" in the common data model 140 (for example, as a mapping destination common data model), the factory data table 2103 with the table name "AssemblyOperation" in the factory data model 210 is a mapping candidate table with a primary key, and the factory data table 2104 with the table name "OperationType" is a mapping candidate table without a primary key.
[0068] By referring to the relationship table 501 and the absorption determination table 502, the intermediate table generation unit 130 can determine that the factory data table 2103 with the table name "AssemblyOperation" and the factory data table 2104 with the table name "OperationType" have a many-to-one relationship, and that "AssemblyOperation" 2103 can absorb the factory data table 2104 with the table name "OperationType".
[0069] The intermediate table generation unit 130 generates an intermediate table to be temporarily used during the absorption and a relationship table 501 related to the intermediate table, and adds the columns of the intermediate table to the mapping candidate table (step S40). That is, the intermediate table generation unit 130 extends the relationship records of the absorbing table by using the primary key of the table to be absorbed. The intermediate table generation unit 130 then inherits the table relationships of the absorbed table and deletes the table relationships of the absorbed table from the relationship table 501, thereby updating the relationship table 501 related to the intermediate table.
[0070] For example, the intermediate table 601 with the table name "AssemblyOperation+OperationType" shown in FIG. 6A shows the result of the factory data table 2103 with the table name "AssemblyOperation" absorbing the factory data table 2104 with the table name "OperationType".
[0071] Here, the intermediate table generating unit 130 performs the above-mentioned absorption by using the primary key "AssemblyOperationType" of the factory data table 2104 with the table name "OperationType."
[0072] The intermediate table generation unit 130 extracts the table relationship between the factory data table 2103 with the table name "AssemblyOperation" and the factory data table 2104 with the table name "OperationType" from the table relationship 602 (see FIG. 6B). The intermediate table generation unit 130 extracts the many-to-one relationship between the factory data table 2103 with the table name "AssemblyOperation" and the factory data table 2104 with the table name "OperationType", as well as the one-to-many relationship between the factory data table 2104 with the table name "OperationType" and the factory data table 2103 with the table name "AssemblyOperation", and deletes the table relationship related to the absorbed factory data table 2104 with the table name "OperationType" from the relationship table 603.
[0073] The intermediate table generation unit 130 absorbs the intermediate table with the table name "AssemblyOperation+OperationType" into the mapping candidate table and adds it as a column of the intermediate table of the factory data table 2102 with the table name "AssemblyRoute" shown in the relationship table 603. In step S70, the column determination unit 150 performs the column mapping process again, taking the relationship table 603 into consideration.
[0074] In this embodiment, the method for calculating the similarity of tables can also be, for example, similarity = table similarity + coefficient 1* (similarity of tables with the same table relationship) + coefficient 2* (similarity of tables with the same table relationship) + ... + table similarity = similarity of first similar column + similarity of second similar column + ... + similarity of Nth similar column.
[0075] For example, the mapping candidate table for the common data table 1401 with the table name "Route" in the common data model 140 is based on the factory data table 2101 with the table name "ProductRoute" and the factory data table 2102 with the table name "AssemblyRoute" in the factory data model 210.
[0076] In the common data model 140, the table that has a one-to-many relationship with the common data table 1401 with the table name "Route" is the common data table 1402 with the table name "Operation." Since the common data table 1402 has no table that has a one-to-many relationship with the factory data table 2101 with the table name "ProductRoute," the similarity is 0.
[0077] On the other hand, the table that has a one-to-many relationship with the factory data table 2102 with the table name "AssemblyRoute" is the factory data table 2103 with the table name "AssemblyOperation", and since the column characteristics of the common data table 1402 with the table name "Operation" are similar, the similarity results for the tables when compared with the common data table 1401 with the table name "Route" are the same, but the factory data table 2102 with the table name "AssemblyRoute" is mapped to the common data table 1401 with the table name "Route".
[0078] In addition, in the common data model 140, the mapping candidate tables for the common data table 1402 with the table name "Operation" are the factory data table 2103 with the table name "AssemblyOperation" in the factory data model 210, the factory data table 2104 with the table name "OperationType", and the intermediate table 601 with the table name "AssemblyOperation+OperationType".
[0079] In terms of table similarity alone, the similarity between the fourth similar column "AssemblyOperationType" in the intermediate table 601 with the table name "AssemblyOperation" and the fourth similar column "OperationType" in the common data table 1402 with the table name "Operation" is lower than the similarity between the fourth similar column "TypeVal" in the intermediate table 601 with the table name "AssemblyOperation+OperationType" and the fourth similar column "OperationType" in the common data table 1402 with the table name "Operation". Therefore, the intermediate table 601 with the table name "AssemblyOperation+OperationType" has a higher table similarity.
[0080] Furthermore, when looking at the similarity of tables with the same table relationship, the table that has a many-to-one relationship with the column "Operation" is the common data table 1401 with the table name "Route", and the table that has the same table relationship "many-to-one" as the factory data table 2103 with the table name "AssemblyOperation" and the intermediate table 601 with the table name "AssemblyOperation+OperationType" is the same, the factory data table 2102 with the table name "AssemblyRouting", so for example, the similarity values of tables with the same table relationship are the same. The column determination unit 150 compares the similarity of the tables with the similarity of tables having the same table relationship, and the intermediate table 601 with the table name "AssemblyOperation+OperationType" is mapped to the common data table 1402 with the table name "Operation".
[0081] Next, in accordance with the result of the mapping, the column determination unit 150 adds columns related to the mapping candidate table to the table of the common data model 140 (step S80). Specifically, the column determination unit 150 copies (record data of) each column of the mapping candidate table and adds them as (record data of) columns of the table to be mapped in the common data model 140.
[0082] For example, the record data of the columns of the factory data table 2102 with the table name "AssemblyRoute", which is the mapping source table in the factory data model 210, is integrated into the common data table 1401 with the table name "Route", which is the mapping destination table in the factory data model 210. As a result of this integration, a table 701 with the table name "Route" shown in Fig. 7A is obtained. The data of the columns of the intermediate table 601 with the table name "AssemblyOperation+OperationType" is integrated into similar columns of the common data table 1402 with the table name "Operation", which is the mapping destination table. As a result of this integration, a table 702 with the table name "Operation" shown in Fig. 7B is obtained.
[0083] In this way, the data integration server 10 can grasp candidates for synonymous columns between the tables of the factory data model 210 and the tables of the common data model 140, and can more accurately integrate the two tables.
[0084] The data integration server 10 according to this embodiment receives the factory data model 210 and the common data model 140, selects a predetermined table from the common data model 140, and for each column of the predetermined table, selects a mapping candidate table to be a mapping candidate from among the tables of the factory data model 210 based on the characteristics of each column. If the primary key of a table of the factory data model 210 is similar to the characteristics of the column of the primary key of the selected mapping candidate table, the candidate selection unit 11 determines that a primary key is set in the mapping candidate table (a mapping candidate table with a primary key). 0, a table relation management unit 120 that extracts table relations related to the mapping candidate table and stores them in a relation table 501 (601), and an intermediate table generation unit 130 that determines whether the mapping candidate table, for which a primary key is set, can be absorbed based on the table relations and a preset absorption feasibility determination table 502, and if it is determined that the mapping candidate table can be absorbed, defines an intermediate table to be used provisionally during absorption and a relation table 501 (601) related to the intermediate table, and adds columns of the intermediate table as columns of the mapping candidate table using the primary key.
[0085] In this way, by selecting a mapping candidate table to be used as a mapping candidate from among the tables in the factory data model 210, it is possible to easily and appropriately select a synonymous column candidate to be associated with a certain column in a table in the factory data model 210 from the common data model 140.
[0086] In this embodiment, the table relation management unit 120 manages one-to-one, one-to-many, and many-to-one relationships as table relations between tables in a relational table. In this way, it is possible to create a more suitable intermediate table by taking these table relations into consideration.
[0087] In this embodiment, the candidate selection unit 110 selects candidates for synonymous columns as mapping candidates according to the results of a column feature determination that determines whether the characteristics of the columns of the table in the factory data model 210 are similar to the characteristics of the columns of the table in the common data model 140. In this way, candidates for synonymous columns can be selected more accurately according to the results of the column feature determination.
[0088] In this embodiment, the candidate selection unit 110 performs column feature determination based on similarity, which is the degree to which the column features of the table in the factory data model 210 are similar to the column features of the table in the common data model 140. In this way, the column feature determination can be performed more accurately.
[0089] In this embodiment, the candidate selection unit 110 selects a table from the common data model 140, and for the selected table, selects a mapping candidate table to be used as a mapping candidate for associating it with each table in the factory data model 210 based on the result of the column feature determination. In this way, it is possible to use a suitable mapping candidate table selected based on the result of the column feature determination.
[0090] In this embodiment, the candidate selection unit 110 determines whether a primary key is set in a mapping candidate table according to the mapping type, which indicates whether a primary key is set in a column of a target table. In this way, it is possible to use a mapping candidate table that is suitably selected according to the mapping type.
[0091] The present invention is not limited to the above-described embodiments, and includes various modifications and equivalent configurations within the spirit and scope of the appended claims. For example, the above-described embodiments have been described in detail to clearly explain the present invention, and the present invention is not necessarily limited to those including all of the described configurations. Furthermore, the elements described in parallel in the present embodiment may be configured such that at least one of the elements is connected in series to the other elements.
[0092] The present invention can be applied to, for example, a synonymous column candidate selection device that selects synonymous column candidates in a plurality of data models.
[0093] 10...data integration server, 20...factory server, 110...candidate selection unit, 120...table relation management unit, 130...intermediate table generation unit, 150...column determination unit, 140...common data model, 210...factory data model
Claims
1. A synonymous column candidate selection device comprising: a candidate selection unit that receives a first data model and a second data model, selects a predetermined table from the second data model, and for each column of the predetermined table, selects a mapping candidate table to be a mapping candidate from among the tables of the first data model based on the characteristics of each column, and determines that a primary key is set in the mapping candidate table if the primary key of the table of the first data model is similar to the characteristics of the column of the primary key of the selected mapping candidate table; a table relation management unit that extracts table relations related to the mapping candidate table and stores the extracted table relations in a relational table; and an intermediate table generation unit that, for the mapping candidate table in which the primary key is set, determines whether the mapping candidate table can be absorbed based on the table relations and a predetermined absorption feasibility determination table, and if absorption is determined to be possible, defines an intermediate table to be used temporarily during absorption and the relational table related to the intermediate table, and adds a column of the intermediate table as a column of the mapping candidate table using the primary key.
2. The synonymous column candidate selection device according to claim 1, wherein the table relation management unit manages one-to-one, one-to-many, and many-to-one relationships in a relational table as the table relations between the tables.
3. The synonymous column candidate selection device according to claim 1, characterized in that the candidate selection unit selects synonymous column candidates as mapping candidates in accordance with the result of a column characteristic determination that determines whether the characteristics of the columns in the table of the first data model are similar to the characteristics of the columns in the table of the second data model.
4. The synonymous column candidate selection device according to claim 3, characterized in that the candidate selection unit performs the column feature determination based on similarity, which is the degree to which the column features of the table of the first data model are similar to the column features of the table of the second data model.
5. The synonymous column candidate selection device according to claim 1, characterized in that the candidate selection unit selects a table from the second data model, and for the selected table, selects the mapping candidate table to be a mapping candidate for matching with each table of the first data model based on the result of the column feature determination.
6. The synonymous column candidate selection device according to claim 1, characterized in that the candidate selection unit determines whether a primary key is set in the mapping candidate table according to a mapping type indicating whether a primary key is set in the column of the target table.
7. A method for selecting synonymous column candidates comprising: a candidate selection step in which a candidate selection unit receives a first data model and a second data model, selects a predetermined table from the second data model, and for each column of the predetermined table, selects a mapping candidate table to be a mapping candidate from among the tables of the first data model based on the characteristics of each column, and determines that a primary key is set in the mapping candidate table if the primary key of the table of the first data model is similar to the characteristics of the column of the primary key of the selected mapping candidate table; a table relation management step in which a table relation management unit extracts table relations related to the mapping candidate table and stores the extracted relations in a relational table; and a column addition step in which an intermediate table generation unit determines, for the mapping candidate table in which the primary key is set, whether the mapping candidate table can be absorbed based on the table relations and a predetermined absorption feasibility determination table, and if it is determined that absorption is possible, defines an intermediate table to be used provisionally during absorption and the relational table related to the intermediate table, and adds a column of the intermediate table as a column of the mapping candidate table using the primary key.
Citation Information
Patent Citations
Synonymous column detecting device and synonymous column detecting method
JP2011232879A
Personal information management system and personal information management method
WO2023276288A1