CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims priority to European Patent Application No. 18187385.2, filed Aug. 3, 2018, the entirety of which is incorporated herein by reference.

TECHNICAL FIELD

This invention relates to computer systems for data transfer between databases. In particular, this invention relates to the transfer of data items and related functionalities.

BACKGROUND

Different databases became ubiquitous element of almost any modern technology. There are a lot of different databases designed by different companies for different purposes. As a result thereof, there are a lot of different solutions for addressing similar problems and/or processing similar data. Development of a specialized solution for a particular problem has a clear advantage, because it can operate very fast within its application domain. On the other hand, integrating of different customized databases requires specialized procedures for data transfer between the databases. The integration issues can diminish the superior performance of the customized databases operating as standalone systems. The negative impact of integration issues can be more prominent, when one of the databases to be integrated is a legacy one, which uses substantially different data formats and/or communication protocols in comparison with the modern ones. In addition the data transfer between databases can be further complicated due to different functionalities of the databases.

SUMMARY

The disclosure generally a computer-implemented method for data structure transfer to a computer system, a computer-readable media storing computer executable instructions for executing the computer-implemented method, a computer program comprising instructions to execute the computer-implemented method, and a computer system for data structure transfer to a computer system.

It is an objective of embodiments of the invention to provide for a computer-implemented method, a computer-readable media storing computer executable instructions for executing the computer-implemented method, a computer program comprising instructions to execute the computer-implemented method, and a computer system for an effective data structure and functionality transfer between database systems. The objective is addressed in the independent claims, whereas the preferred embodiments are given in the dependent claims.

According to one aspect, the present invention relates to a computer system, comprising a computer processor, a memory, and a first database. The first database comprises first procedure specifications of first procedures and a plurality of first data fields for storing data items. The first data fields have first logical links within a first data structure of the first database. Each of the first logical links has a respective first set of first link specifications. The first procedures are configured to use the data items stored in the first data fields upon execution by the processor. The memory comprises computer executable code which when executed by the computer processor causes the computer processor to control the computer system to: receive a second data structure of the second database and second procedure specifications of second procedures, the second data structure comprising a plurality of second data fields storing data items, the second data fields having second logical links within a second data structure of the second database, each of the second logical links having a respective second set of second link specifications, wherein the second procedures are configured to use the data items stored in the second data fields upon execution by a computer processor configured to control the second database; identify second data fields in the second data structure each having the same second logical link and being semantically linked to a same third set of the second procedure specifications; identify first data fields in the first database each having the same first logical link and being semantically linked to a same fourth set of the first procedure specifications, wherein each of some of the second procedure specifications of the third set matches the respective first procedure specification of the fourth set, wherein each of some of the first link specifications of the first set of the first link specifications of the first logical link of the identified first data fields matches a respective second link specification of the second set of the second link specifications of the second logical link of the identified second data fields; and transfer data items stored in the identified second data fields to the identified first data fields.

According to another aspect, the present invention relates to a computer-implemented method for data structure transfer to a computer system comprising a first database. The first database comprising first procedure specifications of first procedures and a plurality of first data fields for storing data items. The first data fields have first logical links within a first data structure of the first database. Each of the first logical links having a respective first set of first link specifications. The first procedures are computer executable procedures using the data items stored in the first data fields. The computer-implemented method comprises: receiving a second data structure of the second database and second procedure specifications of second procedures, the second data structure comprising a plurality of second data fields storing data items, the second data fields having second logical links within a second data structure of the second database, each of the second logical links having a respective second set of second link specifications, wherein the second procedures are computer executable procedures using the data items stored in the second data fields; identifying second data fields in the second data structure each having the same second logical link and being semantically linked to a same third set of the second procedure specifications; identifying first data fields in the first database each having the same first logical link and being semantically linked to a same fourth set of the first procedure specifications, wherein each of at least some of the second procedure specifications of the third set matches the respective first procedure specification of the fourth set, wherein each of at least some of the first link specifications of the first set of first link specifications of the first logical link of the identified first data fields matches a respective second link specification of the second set of second link specifications of the second logical link of the identified second data fields; and transferring data items stored in the identified second data fields to the identified first data fields.

