JP7055064B2 - Database migration support system and program - Google Patents

Database migration support system and program Download PDF

Info

Publication number
JP7055064B2
JP7055064B2 JP2018104207A JP2018104207A JP7055064B2 JP 7055064 B2 JP7055064 B2 JP 7055064B2 JP 2018104207 A JP2018104207 A JP 2018104207A JP 2018104207 A JP2018104207 A JP 2018104207A JP 7055064 B2 JP7055064 B2 JP 7055064B2
Authority
JP
Japan
Prior art keywords
database
sql
test
structural diagram
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018104207A
Other languages
Japanese (ja)
Other versions
JP2019211805A (en
Inventor
紳一郎 大塚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nomura Research Institute Ltd
Original Assignee
Nomura Research Institute Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nomura Research Institute Ltd filed Critical Nomura Research Institute Ltd
Priority to JP2018104207A priority Critical patent/JP7055064B2/en
Publication of JP2019211805A publication Critical patent/JP2019211805A/en
Application granted granted Critical
Publication of JP7055064B2 publication Critical patent/JP7055064B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、データベースを管理・運用するための支援技術に関し、特に、データベースのマイグレーション(移行・変換)を効率的に行えるようにするデータベースマイグレーション支援システム及びプログラムに関する。 The present invention relates to an assistive technology for managing and operating a database, and more particularly to a database migration support system and a program that enable efficient database migration (migration / conversion).

データベースは、例えば、製品変更や、機能の拡張・縮減、ハードディスク資源の交換等の理由により、現行システムを新システムに移行・切り替え(マイグレーション)することが行われる。
これまで、このようなデータベースのマイグレーションに際して、移行先のシステムにおける現行システムと同様の処理・機能を保証しつつ、データベースの移行が効率的に行われるように、各種の支援システムが提案されている。
The database is migrated / switched (migrated) from the current system to a new system for reasons such as product changes, expansion / reduction of functions, replacement of hard disk resources, and the like.
So far, various support systems have been proposed so that the database migration can be performed efficiently while guaranteeing the same processing and functions as the current system in the migration destination system when migrating such a database. ..

例えば、特許文献1には、GUIを介した操作者の操作に基づき、移行元のSQL(データベース言語:Structured Query Language)に対応した移行先のSQLを自動で生成することにより、操作者の習熟度に依存しない、汎用性・操作性に優れたデータベースの移行方法が提案されている。
また、特許文献2には、移行元のSQLを移行先のSQLに変換する場合に、両者における不一致のSQL文を特定することにより、適切に変換されなかったSQL文を自動抽出するデータ変換方法が提案されている。
For example, in Patent Document 1, the operator's proficiency is obtained by automatically generating the migration destination SQL corresponding to the migration source SQL (database language: Structured Query Language) based on the operation of the operator via the GUI. A database migration method with excellent versatility and operability that does not depend on the degree has been proposed.
Further, Patent Document 2 describes a data conversion method for automatically extracting SQL statements that have not been appropriately converted by specifying SQL statements that do not match between the two when converting the source SQL to the migration destination SQL. Has been proposed.

特開2002-351710号公報Japanese Unexamined Patent Publication No. 2002-351710. 特開2011-258002号公報Japanese Unexamined Patent Publication No. 2011-258002

しかしながら、特許文献1や特許文献2に開示されている技術は、移行先の新システムに対して、新たにSQLを生成することを前提としており、移行元の現在稼働中のシステムのSQLを移行先に適用・発行した場合の検証や動作保証の問題については想定されてない。
データベースを新システムに移行する場合、データを記録するハードウェア資源を含むデータベース管理システム(DBMS:DATABASE MANAGEMENT SYSTEM)は、移行先で新たな製品等を導入するものの、データの出し入れに用いるデータベース言語(SQL)については、移行元で使用されているSQLをそのまま用いることが行われる。特に、大規模なデータベースでは、新システムに対応する新たなSQLを改めて一から作成することは、非常に手間やコストがかかることとなり現実的でない。
However, the technologies disclosed in Patent Document 1 and Patent Document 2 are premised on generating SQL newly for the new system of the migration destination, and the SQL of the currently operating system of the migration source is migrated. No problems with verification or operation guarantee when applied / issued first are assumed.
When migrating a database to a new system, a database management system (DBMS: DATABASE MANAGEMENT SYSTEM) that includes hardware resources to record data is a database language used for data transfer, although new products are introduced at the migration destination. For SQL), the SQL used at the migration source is used as it is. In particular, in a large-scale database, it is not realistic to create a new SQL corresponding to the new system from scratch because it takes a lot of time and cost.

その一方で、移行元のSQLを移行先にそのまま適用した場合に、移行先の動作が正しく担保されないことがある。
データベースでは、DBMSのオプティマイザと呼ばれる「頭脳」の部分が、SQLを解釈して、ハードディスク上に論理的に記録されたデータテーブルから最適なデータ習得を行う「実行計画(プラン)」を生成する。
ところが、このオプティマイザの成熟度レベルが、製品によってマチマチな場合があり、例えば移行元で使用されていた複雑なSQLを移行先にそのまま適用すると、本来とは異なる「間違った結果」が返却されるといったことが起こり得る。つまり、同じSQLであっても、DBMS(オプティマイザ)の製品によって、正しい結果を返却できるものと、そうでないものが存在することがある。
On the other hand, when the migration source SQL is applied to the migration destination as it is, the operation of the migration destination may not be guaranteed correctly.
In the database, the "brain" part called the optimizer of the DBMS interprets SQL and generates an "execution plan (plan)" that acquires optimal data from the data table logically recorded on the hard disk.
However, the maturity level of this optimizer may vary depending on the product. For example, if the complex SQL used at the migration source is applied to the migration destination as it is, a different "wrong result" will be returned. Can happen. That is, even if the SQL is the same, there may be some that can return the correct result and some that cannot return the correct result depending on the product of the DBMS (optimizer).

SQLは、複雑なものであれば例えば50行を超えるSQL文で構成され、大規模システムでは、そのようなSQLが例えば10万本近く実装されるような場合もある。
このような膨大なSQLを、効率よく確実に検証して動作担保を行うことは、非常に手間と時間がかかるもので、現実には全てのSQLを試験・検証することは困難乃至不可能である。
このような、移行元と移行先で同一のSQLを用いる場合の動作保証や検証などの問題について、上述した特許文献1,2を含めて、有効に対処し得る従来技術は提案されていない。
A SQL is composed of, for example, more than 50 lines of SQL statements if it is complicated, and in a large-scale system, for example, nearly 100,000 such SQLs may be implemented.
It takes a lot of time and effort to efficiently and surely verify such a huge amount of SQL and guarantee its operation, and in reality, it is difficult or impossible to test and verify all SQLs. be.
No prior art has been proposed that can effectively deal with such problems such as operation guarantee and verification when the same SQL is used in the migration source and the migration destination, including the above-mentioned Patent Documents 1 and 2.

本発明は、以上の課題を解決するために、データベースのマイグレーションに際して、移行先で移行元と同一のSQLを使用する場合に、効率的な動作確認を行うことができるデータベースマイグレーション支援システム及びプログラムを提供することを目的とする。 In order to solve the above problems, the present invention provides a database migration support system and a program that can efficiently confirm the operation when the same SQL as the migration source is used at the migration destination when migrating the database. The purpose is to provide.

上記目的を達成するため、本発明は、移行元データベースから移行先データベースへのデータベースのマイグレーションを支援するシステムであって、前記移行元データベースのデータベース管理システムに実装される、所定のデータベース言語で作成されたデータベース言語文を入力するデータベース言語入力部と、前記データベース言語入力部で入力されたデータベース言語文の文字列を分解し、所定の画像に置換して、当該データベース言語の構造図を作成する構造図作成部とを備え、前記構造図作成部で作成された構造図に基づいて、前記移行先データベースにおける前記データベース言語文の動作確認テストを実行する構成としてある。 In order to achieve the above object, the present invention is a system that supports the migration of a database from the migration source database to the migration destination database, and is created in a predetermined database language implemented in the database management system of the migration source database. The database language input unit for inputting the database language sentence and the character string of the database language sentence input in the database language input unit are decomposed and replaced with a predetermined image to create a structural diagram of the database language. It is configured to include a structural diagram creating unit and execute an operation confirmation test of the database language sentence in the migration destination database based on the structural diagram created by the structural diagram creating unit .

また、本発明は、上記のような本発明に係るデータベースマイグレーション支援システムで実行されるプログラムとして構成することができる。
さらに、本発明は、上記のような本発明に係るデータベースマイグレーション支援システム及びプログラムによって実施可能な方法として実施することもできる。
Further, the present invention can be configured as a program executed by the database migration support system according to the present invention as described above.
Furthermore, the present invention can also be implemented as a method that can be implemented by the database migration support system and program according to the present invention as described above.

本発明によれば、データベースのマイグレーションに際して、SQLを構造図化,パターン化することにより、移行先で移行元と同一のSQLを使用する場合に、効率的な動作確認を行うことが可能となる。 According to the present invention, by structurally plotting and patterning SQL when migrating a database, it is possible to efficiently check the operation when the same SQL as the migration source is used at the migration destination. ..

本発明の一実施形態に係るデータベースマイグレーション支援システム(以下「本システム」という)の全体構成を模式的に示す機能ブロック図である。It is a functional block diagram which shows typically the whole structure of the database migration support system (hereinafter referred to as "the present system") which concerns on one Embodiment of this invention. 本システムにおけるSQLのパターン化のアルゴリズムを模式的に示す説明図である。It is explanatory drawing which shows typically the algorithm of the patterning of SQL in this system. パターン化におけるSQLの収れん処理のアルゴリズムを模式的に示す説明図である。It is explanatory drawing which shows typically the algorithm of the astringent processing of SQL in patterning. 収れんされたSQLのテスト処理のアルゴリズムを模式的に示す説明図である。It is explanatory drawing which shows schematically the algorithm of the test processing of astringent SQL. パターン化されたSQLの進化処理のアルゴリズムを模式的に示す説明図である。It is explanatory drawing which shows typically the algorithm of the evolution process of the patterned SQL. 進化されたSQLのテスト結果を示すレポート出力の一例を示す説明図である。It is explanatory drawing which shows an example of the report output which shows the test result of the evolved SQL. 同じく進化されたSQLのテスト結果を示すレポート出力の一例を示す説明図である。It is explanatory drawing which shows an example of the report output which shows the test result of the similarly evolved SQL. SQLのテスト結果の表示順序を変更したレポート出力の一例を示す説明図である。It is explanatory drawing which shows an example of the report output which changed the display order of the SQL test result. パターン化されたSQLの退化処理のアルゴリズムを模式的に示す説明図である。It is explanatory drawing which shows schematically the algorithm of the degeneration processing of the patterned SQL. 退化されたSQLのテスト結果を示すレポート出力の一例を示す説明図である。It is explanatory drawing which shows an example of the report output which shows the test result of degenerate SQL. SQLに含まれる「SELECT」文の構造を示す説明図である。It is explanatory drawing which shows the structure of the "SELECT" sentence included in SQL. 同じく、「SELECT」文の構造を示す説明図である。Similarly, it is explanatory drawing which shows the structure of the "SELECT" sentence. 同じく、「SELECT」文の構造を示す説明図である。Similarly, it is explanatory drawing which shows the structure of the "SELECT" sentence. 図11に示す「SELECT」文の構造を所定の構造図に置換する手法を示す説明図である。It is explanatory drawing which shows the method of replacing the structure of the "SELECT" sentence shown in FIG. 11 with a predetermined structure diagram. 同じく、図12に示す「SELECT」文を構造図に置換する場合の説明図である。Similarly, it is explanatory drawing in the case of replacing the "SELECT" sentence shown in FIG. 12 with a structural diagram. 同じく、図13に示す「SELECT」文を構造図に置換する場合の説明図である。Similarly, it is explanatory drawing in the case of replacing the "SELECT" sentence shown in FIG. 13 with a structural diagram. 「INSERT」文を構造図に置換する場合の説明図である。It is explanatory drawing in the case of replacing an "INSERT" statement with a structural diagram. 同じく、「INSERT」文を構造図に置換する場合の説明図である。Similarly, it is an explanatory diagram in the case of replacing the "INSERT" statement with a structural diagram. 「UPDATE」文を構造図に置換する場合の説明図である。It is explanatory drawing in the case of replacing the "UPDATE" sentence with a structural diagram. 「DELETE」文を構造図に置換する場合の説明図である。It is explanatory drawing in the case of replacing a "DELETE" sentence with a structural diagram. 生成された構造図をマッピングする手法を示す説明図であり、構造図が「SELECT」文の場合である。It is explanatory drawing which shows the method of mapping the generated structural diagram, and is the case where the structural diagram is a "SELECT" statement. 同じく、「INSERT」文の構造図をマッピングする場合の説明図である。Similarly, it is an explanatory diagram in the case of mapping the structural diagram of the "INSERT" statement. マッピングされた構造図の収れん処理の手法を示す説明図である。It is explanatory drawing which shows the method of astringent processing of the mapped structure diagram. 同じく、構造図の収れん処理の手法を示す説明図である。Similarly, it is explanatory drawing which shows the method of astringent processing of a structural drawing. 同じく、構造図の収れん処理の手法を示す説明図である。Similarly, it is explanatory drawing which shows the method of astringent processing of a structural drawing. マッピングされた構造図の進化処理の手法を示す説明図である。It is explanatory drawing which shows the method of evolution processing of the mapped structure diagram. 同じく、構造図の進化処理の手法を示す説明図である。Similarly, it is an explanatory diagram showing the method of evolution processing of the structural diagram. 進化処理された構造に対応するデータを自動生成する手法と出力結果を示す説明図である。It is explanatory drawing which shows the method which automatically generates the data corresponding to the evolved structure, and the output result. 同じく、進化処理された構造に対応するデータの自動生成の手法と出力結果を示す説明図である。Similarly, it is an explanatory diagram showing the method of automatic generation of data corresponding to the evolved structure and the output result. 出力データを入れ替えて出力・表示させる手法を示す説明図である。It is explanatory drawing which shows the method of exchanging output data and outputting and displaying. マッピングされた構造図の退化処理の手法を示す説明図である。It is explanatory drawing which shows the degeneration processing method of the mapped structure diagram. 同じく、構造図の退化処理の手法を示す説明図である。Similarly, it is explanatory drawing which shows the method of degeneration processing of a structural diagram. 退化処理された構造に対応するデータの出力結果を示す説明図である。It is explanatory drawing which shows the output result of the data corresponding to the degenerated structure. 同じく、退化処理された構造に対応するデータの出力結果を示す説明図である。Similarly, it is explanatory drawing which shows the output result of the data corresponding to the degenerate structure. 特殊関数ファイルの一例を示す説明図である。It is explanatory drawing which shows an example of a special function file. 本システムにおける移行元と移行先のSQLの動作確認処理の工程を示すフローチャートである。It is a flowchart which shows the process of operation confirmation processing of the migration source and migration destination SQL in this system. 動作確認処理における画面表示の一例を示す説明図である。It is explanatory drawing which shows an example of the screen display in operation confirmation processing. 同じく、動作確認処理における画面表示の一例を示す説明図である。Similarly, it is explanatory drawing which shows an example of the screen display in operation confirmation processing. 図36の「代表パターン:SQLファイルの作成/配置」処理のフローチャートである。It is a flowchart of "representative pattern: creation / arrangement of SQL file" process of FIG. 図36の「代表パターン:テストデータの投入・正解データの作成/配置」処理のフローチャートである。FIG. 36 is a flowchart of the “representative pattern: input of test data / creation / arrangement of correct answer data” process. 図36の「代表パターン:代表SQLの決定」処理のフローチャートである。It is a flowchart of "representative pattern: determination of representative SQL" processing of FIG. 同じく、「代表パターン:代表SQLの決定」処理のフローチャートである。Similarly, it is a flowchart of "representative pattern: determination of representative SQL" processing. 同じく、「代表パターン:代表SQLの決定」処理のフローチャートである。Similarly, it is a flowchart of "representative pattern: determination of representative SQL" processing. 図36の「代表パターン:テスト実施(現行保証/進化/退化)」処理のフローチャートである。It is a flowchart of "representative pattern: test execution (current guarantee / evolution / degeneration)" process of FIG. 同じく、「代表パターン:テスト実施(現行保証/進化/退化)」処理のフローチャートである。Similarly, it is a flowchart of "representative pattern: test execution (current guarantee / evolution / degeneration)" processing. 同じく、「代表パターン:テスト実施(現行保証/進化/退化)」処理のフローチャートである。Similarly, it is a flowchart of "representative pattern: test execution (current guarantee / evolution / degeneration)" processing. 同じく、「代表パターン:テスト実施(現行保証/進化/退化)」処理のフローチャートである。Similarly, it is a flowchart of "representative pattern: test execution (current guarantee / evolution / degeneration)" processing. 図36の「特殊関数:代表SQL決定」処理のフローチャートである。It is a flowchart of "special function: representative SQL determination" processing of FIG. 図36の「特殊関数:テスト実施」処理のフローチャートである。It is a flowchart of "special function: test execution" processing of FIG. 図36の「代表パターン/特殊関数:結果レポート作成」処理のフローチャートである。FIG. 36 is a flowchart of the “representative pattern / special function: result report creation” process of FIG.

以下、本発明に係るデータベースマイグレーション支援システム及びプログラムの実施形態について、図面を参照しつつ説明する。
ここで、以下に示す本発明のデータベースマイグレーション支援システムは、プログラム(ソフトウェア)の命令によりコンピュータで実行される処理,手段,機能によって実現される。プログラムは、コンピュータの各構成要素に指令を送り、以下に示す本発明に係る所定の処理や機能等を行わせることができる。すなわち、本発明における各処理や手段,機能は、プログラムとコンピュータとが協働した具体的手段によって実現される。
Hereinafter, embodiments of the database migration support system and the program according to the present invention will be described with reference to the drawings.
Here, the database migration support system of the present invention shown below is realized by the processes, means, and functions executed by the computer according to the instructions of the program (software). The program can send a command to each component of the computer to perform predetermined processing, functions, and the like according to the present invention shown below. That is, each process, means, and function in the present invention is realized by concrete means in which a program and a computer cooperate.

