original article:

Save this PDF as:
 WORD  PNG  TXT  JPG

Размер: px
Начинать показ со страницы:

Download "original article:"

Транскрипт

1 УДК original article: Development of an automated system for the integration of partially homogeneous databases Vinokurov Anatoly Stanislavovich Sholom-Aleichem Priamursky State University Undergraduate Abstract The article deals with the development of an automated system to solve the problem of bringing the tables of two partially homogeneous databases to a common denominator, the integration of tables within one database, as well as the integration of two partially homogeneous databases. Such a program should automate the process of calculating similarity coefficients and then integrate the databases based on these estimates. Keywords: information technology, automated system, database integration, database merging, database consolidation, homogeneous databases, partial homogeneity, it project, integrated development environment, IDE, Lazarus, Delphi. On the basis of the methods of integration of partially homogeneous databases proposed in the framework of the master's thesis "Research of questions and development of methods of integration of partially homogeneous databases", it was decided to develop its own automated system to solve the problem of bringing the tables of two partially homogeneous databases to a common denominator, the integration of tables within one database, as well as the integration of two partially homogeneous databases. Such a program should automate the process of calculating similarity coefficients with subsequent integration of databases based on these estimates. The evaluation of similarity coefficients is made by the user. It remains for him the right to confirm or deny the results of the calculation of the program. Many researchers have devoted their work to the development of applications for database integration. M. R. Genesereth, A. M. Keller, O. M. Duschka [1] described the development of proprietary software under a commercial name of "Infomaster»performing database integration. Yan L. L., Otsu M. T., Liu L. [2] proposed a model, which performs integrated access to heterogeneous data sources, and developed on the basis of the model mediator software system "Aurora", which automates the process of database integration. C. Li, R. Yerneni, V. Vassalos, H. Garcia-molina, Y. Papakonstantinou, J. Ullman, and M. Valiveti [3] has developed a software system "T. S. I. M. M. I. S.»in the form of mediator, which, based on user requests builds the table that contains reference attributes to the source database. W. Klas, P. Fankhauser, P. Muth, T. C.

2 Rakow, E. J. Neuhold [4] has considered developing its own software system "V. O. D. K. A.", providing integration of multiple databases using open objectoriented systems. J. Lee, S. E. Madnick, M. D. Siegel [5] have described the requirements for software development for the integration of relational databases. Ph. D.Thiran, J. L. Hainaut, S. Bodart, A. Deflorenne, J. M. Hick [6] carried out the development of the software under the commercial name "dbmain", intended for maintenance and development of integration schemes for databases. P. Ziegler and others [7-9] described the development and testing results of the software "S. I. R. U. P.", which implements the semantic integration of heterogeneous data. Reynaud and others [10-12] conducted a study on the construction of scalable mediator systems. As a result of the research, we have developed our own information system for solving the set questions. A. Levy, A. Rajaraman, and J. Ordille [13] have developed a software-based system called "Information Manifold", which optimizes the data sources from different sources. Boyd [14-15] described the development of the "Automated»system that solves the problem of data integration for heterogeneous data sources. The development of a program produced in svobodnorasprostranyaemoj development environment Lazarus [16] in the programming language Object Pascal (Fig. 1), and then, after the completion of the development and testing of our software, the project was transferred to the shareware cross-platform development environment IDE Embarcadero Delphi [17]. This development environment was chosen because of the trial license, cross-platform development support, and Delphi-like environment (Fig. 2), and the transfer of the project from one environment to another, more powerful, allowed to bring additional advantages of a more powerful development environment to the project. Figure 1-Lazarus development Environment

3 Figure 2-Embarcadero Delphi development Environment Standard Delphi components were used in the project, as well as a package of freely distributed components AlphaControls v13.16 [18], because to which it is possible to add a unique style of design and visualization to the user interface of the program. Let's move on to the project. We have created the main form of the program called "MainForm". The main form of the program in the Formstyle property was set to fsmdiform, and also set the minimum and maximum form sizes-properties MaxHeight, MaxWidth, MinHeight and MinWidth of the Constraints property group. The main form contains the "MainMenu»component responsible for creating the main menu, as well as the "sskinprovider»and "sskinmanager»components of the AlphaControls package (Fig. 3).

4 Figure 3-Main form of the program Next, functional forms were added to the project, which will be displayed inside the main form "MainForm", because to the fsmdichild value of the formstyle property of each form. The structure of the program is shown in figure 4. Figure 4 the structure of the program