According to another aspect, the present invention relates to a computer readable medium having stored thereon a computer executable code for execution by a computer processor controlling a computer system, wherein execution of the instructions of the executable code causes the computer processor to control the computer system to execute the computer-implemented method of the aforementioned embodiment.

According to another aspect, the present invention relates to a computer program comprising instructions to execute the computer-implemented method according to the aforementioned embodiment.

These embodiments can be advantageous because they may enable effective transfer of the data structure from the second database to the first database. The data structure transfer includes an integral transfer of the data items stored in the second database in relation to the logical links of the data fields in the second data structure and second operation specifications of the second database. This approach can be called a plug-and-play one, because upon completion of the transfer the first data structure has at least some of the logical links and functionalities of the original second data structure. The data structure is based on advantageous extraction of information of the second database, wherein not only the logical links but the semantic ones are taken into account.

In another embodiment, the computer system comprises a first trained machine learning, ML, module for identifying data fields in a data structure of one database having procedure specifications using one or more logical links of another database and one or more procedure specifications of the other database, wherein the identifying of the first data fields is executed by the first trained ML module using the third set and the second logical link which the identified second data fields have.

This embodiment may be advantageous because it may provide for an effective identification of the first data fields in the first database using information extracted from the second database. This solution is supported by the fact that despite big diversity of the database solutions the specifications of the logical links and/or the procedures are formulated well-recognized terms of art, which have the same meaning and refer to the same functionalities in various database solutions. As a result thereof, typical problems occurring in ML translation of literature texts are not relevant for this embodiment. For instance, one word or term of art in the original literature text can be translated using a plurality of synonyms in the translation. In contrast, the one-to-one correspondence of the terms of art used in different databases can enable precise identification of logical links and semantic links corresponding each other in different databases.

In another embodiment, the computer system comprises a second trained ML module for identifying data fields in a database each having a same logical link and a semantic link to a same set of procedure specifications, wherein the identifying of the second data fields is performed by the second trained ML module using the second procedure specifications and the second sets of second link specifications.

At is it is mentioned above the precise meaning and utilization of terms of art in databases may provide for high fidelity of the results generated by the ML modules. In addition, the ML module can be trained such, that it provides optimal size of blocks of the identified data fields storing data items which are transferred together in the step of the transferring of data items stored in the identified second data fields to the identified first data fields. The data fields identified in one step might still have other different logical and/or semantic links which are not relevant for the transfer step. When these irrelevant links are taken into account, less second data fields are identified in a single step and as a consequence several iterations are required instead a single one to transfer the data items from the second database to the first database.

In another embodiment, the computer system comprises a procedure pool of auxiliary procedures for data and functionality transfer to the first data base, wherein the execution of the computer executable code by the computer processor further causes the computer processor to control the computer system to: execute one or more auxiliary procedures for modifying first procedure specifications, wherein the one or more auxiliary procedures are identified in the procedure pool using one or more of the second procedure specifications comprised in the third set and having no matching first procedure specifications in the fourth set and one or more of the first procedure specifications comprised in the fourth set and having no matching second procedure specifications in the third set; and/or execute one or more other auxiliary procedures for modifying first link specifications, wherein the one or more other auxiliary procedure are identified in the procedure pool using one or more of the second link specifications comprised in the second set of the second link specifications of the second logical link of the identified second data fields and having no matching first link specifications comprised in the first set of the first link specifications of the first logical link of the identified first data fields and one or more of the first link specifications comprised in the first set of the first link specifications of the first logical link of the identified first data fields and having no matching second link specifications comprised in the second set of the second link specifications of the second logical link of the identified second data fields. The aforementioned computer-implemented method can comprise steps corresponding to these functionalities as well.

