JP2019211805A - Database migration support system and program - Google Patents

Database migration support system and program Download PDF

Info

Publication number
JP2019211805A
JP2019211805A JP2018104207A JP2018104207A JP2019211805A JP 2019211805 A JP2019211805 A JP 2019211805A JP 2018104207 A JP2018104207 A JP 2018104207A JP 2018104207 A JP2018104207 A JP 2018104207A JP 2019211805 A JP2019211805 A JP 2019211805A
Authority
JP
Japan
Prior art keywords
sql
database
structure diagram
test
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.)
Granted
Application number
JP2018104207A
Other languages
Japanese (ja)
Other versions
JP7055064B2 (en
Inventor
紳一郎 大塚
Shinichiro Otsuka
紳一郎 大塚
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

Abstract

To enable, in migration of a database, efficient operation confirmation at a migration destination when using the same SQL as that used at a migration source.SOLUTION: A system 10 for supporting migration of a database includes a database language input unit 11 that inputs a database language implemented in a database management system, a structure diagram generation unit 12 that decomposes a character string of the database language input at the database language input unit 11, replaces it with a predetermined image, and generates a structure diagram of the database language, a convergence processing unit 13 that retrieves whether there are ones having the same structure in the structure diagram generated by the structure diagram generation unit 12, and if so, discards one of them to thereby converge the structure diagram, and a representative pattern generation unit 15 that replaces the structure diagram converged by the convergence processing unit 13 with the original character string and generates a representative database language which is patterned to a minimum number.SELECTED DRAWING: Figure 1

Description

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

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

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

特開2002−351710号公報JP 2002-351710 A 特開2011−258002号公報JP 2011-258002 A

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

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

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

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

上記目的を達成するため、本発明は、データベースのマイグレーションを支援するシステムであって、データベース管理システムに実装される、所定のデータベース言語で作成されたデータベース言語文を入力するデータベース言語入力部と、前記データベース言語入力部で入力されたデータベース言語文の文字列を分解し、所定の画像に置換して、当該データベース言語の構造図を作成する構造図作成部とを備える構成としてある。   In order to achieve the above object, the present invention is a system for supporting database migration, which is implemented in a database management system and is a database language input unit for inputting a database language sentence created in a predetermined database language, A structure diagram is provided that includes a structure diagram creation unit that decomposes a character string of the database language sentence input by the database language input unit and replaces it with a predetermined image to create a structure diagram of the database language.

また、本発明は、上記のような本発明に係るデータベースマイグレーション支援システムで実行されるプログラムとして構成することができる。
さらに、本発明は、上記のような本発明に係るデータベースマイグレーション支援システム及びプログラムによって実施可能な方法として実施することもできる。
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, when the database is migrated, the SQL is structured and patterned, so that when the same SQL as the migration source is used at the migration destination, an efficient operation check can be performed. .

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

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

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

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

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

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

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

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

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

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

[レポート出力処理]
上述し進化テストを含むテスト結果を出力処理である。
これによって、移行先データベース200における動作確認を、表示画面等で視覚を通じて確認できるとともに、進化テストの結果なども容易に確認できるようになる。
Report output processing
The test result including the evolution test described above is output processing.
As a result, the operation confirmation in the migration destination database 200 can be visually confirmed on a 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に基づく検証・テストを自動で行うことができる他、例えば、システムを管理するシステムエンジニア等の人間が、構造図を目視で確認・チェックすることで、テスト数を減らすようなことも可能となる。
[Function configuration]
In order to execute each processing as described above, the present system 10 includes a database language input unit 11, a structure diagram creation unit 12, a convergence processing unit 13, an evolution / degeneration processing unit 14, a representative pattern, as shown in FIG. The generation unit 15, the representative pattern test execution unit 16, the special function test execution unit 17, and the report output unit 18 are configured to function as respective units.
The database language input unit 11 inputs SQL that is a database language sentence created in a predetermined database language implemented in the DBMS of the migration source database 100.
The structure 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 structure diagram of the SQL. In the present system 10 capable of converting and creating such SQL into a structure diagram, verification / testing based on representative SQL as shown below can be automatically performed, for example, a system engineer who manages the system, etc. It is possible to reduce the number of tests by checking and checking the structure diagram visually.

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

代表パターン生成部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 convergence processing unit 13 with the original character string, and generates a representative SQL (representative database language sentence) patterned to the minimum number.
The representative pattern generation unit 15 replaces the structure diagram evolved or degenerated by the evolution / degeneration processing unit 14 with a character string, and generates 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 the SQL is converted to the structure diagram, the SQL statement is generated by performing reverse conversion from the structure diagram in order to perform SQL verification and evolution / degeneration. Since it is converted into a diagram, verification and evolution / degeneration can be performed by reading the original SQL recorded without recording the original SQL sentence by recording the original SQL sentence. 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, A test using predetermined correct answer data is executed for the special function.
The report output unit 18 outputs test results executed by the representative pattern test execution unit 16 and the special function test execution unit 17.
Details of the processing and operation for database migration support executed by the units 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.
[SQL patterning]
FIG. 2 schematically shows an algorithm for SQL patterning 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 in units of “1 file: 1 SQL” from the source code constituting the SQL. 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 a “SELECT system”, “UPDATE system”, “INSERT system”, and “DELETE system”, and a predetermined SQL storage directory (storage means) ) Is stored. This process can be speeded up by performing the process in parallel for each directory.
Next, the character data of the SQL sentence distributed for each syntax type is subjected to replacement / conversion processing to a predetermined structure diagram for each file (see FIGS. 14 to 20), and a structure diagram file is generated. (Structural drawing creation unit 12).
Then, the generated structural diagram data is converged / reduced by a convergence process using an inclusion relationship (see FIG. 3) described later (convergence processing unit 13), and a “representative pattern” is generated. The original SQL to become. Patterns are formed into representative pattern data composed of converged structure diagrams (representative pattern generation unit 15).

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

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

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

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

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