なお、プログラムの全部又は一部は、例えば、磁気ディスク,光ディスク,半導体メモリ,その他任意のコンピュータで読取り可能な記録媒体により提供され、記録媒体から読み出されたプログラムがコンピュータにインストールされて実行される。また、プログラムは、記録媒体を介さず、通信回線を通じて直接にコンピュータにロードし実行することもできる。
また、本システムは、単一の情報処理装置(例えば一台のパーソナルコンピュータ等)で構成することもでき、複数の情報処理装置(例えば複数台のサーバコンピュータ群等)で構成することもできる。
All or part of the program is provided by, for example, a magnetic disk, an optical disk, a semiconductor memory, or any other computer-readable recording medium, and the program read from the recording medium is installed and executed in the computer. To. The program can also be loaded and executed directly on the computer via a communication line without going through a recording medium.
Further, this system can be configured by a single information processing device (for example, one personal computer or the like), or can be configured by a plurality of information processing devices (for example, a group of a plurality of server computers).

[システム構成]
図1に示すように、本システム10は、移行元データベース100から移行先データベース200へのデータベースのマイグレーションを支援するシステムであり、所定の情報処理装置、例えば1又は2以上のサーバコンピュータ等によって構成することができる。
なお、特に図示していないが、本システム10を構成する情報処理装置には、演算手段・記憶手段・入力手段・出力手段などのハードウェア資源、所定のアプリケーション/データなどのソフトウェア資源が備えられていることは言うまでもない。
[System configuration]
As shown in FIG. 1, the system 10 is a system that supports the migration of a database from the migration source database 100 to the migration destination database 200, and is configured by a predetermined information processing device, for example, one or two or more server computers. can do.
Although not shown in particular, the information processing apparatus constituting the system 10 is provided with hardware resources such as arithmetic means, storage means, input means, and output means, and software resources such as predetermined applications / data. Needless to say that it is.

移行元データベース100は、現在稼動中の情報処理装置(現行稼動機)であって、対象データを記録したハードディスク等のハードウェア資源を含むデータベース管理システム(DBMS)と、データの出し入れに用いられる所定のデータベース言語で作成されたデータベース言語文あるSQLなどによって構成されている。なお、この移行元データベース100には、現在は稼動していないが過去に正常に稼働していたデータベース等も当然に含まれる。
移行先データベース200は、新規に稼動を予定している情報処理装置であって、ハードウェア資源,DBMSなどによって構成されている。この移行先データベース200についても、過去に稼動していたデータベース等も含まれる。
The migration source database 100 is an information processing device (currently operating machine) currently in operation, and is a database management system (DBMS) including hardware resources such as a hard disk on which target data is recorded, and a predetermined data used for data transfer. It is composed of SQL, etc., which is a database language sentence created in the database language of. It should be noted that the migration source database 100 naturally includes a database or the like that is not currently operating but has been operating normally in the past.
The migration destination database 200 is an information processing device newly scheduled to be operated, and is composed of hardware resources, a DBMS, and the like. The migration destination database 200 also includes databases and the like that have been in operation in the past.

ここで、移行元データベース100と移行先データベース200のDBMSやハードウェア構成が同一であれば、データを移行させるだけ、移行元のSQLを使用することで、基本的には移行先での動作は保証されており、動作試験は確認的に行えば良いことになる。
したがって、本システム10は、特に移行元データベース100と移行先データベース200において、DBMSやハードウェア構成が異なる場合、例えば、移行元と移行先でデータベース製品が異なり、実装されているDBMSのオプティマイザの成熟度レベルに差異がある場合、ハードディスクの構成が移行先と移行元で共有ディスク型と分散ディスク型で異なっている場合、などにおけるデータベース移行支援に好適である。
但し、移行元/移行先のデータベース構成が同一の場合でも、本システム10を適用して、移行先の動作確認や拡張・変更機能の確認などを行うことは勿論可能である。
Here, if the DBMS and hardware configurations of the migration source database 100 and the migration destination database 200 are the same, the operation at the migration destination is basically performed by using the migration source SQL only for migrating the data. It is guaranteed, and the operation test should be done confirmatively.
Therefore, in this system 10, when the DBMS and hardware configurations are different, especially in the migration source database 100 and the migration destination database 200, for example, the database products are different between the migration source and the migration destination, and the maturity of the implemented DBMS optimizer. It is suitable for database migration support when there is a difference in the degree level, when the hard disk configuration is different between the shared disk type and the distributed disk type between the migration destination and the migration source.
However, even if the database configuration of the migration source / migration destination is the same, it is of course possible to apply this system 10 to check the operation of the migration destination and the expansion / change function.

本システム10では、図1に示すように、現行稼動している移行元データベース100から、実行済みのSQL情報とデータを取得して、移行先データベース200に対してデータを入れて、同じSQLが同じ結果を出力するかどうか、同じ性能で動作するか(例えばCPU・メモリ使用率・処理時間などが同じか)の稼動確認を行うようになっている。
なお、本システム10は、移行元データベース100と移行先データベース200の双方と通信できる場合には、上記のような稼動確認処理を自動で実行することができる。
また、例えば移行元と移行先のデータベースが異なるシステムインテグレータ等によって提供される場合など、本システム10が移行元データベース100と通信できない環境にある場合には、動作確認を行うSQL/データをユーザ等が手動で用意することで、本システム10での稼動確認処理を作動させることができる。
In this system 10, as shown in FIG. 1, the executed SQL information and data are acquired from the migration source database 100 currently in operation, and the data is input to the migration destination database 200, and the same SQL is obtained. It is designed to check whether the same result is output and whether it operates with the same performance (for example, whether the CPU, memory usage rate, processing time, etc. are the same).
If the system 10 can communicate with both the migration source database 100 and the migration destination database 200, the operation confirmation process as described above can be automatically executed.
Further, when the system 10 cannot communicate with the migration source database 100, for example, when the migration source database and the migration destination database are provided by different system integrators, the SQL / data for checking the operation is used by the user or the like. By manually preparing the system 10, the operation confirmation process in the system 10 can be operated.

ここで、本システム10が対象とする移行元データベース100で稼動しているSQLは、例えば400行以上のSQL文、30以上の利用テーブル数などのSQLが10万本近くになるなど、複雑で膨大なキャラクタデータ(ソースコード)によって構成されることがある。
このような規模のSQLについて、稼動確認用データ及び正しい結果を用意することは、多大な労力と時間がかかり、SQLの全てについて検証を行うことは困難乃至不可能であり、実際には何本もチェックできないのが現実である。
このような課題に対して、本システム10では、対象となるSQLをパターン化し、効率的な動作確認を実施できるようにし、これによって、安心/安全なデータベース移行を実現し、プロジェクト工期の予期せぬ長期化や、品質低下等を防ぐことができるものである。
Here, the SQL running in the migration source database 100 targeted by the system 10 is complicated, for example, the SQL of 400 rows or more, the number of used tables of 30 or more, etc. is close to 100,000. It may be composed of a huge amount of character data (source code).
It takes a lot of labor and time to prepare operation confirmation data and correct results for SQL of such scale, and it is difficult or impossible to verify all of SQL, and in reality, how many. The reality is that you cannot check.
In response to such issues, this system 10 patterns the target SQL and enables efficient operation confirmation, thereby realizing safe / secure database migration and predicting the project construction period. It is possible to prevent a long period of time and deterioration of quality.

具体的には、本システム10では、移行元データベース100から稼動中のSQLを入力することにより、大きく以下のような「SQLのパターン化」,「進化テスト」,「レポート出力」の3つの処理が実行されるようになっている。
[SQLのパターン化処理]
SQLをパターン化して最小本数化を行い、それによってテストの効率化を図るものである。
具体的には、パターン化処理は、大要以下の3つの処理が実行される。
(1)4分類(SELECT・UPDATE・INSERT・DELETE)
SQLを4つの基本構文(SELECT・UPDATE・INSERT・DELETE)に従って分類・抽出する処理である。
(2)構造図の作成
分類された各基本構文について、所定の構造図を示す画像を当てはめて置換し、キャラクタデータを画像データに変換する処理である。
(3)収れん処理
生成された構造図について、同一・重複構造を削除することにより、構造図全体を収れん・縮減させる処理である。
Specifically, in this system 10, by inputting the SQL in operation from the migration source database 100, the following three processes of "SQL patterning", "evolution test", and "report output" are roughly performed. Is to be executed.
[SQL patterning process]
The SQL is patterned to minimize the number, thereby improving the efficiency of the test.
Specifically, in the patterning process, the following three processes are roughly executed.
(1) 4 categories (SELECT / UPDATE / INSERT / DELETE)
This is a process of classifying and extracting SQL according to four basic syntaxes (SELECT, UPDATE, INSERT, DELETE).
(2) Creation of structural diagram This is a process in which an image showing a predetermined structural diagram is applied and replaced for each classified basic syntax, and character data is converted into image data.
(3) Convergence processing This is a processing to reduce or reduce the entire structural drawing by deleting the same / overlapping structure of the generated structural drawing.

[進化テスト処理]
(1)テスト
収れん処理された構造図を元のSQLのキャラクタデータに変換してテストを実行する処理である。
(2)進化SQLの自動生成
収れん処理された構造図を進化させることにより、進化されたSQLを自動生成する処理である。この進化SQLをテストすることにより、将来的な今後の開発を予測した応用確認などの進化テストが可能となる。
(3)進化SQLに対応した自動データ増幅による応用テスト
進化SQLに対応した仮想データを自動生成する処理であり、進化テストを効率的に実行できるようになる。
[Evolution test process]
(1) Test This is a process of converting the astringent structural diagram into the original SQL character data and executing the test.
(2) Automatic generation of evolved SQL This is a process to automatically generate evolved SQL by evolving the astringent structural diagram. By testing this evolution SQL, it is possible to perform evolution tests such as application confirmation that predicts future development in the future.
(3) Applied test by automatic data amplification corresponding to evolution SQL This is a process to automatically generate virtual data corresponding to evolution SQL, and the evolution test can be executed efficiently.

[レポート出力処理]
上述し進化テストを含むテスト結果を出力処理である。
これによって、移行先データベース200における動作確認を、表示画面等で視覚を通じて確認できるとともに、進化テストの結果なども容易に確認できるようになる。
[Report output processing]
The test results including the evolution test described above are output processing.
As a result, the operation confirmation in the migration destination database 200 can be visually confirmed on the display screen or the like, and the result of the evolution test can be easily confirmed.

[機能構成]
上記のような各処理を実行するために、本システム10は、図1に示すように、データベース言語入力部11,構造図作成部12,収れん処理部13,進化/退化処理部14,代表パターン生成部15,代表パターンテスト実行部16,特殊関数テスト実行部17,レポート出力部18の各部として機能するように構成される。
データベース言語入力部11は、移行元データベース100のDBMSに実装されている所定のデータベース言語で作成されたデータベース言語文であるSQLを入力する。
構造図作成部12は、データベース言語入力部11で入力されたSQLの文字列を分解し、所定の画像に置換して、当該SQLの構造図を作成する。このようなSQLを構造図に変換・作成することができる本システム10では、以下に示すような代表SQLに基づく検証・テストを自動で行うことができる他、例えば、システムを管理するシステムエンジニア等の人間が、構造図を目視で確認・チェックすることで、テスト数を減らすようなことも可能となる。
[Functional configuration]
In order to execute each of the above processes, the system 10 has a database language input unit 11, a structural diagram creation unit 12, a convergence processing unit 13, an evolution / degeneration processing unit 14, and a representative pattern, as shown in FIG. It is configured to function as each of the generation unit 15, the representative pattern test execution unit 16, the special function test execution unit 17, and the report output unit 18.
The database language input unit 11 inputs SQL which is a database language sentence created in a predetermined database language implemented in the DBMS of the migration source database 100.
The structural diagram creation unit 12 decomposes the SQL character string input by the database language input unit 11 and replaces it with a predetermined image to create a structural diagram of the SQL. In this system 10 that can convert and create such SQL into a structural diagram, verification / testing based on the representative SQL as shown below can be automatically performed, and for example, a system engineer who manages the system, etc. It is also possible for human beings to reduce the number of tests by visually checking and checking the structural drawing.

収れん処理部13は、構造図作成部12で作成された構造図に、同一構造が含まれているか否かを検索し、同一構造が含まれる場合には一方を破棄することにより、構造図を収れんする。
進化/退化処理部14は、収れん処理部13で収れんされた構造図に、構造を追加して進化させ、又は構造を削除して退化させる。
The astringent processing unit 13 searches for whether or not the structural diagram created by the structural diagram creating unit 12 contains the same structure, and if the same structure is included, discards one of them to obtain a structural diagram. Converge.
The evolution / degeneration processing unit 14 adds a structure to the structural diagram converged by the astringent processing unit 13 to evolve it, or deletes the structure to degenerate it.

代表パターン生成部15は、収れん処理部13で収れんされた構造図を元の文字列に置換して、最小数にパターン化された代表SQL(代表データベース言語文)を生成する。
また、代表パターン生成部15は、進化/退化処理部14で進化又は退化された構造図を文字列に置換して、代表SQLを生成する。
代表パターンテスト実行部16は、代表パターン生成部15で生成された代表SQLについて、所定の正解データを用いたテストを実行する。
なお、本システム10では、SQLを構造図に変換した後に、SQLの検証や進化/退化を行うために、構造図から逆変換してSQL文を生成しているが、最初にSQL文から構造図に変換しているため、元のSQL文を記録しておくことにより、構造図の逆変換を行うことなく、記録してある元のSQLを読み出すことによっても、検証や進化/退化を行うことも可能である。
The representative pattern generation unit 15 replaces the structural diagram converged by the astringent processing unit 13 with the original character string, and generates a representative SQL (representative database language sentence) patterned to the minimum number.
Further, the representative pattern generation unit 15 replaces the structural diagram evolved or degenerated by the evolution / degeneration processing unit 14 with a character string to generate a representative SQL.
The representative pattern test execution unit 16 executes a test using predetermined correct answer data for the representative SQL generated by the representative pattern generation unit 15.
In this system 10, after converting SQL into a structural diagram, in order to verify and evolve / degenerate the SQL, the SQL statement is generated by reverse conversion from the structural diagram, but the structure is first generated from the SQL statement. Since it is converted to a figure, by recording the original SQL statement, verification and evolution / degeneration can be performed by reading the recorded original SQL without performing the inverse conversion of the structural diagram. It is also possible.

特殊関数テスト実行部17は、データベース言語入力部11で入力されたSQLの文字列に、所定の特殊関数が含まれているか否かを検索し、所定の特殊関数が含まれる場合には、当該特殊関数について、所定の正解データを用いたテストを実行する。
レポート出力部18は、代表パターンテスト実行部16や特殊関数テスト実行部17で実行されたテスト結果を出力する。
以上のような本システム10の各部11~18によって実行されるデータベースのマイグレーション支援のための処理・動作の詳細について、図面を参照しつつ以下に詳述する。
The special function test execution unit 17 searches for whether or not a predetermined special function is included in the SQL character string input by the database language input unit 11, and if the predetermined special function is included, the relevant special function is included. Execute a test using predetermined correct answer data for special functions.
The report output unit 18 outputs the test results executed by the representative pattern test execution unit 16 and the special function test execution unit 17.
The details of the processing / operation for supporting the migration of the database executed by the respective parts 11 to 18 of the system 10 as described above will be described in detail below with reference to the drawings.

[アルゴリズム]
まず、図2~図35を参照して、本システム10における処理・動作を実現するための具体的なアルゴリズム(手順)について説明する。
[SQLパターン化]
図2に、本システム10におけるSQLのパターン化のアルゴリズムを模式的に示す。
同図に示すように、本システム10に移行元データベース100のSQLが入力されると(データベース言語入力部11)、SQLを構成するソースコードから「1ファイル:1SQL」単位でキャラクタデータが抽出され、1ファイルずつSQLの構文タイプに応じて振り分けられる。
[algorithm]
First, a specific algorithm (procedure) for realizing the processing / operation in the system 10 will be described with reference to FIGS. 2 to 35.
[SQL patterning]
FIG. 2 schematically shows the SQL patterning algorithm in the system 10.
As shown in the figure, when the SQL of the migration source database 100 is input to the system 10 (database language input unit 11), character data is extracted from the source code constituting the SQL in units of "1 file: 1SQL". Each file is sorted according to the SQL syntax type.

具体的には、図2に示すように、「SELECT系」,「UPDATE系」,「INSERT系」,「DELETE系」に、1ファイルずつSQL文が振り分けられ、所定のSQL格納ディレクトリ(記憶手段)に格納されていく。なお、この処理は、それぞれのディレクトごとにパラレルで処理を行うことにより、処理の高速化を図ることができる。
次に、構文タイプごとに振り分けられたSQL文のキャラクタデータは、1ファイルずつ、所定の構造図への置換・変換処理が行われ(図14~図20参照)、構造図ファイルが生成される(構造図作成部12)。
そして、生成された構造図データを、後述する包含関係(図3参照)を用いた収れん処理によって収れん・縮減されて(収れん処理部13)、「代表パターン」が生成され、膨大なキャラクタデータからなる元のSQLが。収れんされた構造図からなる代表パターンデータにパターン化されることなる(代表パターン生成部15)。
Specifically, as shown in FIG. 2, SQL statements are distributed one file at a time to "SELECT system", "UPDATE system", "INSERT system", and "DELETE system", and a predetermined SQL storage directory (storage means). ) Will be stored. It should be noted that this processing can be speeded up by performing the processing in parallel for each directory.
Next, the character data of the SQL statement sorted by syntax type is replaced and converted into a predetermined structural diagram one file at a time (see FIGS. 14 to 20), and a structural diagram file is generated. (Structural drawing creation unit 12).
Then, the generated structural diagram data is converged / reduced by astringent processing using an inclusion relationship (see FIG. 3) described later (convergence processing unit 13), and a "representative pattern" is generated from a huge amount of character data. The original SQL is. It will be patterned into representative pattern data consisting of astringent structural diagrams (representative pattern generation unit 15).