This embodiment can be advantageous, because it may provide for a further improvement of the fidelity of the data structure transfer. Moreover, these procedures may be completed within a short time interval, because the logical links and the procedure specifications are modified using auxiliary procedures which are selected from the pool of the auxiliary procedures which are already available in the computer system.

In another embodiment, the computer system comprises a third trained ML module for identifying one or more auxiliary procedures for modifying first procedure specifications using one or more procedure specifications as original specifications and one or more procedure specifications as target specifications, wherein the one or more auxiliary procedures are identified by the third trained ML module using one or more of the second procedure specifications comprised in the third set and having no matching first procedure specifications in the fourth set as target specifications and one or more of the first procedure specifications comprised in the fourth set and having no matching second procedure specifications in the third set as source specifications.

In addition to the aforementioned advantages of utilization of the ML for data structure transfer the utilization of ML in this embodiment may provide for a correct and fast identification of the right auxiliary procedure.

In another embodiment, the computer system comprises a fourth trained ML module for identifying one or more auxiliary procedures for modifying first link specifications using one or more link specifications as original specifications and one or more link specifications as target specifications, wherein the one or more other auxiliary procedures are identified by the fourth trained ML module using one or more of the second link specifications comprised in the second set of the second link specifications of the second logical link of the identified second data fields and having no matching first link specification comprised in the first set of the first link specifications of the first logical link of the identified first data fields as target specification and one or more of the first link specifications comprised in the first set of the first link specifications of the first logical link of the identified first data fields and having no matching second link specifications comprised in the second set of the second link specifications of the second logical link of the identified second data fields as source specifications.

This embodiment can be advantageous, because as it is mentioned above the ML may provide for a correct and fast identification of the right auxiliary procedure.

In another embodiment, the computer system comprises a procedure pool of auxiliary procedures for data and functionality transfer to the first data base. The transferring of the data items stored in the identified second data fields to the identified first data fields comprises: retrieving one or more of the data items stored in the identified second data fields; executing an auxiliary procedure for modifying a data format of the retrieved one or more data items, wherein the auxiliary procedure is identified in the procedure pool by comparing a data format used in the identified second data fields for storing the one or more data items with a data format used in the identified first data fields for storing the one or more data items; and storing the one or more data items having the modified data format in the identified first data fields.

This embodiment can be advantageous, because it may provide for a better flexibility and efficiency of the data structure transfer. Data fields of the first database which have the matching logical link and the procedure specification may be used for the storing the data items of the second database having an original data format being incompatible with the identified first data fields. Without this functionality, not only generation of new data fields for storing data items having the original data format but further modification of the logical links and/or procedures of the second database might be required.

In another embodiment, the computer system comprises a fifth trained ML module for identifying auxiliary procedures for modifying data format of data items by using source and target data formats as input for format comparison, wherein the auxiliary procedure is identified by the fifth trained ML module using the data format used in the identified second data fields for storing the one or more data items and the data format used in the identified first data fields for storing the one or more data items as input for format comparison.

This embodiment can be advantageous, because as it is mentioned above the ML may provide for a correct and fast identification of the right auxiliary procedure.

In another embodiment, the first data structure comprises first electronic tables comprising the first data fields, wherein some the first electronic tables are linked by parent child relationships with each other, wherein some of the first data fields are linked by primary key relationships, wherein some of the first data fields are linked by foreign key relationships, wherein some of the first data fields are assigned to a respective first data domain within the first data structure, wherein some of the first data domains have the assigned first data fields which are comprised in different first electronic tables, wherein each of the first sets of first link specifications comprises at least one of the following first link specifications of the first logical link of the respective first data field: a) a foreign key relationship between the respective first data field and another one of the first data fields; b) a primary key relationship between the respective first data field and another one of the first data fields; c) a domain specification of a first data domain to which the respective first data field is assigned; d) a parent-child relationship specification of a parent-child relationship between one of the first electronic tables being a child in the parent-child relationship and another one of the first electronic tables comprising the respective first data field; e) a table specification of the first electronic table comprising the respective first data field; f) a row specification of a row of the first electronic table, wherein the row of the first electronic table comprises the respective first data field; g) a column specification of a column of the first electronic table, wherein the column of the first electronic table comprises the respective first data field.

