JPH08190479A - データベース移行方式 - Google Patents

データベース移行方式

Info

Publication number
JPH08190479A
JPH08190479A JP7000325A JP32595A JPH08190479A JP H08190479 A JPH08190479 A JP H08190479A JP 7000325 A JP7000325 A JP 7000325A JP 32595 A JP32595 A JP 32595A JP H08190479 A JPH08190479 A JP H08190479A
Authority
JP
Japan
Prior art keywords
record
byte pattern
field
database
candidate
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.)
Pending
Application number
JP7000325A
Other languages
English (en)
Inventor
Seiichi Kondo
誠一 近藤
Makoto Tokiwai
誠 常磐井
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP7000325A priority Critical patent/JPH08190479A/ja
Publication of JPH08190479A publication Critical patent/JPH08190479A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 (修正有) 【目的】 データ形式、文字コード、数字データ等が異
なるデータベース間のデータ移行システムにおいて、デ
ータ定義体等のレコードおよびフィールドの正確な情報
がない場合においてもそれらの候補の自動生成、決定の
ための支援、検証を行うデータベース移行方式を提供す
る。 【構成】 移行元データベース10とバイトパターン種
別の集合11を与えて、データベース内の各バイトの所
属集合の統計をとるステップと、それをもとにレコード
およびフィールド情報16の解析を行い、移行元データ
定義体と移行先データ定義体を生成するステップと、移
行元データ定義体、移行先データ定義体をもとに移行元
データベースのデータ形式、文字コード、数字データ等
を変換するステップを備えている。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は情報処理システム上に
構築されたデータベースシステムにおいて、その利用形
態の変更に伴い、データ形式、文字コード、数字表現形
式等が異なるデータベースへ移行する際のデータ変換技
術に関するものである。
【0002】
【従来の技術】従来、データ形式、文字コード、数字表
現などが異なるデータベース間においてデータを変換し
て移行しようとした場合、それぞれのレコード内のフィ
ールドのデータタイプに応じたデータ変換が必要であ
り、そのためには、フィールドの境界位置およびフィー
ルドのデータタイプを、ソースプログラム、データ定義
体から得るか、若しくは、それらが存在しない場合に
は、データのダンプ表現から技術者が判断して得る必要
があった。
【0003】たとえば、特開平3−242727号公報
に示された「計算機システムの新旧交換時における移行
システム」や、特開平4−40555号公報に示された
「移行資産難易度評価装置」では、ソースプログラム、
定義体、JCL、データといったユーザ資産をシステム
としてトータルに移行するシステムが示されている。
【0004】定義体にはレコード内のフィールド位置、
データタイプが記述されており、それに基づいて、変換
すべきデータの情報を得ることができる。
【0005】ソースプログラムには、例えばCOBOL
のように、すべてのフィールド情報を指定する必要はな
いため、必ずしも1箇所にすべての情報が存在している
わけではないが、ソースプログラムの集合を解析するこ
とによりその情報を自動的に得ることは不可能ではな
い。しかし、正確な情報を自動的に得ることは困難であ
る。
【0006】
【発明が解決しようとする課題】データ定義体を用いて
フィールド情報を得るためには、データ定義体とデータ
ベースの対応が確定している必要がある。近年のSQL
に代表される関係型データベースでは、データ定義体は
必須であり、実際のデータベースとの関連付けもなされ
ている。しかし、COBOLに代表されるファイルを基
本とするデータベースでは、データ定義体は必ずしも必
要ではなく、寧ろ存在しないことも多く、データ移行時
に利用することができないという問題点があった。
【0007】ソースプログラムには、フィールド情報が
定義されるが、必要フィールドの定義のみで十分であ
る。また、実際に格納されているフィールド境界とは関
係なく一括して読み込んだり、異なるデータタイプとし
て読み込むことも可能である。そのような場合は、関連
するソースプログラムをすべて解析しても、矛盾してい
たり、情報が損失していることがあり、完全なフィール
ド情報を取り出すことは非常に困難であるという問題点
があった。
【0008】また、アプリケーションプログラムによっ
ては、ソースプログラムの管理が十分になされていな
く、オブジェクトコードのみで運用されている場合も多
い。そのような場合は、経験の豊富な技術者が実際にデ
ータベースの内容を覗いて判断しなければならないとい
う問題点があった。
【0009】本発明はこのような問題点を解決するため
になされたもので、データ定義体が存在しない場合、ま
たはソースプログラムが存在していても十分な情報が得
られない場合、もしくはソースプログラムが存在しない
場合において、データ形式や文字コード、数字形式等が
異なるデータベースシステムへデータを移行する際にお
けるレコード、フィールドの境界およびそのデータタイ
プの候補提供、決定のための支援、および候補の検証を
可能としたデータベース移行方式を提供することを目的
とする。
【0010】
【課題を解決するための手段】第1の発明に係わるデー
タベース移行方式は、移行元データベースのバイトパタ
ーンを定義したバイトパターン集合定義体と、バイトパ
ターン集合定義体情報に基づいてデータベースのレコー
ド長候補を選定するレコード長候補選定手段と、候補選
定されたレコード長とバイトパターン集合定義体に基づ
いてレコード内におけるバイトパターンのレコード内オ
フセット位置ごとの出現頻度を算出する出現頻度算出手
段とを備えるようにしたものである。
【0011】第2の発明は、第1の発明におけるデータ
ベース移行方式において、レコード内におけるバイトパ
ターンのオフセット位置ごとの出現頻度情報の視覚表示
手段を備えるようにしたものである。
【0012】第3の発明に係わるデータベース移行方式
は、移行元データベースのバイトパターンを定義したバ
イトパターン集合定義体と、バイトパターン集合定義体
情報に基づいてデータベースのレコード長候補を選定す
るレコード長候補選定手段と、候補選定されたレコード
長ごとにバイトパターンを解析しレコードを構成するバ
イトパターン種別および該バイトパターンのレコード内
オフセット位置情報に基づいて同一バイトパターン構造
を有するレコードの出現頻度を集計するレコードパター
ン集計手段とを備えるようにしたものである。
【0013】第4の発明に係わるデータベース移行方式
は、移行元データベースのバイトパターンを定義したバ
イトパターン集合定義体と、バイトパターン集合定義体
情報に基づいてデータベースのレコード長候補を選定す
るレコード長候補選定手段と、候補選定されたレコード
長に基づいてレコード内オフセット位置ごとに所属する
バイトパターン集合からなる集合を算出し集合の変化点
に着目してレコードを構成するフィールド候補を出力す
るフィールド解析手段とを備えるようにしたものであ
る。
【0014】第5の発明は第4の発明に係わるデータベ
ース移行方式において、バイトパターン集合からなる集
合とデータタイプの対応付けを記載した推論規則定義体
を備え、推論規則定義体情報とフィールド解析手段が出
力したフィールド候補情報に基づいてフィールド境界お
よび該フィールドのデータタイプを推論するフィールド
推論手段を備えるようにしたものである。
【0015】第6の発明は第1乃至第5の発明に係わる
データベース移行方式において、移行元データベースの
レコードを構成するフィールド境界および各フィールド
のデータタイプ選定候補結果に基づいて移行元データベ
ースのバイトパターンを解析し、指定したバイトパター
ン種別のレコード内オフセット位置に関する整合性を確
認する検証手段を備えるようにしたものである。
【0016】第7の発明は第1乃至第6の発明に係わる
データベース移行方式において、移行先データベースの
文字コード等によりデータ長が伸縮する文字集合に対し
てはフィールド長補正を行なった後に移行先のフィール
ド長候補を決定するフィールド候補自動決定手段を備え
るようにしたものである。
【0017】
【作用】この発明におけるデータベース移行方式では、
バイトパターン集合定義体に基づいてファイル内のバイ
トパターンを解析しレコード長候補を選定し、候補指定
されたレコードに対してレコード内におけるバイトパタ
ーンのオフセット位置ごとの出現頻度を算出する。
【0018】また、この第2の発明は第1の発明におけ
るデータベース移行方式において、レコード内における
バイトパターンのオフセット位置ごとの出現頻度情報を
視覚表示する。
【0019】また、この第3の発明におけるデータベー
ス移行方式では、バイトパターン集合定義体に基づいて
データベースのレコード長候補を選定し、候補指定され
たレコード長ごとにバイトパターンを解析してレコード
を構成するバイトパターン種別および該バイトパターン
のレコード内オフセット位置に基づいて同一バイトパタ
ーンで構成されるレコードの出現頻度を集計する。
【0020】また、この第4の発明におけるデータベー
ス移行方式では、バイトパターン集合定義体情報に基づ
いてデータベースのレコード長候補を選定し、候補指定
されたレコード長に基づいてレコード内オフセット位置
ごとに所属するバイトパターン集合からなる集合を算出
し、集合の変化点に着目してレコードを構成するフィー
ルド候補を出力する。
【0021】また、この第5の発明は第4の発明におけ
るデータベース移行方式において、バイトパターン集合
からなる集合とデータタイプの対応付けを記載した推論
規則定義体情報とフィールド候補情報に基づいて、フィ
ールド境界および該フィールドのデータタイプを推論す
る。
【0022】また、この第6の発明は第1乃至第5の発
明におけるデータベース移行方式において、 移行元デ
ータベースのレコードを構成するフィールド境界および
各フィールドのデータタイプ候補に基づいて移行元デー
タベースのレコード単位にバイトパターンを解析し、候
補選択結果に対する正確さの検証を行なう。
【0023】また、この第7の発明は第1乃至第6の発
明におけるデータベース移行方式において、移行先デー
タベースの文字コード等によりデータ長が伸縮する文字
集合に対してフィールド長補正処理を行なった後に移行
先のフィールド長候補を決定する。
【0024】
【実施例】
実施例1.図1は、本発明の実施例全体の概略を示すブ
ロック図である。本発明の第1の実施例では移行元デー
タベース10とバイトパターン集合11を入力として、
その情報を解析してレコード長候補12を出力した後、
ステップ14−1にてフィールド情報決定のための頻度
情報を算出し、ステップ15−1においてシステムエン
ジニアが判断/解析を支援してフィールド情報を出力す
る。
【0025】以下に、第1の実施例を図2乃至図4のフ
ローチャートに基づいて詳しく説明する。図2におい
て、20は入力データのバイトパターン集合であり、取
り扱う言語のデータタイプ、数字データ形式、文字コー
ドによって規定されるものとする。たとえば、 0:英数字 1:半角カナ 2:十進数 3:パック形式十進数 4:スペース 5:漢字 というように与えることができる。対応するバイト集合
は、文字コード等に依存する。例えば、シフトJISコ
ードの場合、0:英数字は16進数(1バイト)で20
−7C、1:半角カナはal−fc、2:十進数は数字
に対応する文字コード(1バイト)と最小桁の符号ビッ
トを合わせて30−39,70−79、3:パック形式
十進数は1バイトを4ビットづつに分けた0から9まで
と符号の組み合わせになる。一般にあるバイトが与えら
れた場合、それが所属する集合は、必ずしも一つとは限
らない。
【0026】21は入力される移行元データベースを示
し、固定長形式に限り、データ部の長さはファイルの大
きさから得ることができるものと仮定する。ここでは、
実施例説明のために、以下に示すデータベースを想定す
る。便宜上、フィールドごとに区切って示すが、この時
点では、レコード長、フィールド長、データタイプは未
だ不明であるとする。X(5)は文字タイプで長さ5バ
イト、P9(3)はパック形式十進数3桁(2バイト)
を意味する。また10進数の上位は、0を詰めるものと
する。 部品ID 構成部品ID 個数 X(5) X(5) P9(3) ──────────────────── A0LC C9X 18 BA1C D05Z 223 C9X EA14A 9
【0027】ステップ22では、移行元のデータベース
ファイル21をバイトごとに読み込み、所属バイトパタ
ーン20を対応させ、所属バイトパターン集合列を出力
する。この所属バイトパターンの対応は移行元ファイル
全てに対して適用する必要はなく、時間、空間、候補の
正確度の要求のトレードオフによって適用範囲を適宜決
定すればよい。この例の場合、 0 1 2 3 4 5 6 7 8 9 10 11 {0},{0,2},{0},{0},{0,4},{0},{0,2},{0},{0,4},{0,4},{3},{3,5}, A O L C C 9 X 01 8f 12 13 14 15 16 17 18 19 20 21 22 23 {0},{0},{0,2},{0},{0,4},{0},{0,2},{0,2},{0},{0,4},{0,3},{0,3}, B A 1 C D 0 5 Z 22 3f 24 25 26 27 28 29 30 31 32 33 34 35 {0},{0,2},{0},{0,4},{0,4},{0},{0},{0,2},{0,2},{0},{3},{3,5} C 9 X Z A 1 4 A 00 9f という列が得られる。尚、上記文字列は移行元ファイル
21におけるバイトオフセット位置、所属バイトパター
ン集合列、入力データの順に示してある。
【0028】次に、ステップ24にてレコード長候補を
決定する。ステップ24のレコード長候補決定の詳細フ
ローチャートを図3に示す。まず、ステップ30で上記
入力データを所属バイトパターン集合(0:英数字、1:半
角カナ、2:十進数、3:パック形式十進数、4:スペース、
5:漢字)ごとに、その出現位置を展開する。上記の入力
データ例では、バイトパターンは下記で示されるオフセ
ット位置に出現していることが分かる。 ハ゛イトハ゜ターン オフセット 位置 0: 1,2,3,4,5,6,7,8,9,12,13,14,15,16,17,18,19,20,21,22,23, 24,25,26,27,28,29,30,31,32,33 1: 2: 1,6,14,18,19,25,31,32 3: 10,11,22,23,34,35 4: 4,8,9,16,21,27,28 5: 11,35
【0029】次に、全てのバイトパターンについてその
周期性を解析する。まず、ステップ31にてバイトパタ
ーンを1つ選択し、解析の処理であるステップ32〜3
3に入る。ステップ32では、出現バイト位置の間隔お
よびファイル長の約数より周期性を解析する。この例で
は、ファイル長が36であるためその約数である1,
2,3,4,6,9,12,18,36をレコード長候
補として、その間隔に適用する。例えば、3のパック形
式十進数では10に1を足すと11となり該当するが、
さらに1を足すと該当しなくなる。同様に10に2,
3,4,9を足してもその位置にはパック形式十進数は
なく該当しない。さらに、10に12を足すと22、ま
た22に12を足すと34となり、いずれもパック形式
十進数に該当しその周期性を抽出することができるの
で、結局12が候補となる。同様にして、ステップ33
にてバイトパターンごとに候補を登録する。ステップ3
4で次のバイトパターン集合に進み、全てのバイトパタ
ーンに対して処理が終了すると、ステップ35に進む。
【0030】ステップ35では、それぞれのバイトパタ
ーン集合から導かれた候補を解析する。それらの和集合
がレコード長候補となり得る。その中からの選択方針と
して、たとえば、最も候補として多くあげられたものの
うち最小のものを選択するという方式が考えられる。こ
の例の場合、英数字”0”,パック形式十進数”3”,
スペース”4”の4つのバイトパターンタイプで候補と
してあげられる12が選択される。以上のようにして、
図2のステップ24でレコード長候補が決定される。
【0031】ステップ24にて決定されるレコード長候
補25と所属バイトパターン集合列に基づいて、ステッ
プ26ではレコード単位に解析を行ない、レコード内オ
フセット位置ごとの出現頻度情報27を出力する。この
例の場合、 となる。次にステップ28で、出現頻度情報を視覚的に
表示して、フィールド情報決定を支援する。例えば、図
4に示すようにグラフ表現を行なうと、システムエンジ
ニアは次のような推論を行なうことができる。
【0032】(1)バイト位置1,2,6,7,8では
数字が出現しているが、100%ではないので、データ
タイプは数字タイプではない。 (2)バイト位置11は、文字データが100%ではな
いのでパック形式十進数である。また、その隣のバイト
位置10は文字データの可能性もあるが、バイト位置1
1の関係からパック形式十進数であると考えられる。 (3)バイト位置が3→4および8→9にかけてスペー
スの割合が増加しているので、4と5の間および9と1
0の間にフィールドの切れ目がある可能性が高い。
【0033】これらの判断材料から、システムエンジニ
アは次の候補を導き出すことができる。 レコード長:12バイト フィールド情報: 0-4 文字列タイプ 長さ 5バイト 5-9 文字列タイプ 長さ 5バイト 10-11 パック形式十進数 長さ 2バイト ただし、ここまでの経過では、パック形式十進数が2桁
か3桁かの判断はできないが、バイトパターン集合をパ
ック形式十進数の上位4ビットまで厳密に定義すれば判
断が可能となる。
【0034】図5は、図3にて示したレコード長候補決
定のためのフローチャートの詳細である。ステップ10
1の判定処理で、バイトパターン集合の各要素に対し、
それに所属するファイル内のバイトのオフセットを要素
とする集合を得ることができる。ここでは、その集合
を、Bi (i=1,2,3,…)、その要素をBij(j
=1,2,3,…)(Bi1<Bi2<Bi3<…)とする。
【0035】ステップ103では、変数iに初期値を与
え、ステップ104ではiに1を加える。
【0036】ステップ105は、Bi が有効な集合を示
すものであるか否かを検査する。Bi が有効でない場合
には、ステップ106から118までの処理が全てのB
i (i=1,2,3,…)に対して行なわれたことを示
し、ステップ119に進む。
【0037】Bi が有効である場合には、ステップ10
6に進む。ステップ106では、Ri のただ一つの要素
としてファイル長を設定する。Ri は、Bi に関するス
テップ107から118の処理によって得られるレコー
ド長候補の集合である。ファイルがただ一つのレコード
からなる可能性は常にあるので、ファイル長は常にレコ
ード長候補となり得る。
【0038】ステップ107では、変数であるjに初期
値を与え、ステップ108ではjに1を加える。
【0039】ステップ109では、Bijが有効な要素を
示すものであるか否かを検査する。Bijが有効でない場
合には、ステップ110から118までの処理が全ての
Bij(j=1,2,3…)に対して行なわれたことを示
し、次のBi を処理するためステップ104に進む。
【0040】Bijが有効である場合には、ステップ11
0でBij−Bi1の値を変数Rに設定する。Rはレコード
長の候補として検査される値である。
【0041】ステップ111では、Rがファイル長の約
数であるかどうかを検査する。Rがレコード長であるな
らば、Rはファイル長の約数である。Rがファイル長の
約数でない場合には、Rはレコード長ではあり得ないの
で、次のBijの処理を処理するため、ステップ108に
進む。
【0042】Rがファイル長の約数である場合には、R
はレコード長である可能性があり、ステップ112から
ステップ118の処理を行なう。
【0043】ここで、もしRがレコード長として有効で
あるならば、ファイル内でBi1からRの整数倍離れたバ
イトもBi の要素である可能性が高い。これを利用し、
Rの検査を行なう。
【0044】まずステップ112で変数であるXにBij
を設定する。次にステップ113ではXにRを加える。
したがって、Xは、Bi1からRの整数倍離れたバイトを
示す。また、ステップ112では変数であるNに0を設
定する。Nは、このようなバイトがBi の要素であった
数を表わす。
【0045】ステップ114では、Xをファイル長と比
較し、Xが有効な値であるかどうかを検査する。
【0046】Xが有効な値であった場合には、ステップ
115に進み、Xが示すバイトがBi の要素であるかど
うかを判定し、Bi の要素であった場合には、ステップ
116でNに1を加える。
【0047】ステップ114で、Xが有効な値でない場
合には、ステップ115,116の処理が可能な全ての
Xの値について検査が終了したと判断し、ステップ11
7に進む。
【0048】ステップ117では、ステップ118でR
をRi の要素として加えるかどうかを判定するために、
Nが1以上かどうかを判定する。1以上であった場合に
は、ステップ118でRをRi の要素として加える。そ
して、次のBijに関する判定を行なうために、ステップ
108に進む。
【0049】ステップ105で、全てのBi についてこ
の処理が終了したことが判断された場合には、ステップ
119で、全てのRi の要素の和集合の要素を、レコー
ド長の候補として保存する。
【0050】なお、この実施例ではステップ110でB
i1のみを用いてステップ111から118の処理を行な
っているが、Bi2以降の要素でもよく、また、複数の要
素を用いて同様の処理を行なってもよい。
【0051】また、この実施例ではステップ118でR
をRi に加えるかどうかを判断するために、ステップ1
17でNの値が1以上かどうかを判定しているが、この
値は必ずしも1である必要はない。また、Bi 毎に異な
る値であってもよい。
【0052】さらに、この実施例ではステップ118で
RのみをRi に記憶し、ステップ119でその和集合を
候補としているが、ステップ118でNをRと同様に記
憶し、ステップ119でその情報を保存してもよい。こ
れは、後のレコード長決定に役立てることができる。
【0053】この実施例によれば、バイトパターン集合
定義体に基づいてファイル内のバイトパターンを解析し
レコード長候補を選定し、候補指定されたレコードに対
してレコード内におけるバイトパターンのオフセット位
置ごとの出現頻度を算出するようにしたので、ファイル
データ定義体およびソースプログラムの情報が十分でな
い場合においても、データ形式の異なるデータベース間
でデータ移行を実現することできるという効果がある。
また、ファイル構造の解析結果をグラフ等を使用して視
覚的に表示するようにしたので、フィールド境界やデー
タタイプの評価及び決定支援をユーザが容易に行なうこ
とができるという効果がある。
【0054】実施例2.この発明の第2の実施例は、図
1の全体概要図のステップ12で候補選定されたレコー
ド長候補に対し、レコードを構成するフィールドパター
ンごとに同一パターン構造をとるレコードの出現回数を
解析(ステップ14ー2)して、システムエンジニアに
よるフィールド長、フィールドタイプ決定を支援するよ
うにしたものである。
【0055】以下に、第2の実施例を図6に示すフロー
チャートに基づいて説明する。まず、ステップ61にて
実施例1によって得られた所属バイトパターン集合列2
3をレコード長候補25ごとに区切って読み込む。この
ようにして得られるレコードのバイト位置ごとの所属バ
イトパターン集合列は、実施例1における例を用いると
以下のようになる。 0 1 2 3 4 5 6 7 8 9 10 11 {0},{0,2},{0},{0},{0,4},{0},{0,2},{0},{0,4},{0,4},{3},{3,5}, A O L C C 9 X 01 8f {0},{0},{0,2},{0},{0,4},{0},{0,2},{0,2},{0},{0,4},{0,3},{0,3}, B A 1 C D 0 5 Z 22 3f {0},{0,2},{0},{0,4},{0,4},{0},{0},{0,2},{0,2},{0},{3},{3,5} C 9 X Z A 1 4 A 00 9f ・ ・ ・ ここでは、3レコードの例を示したが、一般のデータベ
ースでは、膨大な量になり、それをすべて解析すること
は非常に困難である。ここでは、出現回数によってデー
タを整理して表示する。
【0056】まず、ステップ62で読み込んだパターン
ごとの出現回数を求める。すなわち、レコードのバイト
位置ごとの所属バイトパターン集合列を、同一のパター
ンごとに数え上げ、それぞれの出現回数をもとめる。次
にステップ63において、出現回数によってソートされ
た所属バイトパターン集合列を表示し、システムエンジ
ニアによるフィールド長およびフィールドタイプの決定
の支援を行なう(ステップ64)。
【0057】たとえば、 0 1 2 3 4 5 6 7 8 9 10 11 出現回数{ 0},{0,2},{0}, {0},{0,4},{0},{0,2}, {0}, {0,4},{0,4}, {3},{3,5}, 1250 {0},{0},{0,2}, {0},{0,4},{0},{0,2},{0,2}, {0},{0,4},{0,3}, {0,3}, 980 {0},{0,2},{0},{0,4},{0,4},{0}, {0},{0,2},{0,2}, {0}, {3}, {3,5} 20 ・ ・ ・ ・ ・ ・ {0},{0,2},{0,4},{0,4},{0,4},{0},{0},{0,2},{0,4},{0,4},{3}, {3,5}, 1 のように表示する。システムエンジニアはこの表示結果
に基づいて、典型的なパターンに注目し、また、逆に出
現回数1回のような特殊な場合にも着目して、例外条件
を見逃さないようにして、より正確な決定支援を行なう
ができる。
【0058】この実施例によれば、バイトパターン集合
定義体に基づいてデータベースのレコード長候補を選定
し、候補指定されたレコード長ごとにバイトパターンを
解析してレコードを構成するバイトパターン種別および
該バイトパターンのレコード内オフセット位置に基づい
て同一バイトパターンで構成されるレコードの出現頻度
を算出するようにしたので、フィールド長、フィールド
タイプの決定に際して正確な支援を行なうことができ
る。
【0059】実施例3.この発明の第3の実施例は、図
1の全体概要図のステップ12で候補選定されたレコー
ド長候補に対し、隣り合うバイトのタイプによりフィー
ルドの候補を解析し(ステップ14ー3)、システムエ
ンジニアによる判断、解析の支援を行なう(ステップ1
5ー1)方式と、推論規則に従って自動推論によって
(ステップ15ー2)フィールド情報を出力する方式を
示したものである。
【0060】以下に、この第3の実施例を図7に示すフ
ローチャートに基づいて説明する。まず、対象としてい
るシステムのデータタイプとバイトパターン集合の包含
関係によって、システムエンジニアがバイトパターン集
合を選択する(ステップ71)。実施例1,2の例にお
いて、6種類のバイトパターン集合のうち、文字、十進
数、パック形式十進数を考慮して、 0:英数字 1:半角カナ 2:十進数 3:パック形式十進数 の4種類を選択したものとする。
【0061】次に、レコード内オフセット位置ごとに所
属バイト集合の集合を集計する(ステップ72)。前述
の例では、 0 1 2 3 4 5 6 7 8 9 10 11 {0},{0,2},{0},{0},{0,4},{0},{0,2},{0},{0,4},{0,4},{3},{3,5}, A O L C C 9 X 01 8f {0},{0},{0,2},{0},{0,4},{0},{0,2},{0,2},{0},{0,4},{0,3},{0,3}, B A 1 C D 0 5 Z 22 3f {0},{0,2},{0},{0,4},{0,4},{0},{0},{0,2},{0,2},{0},{3},{3,5} C 9 X Z A 1 4 A 00 9f であったので、そのレコード内オフセット位置ごとの所
属バイト集合の集合は、以下のようになる。 0 1 2 3 4 5 6 {{0}},{{0},{0,2}},{{0},{0,2}},{{0}},{{0}},{{0}},{{0},{0,2}}, 7 8 9 10 11 {{0},{0,2}},{{0},{0,2}},{{0}},{{0,3},{3}},{0,3},{3}}
【0062】次に、オフセットの若い方から順にサーチ
して行き、集合の変わり目をフィールドの切れ目の候補
(ステップ73)とし、フィールド開始位置候補、フィ
ールド長候補、所属バイト集合から成る新たな集合を出
力する。上記の例では、 (0,1,{{0}}) (1,2,{{0},{0,2}}) (3,3,{{0}}) (6,3,{{0},{0,2}}) (9,1,{{0}}) (10,2,{{0,3},{3}}) が出力される。この情報をデータタイプに結びつける方
法には、システムエンジニアによる判断方法(ステップ
74)と、人工知能的に規則を定義して推論する方法
(ステップ75,76)が存在し、以下にこれらについ
て示す。
【0063】システムエンジニアはこの情報をもとに所
属バイト集合とデータタイプを結びつけてデータタイプ
を決定する。次の情報が判断材料となる。 (1){{0}}は文字タイプである。 (2){{0,2}}はすべてが十進数であるので数字タイプ
である。 (3){{0},{0,2}}はすべてが十進数字ではなく、数字
以外の文字を含むので文字タイプである。 (4){{0,3},{3}}} はすべてが文字ではなく、かつ、
全てがパック十進数なのでパック十進数である。 これによって、バイト位置が0から長さ10バイトが文
字タイプ、バイト位置10から長さ2バイトがパック十
進数であることが分かる。
【0064】自動推論する方法では、システムエンジニ
アが予めバイトパターン集合の集合とデータタイプを結
び付ける規則を与える。たとえば、次のように定義され
る。Xは文字タイプを、9は十進数タイプを、Pはパッ
ク形式十進数タイプを表すものとする。また矢印(→)
の左にバイトパターン集合の集合を右に対応するデータ
タイプを示す。上記の例では次のようになる。 {{0}} →X {{0,2}} →9 {{0},{0,2}} →X {{3}} →P {{0,3},{3}} →P
【0065】この規則とバイトパターン集合の集合の列
に基づいて、フィールド開始位置候補、フィールド長候
補、データタイプの候補の3つ組を出力する。上記の例
である (0,1,{{0}}) (1,2,{{0},{0,2}}) (3,3,{{0}}) (6,3,{{0},{0,2}}) (9,1,{{0}}) (10,2,{{0,3},{3}}) に、このルールを適用すると (0,1,X)(1,2,X)(3,3,X)(6,3,X)(9,1,X)(10,2,P) となる。これを、同一のデータタイプでまとめ挙げる
と、 (0,10,X)(10,2,P) となる。ここでは説明を判り易くするために方法を単純
化して示したので、システムエンジニアによる判断、及
び推論規則に基づいて自動的に推論する方法のいずれの
場合においても、連続した同じデータタイプのフィール
ドの切れ目をこれ以上詳細に分割して判断することはで
きない。しかしながら、空白の出現頻度や半角カナ等の
情報を付加することで推論規則を更に詳細化すれば、フ
ィールドの切れ目認識等に関してさらに処理を高精度化
することができる。
【0066】図8は図7のステップ73に対応し、オフ
セットの若い方から順にサーチして行き、集合の変わり
目をフィールドの切れ目の候補とする処理ステップの詳
細を示すフローチャートである。ステップ126では、
変数であるバイトポインタに1を代入する。このバイト
ポインタは、レコード内のバイトオフセットを表す。
【0067】ステップ127では、変数である現在フィ
ールド開始位置、現在フィールド長、現在フィールド所
属集合に値を代入する。
【0068】現在フィールド所属集合に代入する値は、
現在バイトの所属集合である。現在バイトの所属集合と
は、フィールド内の全てのレコードで、バイトポインタ
が示す位置のバイトが所属するバイトパターン集合の一
つ以上の組である。これは、ステップ120で得た情報
から得ることができる。
【0069】ステップ128では、バイトポインタに1
を加える。ステップ129では、バイトポインタとレコ
ード長とを比較し、プログラムを終了するかどうかを判
定する。
【0070】ステップ130では、現在フィールド所属
集合と、現在バイトの所属集合とを比較する。もし、こ
れらの所属集合が同じ場合は、現在判定中のフィールド
に、バイトポインタが示すバイトが含まれると判断し、
ステップ131で現在フィールド長に1を加え、次のバ
イトの判定に進むため、ステップ128に戻る。
【0071】もし、これらの所属集合が異なる場合は、
現在判定中のフィールドには、バイトポインタが示すバ
イトは含まれないと判断し、ステップ132で、現在フ
ィールド開始位置、現在フィールド長を保存する。そし
て、新たなフィールド判定を行なうため、ステップ12
7に戻る。
【0072】ステップ129において、バイトポインタ
がレコード長より大きくなった場合には、ステップ13
3に進む。ステップ133では、最後に判定したフィー
ルドの情報を保存するため、現在フィールド開始位置、
現在フィールド長を保存する。
【0073】上述の例では、ステップ132、ステップ
133で現在フィールド開始位置と現在フィールド長の
みを保存しているが、後の処理に使用するために現在フ
ィールド所属集合をも保存してもよい。
【0074】この実施例によれば、バイトパターン集合
定義体情報に基づいてデータベースのレコード長候補を
選定し、候補指定されたレコード長に対しレコード内オ
フセット位置ごとに所属するバイトパターン集合からな
る新たな集合を算出し、これら集合の変化点に着目して
レコードを構成するフィールドの候補を出力するように
したので、妥当性ある分析結果を得ることができる。
【0075】実施例4.この発明の第4の実施例では、
図1のステップ16に示すように既に実施例1〜3で求
められたレコード長およびフィールド情報(位置、長
さ、データタイプ)に関する候補選定結果を、対象とす
る移行元のデータベースに対して適用することによっ
て、候補選定結果の正確さを検証している。
【0076】以下に、この実施例を図9に示すフローチ
ャートに基づいて説明する。ここでは、対象とするデー
タベースのレコード長およびフィールド情報(位置、長
さ、データタイプ)の候補が、実施例1〜3により求め
られているものとする。まず、ステップ91において、
これらのレコード長およびフィールド情報の候補とバイ
トパターン集合を与える。この段階では、データタイプ
の候補が決定しているのでの、バイトパターン集合はデ
ータタイプに則して決定されたものが与えられるものと
する。
【0077】実施例1〜3では、フィールドの区切りを
明確にするために、半角カナやスペースもバイトパター
ン集合としたが、ここでは、データタイプに則した集合
を利用する。即ち、本来の目的であるデータ移行の観点
からデータタイプごとにバイトパターン集合を定義す
る。一般に、レコードを構成しているフィールドの切れ
目を分析、判断する際に用いられるバイトパターン集合
よりも大きな括りとなる。例えば、 0:文字 1 十進数 2:パック形式十進数 3:バイナリ というように与えることができる。対応するバイト集合
は、文字コードなどに依存する。たとえば、シフトJI
Sコードの場合、0:文字は20−7C,al−fc,
81−ef,40−fc、1:十進数は30−39,7
0−79,のようになる。
【0078】次にステップ92で、与えられたレコード
長ごとにレコードを順に読み込み、バイトパターン集合
をもとに移行元データベースのデータタイプを検証す
る。すなわち、読み込んだレコードについて1バイトご
とに与えられたフィールドとデータタイプにそのバイト
データが合致するか否かを判断する。フィールド情報と
矛盾が生じたレコードはそのバイトパターン集合列とと
もに保存する。移行元データベース内のデータが終了す
るまで、この操作を繰り返す。
【0079】次にステップ93で、矛盾したレコードが
保存されているかどうかを判定する。矛盾したレコード
が存在しない場合には、与えられたレコード長およびフ
ィールド情報候補が正しいことが検証される。他方、矛
盾したレコードが存在する場合は、ステップ95でその
レコードとバイトパターン集合列を表示し、システムエ
ンジニアによる修正支援を求める。システムエンジニア
はレコード長、フィールド情報を修正して、ステップ9
2に戻る。
【0080】この実施例によれば、候補選定されたレコ
ード長およびフィールド情報(位置、長さ、データタイ
プ)結果を、対象となる移行元のデータベースに対して
適用することにより候補選定結果の正確さを検証するよ
うにしたので、移行処理の精度を向上させることができ
るという効果がある。
【0081】実施例5.この発明の第5の実施例は、図
1のステップ17に示すように既に実施例1〜4によっ
て得られたレコード長、フィールド情報をもとにして、
データベースを新しい環境に移行する場合に必要となる
移行先のレコード長、フィールド情報の決定を支援する
方式を付加したものである。
【0082】以下に、この第5の実施例について、図1
0のフローチャートに基づいて説明する。移行先データ
ベースの文字コードや数字データ等の情報からデータ長
が変わるバイトパターンを抽出して、その伸縮の長さに
応じてバイトパターン集合を決定する。例えば、移行元
データベースの文字コードがシフトJISで移行先デー
タベースの文字コードがEUCの場合、半角カナ文字を
表現するのに1文字あたり1バイトから1文字あたり2
バイト必要となり、同じフィールド長とするとデータ欠
けが生じる。たとえば、移行元データベースにおいて
“データベース”というデータが半角カナ6文字シフト
JISでフィールド長8バイトの領域に格納されていた
と仮定する。シフトJISでは、このデータ(“データ
ベース”)は6バイトで表現することができるので、8
バイトの領域に十分格納されていた。ここで、文字コー
ドがEUCである環境にデータベースを移行することを
想定すると、半角カナの“データベース”というデータ
を格納するためには12バイトの領域が必要となる。従
って、移行先データベースにおいてはフィールド長を拡
張する必要がある。
【0083】バイトパターン集合20、レコード長情報
15、フィールド情報16を入力し、ステップ1001
〜1002で移行元データベース21内容をレコードご
とに読み込み、フィールドごとに所属バイトパターン集
合列を求め、バイトパターンによる伸縮を考慮して、移
行先における必要フィールド長を求める。次に、ステッ
プ1003でフィールドごとに保存されている最大必要
長と比較して、最大より大きい場合は、保存値を更新す
る。
【0084】移行元データファイルが終了するまで以上
の操作を繰り返し、ファイル終了時に、フィールドごと
の最大必要長をシステムエンジニアに表示し、移行先デ
ータベースのレコード長および、フィールド情報(位
置、長さ、データタイプ)の決定を支援する(ステップ
1005)。
【0085】この実施例によれば、移行先データベース
の文字コード等によりデータ長が伸縮する文字集合に対
してはフィールド長補正を行なった後に移行先のフィー
ルド長候補を決定するようにしたので、移行元と移行先
間のファイル間においてフィールド長に差が生じるよう
な場合においても、情報損失を生じさせることなく整合
性ある移行処理を実現できる。
【0086】
【発明の効果】この発明によれば、バイトパターン集合
定義体に基づいてファイル内のバイトパターンを解析し
てレコード長候補を選定し、候補指定されたレコードに
対してレコード内におけるバイトパターンのオフセット
位置ごとの出現頻度を算出するようにしたので、ファイ
ルデータ定義体およびソースプログラム情報が十分でな
い場合においても、データ形式の異なるデータベース間
でデータ移行を実現することできるという効果がある。
【0087】また、ファイル構造の解析結果をグラフ等
を使用して視覚的に表示するようにしたので、フィール
ド境界やデータタイプの評価及び決定支援をユーザが容
易に行なうことができるという効果がある。
【0088】また、バイトパターン集合定義体に基づい
てデータベースのレコード長候補を選定し、候補指定さ
れたレコード長ごとにバイトパターンを解析してレコー
ドを構成するバイトパターン種別および該バイトパター
ンのレコード内オフセット位置に基づいて同一バイトパ
ターンで構成されるレコードの出現頻度を算出するよう
にしたので、フィールド長、フィールドタイプの決定に
際して、正確な支援が実現できるという効果がある。
【0089】また、バイトパターン集合定義体情報に基
づいてデータベースのレコード長候補を選定し、候補指
定されたレコード長に基づいてレコード内オフセット位
置ごとに所属するバイトパターン集合からなる新たな集
合を算出し、集合の変化点に着目してレコードを構成す
るフィールドの候補を出力するようにしたので、妥当性
ある分析結果を得ることができるという効果がある。
【0090】また、候補選定されたレコード長およびフ
ィールド情報(位置、長さ、データタイプ)結果を、対
象となる移行元のデータベースに対して適用することに
より候補選定結果の正確さを検証するようにしたので、
移行処理の精度を向上させることができるという効果が
ある。
【0091】また、移行先データベースの文字コード等
によりデータ長が伸縮する文字集合に対してはフィール
ド長補正を行なった後に移行先のフィールド長候補を決
定するようにしたので、移行元と移行先間のファイル間
においてフィールド長に差が生じるような場合において
も、情報損失を生じさせることなく整合性ある移行処理
を実現できるという効果がある。
【図面の簡単な説明】
【図1】 本発明の概要を記載したブロック図。
【図2】 本発明の第1の実施例を示すフローチャー
ト。
【図3】 本発明の第1の実施例において、所属バイト
パターン集合列の規則性をもとにレコード長を求めるス
テップを示したフローチャート。
【図4】 本発明の第1の実施例において、フィールド
情報決定のためにレコードのバイトごとの出現頻度を示
したグラフ例。
【図5】 本発明の第1の実施例において、所属バイト
パターン集合列の規則性をもとにレコード長を求めるス
テップの詳細を示すフローチャート。
【図6】 本発明の第2の実施例を示すフローチャー
ト。
【図7】 本発明の第3の実施例を示すフローチャー
ト。
【図8】 本発明の第3の実施例において、フィールド
の切れ目を自動推論するステップの詳細を示すフローチ
ャート。
【図9】 本発明の第4の実施例を示すフローチャー
ト。
【図10】 本発明の第5の実施例を示すフローチャー
ト。
【符号の説明】
10、21 移行元データベース(入力) 11、20 バイトパターン集合(入力) 15 レコード長(出力) 16 フィールド情報(位置、長さ、データタイプ)
(出力) 23 所属バイトパターン集合列 25 レコード長候補 27 出現頻度情報 75 パターン変換規則テーブル

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 データ形式の異なるデータベース間のデ
    ータ移行システムにおいて、 移行元データベースのバイトパターンを定義したバイト
    パターン集合定義体と、 前記バイトパターン集合定義体情報に基づいてデータベ
    ースのレコード長候補を選定するレコード長候補選定手
    段と、 候補選定されたレコード長と前記バイトパターン集合定
    義体に基づいてレコード内におけるバイトパターンのレ
    コード内オフセット位置ごとの出現頻度を算出する出現
    頻度算出手段とを備えたことを特徴とするデータベース
    移行方式。
  2. 【請求項2】 レコード内におけるバイトパターンのオ
    フセット位置ごとの出現頻度情報の視覚表示手段を備え
    たことを特徴とする請求項第1項記載のデータベース移
    行方式。
  3. 【請求項3】 データ形式の異なるデータベース間のデ
    ータ移行システムにおいて、 移行元データベースのバイトパターンを定義したバイト
    パターン集合定義体と、 前記バイトパターン集合定義体情報に基づいてデータベ
    ースのレコード長候補を選定するレコード長候補選定手
    段と、 候補選定されたレコード長ごとにバイトパターンを解析
    しレコードを構成するバイトパターン種別および該バイ
    トパターンのレコード内オフセット位置情報に基づいて
    同一バイトパターン構造を有するレコードの出現頻度を
    集計するレコードパターン集計手段と、を備えたことを
    特徴とするデータベース移行方式。
  4. 【請求項4】 データ形式の異なるデータベース間のデ
    ータ移行システムにおいて、 移行元データベースのバイトパターンを定義したバイト
    パターン集合定義体と、 前記バイトパターン集合定義体情報に基づいてデータベ
    ースのレコード長候補を選定するレコード長候補選定手
    段と、 候補選定されたレコード長に基づいてレコード内オフセ
    ット位置ごとに所属するバイトパターン集合からなる集
    合を算出し集合の変化点に着目してレコードを構成する
    フィールド候補を出力するフィールド解析手段と、を備
    えたことを特徴とするデータベース移行方式。
  5. 【請求項5】 前記バイトパターン集合からなる集合と
    データタイプの対応付けを記載した推論規則定義体を備
    え、 前記推論規則定義体情報と前記フィールド解析手段が出
    力したフィールド候補情報に基づいてフィールド境界お
    よび該フィールドのデータタイプを推論するフィールド
    推論手段を備えたことを特徴とする請求項第4項記載の
    データベース移行方式。
  6. 【請求項6】 移行元データベースのレコードを構成す
    るフィールド境界および各フィールドのデータタイプ選
    定候補結果に基づいて移行元データベースのバイトパタ
    ーンを解析し、指定したバイトパターン種別のレコード
    内オフセット位置に関する整合性を確認する検証手段、
    を備えることにより候補選択結果に対する正確さの検証
    を可能にしたことを特徴とする請求項第1項乃至5項い
    づれかに記載のデータベース移行方式。
  7. 【請求項7】 移行先データベースの文字コード等によ
    りデータ長が伸縮する文字集合に対してはフィールド長
    補正を行なった後に移行先のフィールド長候補を決定す
    るフィールド候補自動決定手段、を備えたことを特徴と
    する請求項第1項乃至第6項いづれかに記載のデータベ
    ース移行方式。