[SQLパターン収れん]
図3に、上記のような構造図の収れん処理のアルゴリズムを模式的に示す。
同図に示すように、収れん処理は、構造図の包含関係により収れんさせる。
具体的には、構造図に含まれる複数の構造について、構造が同じ場合には、重複する構造であるとして、一方を他方に包含(破棄)させることにより、構造図を収れんする。
例えば、図3に示す例では、「UNION」構造が2つのケースは、「UNION」が3つのケースに包含することができる。
このように、構造図の同一構造に着目して、包含(破棄)が可能な対象構造の選定を行う。
[SQL pattern convergence]
FIG. 3 schematically shows an algorithm for astringent processing of the structural diagram as described above.
As shown in the figure, the astringent treatment is performed by the inclusion relationship of the structural diagram.
Specifically, regarding a plurality of structures included in the structural diagram, if the structures are the same, the structural diagram is converged by including (discarding) one of them as overlapping structures.
For example, in the example shown in FIG. 3, the case where the "UNION" structure is two can be included in the case where the "UNION" is three.
In this way, paying attention to the same structure in the structural diagram, the target structure that can be included (discarded) is selected.

[テスト]
そして、以上のようにして収れんされた構造図に基づいて、動作確認のテストを行うことができる(代表パターンテスト実行部16)。
図4に示すように、動作確認テストは、構造図によって収れん・パターン化されたSQLについて行われる。これによって、元の膨大なSQLと比較して、収れん・縮減されたSQLについてテストを行えば良く、テストの正しい結果を示す正解データも、少ないデータで対応することができる。これに対して、元のそのままのSQLについてテストを行おうとすれば、全てのSQLに対応する正解データを準備する必要があり、そのような正解データを用意することは、現実に困難乃至不可能である。
なお、テストの正解データは、例えば、テーブルにデータを格納し、予め本システム10の記憶手段などに用意しておくことができる。
[test]
Then, the operation confirmation test can be performed based on the structural diagram converged as described above (representative pattern test execution unit 16).
As shown in FIG. 4, the operation confirmation test is performed on the SQL that has been converged and patterned by the structural diagram. As a result, it is sufficient to perform a test on the astringent / reduced SQL as compared with the original enormous SQL, and the correct answer data showing the correct result of the test can be dealt with with a small amount of data. On the other hand, if you want to test the original SQL, it is necessary to prepare correct answer data corresponding to all SQL, and it is actually difficult or impossible to prepare such correct answer data. Is.
The correct answer data of the test can be stored in a table, for example, and can be prepared in advance in a storage means of the system 10.

[SQLパターン進化/退化]
そして、以上のようなテスト処理の結果に応じて、パターン化されたSQLの進化/退化を行うことができる(進化/退化処理部14)。
具体的には、まず、テストの結果、移行先データベース200でも、現行の移行元データベース100と同じ正しい結果が出た場合には、SQLを「進化」させることができる。これによって、移行先データベース200における今後の開発予測等を行うことができるようになる。
一方、テストの結果、移行先データベース200で誤った結果が出た場合には、現行のSQLを「退化」させる。これによって、移行先データベース200において正しい結果の出るSQLを予測・生成することが可能となる。
このようなSQLの進化/退化は、以下に示す自動生成処理によって行うことができ、特に、SQLを進化させた場合には、自動で進化データ及び正解データを生成し、自動データ増幅による応用テスト(進化テスト)を実行することができる。
[SQL pattern evolution / degeneration]
Then, the patterned SQL can be evolved / degenerated according to the result of the test processing as described above (evolution / degeneration processing unit 14).
Specifically, first, as a result of the test, if the same correct result as the current migration source database 100 is obtained in the migration destination database 200, the SQL can be "evolved". This makes it possible to predict future development in the migration destination database 200.
On the other hand, if an erroneous result is obtained in the migration destination database 200 as a result of the test, the current SQL is "degenerated". This makes it possible to predict and generate SQL that produces correct results in the migration destination database 200.
Such evolution / degeneration of SQL can be performed by the automatic generation process shown below. In particular, when SQL is evolved, evolution data and correct answer data are automatically generated, and an application test by automatic data amplification is performed. (Evolution test) can be executed.

[進化]
図5に、自動進化処理のアルゴリズムを模式的に示す。
まず、SQLを進化させる場合には、図5に示すように、パターン化されたSQLの構造図について、以下の3つのパターンによりSQLを変化(進化)させることができる。
[evolution]
FIG. 5 schematically shows an algorithm for automatic evolution processing.
First, when evolving SQL, as shown in FIG. 5, the SQL structure diagram of the patterned SQL can be changed (evolved) by the following three patterns.

(1)UNIONにより横に伸びる
構造図において、同一構造を横に追加することで、当該構造と同一の機能を追加・拡張することができる。
これによって、例えば、現行システムが属性情報として「購入者」,「購入金額(円)」,「支払い期限日」の3つの項目のデータを管理している「業務システムA」,「業務システムB」,「業務システムC」の3つの機能を実装している場合に、さらに、例えば「業務システムD」などの新サービス・新業務システムの機能を追加・拡張させることができる。
図6に、SQL構造をUNIONにより横に進化させた場合の出力結果の一例を示す(レポート出力部18)。
(1) By adding the same structure horizontally in a structural drawing that extends horizontally by UNION, the same function as the structure can be added or expanded.
As a result, for example, "business system A" and "business system B" in which the current system manages data of three items of "purchaser", "purchase amount (yen)", and "payment deadline" as attribute information. ], And when the three functions of "business system C" are implemented, it is possible to further add / expand the functions of a new service / new business system such as "business system D".
FIG. 6 shows an example of the output result when the SQL structure is laterally evolved by UNION (report output unit 18).

(2)JOINにより縦に伸びる
構造図において、格納データの構造を縦に追加することで、管理データの属性を付加・追加することができ、JOIN数を増加させることができる。
これによって、例えば、管理データの属性として「購入者」,「購入金額(円)」,「支払い期限日」の3つの項目のデータが管理されている「業務システムA」,「業務システムB」,「業務システムC」に対して、それぞれ、「性別:男or女」などの新属性を付与・追加させることができる。
図7に、SQL構造をJOINにより縦に進化させた場合の出力結果の一例を示す。
(2) In the structure diagram that extends vertically by JOIN, by adding the structure of the stored data vertically, the attributes of the management data can be added / added, and the number of JOINs can be increased.
As a result, for example, "business system A" and "business system B" in which data of three items of "purchaser", "purchase amount (yen)", and "payment deadline" are managed as attributes of management data. , "Business system C" can be given / added new attributes such as "gender: male or female", respectively.
FIG. 7 shows an example of the output result when the SQL structure is vertically evolved by JOIN.

(3)表示順序の調整により間に入る
構造図において、同一構造の横方向の位置を変更することで、表示の順序を変更・調整することができる。これによって、同一構造からなる複数の機能について、任意の機能の表示位置を移動させ、例えば先行表示されていた機能の間に入れることができるようになる。
図8に、表示順序を変更させた場合の出力結果の一例を示す。この例では、管理データとして「購入者」,「購入金額(円)」,「支払い期限日」の3つの項目データを管理している「業務システムA」,「業務システムB」,「業務システムC」の表示の順序を、「業務システムA」,「業務システムC」,「業務システムB」と入れ替えた場合である。
(3) The display order can be changed / adjusted by changing the horizontal position of the same structure in the structural drawing that is intervened by adjusting the display order. As a result, for a plurality of functions having the same structure, the display position of any function can be moved and, for example, can be inserted between the functions previously displayed.
FIG. 8 shows an example of the output result when the display order is changed. In this example, "business system A", "business system B", and "business system" that manage three item data of "purchaser", "purchase amount (yen)", and "payment deadline" as management data. This is the case where the display order of "C" is replaced with "business system A", "business system C", and "business system B".

[退化]
一方、SQLを退化させる場合には、図9に示すように、パターン化されたSQLの構造図について、上述した進化と同様の以下の2つのパターンによりSQLを変化(退化)させることができる。
(1)UNIONを削り横に縮む
構造図において、横に並ぶ同一構造の一部を削除することで、当該構造の機能を縮減・退化させることができる。
これによって、例えば、現行システムが「業務システムA」,「業務システムB」,「業務システムC」の3つの機能を実装している場合に、「業務システムC」の機能を削除・縮減させることができる。
図10に、SQL構造についてUNIONを横に退化させた場合の出力結果の一例を示す。
[Degenerate]
On the other hand, when the SQL is degenerated, as shown in FIG. 9, the SQL structure diagram of the patterned SQL can be changed (degenerated) by the following two patterns similar to the evolution described above.
(1) In a structural drawing in which UNION is shaved and shrunk horizontally, the function of the structure can be reduced or degenerated by deleting a part of the same structure arranged side by side.
As a result, for example, when the current system implements the three functions of "business system A", "business system B", and "business system C", the function of "business system C" can be deleted or reduced. Can be done.
FIG. 10 shows an example of the output result when UNION is laterally degenerated for the SQL structure.

(2)JOINを削り縦に縮む
構造図において、縦に並ぶ格納データの構造の一部を削除(JOINテーブルを削除)することで、管理データの属性を縮減・退化させることができる。
なお、SQLを退化させる場合にも、上述した進化の場合と同様に、構造図において、同一構造の横方向の位置を変更することで、表示の順序を変更・調整することができることは言うまでもない。
(2) Shrinking JOIN vertically In the structure diagram, by deleting a part of the structure of the stored data arranged vertically (deleting the JOIN table), the attributes of the management data can be reduced or degenerated.
Needless to say, even when SQL is degenerated, the display order can be changed and adjusted by changing the horizontal position of the same structure in the structural diagram as in the case of evolution described above. ..

[SQLの構造分解/構造図の作成]
次に、上述したSQLを構成するソースコードをSQLの構文タイプに応じて振り分ける構造分解及び構造図の作成について説明する。
上述のとおり、SQLの構造分解は、SQL文の基本構文に従って、「SELECT系」,「UPDATE系」,「INSERT系」,「DELETE系」の4つの構文に着目して実行される。
基本的には、ソースコード中の「SELECT~;」,「UPDATE~;」,「INSERT~;」,「DELETE~;」を一つの構造の単位として抽出し、そこに含まれるコマンド単位で構文を抽出・分解して、分解された要素ごとに所定の構造図画像に置換・変換が行われる(図14~図20)。
[Structural decomposition of SQL / Creation of structural diagram]
Next, structural decomposition and creation of a structural diagram will be described in which the source code constituting the above-mentioned SQL is distributed according to the syntax type of SQL.
As described above, the structural decomposition of SQL is executed by focusing on the four syntaxes of "SELECT system", "UPDATE system", "INSERT system", and "DELETE system" according to the basic syntax of the SQL statement.
Basically, "SELECT ~;", "UPDATE ~;", "INSERT ~;", "DELETE ~;" in the source code are extracted as one structure unit, and the syntax is set for each command contained therein. Is extracted and decomposed, and each of the decomposed elements is replaced and converted into a predetermined structural diagram image (FIGS. 14 to 20).

ここで、SELECT系構文は、他の構文(UPDATE系,INSERT系,DELETE系)にはない構造を記載できるため、まず、SELECT文に特有の構造ついて、図11~図13を参照して説明する。
図11~図13に、SELECT文の構造を分解する場合の説明図を示す。
これらの図に示すように、SELECT文には、3つの構文パターンがある。
図11に示すのは、内部に入れ子構造を取ることができる構文である。
図11に示す例では、データベースの管理データとして、「社員テーブル」と「給与テーブル」の二つのデータテーブルが存在する場合に、例えば「月給30万円以上」の社員番号を選択し、その上で、社員番号を用いて社員名をリストにし、最後に社員番号順で並び替える、というSELECT文となっている。
このような場合には、SELECT文の「WHERE列名=(~)」の「(~)」中に記載されている「入れ子構造」の構文(図11で太線で囲まれた部分)を含めて、一つのSELECT文の構造として抽出する。
Here, since the SELECT system syntax can describe a structure that is not found in other syntaxes (UPDATE system, INSERT system, DELETE system), first, the structure peculiar to the SELECT statement will be described with reference to FIGS. 11 to 13. do.
11 to 13 show explanatory views when the structure of the SELECT statement is decomposed.
As shown in these figures, the SELECT statement has three syntax patterns.
Shown in FIG. 11 is a syntax that can be nested internally.
In the example shown in FIG. 11, when there are two data tables, "employee table" and "salary table", as database management data, for example, an employee number of "monthly salary of 300,000 yen or more" is selected, and then the employee number is selected. So, it is a SELECT statement that the employee names are listed using the employee numbers and finally sorted in the order of the employee numbers.
In such a case, include the syntax of the "nested structure" described in the "(~)" of the "WHERE column name = (~)" in the SELECT statement (the part surrounded by the thick line in FIG. 11). Then, it is extracted as the structure of one SELECT statement.

図12に示すのは、中間テーブルを一時的に作成して結果を出すことができる構文である。
図12に示す例では、データベースの管理データとして、「社員テーブル」と「退職明細」の二つのデータテーブルが存在する場合に、例えば「退職日」を指定して社員名を取得する、というSELECT文となっている。
このような場合には、「FROM~WHERE」の中に「LEFT OUTER JOIN」で記載されている構文(図12で太線で囲まれた部分)を含めて、一つのSELECT文の構造として抽出する。
Shown in FIG. 12 is a syntax that can temporarily create an intermediate table and produce results.
In the example shown in FIG. 12, when there are two data tables, "employee table" and "retirement details", as database management data, for example, "retirement date" is specified and the employee name is acquired. It is a sentence.
In such a case, the syntax described in "LEFT OUTER JOIN" (the part surrounded by the thick line in FIG. 12) is included in "FROM to WHERE" and extracted as the structure of one SELECT statement. ..

図13に示すのは、結果の和集合を作成することができる構文である。
図13に示すSELECT文は、データベースの管理データとして、「拠点A勤務社員テーブル」と「拠点B勤務社員テーブル」の二つのデータテーブルが存在する場合に、例えば拠点別の所属社員表から和集合を出力する、という構文である。
このような場合には、「UNION ALL」で結ばれた2つの「SELECT~FROMテーブル名」の構文(図13で太線で囲まれた3つの部分)を、一つのSELECT文の構造として抽出する。
Shown in FIG. 13 is a syntax that can create a union of results.
The SELECT statement shown in FIG. 13 is a sum set from, for example, the affiliated employee table for each site when there are two data tables, "base A working employee table" and "base B working employee table", as database management data. Is the syntax to output.
In such a case, the syntax of the two "SELECT to FROM table names" connected by "UNION ALL" (three parts surrounded by thick lines in FIG. 13) is extracted as the structure of one SELECT statement. ..

[構造図画像の作成]
そして、以上のようにしてSQLの基本構文(SELECT,UPDATE,INSERT,DELETE)に従って一構造として抽出されたSQL文について、そこに含まれるコマンド単位で構文を抽出・分解して、分解された要素ごとに所定の構造図画像に置換・変換して、SQLの構造を示す構造図が作成される。
なお、以下に示す所定の構造図を構成する画像は、本システム10の記憶手段などに予め画像データとして格納・記憶させておくものとする。
[Creating a structural drawing image]
Then, for the SQL statement extracted as one structure according to the basic SQL syntax (SELECT, UPDATE, INSERT, DELETE) as described above, the syntax is extracted and decomposed for each command contained therein, and the decomposed elements. A structural diagram showing the structure of SQL is created by replacing and converting each with a predetermined structural diagram image.
The images constituting the predetermined structural diagram shown below shall be stored and stored as image data in advance in the storage means of the system 10.

[SELECT文]
図14は、図11に示したSELECT文を所定の構造図に変換する場合である。
同図に示すように、この場合のSELECT文は、以下のような手順により、SELECT文の各要素がそれぞれ所定の画像に置換されて、一つの構造図として作成される。
(1)構文中の「一番内側にあるテーブル」という意味で「ドラム缶マーク」を一番右側に記載する。
(2)「条件に合致するレコードを抽出」という意味で「片カッコ」を「ドラム缶マーク」の左側に記載する。
(3)「その結果を用いて」という意味で「矢印」を「片カッコ」の左側に記載する。
(4)「別のテーブルのデータと連結して」という意味で「ドラム缶マーク」を「矢印」の左側に記載する。
(5)「該当するレコードもしくは列を抽出」という意味で「片カッコ」を「ドラム缶マーク」の左側に記載する。
以上の処理・手順により、図14左側(図11)に示すSELECT文が、図14右側に示す構造図として置換・生成される。
[SELECT statement]
FIG. 14 is a case where the SELECT statement shown in FIG. 11 is converted into a predetermined structural diagram.
As shown in the figure, the SELECT statement in this case is created as one structural diagram by replacing each element of the SELECT statement with a predetermined image by the following procedure.
(1) Write the "drum mark" on the far right to mean "the innermost table" in the syntax.
(2) Write "single parentheses" on the left side of the "drum mark" to mean "extract records that meet the conditions".
(3) Write an "arrow" on the left side of the "single parenthesis" to mean "using the result".
(4) Write the "drum mark" on the left side of the "arrow" to mean "concatenate with the data in another table".
(5) Enter "single parentheses" on the left side of the "drum mark" to mean "extract the corresponding record or column".
By the above processing / procedure, the SELECT statement shown on the left side of FIG. 14 (FIG. 11) is replaced / generated as a structural diagram shown on the right side of FIG.