In another embodiment, the second data structure comprises second electronic tables comprising the second data fields, wherein some of the second electronic tables are linked by parent child relationships with each other, wherein some of the second data fields are linked by primary key relationships, wherein some of the second data fields are linked by foreign key relationships, wherein some of the second data fields are assigned to a respective second data domain within the second data structure, wherein each of some of the second data domains having the assigned second data fields which are comprised in different second electronic tables, wherein each of the second sets of second link specifications comprises at least one of the following second link specifications of the second logical link of the respective second data field: a) a foreign key relationship between the respective second data field and another one of the second data fields; b) a primary key relationship between the respective second data field and another one of the second data fields; c) a domain specification of a second data domain to which the respective second data field is assigned; d) a parent-child relationship specification of a parent-child relationship between one of the second electronic tables being a child in the parent-child relationship and another one of the second electronic tables comprising the respective second data field; e) a table specification of the second electronic table comprising the respective second data field; f) a row specification of a row of the second electronic table, wherein the row of the second electronic table comprises the respective second data field; g) a column specification of a column of the first electronic table, wherein the column of the first electronic table comprises the respective first data field.

These embodiments can be advantageous, because it may provide for the specifications of the logical links which are customary in many databases. Thus, finding matching logical links in different databases may become a straight-forward procedure.

In another embodiment, for any of the first link specifications and any of the second link specifications matching each other at least one of the following criteria is complied with: a) the first link specification specifies a foreign key relationship between a first pair of the first data fields and the second link specification specifies a foreign key relationship between a second pair of the second data fields, wherein a column comprising one of the first data fields of the first pair and a column comprising one of the second data fields of the second pair have matching specifications, a column comprising another one of the first data fields of the first pair and a column comprising another one of the second data fields of the second pair have matching specifications, wherein the columns comprising the first pair are comprised in the different first electronic tables and the columns comprising the second pair are comprised in the different second electronic tables; b) the first link specification specifies a primary key relationship between a third pair of the first data fields and the second link specification specifies a primary key relationship between a fourth pair of the second data fields, wherein a row comprising the third pair and a row comprising the fourth pair have matching specifications, wherein the row comprising the third pair is comprised in one of the first electronic tables and the row comprising the fourth pair is comprised in one of the second electronic tables; c) the first link specification specifies that one of the first data fields is assigned to one of the first data domains and the second link specification specifies that that one of the second data fields is assigned to one of the second data domains, wherein the one of the first data domains and the one of the second data domains have matching specifications; d) the first link specification specifies a parent-child relationship between a pair of the first electronic tables and the second link specification specifies a parent-child relationship between a pair of the second electronic tables, wherein the first electronic table of the pair being a parent in the parent-child relationship and the second electronic table of the pair being a parent in the parent-child relationship have matching specifications and the first electronic table of the pair being a child in the parent-child relationship and the second electronic table of the pair being a child in the parent-child relationship have matching specifications; e) one of the first electronic tables specified in the first link specification and one of the second electronic tables specified in the second link specification have matching specifications; f) a row of one of the first electronic table specified in the first link specification and a row of one of the second electronic tables specified in the second link specification have matching specifications; g) a column of one of the first electronic table specified in the first link specification and a column of one of the second electronic tables specified in the second link specification have matching specifications.

This embodiment can be advantageous, because it may provide for a standardized approach for identification of the matching links. The standard features used in different database systems have (as usual) standardized characteristics, which comparison may be computer-implemented.