(2)JOINにより縦に伸びる
構造図において、格納データの構造を縦に追加することで、管理データの属性を付加・追加することができ、JOIN数を増加させることができる。
これによって、例えば、管理データの属性として「購入者」,「購入金額(円)」,「支払い期限日」の3つの項目のデータが管理されている「業務システムA」,「業務システムB」,「業務システムC」に対して、それぞれ、「性別:男or女」などの新属性を付与・追加させることができる。
図7に、SQL構造をJOINにより縦に進化させた場合の出力結果の一例を示す。
(2) Extending vertically due to JOIN In the structure diagram, by adding the structure of stored data vertically, attributes of management data can be added and added, and the number of JOINs can be increased.
Thus, for example, “business system A” and “business system B” in which data of three items of “purchaser”, “purchase amount (yen)”, and “payment due date” are managed as attributes of management data are managed. , A new attribute such as “gender: male or female” can be assigned and added to “business system C”.
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) Intervening by adjusting the display order In the structure diagram, the display order can be changed and adjusted by changing the horizontal position of the same structure. As a result, for a plurality of functions having the same structure, the display position of an arbitrary function can be moved and placed, for example, between the previously displayed functions.
FIG. 8 shows an example of the output result when the display order is changed. In this example, “business system A”, “business system B”, “business system” managing three item data of “purchaser”, “purchase amount (yen)”, and “payment due date” as management data. This is a 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を横に退化させた場合の出力結果の一例を示す。
[Degeneration]
On the other hand, in the case of degenerating SQL, as shown in FIG. 9, the SQL can be changed (degenerated) in the following two patterns similar to the above-described evolution in the patterned SQL structure diagram.
(1) Cutting a UNION and shrinking it horizontally In the structure diagram, by deleting a part of the same structure lined up horizontally, the function of the structure can be reduced or degenerated.
As a result, for example, when the current system implements 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 do.
FIG. 10 shows an example of an output result when UNION is degenerated horizontally for the SQL structure.