図15は、図12に示したSELECT文を所定の構造図に変換する場合であり、以下のような手順により、SELECT文が構造図として置換・作成される。
(1)「JOINするテーブル」を示す2つの「ドラム缶マーク」をテーブル名順に一番右側に縦に配置する。
(2)「JOIN種別」及び「矢印」を対応する「ドラム缶マーク」の左側に記載する。
(3)「JOIN先テーブル」を示す「ドラム缶マーク」を「矢印」の左側に配置する。
(4)「その結果を用いて」という意味で「矢印」を「ドラム缶マーク」の左側に記載する。
(5)「別のテーブルのデータと連結して」という意味で「ドラム缶マーク」を「矢印」の左側に記載する。
(6)「該当するレコードもしくは列を抽出」という意味で「片カッコ」を「ドラム缶マーク」の左側に記載する。
以上の処理・手順により、図15左側(図12)に示すSELECT文が、図15右側に示す構造図として置換・生成される。
FIG. 15 shows a case where the SELECT statement shown in FIG. 12 is converted into a predetermined structural diagram, and the SELECT statement is replaced and created as a structural diagram by the following procedure.
(1) Two "drum marks" indicating "tables to join" are arranged vertically on the rightmost side in the order of table names.
(2) Enter the "JOIN type" and "arrow" on the left side of the corresponding "drum mark".
(3) Place the "drum mark" indicating the "Join destination table" on the left side of the "arrow".
(4) Write an "arrow" on the left side of the "drum mark" to mean "using the result".
(5) Write the "drum mark" on the left side of the "arrow" to mean "concatenate with the data in another table".
(6) Enter "single parentheses" on the left side of the "drum mark" to mean "extract the corresponding record or column".
By the above processing / procedure, the SELECT statement shown on the left side of FIG. 15 (FIG. 12) is replaced / generated as a structural diagram shown on the right side of FIG.

図16は、図13に示したSELECT文を所定の構造図に変換する場合であり、以下のような手順により、SELECT文が構造図として置換・作成される。
(1)一つ目のSELECT文を示す「ドラム缶マーク」及び「片カッコ」を一番右側に配置し、それらを「UNION句の上(前)で出力される結果(集合)」を意味する「四角の枠」で括る。
(2)「和集合を作る」という意味で「横線」を「四角の枠」の左側に連結し、「UNION種別」を記載する。
(3) 二つ目のSELECT文を示す「ドラム缶マーク」及び「片カッコ」を一番左側に配置し、それらを「UNION句の下(後)で出力される結果(集合)」を意味する「四角の枠」で括り、「横線」の左側に連結する。
なお、「結果の和集合を作成する」ことが可能なコマンドとしては、「UNION」と「UNION ALL」とが存在するため、構造図を生成する場合には、両者を区別できる画像を割り当てるようにする。
以上の処理・手順により、図16左側(図13)に示すSELECT文が、図16右側に示す構造図として置換・生成される。
FIG. 16 shows a case where the SELECT statement shown in FIG. 13 is converted into a predetermined structural diagram, and the SELECT statement is replaced and created as a structural diagram by the following procedure.
(1) The "drum mark" and "single parenthesis" indicating the first SELECT statement are placed on the far right, and they mean "the result (set) output above (before) the UNION clause". Enclose with a "square frame".
(2) Connect the "horizontal line" to the left side of the "square frame" to mean "make a union", and describe the "UNION type".
(3) The "drum mark" and "single parenthesis" indicating the second SELECT statement are placed on the far left, and they mean "the result (set) output under (after) the UNION clause". Enclose it in a "square frame" and connect it to the left side of the "horizontal line".
Since there are "UNION" and "UNION ALL" as commands that can "create the union of the results", when generating a structural diagram, assign an image that can distinguish between them. To.
By the above processing / procedure, the SELECT statement shown on the left side of FIG. 16 (FIG. 13) is replaced / generated as a structural diagram shown on the right side of FIG.

[INSERT文]
図17は、INSERT文を所定の構造図に変換する場合であり、以下のような手順により、INSERT文が構造図として置換・作成される。
(1)「データ挿入先のテーブル」という意味で「ドラム缶マーク」を一番右側に記載する。
(2)「データ挿入作業」を示す「左から右方向の矢印」を「ドラム缶マーク」の左側に配置する。
(3)「データ挿入の基点」という意味で「INSERT」を示す「黒丸「I」文字」を「矢印」の左側に配置する。
以上の処理・手順により、図17左側に示すINSERT文が、図17右側に示す構造図として置換・生成される。
[INSERT statement]
FIG. 17 shows a case where the INSERT statement is converted into a predetermined structural diagram, and the INSERT statement is replaced and created as a structural diagram by the following procedure.
(1) Write the "drum mark" on the far right, meaning "data insertion destination table".
(2) Place the "arrow from left to right" indicating "data insertion work" on the left side of the "drum mark".
(3) Place the "black circle" I "character" indicating "INSERT", which means "base point for data insertion", on the left side of the "arrow".
By the above processing / procedure, the INSERT statement shown on the left side of FIG. 17 is replaced / generated as the structural diagram shown on the right side of FIG.

図18は、INSERT文として、他のテーブルから検索したデータを挿入することが可能なINSERT文を所定の構造図に変換する場合であり、以下のような手順により、INSERT文が構造図として置換・作成される。
(1)「データ挿入先のテーブル」という意味で「ドラム缶マーク」を一番右側に記載する。
(2)「データ挿入作業」を示す「左から右方向の矢印」を「ドラム缶マーク」の左側に配置する。
(3)「データ挿入の基点」という意味で「INSERT」を示す「黒丸「I」文字」を「矢印」の左側に配置する。
(4)「該当するレコードもしくは列を抽出」という意味で「片カッコ」(SELECT文とは逆向き)を「黒丸「I」文字」の左側に記載する。
(5)「データ挿入先に用いるオリジナルデータを格納したテーブル」という意味で「ドラム缶マーク」を「片カッコ」の左側に記載する。
以上の処理・手順により、図18左側に示すINSERT文が、図18右側に示す構造図として置換・生成される。
FIG. 18 shows a case where an INSERT statement capable of inserting data searched from another table is converted into a predetermined structural diagram as an INSERT statement, and the INSERT statement is replaced as a structural diagram by the following procedure. -Created.
(1) Write the "drum mark" on the far right, meaning "data insertion destination table".
(2) Place the "arrow from left to right" indicating "data insertion work" on the left side of the "drum mark".
(3) Place the "black circle" I "character" indicating "INSERT", which means "base point for data insertion", on the left side of the "arrow".
(4) Enter "single parentheses" (in the opposite direction of the SELECT statement) to the left of the "black circle" I "character" to mean "extract the corresponding record or column".
(5) Write the "drum mark" on the left side of the "single bracket" to mean "a table that stores the original data used for the data insertion destination".
By the above processing / procedure, the INSERT statement shown on the left side of FIG. 18 is replaced / generated as the structural diagram shown on the right side of FIG.

[UPDATE文]
図19は、UPDATE文を所定の構造図に変換する場合であり、以下のような手順により、UPDATE文が構造図として置換・作成される。
(1)「データ更新先のテーブル」という意味で「ドラム缶マーク」を一番右側に記載する。
(2)「データ更新作業」を示す「左から右方向の矢印」を「ドラム缶マーク」の左側に配置する。
(3)「データ更新の基点」という意味で「UPDATE」を示す「黒丸「UP」文字」を「矢印」の左側に配置する。
以上の処理・手順により、図19左側に示すUPDATE文が、図19右側に示す構造図として置換・生成される。
[UPDATE statement]
FIG. 19 shows a case where the UPDATE statement is converted into a predetermined structural diagram, and the UPDATE statement is replaced and created as a structural diagram by the following procedure.
(1) Enter the "drum mark" on the far right to mean "data update destination table".
(2) Place the "arrow from left to right" indicating "data update work" on the left side of the "drum mark".
(3) Place the "black circle" UP "character" indicating "UPDATE" in the meaning of "data update base point" on the left side of the "arrow".
By the above processing / procedure, the UPDATE statement shown on the left side of FIG. 19 is replaced / generated as the structural diagram shown on the right side of FIG.

[DELETE文]
図20は、DELETE文を所定の構造図に変換する場合であり、以下のような手順により、DELETE文が構造図として置換・作成される。
(1)「データ削除先のテーブル」という意味で「ドラム缶マーク」を一番右側に記載する。
(2)「データ削除作業」を示す「左から右方向の矢印」を「ドラム缶マーク」の左側に配置する。
(3)「データ削除の基点」という意味で「DELETE」を示す「黒丸「D」文字」を「矢印」の左側に配置する。
以上の処理・手順により、図20左側に示すDELETE文が、図20右側に示す構造図として置換・生成される。
[DELETE sentence]
FIG. 20 shows a case where a DELETE statement is converted into a predetermined structural diagram, and the DELETE statement is replaced and created as a structural diagram by the following procedure.
(1) Write the "drum mark" on the far right, meaning "data deletion destination table".
(2) Place the "arrow from left to right" indicating "data deletion work" on the left side of the "drum mark".
(3) Place the "black circle" D "character" indicating "DELETE" in the sense of "base point for data deletion" on the left side of the "arrow".
By the above processing / procedure, the DELETE statement shown on the left side of FIG. 20 is replaced / generated as a structural diagram shown on the right side of FIG. 20.

[構造図のマッピング/収れん]
次に、以上のようにして作成された構造図のマッピング/収れん処理について説明する。
図21及び図22は、生成する構造図をマッピングする手法を示す説明図であり、図21は構造図がSELECT文の場合、図22はINSERT文の場合である。
これらの図に示すように、マッピングは、例えば「1001マス×1001マス」を初期値とする「方眼マップ」を用意し、このマップ上に構造図を張り付けて実行される。
なお、方眼マップは、初期値として「縦横1001マス」からスタートさせるが、マスが足りない場合には拡張することができる。
また、このような方眼マップのデータについても、上述した構造図の画像データとともに、本システム10の記憶手段などに予め画像データとして格納・記憶させておくものとする。
[Structural diagram mapping / convergence]
Next, the mapping / convergence processing of the structural diagram created as described above will be described.
21 and 22 are explanatory views showing a method of mapping the generated structural diagram, FIG. 21 is a case where the structural diagram is a SELECT statement, and FIG. 22 is a case where the structural diagram is an INSERT statement.
As shown in these figures, mapping is performed by preparing, for example, a "square map" having "1001 squares x 1001 squares" as an initial value, and pasting a structural diagram on this map.
The grid map starts from "vertical and horizontal 1001 squares" as an initial value, but can be expanded when there are not enough squares.
Further, the data of such a grid map is also stored and stored in advance as image data in the storage means of the system 10 together with the image data of the above-mentioned structural diagram.

[マッピングルール]
マッピング処理は、以下のルールに基づいて実行される。
まず、SELECT文については、以下のルールとする(図21参照)。
[SELECT文ルール]
・右端中心から書き始める
・記号:1マスに1つ
・「SELECT」は右から左に順に配置
・「JOIN」は上から下に順に配置
・結果セットを全ての記号が含まれる最小限の大きさの太い枠でくくる
・矢印:記号間を横1マスで接続(接続ポイントは真ん中とする)
「JOIN」種別を区別するために「JOIN」時は矢印の下に区分を記載する
-「JOIN」:「J」を記載
-「LEFT OUTER JOIN」:「LJ」
-「RIGHT OUTER JOIN」:「RJ」
-「FULL OUTER JOIN」:「FJ」
・和集合を作る「UNION」は横線で連結する
「UNION」種別を区別するために、横線の下に区分を記載する
-「UNION」:「U」を記載
-「UNION ALL」:「UA」
・色は白黒で表現
[Mapping rule]
The mapping process is executed based on the following rules.
First, the SELECT statement has the following rules (see FIG. 21).
[SELECT statement rule]
・ Start writing from the center of the right edge ・ Symbol: 1 in 1 cell ・ "SELECT" is arranged in order from right to left ・ "JOIN" is arranged in order from top to bottom ・ Result set is the minimum size including all symbols Enclose in a thick frame ・ Arrow: Connect the symbols with one horizontal square (the connection point is in the middle)
In order to distinguish the "JOIN" type, when "JOIN" is used, enter the classification below the arrow- "JOIN": enter "J"-"LEFT OUTER JOIN": "LJ"
-"RIGHT OUTER JOIN": "RJ"
-"FULL OUTER JOIN": "FJ"
-The union that creates the union is connected by a horizontal line. In order to distinguish the "UNION" type, describe the division under the horizontal line-"UNION": "U"-"UNION ALL": "UA"
・ Color is expressed in black and white