5 The following components of slabel, sradiogroup, sbutton are located on the Step_one form (Fig. 5). Figure 5-Step_one Form» SRadioGroup component is designed to allow the user to select the integration option: if you select "integrate tables in one database»is the hiding of the form "Step_one»creating the form "Tables_Step_two"; "to merge two databases»is the hiding of the form "Step_one»creating the form "Database_Step_two". Consider the form "Tables_Step_two", designed to connect to one database and then integrate its tables. The following components of slabel, sedit, sbutton, sgroupbox, MySQLDatabase, sstatusbar, PopupMenu are located on the form "Tables_Step_two»(Fig. 6).

6 Figure 6-Form «Tables_Step_two» Components sedit is used to specify the connection parameters to the database. To hide/show the password entered by the user in the password field, the PopupMenu component is used. Button "Connect»(sButton component), connects to the database based on the connection parameters entered by the user, and monitors connection errors. The Next button hides the current form and moves to the next form "Tables_Step_three". The Back button closes the current form and frees the memory allocated for it. The form "Tables_Step_three»contains the following components: slabel, sbutton, sgroupbox, sdbgrid, MySQLQuery, DataSource (Fig. 7). Figure 7-form «Tables_Step_three»

7 SDBGrid component is intended for displaying a list of database tables. When you select a table in sdbgrid1, a list containing the column names of the selected table as well as a complete list of parameters is displayed in sdbgrid2. The button "Customize table»produces hides the current form and navigate to a special form "Setting_up_tables". Let us consider the form of "Setting_up_tables". The form "Setting_up_tables»contains the following components: slabel, sbutton, sradiogroup, spagecontrol, schecklistbox, sedit, scombobox, sspinedit, MySQLTable, MySQLQuery, DataSource (Fig. 8). Figure 8 Form "Setting_up_tables»program Component sradiogroup1 located in the upper part of the form is designed to allow the user to select further action. When selected, the user displays the appropriate tab of the component spagecontrol1 located on it features. Let's take a closer look at all the features of the functional choice. When you select "Divide one table into several»sradiogroup1, happens display tabs "to Divide one table into several»spagecontrol1. On this tab, the user can select a table in the scombobox, choose how many tables to duplicate this table, and select which columns of this table you want to use. Next, the user must select the desired item sradiogroup2. When you select "set name for new tables automatically", the program will set the name for each new table and will contain a prefix, and the»set name for new tables manually «tab of spagecontrol2 will be hidden. When you select "set name for new tables manually", the»set name for new tables manually "tab is displayed.spagecontrol2 on this tab, the user must enter a name for each new table in sedit, and at the same time, each time press the"apply»button.

8 At the end of the work, the user must click on the»split «Button, and the new tables will be added to the database using the SQL query of the MySQLQuery component (Fig. 9). Figure 9 Function "to Divide one table into several forms Setting_up_tables»program When you select "Sliate multiple tables into a single»sradiogroup1, there is a tab display "Sliate multiple tables into a single»spagecontrol1. On this tab, the user can select multiple tables and columns for each selected table in the schecklistbox. Next, the user must select the desired item sradiogroup3. When you select "Merge to existing table", the»merge to existing table «tab opens, where the user will be prompted to select the table in the scombobox, to which the information will be pumped using the SQL query of the MySQLQuery component (Fig. 10).

9 Figure 10 the Item "Sliate in the existing table»function "Sliate multiple tables into a single»form "Setting_up_tables» When you select "Create a new table to merge", the tab "Create a new table to merge»will open, spagecontrol3, where the user must enter a name for a new table in sedit, which will be pumped information using SQL query component MySQLQuery (Fig. 11). Figure 11 Click "Create a new table for the mail merge functions to Sliate multiple tables into a single»form "Setting_up_tables» When you select "Split multiple columns of a table»sradiogroup1, happens display tabs "to Separate multiple table columns»spagecontrol1. On this tab, the

