JPH09231116A - データベース言語再発行装置 - Google Patents

データベース言語再発行装置

Info

Publication number
JPH09231116A
JPH09231116A JP8039656A JP3965696A JPH09231116A JP H09231116 A JPH09231116 A JP H09231116A JP 8039656 A JP8039656 A JP 8039656A JP 3965696 A JP3965696 A JP 3965696A JP H09231116 A JPH09231116 A JP H09231116A
Authority
JP
Japan
Prior art keywords
name
database
table name
database language
history
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.)
Withdrawn
Application number
JP8039656A
Other languages
English (en)
Inventor
Hiroyuki Koyama
弘幸 小山
Kiyoshi Abe
清 阿部
Hideo Ichikawa
英雄 市川
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP8039656A priority Critical patent/JPH09231116A/ja
Publication of JPH09231116A publication Critical patent/JPH09231116A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【課題】 データベースの表名又は表の列名を変更した
場合でも既存のデータベース言語発行装置の使用を可能
とするデータベース言語再発行装置を提供することを課
題とする。 【解決手段】 本発明のデータベース言語再発行装置
は、データベース言語発行装置により発行されたデータ
ベース言語から前記最新の表名、及び/又は、前記最新
の列名を抽出し、これらの表名、及び/又は、列名に対
応する最新の表名、及び/又は、最新の列名を前記履歴
管理テーブルから検索し、これらの最新の表名、及び/
又は、最新の列名を含むデータベース言語を再発行す
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、データベース言語
再発行装置に関する。さらに詳細には、データベースの
表名及び/又はこの表の列名を含むデータベース言語発
行装置から前記データベース言語を受け取るとともに、
新たなデータベース言語を再発行するデータベース言語
再発行装置に関する。
【0002】
【従来の技術】従来のデータベースシステムには、デー
タベースとは別個にデータベースの表名とこの表を形成
する列名とを含むデータベース言語、例えばSQL(St
ructured Query Language)文を発行するデータベース
言語発行装置を有し、このデータベース言語発行装置に
より発行された言語によりデータベース内のデータが操
作等されるものが知られている。
【0003】通常、このデータベース言語発行装置に
は、SQL文等のデータベース言語を発行するためのア
プリケーションプログラムが記憶されている。そして、
このアプリケーションプログラムには、ソースプログラ
ムの段階からデータベース言語が直接組み込まれてい
る。
【0004】例えば、データベース言語として例えばS
QL文を用いる場合におけるソースプログラムには、デ
ータ検索を行うSQL文が「SELECT 従業員番号 FROM
従業員テーフ゛ル WHERE 職制コート゛="0000"」のように記入さ
れている。ここで「従業員テーフ゛ル」はデータベースの表
名であり、「従業員番号」や「職制コート゛」はこの表の列
名である。
【0005】
【発明が解決しようとする課題】ところが、データベー
ス管理者が必要に応じてデータベースの表名または列名
を変更する場合がある。例えば表名「従業員テーフ゛ル」を
「従業員マスター」と変更したとする。しかし、データベー
ス内の表名等が変更された場合であっても、データベー
ス言語発行装置は別個に設けられているため、その内部
に記憶されたアプリケーションプログラムに含まれる表
名や列名等は変更前のままである。
【0006】従って、このデータベース言語発行装置
は、例えばデータ検索のSQL文を発行する旨の命令を
受けると、アプリケーションプログラムの実行により変
更前の表名等が組み込まれたSQL文を発行する。そし
て、このSQL文によりデータベース内においてデータ
検索等が行われる。だが、データベース内には既に表名
「従業員テーフ゛ル」は存在しないため、このことを理由に
データ検索はエラーとなる。
【0007】このような検索エラー等を解消するため、
データベースの表名または列名を変更した場合には、デ
ータベースの管理者は、データベース言語発行装置に記
憶されるアプリケーションプログラムの開発者にデータ
ベースの表名等を変更した旨を連絡する。そして、連絡
を受けたアプリケーションプログラムの開発者は、アプ
リケーションプログラムを変更するために、ソースプロ
グラム内のSQL文の表名または列名を直接変更し、コ
ンパイルし直さなければならなかった。
【0008】すなわち、SQL文等のデータベース言語
を含むアプリケーションプログラムを記憶したデータベ
ース言語発行装置を用いるデータベースシステムは、デ
ータベース管理者が既存のデータベースの表名または列
名を変更した場合、データベース言語発行装置に記憶し
たアプリケーションプログラムも合わせて変更しなけれ
ば正常に使用することができないという第1の問題点が
あった。
【0009】また、大規模なデータベースシステムにな
ると、データベース言語発行装置には膨大なアプリケー
ションプログラム群が存在することとなる。このような
場合に、データベース管理者によりデータベースの表名
または列名が変更されると、データベース言語発行装置
のアプリケーションプログラム開発者は、アプリケーシ
ョンプログラムの変更処理において、全てのソースプロ
グラム内のSQL文のチェックを行い変更処理を行わな
ければならず、さらにデバッグ処理にも多大な時間を要
するという第2の問題点があった。
【0010】本発明は、前記問題点に鑑みなされたもの
であり、データベース管理者がデータベースの表名また
はこの表の列名を変更した場合であっても、変更前の表
名またはこの表の列名を含むアプリケーションプログラ
ムを記憶したデータベース言語発行装置の使用を可能と
するデータベース言語再発行装置を提供することを第1
の課題とする。
【0011】また、データベースの表名または列名の変
更に伴い行われるデータベース言語発行装置に記憶した
アプリケーションプログラムの変更処理及びデバッグ処
理等の作業の効率向上を図ることを可能とするデータベ
ース言語再発行装置を提供することを第2の課題とす
る。
【0012】
【課題を解決するための手段】本発明は、複数の列から
形成される表を有するデータベースに対して、前記デー
タベースの表名及び/又はこの表の列名を含むデータベ
ース言語を発行するデータベース言語発行装置から前記
データベース言語を受け取って、新たなデータベース言
語を再発行するデータベース言語再発行装置であり、前
述した技術的課題を解決するために以下のように構成さ
れている。
【0013】すなわち、本発明は、少なくとも前記デー
タベースの最新の表名、及び/又は、この表の最新の列
名を含むデータベース更新履歴情報が格納される履歴管
理テーブルと、前記データベース言語発行装置により発
行されたデータベース言語から前記最新の表名、及び/
又は、前記最新の列名を抽出する抽出手段と、前記抽出
手段により抽出された前記表名、及び/又は、前記列名
に対応する前記最新の表名、及び/又は、前記最新の列
名を前記履歴管理テーブルから検出する履歴検索手段
と、前記履歴検索手段により検出された前記最新の表
名、及び/又は、前記最新の列名を含むデータベース言
語を再発行する言語再発行手段と、を備える(請求項1
に対応)。
【0014】以下、この発明の構成要素を図1に示す原
理図を用いて説明する。 (装置概要)図1には、本発明のデータベース言語再発
行装置が用いられているデータベースシステムの概要が
示されている。このシステムは、データベース言語発行
装置5と本発明のデータベース言語再発行装置1とデー
タベース7とからなる。
【0015】そして、本発明のデータベース言語再発行
装置1は、抽出手段20と、履歴検索手段30と履歴管
理テーブル2とデータベース言語再発行手段60とを備
えている。さらに、履歴登録手段40とソース管理テー
ブル3とコメント処理手段50とが付加されている。
【0016】(データベース言語発行装置)データベー
ス言語発行装置5は、データベースシステムを利用する
ための言語を発行するものである。このデータベース言
語発行装置5にはアプリケーションプログラムが記憶さ
れている。このアプリケーションプログラムには、デー
タベースの表名及び/または列名が含まれるデータベー
ス言語が組み込まれている。
【0017】そして、このデータベース言語発行装置5
は、例えば、データ検索用のキーが入力されると、アプ
リケーションプログラムを実行することによりデータベ
ース言語を発行するようにされている。
【0018】本発明では、データベース言語として例え
ばSQL文を用いるのが好ましいが、他のデータベース
言語を用いても良い。また、データベース言語発行装置
5として従来用いられているいずれのものを用いても良
い。
【0019】なお、このデータベース言語発行装置5に
より発行されたデータベース言語は、本発明のデータベ
ース言語再発行装置1に送られるようにされている。 (抽出手段)抽出手段20は、データベース言語発行装
置5により発行されたデータベース言語を受け取り、こ
のデータベース言語がデータベース7の表名または列名
のうち少なくとも一方を含む場合はその表名または列名
を抽出するようにされている。
【0020】この抽出手段20により抽出されたデータ
ベース7の表名または列名のうち少なくとも一方は、履
歴検索手段30に送られるようにされている。 (履歴検索手段)履歴検索手段30は、抽出手段20に
より抽出されたデータベース7の表名及び/又は列名に
対応する最新の表名及び/又は最新の列名を履歴管理テ
ーブル2から検出するようにされている。
【0021】このとき、検出された最新の表名及び/又
は最新の列名が、抽出された表名及び/又は列名と異な
る表名等である場合には、抽出された表名等を検出され
た最新の表名等に置き換えるようにされている。そし
て、置き換えられた表名及び列名はデータベース言語再
発行手段60に送られるようにされている。
【0022】(履歴管理テーブル)履歴管理テーブル2
には、前記データベースの最新の表名、及び/又は、こ
の表の最新の列名を含むデータベース更新履歴情報が格
納されている。この履歴管理テーブル2には、最新の表
名、最新の列名の他に、変更前の表名、変更前の列名、
表名変更の日時または列名変更の日時等の必要事項を格
納するようにしても良い。
【0023】(データベース言語再発行手段)データベ
ース言語再発行手段60には、置き換えられた最新の表
名または列名が履歴検索手段30から送られるようにさ
れている。そして、この最新の表名及び/又は列名を含
むデータベース言語を再発行し、データベース7のデー
タベースアクセス手段に送るようにされている。
【0024】(データベース)データベース7は、複数
の列から形成された表(図示せず)を有し、この表に複
数のデータを格納する。このデータベース7の表及び列
にはそれぞれ名称が付けられている。
【0025】なお、このデータベース7は、データベー
ス7の表名及び列名が含まれるデータベース言語が入力
されると、該当する表及び列に格納されたデータを取り
出す等のデータ操作等を行うデータベースアクセス手段
(図示せず)を有している。このデータベースアクセス
手段に本発明のデータベース言語再発行装置1から再発
行されたデータベース言語が入力される。
【0026】〈本発明の付加的構成要素〉本発明のデー
タベース言語再発行装置は、前記した必須の構成要素か
らなるが、前記したように、図1に示す履歴登録手段4
0、ソース管理テーブル3及びコメント処理手段50が
付加されていても良い。これらの付加的構成要素は、本
発明の第2の問題点を解決するために採用されるもので
ある。
【0027】(履歴登録手段)履歴登録手段40は、前
記データベース7の表名が変更された新規の表名を含む
データベース言語、又は、前記表の列名が変更された新
規の列名を含むデータベース言語が前記データベース言
語発行装置5から入力された場合に、少なくとも前記新
規の表名、及び/又は、前記新規の列名を前記履歴管理
テーブル2に登録するものである。
【0028】(ソース管理テーブル)ソース管理テーブ
ル3は、少なくとも前記データベース言語発行装置5か
ら発行されるデータベース言語に含まれる表名と、この
表名を含むソースプログラムの名称とを格納するように
されている。
【0029】このソース管理テーブル3には、前記デー
タベース言語発行装置5から前記データベースの表名が
変更された新規の表名を含むデータベース言語がデータ
ベース言語再発行装置1に入力された場合に、前記履歴
登録手段40が、少なくとも前記新規の表名を前記履歴
管理テーブル2に登録するとともに、少なくとも前記新
規の表名を前記ソース管理テーブル3に登録するように
されている。
【0030】これにより、データベース言語発行装置5
のアプリケーションプログラムの変更及びデバッグ処理
が容易となる点で好ましい。 (コメント処理手段)コメント処理手段50は、前記履
歴登録手段40により前記ソース管理テーブル3に前記
新規の表名が登録された場合に、前記ソース管理テーブ
ル3から前記新規の表名及びこの表名を含むソースプロ
グラムの名称とを抽出し、この抽出された前記新規の表
名とソースプログラムの名称とから前記ソースプログラ
ムに付加すべきコメント行を作成する。これにより、ソ
ースプログラムの変更に際し、その変更内容の把握が容
易となる。
【0031】(本発明の作用)本発明のデータベース言
語再発行装置1によると、データベース言語発行装置5
によりデータベース7の表名及び/又は列名を含むデー
タベース言語が発行されると、このデータベース言語は
抽出手段20に送られる。
【0032】抽出手段20では、データベース言語から
データベース7の表名及び/又は列名が抽出され、この
表名及び/又は列名は履歴検索手段30に送られる。履
歴検索手段30では、抽出された表名、及び/又は、列
名により履歴管理テーブル2を検索し、表名及び/又は
列名に対応する最新に格納された表名及び/又は最新に
格納された列名を検出する。そして、抽出手段20によ
り抽出された表名及び/又は列名は、検出された最新の
表名及び/又は最新の列名に置き換えられ、データベー
ス言語再発行手段60に送られる。
【0033】データベース言語再発行手段60では、最
新の表名及び/又は最新の列名を含むデータベース言語
が再発行される。なお、この再発行されたデータベース
言語はデータベース7のデータベースアクセス手段に送
られる。そして、データベースアクセス手段は、再発行
されたデータベース言語の表名及び列名に従い、該当す
る表及び列に格納されたデータを取り出す等のデータ操
作等を行う。
【0034】本発明が履歴登録手段40を有する場合に
おいては、データベース言語発行装置5からデータベー
スの表名が変更された新規の表名を含むデータベース言
語、又は、表の列名が変更された新規の列名を含むデー
タベース言語がデータベース言語再発行装置1に入力さ
れると、履歴登録手段40は、少なくとも新規の表名、
及び/又は、新規の列名を履歴管理テーブル2に登録す
る。
【0035】また、本発明がソース管理テーブル3を有
する場合には、データベース言語発行装置5から表名変
更のデータベース言語が発行され、本発明のデータベー
ス言語再発行装置1に入力された場合に、履歴登録手段
40が少なくとも新規の表名を履歴管理テーブル2に登
録するとともに、少なくとも新規の表名を前記ソース管
理テーブル3に登録する。
【0036】さらに、本発明がコメント処理手段50を
有する場合には、履歴登録手段40によりソース管理テ
ーブル2に新規の表名が登録された場合に、ソース管理
テーブル3から新規の表名及びこの表名を含むソースプ
ログラムの名称とを抽出し、これらからソースプログラ
ムに付加すべきコメント行を作成する。
【0037】
【発明の実施の形態】以下、本発明のデータベース言語
再発行装置を図に示される実施の形態について更に詳細
に説明する。
【0038】図2は、本発明の一実施形態におけるデー
タベース言語再発行装置を用いるデータベースシステム
を示すブロック図であり、データベース言語再発行装置
であるSQL文再発行装置が符号1で示されている。な
お、本実施の形態に係るデータベースシステムは、デー
タベース言語としてSQL文を用いるものである。
【0039】ここに、SQL文とは、データベースシス
テムを利用するための言語であり、データ操作(データ
の検索、登録、削除、更新)、表名変更(データベース
の表名を変更する)、列名変更(データベースの表の列
名を変更する)、その他(表の作成、削除等)等の種類
を有している。
【0040】〈システム概要〉本実施の形態におけるデ
ータベースシステムは、データベース言語発行手段であ
るSQL文発行装置5と、本発明のデータベース言語再
発行装置であるSQL文再発行装置1と、SQL文に従
いデータベース7に格納されたデータを検索等するデー
タベースアクセス部8と、複数の列より形成される表に
複数のデータを格納したデータベース7とを備えてい
る。
【0041】そして、SQL文発行装置5は、SQL文
再発行装置1に接続されており、このSQL文再発行装
置1は、データベースアクセス部8を介してデータベー
ス7に接続されている。一方、SQL文再発行装置1
は、ソースプログラム格納部4に接続されており、この
ソースプログラム格納部4はコンパイラ6を介してSQ
L文発行装置5に接続されている。
【0042】〈SQL文発行装置〉SQL文発行装置5
には、SQL文を発行するためのアプリケーションプロ
グラムが格納されている。SQL文発行装置5は、実際
にはこのアプリケーションプログラムが図示しないCP
Uによりロードされることによって実現する機能であ
る。SQL文発行装置5には、データベース7を利用す
る旨の命令、例えばデータ検索用のキー等が入力される
ようになっており、この命令を受けてSQL文が発行さ
れるようになっている。
【0043】〈SQL文再発行装置の概要〉本実施の形
態におけるSQL文再発行装置1は、SQL文受付部1
0と、抽出手段であるSQL文解析部20と、履歴検索
手段である履歴検索部30と、履歴登録手段である履歴
登録部40と、コメント処理手段であるコメント処理部
50と、データベース言語再発行手段であるSQL文再
発行部60と、履歴管理テーブル2と、ソース管理テー
ブル3とを備えている。
【0044】そして、SQL文受付部10はSQL文解
析部20に接続されており、このSQL文解析部20は
履歴検索部30に接続されている。履歴検索部30は履
歴登録部40に接続されており、この履歴登録部40は
コメント処理部50に接続されている。そして、SQL
文再発行部60は、SQL文解析部20、履歴検索部3
0及びコメント処理部50に接続されている。
【0045】また、履歴管理テーブル2は履歴検索部3
0と履歴登録部40とに接続されており、ソース管理テ
ーブル3は履歴登録部40とコメント処理部50とに接
続されている。
【0046】〈SQL文再発行装置のハード的構成〉本
実施の形態におけるSQL文再発行装置1は、ハード的
にはメインメモリと二次記憶とCPUとがそれぞれシス
テムバスを介して接続されることにより構成されてい
る。この二次記憶に履歴管理テーブル2とソース管理テ
ーブル3とが格納されている。
【0047】そして、SQL文受付部10、SQL文解
析部20、履歴検索部30、履歴登録部40、コメント
処理部50及びSQL文再発行部60は二次記憶に格納
されたアプリケーションプログラムであり、必要に応じ
てメインメモリに読み出されCPUによりロードされて
実現する機能である。
【0048】〈SQL文受付部〉SQL文受付部10
は、SQL文再発行装置1に入力された信号がSQL文
か否かを判断するものである。このSQL文受付部10
は、入力信号をSQL文であると判断した場合はSQL
文解析部20にそのSQL文を送るようにされている。
なお、入力信号がSQL文でない場合は動作を停止し、
次の信号入力に備えるようにされている。
【0049】〈SQL文解析部〉SQL文解析部20
は、SQL文受付部10から送られたSQL文の種類を
解析する。そして、SQL文がデータベース7の表名ま
たは列名を含むものである場合にはこの表名または列名
のうち少なくとも一方を抽出し、履歴検索部30に送る
ようにされている。
【0050】他方、SQL文がデータベース7の表名及
び列名を含まないものである場合には、SQL文再発行
部60を介してデータベースアクセス部8にSQL文を
送るようにされている。
【0051】〈履歴管理テーブル〉履歴管理テーブル2
は、図3に示すように、表名変更(記号「T」で示す)
または列名変更(記号「F」で示す)の区分、初期表
名、旧表名、新表名、旧列名、新列名、更新日及び更新
時間を格納するようにされている。
【0052】この履歴管理テーブル2には、データベー
ス7の表名または列名について変更があると、既存の履
歴管理テーブル2の格納状況を保持したままで、さらに
前記した項目に該当する表名、列名及び更新の日時がそ
れぞれ格納されるようになっている。これにより表名ま
たは列名の更新履歴情報が格納されるようになってい
る。
【0053】〈ソース管理テーブル〉ソース管理テーブ
ル3は、図4に示すように、表名、ソースプログラム
名、コメント開始文字及びコメント終了文字が格納され
るようになっている。ここに、コメント開始文字とは、
プログラムに挿入した場合であっても、実行の対象とし
ない行の先頭に付ける文字であり、ここでは記号「#」
がコメント開始文字となっている。
【0054】〈履歴検索部〉履歴検索部30には、SQ
L文解析部20により抽出されたデータベース7の表名
または列名が入力されるようになっている。
【0055】この履歴検索部30は、SQL文再発行装
置1に入力されたSQL文がデータ検索等のデータ操作
をするものである場合には、SQL文解析部20で抽出
された表名または列名のうち少なくとも一方により履歴
管理テーブル2の更新履歴情報を検索し、これらの表
名、列名に対応する最新の表名または列名、すなわち最
後に格納された表名または列名を検出するようにされて
いる。
【0056】このとき、履歴検索部30により検出され
た最新の表名、最新の列名が、SQL文から抽出された
表名、列名と異なる場合には、履歴検索部30はSQL
文解析部20で抽出された表名、列名を履歴管理テーブ
ル2から検出された最新の表名、最新の列名に置き換え
るようにされている。
【0057】そして、履歴検索部30は、置き換えた最
新の表名、最新の列名をSQL文再発行部60に送るよ
うにされている。 〈履歴登録部〉履歴登録部40は、データベース7の表
名変更または列名変更する旨のSQL文がSQL文再発
行装置1に入力された場合において、表名または列名の
履歴を登録するものである。
【0058】すなわち、履歴登録部40は履歴検索部3
0から履歴管理テーブル2に登録すべき表名または列名
が入力されると、その際の日時を更新日及び更新時間と
して取得し、履歴管理テーブル2に区分、新旧の表名、
新旧の列名及び更新の日時を必要に応じて登録するよう
にされている。
【0059】また、SQL文再発行装置1に入力された
SQL文が表名を変更するものである場合には、履歴登
録部40は上記のように履歴管理テーブル2に区分等を
登録するとともに、ソース管理テーブル3に格納されて
いる表名を変更に係る新規の表名に書き換えるようにさ
れている。
【0060】〈コメント処理部〉コメント処理部50
は、履歴登録部40から新旧の表名及び更新の日時が入
力されるようになっている。このコメント処理部50
は、履歴登録部40から上記した新旧の表名及び更新の
日時が入力されると、表名が履歴登録部40により書き
換えられた後のソース管理テーブル3を検索し、履歴登
録部40により書き換えられ変更された新規の表名とこ
の新規の表名に対応するソースプログラム名とを取り出
すようにされている。
【0061】これに続いて、コメント処理部50は、名
称が取り出されたソースプログラムに対するコメント
行、すなわち、表名変更の日時や表名変更の内容が記載
されたコメント行を作成するとともに、ソースプログラ
ム格納部4に送るようにされている。
【0062】〈ソースプログラム格納部〉ソースプログ
ラム格納部4には、SQL文発行装置5に記憶されてい
るアプリケーションプログラムのソースプログラム群が
格納されている。コメント処理部50が作成したコメン
ト行は、このソースプログラム格納部4において、該当
するソースプログラムの先頭に挿入されるようになって
いる。
【0063】〈コンパイラ〉コンパイラ6はソースプロ
グラムをアプリケーションプログラムに変換するもので
ある。ソースプログラム格納部4に格納されたソースプ
ログラム群のうち、コメント処理部50により作成され
たコメント行が挿入されたソースプログラムは、コメン
ト行の内容が吟味された上で新表名を含むソースプログ
ラムに書き直され、このコンパイラ6でアプリケーショ
ンプログラムに変換するようにされている。
【0064】なお、SQL文発行装置5における旧表名
を含むアプリケーションプログラムは、コンパイラ6に
より変換された新表名を含むアプリケーションプログラ
ムに更新される。
【0065】〈実施の形態の動作例〉以上説明した実施
の形態に係るデータベースシステムにおけるSQL文再
発行装置1の動作例を図6及び図7に示すフローチャー
トを用いて以下に説明する。
【0066】〈データ検索〉本実施の形態におけるデー
タベースシステムにおいて、データ検索を行う場合のS
QL文再発行装置1の動作について説明する。
【0067】まず、SQL文発行装置5にデータ検索用
のキーが入力されると、SQL文発行装置装置5に記憶
されたアプリケーションプログラムが実行され、SQL
文が発行される。このとき、SQL文発行装置5によ
り、「SERECT 従業員番号 FROM 従業員テーフ゛ル WHERE 職
制コート゛ = "0000"」の内容を有するSQL文が発行され
たとする。ここに、「従業員テーフ゛ル」はデータベース7
の表名であり、「従業員番号」はデータベース7の表を
形成する列の名称である。このSQL文は、SQL文再
発行装置1内のSQL文受付部10に送られる。
【0068】SQL文受付部10は、SQL文発行装置
5から送られたSQL文を受け付け、入力された信号が
SQL文か否かを判断する〈ステップS101、ステッ
プS102〉。ここでは、入力信号がSQL文であるた
め、このSQL文はSQL文解析部20に送られる。こ
れに対し入力信号がSQL文でない場合には、ステップ
S101に戻り次に入力されるSQL文を受け付ける。
【0069】SQL文解析部20は、SQL文受付部1
0からSQL文が入力されると、最初に入力されたSQ
L文から表名「従業員テーフ゛ル」及び列名「従業員番号」
を抽出する〈ステップS201〉。次に、抽出された内
容に表名及び列名があるか否かを判断する〈ステップS
202〉。ここでは、SQL文解析部20は表名及び列
名があると判断し、抽出した表名及び列名とSQL文と
を履歴検索部30に送る。
【0070】これに対し、ステップS202の処理にお
いて表名及び列名が抽出されない場合には、SQL文は
SQL文再発行部60を経由してデータアクセス部8に
送られ、このデータアクセス部8によりデータベース7
内の該当する表及び列に格納されたデータが取り出され
る。
【0071】履歴検索部30は、SQL文とSQL文解
析部20が抽出した表名及び列名とが入力されると、最
初にSQL文解析部20から入力されたSQL文が表名
変更にかかるもの否かを判断する〈ステップS30
1〉。ここではSQL文が表名変更にかかるものではな
いため、以下のステップS304に処理が移る。
【0072】SQL文が表名変更にかかるものでないと
判断した場合には、履歴検索部30は、SQL文解析部
20において抽出された表名及び列名により履歴管理テ
ーブル2を検索する〈ステップS304〉。ここでは、
履歴検索部30は表名「従業員テーフ゛ル」により履歴管理
テーブル2における最新の表名、すなわち最後に登録さ
れた表名を検出する。
【0073】履歴管理テーブル2には図3に示す内容が
格納されており、最新の表名として第4行目における
「旧表名」の欄に表名「従業員マスター」が登録されてい
る。従って、ここでは履歴検索部30は最新の表名とし
て「従業員マスター」を検出する。また、履歴検索部30は
列名「従業員番号」により最新の列名、すなわち最後に
登録された列名を検出する。ここでは、履歴検索部30
は最新の列名として第4行目における「新列名」の欄に
登録されている「従業員NO」を検出する。
【0074】次に、履歴検索部30は、SQL文解析部
20が抽出した表名及び列名を履歴管理テーブル2から
検出された最新の表名及び最新の列名に置き換える〈ス
テップ306〉。続いて、SQL文が表名変更または列
名変更であるか否かを判断する〈ステップ307〉。
【0075】ここでは、履歴検索部30に入力されたS
QL文はデータ検索にかかるものであることから、履歴
検索部30はSQL文が表名変更にかかるものでも列名
変更にかかるものでもないと判断し、処理は図6中のB
に進む。すなわち、ステップS306において置き換え
た表名「従業員マスター」及び列名「従業員NO」とSQL文
とはSQL文再発行部60に送られる。
【0076】図7に示されるように、SQL文再発行部
60は、履歴検索部30から上記内容の最新の表名、最
新の列名及びSQL文を受け取ると、そのSQL文を最
新の表名及び最新の列名を含むSQL文に変換し再発行
する〈ステップ601〉。
【0077】すなわち、「SERECT 従業員NO FROM 従業
員マスター WHERE 職制コート゛ = "0000"」とのSQL文が再発
行される。最後に、再発行されたSQL文はデータベー
スアクセス部8に送られる。
【0078】そして、データベースアクセス部8は再発
行されたSQL文の内容を実行し、これにより、データ
ベース7内の該当する表及び列に格納されたデータが取
り出される。
【0079】〈データベースの表名変更〉次に、データ
ベース7の表名を変更する際におけるSQL文再発行装
置1の動作例について図6及び図7に示すフローチャー
トを用いて説明する。
【0080】まず、データベース7の管理者が表名変更
にかかる以下のSQL文、「RENAME TABLE 従業員テーフ゛ル
TO 従業員マスター」をSQL文発行装置5に発行させ、S
QL文発行装置5がSQL文再発行装置1にこのSQL
文を入力したとする。
【0081】SQL文再発行装置1は、SQL文受付部
10でこの表名変更のSQL文を受け付け〈ステップS
101〉、受け付けたものがSQL文か否かを判断する
〈ステップS102〉。SQL文受付部10は、受け付
けたものがSQL文であると判断すると、このSQL文
をSQL文解析部20に送る。これに対し、受け付けた
ものがSQL文でない場合にはステップS101に処理
が戻る。
【0082】SQL文解析部20は、最初に、SQL文
受付部10より送られたSQL文から表名および列名を
抽出する〈ステップS201〉。すなわち、旧表名「従
業員テーフ゛ル」および新表名「従業員マスター」が抽出され
る。なお、この場合においては、表名変更にかかるSQ
L文に列名が含まれていないことから列名は抽出されな
い。
【0083】次に、SQL文解析部20は、SQL文か
ら抽出したものに表名または列名があるか否かを判断す
る〈ステップS202〉。ここでは、旧表名「従業員テー
フ゛ル」および新表名「従業員マスター」が抽出されている。
このため、SQL文解析部20は表名、列名があると判
断し、これらの旧表名「従業員テーフ゛ル」、新表名「従業
員マスター」及びSQL文を履歴検索部30に送る。
【0084】これに対し、該当する表名または列名がな
い場合には、SQL文がSQL文再発行部60に送られ
ステップS601における処理が行われる。履歴検索部
30は、最初に、SQL文解析部20から送られたSQ
L文が表名変更にかかるものであるか否かを判断する
〈ステップS301〉。ここでは、表名変更にかかるS
QL文であるため、履歴検索部30は表名変更であると
判断する。
【0085】次に、履歴検索部30は、SQL文解析部
20が抽出した新表名及び旧表名により履歴管理テーブ
ル2を検索する〈ステップS302〉。このとき、図3
に示す履歴管理テーブル2には上から第2行目までの履
歴が格納されているものとする。すなわち、区分
「F」、初期表名「従業員テーブル」、新表名空欄、旧
列名「従業員番号」、新列名「従業員NO」、更新日「93
0101」、更新時間「12:00」までが登録され、履歴管理
テーブル2の第3行、第4行は空欄になっているものと
する。
【0086】履歴検索部30は、表名の重複を回避する
ため新表名「従業員マスター」により上記した履歴管理テー
ブル2を検索し、既に表名「従業員マスター」が登録されて
いるか否かをチェックする〈ステップS303〉。ここ
では、表名「従業員マスター」は登録されていないため、履
歴検索部30は表名「従業員マスター」が重複しないと判断
する。
【0087】これに対し、表名「従業員マスター」が既に登
録されている場合には、エラー信号(データベース7か
ら発行される表名重複のエラー信号と同等のエラー信
号)が出力されるとともに、SQL文再発行装置1の動
作が停止される。
【0088】次に、履歴検索部30は、抽出された旧表
名「従業員テーフ゛ル」により履歴管理テーブル2において
最新の表名を検出し〈ステップS304〉、これに続い
て表名または列名が検出されたか否かを判断する〈ステ
ップS305〉。
【0089】ここでは、最新の表名として「旧表名」の
欄に登録されている表名「従業員テーフ゛ル」が検出され
る。このため処理はステップS306に進む。これに対
し、表名が検出されない場合はステップS307に処理
が進む。
【0090】ステップS306に処理が進んだ場合に
は、履歴検索部30は、SQL文解析部20により抽出
された旧表名「従業員テーフ゛ル」を自己が検出した最新の
表名「従業員テーフ゛ル」に置き換え、ステップS307に
処理を進める。なお、ここでは旧表名と最新の表名とは
同一内容であり表名の実質的な変更はない。
【0091】ステップS307に処理が進んだ場合に
は、履歴検索部30は、SQL文が表名変更または列名
変更に係るものであるか否かを判断する。ここでは、S
QL文は表名変更に係るものであると判断される。そし
て、処理は図6中のAに進み、図7中に示すように履歴
登録部40による処理に移行する。すなわち、旧表名
「従業員テーフ゛ル」、新表名「従業員マスター」及びSQL文
が履歴登録部40に送られる。
【0092】履歴登録部40は、まず、ステップS30
7における表名変更または列名変更であるとの判断に従
い、更新日及び更新時刻を取得する〈ステップS40
1〉。次に、履歴登録部40は、履歴管理テーブル2の
第3行目に表名変更の区分「T」、初期表名「従業員テー
フ゛ル」、旧表名「従業員テーフ゛ル」、新表名「従業員マスタ
ー」、更新日及び更新時刻をそれぞれ登録する〈ステッ
プS402〉。
【0093】次に、履歴登録部40は、自己に入力され
たSQL文が表名変更に係るものであるか否かを判断す
る〈ステップS403〉。ここでは、SQL文は表名変
更に係るものであるため、処理は次のステップS404
に進む。これに対し、SQL文が表名変更に係るもので
ない場合には、コメント処理部50におけるステップS
501に処理が進む。
【0094】ステップS404に処理が進んだ場合に
は、履歴登録部40は、旧表名「従業員テーフ゛ル」の表を
形成する列の名称の履歴を検索し、列名変更の履歴があ
る場合は列についての表名を新規の表名「従業員マスター」
に変更する。
【0095】すなわち、旧表名「従業員テーフ゛ル」につい
ての列名につき変更された旨の情報があるか否かを検索
する。ここでは、表名「従業員テーフ゛ル」の表の列名が
「従業員番号」から列名「従業員NO」に変更された旨の
履歴が履歴管理テーブル2の2行目に格納されている。
この情報に従い、履歴登録部40は、履歴管理テーブル
2の4行目に列名変更の区分「F」、旧表名「従業員マス
ター」、旧列名「従業員番号」、新列名「従業員NO」、更
新日及び更新時を登録する。このようにして、表名変更
とともに表名と列名との対応関係についての調整が図ら
れる。
【0096】次に、履歴登録部40は、ソース管理テー
ブル3において最新に格納された表名を検索する。この
とき、図4に示すソース管理テーブル3には、図4中の
表名とは異なり、表名「従業員テーフ゛ル」がそれぞれ格納
され、かつそれぞれの表名に対応するソースプログラム
名として”A.4gl”,”B.4gl”が格納されて
いるものとする。
【0097】履歴登録部40は、この最新に格納された
表名「従業員テーフ゛ル」を検出すると、図4のソース管理
テーブル3に示すように表名「従業員マスター」に変更する
〈ステップS405〉。さらに、履歴登録部40は、旧
表名「従業員テーフ゛ル」から新表名「従業員マスター」に更新
され変更された旨の情報を、その更新の日時及びSQL
文とともにコメント処理部50に送る。
【0098】コメント処理部50はソース管理テーブル
3を検索し、新表名「従業員マスター」に対応するソースプ
ログラム名を全て抽出する〈ステップS501〉。ここ
では、ソースプログラム名として”A.4gl”及び”
B.4gl” が抽出される。
【0099】次に、コメント処理部50は、ソース管理
テーブル3から抽出したソースプログラムに対するコメ
ント行を生成する〈ステップS502〉。ここでは、図
5の左側の1行目に示すように、「# 940601-15:30 表
名変更」との表名変更の日時を示すコメント行が生成さ
れる。また、図5の左側2行目に示すように「# 従業
員テーフ゛ル -> 従業員マスター」との表名の変更内容を示す
コメント行が作成される。なお、SQL文が列名変更に
かかるものである場合には、図5の右側に示されるよう
に「# 941001-12:50 列名変更」、「# 表名:従業員マスタ
ー」及び「# 従業員番号 -> 従業員NO」とのコメント行
が生成される。
【0100】さらに、コメント処理部50は、自己が生
成したコメント行をソースプログラム格納部4に格納さ
れた該当するソースプログラムの先頭に追加する〈ステ
ップS503〉。そして、コメント処理部50は、旧表
名「従業員テーフ゛ル」、新表名「従業員マスター」及びSQL
文がSQL文再発行部60に送られる。
【0101】最後にSQL文再発行部60は、コメント
処理部50から上記した旧表名「従業員テーフ゛ル」等を受
け取ると、これらの旧表名「従業員テーフ゛ル」、新表名
「従業員マスター」及びSQL文をもとにSQL文を再発行
する〈ステップS601〉。
【0102】ここでは、旧表名及び新表名には変更はな
いため、再発行されるSQL文は、データベース管理者
により発行されたSQL文と同様のSQL文「RENAME T
ABLE 従業員テーフ゛ル TO 従業員マスター」が再発行される。
【0103】なお、この再発行されたSQL文は、デー
タベースアクセス部8に送られ、SQL文の内容が実行
されてデータベース7内の表名が「従業員テーフ゛ル」から
表名「従業員マスター」に変更される。
【0104】〈実施の形態の効果〉本実施形態における
SQL文再発行装置1を用いたデータベースシステムに
よると、データベース7の表名、列名が変更され、SQ
L文発行装置5に格納されたアプリケーションプログラ
ムの表名、列名が変更前のままであっても、実施の形態
におけるSQL文再発行装置1がデータベース7の表名
または列名に適合するSQL文を再発行する。
【0105】このため、データベース7のデータ操作等
において、SQL文発行装置5により発行されたSQL
文に含まれる表名または列名がデータベース7内に存在
しないことを理由とするエラーの発生を回避することが
できる。
【0106】また、履歴登録部40を設けたことによ
り、表名変更または列名変更があった場合には、履歴管
理テーブル2に新規の表名、新規の列名が自動的に登録
されるため、その後続けてデータ操作のSQL文が発行
された場合であってもデータベース7内のデータ操作が
正常に行われる。また、新規の表名等を登録する際、旧
表名、更新日時を登録することにより、表名や列名の履
歴が容易に把握できる。
【0107】また、ソース管理テーブル3を設けたこと
により、表名変更に係るソースプログラムの把握がアプ
リケーションプログラムの開発者にとって容易となる。
さらに、コメント処理部50を設けたことにより、後日
アプリケーションプログラムの開発者がソースプログラ
ムを書き直す際に、ソースプログラム格納部4に格納さ
れたコメント行に従って書き直すことができるため、書
き直し作業が容易となる。
【0108】
【発明の効果】以上説明したように、本発明のデータベ
ース言語再発行装置によれば、データベース管理者がデ
ータベースの表名またはこの表の列名のうち少なくとも
一方を変更した場合であっても、変更前の表名またはこ
の表の列名のうち少なくとも一方を含むアプリケーショ
ンプログラムを記憶したデータベース言語発行装置を使
用することができる。
【0109】また、データベースの表名または列名の変
更があった場合に、その変更内容を容易に把握すること
が可能となる。さらに、データベースの表名変更または
この表の列名変更に伴って行われるデータベース言語発
行装置に記憶したアプリケーションプログラムの変更及
びデバッグ処理等の作業の効率向上を図ることができ
る。
【図面の簡単な説明】
【図1】本発明の原理を示すブロック図である。
【図2】本発明の一実施の形態に係るデータベース言語
再発行装置を使用するデータベースシステムを示すブロ
ック図である。
【図3】実施の形態に係る履歴管理テーブルを示す平面
図である。
【図4】実施の形態に係るソース管理テーブルを示す平
面図である。
【図5】実施の形態に係るコメント処理部50が作成し
たコメント行の作成例を示す図である。
【図6】実施の形態に係るデータベース言語再発行装置
の動作例を示すフローチャートである。
【図7】実施の形態に係るデータベース言語発行装置の
動作例を示すフローチャートである。
【符号の説明】
1 SQL文再発行装置(データベース言語再発行装
置) 2 履歴管理テーブル 3 ソース管理テーブル 4 ソースプログラム格納部 5 SQL文発行装置(データベース言語発行装置) 7 データベース 8 データベースアクセス装置 20 SQL文解析部(抽出手段) 30 履歴検索部(履歴検索手段) 40 履歴登録部(履歴登録手段) 50 コメント処理部(コメント処理手段) 60 SQL文再発行部(データベース言語再発行手
段)

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 複数の列から形成される表を有するデー
    タベースに対して、前記データベースの表名及び/又は
    この表の列名を含むデータベース言語を発行するデータ
    ベース言語発行装置から前記データベース言語を受け取
    って、新たなデータベース言語を再発行するデータベー
    ス言語再発行装置であって、 少なくとも前記データベースの最新の表名、及び/又
    は、この表の最新の列名を含むデータベース更新履歴情
    報が格納される履歴管理テーブルと、 前記データベース言語発行装置により発行されたデータ
    ベース言語から前記最新の表名、及び/又は、前記最新
    の列名を抽出する抽出手段と、 前記抽出手段により抽出された前記表名、及び/又は、
    前記列名に対応する前記最新の表名、及び/又は、前記
    最新の列名を前記履歴管理テーブルから検索する履歴検
    索手段と、 前記履歴検索手段により検出された前記最新の表名、及
    び/又は、前記最新の列名を含むデータベース言語を再
    発行する言語再発行手段と、を備えるデータベース言語
    再発行装置。
  2. 【請求項2】 前記データベースの表名が変更された新
    規の表名を含むデータベース言語、又は、前記表の列名
    が変更された新規の列名を含むデータベース言語が前記
    データベース言語発行装置から入力された場合に、少な
    くとも前記新規の表名、及び/又は、前記新規の列名を
    前記履歴管理テーブルに登録する履歴登録手段を有する
    請求項1に記載のデータベース言語再発行装置。
  3. 【請求項3】 少なくとも前記データベース言語発行装
    置から発行されるデータベース言語に含まれる表名と、
    この表名を含むソースプログラムの名称とを格納するソ
    ース管理テーブルを有し、 前記データベース言語発行装置から前記データベースの
    表名が変更された新規の表名を含むデータベース言語が
    入力された場合に、前記履歴登録手段は少なくとも前記
    新規の表名を前記履歴管理テーブルに登録するととも
    に、少なくとも前記新規の表名を前記ソース管理テーブ
    ルに登録する請求項2に記載のデータベース言語再発行
    装置。
  4. 【請求項4】 前記履歴登録手段により前記ソース管理
    テーブルに前記新規の表名が登録された場合に、前記ソ
    ース管理テーブルから前記新規の表名及びこの表名を含
    むソースプログラムの名称とを抽出し、この抽出された
    前記新規の表名とソースプログラムの名称とから前記ソ
    ースプログラムに付加すべきコメント行を作成するコメ
    ント処理手段を有する請求項3に記載のデータベース言
    語再発行装置。