同様に、INSERT文・UPDATE文・DELETE文については、以下のルールとする(図22参照)。
[INSERT文・UPDATE文・DELETE文ルール]
・右端中心から書き始める
・記号:1マスに1つ
・右から左に順に配置
・結果セットを全ての記号が含まれる最小限の大きさの太い枠でくくる
・矢印:記号間を横1マスで接続(接続ポイントは真ん中とする)
左から右に向けて記載する
・テーブルから値を取り出す場合は片カッコを用いる(SELECTとは反対向きとする
・INSERT/UPDATE/DELETEを区別するため基点に区分を記載
-「INSERT」:「I」を記載
-「UPDATE」:「UP」
-「DELETE」:「D」
・色は白黒で表現
Similarly, the following rules are applied to the INSERT statement, UPDATE statement, and DELETE statement (see FIG. 22).
[INSERT statement, UPDATE statement, DELETE statement rule]
・ Start writing from the center of the right edge ・ Symbol: 1 in 1 square ・ Arrange in order from right to left ・ Enclose the result set in a thick frame of the minimum size that includes all symbols ・ Arrow: 1 square horizontally between symbols Connect with (the connection point is in the middle)
Describe from left to right ・ Use single brackets when extracting values from the table (opposite to SELECT ・ Describe the classification at the base point to distinguish INSERT / UPDATE / DELETE- "INSERT": "I"-"UPDATE":"UP"
-"DELETE":"D"
・ Color is expressed in black and white

以上のようなマッピングルールに従い、構造図の収れん処理が実行され、パターン化された代表SQLが決定される。
構造図の収れんは、画像処理による総当たりによって行われる。このような画像処理技術を用いることにより、構造図の収れんを高速かつ正確に実行できるようになる。
[前処理]
まず、収れんの「前処理」として、図23に示すように、フィラーをマップから削除する処理が実行される。
具体的には、図23に示す「太い線」以外の余白が削除される。
但し、「UNION」を示す「横線」及び「黒丸」は削除されないようにする。
According to the mapping rule as described above, the astringent processing of the structural diagram is executed, and the patterned representative SQL is determined.
Convergence of the structural drawing is performed by round-robin by image processing. By using such an image processing technique, it becomes possible to execute the convergence of the structural drawing at high speed and accurately.
[Preprocessing]
First, as a "pretreatment" of convergence, a process of removing the filler from the map is executed as shown in FIG. 23.
Specifically, the margins other than the "thick line" shown in FIG. 23 are deleted.
However, the "horizontal line" and "black circle" indicating "UNION" should not be deleted.

[メイン処理]
次に、収れんの「メイン処理」として、図24及び図25に示すように、画像処理による「総当たり」と、それに基づく「包含関係のチェック」が実行される。
まず、「メイン処理」は、以下のような手順により実行される(図24参照)。
(1)SELECT系/UPDATE系/DELETE系/INSERT系のそれぞれのディレクトリごとに処理を実行する
(2)利用しているマス目順にソートする
(3)最も利用しているマス目の少ない構造図を抽出し、比較対象とする
(4)「(3)」で選択された構造図を、最もマス目の大きい構造図内に同一構造が無いかサーチする(図25参照)
(5)同じ構造が発見された場合、「(3)」で選択された構造図は上位SQLに包含されているものとして破棄する
(6)「(3)」で選択された構造図の次にマス目の利用数が多い構造図を選択し、「(3)~(5)」と同様の処理を実行する
(7)もし「(3)~(5)」の処理によって「包含」される構造が発見されない場合は、比較対象を2番目に大きな構造図に変更し、同様の処理を実行する
以上の手順を繰り返すことにより、最も複雑なSQLを発見することができる。
[Main processing]
Next, as the "main process" of the convergence, as shown in FIGS. 24 and 25, "round-robin" by image processing and "check of inclusion relationship" based on the "round-robin" are executed.
First, the "main process" is executed by the following procedure (see FIG. 24).
(1) Execute processing for each directory of SELECT system / UPDATE system / DELETE system / INSERT system.
(2) Sort in the order of the squares used
(3) Extract the most used structural diagram with few squares and use it as a comparison target.
(4) Search the structural diagram selected in "(3)" for the same structure in the structural diagram with the largest grid (see FIG. 25).
(5) If the same structure is found, the structure diagram selected in "(3)" is discarded as being included in the upper SQL.
(6) Select the structural diagram with the largest number of squares used next to the structural diagram selected in "(3)", and execute the same processing as in "(3) to (5)".
(7) If the structure "included" is not found by the process of "(3)-(5)", change the comparison target to the second largest structure diagram and execute the same process. By repeating the above, the most complicated SQL can be found.

図25に、上記「(3)~(5)」の包含関係をチェックするサーチ処理の詳細を示す。
同図に示すように、包含関係のサーチは、以下の手順により実行される。
(1)包含チェックの対象となる構造図をマス目の左上に合わせて配置する
(2)対象構造図を右方向に1マスずつ移動させ、同じ構造が無いかをチェックする
(3)対象構造図がマス目の右端まで到達したら、下に1マスずつ移動させ
(4)再びマス目の左から右方向に、対象構造図を1マスずつ移動させて同様のチェックを行い、マス目の右下端まで到達したら終了とする
FIG. 25 shows the details of the search process for checking the inclusion relationship of the above “(3) to (5)”.
As shown in the figure, the inclusion relationship search is performed by the following procedure.
(1) Arrange the structural diagram to be included in the inclusion check according to the upper left of the squares (2) Move the target structural diagram to the right one by one and check if there is the same structure (3) Target structure When the figure reaches the right end of the square, move it down one square at a time (4) Move the target structure diagram one square at a time from the left to the right of the square again, and perform the same check to the right of the square. When it reaches the bottom, it ends

以上の処理を繰り返すことにより、他の構造図に包含される構造図は破棄され、全ての構造図を包含する最も大きい(複雑な)構造図のみが抽出され、それが代表SQLとなる構造図として決定されることになる。
そして、そのように決定された代表SQLを示す構造図を、元のSQLのキャラクタデータ(ソースコード)に変換・復元して、移行先データベース200における動作確認のテストを実行することができるようになる。
これによって、移行先データベース200の動作確認テストを、上述のように構造図によって収れん・パターン化された代表SQLに基づいて実行することができ、元の膨大なSQLと比較して、高速かつ効率的なテストを実行することができ、テストの正解データも少ないデータで対応することができるようになる。
By repeating the above processing, the structural diagrams included in the other structural diagrams are discarded, only the largest (complex) structural diagram including all the structural diagrams is extracted, and the structural diagram is the representative SQL. Will be determined as.
Then, the structural diagram showing the representative SQL determined in this way can be converted / restored to the character data (source code) of the original SQL, and the operation check test in the migration destination database 200 can be executed. Become.
As a result, the operation check test of the migration destination database 200 can be executed based on the representative SQL that is converged and patterned by the structural diagram as described above, and is faster and more efficient than the original enormous SQL. Tests can be executed, and the correct answer data of the test can be dealt with with a small amount of data.

[構造図の進化/退化]
以上のように、マッピング/収れん処理によって生成される代表SQLを示す構造図は、さらに、以下のような手順によって進化/退化(図5,図9)させることができる。
構造図の進化/退化処理は、上述した構造図の生成と同様に、マス目を用いた画像処理によって実行することができる。
[Evolution / degeneration of structural diagram]
As described above, the structural diagram showing the representative SQL generated by the mapping / convergence process can be further evolved / degenerated (FIGS. 5 and 9) by the following procedure.
The evolution / degeneration process of the structural diagram can be executed by the image processing using the squares in the same manner as the generation of the structural diagram described above.

[進化処理]
図26~図30に、構造図の進化処理の手法を示す。
図26は、進化処理の1つ目である「UNION」により「横に伸びる」進化(図5参照)をさせる場合である。
具体的には、構造図中に「UNION」を示す「U」もしくは「UA」の記号が含まれる場合、図26に示すように、その「UNION」」で連結された既存構造を、マス目上で半分のマス目分だけ左方向にシフトさせる。
その後、同一構造図をコピーにより生成し、シフトさせた既存構造の右側に張り付け、「UNION」で連結して、構造図を保存する。
これによって、横方向への構造拡張(進化)が行われる。
同様の処理を繰り返すことで、任意の数だけ、横方向への拡張を行うことできる。
[Evolution processing]
26 to 30 show the method of evolution processing of the structural diagram.
FIG. 26 shows a case where evolution (see FIG. 5) that “extends laterally” is performed by “UNION”, which is the first evolution process.
Specifically, when the structural diagram contains the symbol "U" or "UA" indicating "UNION", as shown in FIG. 26, the existing structure connected by the "UNION" is displayed in squares. Shift to the left by half the squares above.
After that, the same structural drawing is generated by copying, pasted on the right side of the shifted existing structure, connected by "UNION", and the structural drawing is saved.
As a result, structural expansion (evolution) is performed in the lateral direction.
By repeating the same process, any number of lateral expansions can be performed.

図27は、進化処理の2つ目である「JOIN」により「縦に伸びる」進化(図5参照)をさせる場合である。
具体的には、構造図中に「JOIN」を示す「J」,「LJ」,「RJ」,「FJ」の記号が含まれる場合、図27に示すように、その「JOIN」により縦方向に配置されている「データ」を示す「ドラム缶マーク」の下に、同様の「ドラム缶マーク」の画像を配置し、「JOIN」で連結して、構造図を保存する。
これによって、縦方向への構造拡張(進化)が行われる。
同様の処理を繰り返すことで、任意の数だけ、縦方向への拡張を行うことできる。
FIG. 27 shows a case where “vertically extending” evolution (see FIG. 5) is performed by “JOIN”, which is the second evolution process.
Specifically, when the structural drawing includes the symbols "J", "LJ", "RJ", and "FJ" indicating "JOIN", as shown in FIG. 27, the "JOIN" indicates the vertical direction. An image of a similar "drum mark" is placed under the "drum mark" indicating the "data" placed in, and connected by "JOIN" to save the structural drawing.
As a result, structural expansion (evolution) in the vertical direction is performed.
By repeating the same process, any number of vertical expansions can be performed.

図28及び図29は、上記のように横方向・縦方向に構造図を進化させた場合の、格納すべきデータ及び正解データの自動生成の手法を示しており、図28は横方向の拡張、図29は縦方向の拡張の場合である。
図28に示すように、横方向の拡張を行った場合には、拡張された構造に格納すべきデータとして、コピー元の構造に対応するデータをコピーする。その際に、格納データの文字項目に関して、例えば最後の文字を他の文字、例えば「1」に置き換える。数字項目については変更しない。
このようにすることで、図28の「想定結果」に示すように、拡張構造に格納すべきデータ及び正解データが自動生成されることになる。
なお、拡張構造を複数設ける場合には、上述した「1」を付与するだけではケタあふれの可能性があるため、さらに構造を拡張する場合には、次の拡張構造のデータには「2」を付与し、以降数字を順次上げることで対応することができる。
FIGS. 28 and 29 show a method of automatically generating data to be stored and correct answer data when the structural diagram is evolved in the horizontal and vertical directions as described above, and FIG. 28 shows an extension in the horizontal direction. , FIG. 29 is a case of vertical expansion.
As shown in FIG. 28, when the lateral expansion is performed, the data corresponding to the copy source structure is copied as the data to be stored in the expanded structure. At that time, for the character item of the stored data, for example, the last character is replaced with another character, for example, "1". Do not change the numerical items.
By doing so, as shown in the "assumed result" of FIG. 28, the data to be stored in the extended structure and the correct answer data are automatically generated.
In addition, when a plurality of extended structures are provided, there is a possibility of overflowing digits just by adding the above-mentioned "1". Therefore, when further expanding the structure, "2" is added to the data of the next extended structure. Can be dealt with by assigning and then increasing the numbers in sequence.

図29に示すように、縦方向の拡張を行った場合には、拡張された構造に格納すべきデータとして、1つ前(上)の構造(テーブル)のデータをコピーする。その際に、横方向の場合と同様に、納データの文字項目に関して、例えば最後の文字を「1」に置き換える。数字項目については変更しない。
このようにすることで、図29の「想定結果」に示すように、拡張構造に格納すべきデータ及び正解データが自動生成されることになる。
なお、この縦方向の拡張の場合も、横方向の場合と同様に、さらに構造を拡張する場合には、次の拡張構造のデータには「2」を付与し、以降数字を順次上げることができる。
As shown in FIG. 29, when the vertical expansion is performed, the data of the previous (upper) structure (table) is copied as the data to be stored in the expanded structure. At that time, for example, the last character is replaced with "1" for the character item of the delivery data as in the case of the horizontal direction. Do not change the numerical items.
By doing so, as shown in the "assumed result" of FIG. 29, the data to be stored in the extended structure and the correct answer data are automatically generated.
In the case of this extension in the vertical direction as well as in the case of the horizontal direction, when the structure is further expanded, "2" is added to the data of the next expansion structure, and the numbers are sequentially increased thereafter. can.

図30は、進化処理の3つ目である「表示順序の調整により間に入る」進化(図5参照)をさせる場合のデータの出力結果を示している。
この場合には、図30左側に示すように、構造図から元のキャラクタデータに変換したソースコード中の列名(例えば「列名1,列名2・・・」)を入れ替えることにより、表示順序を入れ替えることができる。
これによって、図30右側に示すように、例えば「業務システムA」,「業務システムB」の順に表示されていた出力結果を入れ替えて、「業務システムB」を先頭に表示させることができるようになる。
なお、「間に入る」としているのは、並び替えの「列」が3つ以上であれば、結果のレコードセットが間に入る場合があるため、「間に入る」と表現している。
FIG. 30 shows the output result of data in the case of performing evolution (see FIG. 5), which is the third evolution process, “intervening by adjusting the display order”.
In this case, as shown on the left side of FIG. 30, the column names (for example, "column name 1, column name 2 ...") in the source code converted from the structural diagram to the original character data are replaced to display the data. You can change the order.
As a result, as shown on the right side of FIG. 30, for example, the output results displayed in the order of "business system A" and "business system B" can be replaced so that "business system B" is displayed at the top. Become.
It should be noted that "in between" is expressed as "in between" because the resulting record set may be in between if there are three or more "columns" in the sort.

[退化処理]
図31~図34に、構造図の退化処理の手法を示す。
図31は、退化処理の1つ目である「UNION」を削ることにより「横に縮む」退化(図9参照)をさせる場合である。
具体的には、構造図中に「UNION」を示す「U」もしくは「UA」の記号が含まれる場合、図31に示すように、その「UNION」」で連結された既存構造の最も左に配置された構造と「UNION」を示す記号及び「横線」を削除する。
これによって、横方向への構造縮減(退化)が行われる。
同様の処理を繰り返すことで、任意の数だけ、横方向への縮減を行うことできる。
[Degradation processing]
31 to 34 show a method of degenerating the structural diagram.
FIG. 31 shows a case where the first “UNION” of the degeneration process is removed to cause “horizontally shrinking” degeneration (see FIG. 9).
Specifically, when the structural diagram contains the symbol "U" or "UA" indicating "UNION", as shown in FIG. 31, the leftmost of the existing structure connected by the "UNION". Remove the placed structure, the symbol indicating "UNION" and the "horizontal line".
As a result, structural reduction (degeneration) is performed in the lateral direction.
By repeating the same process, any number of lateral reductions can be performed.

図32は、退化処理の2つ目である「JOIN」を削ることにより「縦に縮む」退化(図9参照)をさせる場合である。
具体的には、構造図中に「JOIN」を示す「J」,「LJ」,「RJ」,「FJ」の記号が含まれる場合、図32に示すように、その「JOIN」により縦方向に配置されている「データ」を示す「ドラム缶マーク」のうち最も下の「ドラム缶マーク」を削除する。
これによって、縦方向への構造縮減(退化)が行われる。
同様の処理を繰り返すことで、任意の数だけ、縦方向への拡張を行うことできる。
FIG. 32 shows a case where the second “JOIN” of the degeneration process is removed to cause “vertically shrink” degeneration (see FIG. 9).
Specifically, when the structural drawing includes the symbols "J", "LJ", "RJ", and "FJ" indicating "JOIN", as shown in FIG. 32, the "JOIN" indicates the vertical direction. Delete the bottom "drum mark" among the "drum marks" indicating "data" placed in.
As a result, the structure is reduced (degenerated) in the vertical direction.
By repeating the same process, any number of vertical expansions can be performed.

図33及び図34は、上記のように横方向・縦方向に構造図を退化させた場合の、データの出力結果を示しており、図33は横方向の縮減、図34は縦方向の縮減の場合である。
横方向の縮減を行った場合には、図33の「想定結果」に示すように、例えば退化前に「業務システムA」,「業務システムB」の出力結果が表示されていたものが、「業務システムA」のみが出力・表示されるようになる。
縦方向の縮減を行った場合には、図34に示すように、例えば、属性情報として退化前に「購入者」,「購入金額(円)」,「支払い期限日」の3つの項目のデータが出力結果として表示されていたものが、1列の項目(「支払い期限日」)が消えて表示されないようになる。
なお、この場合には、「JOIN」数が減っても、検索結果レコードセットに変化が無いことが、SQLの実行性担保において重要となる。
33 and 34 show the data output results when the structural diagram is degenerated in the horizontal and vertical directions as described above, FIG. 33 shows the reduction in the horizontal direction, and FIG. 34 shows the reduction in the vertical direction. This is the case.
When the reduction is performed in the horizontal direction, for example, as shown in the "assumed result" of FIG. 33, the output results of "business system A" and "business system B" are displayed before degeneration. Only "Business system A" will be output and displayed.
When reduction is performed in the vertical direction, as shown in FIG. 34, for example, data of three items of "purchaser", "purchase amount (yen)", and "payment deadline date" as attribute information before degeneration. Is displayed as an output result, but the item in one column ("payment deadline date") disappears and is not displayed.
In this case, it is important for SQL feasibility assurance that the search result record set does not change even if the number of "JOINs" decreases.

[特殊関数テスト]
次に、図35を参照して、特殊関数テストについて説明する。
上述のとおり、本システム10においては、SQLの構造を示す構造図の作成及びその収れんによって代表SQLパターンを選定・決定し、その代表SQLパターンに基づく試験を行うことによって、移行先データベース200の動作保証を行うようになっている。
特許関数テストは、そのような代表パターンテストの仕上げ・補完として実行できるもので、SQLに含まれる特殊関数、例えば、図35に示すような特殊制御及び関数(例えばSUM,AVG等)の動作確認を実行・保証するものである
特許関数テストは、本システム10に入力されたSQLの文字列に、所定の特殊関数が含まれているか否かを検索し、所定の特殊関数が含まれる場合には、当該特殊関数について、所定の正解データを用いたテストを実行する(特殊関数テスト実行部17)。
[Special function test]
Next, the special function test will be described with reference to FIG. 35.
As described above, in this system 10, the operation of the migration destination database 200 is performed by creating a structural diagram showing the structure of SQL, selecting and determining a representative SQL pattern by its convergence, and performing a test based on the representative SQL pattern. It is designed to provide a guarantee.
The patented function test can be executed as a finish / complement of such a representative pattern test, and the operation check of the special functions included in the SQL, for example, the special control and the function (for example, SUM, AVG, etc.) as shown in FIG. 35. The patented function test, which executes and guarantees the above, searches whether or not a predetermined special function is included in the SQL character string input to the system 10, and if the predetermined special function is included. Executes a test using predetermined correct answer data for the special function (special function test execution unit 17).

具体的には、例えばマイクロソフト社の「Excel」などの表計算アプリケーションを用いて、SQLに含まれる特殊関数の解析表を作成し、SQLの全件について、例えば「Grep」により検索して、ヒットしたものを各1ケースずつ、移行元データベース100と移行先データベース200で結果が同じであるか否かを検査することにより行われえる。
対象とすべき特殊関数としては、例えば、図35に示すような「特殊関数ファイル」を、本システム10の記憶手段において記憶しておくことができる。
Specifically, for example, using a spreadsheet application such as Microsoft's "Excel", an analysis table of special functions included in SQL is created, and all SQL cases are searched by, for example, "Grep" and hit. This can be done by checking whether the results are the same in the migration source database 100 and the migration destination database 200, one case for each.
As the special function to be targeted, for example, a “special function file” as shown in FIG. 35 can be stored in the storage means of the system 10.

このような特殊関数のテストは、拾うべきレアケースではあるが、このような「仕上げ」を行うことで、ほぼ完全に、移行元データベース100と移行先データベース200の動作保証を行うことができることになる。
この特殊関数テストについても、SQL代表パターンテストと同様に、テスト結果を出力・表示させることができる(レポート出力部18)。
Although testing such special functions is a rare case to be picked up, it is possible to almost completely guarantee the operation of the migration source database 100 and the migration destination database 200 by performing such "finishing". Become.
As for this special function test, the test result can be output and displayed in the same manner as the SQL representative pattern test (report output unit 18).

[動作]
次に、以上のような本システム10における具体的な処理・動作(データベースマイグレーション支援方法の実施)について、図36~図50を参照して説明する。
[全体工程]
図36に、本システム10の動作確認処理の全体工程を示すフローチャートを示す。
同図に示すように、本システム10では、「代表パターンを探索しての動作確認」と「特殊関数を探索しての動作確認」の2系統で処理が行われる。
具体的には、以下の通りである。
[代表パターンの動作確認]
まず、「代表パターンを探索しての動作確認」は、「SQLファイルの作成/配置:手動」→「代表SQLの決定:自動」→「テストデータの投入・正解ファイルの作成/配置:手動」→「テスト実施(現行保証/進化/退化):自動」→「結果レポート作成:自動」の順に処理が実行される。
なお、処理中「手動」とあるのは、例えば本システム10のユーザや管理者,操作者等が、手動(手作業・操作)によってデータの選択・指定・入力等を行うものである。
一方、「自動」とあるのは、本システム10を構成する情報処理装置の動作によって、自動でデータの抽出・選択・決定・生成等が行われるものである。
[motion]
Next, the specific processing / operation (implementation of the database migration support method) in the system 10 as described above will be described with reference to FIGS. 36 to 50.
[Overall process]
FIG. 36 shows a flowchart showing the entire process of the operation confirmation process of the system 10.
As shown in the figure, in this system 10, processing is performed by two systems, "operation confirmation by searching for a representative pattern" and "operation confirmation by searching for a special function".
Specifically, it is as follows.
[Operation check of representative pattern]
First, for "operation check by searching for a representative pattern", "Create / arrange SQL file: manual" → "determine representative SQL: automatic" → "input test data / create / arrange correct answer file: manual" → "Test execution (current guarantee / evolution / degeneration): automatic" → "result report creation: automatic" is executed in this order.
The term "manual" during processing means that, for example, a user, an administrator, an operator, or the like of this system 10 manually (manually / operates) selects / specifies / inputs data.
On the other hand, "automatic" means that data is automatically extracted, selected, determined, generated, and the like by the operation of the information processing apparatus constituting the system 10.

[特殊関数の動作確認]
次に、「特殊関数を探索しての動作確認」は、「SQLファイルの作成/配置:手動」→「代表SQLの決定:自動」→「テストデータの投入・正解ファイルの作成/配置:手動」→「テスト実施(現行保証):自動」→「結果レポート作成:自動」の順に処理が実行される。
なお、処理中「手動」,「自動」は上記「代表パターンを探索しての動作確認」と同様である。
また、「代表パターンを探索しての動作確認」において既に手動で「SQLファイルの作成/配置」,「テストデータの投入・正解ファイルの作成/配置」が行われた場合には、そのデータを再利用することができる。
[Checking the operation of special functions]
Next, for "operation check by searching for special functions", "Create / arrange SQL file: manual" → "determine representative SQL: automatic" → "input test data / create / arrange correct answer file: manual"">" Test execution (current guarantee): Automatic "→" Result report creation: Automatic "is executed in this order.
Note that "manual" and "automatic" during processing are the same as the above "operation check by searching for a representative pattern".
In addition, if "SQL file creation / placement" and "test data input / correct answer file creation / placement" have already been manually performed in "Search for representative pattern and check operation", the data is used. Can be reused.

[システム画面構成]
図37及び図38に、本システム10の動作確認処理における画面表示の一例を示す。
本システム10では、以下に示す動作確認処理が実行される場合に、操作者のユーザインタフェースとなる表示手段、例えば本システム10に接続された液晶ディスプレイ等において、図37,図38に示すような表示画面が生成・表示される。そして、操作者が表示画面に沿った入力操作を行うことによって、動作確認処理の各工程が実行されるようになる。
なお、以下に示す画面構成は一例であり、これ以外の画面構成を生成・出力させることができることは言うまでもない。
[System screen configuration]
37 and 38 show an example of screen display in the operation confirmation process of the system 10.
In the system 10, when the operation confirmation process shown below is executed, a display means serving as a user interface of the operator, for example, a liquid crystal display connected to the system 10, is as shown in FIGS. 37 and 38. The display screen is generated and displayed. Then, when the operator performs an input operation along the display screen, each step of the operation confirmation process is executed.
The screen configuration shown below is an example, and it goes without saying that other screen configurations can be generated and output.

[0.システム起動画面]
この画面は、本システム10の初期画面として最初に表示されるようになっている。
本画面では、図37に示すように、画面表示に従った操作者の入力操作に応じて、「稼動確認実行」が選択されると、「1.システム実行形式選択画面」に遷移し、「実行記録閲覧」が選択されれば、「5.実行記録閲覧画面」に遷移する。
[1.システム実行形式選択画面]
この画面は、「0.システム起動画面」で「稼動確認実行」が選択された場合に遷移する画面であり、本システム10におけるシステムの実行形式を選択可能に表示するものである。
具体的には、本画面では、図37に示すように、「自動実行選択ボタン」及び「手動実行選択ボタン」が選択可能に表示され、操作者の入力操作に応じて、いずれかの実行形式が選択・実行されるようなっている。
[0. System startup screen]
This screen is initially displayed as the initial screen of the system 10.
On this screen, as shown in FIG. 37, when "operation check execution" is selected in response to the input operation of the operator according to the screen display, the transition to "1. system execution format selection screen" is performed and ". If "View execution record" is selected, the screen transitions to "5. View execution record screen".
[1. System execution format selection screen]
This screen is a screen that transitions when "operation confirmation execution" is selected in "0. system startup screen", and displays the system execution format in the system 10 so as to be selectable.
Specifically, as shown in FIG. 37, the "automatic execution selection button" and the "manual execution selection button" are displayed in a selectable manner on this screen, and either execution format is selected according to the input operation of the operator. Is selected and executed.

[2.進捗表示画面]
この画面は、本システム10で実行される動作確認処理の進捗状況を表示するものであり、上述した図36と同様の内容が表示されるようになっている。
本画面では、上述した「1.システム実行形式選択画面」で選択・指定された実行形式が「手動実行」の場合には、所定のアナウンス画面が表示される。
一方、「自動実行」が選択・実行されている場合には、自動実行処理の進捗に対応して、完了したステップが例えば灰色になり、実行中のステップが例えば赤色でハイライト表示されて、処理の進捗状況が表されるようになっている。
また、処理が全て完了すると「完了」ボタンが有効になり、操作者の入力操作により「完了」ボタンが押下されると、上述した「0.システム起動画面」に戻るようになる。
[2. Progress display screen]
This screen displays the progress of the operation confirmation process executed by the system 10, and the same contents as those in FIG. 36 described above are displayed.
On this screen, when the execution format selected / specified in the above-mentioned "1. System execution format selection screen" is "manual execution", a predetermined announcement screen is displayed.
On the other hand, when "automatic execution" is selected and executed, the completed step is highlighted in gray, for example, and the running step is highlighted in red, for example, according to the progress of the automatic execution process. The progress of the process is displayed.
Further, when all the processes are completed, the "Done" button is enabled, and when the "Done" button is pressed by the input operation of the operator, the screen returns to the above-mentioned "0. System startup screen".

[3.手動実行時のSQLファイル取得]
この画面は、上述した「1.システム実行形式選択画面」で選択・指定された実行形式が「手動実行」の場合に、SQLファイルの取得操作を促す画面が表示されるものである。
具体的には、図37に示すように、例えば「SQLファイル格納場所を指定して下さい▼」というアナウンス表示が表示され、操作者の入力操作により「▼」ボタンが押下されると、任意のフォルダ選択が可能な画面が表示される(図示省略)。
ここで、有効なファイルが指定されない場合には、受け入れない。
また、ファイル格納場所が指定された後、「次に進む」ボタンが押下されることで、上述した進捗表示画面に戻り、次ステップに進むようになる。
[3. SQL file acquisition during manual execution]
This screen displays a screen prompting an operation to acquire an SQL file when the execution format selected / specified in the above-mentioned "1. System execution format selection screen" is "manual execution".
Specifically, as shown in FIG. 37, for example, an announcement display such as "Please specify the SQL file storage location ▼" is displayed, and when the "▼" button is pressed by the input operation of the operator, any arbitrary A screen where you can select a folder is displayed (not shown).
If a valid file is not specified here, it will not be accepted.
Further, after the file storage location is specified, the "Next" button is pressed to return to the above-mentioned progress display screen and proceed to the next step.

[4.データ投入指示画面]
この画面も、「1.システム実行形式選択画面」で選択・指定された実行形式が「手動実行」の場合に、移行先データベース200へのデータ投入と正解ファイルの取得操作を促す画面が表示されるものである。
具体的には、図38に示すように、例えば「移行先データベースへデータをロードして下さい」,「正解ファイル格納場所を指定して下さい▼」というアナウンス表示が表示され、操作者の入力操作により「▼」ボタンが押下されると、任意のフォルダ選択が可能な画面が表示される(図示省略)。また、有効なファイルが指定されない場合には、受け入れないようになる。
そして、ファイル格納場所が指定された後、「次に進む」ボタンが押下されることで、上述した進捗表示画面に戻り、次ステップに進むことになる。
[4. Data input instruction screen]
This screen also displays a screen prompting you to input data to the migration destination database 200 and acquire the correct answer file when the execution format selected / specified in "1. System execution format selection screen" is "manual execution". It is a thing.
Specifically, as shown in FIG. 38, an announcement display such as "Please load the data into the migration destination database" or "Please specify the correct answer file storage location ▼" is displayed, and the operator's input operation is performed. When the "▼" button is pressed, a screen that allows you to select any folder is displayed (not shown). Also, if a valid file is not specified, it will not be accepted.
Then, after the file storage location is specified, the "Next" button is pressed to return to the above-mentioned progress display screen and proceed to the next step.

[5.実行記録閲覧画面]
この画面は、「0.システム起動画面」で「稼動確認実行」が選択された場合に遷移しり画面であり、本システム10の動作確認処理について、閲覧を希望する実行記録を選択可能に表示するものである。
具体的には、本画面では、図38に示すように、本システム10において過去に実行された動作確認の「日時」及び「実行回数」が複数表示され、例えばスライドバーで上下にスクロールできるようになっており、画面上には常に複数件(例えば5件程度)の実行履歴が表示さるようになっている。なお、実行履歴の記録としては、所定件数を保持しておくことができ、例えば最大1000件までの実行履歴の情報を保持させることができる。
そして、図38に示すように、操作者の入力操作に応じて、任意の実行履歴に対応するボタンがクリックされて選択されると、ボタンの中心が黒色に反転して、選択された実行履歴が特定されるようになる。なお、図38に示す場合には、選択可能な実行履歴は1行(1件)のみとなっているが、複数の実行履歴を選択できるように構成することも勿論可能である。
また、「戻る」ボタンが押下されれば、「0.システム起動画面」に戻るようになる。
[5. Execution record viewing screen]
This screen is a transition screen when "operation confirmation execution" is selected in "0. system startup screen", and the execution record desired to be viewed is displayed in a selectable manner for the operation confirmation processing of this system 10. It is a thing.
Specifically, as shown in FIG. 38, a plurality of "dates and times" and "number of executions" of operation checks executed in the past in the system 10 are displayed on this screen so that they can be scrolled up and down with a slide bar, for example. The execution history of a plurality of cases (for example, about 5 cases) is always displayed on the screen. As the record of the execution history, a predetermined number of cases can be held, and for example, information on the execution history of up to 1000 cases can be held.
Then, as shown in FIG. 38, when the button corresponding to an arbitrary execution history is clicked and selected in response to the input operation of the operator, the center of the button is highlighted in black and the selected execution history is selected. Will be identified. In the case shown in FIG. 38, the execution history that can be selected is only one line (one case), but it is of course possible to configure so that a plurality of execution histories can be selected.
If the "Back" button is pressed, the screen returns to "0. System startup screen".

[6.希望閲覧処理選択画面]
この画面は、前画面(5.実行記録閲覧画面)で選択された実行履歴の日時/実行回数を表示させるとともに、当該実行履歴のうち、閲覧を希望する処理内容として、「代表パターン」と「特殊関数」のいずれかを選択可能に表示するものである。
具体的には、図38に示すように、選択された実行履歴を示す情報として、例えば「2018年1月1日-12時 1回目の実行記録」と表示され、その実行履歴のうち、「代表パターンを探索しての動作確認」と「特殊関数を探索しての動作確認」のいずれかが選択可能に表示されるようになる。
そして、操作者の入力操作に応じて、「代表パターン」と「特殊関数」のいずれかに対応するボタンがクリックされると、ボタンの中心が黒色に反転して、選択された処理内容が特定されるようになる。
その後、「閲覧」ボタンが押下されれば、以下の「7.レポート表示画面」に遷移する。
また、「戻る」ボタンが押下されれば、「5.実行記録閲覧画面」に戻るようになる。
[6. Desired browsing process selection screen]
This screen displays the date / time / number of executions of the execution history selected on the previous screen (5. Execution record viewing screen), and "representative pattern" and "representative pattern" and "representative pattern" as the processing contents desired to be viewed in the execution history. Any one of "special functions" is displayed in a selectable manner.
Specifically, as shown in FIG. 38, as information indicating the selected execution history, for example, "January 1, 2018-12 o'clock first execution record" is displayed, and among the execution history, " Either "Search for a representative pattern and check the operation" or "Search for a special function to check the operation" will be displayed in a selectable manner.
Then, when the button corresponding to either the "representative pattern" or the "special function" is clicked according to the input operation of the operator, the center of the button is highlighted in black and the selected processing content is specified. Will be done.
After that, if the "view" button is pressed, the process transitions to the following "7. Report display screen".
If the "Back" button is pressed, the screen returns to "5. Execution record viewing screen".

[7.レポート表示画面]
この画面は、前画面(6.希望閲覧処理選択画面)で選択された実行記録・処理内容について、該当するレポートファイル(後述する図50参照)を表示するものである。
具体的な画面の表示例は省略するが、このレポートファイルが表示されることで、ユーザは、過去に実行された動作確認処理の内容・結果を閲覧することができるようになる。
そして、「戻る」ボタンが押下されることで、初期画面である「0.システム起動画面」に戻る。
[7. Report display screen]
This screen displays the corresponding report file (see FIG. 50 described later) for the execution record / processing content selected in the previous screen (6. Desired browsing process selection screen).
Although a specific screen display example is omitted, by displaying this report file, the user can view the contents and results of the operation confirmation process executed in the past.
Then, when the "Back" button is pressed, the screen returns to the initial screen "0. System startup screen".

[フローチャート]
次に、以上のような画面表示に従って実行される本システム10における動作確認処理の具体的な内容について、図39~図50に示すフローチャートに沿って説明する。
[代表パターン:SQLファイルの作成/配置]
図39に「代表パターン:SQLファイルの作成/配置」処理のフローチャートを示す。
このSQLファイルの作成/配置処理では、図39に示すように、まず、本システム10の表示手段(ディスプレイ等)に表示されている進捗表示画面を初期化して(ステップ3901)、操作者の入力操作に応じて選択された動作確認処理の実行形式が自動実行であるか手動実行であるかが判定される(ステップ3902)。
[flowchart]
Next, the specific contents of the operation confirmation process in the system 10 executed according to the screen display as described above will be described with reference to the flowcharts shown in FIGS. 39 to 50.
[Representative pattern: SQL file creation / placement]
FIG. 39 shows a flowchart of the “representative pattern: SQL file creation / arrangement” process.
In this SQL file creation / placement process, as shown in FIG. 39, first, the progress display screen displayed on the display means (display or the like) of the system 10 is initialized (step 3901), and the operator inputs. It is determined whether the execution format of the operation confirmation process selected according to the operation is automatic execution or manual execution (step 3902).

実行形式が「手動」であれば、表示画面を「3.手動実行時のSQLファイル取得」画面(図37参照)に遷移させて(ステップ3903)、処理は終了となる。この場合は、SQLファイルは、上述のとおり、操作者の入力操作に応じて、任意のフォルダが選択されデータが取得される(図37参照)。
一方、実行形式が「自動」の場合には、遷移画面(図36,図37参照)における「SQLファイルの作成/配置」ボックスが赤色などで着色された後(ステップ3904)、SQLファイルの自動作成処理が実行される(ステップ3905~3910)。
If the execution format is "manual", the display screen is changed to the "3. SQL file acquisition at the time of manual execution" screen (see FIG. 37) (step 3903), and the process is completed. In this case, as described above, in the SQL file, an arbitrary folder is selected and data is acquired according to the input operation of the operator (see FIG. 37).
On the other hand, when the execution format is "automatic", the "SQL file creation / placement" box on the transition screen (see FIGS. 36 and 37) is colored in red or the like (step 3904), and then the SQL file is automatically executed. The creation process is executed (steps 3905 to 3910).

SQLファイルの作成は、まず、ファイル名に使用する連続管理番号を「0」にセットし(ステップ3905)、その後、移行元データベース100のSQL実行記録からSQLを抽出する(ステップ3906)。この抽出処理は1SQLずつ、全てのSQLファイルを取り出して行われる。
抽出処理は、連続管理番号が「100,000」に到達するまで繰り返され(ステップ3907)、ファイル名に使用する連続管理番号をプラス「1」して(ステップ3908)、ファイル名を「mig_連続管理番号.txt」として、格納先の「INPUT-SQLファイル格納ディレクトリ」に出力し(ステップ3909)、連続管理番号が「100,000」に到達したら(ステップ3907)、進捗表示画面の進捗が進められて(ステップ3910)、処理は終了となる。
To create the SQL file, first, the continuous management number used for the file name is set to "0" (step 3905), and then the SQL is extracted from the SQL execution record of the migration source database 100 (step 3906). This extraction process is performed by extracting all SQL files one SQL at a time.
The extraction process is repeated until the continuous control number reaches "100,000" (step 3907), the continuous control number used for the file name is added to "1" (step 3908), and the file name is changed to "mig_continuous". Output as "control number.txt" to the storage destination "INPUT-SQL file storage directory" (step 3909), and when the continuous management number reaches "100,000" (step 3907), the progress of the progress display screen proceeds. (Step 3910), the process ends.

[代表パターン:テストデータの投入・正解データの作成/配置]
図40に「代表パターン:テストデータの投入・正解データの作成/配置」処理のフローチャートを示す。
このデータ投入/配置処理では、図40に示すように、まず、操作者の入力操作に応じて選択された動作確認処理の実行形式が自動実行であるか手動実行であるかが判定され(ステップ4001)、「手動」の場合には、表示画面を「4.データ投入指示画面」(図38参照)に遷移させて(ステップ4002)、処理は終了となる。この場合は、データ投入/正解ファイルの配置は、上述のとおり、操作者の入力操作に応じて、任意のフォルダが選択されることで行われる(図38参照)。
[Representative pattern: input of test data / creation / arrangement of correct answer data]
FIG. 40 shows a flowchart of the “representative pattern: input of test data / creation / arrangement of correct answer data” processing.
In this data input / arrangement process, as shown in FIG. 40, first, it is determined whether the execution format of the operation confirmation process selected according to the input operation of the operator is automatic execution or manual execution (step). 4001) In the case of "manual", the display screen is changed to "4. Data input instruction screen" (see FIG. 38) (step 4002), and the process is completed. In this case, the data input / correct answer file is arranged by selecting an arbitrary folder according to the input operation of the operator as described above (see FIG. 38).

一方、「自動」の場合には、遷移画面(図36,図37参照)における「テストデータの投入・正解ファイルの作成/配置」ボックスが赤色などで着色されて処理実行中であることが示された後(ステップ4003)、テストデータの投入処理(ステップ4004)及び正解ファイルの作成/配置処理(ステップ4005~4009)が実行される。
まず、テストデータの投入処理は、移行元データベース100のデータを逐次取り出して、移行先データベース200に入力・投入することにより行われる(ステップ4004)。
On the other hand, in the case of "automatic", the "input test data / creation / placement of correct answer file" box on the transition screen (see FIGS. 36 and 37) is colored in red or the like to indicate that the process is being executed. After that (step 4003), the test data input process (step 4004) and the correct answer file creation / placement process (steps 4005 to 4009) are executed.
First, the test data input process is performed by sequentially fetching the data of the migration source database 100 and inputting / inputting it to the migration destination database 200 (step 4004).

次に、正解ファイルの作成/配置処理は、前の処理(図39参照)で作成されたSQLファイルを逐次読み込み、全てのSQLファイルについて処理が実行される(ステップ4005)。
具体的には、まず、オープン中のファイル名を記録しておき(ステップ4006)、読み込まれたSQLを移行先データベース200に対して発行して、以下の項目についてデータを記憶させる(ステップ4007)。
・結果
・CPU使用率
・メモリ使用率
・応答時間
Next, in the process of creating / arranging the correct answer file, the SQL files created in the previous process (see FIG. 39) are sequentially read, and the process is executed for all the SQL files (step 4005).
Specifically, first, the name of the file being opened is recorded (step 4006), the read SQL is issued to the migration destination database 200, and the data for the following items are stored (step 4007). ..
-Results-CPU usage rate-Memory usage rate-Response time

正解ファイルが別名で保存される(ステップ4008)。ファイル名は、例えオープン中の結果ファイル名の直後に「_正解」等と付与することで生成できる。
そして、正解マッピングファイルをオープン中のファイル名で検索し、対応する正解ファイル名の横に正解ファイル名を記載して(ステップ4009)、正解ファイルの作成配置処理は終了となる。
その後は、進捗表示画面の進捗が進められて(ステップ4010)、次の代表SQLの決定処理に移行する。
The correct answer file is saved with a different name (step 4008). The file name can be generated by adding "_correct answer" or the like immediately after the open result file name.
Then, the correct answer mapping file is searched by the open file name, the correct answer file name is described next to the corresponding correct answer file name (step 4009), and the process of creating and arranging the correct answer file is completed.
After that, the progress of the progress display screen is advanced (step 4010), and the process proceeds to the determination process of the next representative SQL.

[代表パターン:代表SQLの決定]
図41~図43に「代表パターン:代表SQLの決定」処理のフローチャートを示す。
この代表SQL決定処理は、図41に示すように、まず、SQLを基本構文に従って「SELECT,UPDATE,INSERT,DELETE」の4分類にインプットを仕分ける処理が行われる(ステップ4101~4102)。
具体的には、SQLファイルが1ファイル毎に読み込まれ、この読み込み処理が最終ファイルまで繰り返し実行される(ステップ4101)。
そして、SQL分類仕分けサブルーチンが呼び出されて、SELECT/UPDATE/INSERT/DELETEの4つのディレクトリにコピーファイルが配置される(ステップ4102)。
[Representative pattern: Determination of representative SQL]
41 to 43 show a flowchart of the “representative pattern: determination of representative SQL” process.
As shown in FIG. 41, in this representative SQL determination process, first, the SQL is sorted into four categories of "SELECT, UPDATE, INSERT, DELETE" according to the basic syntax (steps 4101 to 4102).
Specifically, the SQL file is read for each file, and this reading process is repeatedly executed until the final file (step 4101).
Then, the SQL classification sorting subroutine is called, and the copy files are arranged in the four directories of SELECT / UPDATE / INSERT / DELETE (step 4102).

以降、図42及び図43に示すように、SELECT/UPDATE/INSERT/DELETEの構文系ごとの4系統で構成図の作成処理が実行される。このような4多重で構造図を作成することにより、処理の高速化を図ることができるようになる。
まず、SQLファイルが1ファイル毎に読み込まれ、最終ファイルまで繰り返し読み込み処理が実行される(ステップ4201)。
次いで、SQL構造図作成についてのサブルーチンが呼び出され、SQLファイルからSQL構造図が生成される(ステップ4202:図14~図20)。
なお、サブルーチンの具体的な内容については説明を割愛するが、サブルーチンは、公知のプログラミング技術を用いて、上述したSQL構造図の作成アルゴリズム(図11~図34参照)を実行可能なプログラムを作成することにより実現される。以下、サブルーチンについては同様である。
After that, as shown in FIGS. 42 and 43, the configuration diagram creation process is executed in four systems for each of the SELECT / UPDATE / INSERT / SELECTE syntax systems. By creating a structural diagram with such four multiplexes, it becomes possible to speed up the processing.
First, the SQL file is read for each file, and the reading process is repeatedly executed until the final file (step 4201).
Next, the subroutine for creating the SQL structure diagram is called, and the SQL structure diagram is generated from the SQL file (step 4202: FIGS. 14 to 20).
Although the specific contents of the subroutine are omitted, the subroutine creates a program capable of executing the above-mentioned SQL structure diagram creation algorithm (see FIGS. 11 to 34) by using a known programming technique. It is realized by doing. Hereinafter, the same applies to the subroutine.

続いて、図43に示すように、SQL構造図ファイルが1ファイル毎に読み込まれ、最終ファイルまで繰り返し読み込み処理が実行される(ステップ4301)。
そして、SQL構造図収れんについてのサブルーチンが呼び出され、代表SQL構造図が決定される(ステップ4302:図21~図25)。
また、構造図化される前のSQLファイルが、SQLマッピングファイルが参照されて、代表SQLディレクトリに格納される(ステップ4302)。
その後は、進捗表示画面の進捗が進められて(ステップ4303)、次の代表SQLによるテスト処理に移行する。
Subsequently, as shown in FIG. 43, the SQL structure diagram file is read for each file, and the reading process is repeatedly executed up to the final file (step 4301).
Then, the subroutine about the SQL structure diagram convergence is called, and the representative SQL structure diagram is determined (step 4302: FIGS. 21 to 25).
Further, the SQL file before being structurally plotted is stored in the representative SQL directory with reference to the SQL mapping file (step 4302).
After that, the progress of the progress display screen is advanced (step 4303), and the process proceeds to the next test process by the representative SQL.

[代表パターン:テスト実施(現行保証/進化/退化)]
図44~図47に「代表パターン:テスト実施(現行保証/進化/退化)」処理のフローチャートを示す。
このテスト処理では、図44に示すように、まず、代表SQLディレクトリからSQLファイルが1ファイル毎に読み込まれ、最終ファイルまで繰り返し実行される(ステップ4401)。ここでは、まず移行先データベース200において移行元データベース100と同様の結果が得られるか否かについてのテストから開始される。
具体的には、現行保証テストのサブルーチンが呼び出されてテストが実行される(ステップ4402)。テストは、前の処理(図41~図43参照)で決定されたSQLを移行先データベース200に対して発行し、正解マッピングファイルを参照して正解と比較することにより行われる。
[Representative pattern: test implementation (current guarantee / evolution / degeneration)]
FIGS. 44 to 47 show a flowchart of the “representative pattern: test implementation (current guarantee / evolution / degeneration)” process.
In this test process, as shown in FIG. 44, first, SQL files are read one by one from the representative SQL directory, and the final file is repeatedly executed (step 4401). Here, first, a test is started as to whether or not the same result as that of the migration source database 100 can be obtained in the migration destination database 200.
Specifically, the subroutine of the current guarantee test is called and the test is executed (step 4402). The test is performed by issuing the SQL determined in the previous process (see FIGS. 41 to 43) to the migration destination database 200, referring to the correct answer mapping file, and comparing with the correct answer.

そして、移行先データベース200についてのテストの結果が、移行元データベース100と一致するか否かが判定され(ステップ4403)、テスト結果が同じ場合には「進化」処理・テスト(図面左側のフロー)が実行され、テスト結果が異なる場合には「退化」処理・テスト(図面右側のフロー)が実行される。
まず、テスト結果が代表パターンポートファイルに出力され(ステップ4404)、その後、1行目の始めの空白出現までに「SELECT」が在るか否かが判定され(ステップ4405)、「SELECT」が在る場合には、進化/退化回数として「1」がセットされる(ステップ4406)。一方、「SELECT」がない場合には進化/退化処理は行われず、テスト処理は終了となる。
Then, it is determined whether or not the test result of the migration destination database 200 matches the migration source database 100 (step 4403), and if the test results are the same, the "evolution" process / test (flow on the left side of the drawing). Is executed, and if the test results are different, the "degeneration" process / test (flow on the right side of the drawing) is executed.
First, the test result is output to the representative pattern port file (step 4404), and then it is determined whether or not "SELECT" exists by the appearance of the blank at the beginning of the first line (step 4405), and "SELECT" is displayed. If so, "1" is set as the number of evolutions / degenerations (step 4406). On the other hand, if there is no "SELECT", the evolution / degeneration process is not performed and the test process ends.

続いて、進化/退化サブルーチンが呼び出され、進化/退化SQLが生成されて(ステップ4407:図26,図27,図31,図32参照)、進化/退化されたSQLが代表SQLディレクトリに格納される。
次に、自動データ増幅サブルーチンが呼び出され、進化/退化されたSQLについて、自動でデータ作成が行われ、正解マッピングファイルに自動で正解データが登録される(ステップ4408:図28,図29,図33,図34参照)。
その後、進化/退化テストのサブルーチンが呼び出されて、進化/退化されたSQLを移行先データベース200に対して発行し、正解マッピングファイルを参照して正解と比較することにより、1回目の進化/退化テストが実行される(ステップ4409)。
Subsequently, the evolution / degeneration subroutine is called, the evolution / degeneration SQL is generated (step 4407: see FIG. 26, FIG. 27, FIG. 31, FIG. 32), and the evolved / degenerated SQL is stored in the representative SQL directory. Evolved.
Next, the automatic data amplification subroutine is called, data is automatically created for the evolved / degenerated SQL, and the correct answer data is automatically registered in the correct answer mapping file (step 4408: FIG. 28, FIG. 29, FIG. 33, see FIG. 34).
After that, the evolution / degeneration test subroutine is called, the evolved / degenerated SQL is issued to the migration destination database 200, and the first evolution / degeneration is performed by referring to the correct answer mapping file and comparing it with the correct answer. The test is run (step 4409).

そして、進化/退化テストの結果が、移行元データベース100と一致するか否かが判定され(ステップ4410)、テスト結果が一致する場合には「2回目」の進化/退化処理・テスト(図面各左側のフロー)が実行され、テスト結果が異なる場合には処理は終了となる(図面各右側のフロー)。
図45に示すように、まず、進化/退化テスト結果が移行元データベース100と異なる場合には、代表パターンポートファイルに出力された後(ステップ4501)、進捗表示画面の進捗が進められて(ステップ4502)処理は終了となる。
一方、進化/退化テスト結果が移行元データベース100と一致する場合には、代表パターンポートファイルに出力された後(ステップ4503)、進化/退化回数として「2」がセットされる(ステップ4504)。
そして、1回目と同様に、進化/退化サブルーチン(ステップ4505),自動データ増幅サブルーチン(ステップ4506),進化/退化テストサブルーチン(ステップ4507)の各サブルーチンが呼び出されて、進化/退化処理とテスト処理が実行される。
Then, it is determined whether or not the result of the evolution / degeneration test matches the migration source database 100 (step 4410), and if the test results match, the "second" evolution / degeneration process / test (each drawing). (Flow on the left side) is executed, and if the test results are different, the process ends (flow on the right side of each drawing).
As shown in FIG. 45, first, when the evolution / degeneration test result is different from the migration source database 100, the progress of the progress display screen is advanced after being output to the representative pattern port file (step 4501) (step). 4502) The process is completed.
On the other hand, if the evolution / degeneration test result matches the migration source database 100, "2" is set as the number of evolution / degeneration after being output to the representative pattern port file (step 4503) (step 4504).
Then, as in the first time, the evolution / degeneration subroutine (step 4505), the automatic data amplification subroutine (step 4506), and the evolution / degeneration test subroutine (step 4507) are called, and the evolution / degeneration process and the test process are performed. Is executed.