(2)JOINを削り縦に縮む
構造図において、縦に並ぶ格納データの構造の一部を削除(JOINテーブルを削除)することで、管理データの属性を縮減・退化させることができる。
なお、SQLを退化させる場合にも、上述した進化の場合と同様に、構造図において、同一構造の横方向の位置を変更することで、表示の順序を変更・調整することができることは言うまでもない。
(2) Cutting JOIN and vertically contracting In the structure diagram, by deleting a part of the structure of stored data arranged vertically (deleting the JOIN table), it is possible to reduce / degenerate the attributes of management data.
Even when degenerating SQL, it goes without saying that the display order can be changed and adjusted by changing the horizontal position of the same structure in the structure diagram as in the case of the 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 structure diagram]
Next, a description will be given of structure decomposition and creation of a structure diagram in which the source code constituting the above-described SQL is distributed according to the syntax type of SQL.
As described above, the structure decomposition of SQL is executed according to the basic syntax of the SQL statement, focusing on the four syntaxes of “SELECT system”, “UPDATE system”, “INSERT system”, and “DELETE system”.
Basically, "SELECT ~;", "UPDATE ~;", "INSERT ~;", and "DELETE ~;" in the source code are extracted as a unit of one structure, and syntax is included in the command unit included therein. Are extracted and decomposed, and replacement / conversion is performed on a predetermined structure diagram image for each decomposed element (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 not found in other syntaxes (UPDATE system, INSERT system, DELETE system), first, a structure peculiar to the SELECT statement will be described with reference to FIGS. To do.
FIG. 11 to FIG. 13 are explanatory diagrams when disassembling the structure of the SELECT statement.
As shown in these figures, there are three syntax patterns in the SELECT statement.
FIG. 11 shows a syntax that can have a nested structure inside.
In the example shown in FIG. 11, when there are two data tables of “employee table” and “salary table” as management data of the database, for example, an employee number of “300,000 yen or more per month” is selected, In the SELECT statement, the employee number is used as a list of employee names and finally sorted in order of employee numbers.
In such a case, the syntax of the “nested structure” described in “(˜)” of “WHERE column name = (˜)” of the SELECT statement (the portion surrounded by a thick line in FIG. 11) is included. Thus, it is extracted as the structure of one SELECT statement.

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

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

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

[SELECT文]
図14は、図11に示したSELECT文を所定の構造図に変換する場合である。
同図に示すように、この場合のSELECT文は、以下のような手順により、SELECT文の各要素がそれぞれ所定の画像に置換されて、一つの構造図として作成される。
(1)構文中の「一番内側にあるテーブル」という意味で「ドラム缶マーク」を一番右側に記載する。
(2)「条件に合致するレコードを抽出」という意味で「片カッコ」を「ドラム缶マーク」の左側に記載する。
(3)「その結果を用いて」という意味で「矢印」を「片カッコ」の左側に記載する。
(4)「別のテーブルのデータと連結して」という意味で「ドラム缶マーク」を「矢印」の左側に記載する。
(5)「該当するレコードもしくは列を抽出」という意味で「片カッコ」を「ドラム缶マーク」の左側に記載する。
以上の処理・手順により、図14左側(図11)に示すSELECT文が、図14右側に示す構造図として置換・生成される。
[SELECT statement]
FIG. 14 shows a case where the SELECT statement shown in FIG. 11 is converted into a predetermined structure diagram.
As shown in the figure, the SELECT statement in this case is created as a single structural diagram by replacing each element of the SELECT statement with a predetermined image according to the following procedure.
(1) In the syntax, “drum can mark” is written on the rightmost side to mean “innermost table”.
(2) In the meaning of “extract records that match the condition”, “single parenthesis” is written on the left side of “drum can mark”.
(3) Write “arrow” on the left side of “brackets” to mean “use the result”.
(4) “Drum can mark” is written on the left side of “arrow” in the sense of “concatenated with data from another table”.
(5) Write “parentheses” on the left side of “drum can mark” to mean “extract applicable record or column”.
The SELECT statement shown on the left side of FIG. 14 (FIG. 11) is replaced and generated as the structure 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 structure diagram. The SELECT statement is replaced and created as a structure diagram by the following procedure.
(1) Two “drum can marks” indicating “JOIN tables” are arranged vertically on the rightmost side in the order of table names.
(2) Write “JOIN type” and “arrow” to the left of the corresponding “drum can mark”.
(3) “Drum can mark” indicating “JOIN destination table” is arranged on the left side of “arrow”.
(4) Write “arrow” on the left side of “drum can mark” to mean “use the result”.
(5) “Drum can mark” is written on the left side of “arrow” in the sense of “concatenated with data from another table”.
(6) Write “parentheses” on the left side of “drum can mark” to mean “extract applicable record or column”.
The SELECT statement shown on the left side of FIG. 15 (FIG. 12) is replaced and generated as the structure 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 structure diagram. The SELECT statement is replaced and created as a structure diagram by the following procedure.
(1) “Drum can mark” and “single parenthesis” indicating the first SELECT statement are placed on the rightmost side, and they mean “results (set) output above (before) the UNION phrase”. Enclose with "Square frame".
(2) “Horizontal line” is connected to the left side of “square frame” to mean “union” and “UNION type” is described.
(3) “Drum can mark” and “single parenthesis” indicating the second SELECT statement are placed on the leftmost side, and they mean “result (set) output under (after) UNION phrase”. It is enclosed with a “square frame” and connected to the left side of the “horizontal line”.
In addition, since “UNION” and “UNION ALL” exist as commands that can “create the union of results”, when generating a structure diagram, an image that can distinguish between them is assigned. To.
The SELECT statement shown on the left side of FIG. 16 (FIG. 13) is replaced and generated as the structure 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 an INSERT statement is converted into a predetermined structure diagram. The INSERT statement is replaced and created as a structure diagram by the following procedure.
(1) “Drum can mark” is written on the rightmost side to mean “data insertion destination table”.
(2) The “left to right arrow” indicating “data insertion work” is arranged on the left side of the “drum can mark”.
(3) “Black circle“ I ”character” indicating “INSERT” in the meaning of “data insertion base point” is arranged on the left side of “arrow”.
The INSERT statement shown on the left side of FIG. 17 is replaced and generated as a 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 retrieved from another table is converted into a predetermined structure diagram as an INSERT statement. The INSERT statement is replaced as a structure diagram by the following procedure.・ Created.
(1) “Drum can mark” is written on the rightmost side to mean “data insertion destination table”.
(2) The “left to right arrow” indicating “data insertion work” is arranged on the left side of the “drum can mark”.
(3) “Black circle“ I ”character” indicating “INSERT” in the meaning of “data insertion base point” is arranged on the left side of “arrow”.
(4) In the meaning of “extract applicable record or column”, “single parenthesis” (in the opposite direction to the SELECT statement) is written on the left side of “black circle“ I ”character”.
(5) “Drum can mark” is written on the left side of “single parenthesis” in the sense of “table storing original data used as data insertion destination”.
Through the above processing / procedure, the INSERT statement shown on the left side of FIG. 18 is replaced and generated as a structure 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 an UPDATE statement is converted into a predetermined structure diagram. The UPDATE statement is replaced and created as a structure diagram by the following procedure.
(1) “Drum can mark” is written on the rightmost side to mean “data update destination table”.
(2) A “left to right arrow” indicating “data update work” is arranged on the left side of the “drum can mark”.
(3) “Black circle“ UP ”character” indicating “UPDATE” in the meaning of “data update base point” is arranged on the left side of “arrow”.
The UPDATE statement shown on the left side of FIG. 19 is replaced and generated as a structure diagram shown on the right side of FIG.

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

[構造図のマッピング/収れん]
次に、以上のようにして作成された構造図のマッピング/収れん処理について説明する。
図21及び図22は、生成する構造図をマッピングする手法を示す説明図であり、図21は構造図がSELECT文の場合、図22はINSERT文の場合である。
これらの図に示すように、マッピングは、例えば「1001マス×1001マス」を初期値とする「方眼マップ」を用意し、このマップ上に構造図を張り付けて実行される。
なお、方眼マップは、初期値として「縦横1001マス」からスタートさせるが、マスが足りない場合には拡張することができる。
また、このような方眼マップのデータについても、上述した構造図の画像データとともに、本システム10の記憶手段などに予め画像データとして格納・記憶させておくものとする。
[Structure mapping / convergence]
Next, the mapping / convergence processing of the structure diagram created as described above will be described.
21 and 22 are explanatory diagrams showing a method for mapping the generated structure diagram. FIG. 21 shows a case where the structure diagram is a SELECT statement, and FIG. 22 shows a case where it is an INSERT statement.
As shown in these drawings, the mapping is executed by preparing a “square map” having an initial value of “1001 square × 1001 square”, for example, and attaching 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 insufficient squares.
Also, such grid map data is stored and stored in advance as image data in the storage means of the system 10 together with the image data of the structure diagram described above.

[マッピングルール]
マッピング処理は、以下のルールに基づいて実行される。
まず、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, for the SELECT statement, the following rules are used (see FIG. 21).
[SELECT statement rule]
・ Start writing from the center of the right end ・ Symbol: 1 per square ・ “SELECT” is placed in order from right to left ・ “JOIN” is placed in order from top to bottom ・ Result set is the minimum size that includes all symbols A circle with a thick frame ・ Arrow: Connect one symbol across the symbol (the connection point is in the middle)
In order to distinguish the “JOIN” type, when “JOIN”, the classification is described below the arrow. − “JOIN”: “J” is described − “LEFT OUTER JOIN”: “LJ”
-“RIGHT OUTER JOIN”: “RJ”
-"FULL OUTER JOIN": "FJ"
・ "UNION" that creates a union is connected with a horizontal line. To distinguish "UNION" type, a category is written below the horizontal line.-"UNION": "U" is written.-"UNION ALL": "UA"
・ The 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 used for the INSERT statement, the UPDATE statement, and the DELETE statement (see FIG. 22).
[INSERT statement, UPDATE statement, DELETE statement rule]
・ Start writing from the center of the right edge ・ Symbol: One in one square ・ Arrange in order from right to left ・ Contain the result set in a thick frame with a minimum size including all symbols ・ Arrow: One square across the symbol Connect with (the connection point is in the middle)
Describe from left to right • Use parentheses to extract values from the table (use the opposite direction to SELECT • Describe the category at the base point to distinguish INSERT / UPDATE / DELETE-“INSERT”: “I -“UPDATE”: “UP”
-"DELETE": "D"
・ The color is expressed in black and white

以上のようなマッピングルールに従い、構造図の収れん処理が実行され、パターン化された代表SQLが決定される。
構造図の収れんは、画像処理による総当たりによって行われる。このような画像処理技術を用いることにより、構造図の収れんを高速かつ正確に実行できるようになる。
[前処理]
まず、収れんの「前処理」として、図23に示すように、フィラーをマップから削除する処理が実行される。
具体的には、図23に示す「太い線」以外の余白が削除される。
但し、「UNION」を示す「横線」及び「黒丸」は削除されないようにする。
In accordance with the mapping rule as described above, the convergence process of the structure diagram is executed, and the patterned representative SQL is determined.
Convergence of the structure diagram is performed by brute force by image processing. By using such an image processing technique, the convergence of the structure diagram can be executed at high speed and accurately.
[Preprocessing]
First, as a “pre-processing” of convergence, as shown in FIG. 23, processing for deleting the filler from the map is executed.
Specifically, margins other than the “thick line” shown in FIG. 23 are deleted.
However, the “horizontal line” and “black circle” indicating “UNION” are not 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 convergence, as shown in FIGS. 24 and 25, “brute force” by image processing and “check of inclusion relation” based on it are executed.
First, the “main process” is executed by the following procedure (see FIG. 24).
(1) Execute processing for each directory of SELECT, UPDATE, DELETE, and INSERT systems
(2) Sort by the grid used
(3) Extract the structure map with the few squares that you use the most and make it the comparison target
(4) The structure diagram selected in “(3)” is searched for the same structure in the structure diagram having the largest grid (see FIG. 25).
(5) When the same structure is found, the structure diagram selected in “(3)” is discarded as being included in the upper SQL.
(6) Select the structure diagram with the largest number of grids after the structure diagram selected in (3), and execute the same processing as (3) to (5)
(7) If a structure that is “included” is not found by the processes of “(3) to (5)”, the comparison target is changed to the second largest structure diagram, and the same process is executed. 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 “(3) to (5)”.
As shown in the figure, the search for inclusion relations is executed according to the following procedure.
(1) Arrange the structure diagram that is the target of inclusion check so that it is aligned with the upper left corner of the grid (2) Move the target structure diagram one cell at a time in the right direction and check whether there is the same structure (3) Target structure When the figure reaches the right end of the grid, move it downward by one square (4) Move the target structure diagram one by one from the left to the right again, and perform the same check. End when it reaches the bottom

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

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

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

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

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

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

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

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

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

図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 reduction in the horizontal direction, and FIG. 34 shows reduction in the vertical direction. This is the case.
When the reduction in the horizontal direction is performed, as shown in the “assumed result” in FIG. 33, for example, the output results of “business system A” and “business system B” before the degeneration are displayed as “ Only “Business System A” is output and displayed.
When the reduction in the vertical direction is performed, as shown in FIG. 34, for example, data of three items of “purchaser”, “purchase amount (yen)”, and “payment due date” before degeneration as attribute information Is displayed as an output result, the one-line item (“payment due date”) disappears and is not displayed.
In this case, it is important in ensuring the execution of SQL that the search result record set does not change even if the number of “JOIN” 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.
As described above, in the present system 10, the operation of the migration destination database 200 is performed by selecting and determining a representative SQL pattern by creating a structural diagram showing the structure of the SQL and its convergence, and performing a test based on the representative SQL pattern. A guarantee is made.
The patent function test can be executed as finishing / complementation of such a representative pattern test, and the operation check of special functions included in SQL, for example, special controls and functions (for example, SUM, AVG, etc.) shown in FIG. The patent function test searches whether or not a predetermined special function is included in the SQL character string input to the system 10, and when the predetermined special function is included. Performs 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 “Excel” of Microsoft Corporation, 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 at a time.
As a 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)。
Such a special function test is a rare case to be picked up, but by performing such “finishing”, it is possible to almost completely guarantee the operation of the migration source database 100 and the migration destination database 200. Become.
Also for this special function test, test results 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を構成する情報処理装置の動作によって、自動でデータの抽出・選択・決定・生成等が行われるものである。
[Operation]
Next, specific processing / operation (implementation of the database migration support method) in the system 10 as described above will be described with reference to FIGS.
[Overall process]
FIG. 36 is a flowchart showing the entire process of the operation confirmation process of the system 10.
As shown in the figure, in the present system 10, processing is performed in 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, “operation check by searching a representative pattern” is “creation / placement of SQL file: manual” → “determination of representative SQL: automatic” → “input / test data creation / placement: manual” → "Test execution (current guarantee / evolution / degeneration): automatic" → "result report creation: automatic" is executed in this order.
Note that “manual” during processing means that, for example, a user, administrator, operator, or the like of the system 10 manually selects (specifies / inputs) data, etc.
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ファイルの作成/配置」,「テストデータの投入・正解ファイルの作成/配置」が行われた場合には、そのデータを再利用することができる。
[Operation check of special function]
Next, “operation check by searching for special functions” is performed as follows: “SQL file creation / placement: manual” → “representative SQL determination: automatic” → “test data input / correction file creation / placement: manual” "→" Test execution (current guarantee): Automatic "→" Result report creation: Automatic ".
Note that “manual” and “automatic” during processing are the same as the “operation confirmation by searching for a representative pattern”.
In addition, in the “confirmation of operation by searching for a representative pattern”, if “SQL file creation / placement” and “test data input / correct answer file creation / placement” have already been performed manually, Can be reused.

[システム画面構成]
図37及び図38に、本システム10の動作確認処理における画面表示の一例を示す。
本システム10では、以下に示す動作確認処理が実行される場合に、操作者のユーザインタフェースとなる表示手段、例えば本システム10に接続された液晶ディスプレイ等において、図37,図38に示すような表示画面が生成・表示される。そして、操作者が表示画面に沿った入力操作を行うことによって、動作確認処理の各工程が実行されるようになる。
なお、以下に示す画面構成は一例であり、これ以外の画面構成を生成・出力させることができることは言うまでもない。
[System screen configuration]
FIG. 37 and FIG. 38 show an example of screen display in the operation check process of the system 10.
In the present system 10, when an operation confirmation process described below is executed, the display means serving as the operator's user interface, such as a liquid crystal display connected to the present system 10, is as shown in FIGS. A display screen is generated and displayed. Then, when the operator performs an input operation along the display screen, each step of the operation check 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 an initial screen of the system 10.
In this screen, as shown in FIG. 37, when “operation check execution” is selected according to the input operation of the operator according to the screen display, the screen transits to “1. system execution format selection screen”. If “execution record browsing” is selected, the process proceeds to “5. execution record browsing screen”.
[1. System execution format selection screen]
This screen is a screen that is transitioned to when “operation check execution” is selected in “0. system startup screen”, and displays the system execution format in the present system 10 so that it can be selected.
Specifically, on this screen, as shown in FIG. 37, an “automatic execution selection button” and a “manual execution selection button” are displayed so as to be selectable, and depending on the input operation of the operator, any execution format is displayed. Is selected and executed.

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

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

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

[5.実行記録閲覧画面]
この画面は、「0.システム起動画面」で「稼動確認実行」が選択された場合に遷移しり画面であり、本システム10の動作確認処理について、閲覧を希望する実行記録を選択可能に表示するものである。
具体的には、本画面では、図38に示すように、本システム10において過去に実行された動作確認の「日時」及び「実行回数」が複数表示され、例えばスライドバーで上下にスクロールできるようになっており、画面上には常に複数件(例えば5件程度)の実行履歴が表示さるようになっている。なお、実行履歴の記録としては、所定件数を保持しておくことができ、例えば最大1000件までの実行履歴の情報を保持させることができる。
そして、図38に示すように、操作者の入力操作に応じて、任意の実行履歴に対応するボタンがクリックされて選択されると、ボタンの中心が黒色に反転して、選択された実行履歴が特定されるようになる。なお、図38に示す場合には、選択可能な実行履歴は1行(1件)のみとなっているが、複数の実行履歴を選択できるように構成することも勿論可能である。
また、「戻る」ボタンが押下されれば、「0.システム起動画面」に戻るようになる。
[5. Execution record browsing screen]
This screen is a transition screen when “Operation Check Execution” is selected in “0. System Startup Screen”, and displays an execution record desired to be browsed in the operation check processing of the system 10 in a selectable manner. Is.
Specifically, as shown in FIG. 38, a plurality of “date and time” and “number of executions” of the operation confirmation executed in the past in the system 10 are displayed on this screen, and can be scrolled up and down with a slide bar, for example. A plurality of (for example, about five) execution histories are always displayed on the screen. As a record of execution history, a predetermined number of records can be stored, and for example, information of up to 1000 execution logs can be stored.
Then, as shown in FIG. 38, when a button corresponding to an arbitrary execution history is clicked and selected in accordance with an input operation by the operator, the center of the button is inverted to black, and the selected execution history is displayed. Will be identified. In the case shown in FIG. 38, the selectable execution history is only one line (one case), but it is of course possible to select a plurality of execution histories.
If the “Return” 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 of execution history and the number of executions selected in the previous screen (5. execution record browsing screen), and “representative pattern” and “ One of the “special functions” is displayed so as to be selectable.
Specifically, as shown in FIG. 38, for example, “January 1, 2018-12:00 first execution record” is displayed as information indicating the selected execution history. Either “confirmation of operation by searching for representative pattern” or “confirmation of operation by searching for special function” is displayed in a selectable manner.
When the button corresponding to either “representative pattern” or “special function” is clicked according to the input operation by the operator, the center of the button is highlighted in black, and the selected processing content is specified. Will come to be.
After that, if the “Browse” button is pressed, the screen shifts to the following “7. Report display screen”.
When the “return” button is pressed, the screen returns to “5. execution record browsing screen”.

[7.レポート表示画面]
この画面は、前画面(6.希望閲覧処理選択画面)で選択された実行記録・処理内容について、該当するレポートファイル(後述する図50参照)を表示するものである。
具体的な画面の表示例は省略するが、このレポートファイルが表示されることで、ユーザは、過去に実行された動作確認処理の内容・結果を閲覧することができるようになる。
そして、「戻る」ボタンが押下されることで、初期画面である「0.システム起動画面」に戻る。
[7. Report display screen]
This screen displays a report file (see FIG. 50 to be described later) corresponding to the execution recording / processing content selected on the previous screen (6. desired browsing processing selection screen).
Although a specific display example of the screen is omitted, by displaying this report file, the user can browse the contents and results of the operation check process executed in the past.
When the “return” 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, 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.
[Representative pattern: Creation / placement of SQL file]
FIG. 39 shows a flowchart of the “representative pattern: creation / placement of SQL file” process.
In this SQL file creation / arrangement process, as shown in FIG. 39, first, the progress display screen displayed on the display means (display or the like) of the present system 10 is initialized (step 3901) and input by the operator. 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 during manual execution” screen (see FIG. 37) (step 3903), and the process ends. In this case, as described above, in the SQL file, an arbitrary folder is selected and data is acquired in accordance with the input operation of the operator (see FIG. 37).
On the other hand, when the execution format is “automatic”, after the “SQL file creation / placement” box on the transition screen (see FIGS. 36 and 37) is colored in red or the like (step 3904), the SQL file is automatically created. Creation processing 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)、処理は終了となる。
In creating 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 for each SQL.
The extraction process is repeated until the continuous management number reaches “100,000” (step 3907), the continuous management number used for the file name is incremented by “1” (step 3908), and the file name is “mig_continuous”. "Management number.txt" is output to the storage location "INPUT-SQL file storage directory" (step 3909). When the continuous management number reaches "100,000" (step 3907), the progress of the progress display screen is advanced. (Step 3910), the process is terminated.

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