JP8039656A 1996-02-27 1996-02-27 データベース言語再発行装置 Withdrawn JPH09231116A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8039656A JPH09231116A (ja) 1996-02-27 1996-02-27 データベース言語再発行装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8039656A JPH09231116A (ja) 1996-02-27 1996-02-27 データベース言語再発行装置

Publications (1)

Publication Number Publication Date
JPH09231116A true JPH09231116A (ja) 1997-09-05

Family

ID=12559139

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8039656A Withdrawn JPH09231116A (ja) 1996-02-27 1996-02-27 データベース言語再発行装置

Country Status (1)

Country Link
JP (1) JPH09231116A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10289719B2 (en) 2015-07-10 2019-05-14 Mitsubishi Electric Corporation Data acquisition device, data acquisition method and computer readable medium
WO2020245943A1 (ja) * 2019-06-05 2020-12-10 三菱電機株式会社 データベース言語再発行装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10289719B2 (en) 2015-07-10 2019-05-14 Mitsubishi Electric Corporation Data acquisition device, data acquisition method and computer readable medium
WO2020245943A1 (ja) * 2019-06-05 2020-12-10 三菱電機株式会社 データベース言語再発行装置
JPWO2020245943A1 (ja) * 2019-06-05 2020-12-10
KR20210153729A (ko) 2019-06-05 2021-12-17 미쓰비시덴키 가부시키가이샤 데이터베이스 언어 재발행 장치
DE112019007401T5 (de) 2019-06-05 2022-02-24 Mitsubishi Electric Building Techno-Service Co., Ltd. Datenbanksprachen- neuausgabevorrichtung