JP7000325A 1995-01-05 1995-01-05 データベース移行方式 Pending JPH08190479A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7000325A JPH08190479A (ja) 1995-01-05 1995-01-05 データベース移行方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7000325A JPH08190479A (ja) 1995-01-05 1995-01-05 データベース移行方式

Publications (1)

Publication Number Publication Date
JPH08190479A true JPH08190479A (ja) 1996-07-23

Family

ID=11470761

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7000325A Pending JPH08190479A (ja) 1995-01-05 1995-01-05 データベース移行方式

Country Status (1)

Country Link
JP (1) JPH08190479A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008226010A (ja) * 2007-03-14 2008-09-25 Hitachi Ltd コンパイル方法及びコンパイル装置
JP2011070369A (ja) * 2009-09-25 2011-04-07 Toshiba Corp データベース統合装置およびデータベース統合方法
US8078647B2 (en) 2007-09-27 2011-12-13 Nec (China) Co., Ltd. Ontology data import/export method and apparatus
JP2013191062A (ja) * 2012-03-14 2013-09-26 Fujitsu Ltd データ解析装置、データ分割装置、データ解析方法、データ分割方法、データ解析プログラム、及びデータ分割プログラム
JP2016191977A (ja) * 2015-03-30 2016-11-10 新日鉄住金ソリューションズ株式会社 情報処理装置、情報処理方法及びプログラム
JP2019211805A (ja) * 2018-05-31 2019-12-12 株式会社野村総合研究所 データベースマイグレーション支援システム及びプログラム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008226010A (ja) * 2007-03-14 2008-09-25 Hitachi Ltd コンパイル方法及びコンパイル装置
US8078647B2 (en) 2007-09-27 2011-12-13 Nec (China) Co., Ltd. Ontology data import/export method and apparatus
JP2011070369A (ja) * 2009-09-25 2011-04-07 Toshiba Corp データベース統合装置およびデータベース統合方法
JP2013191062A (ja) * 2012-03-14 2013-09-26 Fujitsu Ltd データ解析装置、データ分割装置、データ解析方法、データ分割方法、データ解析プログラム、及びデータ分割プログラム
JP2016191977A (ja) * 2015-03-30 2016-11-10 新日鉄住金ソリューションズ株式会社 情報処理装置、情報処理方法及びプログラム
JP2019211805A (ja) * 2018-05-31 2019-12-12 株式会社野村総合研究所 データベースマイグレーション支援システム及びプログラム