その後、進化/退化テストの結果が、移行元データベース100と一致するか否かが判定され(ステップ4508)、テスト結果が一致する場合には「3回目」の進化/退化処理・テスト(図面各左側のフロー)が実行され、テスト結果が異なる場合には処理は終了となる(図面各右側のフロー)。
すなわち、図46に示すように、2回目の進化/退化テスト結果が移行元データベース100と異なる場合は、代表パターンポートファイルに出力された後(ステップ4601)、進捗表示画面の進捗が進められて(ステップ4602)処理は終了する。
一方、2回目の進化/退化テスト結果が移行元データベース100と一致する場合には、代表パターンポートファイルに出力された後(ステップ4603)、進化/退化回数として「3」がセットされ(ステップ4604)、その後は、同様に進化/退化サブルーチン(ステップ4605),自動データ増幅サブルーチン(ステップ4606),進化/退化テストサブルーチン(ステップ4607)が呼び出されて、進化/退化処理とテスト処理が実行される。
After that, it is determined whether or not the result of the evolution / degeneration test matches the migration source database 100 (step 4508), and if the test results match, the "third" evolution / degeneration process / test (each drawing). (Flow on the left side) is executed, and if the test results are different, the process ends (flow on the right side of each drawing).
That is, as shown in FIG. 46, when the result of the second evolution / degeneration test is different from that of the migration source database 100, the progress of the progress display screen is advanced after being output to the representative pattern port file (step 4601). (Step 4602) The process ends.
On the other hand, if the result of the second evolution / degeneration test matches the migration source database 100, "3" is set as the number of evolution / degeneration after being output to the representative pattern port file (step 4603) (step 4604). ), After that, the evolution / degeneration subroutine (step 4605), the automatic data amplification subroutine (step 4606), and the evolution / degeneration test subroutine (step 4607) are called in the same manner, and the evolution / degeneration process and the test process are executed. ..