Similar Documents

Publication Publication Date Title
US6279006B1 (en) Structured data management system and computer-readable recording medium storing structured data management program
CN100511177C (zh) 一种嵌入式系统的符号定位方法
EP0449449A2 (en) Use of application programs on data in a heterogeneous data base system
RU2001102589A (ru) Способ поиска данных и устройство, позволяющее работать со многими источниками
AU4098700A (en) Circuit arrangement for measuring the resistances of a pressure-sensitive resistance mat
JP2007141123A (ja) 異なるファイルの同一文字列のリンク
EP1536326A2 (en) Multi-language support at runtime and design
JP2557239B2 (ja) プログラム内データ名称標準化方法
KR101877828B1 (ko) 인공지능 기반의 사용자 인터페이스 통합 플랫폼 시스템
TW389855B (en) Method and apparatus for allowing continued operation for overflow and invalid data
EP1909170B1 (en) Method and system for automatically generating a communication interface
US5649180A (en) Method for generating hierarchical specification information from software
JPH0540616A (ja) プログラム仕様生成方法
JPH09231116A (ja) データベース言語再発行装置
WO2022134820A1 (zh) 网页的数据抽取方法、装置、电子设备及存储介质
EP1248189A1 (en) Program reproducing method and device, and medium on which a program for program reproduction recording
JP3307476B2 (ja) データ項目定義標準化装置
JP2000207226A (ja) コ―ド最適化装置、言語処理装置及びコ―ド最適化方法
JPH07104853B2 (ja) 操作手順生成方式
JPH06131232A (ja) データ辞書の多重定義修正支援装置
CN117421362A (zh) 数据库动态切换方法、装置、设备及介质
JP3179353B2 (ja) プログラムテスト自動化システム
CN113626423A (zh) 业务数据库的日志管理方法、装置、系统
CN115051904A (zh) 一种基于标记语言的单盘状态管理的方法和装置
JP2000181691A (ja) プログラム構造解析方式

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20030506