In another embodiment, the first data fields are assigned to first computer applications executable using the first database, the first procedures are assigned to the first computer applications, wherein the first procedure specifications comprise first source codes of the first procedures and first descriptions of the first procedures, wherein any of the first data fields having a semantic link to any arbitrary set of first procedure specifications has a respective semantic link to each of the first procedure specifications of the any arbitrary set, wherein for any of the first data fields and any of the first procedure specifications having a semantic link at least one of the following criteria is compiled with: a) the first data field is used in the first source code comprised in the first procedure specification; b) the first data field is used in the first description comprised in the first procedure specification; and c) the first data field and the first procedure having the first procedure specification are assigned to the same first computer application.

In another embodiment, the second data fields are assigned to second computer applications executable using the first database, the second procedures are assigned to the second computer applications, wherein the second procedure specifications comprise second source codes of the second procedures and second descriptions of the second procedures, wherein any of the second data fields having a semantic link to any arbitrary set of second procedure specifications has a respective semantic link to each of the second procedure specifications of the any arbitrary set, wherein for any of the second data fields and any of the second procedure specifications having a semantic link at least one of the following criteria is compiled with: a) the second data field is used in the second source code comprised in the second procedure specification; b) the second data field is used in the second description comprised in the second procedure specification; and c) the second data field and the second procedure having the second procedure specification are assigned to the same second computer application.

These embodiments can be advantageous, because the sematic links are based on information which is available almost in any database. There are plenty of data which can be used for determination of semantic links, e.g. database manuals, texts of help functions, comments in source code, names of standard functions in source code, at least some of the electronic tables and fields have standard and/or the same names in different databases, and source code as such, because it is written using symbols of a programming language having meanings as specified in the description of the programming language.

In another embodiment, the first source codes specify execution of first database functions of the first database using the first data fields and/or data items stored in the first data fields, wherein the first descriptions describe the first database functions, wherein the second source codes specify execution of second database functions of the second database using the second data fields and/or data items stored in the second data fields, wherein the second descriptions describe the second database functions, wherein for any of the first procedure specifications and any of the second procedure specifications matching each other at least one of the following criteria is fulfilled: a) the first database function which execution is specified by the first source code comprised in the first procedure specification and the second database function which execution is specified by the second source code comprised in the second procedure specification have matching specifications; b) the first database function described in the first description comprised in the first procedure specification and the second database function described in the second description comprised in the second procedure specification have matching specifications; and c) the first computer application to which the first procedure having the first procedure specification is assigned and the second computer application to which the second procedure having the second procedure specification is assigned have matching specifications.

This embodiment can be advantageous because the matching of the semantic links is based on standard information which is ubiquitous almost in any database. For instance, the procedure specifications used in criterion a) can be written in the same programming language. Finding matching specifications can be based on comparison on the software source code operands, functions, subroutines, etc. When the procedure specifications are written in different programming languages, then lists of corresponding operands, functions, subroutines of different programming languages can be used. The matching specifications used in criterion b) can be based on comparison of keywords used the procedure specifications (e.g. procedure specifications in database manuals). The matching of application specifications used in criterion c) can be the same names of the applications like “Banking,” “Logistics,” etc. Alternatively or in addition, the matching can be determined on a basis of descriptions of the applications. For instance, the applications can have matching specifications when their descriptions have predefined keywords in common.

In another embodiment, wherein the first and/or the second procedures are formulated using one or more object oriented programming languages.

This embodiment can be advantageous, because the object oriented programming languages are high level programming languages, which source code is as usual straightforward to adapt/modify, which might be an advantage when the changes in the source code are to be executed by the computer without human assistance and/or control. The object oriented programming language can be for instance any of the following: python, C++, JAVA, and ABAP OO.

In another embodiment, the execution of the computer executable code by the computer processor further causes the computer processor to control the computer system to: receive reference result data generated on the second database by executing one or more of the second procedures using data items which are identical to the data items transferred to the identified first data fields; identify, for each of the one or more of the second procedures, the first procedure having the first procedure specification which matches the second procedure specification of the each of the one or more of the second procedures; generate test result data on the first database by executing the identified one or more of the first procedures using said data items transferred to the identified first data fields; and compare the reference result data with the test result data. The aforementioned computer-implemented method can comprise steps corresponding to these functionalities as well.