そして、3回目の進化/退化テストについては、テスト結果が移行元データベース100と一致するか否かが判定された後は(ステップ4608)、図47に示すように、テスト結果の如何を問わず、テスト結果が代表パターンポートファイルに出力された後(ステップ4701)、進捗表示画面の進捗が進められて(ステップ4702)処理は終了となる。
これは、進化/退化処理については、3回程度行えば、進化によるシステム拡張等の予測や、退化によるシステムの改善検出などは十分可能であるからである。
但し、以上のような進化/退化処理・テストを、4回以上や2回以下とすることも勿論可能であり、システムの規模やコスト等を考慮して、適宜任意の回数を実行することができる。
Then, for the third evolution / degeneration test, after it is determined whether or not the test result matches the migration source database 100 (step 4608), as shown in FIG. 47, regardless of the test result. After the test result is output to the representative pattern port file (step 4701), the progress of the progress display screen is advanced (step 4702), and the process ends.
This is because it is possible to predict the system expansion due to evolution and detect the improvement of the system due to degeneration if the evolution / degeneration process is performed about three times.
However, it is of course possible to perform the evolution / degeneration process / test as described above 4 times or more or 2 times or less, and it is possible to execute any number of times as appropriate in consideration of the scale and cost of the system. can.

[特殊関数:代表SQLの決定]
図48に「特殊関数:代表SQLの決定」処理のフローチャートを示す。
この特殊関数の代表SQL決定処理では、図48に示すように、まず、特殊関数ファイル(図35参照)をオープンして、登録されている関数を記憶手段に記憶させる(ステップ4801)。
その後、登録されている関数1つずつに対して、各SQL中に該当する関数が存在するか否かが確認されて(ステップ4802)、特殊関数テストが実行される(ステップ4803~4805)。
[Special function: determination of representative SQL]
FIG. 48 shows a flowchart of the “special function: determination of representative SQL” process.
In the representative SQL determination process of this special function, as shown in FIG. 48, first, a special function file (see FIG. 35) is opened and the registered function is stored in the storage means (step 4801).
After that, it is confirmed whether or not the corresponding function exists in each SQL for each registered function (step 4802), and the special function test is executed (steps 4803 to 4805).

具体的には、SQLファイルが1ファイル毎に読み込まれ、最終ファイルまで繰り返し実行される(ステップ4803)。
そして、読み込まれたSQL中に、該当関数が存在するか否かが判定され(ステップ4804)、該当する関数が存在しない場合には、特殊関数テストは終了となる。
一方、SQL中に該当する関数が存在する場合には、SQLファイルが別名で保存される(ステップ4805)。ファイル名は、例えばオープン中の結果ファイル名の後に「_関数名」などを付与することで生成することができる。
その上で、SQLファイルが特殊関数用ディレクトリに格納され、特殊関数用正解マッピングファイルに追記される(ステップ4805)。これによって、特集関数を含む代表SQLが決定されることになる。
その後は、進捗表示画面の進捗が進められて(ステップ4806)、処理は終了となる。
Specifically, the SQL file is read for each file and repeatedly executed until the final file (step 4803).
Then, it is determined whether or not the corresponding function exists in the read SQL (step 4804), and if the corresponding function does not exist, the special function test ends.
On the other hand, if the corresponding function exists in SQL, the SQL file is saved with a different name (step 4805). The file name can be generated, for example, by adding "_function name" or the like after the open result file name.
Then, the SQL file is stored in the special function directory and added to the special function correct answer mapping file (step 4805). As a result, the representative SQL including the special feature function is determined.
After that, the progress of the progress display screen is advanced (step 4806), and the process is completed.