一方、「自動」の場合には、遷移画面(図36,図37参照)における「テストデータの投入・正解ファイルの作成/配置」ボックスが赤色などで着色されて処理実行中であることが示された後(ステップ4003)、テストデータの投入処理(ステップ4004)及び正解ファイルの作成/配置処理(ステップ4005〜4009)が実行される。
まず、テストデータの投入処理は、移行元データベース100のデータを逐次取り出して、移行先データベース200に入力・投入することにより行われる(ステップ4004)。
On the other hand, in the case of “automatic”, the “test data input / correct answer file creation / placement” box on the transition screen (see FIGS. 36 and 37) is colored in red to indicate that the process is being executed. (Step 4003), test data input processing (Step 4004) and correct file creation / arrangement processing (Steps 4005 to 4009) are executed.
First, the test data input process is performed by sequentially extracting data from 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 correct file creation / placement process, the SQL file created in the previous process (see FIG. 39) is 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 data is stored for the following items (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” or the like immediately after the open result file name.
Then, the correct mapping file is searched with the open file name, the correct file name is written next to the corresponding correct file name (step 4009), and the correct file creation and arrangement process is completed.
Thereafter, the progress of the progress display screen is advanced (step 4010), and the process proceeds to the next representative SQL determination process.

[代表パターン:代表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 flowcharts of the “representative pattern: determination of representative SQL” process.
In this representative SQL determination process, as shown in FIG. 41, first, an input is classified into four categories of “SELECT, UPDATE, INSERT, and 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 up to the final file (step 4101).
Then, the SQL classification sorting subroutine is called, and 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参照)を実行可能なプログラムを作成することにより実現される。以下、サブルーチンについては同様である。
Thereafter, as shown in FIGS. 42 and 43, the configuration diagram creation processing is executed in four systems for each syntax system of SELECT / UPDATE / INSERT / DELETE. By creating a structure diagram in such a four-fold manner, the processing speed can be increased.
First, the SQL file is read for each file, and the reading process is repeated until the final file (step 4201).
Next, a subroutine for creating an SQL structure diagram is called, and an SQL structure diagram is generated from the SQL file (step 4202: FIGS. 14 to 20).
The specific contents of the subroutine will be omitted, but the subroutine uses a known programming technique to create a program that can execute the above-described SQL structure diagram creation algorithm (see FIGS. 11 to 34). 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 performed up to the final file (step 4301).
Then, a subroutine for SQL structure diagram convergence is called to determine a representative SQL structure diagram (step 4302: FIGS. 21 to 25).
Further, the SQL file before being structured is referred to the SQL mapping file and stored in the representative SQL directory (step 4302).
Thereafter, the progress of the progress display screen is advanced (step 4303), and the process proceeds to the test processing by the next representative SQL.

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

そして、移行先データベース200についてのテストの結果が、移行元データベース100と一致するか否かが判定され(ステップ4403)、テスト結果が同じ場合には「進化」処理・テスト(図面左側のフロー)が実行され、テスト結果が異なる場合には「退化」処理・テスト(図面右側のフロー)が実行される。
まず、テスト結果が代表パターンポートファイルに出力され(ステップ4404)、その後、1行目の始めの空白出現までに「SELECT」が在るか否かが判定され(ステップ4405)、「SELECT」が在る場合には、進化/退化回数として「1」がセットされる(ステップ4406)。一方、「SELECT」がない場合には進化/退化処理は行われず、テスト処理は終了となる。
Then, it is determined whether or not the test result for the migration destination database 200 matches the migration source database 100 (step 4403). If the test results are the same, an “evolution” process / test (flow on the left side of the drawing) When the test results are different, “degeneration” processing / 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). Thereafter, it is determined whether or not “SELECT” exists before the first blank appears on the first line (step 4405). If there is, “1” is set as the number of times of evolution / degeneration (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, an evolution / degeneration subroutine is called to generate an evolution / degeneration SQL (step 4407: see FIGS. 26, 27, 31, and 32), and the evolved / degenerated SQL is stored in the representative SQL directory. The
Next, an automatic data amplification subroutine is called to automatically create data for the evolved / degenerated SQL, and correct data is automatically registered in the correct mapping file (step 4408: FIG. 28, FIG. 29, FIG. 33, FIG. 34).
After that, the evolution / degeneration test subroutine is called, and the evolved / degenerated SQL is issued to the migration destination database 200, and the correct mapping file is referred to and compared with the correct answer, so that the first evolution / degeneration is performed. A test is performed (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 with the migration source database 100 (step 4410). If the test results match, the “second” evolution / degeneration process / test (each drawing) When the flow on the left side is executed and 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 that of the migration source database 100, after being output to the representative pattern port file (step 4501), the progress of the progress display screen is advanced (step 450). 4502) The process ends.
On the other hand, if the evolution / degeneration test result matches the migration source database 100, after being output to the representative pattern port file (step 4503), "2" is set as the number of evolution / degeneration (step 4504).
Similarly to 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 test process are called. Is executed.

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

そして、3回目の進化/退化テストについては、テスト結果が移行元データベース100と一致するか否かが判定された後は(ステップ4608)、図47に示すように、テスト結果の如何を問わず、テスト結果が代表パターンポートファイルに出力された後(ステップ4701)、進捗表示画面の進捗が進められて(ステップ4702)処理は終了となる。
これは、進化/退化処理については、3回程度行えば、進化によるシステム拡張等の予測や、退化によるシステムの改善検出などは十分可能であるからである。
但し、以上のような進化/退化処理・テストを、4回以上や2回以下とすることも勿論可能であり、システムの規模やコスト等を考慮して、適宜任意の回数を実行することができる。
For the third evolution / degeneration test, after it is determined whether 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 on the progress display screen is advanced (step 4702), and the process is terminated.
This is because if evolution / degeneration processing is performed about three times, prediction of system expansion due to evolution, detection of system improvement due to degeneration, and the like are sufficiently possible.
However, of course, the evolution / degeneration process / test as described above can be performed 4 times or more and 2 times or less, and an arbitrary number of times can be appropriately executed in consideration of the scale and cost of the system. it 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: representative SQL determination” process.
In the special function representative SQL determination process, 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).
Thereafter, for each registered function, it is confirmed whether or not a corresponding function exists in each SQL (step 4802), and a 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). When the corresponding function does not exist, the special function test is ended.
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” 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 function is determined.
Thereafter, the progress of the progress display screen is advanced (step 4806), and the process ends.