This embodiment can be advantageous, because it may provide for an effective procedure for checking whether the data structure transfer is completed in a correct way. The checking of data transfer may include not only the checking of the correctness of the transfer of the data items, but the checking of correctness of the transfer/modification of the logical link specifications and/or the procedure specifications, in particular source code.

In another embodiment, the execution of the computer executable code by the computer processor further causes the computer processor to control the computer system to: split a plurality of at least some of the second procedure specifications in disjoint specification sets, wherein one of the disjoint specification sets constitutes said third set and other disjoint specification sets constitute other third sets; identify, for each of the third sets, a data field set of the second data fields each being semantically linked to the each of the third sets; and split each of the data field sets in disjoint data field sets, wherein any second data field of each of the disjoint data field sets has the same respective second logical link assigned to the each of the disjoint data field sets, wherein the identifying of the second data fields is comprised in the splitting of the each of the data field sets in the disjoint data field sets, wherein one of the disjoint data field sets constitutes the identified second data fields. The aforementioned computer-implemented method can comprise steps corresponding to these functionalities as well.

This embodiment can be advantageous, because it may provide for an effective splitting of the data fields in sets, wherein data items stored in each of the sets can be transferred to the first database in a single step, e.g. iteratively. In addition the selection of the procedure specifications for generation of the specification sets may determine a portion of the data items which have to be transferred in a particular step (iteration). As a result thereof the transfer of each portion can be executed and optimized independent of the other portions. Such an approach may facilitate debugging of the transferred data structure, because each transferred portion can be debugged immediately after its transfer independently of the other ones. This embodiment can have further advantage for transferring of the data structures of databases, wherein the semantic links provide for a better initial splitting of the data fields than the initial splitting using the logical links, e.g. the initial splitting using the semantic links results in larger sets of the data fields than the initial splitting using the logical links. For instance, the initial splitting of the data fields using their semantic links determining links to the computer applications might result in larger sets of the data fields in comparison with the initial splitting of the data fields using their logical links determining parent-child relationships between the electronic tables comprising the data fields to be split.

In another embodiment, the execution of the computer executable code by the computer processor further causes the computer processor to control the computer system to: identify, for each of some of the second logical links, a data field set of the second data fields each having the each of some of the second logical links, wherein the data field sets are disjoint sets; identify for each of the data field sets a respective plurality of the second procedure specifications each being semantically linked to at least one of the second data fields of the each of the data field sets, split each of the pluralities of the procedure specifications in disjoint specification sets of the second procedure specifications, wherein one of the disjoint specification sets constitutes said third set and other disjoint specification sets constitute other third sets; and split each of the data field sets in disjoint data field sets, wherein any second data field of each of the disjoint data field sets is semantically linked to the respective third set, wherein the identifying of the second data fields is comprised in the splitting of the each of the data field sets in the disjoint data field sets, wherein one of the disjoint data field sets constitutes the identified second data fields. The aforementioned computer-implemented method can comprise steps corresponding to these functionalities as well.

This embodiment can be advantageous because it may provide for an effective splitting of the data fields in sets in a similar way as the previous embodiment, i.e. it can provide for sequential/iterative transferring of data items comprised in the sets of the data fields. This embodiment can have further advantage for transferring of the data structures of databases, wherein the logical links provide for a better initial splitting of the data fields than the initial splitting using the logical links, e.g. the initial splitting using the logical links results in larger sets of the data fields than the initial splitting using the semantic links. For instance, the initial splitting of the data fields using their logical links determining links to the data domains might result in larger sets of the data fields in comparison with the initial splitting of the data fields using their semantic links determining comprisal of the data fields in the procedure specifications.

The details of one or more implementations of the subject matter of this specification are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the subject matter will become apparent from the description, the drawings, and the claims.