Similar Documents

Publication Publication Date Title
US6823335B2 (en) Information search apparatus and method, and storage medium
JPH11212980A (ja) インデクス作成方法および検索方法
JP6160259B2 (ja) 文字列探索方法、文字列探索装置および文字列探索プログラム
KR960706138A (ko) 관계형 데이타베이스 스키마를 생성하기 위한 의미 객체 모델링 시스템(semantic object modeling system for creating relational database schemas)
WO2018159042A1 (ja) 分析ソフトウェア管理システム及び分析ソフトウェア管理方法
JPH08190479A (ja) データベース移行方式
JPH0869476A (ja) 検索システム
JPH11306203A (ja) インデックス作成方法及び文書検索処理方法
JP2002202973A (ja) 構造化文書管理装置
JP3709890B2 (ja) 文字列検索装置
US20060287977A1 (en) Method of processing data for a system model
JP5487078B2 (ja) ソフトウェア資産整理方法及び装置
JP2702986B2 (ja) プログラム内データ置換方法
JP2722684B2 (ja) ファイルシステムの検索装置
JP3271452B2 (ja) Cadのレイヤ自動設定方法
JPH11232149A (ja) ファイル比較処理方法,装置およびファイルの比較処理プログラムを記憶した媒体
JP3224917B2 (ja) 名標辞書作成装置
JP2001134596A (ja) 構造化文書管理装置および構造化文書検索方法
JP2560608B2 (ja) マイクロプログラムチェックシステム
JPH0750480B2 (ja) 文章データ編集装置
JP3216660B2 (ja) データ型及びデータ定数展開方式
JPH0535483A (ja) 類似性判定方法
JPH0588896A (ja) 操業知識の学習方法
JPH11312166A (ja) データベース管理装置
JPH0358146A (ja) 異機種コンピュータシステム間ファイル交換方式