[特殊関数:テスト実施]
図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, the SQL file is first read from the above-mentioned special function file storage directory and is repeatedly executed until the final file (step 4901).
Then, the current guarantee test subroutine for the special function is called to execute the test (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 and referring to the correct mapping file for the special function and comparing it with the correct answer.
Thereafter, it is determined whether or not the test result for the migration destination database 200 matches the migration source database 100 (step 4903). 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.
The report creation process of the test result of the representative pattern / special function is executed as shown in FIG. 53 (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 a representative pattern result report, the following contents can be generated and output (step 5001).
(1) Representative pattern report file (summary part)
In this summary part, the following results can be output.
-Count up the total number of test SQL and output the number.
・ Search the “Current Warranty Test” column of the representative pattern report file with “OK” and output the number of hits.
-Subtract the response time in the "INPUT-SQL file name" column and the "Current Guarantee Test" column of the representative pattern report file and output the number of negative values.
(2) Representative pattern report file (degeneration test part)
The following results can be output to this degeneration test portion.
-Count the number of SQLs in the third degeneration test of the representative pattern report file, and output the number of degenerations and 3
・ If not found, count the second SQL number and output the number of degenerates 2 and the number.
・ If not found, count the first SQL number and output the number of degenerates and 1 number.
・ If not found, outputs 0 and 0.
(3) Representative pattern report file (degeneration test part)
The following results can be output to this evolution test part.
-Count the number of SQL in the third evolution test of the representative pattern report file, and output the number of evolutions and 3.
-If not found, the second SQL number is counted and the evolution number 2 and the number are output.
・ If not found, count the first SQL number and output the evolution number 1 and number.
-If not found, output 0 evolution number and 0 number.

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

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

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

以上説明したように、本システム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, SQL that is operating at the migration source is replaced with a predetermined image to be patterned and evolved / degenerated. As a result, it is possible to perform efficient operation confirmation and system expansion / change tests.
As a result, safe / safe database migration can be realized, and for example, problems such as an unexpectedly prolonged project construction period and quality deterioration can be effectively prevented.

以上、本発明について好ましい実施形態を示して説明したが、本発明は、上述した実施形態に限定されるものではなく、本発明の範囲で種々の変更実施が可能であることは言うまでもない。
例えば、上述した実施形態では、本システム10が対象とするデータベース言語としてSQLを例にとって説明したが、本発明は、SQL以外のデータベース言語を対象とすることも勿論可能である。
すなわち、本発明は、データベースシステムに適用・発行されて、データベースに格納されたデータの出し入れに用いられるデータベース言語であれば、どのような言語に対しても適用することが可能である。
While the present invention has been described with reference to the 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, the description has been made taking SQL as an example of the database language targeted by the system 10, but the present invention can of course target database languages other than SQL.
In other words, the present invention can be applied to any language as long as it is applied / issued to a database system and used for taking in / out data stored in the database.

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

本発明は、例えば製品変更や機能の拡張・変更・縮減、ハードディスク資源の交換等の理由によってデータシステムの入れ替えや移行(マイグレーション)を支援するシステムとして好適に利用可能である。   The present invention can be suitably used as a system that supports data system replacement and 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 移行先データベース
DESCRIPTION OF SYMBOLS 10 Database migration support system 11 Database language input part 12 Structure drawing creation part 13 Convergence processing part 14 Evolution / degeneration processing part 15 Representative pattern generation part 16 Representative pattern test execution part 17 Special function test execution part 18 Report output part 100 Migration source database 200 Destination database

Claims (5)

データベースのマイグレーションを支援するシステムであって、
データベース管理システムに実装される、所定のデータベース言語で作成されたデータベース言語文を入力するデータベース言語入力部と、
前記データベース言語入力部で入力されたデータベース言語文の文字列を分解し、所定の画像に置換して、当該データベース言語の構造図を作成する構造図作成部とを備える
ことを特徴とするデータベースマイグレーション支援システム。
A system that supports database migration,
A database language input unit for inputting a database language sentence created in a predetermined database language, which is implemented in the database management system;
A database migration comprising: a structure diagram creating unit for decomposing a character string of a database language sentence input by the database language input unit and replacing the character string with a predetermined image to create a structure diagram of the database language Support system.
前記構造図作成部で作成された構造図に、同一構造が含まれているか否かを検索し、同一構造が含まれる場合には一方を破棄することにより、前記構造図を収れんする収れん処理部と、
前記収れん処理部で収れんされた構造図を元の文字列に置換して、最小数にパターン化された代表データベース言語文を生成する代表パターン生成部とを備える
ことを特徴とする請求項1に記載のデータベースマイグレーション支援システム。
Convergence processing unit for converging the structure diagram by searching whether or not the same structure is included in the structure diagram created by the structure diagram creating unit and discarding one if the same structure is included When,
A representative pattern generation unit that generates a representative database language sentence patterned to a minimum number by replacing the structural diagram converged by the convergence processing unit with an original character string. The database migration support system described.
前記代表パターン生成部で生成された代表データベース言語について、所定の正解データを用いたテストを実行する代表パターンテスト実行部と、
前記代表パターンテスト実行部のテスト結果を出力するレポート出力部とを備える
ことを特徴とする請求項2に記載のデータベースマイグレーション支援システム。
For the representative database language generated by the representative pattern generation unit, a representative pattern test execution unit that executes a test using predetermined correct answer data,
The database migration support system according to claim 2, further comprising a report output unit that outputs a test result of the representative pattern test execution unit.
前記収れん処理部で収れんされた構造図に、構造を追加して進化させ、又は構造を削除して退化させる進化/退化処理部を備え、
前記代表パターン生成部が、
前記進化/退化処理部で進化又は退化された構造図を文字列に置換して、前記代表データベース言語を生成する
ことを特徴とする請求項2又は3に記載のデータベースマイグレーション支援システム。
An evolution / degeneration processing unit that evolves by adding a structure to a structural diagram converged by the convergence processing unit or deleting a structure and degenerating,
The representative pattern generation unit
The database migration support system according to claim 2 or 3, wherein the representative database language is generated by replacing the structure 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. If the predetermined special function is included, a predetermined correct answer is obtained 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 true JP2019211805A (en) 2019-12-12
JP7055064B2 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)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
JP7346332B2 (en) 2020-03-04 2023-09-19 Qsol株式会社 Database migration method, database migration system, and database migration program

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05204985A (en) * 1991-10-16 1993-08-13 Internatl Business Mach Corp <Ibm> Generic bi-directional conversion method, system and process between sql inquiry and graphic expression inquiry
JPH08190479A (en) * 1995-01-05 1996-07-23 Mitsubishi Electric Corp Data base shift system
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05204985A (en) * 1991-10-16 1993-08-13 Internatl Business Mach Corp <Ibm> Generic bi-directional conversion method, system and process between sql inquiry and graphic expression inquiry
JPH08190479A (en) * 1995-01-05 1996-07-23 Mitsubishi Electric Corp Data base shift system
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

Cited By (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

Also Published As

Publication number Publication date
JP7055064B2 (en) 2022-04-15

Similar Documents

Publication Publication Date Title
US7107527B2 (en) Method and system for management of structured document and medium having processing program therefor
CN108762743B (en) Data table operation code generation method and device
US20160224594A1 (en) Schema Definition Tool
AU4098700A (en) Circuit arrangement for measuring the resistances of a pressure-sensitive resistance mat
US20210366055A1 (en) Systems and methods for generating accurate transaction data and manipulation
US20060130002A1 (en) Requirement defining method, method for developing software, and method for changing requirement word, and newly defining method
JP7055064B2 (en) Database migration support system and program
JPH0683598A (en) Job flow specification automatic generating method
Tateosian Python For ArcGIS
KR100877156B1 (en) System and method of access path analysis for dynamic sql before executed
US7707211B2 (en) Information management system and method
JP2008123432A (en) Software asset management system
JPH09212353A (en) Method and device for supporting reused design
JPH07141168A (en) Method for preparing hierarchical specification information
CN109636303B (en) Storage method and system for semi-automatically extracting and structuring document information
JP2006277127A (en) Method for comparing correction program
Thasal et al. Information retrieval and de-duplication for tourism recommender system
JP2009134755A (en) Information processor, control method thereof, information processing system, program, and computer readable recording medium
CN114115831A (en) Data processing method, device, equipment and storage medium
JP6775740B1 (en) Design support device, design support method and design support program
JP2015011685A (en) Business rule management system and business rule management method
JP2002109448A (en) Business form processing device, business form processing method and storage medium
JP2007128520A (en) Method and system for generating manual
CN109739835A (en) A kind of versions of data store method and device
JP3707133B2 (en) Document database management apparatus and document database management method

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