[特殊関数:テスト実施]
図49に「特殊関数:テスト実施及びレポート作成」処理のフローチャートを示す。
まず、特殊関数のテスト処理は、図49に示すように、まず、上述した特殊関数ファイル格納用ディレクトリからSQLファイルが1ファイル毎に読み込まれ、最終ファイルまで繰り返し実行される(ステップ4901)。
そして、特殊関数用の現行保証テストのサブルーチンが呼び出されてテストが実行される(ステップ4902)。テストは、前の処理(図48参照)で決定された代表SQLを移行先データベース200に対して発行し、特殊関数用の正解マッピングファイルを参照して正解と比較することにより行われる。
その後、移行先データベース200についてのテストの結果が、移行元データベース100と一致するか否かが判定され(ステップ4903)、テスト結果が同じ場合には、特殊関数レポートファイルに「OK」を出力し(ステップ4904)、テスト結果が異なる場合には、特殊関数レポートファイルに「NG」を出力して(ステップ4905)、処理は終了となる。
[Special function: test execution]
FIG. 49 shows a flowchart of the “special function: test execution and report creation” process.
First, as shown in FIG. 49, in the special function test process, first, the SQL file is read for each file from the above-mentioned special function file storage directory, and the test process is repeatedly executed until the final file (step 4901).
Then, the subroutine of the current guarantee test for the special function is called and the test is executed (step 4902). The test is performed by issuing the representative SQL determined in the previous process (see FIG. 48) to the migration destination database 200, referring to the correct answer mapping file for the special function, and comparing with the correct answer.
After that, it is determined whether or not the test result of the migration destination database 200 matches the migration source database 100 (step 4903), and if the test results are the same, "OK" is output to the special function report file. (Step 4904) If the test results are different, "NG" is output to the special function report file (step 4905), and the process ends.

[テスト結果レポート作成]
図50に「代表パターン/特殊関数:テスト実施及びレポート作成」処理のフローチャートを示す。
代表パターン/特殊関数のテスト結果のレポート作成処理は、図53に示すような処理が実行される(ステップ5001~5003)。
[Create test result report]
FIG. 50 shows a flowchart of the “representative pattern / special function: test execution and report creation” process.
As the report creation process of the test result of the representative pattern / special function, the process as shown in FIG. 53 is executed (steps 5001 to 5003).

[代表パターン]
まず、代表パターンの結果レポートとしては、以下のような内容を生成・出力することができる(ステップ5001)。
(1)代表パターンレポートファイル(サマリ部分)
このサマリ部分には、以下のような結果を出力することができる。
・総試験SQL数をカウントアップし本数を出力。
・代表パターンレポートファイルの「現行保証テスト」列を「OK」で検索してヒットした本数を出力。
・代表パターンレポートファイルの「INPUT-SQLファイル名」列と「現行保証テスト」列の応答時間を引き算してマイナス値となった本数を出力。
(2)代表パターンレポートファイル(退化テスト部分)
この退化テスト部分には、以下のような結果を出力することができる。
・代表パターンレポートファイルの退化テスト3回目のSQL本数をカウントし退化数3と本数を出力。
・発見されなかったら2回目のSQL本数をカウントし退化数2と本数を出力。
・発見されなかったら1回目のSQL本数をカウントし退化数1と本数を出力。
・発見されなかったら退化数0,本数0を出力。
(3)代表パターンレポートファイル(退化テスト部分)
この進化テスト部分には、以下のような結果を出力することができる。
・代表パターンレポートファイルの進化テスト3回目のSQL本数をカウントし進化数3と本数を出力。
・発見されなかったら2回目のSQL本数をカウントし進化数2と本数を出力。
・発見されなかったら1回目のSQL本数をカウントし進化数1と本数を出力。
・発見されなかったら進化数0,本数0を出力。
[Representative pattern]
First, as the result report of the representative pattern, the following contents can be generated and output (step 5001).
(1) Representative pattern report file (summary part)
The following results can be output to this summary part.
・ The total number of SQL tests is counted up and the number is output.
-Search the "Current Warranty Test" column of the representative pattern report file with "OK" and output the number of hits.
-The response time in the "INPUT-SQL file name" column and the "current warranty test" column of the representative pattern report file is subtracted, and the number of negative values is output.
(2) Representative pattern report file (degradation test part)
The following results can be output to this degradation test part.
-Degeneration test of representative pattern report file Counts the number of SQLs for the third time and outputs the number of degenerations 3.
・ If not found, the number of SQLs for the second time is counted and the number of degenerates is 2 and the number is output.
・ If it is not found, the number of SQLs for the first time is counted and the number of degenerates is 1 and the number is output.
・ If not found, output 0 degenerates and 0 degenerates.
(3) Representative pattern report file (degradation test part)
The following results can be output to this evolution test part.
-Evolution test of representative pattern report file Counts the number of SQLs for the third time and outputs the number of evolutions 3 and the number.
・ If not found, count the number of SQLs for the second time and output the number of evolutions 2 and the number.
・ If it is not found, the number of SQLs for the first time is counted and the number of evolutions is 1 and the number is output.
-If not found, output 0 evolutions and 0 evolutions.

[特殊関数]
次に、特殊関数の結果レポートとしては、以下のような内容を生成・出力することができる(ステップ5002)。
特殊関数レポートファイル(サマリ部分)
・総試験SQL数をカウントアップし本数を出力。
・代表パターンレポートファイルの「現行保証テスト」列を「OK」で検索しヒットした本数を出力。
・代表パターンレポートファイルの「INPUT-SQLファイル名」列と「現行保証テスト」列の応答時間を引き算してマイナス値となった本数を出力。
[Special function]
Next, as the result report of the special function, the following contents can be generated and output (step 5002).
Special function report file (summary part)
・ The total number of SQL tests is counted up and the number is output.
-Search the "Current Warranty Test" column of the representative pattern report file with "OK" and output the number of hits.
-The response time in the "INPUT-SQL file name" column and the "current warranty test" column of the representative pattern report file is subtracted, and the number of negative values is output.

[その他の情報]
さらに、上記以外のその他の情報として、以下のような内容を生成・出力することができる(ステップ5002)。
具体的には、システムクロックを利用して日付日時を取得して、以下のような果を出力することができる。
・ディレクトリを作成
ネーミングルール:「年月日_時_回数」(例えば、6桁_2桁/24時間表記_4桁/最大1000)
・データコピー
データの中身:上記INPUT-SQLファイル格納ディレクトリ~結果レポート格納ディレクトリまで一式を、ディレクトリ構造を保ったまま格納
[Other information]
Further, as other information other than the above, the following contents can be generated / output (step 5002).
Specifically, the date and time can be acquired by using the system clock, and the following results can be output.
-Create a directory Naming rule: "Date_hour_number of times" (for example, 6 digits_2 digits / 24-hour notation_4 digits / maximum 1000)
-Data copy Data contents: A set from the above INPUT-SQL file storage directory to the result report storage directory is stored while maintaining the directory structure.

そして、以上のようなレポート結果出職処理が行われると、その後、進捗表示画面の進捗が進められて(ステップ5004)、処理は終了となる。 Then, when the above-mentioned report result job change processing is performed, the progress of the progress display screen is advanced (step 5004), and the processing is completed.

以上説明したように、本システム10によれば、移行元データベース100から移行先データベース200へのマイグレーションに際して、移行元で稼動されているSQLを所定の画像に置換してパターン化し、進化/退化させることにより、効率的な動作確認や、システムの拡張・変更等の試験を行うことが可能となる。
これによって、安心/安全なデータベース移行を実現でき、例えばプロジェクト工期の予期せぬ長期化や品質低下等の問題を有効に防止することができるようになる。
As described above, according to the present system 10, when migrating from the migration source database 100 to the migration destination database 200, the SQL running at the migration source is replaced with a predetermined image to be patterned and evolved / degenerated. This makes it possible to efficiently check the operation and perform tests such as expansion / modification of the system.
As a result, safe / secure database migration can be realized, and problems such as unexpected extension of the project construction period and quality deterioration can be effectively prevented.

以上、本発明について好ましい実施形態を示して説明したが、本発明は、上述した実施形態に限定されるものではなく、本発明の範囲で種々の変更実施が可能であることは言うまでもない。
例えば、上述した実施形態では、本システム10が対象とするデータベース言語としてSQLを例にとって説明したが、本発明は、SQL以外のデータベース言語を対象とすることも勿論可能である。
すなわち、本発明は、データベースシステムに適用・発行されて、データベースに格納されたデータの出し入れに用いられるデータベース言語であれば、どのような言語に対しても適用することが可能である。
Although the present invention has been described above with reference to preferred embodiments, it is needless to say that the present invention is not limited to the above-described embodiments and various modifications can be made within the scope of the present invention.
For example, in the above-described embodiment, SQL has been described as an example of the database language targeted by the system 10, but the present invention can of course target a database language other than SQL.
That is, the present invention can be applied to any language as long as it is a database language that is applied to and issued to a database system and used to transfer data stored in the database.

また、上述した実施形態で示したアルゴリズム(図2~図35)やフローチャート(図36~図50)は、本発明を実施するための一例であり、同図に示される形態に限定されず、本発明の技術思想を実現できる限り、他のアルゴリズム等を採用することは勿論可能である。
また、上述した実施形態では、大規模なデータシステム・SQLを想定して説明しているが、本発明は、SQLを含むデータベースの規模や構成などに限定されず、マイグレーションが行われる各種データベースに適用することができるものである。
Further, the algorithms (FIGS. 2 to 35) and flowcharts (FIGS. 36 to 50) shown in the above-described embodiments are examples for carrying out the present invention, and are not limited to the embodiments shown in the drawings. Of course, it is possible to adopt other algorithms or the like as long as the technical idea of the present invention can be realized.
Further, in the above-described embodiment, the description assumes a large-scale data system / SQL, but the present invention is not limited to the scale and configuration of the database including SQL, and can be applied to various databases to be migrated. It is something that can be applied.

本発明は、例えば製品変更や機能の拡張・変更・縮減、ハードディスク資源の交換等の理由によってデータシステムの入れ替えや移行(マイグレーション)を支援するシステムとして好適に利用可能である。 INDUSTRIAL APPLICABILITY The present invention can be suitably used as a system for supporting data system replacement or migration for reasons such as product change, function expansion / change / reduction, and hard disk resource replacement.

10 データベースマイグレーション支援システム
11 データベース言語入力部
12 構造図作成部
13 収れん処理部
14 進化/退化処理部
15 代表パターン生成部
16 代表パターンテスト実行部
17 特殊関数テスト実行部
18 レポート出力部
100 移行元データベース
200 移行先データベース
10 Database migration support system 11 Database language input unit 12 Structural diagram creation unit 13 Convergence processing unit 14 Evolution / degeneration processing unit 15 Representative pattern generation unit 16 Representative pattern test execution unit 17 Special function test execution unit 18 Report output unit 100 Migration source database 200 Destination database

Claims (5)

移行元データベースから移行先データベースへのデータベースのマイグレーションを支援するシステムであって、
前記移行元データベースのデータベース管理システムに実装される、所定のデータベース言語で作成されたデータベース言語文を入力するデータベース言語入力部と、
前記データベース言語入力部で入力されたデータベース言語文の文字列を分解し、所定の画像に置換して、当該データベース言語の構造図を作成する構造図作成部とを備え
前記構造図作成部で作成された構造図に基づいて、前記移行先データベースにおける前記データベース言語文の動作確認テストを実行する
ことを特徴とするデータベースマイグレーション支援システム。
A system that supports database migration from the migration source database to the migration destination database .
A database language input unit for inputting a database language statement created in a predetermined database language, which is implemented in the database management system of the migration source database, and
It is provided with a structural diagram creation unit that decomposes a character string of a database language sentence input in the database language input unit, replaces it with a predetermined image, and creates a structural diagram of the database language.
Based on the structural diagram created by the structural diagram creation unit, the operation confirmation test of the database language statement in the migration destination database is executed.
A database migration support system characterized by this.
前記構造図作成部で作成された構造図に、同一構造が含まれているか否かを検索し、同一構造が含まれる場合には一方を破棄することにより、前記構造図を収れんする収れん処理部と、
前記収れん処理部で収れんされた構造図を元の文字列に置換して、最小数にパターン化された代表データベース言語文を生成する代表パターン生成部とを備え
前記代表パターン生成部で生成された代表データベース言語文に基づいて、前記移行先データベースにおける前記データベース言語文の動作確認テストを実行する
ことを特徴とする請求項1に記載のデータベースマイグレーション支援システム。
The astringent processing unit that converges the structural drawing by searching whether the structural drawing created by the structural drawing creation unit contains the same structure and discarding one if the same structure is included. When,
It is provided with a representative pattern generation unit that replaces the structural diagram converged by the convergence processing unit with the original character string and generates a representative database language sentence patterned to the minimum number .
Based on the representative database language statement generated by the representative pattern generation unit, the operation confirmation test of the database language statement in the migration destination database is executed.
The database migration support system according to claim 1, wherein the database migration support system is characterized in that.
前記代表パターン生成部で生成された代表データベース言語について、所定の正解データを用いたテストを実行する代表パターンテスト実行部と、
前記代表パターンテスト実行部のテスト結果を出力するレポート出力部とを備える
ことを特徴とする請求項2に記載のデータベースマイグレーション支援システム。
A representative pattern test execution unit that executes a test using predetermined correct answer data for a representative database language sentence generated by the representative pattern generation unit, and a representative pattern test execution unit.
The database migration support system according to claim 2, further comprising a report output unit that outputs the test results of the representative pattern test execution unit.
前記収れん処理部で収れんされた構造図に、構造を追加して進化させ、又は構造を削除して退化させる進化/退化処理部を備え、
前記代表パターン生成部が、
前記進化/退化処理部で進化又は退化された構造図を文字列に置換して、前記代表データベース言語を生成する
ことを特徴とする請求項2又は3に記載のデータベースマイグレーション支援システム。
The structure diagram converged by the astringent processing unit is provided with an evolution / degeneration processing unit that adds a structure to evolve or deletes the structure to degenerate.
The representative pattern generation unit
The database migration support system according to claim 2 or 3, wherein the representative database language sentence is generated by replacing the structural diagram evolved or degenerated by the evolution / degeneration processing unit with a character string.
前記データベース言語入力部で入力されたデータベース言語の文字列に、所定の特殊関数が含まれているか否かを検索し、所定の特殊関数が含まれる場合には、当該特殊関数について、所定の正解データを用いたテストを実行する特殊関数テスト実行部を備える
ことを特徴とする請求項1乃至4のいずれか一項に記載のデータベースマイグレーション支援システム。
The database language character string input in the database language input unit is searched for whether or not a predetermined special function is included, and if the predetermined special function is included, a predetermined correct answer is given for the special function. The database migration support system according to any one of claims 1 to 4, further comprising a special function test execution unit that executes a test using data.
JP2018104207A 2018-05-31 2018-05-31 Database migration support system and program Active JP7055064B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018104207A JP7055064B2 (en) 2018-05-31 2018-05-31 Database migration support system and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018104207A JP7055064B2 (en) 2018-05-31 2018-05-31 Database migration support system and program

Publications (2)

Publication Number Publication Date
JP2019211805A JP2019211805A (en) 2019-12-12
JP7055064B2 true JP7055064B2 (en) 2022-04-15

Family

ID=68846758

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018104207A Active JP7055064B2 (en) 2018-05-31 2018-05-31 Database migration support system and program

Country Status (1)

Country Link
JP (1) JP7055064B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7346332B2 (en) * 2020-03-04 2023-09-19 Qsol株式会社 Database migration method, database migration system, and database migration program
CN111767270A (en) * 2020-06-28 2020-10-13 平安普惠企业管理有限公司 Data migration method, device, server and storage medium
JP7295541B1 (en) 2022-01-28 2023-06-21 株式会社インサイトテクノロジー Information processing system, information processing device, information processing method, and program

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006227958A (en) 2005-02-18 2006-08-31 Nomura Research Institute Ltd Test data generation system and method
WO2008056438A1 (en) 2006-11-06 2008-05-15 Nec Corporation Computer system

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5428737A (en) * 1991-10-16 1995-06-27 International Business Machines Corporation Comprehensive bilateral translation between SQL and graphically depicted queries
JPH08190479A (en) * 1995-01-05 1996-07-23 Mitsubishi Electric Corp Data base shift system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006227958A (en) 2005-02-18 2006-08-31 Nomura Research Institute Ltd Test data generation system and method
WO2008056438A1 (en) 2006-11-06 2008-05-15 Nec Corporation Computer system

Also Published As

Publication number Publication date
JP2019211805A (en) 2019-12-12

Similar Documents

Publication Publication Date Title
US11726760B2 (en) Systems and methods for entry point-based code analysis and transformation
CN108762743B (en) Data table operation code generation method and device
US20030204637A1 (en) Method and apparatus for generating compilable application programs
JP7055064B2 (en) Database migration support system and program
JP3181994B2 (en) How to automatically create job flow specifications
CN105956087A (en) Data and code version management system and method
Tateosian Python For ArcGIS
Kuschke et al. Pattern-based auto-completion of UML modeling activities
JP2008123432A (en) Software asset management system
JP2007133624A (en) Information management method and device using connection relation information
Bartošek et al. DML-CZ Metadata Editor
JP2006277127A (en) Method for comparing correction program
JP2009134755A (en) Information processor, control method thereof, information processing system, program, and computer readable recording medium
Thasal et al. Information retrieval and de-duplication for tourism recommender system
CN114115831A (en) Data processing method, device, equipment and storage medium
JP6993573B2 (en) Program analysis method, program analysis device and program analysis program
JP2015011685A (en) Business rule management system and business rule management method
JPH11184687A (en) Software document preparation system using hierarchical structure and relationship of software document and operation method of the system
JPS62197826A (en) Production of system flow specifications
JP3707133B2 (en) Document database management apparatus and document database management method
CN109739835A (en) A kind of versions of data store method and device
CA2359079A1 (en) Program reproducing method and device, and medium on which a program for program reproduction recording
JP3307476B2 (en) Data item definition standardization device
JP2007034806A (en) Information processor and program
JP3577480B2 (en) Reverse engineering equipment

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210402

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211224

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220204

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220308

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220405

R150 Certificate of patent or registration of utility model

Ref document number: 7055064

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150