10 user must select the table and its column in the corresponding scombobox, choose how many columns to divide this column of the table, and select the "separator type»in scombobox. There are several standard types of delimiters: "space", "Dot", "semicolon", as well as "Own", which allows you to enter characters directly into the scombobox field itself. With the separator type selected, the program will know how to separate the information for each new column from the original. This feature provides only a small automation of the time-consuming process of separating words in a sentence stored in a column of the table, and can not always guarantee a one hundred percent result. The responsibility for the correct separation of tables remains entirely with the user (Fig. 12). Figure 12 the "Split multiple columns in the table»forms "Setting_up_tables» When you select "Sliate more columns from the table»sradiogroup1, there is a tab display "Sliate more columns from the table»spagecontrol1. On this tab, the user can select a table in the scombobox, and select the columns of the table to be merged in the schecklistbox. Next, the user must select the desired item sradiogroup4. When you select Merge to existing column, the Merge to existing column tab opens, where the user is prompted to select a table column in the scombobox. When you select "Create a new column to merge", the tab "Create a new column to merge»will open, spagecontrol4, where the user must enter the name of a new column in sedit, after which the information will be pumped using the SQL query component MySQLQuery (Fig ).

11 Figure 13 "Sliate in the existing column functions to Cliate a few columns in the table»forms "Setting_up_tables» Figure 14 click the "Create a new column for the merger»"sliate a few columns in the table»forms "Setting_up_tables» Upon completion of the work with the table setup (form, "Setting_up_tables") must click "Ready". The form "Setting_up_tables»will be hidden and the transition back to the form "Tables_Step_three"will take place. The Next button hides the current form (the form»tables_step_three") and moves to the next form"tables_step_four".

12 The form "Tables_Step_four»contains the following components: slabel, sbutton, sgroupbox, scombobox, StringGrid, MySQLTable, MySQLQuery, DataSource (Fig. 15). Figure 15-Form «Tables_Step_four» Because to the scombobox components located at the top of the form, the user can select the first table and its column, as well as the second table and its column, which contain similar data, as well as specify the coefficient of compliance. This factor is responsible for the weights of the matching criteria and participates in the similarity formula in the next step. The coefficient can be of the following types: "Semantic attributes", "time Attributes", "Universal identifier", "foreign key Attributes", "Facts". Clicking on the "set match»button displays the selected parameters in StringGrid1. Based on the user-defined correspondence, the program will then start to compare the records of the selected columns of each of the database tables. Below is another group of scombobox components responsible for adding foreign keys. This option is required if the tables selected in the previous step contain foreign keys of other tables stored in the database. This item is optional and can be configured at the user's discretion. Clicking on the "Add table foreign key»button displays the selected parameters in StringGrid2. The Next button hides the current form and moves to the next form "Tables_Step_five". The Back button closes the current form and frees the memory allocated for it. The form "Tables_Step_five»contains the following components: slabel, sbutton, sdbgrid, DataSource, MySQLQuery, StringGrid (Fig. 16).

13 Figure 16-Form «Tables_Step_five» the order in which the information is displayed in the sdbgrid components at the top of the form. The "Calculate match»button extracts a record from the n-th column of the first table and compares it with all records of the n-th column of the second table. Then takes the next record of the same column of the first table and compares it with all records of the column of the second table. The cycle continues until all the columns in both tables are finished. At the end of the calculation, the user will be displayed in StringGrid the following information: the name of the compared record of the n-th column of the first table, opposite it will be displayed the name of the compared record of the n-th column of the second table, next to it the similarity coefficient; and also provides output in the penultimate column of StringGrid information containing the arithmetic mean value of similarity coefficients and the inscription "like»on against each compared record. This inscription is put on the basis of the value selected by the user in the item "Consider similar records, the coefficients of which". In the last column, records whose arithmetic mean of coefficients is greater than this value are automatically assigned the value "similar". Now the user can change this value or assign it to other records by simply clicking on the desired cell of the last StringGrid column. For convenience, it was added programmatically create a ComboBox component by clicking on the StringGrid cell. The Next button hides the current form and moves to the next form "Tables_Step_six". The form "Tables_Step_six»contains the following components: slabel, sbutton, StringGrid (Fig. 17).

14 Figure 17-Form "Tables_Step_six» The StringGrid component of this form displays all records from the StringGrid of the previous step that have been assigned the "similar"properties. The Next button hides the current form and moves to the next form "Tables_Step_seven". The form "Tables_Step_seven»contains the following components: slabel, sbutton, sradiogroup, spagecontrol, schecklistbox, sedit, scombobox, MySQLTable, MySQLQuery, DataSource (Fig. 18). Figure 18-Form "Tables_Step_seven»

15 Component sradiogroup1 located in the upper part of the form is designed to allow the user to select further action. When selected, the user displays the appropriate tab of the component spagecontrol1 located on it features. Let's take a closer look at all the features of the functional choice. When you select "Create a new table and move it like recording»sradiogroup1, happens display tabs "to Create a new table and move it like recording»spagecontrol1. On this tab, the user can enter the name of the new table in sedit, as well as select which columns of the source tables to use when transferring information to the schecklistbox (Fig. 19). Figure 19 click the "Create new table and drop the write-like forms Tables_Step_seven» When you select "Choose the table to transfer the data»sradiogroup1, there is a display tab "Select the table to transfer the data»spagecontrol1. On this tab, the user can select the database table in scombobox, as well as select which columns of the source tables in the schecklistbox to use when transferring information to the selected table (Fig. 20).

16 Figure 20 click the "Select table to transfer the data forms Tables_Step_seven» When you select "Create a new database and transferred to it such records»sradiogroup1, happens display tabs "to Create a new database and transferred to it such records»spagecontrol1. On this tab, the user can specify a name for the new database in sedit, select which tables and their columns to use in the components of the schecklistbox when transferring information to the new database, and specify the location for the new database. The "Check connection to host»button checks the connection based on the information entered by the user and includes functions for catching connection errors (Fig. 21). Figure 21-Item «Create a new database and transfer similar records to it "form»tables_step_seven»

17 Upon completion of the form "Tables_Step_seven", you must click "Next". Will be hidden form and go to form "Tables_Result". The "Tables_Result»form contains the following components: sgroupbox, slabel, sbutton, sdbgrid, MySQLDatabase, MySQLQuery, DataSource (Fig. 22). Figure 22-Form «Tables_Result» SDBGrid1 component is intended for displaying a list of database tables. When you select a table in sdbgrid1, a list containing the column names of the selected table as well as a complete list of parameters is displayed in sdbgrid2. All information contained in the table selected in sdbgrid1 is displayed to the user in sdbgrid3. The "Shut down»button closes the program. The button «Go to the main form (Step1)»closes the current form and goes to the form "Step_one". The Back button closes the current form and frees the memory allocated for it. Consider the form "Database_Step_two", designed to connect to two databases and their subsequent integration. In the form of "Database_Step_two»has the following components slabel, sedit designed for entering the connection parameters to the database, sbutton, scheckbox, sgroupbox, MySQLDatabase, sstatusbar (Fig. 23). These components perform similar functions as the components located on the "Tables_Step_two»form, but unlike the latter, they are designed to connect two databases at once.

18 Figure 23 - Form «Database_Step_two» The components used to connect to the second database are prefixed with the name "DB2_". This is done in order to facilitate orientation in the code as it is written. The form "Database_Step_three»contains the following components: slabel, sbutton, sgroupbox, sdbgrid, MySQLQuery, DataSource (Fig. 24). Figure 24 - Form «Database_Step_three» SDBGrid1 component is intended for displaying a list of database tables. When you select a table in sdbgrid1, a list containing the column names of the selected table as well as a complete list of parameters is displayed in sdbgrid2.

19 The button "Customize table»produces hides the current form and navigate to a special form "Setting_up_tables". The "Next»button shall hide the current form (form "Database_Step_three") and the transition to the next form "Database_Step_four". The Back button closes the current form and frees the memory allocated for it. The form "Database_Step_four»contains the following components: slabel, sbutton, sgroupbox, scombobox, StringGrid, MySQLTable, MySQLQuery, DataSource (figure 25). Figure 25 - Form «Database_Step_four» Because to the scombobox components located at the top of the form, the user can select the table of the first database, its column, as well as the table of the second database and its column, which contain similar data, as well as the matching coefficient. Clicking on the "set match»button displays the selected parameters in StringGrid1. Below is another group of scombobox components responsible for adding foreign keys. Clicking on the "Add table foreign key»button displays the selected parameters in StringGrid2 or StringGrid3, respectively. The Next button hides the current form and moves to the next form"database_step_five". The Back button closes the current form and frees the memory allocated for it. The form "Database_Step_five»contains the following components: slabel, sbutton, sdbgrid, DataSource, MySQLQuery, StringGrid (Fig. 26).

20 Figure 26-Form «Database_Step_five» The MySQLQuery component contains a SQL query represented by an enumeration of the tables selected in the previous step when matching. This is the order in which the information is displayed in the sdbgrid components at the top of the form. The "Calculate match»button extracts a record from the n-th column of the table of the first database and compares it with all records of the n-th column of the table of the second database. Then takes the next record of the same table column of the first database and compares it with all the records of the table column of the second database. The cycle continues until all the columns of the tables in both databases are finished. At the end of the calculation, the user will be displayed in StringGrid the following information: the name of the compared record of the n-th column of the table of the first database, opposite it will be displayed the name of the compared record of the n-th column of the table of the second database, next to it the similarity coefficient; and also provides output to the last column of StringGrid information containing the arithmetic mean value of similarity coefficients and the inscription "similar»against each compared record. This inscription is put on the basis of the value selected by the user in the item "Consider similar records, the coefficients of which". In the last column, records whose arithmetic mean of coefficients is greater than this value are automatically assigned the value "similar". Now the user can change this value or assign it to other records by simply clicking on the desired cell of the last StringGrid column. For convenience, it was added programmatically create a ComboBox component by clicking on the StringGrid cell. The Next button hides the current form and moves to the next form "Database_Step_six". The Back button closes the current form and frees the memory allocated for it.

21 The form "Database_Step_six»contains the following components: slabel, sbutton, StringGrid (Fig. 27). Figure 27 Form "Database_Step_six»program The StringGrid component of this form displays all records from the StringGrid of the previous step that have been assigned the "similar"property. The Next button hides the current form and moves to the next form "Database_Step_seven". The form "Database_Step_seven»contains the following components: slabel, sbutton, sradiogroup, spagecontrol, schecklistbox, sedit, scombobox, MySQLTable, MySQLQuery, DataSource (Fig. 28). Figure 28 - Form «Database_Step_seven»

22 Component sradiogroup1 located in the upper part of the form is designed to allow the user to select further action. When selected, the user displays the appropriate tab of the component spagecontrol1 located on it features. Let's take a closer look at all the features of the functional choice. When you select "Choose Database and create new tables for transfer of records»sradiogroup1, there is a tab display "to Select the Database and create new tables for transfer of records»spagecontrol1. On this tab, the user can select the name of the database in scombobox, specify in sspinedit the number of new tables that will be created in the selected database, as well as select which columns of the table for which the coefficients were calculated, should be used. Next, the user must select the desired item sradiogroup2. When you select "set name for new tables automatically", the program will set the name for each new table and will contain a prefix, and the»set name for new tables manually «tab of spagecontrol2 will be hidden. When you select "set name for new tables manually", the»set name for new tables manually "tab is displayed.spagecontrol2 on this tab, the user must enter a name for each new table in sedit and click the"apply»button each time. At the end of the work, the user must click on the "Next»button and new tables will be added to the selected database using the SQL query of the MySQLQuery component (Fig. 29). Figure 29-Item "Select Database and create new tables in it to transfer records "form»database_step_seven» When you select "Choose Database and select tables for transfer of records»sradiogroup1, there is a tab display "to Select the Database and select tables for transfer of records»spagecontrol1. On this tab, the user can select the name of the database in scombobox, select the tables and columns of the database

23 in schecklistbox1 and schecklistbox2, as well as in schecklistbox3 select which columns of the table for which the coefficients were calculated, it is necessary to use (Fig. 30). Figure 30 click the "Select Database and select tables for transfer of records»form "Database_Step_seven» When you select "Create a new database and transferred to it such records»sradiogroup1, happens display tabs "to Create a new database and transferred to it such records»spagecontrol1. On this tab, the user can specify a name for the new database in sedit, select which tables and their columns to use when transferring information to the new database in the components of the schecklistbox, and specify the location for the new database. The "Check connection to host»button checks the connection based on the information entered by the user and includes functions for catching connection errors (Fig. 31).

24 Figure 31-Point «Create a new database and transfer similar records to it "form»database_step_seven» Upon completion of the form "Database_Step_seven", you must click "Next". The form will be hidden and the form "Database_Result"will be moved. The form "Database_Result»contains the following components: sgroupbox, slabel, sbutton, sdbgrid, MySQLDatabase, MySQLQuery, DataSource (Fig. 32). Figure 32 - Form «Database_Result» The sdbgrid component is used to display the list of database tables selected for integration of the calculated information at the previous stage. When

25 you select a table in sdbgrid1, a list containing the column names of the selected table as well as a complete list of parameters is displayed in sdbgrid2. All information contained in the table selected in sdbgrid1 is displayed to the user in sdbgrid3. The "Shut down»button closes the program. The button «Go to the main form (Step1)»closes the current form and goes to the form "Step_one". The Back button closes the current form and frees the memory allocated for it. Thus, we can make sure that the developed functional forms of the automated system for the integration of partially homogeneous databases have been created at a high level and should further automate the process of bringing the databases to a common denominator, the process of integration of tables within one database, as well as the integration of two partially homogeneous databases through automatic calculation of similarity coefficients. The first working version of the automated system for the integration of partially homogeneous databases is a working application tested on Windows 10, Windows 7, Windows XP, Ubuntu Linux v Bibliographic list 1. Genesereth M.R., Keller A.M., Duschka O.M. Informaster: An Information Integration System. In Proceedings of ACM SIGMOD International Conference (May 13-15, Tucson, AZ, USA), 1997, pp Yan L.L., Otsu M.T., Liu L. Accessing Heterogeneous Data Through Homogenization and Integration Mediators. In Proceedings Second IFCIS International Conference on Cooperative Information Systems (June 24-27, Kiawah Island, SC, USA), 1997, IEEE CS Press, pp Li C., Yerneni R., Vassalos V., Garcia-molina H., Papakonstantinou Y., Ullman J., Valiveti M. Capability Based Mediation in TSIMMIS. In Proceedings of the 1998 ACM SIGMOD Conference, (June 1-4, Seattle, USA), ACM SIGMOD Record, 27, 2, (June 1998), pp Klas W., Fankhauser P., Muth P., Rakow T.C., Neuhold E.J. Database Integration using the Open Object-Oriented Database System VODAK. In Object Oriented Multidatabase Systems: A Solution for Advanced Applications, Bukhres O., Elmagarmid A.K. (Eds.), Prentice Hall, Lee J., Madnick S.E., Siegel M.D. Conceptualizing Semantic Interoperability: A Perspective from the Knowledge Level. International Journal of Cooperative Information Systems, 5, 4, (December 1996), pp Thiran Ph., Hainaut J.-L., Bodart S., Deflorenne A., Hick J.-M. Interoperation of Independent, Heterogeneous and Distributed Databases. Methodology and CASE Support: the InterDB Approach. In Proceedings Third IFCIS International Conference on Cooperative Information Systems (August 20-22, New York, USA), 1998, IEEE CS Press, pp Ziegler P., Dittrich K.R. User-Specific Semantic Integration of Heterogeneous Data: The SIRUP Approach. In Mokrane Bouzeghoub,

26 Carole Goble, Vipul Kashyap, and Stefano Spaccapietra, editors, First International IFIP Conference on Semantics of a Networked World (ICSNW 2004). volume 3226 of Lecture Notes in Computer Science, pages 44 64, Paris, France, June 17 19, Springer. 8. Ziegler P., Sturm C., Dittrich K.R. Unified Querying of Ontology Languages with the SIRUP Ontology Query API. In 11. GI-Fachtagung for Datenbanksysteme in Business, Technologie und Web (BTW 2005), volume P-65 of Lecture Notes in Informatics, pages , Karlsruhe, Germany, March 2 4, Ziegler P. Evaluation of SIRUP with the SIRUP Classification of Data Integration Conflicts. Technical Report ifi , Department of Informatics, University of Zurich, Rousset M.-C., Reynaud C. Picsel and Xyleme: two illustrative information integration agents. Book chapter in Intelligent Information Agents Research and Development in Europe, Springer-Verlag, Reynaud C., Giraldo G. An application of the mediator approach to services over the Web. Concurrent Engineering, Reynaud C. Building scalable mediator systems. Topical Day in Semantic Integration of Heterogeneous Data, IFIP World Computer Congress, Levy A., Rajaraman A., Ordille J. Querying Heterogeneous Information Sources Using Source Descriptions. Proceedings of the Twenty-second International Conference on VLDB Boyd M., Kittivoravitkul S., Lazanitis C., McBrien P.J., Rizopoulos N. AutoMed: A BAV Data Integration System for Heterogeneous Data Sources. In Proceedings of CAiSE04, Springer Verlag LNCS Vol 3084, Pages 82 97, Boyd M., McBrien P.J. Comparing and Transforming Between Data Models via an Intermediate Hypergraph Data Model. Journal on Data Semantics IV, Pages , SpringerVerlag, Lazarus Бесплатная среда по разработке программного обеспечения // Lazarus URL: (дата обращения: ). 17. Download Your Free Delphi Trial Today - Embarcadero // Fast Cross- Platform App Development Software - Embarcadero URL: (дата обращения: ). 18. AlphaControls // RAD Studio Delphi and C++ Builder VCL components with themes and skins URL: (дата обращения: ).