JPH06259301A - データベースシステム退避装置及びデータベースシステム復元装置及びデータベースシステム移行装置 - Google Patents

データベースシステム退避装置及びデータベースシステム復元装置及びデータベースシステム移行装置

Info

Publication number
JPH06259301A
JPH06259301A JP5043850A JP4385093A JPH06259301A JP H06259301 A JPH06259301 A JP H06259301A JP 5043850 A JP5043850 A JP 5043850A JP 4385093 A JP4385093 A JP 4385093A JP H06259301 A JPH06259301 A JP H06259301A
Authority
JP
Japan
Prior art keywords
database
list
database system
view
procedure
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
JP5043850A
Other languages
English (en)
Other versions
JP2783109B2 (ja
Inventor
Shinya Fushimi
信也 伏見
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 JP5043850A priority Critical patent/JP2783109B2/ja
Priority to TW082111230A priority patent/TW268116B/zh
Priority to US08/205,091 priority patent/US5642505A/en
Priority to KR1019940003993A priority patent/KR970004101B1/ko
Priority to DE69427381T priority patent/DE69427381T2/de
Priority to EP94103254A priority patent/EP0614150B1/en
Publication of JPH06259301A publication Critical patent/JPH06259301A/ja
Application granted granted Critical
Publication of JP2783109B2 publication Critical patent/JP2783109B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99955Archiving or backup

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【目的】 データベースシステムの退避と復元移行を容
易に行えるようにする。 【構成】 コマンド解釈装置1が、退避要求を受け付
け、制御部2が退避要求から退避すべき対象物を定義情
報11を参照することにより特定する。退避移行復元手
順生成装置3は制御部で特定された退避すべき対象物の
退避手順を定義情報11を参照しながら生成する。制御
部は退避移行復元手順生成装置により生成された手順に
従って退避すべき対象物を、SQLのコマンド形式に変
換して保存媒体8に保存する。保存データは置換情報、
定義情報、依存情報、データ、ジャーナル、プログラム
からなり、これらを入力する事によりシステムの復元、
あるいは他のシステムへのデータベースの移行が可能に
なる。 【効果】 システムの退避と移行と復元が同一装置によ
り行える。またSQLのコマンド形式を用いるため、移
行復元が特別な手段を必要とせずに行える。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、データベースシステ
ムのプログラム及びデータの退避、復元、移行方式に関
するものである。
【0002】
【従来の技術】関係データベースが急速に普及しつつあ
る。そこでは、データベースの処理言語としてSQL
(ISO/IEC 9075:Database La
nguage SQL)と呼ばれる国際標準言語が用い
られることが一般的である。このため、以下では関係デ
ータベースと国際標準データベース処理言語SQLを前
提として説明する。
【0003】業務プログラムとデータベースの基本構成
を図15に示す。一般にデータベースシステムは、処理
対象のデータそのものに加えて、データの内容を記述し
たデータベースの定義情報と、これら定義情報を参照し
ながら動作する業務プログラムとから構成される。これ
ら定義情報はカタログ、リポジトリ、データディレクト
リ/ディクショナリ等と呼ばれる。また、データに対し
ては、常時更新が行なわれており、これら更新の履歴が
特殊なファイルに記録される。更新の履歴を格納する特
殊なファイルはジャーナル、ログなどと呼ばれる。
【0004】一方、SQLなどのデータベース処理言語
はデータベース処理(データベースからの所要データの
検索、データベース中のデータの更新、削除、挿入、及
びこれらデータ操作を行なうためのデータの定義等)を
行なうことを目的とした言語であり、業務で必要となる
通信、画面制御などはプログラミングが不可能である。
このため、業務プログラムは、データベース処理の部分
をSQLで記述し、その他の部分をCOBOLなどの従
来の言語で記述して作成されることが一般的である。
【0005】SQL文を含むプログラムをコンパイルす
ると、SQL以外の部分は通常のロードモジュールに、
また、SQLの部分は、SQL手順にコンパイルされ
る。ここで、元SQL文のあった部分には、データベー
スシステムのデータベースシステム中核部を経由してコ
ンパイルされたSQL手順を呼び出すための規定の手続
呼びだし(図15ではsql exec)が替りにおか
れ、またその引数としてデータベースシステムに登録さ
れたSQL手順の識別子が与えられる。システムの実現
方式にも依存するが、SQLを用いて作成されたロード
モジュールとSQL手順は、SQLシステムの定義情報
の一部として登録されることが一般的である。
【0006】図1は業務プログラムとデータベースの基
本構成を示す図であり、図においては、COBOL業務
プログラムの中にSQLプログラムを作成した例を示し
ている。このSQLプログラムはコンパイラによりコン
パイルされる。コンパイラがSQLプログラムをコンパ
イルする場合には、SQLプログラムそれぞれに対して
識別子を与える。この図においては、それぞれのSQL
プログラムに対応するSQL手順に対して、No.23
とNo.24が識別子として与えられた例を示してい
る。COBOL業務プログラムは、コンパイルされると
ロードモジュールという実行形式の形に変換されるが、
このロードモジュール内にはSQL手順を実行するため
のCALL文がおかれている。CALL文は、SQL手
順の識別子23と24を引き数にすることにより、カタ
ログに登録されたSQL手順をコールする。こうしてS
QL手順に記述されたデータベース処理を実行する。
【0007】即ち、図16に示すように業務プログラム
を実行すると、通常のプログラムと同様に実行がなされ
るが、実行がデータベースシステムの処理要求の手続き
(sql exec)に達すると、この手続きからデー
タベースシステム中核部を経由して対応するSQL手順
が取り出され、実行される。このようにして、業務プロ
グラムが適宜データベースにアクセスしながら所要の業
務を実現する。
【0008】次に、データベースの定義情報について説
明する。データベースシステムは、データベースに関す
る定義情報を種々の方法で生成、管理している。例えば
SQLでは、データベース情報をシステムで一元管理す
ることにより、データ定義の重複の防止やデータベース
内部での記憶情報の管理の効率化を実現している。これ
ら定義情報の集まりをカタログと呼ぶ。SQLでは、こ
れらシステムで管理される対象として以下のようなもの
がある。 (1)実表。これは従来のファイルに相当するデータの
本体である。実表を構成するフィールドを列と呼ぶ。列
には各々データ型、長さなどの属性がある。 (2)ビュー。これは、従来の論理ファイルなどに相当
し、実表に条件を付して検索した結果をあたかも実表の
ようにして見せるものである。即ち、データを、あるが
ままの状態以外に、一次加工、二次加工した形で見せる
ことにより、データへの不要なアクセスの防止、共通し
たアクセスの一元化などを実現する。これは、複数の実
表(ファイル)を結合して一つに見せる、といった複雑
な場合も含まれる。また、(複数の)別のビューを参照
することにより作成されたビューも存在する。実表とビ
ューを総称して表と呼ぶ。 (3)スキーマ。これは従来のディレクトリなどに相当
し、表等を区分けして整理するための入れ物を指す。表
(実表とビュー)は、例えばスキーマ名をS1とし、表
名をT1とするとS1.T1のようにスキーマ名を冠し
て名前付けされる。 (4)データベースの利用者。 (5)データベースの利用者が持っている権限。実表や
ビューに対する操作に対しては、これらを作成したユー
ザがすべての権限(選択、更新、削除、追加)を有する
が、これら権限を適宜他のユーザに与えることによって
一定のユーザの集団の中でのデータベースへのアクセス
を制御することができる。即ち、SQLではデータのア
クセス権限を厳密に管理し、データの参照、更新、挿
入、削除などの権限を実表、ビュー毎に、ユーザ毎に制
御可能である。また、これらは権限は基本的に実表、ビ
ューなどの生成者が保有するものであるが、これを権限
を他人に付与したり、更にこの付与行為までを他人に認
めることも可能である。付与行為までを認めることをW
ITH GRANT OPTION付きで権限を付与す
る、と呼ぶ。 (6)データベースの業務プログラムとその中で使用さ
れるSQL手順。
【0009】SQLでは以上の(1)−(6)を例えば
以下のような情報としてカタログ中で管理する。 a)ユーザ一覧情報(ユーザ名、保有スキーマ数) ユーザ名とそのユーザが保有するスキーマの数。 b)スキーマ一覧情報(スキーマ名、所有者名、格納表
数) スキーマの名前、スキーマを所有する所有者の名前、ス
キーマ中の表の数。 c)表一覧情報(名前、列数、所属スキーマ名、ビュー
か実表か) 実表とビューを表として統一的に管理する。表の名前、
表の列の数、表の所属するスキーマ名、実表かビューか
の区別からなる。 d)列一覧情報(名前、所属表名、所属スキーマ名、デ
ータ型、長さ) 列毎の情報。列の名前、その列が属する表の名前とその
表が属するスキーマの名前、データ型、長さなど。 e)ビュー定義一覧情報(ビュー名、所属スキーマ名、
定義本体) 各ビューに対して、その定義本体を管理する。ビューの
名前とその属するスキーマ名、及びビュー定義の本体か
らなる。 f)ビュー対表の参照関係情報(ビュー名、所属スキー
マ名、参照表名、参照表所属スキーマ名) ビューは別の実表またはビューを参照することにより生
成される。そのビューが参照しているこれら表毎にビュ
ー名とそのビューが所属するスキーマ名、及びビューが
参照している表の名前とその表が所属するスキーマ名が
ある。 g)権限一覧情報(付与者、受領者、種類、対象、対象
のスキーマ名、再付与可能性) データベースの使用者に与えられている表に対するアク
セスの権限(従来の、読とり可能、書き込み可能、実行
可能、などの権限に相当)に関する情報からなる。例え
ば、権限を付与した人間、権限を受領した人間、権限の
種類(当該表に対する選択権、更新権、挿入権、削除
権)、権限の対象となる表、権限の付与行為まで与えて
いるかどうか、からなる。特に、新たに表を作成した場
合は、作成者はシステムから権限を受領したと見なさ
れ、権限付与者には特別な値( SYSTEM)が設定
される。また、ビューを生成する際には、選択権が少な
くとも必要である。また、生成されたビューが一定の条
件を満たさない(例えば複数の表を参照している、な
ど)場合には、更新が不可能となるため、ビューに対す
る更新、削除、挿入の権限は生成されない。 h)プログラム一覧情報(業務プログラム識別子、OS
内プログラム所在) 業務プログラムの一覧。識別子とプログラムが実際に存
在するOS下の位置(ディレクトリ等)からなる。 i)手順一覧情報(業務プログラム識別子、手順識別
子、手順本体) 上記の業務プログラム中で用いているSQLコマンドに
対応してコンパイルにより生成されたSQL手順の一
覧。プログラム識別子、SQL手順の識別子、及び手順
の本体の内容からなる。 j)手順対表参照関係情報(業務プログラム識別子、手
順識別子、スキーマ名、表名) 業務プログラムの各手順が、各々参照している表を管理
する。手順とそれが参照する表毎に一つの情報が存在す
る。
【0010】次に、データベースとカタログの具体例に
ついて説明する。例えば、図17のようなデータベース
の内容は図18〜図27のようなカタログ情報として管
理される。図17に示したデータベースにおいては、鈴
木と田中という2人のユーザが存在しており(図18参
照)、ユーザ鈴木はスキーマS1を所有しており、ユー
ザ田中はスキーマS2、S3を所有している(図19参
照)。また、スキーマS1は実表T1とビューV1を有
しており、スキーマS2は実表T2とビューV2を有し
ており、スキーマS3はビューV3を有している(図2
0参照)。また、ビューV1はT1を参照しているビュ
ーである(図23参照)。その定義は、 SELECT * FROM T1 WHERE t1
1>100 であり(図22参照)、更新が可能なビューである(図
24参照)。ビューV2はT1とT2を参照しているビ
ューである(図23参照)。その定義は、 SELECT t11,t12,t21 FROM T
1,T2 WHEREt11=t23 であり(図22参照)、複数の表を参照しているため、
更新が不可能なビューである(図24参照)。また、こ
のビューは他人(鈴木)が所有する表T1を参照してい
るため、予め鈴木から田中に関する選択権の付与がなけ
ればならない(図24参照)。ビューV3はV2を参照
しているビューである(図23参照)。その定義は、 SELECT v21 FROM V2 であり(図22参照)、複数の表を参照しているため、
更新が不可能なビューである(図24参照)。プログラ
ムPROG1にはSQL文が二つあり、各々P1、P2
なるSQL手順である(図25及び図26参照)。プロ
グラムPROG2にはSQL文が一つあり、P3なるS
QL手順である(図25及び図26参照)。SQL手順
P1はV2を参照している(図27参照)。SQL手順
P2はT2を参照している(図27参照)。SQL手順
P3はV1とV3を参照している(図27参照)。鈴木
は田中にT1に関する選択権(参照する権利)を再付与
権つきで与えている(図24参照)。以上のように、図
18から図27に示したカタログ情報は、前述したデー
タベースの定義情報の具体例を示すものである。
【0011】更に、SQLなどを用いたデータベースシ
ステムは、以下のような特長を持つ。 (1)データベースに対して実行された更新、削除など
の履歴をすべてジャーナルに記憶することにより、万一
のデータベースの破壊に対してもデータベースを必ず回
復できる。 (2)更に、索引の追加、アクセス権限の変更など、デ
ータベースに変化が生じ、カタログ中に登録されている
SQL手順が最適な手続きでなくなった場合には、SQ
L手順がCOBOL業務プログラムを通じて実行される
際に当該SQL手順が動的に再コンパイルされ、変化に
対応した最適な手続きを再度生成し、これをカタログに
登録しなおして実行を再開する。
【0012】
【発明が解決しようとする課題】以上の特長を実現する
一方で、逆に以下のような問題点が生じている。 (1)あるシステムの上で開発した業務をパッケージ化
しようとすると、他の開発中の業務などを含め、すべて
のデータベースの定義情報が一つのカタログ内で一元管
理されているため、その中の必要な部分だけをとりだし
てパッケージにまとめることが困難である。例えば、実
表は複数のビューに参照されており、またビューは複数
のビューに参照されている。また、ビューが参照するに
際しては権限が必要であり、これら権限が定義されてい
る状態をビューを生成するたびに忠実に再現しなければ
ならない。例えば、上記の例では、ビューV2を生成す
るためには、表T1、表T2の作成が必要であり、更に
これら表の作成には、前もってスキーマS1、S2と各
々のスキーマの所有者である鈴木、田中のユーザが生成
されていなければならない。また、これら表が生成され
た後、更に表T1に関する選択権を鈴木から田中に対し
て付与しておかなければ、田中はT1を参照することが
できず、ビューV2が生成できない。このように、定義
情報は相互に複雑にからみあっており、また時間軸に沿
って履歴的な復元が必要となる。現在は、 a)これを人間が必要な部分、必要な順序を手作業で認
識し、取り出して、 b)更に、手作業により移行先で注意深く再現を行なっ
ている。即ち、従来より行なわれているソフトウェアの
パッケージの作成、普及が困難であり、対象システム各
々において人手による複雑なシステムインストール、開
発作業が必要となっていた。
【0013】(2)更に、最近は、LAN(ローカルエ
リアネットワーク)を通じて多くのマシンが接続され、
ソフトウェア開発もあるマシンで行なわれるとその成果
がLANを通じて複数の別のマシンに配布される、とい
った形態が普及している。しかし、上記のような問題が
あり、データベースをアクセスする業務プログラムはこ
のような仕組みが整ってもこれを有効に活用して、ソフ
トウェア配布を行なうことが困難であった。
【0014】(3)更に、最近は、ソフトウェア開発全
体を管理するCASE(Computer Aided
Software Engineering)が普及
しつつあるが、CASEの中で開発作業の定義情報を管
理するリポジトリは上記のカタログと同様な位置付けの
ものであり、これら開発作業環境の移行や複数グループ
による開発の分散を行う場合にも上記(1)の問題が生
じている。
【0015】(4)これらの定義情報を履歴に沿って移
行先で再現するためにはデータベースシステム自身に従
来の機能に加えて特殊な機能が必要になる可能性があ
る。例えば、各スキーマ中に表がいくつある、といった
情報を移行しようとすると、履歴にカタログの内容をそ
っくり保管し、パッケージインストール時にこの部分を
取り出し、移行先で、システムのカタログの該当部分を
直接変更することが可能である。しかし、このために
は、通常のデータベース機能以外のカタログ処理の特殊
なインタフェースを持つ必要がある。また、このため、
COBOL、SQLと行った標準言語で開発されたパッ
ケージであっても、特殊なインターフェースがベンダの
仕様に依存してしまい、異なるベンダ間ではシステムの
移行ができない。
【0016】(5)また、従来のジャーナルはデータベ
ース全体を通じてのデータ変更の履歴を記録しており、
データベースの保管の際には、その復元作業のため常に
データベース全体を保管(バックアップ)する必要があ
る。データベース全体の内のごく一部の部分にのみ変更
が加えられていたと判っていても、常に全体を保管する
ため、システムの保守運用時間が長くなっている。
【0017】(6)また、システムの移行に際しては、
業務プログラムとカタログ中に登録されたSQL手順と
の対応関係を維持するための識別子の生成が困難とな
る。特に、業務プログラムを別のマシン、別のSQLシ
ステムに移行した場合には、そのマシン上で既に稼働中
の業務プログラム・SQL手順が使用している識別子
と、移行により持ち込んだ識別子が衝突する場合があ
り、移行が困難である。また、移行先では移行したSQ
L手順がデータ量などの関係で必ずしも最適なSQL手
順にコンパイルされた状態ではない場合がある。
【0018】この発明は以上のような問題点を解決する
ためになされたもので、データベースシステムのプログ
ラム及びデータの退避、移行、復元が容易に行える装置
を得ることを目的とする。
【0019】
【課題を解決するための手段】第1の発明に係るデータ
ベースシステム退避装置は、退避命令とそのパラメータ
を入力するコマンド解釈手段と、コマンド解釈手段によ
り解釈された退避命令とそのパラメータに基づいて退避
すべき対象物を特定する制御手段と、この制御手段によ
り特定された退避すべき対象物の退避手順を生成する退
避手順生成手段を有したものであり、以下の要素を有す
るものである。 (a)上記データベースシステムをアクセスするデータ
ベースアクセス手段、(b)退避すべきデータを保存デ
ータとして保存媒体に保存する保存媒体アクセス手段、
(c)上記データベースシステムの退避命令を入力して
解釈するコマンド解釈手段、(d)上記データベースア
クセス手段によりデータベースシステムの定義情報をア
クセスすることにより、退避すべき対象物の退避すべき
手順を生成する退避手順生成手段、(e)上記コマンド
解釈手段により解釈された退避命令に基づき、上記デー
タベースシステムの中から退避すべき対象物を特定する
とともに、上記退避手順生成手段を動作させ、退避手順
生成手段により生成された退避すべき手順に従って、退
避すべき対象物を上記データベースアクセス手段により
データベースシステムから取り出し、上記保存媒体アク
セス手段により保存媒体に保存する制御手段。
【0020】第2の発明に係るデータベースシステム退
避装置は、退避命令のパラメータとして、退避すべきユ
ーザ名、スキーマ名、表名、ビュー名、プログラム名、
権限名のいずれかを入力すると共に、これら退避すべき
対象物の種類の限定と範囲の指定がなされることを特徴
とし、制御手段はこの対象物の指定と、この対象物に対
する種類と範囲の指定に基づいて、定義情報から対象物
を特定することを特徴とするものである。
【0021】第3の発明に係るデータベースシステム退
避装置は、データベースシステムがSQL等のデータベ
ース処理言語を用いてアクセスでき、データベースアク
セス手段はSQL等のデータベース処理言語を用いて、
データベースシステムをアクセスすることを特徴とする
ものである。
【0022】第4の発明に係るデータベースシステム退
避装置は、保存媒体に情報を保存する場合に、この情報
をSQL等のデータベース処理言語により記述して保存
することを特徴とするものである。
【0023】第5の発明に係るデータベースシステム退
避装置は、定義情報を退避する場合にSQL等のデータ
ベース処理言語により、定義情報を生成するための定義
コマンドに変換して退避することを特徴とするものであ
る。
【0024】第6の発明に係るデータベースシステム退
避装置は、データを退避する場合にデータをSQL等の
データベース処理言語によるデータ挿入のためのデータ
挿入コマンドに変換して退避することを特徴とするもの
である。
【0025】第7の発明に係るデータベースシステム退
避装置は、ユーザ名やファイル名等の置換可能な変数が
退避すべき対象物に存在する場合に、これらユーザ名や
ファイル名等の置換可能な変数を置換情報として生成し
これを保存することを特徴とするものである。
【0026】第8の発明に係るデータベースシステム退
避装置は、データを処理するプログラムはSQL等のデ
ータベース処理言語による処理手順を呼び出して実行す
ると共にそのプログラムが他の機種に移植された場合の
ことを考慮して、予めデータベース処理言語による処理
手順をソースコードとしてプログラム内に保持している
ことを特徴としており、定義情報内にある実行形式の処
理手順が退避すべき対象物になった場合でも、この実行
形式の処理手順を退避せずに、その処理手順のソースコ
ードを有するプログラムを退避することを特徴とするも
のである。
【0027】第9の発明に係るデータベースシステム退
避装置は、データベースのデータを退避せず単にデータ
ベースのデータ記憶領域を確保するための領域確保コマ
ンドを生成して保存することを特徴とするものである。
【0028】第10の発明に係るデータベースシステム
退避装置は、データベースシステムがアクセス履歴情報
を記録するジャーナルを有しており、アクセス履歴情報
は、例えば表名等の識別子と共に記録されており、制御
手段は退避すべき対象物に関連したアクセス履歴情報の
みを表名などの識別子を元に検索し退避すようにしたも
のである。
【0029】第11の発明に係るデータベースシステム
退避装置は、ユーザ、スキーマ、表、ビュー、権限、プ
ログラム間の依存関係を特定する退避手順生成手段を有
し、この退避手順生成手段が生成した依存関係を依存情
報として保存する制御手段を有することを特徴とするも
のである。
【0030】第12の発明に係るデータベースシステム
復元装置は、前述したデータベースシステム退避装置に
より退避された保存データを入力することにより、デー
タベースシステムの一部または全部を復元する事を特徴
とするものである。
【0031】第13の発明に係るデータベースシステム
移行装置は、前述したようなデータベースシステム退避
装置により退避された保存データを入力することによ
り、他の機種或いは他のマシン上に新たにデータベース
システムを構築することを特徴とするものである。
【0032】第14の発明に係るデータベースシステム
復元/移行装置は、前述したデータベースシステム退避
装置がSQL等のデータベース処理言語により記述され
たコマンドの形式でデータを退避している場合に、この
データベース処理言語により記述されたコマンドを入力
して実行することにより、データベースシステムを復元
または移行することを特徴とするものである。
【0033】第15の発明に係るデータベースシステム
移行装置は、前述したデータベースシステム退避装置に
おいて、保存したデータの中に置換可能な変数が存在す
ることを示す置換情報が存在する場合に、その置換情報
に基づき置換可能な変数に新たな変数を与えて、変数の
値を置き換えながらデータベースシステムを新たに構築
することを特徴とするものである。
【0034】第16の発明に係るデータベースシステム
移行装置は、前述したデータベースシステム退避装置が
実行形式の処理手順を保存せず、かわりに処理手順のソ
ースコードを有しているプログラムを保存している場合
に、実行時に処理手順が定義情報に存在しないことを条
件として、実行時に処理手順のソースコードをコンパイ
ルして実行形式の処理手順を新たに定義情報に作成する
ことを特徴とするものである。
【0035】第17の発明に係るデータベースシステム
復元/移行装置は、前述したデータベースシステム退避
装置により退避された保存データを入力するとともに、
復元仕様又は移行仕様を入力し、上記保存データの依存
関係を参照することにより、復元又は移行するデータを
復元仕様又は移行仕様に適合するように評価して、デー
タベースを復元又は移行する復元/移行手順生成手段を
有することを特徴とするものである。
【0036】
【作用】第1の発明におけるデータベースシステム退避
装置においては、制御手段が退避命令に指定されたパラ
メータから保存すべき対象物を特定すると共に、退避手
順生成手段が定義情報を参照することにより、退避すべ
き手順を時間軸に沿って矛盾なく生成する。従って他の
業務開発中、あるいは他の業務が稼働中であるデータベ
ースシステムから、指定した業務に必要な定義情報を時
間軸、相互の関係を保存したまま抽出できる。これを用
いて業務動作に必要な情報を復元、移行することができ
る。
【0037】第2の発明におけるデータベースシステム
退避装置は、退避命令としてユーザ名、スキーマ名、表
名、ビュー名、プログラム名、権限名のいずれか1つが
指定されると共にその種類と範囲が指定され、制御手段
は退避命令による対象物と、その種類と範囲に基づい
て、退避に必要な対象物を定義情報から判定して、退避
すべき対象物として特定するので、コマンド解釈手段に
入力する退避命令には必要最少限の情報を入力すること
により、自動的に退避すべき対象物が特定されることが
可能になる。
【0038】第3の発明に係るデータベースシステム退
避装置は、データベースシステムがデータベース処理言
語によりアクセスでき、データベースアクセス手段がデ
ータベース処理言語を用いてデータベースシステムをア
クセスするため、特別なデータベースアクセス手段を持
つ必要が無く、従来のデータベースシステム及び従来の
データベースアクセス手段をそのまま用いてデータベー
スシステムを退避することが可能になる。
【0039】第4の発明におけるデータベースシステム
退避装置は、データベースシステムの情報を退避する場
合に、SQL等のデータベース処理言語によるコマンド
に変換して保存するため、これを入力してデータベース
を復元する場合、或いは別なシステムにデータベースシ
ステムを移行する場合に、特別な復元手段或いは、移行
手段というものを開発する必要が無く、従来のデータベ
ース処理言語を処理できる手段が備わっていれば、デー
タの復元或いはデータの移行が可能になる。
【0040】第5の発明におけるデータベースシステム
退避装置は、定義情報を退避する場合に、SQL等のデ
ータベース処理言語により定義情報を生成するための定
義コマンドに変換して保存するため、これを入力してデ
ータベースを復元する場合、或いは別なシステムにデー
タベースシステムを移行する場合に、特別な復元手段或
いは、移行手段というものを開発する必要が無く、従来
のデータベース処理言語を処理できる手段が備わってい
れば、データの復元或いはデータの移行が可能になる。
【0041】第6の発明におけるデータベースシステム
退避装置は、第5の発明におけるデータベース退避装置
が定義情報に対してデータベース処理言語による定義コ
マンドを用いたのに対して、データを退避する場合には
データベース処理言語によるデータ挿入のためのデータ
挿入コマンドに変換して退避するものである。従って、
データを復元する場合、或いはデータを新たなシステム
に移行する場合でも、従来からのデータベース処理言語
を処理できる手段が備わっていれば、データを復元或い
は移行することが可能になる。
【0042】第7の発明におけるデータベースシステム
退避装置は、データベースシステムを他のシステムに移
行するような場合に、移行先の他のシステムに既に同一
ユーザ名や同一ファイル名等が存在する場合に、これら
の名が重複することを避けることを可能にしたものであ
り、ユーザ名やファイル名等の置換可能な変数を予め置
換情報として生成し、保存するものである。この置換情
報を用いることにより、保存した情報を新たなシステム
に移行する場合に、変数の値を、移行しようとして居る
システムに既に存在しているユーザ名やファイル名と重
複しない名前に変えることが可能になる。
【0043】第8の発明におけるデータベースシステム
退避装置は、定義情報にある実行形式の処理手順を退避
することなく、またデータベースシステムにアクセスす
るプログラムに処理手順のソースコードをもたせてお
き、このプログラムを退避することを特徴としている。
このように実行形式の処理手順を退避しないことによ
り、退避するデータ量を削減することが可能になる。ま
た処理手順をソースコードで退避することにより、処理
手順移行先のシステムの環境で再コンパイルすることが
可能になり、移行先のシステム環境に最適な実行形式の
処理手順を生成することができる。
【0044】第9の発明におけるデータベースシステム
退避装置は、データベースのデータを退避することな
く、データベースのデータ記憶領域のみを確保するため
の領域確保コマンドを生成するため、退避すべきデータ
量の削減が図れると共に、他のシステムにデータベース
を移行する場合、定義情報が移行されると共に、データ
ベースの領域のみが確保されるため、移行先においてデ
ータを新規に蓄積していくような場合に、移行元のデー
タを移行せず領域のみを確保することが可能になる。
【0045】第10の発明におけるデータベースシステ
ム退避装置は、従来のジャーナルを退避する場合にアク
セス履歴情報をすべて退避していたのに対して、識別子
により関連するアクセス履歴情報を選択できるようにな
る。従って制御手段が特定した退避すべき対象物に関連
するアクセス履歴情報のみが退避可能になる。
【0046】第11の発明におけるデータベースシステ
ム退避装置は退避手順生成手段がユーザ、スキーマ、
表、ビュー、権限、プログラム間の依存関係を特定し、
制御手段がこの依存関係を保存するため、この保存され
たデータからデータを復元する場合、或いは移行する場
合に依存情報を参照することにより、データの選択、或
いは削除が可能になる。即ち、依存関係とは、データベ
ースシステムの定義情報に示されている各データベース
の構成要素の関連を抽出したものであり、この依存関係
を参照するということは、即ちデータベースシステムの
定義情報を参照するということに等しく、この依存関係
を保存データ内に保存しておき、復元移行の際に、この
依存関係を参照するということはデータベースシステム
の定義情報を参照するに等しく、結果として、保存され
たデータの中から更に別なデータを抽出したり、或いは
余分なデータを削除する場合に矛盾なく抽出或いは削除
することが可能になる。
【0047】第12の発明におけるデータベースシステ
ム復元装置は、データベースシステム退避装置により保
存されたデータを入力して、データベースシステムを復
元するものであり、データベースシステム退避装置が保
存媒体に対して、データを時間軸或いは相互の依存関係
を矛盾なく保存しているため、この保存データを順に入
力することにより、元のデータベースシステムを復元す
ることが可能になる。
【0048】第13の発明におけるデータベースシステ
ム移行装置は、同様に保存媒体が時間軸或いは相互関係
において、データを矛盾無く保存しているために、移行
の際には保存されたデータを順に新たなシステムにイン
ストールしていくことにより、必要な定義情報、或いは
必要なデータを新たなシステム先に構築することが可能
になる。
【0049】第14の発明におけるデータベースシステ
ム復元/移行装置は、保存されたデータがSQL等のデ
ータベース処理言語によるコマンドによって記述されて
いるため、このコマンドを実行することにより、定義情
報或いはデータベースのデータ等を復元または移行する
ことが可能になる。このようにデータベース処理言語に
より記述されたコマンドを実行するだけで、定義情報、
或いはデータ等を復元、または移行することが可能なた
め、従来から存在するデータベース処理言語の処理手段
をそのまま用いることにより、データベースシステムの
復元移行が可能になる。従ってデータベースシステムを
復元または移行するための特別な復元手段、或いは特別
な移行手段というものが不要になる。
【0050】第15の発明におけるデータベースシステ
ム移行装置は、データベースシステムを他のシステムに
移行する場合であって、移行先のシステムに既に重複す
るユーザ名やファイル名等が存在する場合に、置換情報
にある変数の値を置き換えることが可能になるため、移
行先においてユーザ名やファイル名等が重複することな
く、システムの移行をすることが可能になる。
【0051】第16の発明におけるデータベースシステ
ム移行装置は、データベースシステムを新たなシステム
に移行する場合に、実行形式の処理手順を保存データか
ら移行するのではなく、保存されたプログラム内にある
ソースコードをコンパイルすることにより、実行形式の
処理手順を定義情報内に作成する。従って、移行先のシ
ステム環境にあった最適な実行形式の処理手順が生成さ
れる。
【0052】第17の発明におけるデータベースシステ
ム復元/移行装置は、復元仕様又は移行仕様を入力し、
復元/移行手順生成手段が上記保存データの依存関係を
参照することにより、復元又は移行するデータを復元仕
様又は移行仕様に適合するように評価して、データベー
スを復元又は移行するので、保存データすべてを用いて
システムの復元、移行をするのではなく、保存データの
一部を用いてシステムの復元、移行をすることが可能に
なる。
【0053】
【実施例】
実施例1.従来例で説明したように、データベースの処
理言語として、SQLと呼ばれる国際標準言語が用いら
れることが一般的である。このため、以下では関係デー
タベースと国際標準データベース処理言語SQLを前提
として説明するが、内容的には他のデータベース、ある
いは他のデータベース言語でも同様に適用できる。又、
この実施例では、従来例で示した図17〜図27に示し
たデータベースシステムを具体例として説明する。図1
はこの発明の一実施例を示すデータベース及びプログラ
ム退避/移行/復元装置の一例を示す図である。ここで
退避とは、既に存在しているデータベース及びプログラ
ムの一部又は全部を磁気テープや磁気ディスク等の保存
媒体に複写することをいう。又移行とは、前述した退避
により保存媒体に複写してあるデータベース及びプログ
ラムを用いて、ある計算機システムにおいて動作してい
るデータベースシステムを他の計算機システムに移植す
ることを言う。又復元とは、前述した退避により保存媒
体に複写してあるデータベース及びプログラムを元の計
算機システムに複写し直すことをいう。ここで、移行と
復元の違いは、移行が他の計算機システムに対して行わ
れるのに対して、復元が元の計算機システムに対して行
われる点である。
【0054】以下、図に基づいてデータベース及びプロ
グラム退避/移行/復元装置の各部について説明する。 1)コマンド解釈装置 ユーザへのインタフェースを提供し、ユーザからの退
避、復元、移行などの要求とその対象物を受取り、正当
性を確認してこれら要求を制御部に送る。又、移行の場
合は、必要に応じてユーザ名などの置換指示をユーザよ
り受取り、これを制御部に送る。
【0055】2)制御部 装置全体を制御すると共に、データベース及びカタログ
アクセス装置を用いて、ユーザから指定された退避、復
元、移行の対象物を特定する。
【0056】退避の場合には、退避移行復元手順生成装
置を呼び出すことによりこれら特定された対象物と処理
要求から必要な定義情報、置換情報、依存情報を生成し
てこれをSQLの実行形式にして保存媒体アクセス装置
により保存媒体に順次記憶する。更に、指定によりデー
タ自身(実表の内容)をデータベース及びカタログアク
セス装置により読みだし、これをSQLの実行形式に変
換して保存媒体アクセス装置により保存媒体に記憶す
る。更に、指定によりジャーナルをデータベース及びカ
タログアクセス装置により読みだし、これを保存媒体ア
クセス装置により保存媒体に記憶する。更に、指定によ
りプログラムをプログラムアクセス装置により読みだ
し、これを保存媒体アクセス装置により保存媒体に記憶
する。また、以上の動作の際、ビューを評価して実表と
する指定がある場合、あるいはデータベースの実表の内
容に対してその一部をSQLコマンドの実行により変形
したい要求がある場合には、適宜ビューSQL実行装置
によりこれを実行する。
【0057】復元移行の場合には、保存媒体から定義情
報、置換情報、依存情報を読みだし、これら情報と指定
された対象物から退避移行復元手順生成装置を呼び出す
ことにより復元移行対象を選択する。これら特定された
対象物に対して置換が必要な場合、置換する内容をコマ
ンド解釈装置を経由してユーザから入力する。次に指定
により置換情報に従って必要な置換を行いながら、特定
された対象物に関する定義情報を保存媒体から保存媒体
アクセス装置により読みだし、データベース及びカタロ
グアクセス装置により復元移行する。これら定義情報は
SQLの定義系のコマンドの形となっているため、この
操作はこれらコマンドを実行することによりなされる。
更に、指定によりデータ自身(実表の内容)及びジャー
ナルを保存媒体アクセス装置により保存媒体から読みだ
し、これをデータベース及びカタログアクセス装置によ
りシステムに復元移行する。更に、指定によりプログラ
ムを保存媒体アクセス装置により保存媒体から読みだ
し、これをプログラムアクセス装置によりデータベース
システムに記憶する。また、以上の動作の際、ビューを
評価し、実表とする指定がある場合、あるいはデータベ
ースの実表の内容に対してその一部をSQLコマンドの
実行により変形したい要求がある場合には、適宜ビュー
SQL実行装置によりこれを実行する。 3)退避移行復元手順生成装置 制御部から対象物を受取り、これらに対して必要な定義
情報とその順序を生成する。退避の場合には、これら生
成に必要な情報はデータベース及びカタログアクセス装
置からカタログをアクセスすることにより得られる。復
元移行の場合には、これら生成に必要な情報は保存媒体
中にある依存情報をアクセスすることにより得られる。 4)ビューSQL文実行装置 指定されたビュー、またはSQL文を実行し、その結果
を制御部に送る。 5)保存媒体アクセス装置 保存媒体(磁気テープ、ディスク等)に対して指定した
内容を読みだし、書き込みする装置。 6)データベース及びカタログアクセス装置 データベースの内容及びカタログの内容を読みだし、書
き込みする装置。この場合には、データベースシステム
に対して必要なSQL文を実行することで機能が実現さ
れる。また、この装置によりジャーナルの内容の読みだ
し、またはジャーナルの内容をデータベースに適用し、
データベースを最新の状態にする。これらジャーナル操
作に対するSQLの規格は存在しないが、システム毎に
何等かの手段が用意されている。例えば、ジャーナルの
読みだし、設定は通常のOSのファイル読みだし、生成
により実行し、ジャーナルの実行はRECOVERコマ
ンドなどによりデータベースシステムが実行する。 7)プログラムアクセス装置 業務プログラムを読みだし、設置する装置。通常のOS
のファイルのアクセス機能で充分である。
【0058】次に動作について説明する。 1)コマンド解釈装置の動作 ユーザからの退避移行復元要求はまずコマンド解釈装置
により解釈され、内容の正当性が確認されて、これらを
内部形式に変換し、制御部に送る。コマンド解釈装置
は、以下のような指定を受け付ける。 動作指定 =BACKUP:退避動作 RESTORE:復元、移行先インストール動作 対象物のリスト=対象物、対象物、.... 対象物 =ユーザ名(ユーザの所有物全ての指定の省略形と解釈) スキーマ名(スキーマ下の全ての表を指定したと解釈) スキーマ名.表名(表を指定したと解釈) 権限名 プログラム名 対象種類指定 =D:データ C:カタログ P:プログラム これらの組み合わせ、例えばD+P等 対象範囲指定 =ONLY:指定された対象物のみを対象物とする。 DOWN:指定された対象物とこれらが参照している対象物 すべてを対象物とする。 ALL:指定された対象物とこれらが参照している対象物す べてとこれらを参照している対象物すべてを対象物とする。 制限範囲指定 =ユーザ名リスト(これらユーザ以外のユーザのスキーマ、表 等を対象としない) スキーマ名リスト(これらスキーマ以外のスキーマ、表等を 対象としない) ビューの内、それを実行して実表としたいもののリス
ト。実表の内、それに対してデータの選択、変形を行う
ためのSQL文のリスト。
【0059】2)制御部の動作 制御部は、コマンド解釈装置からの要求を解釈し、退
避、移行、復元操作の全体を制御する。 [退避の場合] (1)制御部は、コマンド解釈装置から受け付けた対象
物を退避移行復元手順生成部におくり、対象物の一覧と
定義情報、置換情報、依存情報を受け取る。対象物の一
覧として以下のものがある。 U:ユーザ一覧 S:スキーマ一覧 T:実表一覧 V:ビュー一覧 A:権限一覧 P:プログラム一覧 RU:制限ユーザ一覧 RS:制限スキーマ一覧 (2)ビュー一覧V中のビューで、ビューを評価し、実
表とする指定のあるものは、これを評価し、このビュー
を実表とする。定義情報、依存情報において、このビュ
ーに対応する情報を実表の情報に置き換える(CREA
TE VIEW文をCREATE TABLE文に置き
換える)。また、この実表を記憶しておく。また、この
ビューが参照しているビュー及び実表のうち、このビュ
ーのみにより参照されているものを定義情報から除く。 (3)対象種類指定にC(カタログ)があれば、置換情
報、定義情報、依存情報を保存媒体アクセス装置により
保存媒体に格納する。 (4)対象種類指定にD(データ)があれば、実表一覧
Tにある実表の内容をデータベース及びカタログアクセ
ス装置によりとりだし、これをINSERTコマンドと
して保存媒体アクセス装置により保存媒体に記憶する。
保存媒体に記憶する実表がビュー評価により(2)で生
成されたものであれば、(2)で記憶しておいた実表の
内容を保存媒体に記憶する。また、保存媒体に記憶する
実表に対してSQL文の実行の指定があればこれをビュ
ーSQL文実行装置により実行し、その結果をINSE
RTコマンドの形にして保存媒体に記憶する。また、対
象種類指定にD(データ)があれば、ジャーナルをデー
タベース及びカタログアクセス装置によりとりだし、こ
れを保存媒体アクセス装置により保存媒体に記憶する。
この際、ジャーナルには操作対象となった実表の識別子
が付されており、実表一覧Tにある表に関するジャーナ
ル内容のみを取り出す。対象種類指定にP(プログラ
ム)があれば、P(プログラム)にあるプログラムをプ
ログラムアクセス装置によりとりだし、これを保存媒体
アクセス装置により保存媒体に記憶する。
【0060】[復元移行の場合] (1)保存媒体アクセス装置から定義情報、置換情報、
依存情報を読み出す。 (2)制御部は、コマンド解釈装置から受け付けた対象
物と依存情報を退避移行復元手順生成部におくり、対象
物の一覧を受け取る。対象物の一覧は、 U:ユーザ一覧 S:スキーマ一覧 T:実表一覧 V:ビュー一覧 A:権限一覧 P:プログラム一覧 RU:制限ユーザ一覧 RS:制限スキーマ一覧 (3)コマンド解釈装置により置換指定をユーザから受
け取り、その置換内容で置換ファイルを置き換える。 (4)対象種類指定にC(カタログ)があれば、置換情
報により定義情報を置き換えながら、対象物に関する定
義情報をデータベース及びカタログアクセス装置により
復元、移行する。この場合は、SQLの定義コマンドC
REATE USER文群、CREATE SCHEM
A文群、CREATE TABLE、CREATE V
IEW、GRANT文群を読みだし、置換情報の内容に
従って置き換えを行ないながら、これら文を記憶されて
いる順に実行する。これら文は既に退避の際に時間的、
空間的に矛盾のない順に記憶されているため、この順に
実行を行なうだけでよい。ビュー一覧V中のビューで、
ビューを評価し、実表とする指定のあるものは、CRE
ATE VIEWコマンドからCREATE TABL
Eに変換してこれを実行する。また、これをSQL文の
一つとして記憶しておき、後に(5)で実行する。ま
た、このビューが参照しているビュー及び実表のうち、
このビューのみで参照されているものを定義情報から除
く。これは依存情報中で、このビューのみに依存してい
るものをたどることにより識別できる。
【0061】(5)対象種類指定にD(データ)があれ
ば、実表一覧Tにある実表の内容であるINSERT文
をデータベース及びカタログアクセス装置によりとりだ
し、これを実行してデータベースに復元する。また、こ
の実表に対してSQL文の実行の指定があればこれをビ
ューSQL文実行装置により実行し、その結果をT’と
して保存し、この表の内容を、 DELETE * FROM 表名 で一旦廃棄し、 INSERT INTO 表名 SELECT * FROM T’ により先の結果で置き換える。この具体例について以下
に説明する。例えば実表T1が存在し、これを参照する
ビューV1が存在するものとする。即ち、実表T1に対
してビューV1がSQL文の実行により評価される。も
し、実表T1がビューV1のみにより参照され、それ以
外のビューには一切参照されないことが依存情報等を参
照することにより判明した場合には、実表T1をデータ
ベースに記憶しておく必要はない。従って、その実表T
1を削除しても構わないことになる。この場合には、ビ
ューV1をT1に対して評価した結果をT’として一時
記憶しておき、実表T1が他のビューや他のプログラム
において参照されることが無いと判断された時点で実表
T1を削除し、T’に記憶しておいたビューV1を実表
として生成することが可能である。また、実表T1のデ
ータの内、例えばt11=100のデータのみを復元す
る場合などは、 SELECT * FROM T1 WHERE t11=100 を直接実行し、その結果でT1の元のデータを置きかえ
るものである。 (6)対象種類指定にD(データ)があれば、保存媒体
からジャーナルをとりだし、これをデータベースに適用
する。この際、ジャーナルには操作対象となった実表の
識別子が付されており、実表一覧Tにある表に関するジ
ャーナル内容のみを取り出す。 (7)対象種類指定にP(プログラム)があれば、P
(プログラム)にあるプログラムをプログラムアクセス
装置によりとりだし、これを保存媒体アクセス装置によ
り保存媒体に記憶する。
【0062】尚、データベースをあるマシンから別マシ
ンへ移行する場合はこれら全ステップを実行する。また
データベースを同一マシン上で復元するためには
(5)、(6)の二つのステップを実行すればよい。こ
れらは対象種類の指定でD(データ)のみを指定するこ
とにより実現される。また、指定により現在のデータ内
容を破壊して復元する場合には、 DELETE * FROM 表名 によりデータベース内容を一旦破壊して復元を行う。
【0063】データベースの内容自身の移行には、IN
SERTコマンドによりSQLコマンドとして運ぶので
はなく、システムにより更に高速な形で保存することも
可能である。例えば、データの内容をファイルの形で保
存し、復元の時もファイルのまま直接置き換えを行う、
などが可能である。この場合いは上記の復元操作におけ
るDELETE文などは不用となる。この後、業務が開
始され、復元された業務プログラムを実行する。この
際、SQLの手順一覧情報は移行しないため、移行先で
はSQL手順にアクセスしようとしてカタログ中にこれ
が見つからない。このため、システムは当該SQL手順
を再度コンパイルし、これを手順一覧情報に登録して実
行を再開する。これのように、SQLシステムの持つ動
的再コンパイル機構を利用することで、手順一覧情報も
自動的に再現できることになる。
【0064】次にコマンド解釈装置が受け付ける指定
と、その指定により制御部が退避移行復元手順生成装置
から受け取る対象物に関する具体例について説明する。
例えば、コマンド解釈装置に受け付けられる指定はいろ
いろな組み合わせが可能である。例えば、この指定した
業務に必要な定義情報の取りだし方として以下のような
場合が考えられる。 a)[必要な要素を全て指定する場合] 業務を構成しているユーザ、スキーマ、表、ビュー、プ
ログラム、権限、ユーザを全て指定し、これによりシス
テムが指定されたこれら情報を、相互関係や履歴的実行
順序を自動的に判断して必要な復元順序を生成する。 b)[ユーザ名を与えて他はシステムが自動的に抽出す
る場合] 業務を構成する一つまたは複数のユーザ名のみを与え
て、このユーザが所有するスキーマ、表、ビュー、プロ
グラム、権限を自動的に抽出し、これら情報を、相互関
係や履歴的実行順序を自動的に判断して必要な復元順序
を生成する。 c)[スキーマ名を与えて他はシステムが自動的に抽出
する場合] 業務を構成する一つまたは複数のスキーマ名のみを与え
て、このスキーマを所有するユーザ、及びスキーマの中
にある所有する表、ビュー、権限を自動的に抽出し、こ
れら情報を、相互関係や履歴的実行順序を自動的に判断
して必要な復元順序を生成する。 d)[表名を与えて他はシステムが自動的に抽出する場
合] 業務を構成する一つまたは複数の表名のみを与えて、こ
の表が属するスキーマ、及びそのスキーマを所有するユ
ーザ、その表に関する権限を自動的に抽出し、これら情
報を、相互関係や履歴的実行順序を自動的に判断して必
要な復元順序を生成する。 e)[ビュー名を与えて他はシステムが自動的に抽出す
る場合] 業務を構成する一つまたは複数のビュー名のみを与え
て、このビューが属するスキーマ、及びそのスキーマを
所有するユーザ、そのビューに関する権限、及びこのビ
ューが参照しているビュー及び表、これら参照に仮定さ
れている権限を自動的に抽出し、これら情報を、相互関
係や履歴的実行順序を自動的に判断して必要な復元順序
を生成する。 f)[プログラム名を与えて他はシステムが自動的に抽
出する場合] 業務を構成する一つまたは複数のプログラム名のみを与
えて、このプログラムが参照しているユーザ、スキー
マ、表、ビュー、権限を自動的に抽出し、これら情報
を、相互関係や履歴的実行順序を自動的に判断して必要
な復元順序を生成する。 g)[権限名を与えて他はシステムが自動的に抽出する
場合] 業務を構成する一つまたは複数の権限名のみを与えて、
この権限及び権限を付与しているユーザ、権限が付与さ
れているユーザ、権限対象の表、ビューを自動的に抽出
し、これら情報を、相互関係や履歴的実行順序を自動的
に判断して必要な復元順序を生成する。 h)上記のa)〜g)において、更に抽出された表、ビ
ューを参照しているビューの全体をも抽出し、これらビ
ューの生成に必要なスキーマ、ユーザ、権限を抽出し
て、これらを含めて相互関係や履歴的実行順序を自動的
に判断して必要な復元順序を生成する。 i)上記のa)〜g)及びそれらとh)の組み合わせに
おいて、抽出された情報を参照しているプログラムの全
体を抽出する。
【0065】次に従来例で示したデータベースの定義情
報の例を用いてコマンド解釈装置に対して指定されたも
のに対して制御部が定義情報を参照して特定するユーザ
一覧U、スキーマ一覧S、実表一覧T、ビュー一覧V、
権限一覧A、プログラム一覧Pの値をいくつかの例で示
す。以下に述べる例は前述したコマンド解釈装置が受け
付ける指定の例として述べた(a)から(i)には直接
対応していないが、その中の1つ、或いは複数を組み合
わせて指定した場合を示している。また以下の例におい
ては、説明を簡単にするためにコマンド解釈装置が受け
付ける全ての指定を示しているものではなく、単に対象
物のリスト、対象範囲、制限範囲指定の3つの指定のみ
を例示している。また、ユーザ一覧U、スキーマ一覧
S、ビュー一覧V、実表一覧T、権限一覧A、プログラ
ム一覧P、制限ユーザ一覧RU、制限スキーマ一覧RS
は制御部が退避移行復元手順生成装置から受け取る値を
それぞれ示すものである。退避移行復元手順生成装置
は、コマンド解釈装置に入力された指定から、これらユ
ーザ一覧U、スキーマ一覧S、実表一覧T、ビュー一覧
V、権限一覧A、プログラム一覧P、制限ユーザ一覧R
U、制限スキーマ一覧RSを求め制御部に出力するが、
その手順については後述する。また、例中に示すφの記
号は全体の意味を示すものであり、特に指定がされない
ことを示すものである。
【0066】
【0067】
【0068】
【0069】 例4 複数のビューと参照している実表 対象物のリスト=鈴木、田中、S1、S2 S1.V1、S2.V2、 S1.T1、S2.T2 対象範囲 =ONLY 制限範囲指定 =なし ユーザ一覧U =鈴木、田中 スキーマ一覧S =S1、S2 ビュー一覧V =V1、V2 権限一覧A =T1に関する田中の選択権 実表一覧T =T、T2 プログラム一覧P =φ 制限ユーザ一覧RU =φ 制限スキーマ一覧RS=φ
【0070】例3に対し、ビュー名のみを指定し、ビュ
ーが参照している表名を自動的に取り出すことを指定す
るのが例5である。
【0071】例4に対し、ビュー名のみを指定し、ビュ
ーが参照している表名を自動的に取り出すことを指定す
るのが例6である。 例6 複数ビューを退避、関連実表自動退避 対象物のリスト=S1.V1、S2.V2 対象範囲 =DOWN 制限範囲指定 =なし ユーザ一覧U =鈴木、田中 スキーマ一覧S =S1、S2 ビュー一覧V =V1、V2 実表一覧T =T1、T2 権限一覧A =T1に関する田中の選択権 プログラム一覧P =φ 制限ユーザ一覧RU =φ 制限スキーマ一覧RS=φ
【0072】 例7 ビューを退避、参照している表を退避 対象物のリスト=S1.V2 対象範囲 =DOWN 制限範囲指定 =なし ユーザ一覧U =鈴木、田中 スキーマ一覧S =S1、S2 ビュー一覧V =V2 実表一覧T =T1、T2 権限一覧A =T1に関する田中の選択権 プログラム一覧P =φ 制限ユーザ一覧RU =φ 制限スキーマ一覧RS=φ
【0073】 例8 ビューを退避、関連表を全て自動退避 対象物のリスト=S1.V2 対象範囲 =ALL 制限範囲指定 =なし ユーザ一覧U =鈴木、田中 スキーマ一覧S =S1、S2、S3 ビュー一覧V =V2、V3 実表一覧T =T1、T2 権限一覧A =T1に関する田中の選択権 プログラム一覧P =φ 制限ユーザ一覧RU =φ 制限スキーマ一覧RS=φ
【0074】 例9 関連の複雑なビューを退避 対象物のリスト=V3 対象範囲 =DOWN 制限範囲指定 =なし ユーザ一覧U =鈴木、田中 スキーマ一覧S =S1、S2、S3 ビュー一覧V =V2、V3 実表一覧T =T1、T2 権限一覧A =T1に関する田中の選択権 プログラム一覧P =φ 制限ユーザ一覧RU =φ 制限スキーマ一覧RS=φ
【0075】
【0076】
【0077】
【0078】 例13 プログラムと関連物を退避 対象物のリスト=PROG2 対象範囲 =DOWN 制限範囲指定 =なし ユーザ一覧U =鈴木、田中 スキーマ一覧S =S1、S2、S3 ビュー一覧V =V1、V2、V3 実表一覧T =T1、T2 権限一覧A =T1に関する田中の選択権 プログラム一覧P =PROG2 制限ユーザ一覧RU =φ 制限スキーマ一覧RS=φ
【0079】 例14 プログラムと表を退避 対象物のリスト=PROG1、T1 対象範囲 =DOWN 制限範囲指定 =なし ユーザ一覧U =鈴木、田中 スキーマ一覧S =S1、S2 ビュー一覧V =V1、V2 実表一覧T =T1、T2 権限一覧A =T1に関する田中の選択権 プログラム一覧P =PROG1 制限ユーザ一覧RU =φ 制限スキーマ一覧RS=φ
【0080】
【0081】
【0082】次に、図2に保存媒体の内容の例を示す。
図2において、50は置換情報、60は定義情報、80
は依存情報、100はデータ本体、110はジャーナ
ル、120はプログラム群である。
【0083】置換情報50にはユーザ名の置換情報が記
録されている。この例では、置換情報各々は$ではじま
る仮の名前で表されている。この例においては、ユーザ
1が鈴木であり、ユーザ2が田中であることを示してお
り、この置換情報を置換しなければ、ユーザ1は鈴木、
ユーザ2は田中として復元、或いは移行できる。しか
し、移行先のシステムに既にユーザ名鈴木、又はユーザ
名田中が存在している場合にはこの置換情報を用いるこ
とにより、例えばユーザ1を鈴木ではなく山田というユ
ーザ名に変更することが可能になる。すなわち、以後に
出てくる$U1という変数は全て山田に置き換えられて
インストールされることになる。
【0084】次に、定義情報60は定義情報を生成する
ための情報がSQL文により、記述されている。61に
おいてはユーザ1が生成され、62においてはユーザ2
が生成されることを示している。63においては、次の
64のスキーマ作成者をユーザ1に設定する。そして6
4においては、63において設定されたユーザ1の所有
物としてスキーマS1を生成する。同様に、65から6
7においてはユーザ2に対してスキーマS2、S3が作
成される。また68においては以下のSQL文の実行者
をユーザ1に設定する。69においては実表T1が生成
される。70においては実表T1を参照する権限をユー
ザ2に与えると共に、ユーザ2はその参照権限を他のユ
ーザに与えるオプションを持っていることを宣言してい
る。71においては実表T1から列t11が100以上
のものだけをセレクトしてビューV1を生成することを
定義している。次に、72〜75においてはユーザ2に
対してテーブル2を生成し、実表T1と実表T2からビ
ューV2を生成し、更に、ビューV2からビューV3を
生成することを記述している。
【0085】次に、依存情報80は、退避したデータベ
ースシステムの定義情報から抽出された依存関係を示し
ているものである。この例においては81、82におい
てユーザ1及びユーザ2は何にも依存しないことを示し
ている。また83においてはスキーマS1はユーザ1の
存在が必要であることを示している。84と85におい
てはスキーマS2、S3はユーザ2の存在が必要である
ことを示している。即ち、スキーマ1を生成する場合に
は、ユーザ1が先に存在していなければならない。同様
に、スキーマS2、S3を生成する場合にはユーザ2が
存在しなければ生成できないことを示している。次に、
86においては実表T1はスキーマS1の存在が必要で
あることを示している。87においては実表T2はスキ
ーマS2の存在が必要であることを示している。88に
おいてはビュー1は実表T1とスキーマS1の存在が必
要であることを示している。89においてはビューV2
が実表T1、T2及び、スキーマS2の存在が必要であ
るとともに、ユーザ1からユーザ2に対する実表T1に
関する選択権が必要であることを示している。90にお
いてはビューV3はビューV2とスキーマS3の存在が
必要であることを示している。次に、89で示したユー
ザ1からユーザ2への実表T1に関する選択権は、ユー
ザ1とユーザ2と実表T1が存在することが必要である
ことを示している。92においてはプログラムP1はビ
ューV2の存在が必要であることを示している。また、
93においてはプログラムP2は実表T2が存在が必要
であることを示している。94においては、プログラム
P3はビューV1とビューV3の存在が必要であること
を示している。
【0086】これらの依存情報は、従来例で説明した定
義情報の一覧情報から抽出することが可能である。例え
ば、81、82はユーザ一覧情報を参照することによっ
て抽出できる。また83〜85はスキーマ一覧情報を参
照することにより抽出することが可能である。また8
6、87は表一覧情報を参照することにより抽出可能で
ある。また88〜89は表一覧情報と、ビュー定義一覧
及びビュー対表の参照関係及び権限一覧を参照する事に
より、抽出可能である。また、91は権限一覧を参照す
る事により抽出可能である。また92〜94は手順対表
参照関係から抽出することが可能である。
【0087】データ本体100はデータベースの実際の
データをSQL文のインサートコマンドにより記述した
ものであり、101は実表T1のデータ挿入コマンドで
あり、102は実表T2のデータ挿入コマンドである。
【0088】次にジャーナル110にはジャーナルの通
常のファイルの形式の履歴データが存在するが、ここで
は前述した退避すべき対象物に関する履歴情報が、表名
という識別子により抽出されて記述される。例えば、こ
の例においては、実表T1とT2が退避されるため、ジ
ャーナル110には実表T1とT2という識別子がつい
た履歴データのみが、ここに付加されることになる。
【0089】次にプログラム群120には通常のファイ
ル形式のプログラムが付加されるが、例えばこのプログ
ラムをプログラムA、B、C、Dの4つのロードモジュ
ールであるとするならば、このプログラムはCOBOL
等の一般のプログラム処理言語で記載されており、その
プログラム言語の一部にSQLで記述された手順がソー
スコードの形式で存在すると共に、その実行形式の手順
を呼ぶためのコール文が存在している。この例において
は、手順としてP1、P2、P3が退避べき対象物とし
て特定されるが、手順P1、P2、P3は定義情報内に
ある実行形式の手順が保存されるのではなくCOBOL
プログラムのロードモジュールA、B、C、D内にある
手順P1、P2、P3のソースコードがプログラム群の
一部として保存される。定義情報内にある実行形式の手
順P1、P2、P3の保存はされない。
【0090】このように、通常プログラムに対応するロ
ードモジュール中にデータベース処理言語の原プログラ
ムを保持し、移動先のデータベース処理システム上でこ
のロードモジュールを実行し、データベース処理手順の
識別子を用いて、移動先のデータベース処理システム上
のデータベース処理手順を登録するカタログ領域にある
データベース処理手順を検索し、これが存在しないこと
により、ロードモジュール中のデータベース処理言語の
プログラムを動的に再コンパイルし、これを移動先のシ
ステムのデータベース処理手順を登録するカタログ領域
に移動先のロードモジュールのファイル識別子と、デー
タベース処理手順相対番号により新たに登録し、再び該
データベース処理部の実行を継続する。この際、データ
ベース処理手順の識別子は、カウンタなどの値ではな
く、当該アプリケーションの走行しているシステム上で
実行時に採取したロードモジュールのファイル識別子を
用いる。従って、このような移植動作によってもデータ
ベース処理手順の一意性が保証されることになる。即
ち、埋め込まれたデータベース処理言語により記述され
たデータベース処理部には、データベース処理アプリケ
ーション実行時に得た当該アプリケーションプログラム
の通常プログラム部に対応するロードモジュールのオペ
レーティングシステム上でのファイルの識別子と、当該
データベース処理部の当該アプリケーションプログラム
中での相対番号の値の組からなる識別子を与え、実行時
に通常プログラムがデータベース処理が必要と成った場
合には、実行時に得た自ロードモジュールのオペレーテ
ィングシステムのファイル識別子と、必要とするデータ
ベース処理部のアプリケーション内相対番号を組とし
て、データベース処理手順を登録したカタログ領域を検
索し、これにより通常プログラム部から登録された所要
のデータベース処理部を呼出す。
【0091】3)退避移行復元手順生成装置の動作 まず、渡された対象物指定を以下のように解釈し、対象
物の一覧を得る。尚、以下で(*)の部分は、退避の場
合にはデータベースのカタログ情報から識別が可能であ
り、また復元の場合には依存情報から識別が可能であ
る。
【0092】(1)ユーザ一覧U =φ:指定された
ユーザ全体を記憶する内部変数 スキーマ一覧S =φ:指定されたスキーマ全体を記憶
る内部変数 ビュー一覧V =φ:指定されたビュー全体を記憶す
る内部変数 実表一覧T =φ:指定された実表全体を記憶する
内部変数 権限一覧A =φ:指定された権限全体を記憶する
内部変数 プログラム一覧P=φ:指定されたプログラム全体を記
憶する内部変数
【0093】(2)指定された各対象物に対して指定さ
れているものが以下のような場合、それぞれの対象物を
次のように決定する。 なお、以下に用いた記号∪はその記号左側に記載した集
合に、その記号右側に記載したものを合併する事を示す
記号である。 a)ユーザ名が指定されている場合 ユーザ一覧U =ユーザ一覧U∪このユーザ名。 スキーマ一覧S=スキーマ一覧S∪当該ユーザが所有している全てのスキー マ (*) 実表一覧T =実表一覧T∪これらスキーマ中の全ての実表 (*) ビュー一覧V =ビュー一覧V∪これらスキーマ中の全てのビュー (*) b)スキーマ名が指定されている場合 ユーザ一覧U =ユーザ一覧U∪当該スキーマを所有するユーザ (*) スキーマ一覧S=スキーマ一覧S∪当該スキーマ 実表一覧T =実表一覧T∪当該スキーマ中の全ての実表 (*) ビュー一覧V =ビュー一覧V∪当該スキーマ中の全てのビュー (*) c)スキーマ名.表名が指定されている場合 スキーマ一覧S =スキーマ一覧S∪この表が所属するスキーマ名 (*) とする。更にこれらをこの表が実表であれば (*) 実表一覧T =実表一覧T∪この表 そうでなければ (*) ビュー一覧V =ビュー一覧V∪この表 d)権限が指定されている場合 ユーザ一覧U =ユーザ一覧U∪当該権限を付与しているユーザ∪当該権 限を受領しているユーザ (*) 当該権限の対象物に対し、上記c)を実行する。 権限一覧A =権限一覧A∪当該権限 e)プログラム名が指定されている場合 当該プログラムが参照している表に対し、上記c)を実行する。 プログラム一覧P=プログラム一覧P∪当該プログラム 上記の(*)について、カタログからこれを得る場合に
ついては後述のデータベース及びカタログアクセス装置
の説明の際に述べる。また、依存情報からこれを得る場
合には、以下のようになる。 例1:あるスキーマに属する表一覧を得る。 =このスキーマに依存するビュー及び表を取り出す。 図2に示す例では、S1に属する表一覧は86と88か
らS1に依存するT1とV1とわかる。 例2:あるビューが参照している表一覧 =このビューが依存するビュー及び実表を取り出す。 図2に示す例では、ビューV2が参照する表は89のV
2の依存部を見て、T1、T2とわかる。
【0094】(3)対象範囲指定がONLYとTOWN
とALLの場合の対象物の特定は、以下のようにして行
う。 a)ONLYの場合、指定された対象物に対して、以下
の確認を行なう。 ・実表一覧T、ビュー一覧Vにある実表、ビューが所属
するスキーマがスキーマ一覧S中にあるか? ・スキーマ一覧S中のスキーマの所有者がユーザ一覧U
にあるか? ・ビュー一覧Vの参照しているビュー、実表がビュー一
覧V、実表一覧Tにあるか? ・ビュー一覧Vの生成に必要な権限が権限一覧Aにある
か? 以上の条件を満たさない場合は、エラーとする。 b)DOWNの場合は、以下のようにして対象物の特定
を行う。 これは、以下の退避復元移行手順生成装置のうごきと同
じであるが、説明のため、ここに記述する。 ・現在のビュー一覧Vの各ビューvについて、以下の特
定を行う。 ビューvが参照している各表tについて、 表tがビューの場合:ビュー一覧V=ビュー一覧V∪表
t 表tをビューvとしてこれを再帰的に繰り返す。 表tが実表の場合 :実表一覧T=実表一覧T∪表t ・ビュー一覧V、実表一覧Tが所属するスキーマでまだ
スキーマ一覧Sにないものをスキーマ一覧Sに加える。 ・スキーマ一覧Sにあるスキーマでまだその所有者がユ
ーザ一覧Uにないものをユーザ一覧Uに加える。 これにより、全ての対象物を指定せずとも、a)ONL
Yの場合の条件が自動的に満たされ、対象物の内容は閉
じたものとなる。 例1:ユーザ一覧U=田中、スキーマ一覧S=S2、ビ
ュー一覧V=V2、実表一覧T=φの場合、 V2が参照している実表T1、T2を実表一覧Tに加え
る。スキーマ一覧SにS1を、ユーザ一覧Uに鈴木を加
える。 例2:ユーザ一覧U=田中、スキーマ一覧S=S3、ビ
ュー一覧V=V3、実表一覧T=φの場合、 V3が参照しているビューV2をビュー一覧Vに加え
る。スキーマ一覧SにS2を加える。 更にV2が参照している実表T1、T2を実表一覧Tに
加える。スキーマ一覧SにS1を、ユーザ一覧Uに鈴木
を加える。 c)ALLの場合は、以下のようにして対象物の特定を
行う。 ・DOWNの場合の手順を実行する。 ・B=実表一覧T ・D=φ ・L:現在のBの各表tについて a)もし、全てのtについてこれを参照しているビュー
がなければ終わり b)そうでなければtを参照している各ビューvについ
て ・権限一覧A=権限一覧A∪tに関してvの所有者に出
されている権限 ・ビュー一覧V=ビュー一覧V∪v ・vが参照している表が全てB中にある場合: B=B∪v D=D∪v ・B=D、D=φ ・Lに戻る。 これらDOWNとALLの場合を図示すると図3のよう
になる。
【0095】(4)制限範囲指定で指定されたユーザ名
群を制限ユーザ一覧RUに入れる(なければ制限ユーザ
一覧RUはφ)。制限範囲指定で指定されたスキーマ名
群を制限スキーマ一覧RSに入れる(なければ制限スキ
ーマ一覧RSはφ)。
【0096】(5)ユーザ一覧U=ユーザ一覧U∩制限
ユーザ一覧RU(ユーザ一覧Uと制限ユーザ一覧RUの
交わり) スキーマ一覧S=スキーマ一覧S∩制限スキーマ一覧R
S(スキーマ一覧Sと制限スキーマ一覧RSの交わり)
【0097】(6)以上で定まった実表一覧T、ビュー
一覧Vからスキーマ一覧Sにあるスキーマ中にない実
表、ビュー表を除く。
【0098】(7)復元、移行の場合には、これらユー
ザ一覧U、スキーマ一覧S、ビュー一覧V、実表一覧
T、権限一覧A、制限ユーザ一覧RU、制限スキーマ一
覧RSを、指定されたパラメータとともに制御部に渡
す。
【0099】(8)退避の場合には以下の手順を実行す
る。 1)ユーザ一覧Uで指定されたユーザを生成するCRE
ATE USER文を生成し、定義情報とする。この
際、ユーザ名は個々に異なる置き換え可能な変数とし、
この変数名とユーザ名自身を組として置換情報として順
に記憶する。 2)指定されたユーザ一覧U及び指定されたスキーマ一
覧Sを基に、これらスキーマを生成するCREATE
SCHEMA文を生成し、定義情報として記憶する。 3)これらユーザ、スキーマに関連する表、ビュー、ア
クセス権を生成、定義するCREATE TABLE、
CREATE VIEW、GRANT文を生成し、定義
情報として記憶する(詳細は後述する)。 4)上記において判明している依存関係を依存情報とし
て記憶する。依存関係は以下のようにして識別される。 ・ユーザ一覧U中のユーザ名は何にも依存しない。 ・スキーマ一覧S中のスキーマ名はその所有者のユーザ
に依存するとして依存情報を生成する。 ・実表一覧T中の実表はそれが存在するスキーマに依存
するとして依存情報を生成する。 ・ビュー一覧V中のビューは、ビュー一覧Vが参照して
いる実表またはビューとそれに関する権限、及びビュー
一覧Vが存在するスキーマに依存するとして依存情報を
生成する。。 ・権限は、権限付与者、権限受領者、権限対象の表に依
存するとして依存情報を生成する。 ・プログラムはプログラムが参照している表に依存する
として依存情報を生成する。
【0100】次に回避復元手順生成装置が行う表、ビュ
ー、権限の保存の手順に付いて説明する。表、ビューは
相互に関連があり、またビューを生成する際には権限が
必要となる。従って、ビュー生成の文を実行する前には
ビューが参照している表生成のCREATE TABL
E文とビューが仮定している権限を定義するGRANT
文が実行されてなければならない。従って、表、ビュ
ー、権限の保存の大まかな手順は以下のようになる。 (1)まず、該当する表をすべて生成する。この際に各
表を生成する度に表に関して付与されている権限を定義
する。 (2)次に、これら表のみを参照しているビューを生成
する。この際に各ビューを生成する度にビューに関して
付与されている権限を定義する。 (3)次に、これら表、及びビューのみを参照している
ビューを生成する。この際に各ビューを生成する度にビ
ューに関して付与されている権限を定義する。 (4)現在までに生成された表及びビューを参照してい
るビューがなくなると停止する。
【0101】以上の過程において、権限に対するGRA
NT生成の際、複数のGRANT文が生成される場合が
ある。例えば、表T1を伏見が作成し、この権限をWI
THGRANT OPTION付きで安藤に渡す。安藤
は岩崎に更に渡す。この場合、伏見→安藤、安藤→岩崎
の順にGRANT文を生成しないと正しく実行できな
い。この順序を正しく生成する手順が必要となる。以下
に、もっとも一般的な形として上記手順により実表一覧
が得られ、かつ対象範囲指定でALLが選択された場合
に、CREATE TABLE文、CREATE VI
EW文、GRANT文が正しい順で生成される手順の一
例を示す。尚、CREATE USER文、CREAT
E SCHEMA文は各々ユーザ一覧で、スキーマ一覧
Sからそのまま生成できる為、その説明は省略する。 [入力] 実表一覧T :対象となる表一覧 [出力] CREATE TABLE,CREATE VIEW,
GRANT文の列、 [手順:] (1)ハッシュ表Bを空にする。Bは現在までにCRE
ATEを生成したすべての表、ビューを記憶する。 (2)ハッシュ表Dを空にする。Dは、現在までにCR
EATEを生成したビュー、表の内、まだ上位のビュー
で参照されている可能性のあるもの全体を示す。 (3)実表一覧T中の各表tに対し、tがスキーマ一覧
Sのいづれの要素のスキーマにもなければ何もしない。
そうでなければ表tに対するCREATE TABLE
文を生成する。表tをスキーマ名とともにハッシュ表B
に登録する。表tをスキーマ名とともにハッシュ表Dに
登録する。表tをオブジェクトとするGRANT文を下
記のGRANT文生成手順で生成する。 (4)ここをLOOPラベルとする。ハッシュ表Cを空
にする。Cは、Dの要素であるビュー、表を参照してい
るビューの全体を示す。ハッシュ表Dの各表dに対し、
表dを参照している各ビューvに対し、以下a)を繰り
返す。 a)もし、ビューvがスキーマ一覧Sの要素のいづれか
のスキーマにあればビューvをハッシュ表Cに登録す
る。ハッシュ表Cが空であればDを空にして終り。そう
でなければ、ハッシュ表Dを空にする。ハッシュ表Cの
各表cに対して、以下a)、b)を繰り返す。ビューv
が参照している各ビューまたは表tvに対し、 a)もしtvがハッシュ表Bにあればcontinue b)もしtvがハッシュ表Bになければbreak もしvが参照しているすべてのビューまたは表がハッシ
ュ表Bに存在すれば(つまりcontinueで上を終
了すれば)、 a)vに関するCREATE VIEW文を生成する。 b)vをハッシュ表Bに登録する。 c)vをハッシュ表Dに登録する。 LOOPラベルに戻る。
【0102】以上の手順を図2に示す具体例を用いて説
明する。先ず図4に示されるようにハッシュ表B、C、
Dが用意されているものとする。まず、スキーマS1か
ら表T1が選択され、実表T1が生成され、実表T1が
スキーマ名と共にハッシュ表Bとハッシュ表Dに登録さ
れる。そして、この実表T1をオブジェクトとするGR
ANTが生成される。ここまでの時点で図2に示す6
8、69、70までの定義情報が生成される。次に、こ
の実表T1を参照しているビューV1が存在しているの
で、これをハッシュ表Cに登録する。この時点でハッシ
ュ表B、C、Dは図5に示すような状態になる。
【0103】次に、ハッシュ表Dが空にされ、ハッシュ
表Cに登録されているビューV1が参照しているビュー
または表(この場合には表T1)が既にハッシュ表Bに
登録されているため、ビューV1に関するCREATE
文を生成する。この時点で図2の71が生成される。そ
して、ビューV1をハッシュ表B及びハッシュ表Dに登
録する。この時点で各表は図6に示されるような状態に
なる。尚、図2の70については後述する。
【0104】次に、前述した手順のループラベルの部分
に戻ることになる。ハッシュ表Cを空にし、ハッシュ表
Dにある表V1に対して表V1を参照しているビューが
あるかどうかをチェックする。この時点ではビューV1
を参照しているビューは存在していないため、ハッシュ
表Cに登録するものは何もなく、ハッシュ表が空である
ためこのループを終了する。
【0105】次にスキーマS2が持つ実表T2に対して
同様の処理が行われる。図7に示すように、実表T2が
スキーマ名と共にハッシュ表B及びハッシュ表Dに登録
される。この時点で、各表は図7に示すような状態にな
る。次に、この実表T2に対するGRANT文を生成す
ることになるが、この実表T2に対しては権限の付与が
ないため、何も生成されない。以上の時点までで、図2
に示す72と73が生成されたことになる。
【0106】次にハッシュ表Cを空にし、ハッシュ表D
に登録された実表T2を参照しているビューがあるかど
うかをチェックする。この場合にはビューV2が存在し
ているため、ビューV2をハッシュ表C2に登録する。
この時点で各表は図8に示すような状態になる。
【0107】次にハッシュ表Dを空にし、ハッシュ表C
に登録されたビューV2が参照している各ビューまたは
表が、ハッシュ表Bに登録されているかどうかをチェッ
クする。ビューV2は実表T1とT2を参照している
が、このT1とT2は共に既にハッシュ表Bに登録され
ている。従ってビューV2に関するCREATE文を作
成する。この時点で図2に示した74が生成される。そ
して、ビューV2をハッシュ表Bとハッシュ表Dに登録
する。この時点で各表は図9に示したような状態にな
る。そしてループラベルに戻る。ループラベルに戻ると
ハッシュ表Cを空にし、ハッシュ表Dに登録されている
表に対してその表を参照しているビューが有るかどうか
をチェックする。ビューV2に対しては、ビューV3が
参照しているためビューV3をハッシュ表Cに登録す
る。この時点で各表は図10に示すような状態になる。
ビューV3は、ビューV2のみを参照しており、このビ
ューV2はすでにハッシュ表Bに登録されているため、
このビューV3に対するCREATE文を生成する。こ
の時点で図2の75が生成される。そしてビューV3を
ハッシュ表Bとハッシュ表Dに登録する。この時点で各
表は図11に示すような状態になる。ここで再びループ
ラベルに戻るが、次にはこのビューV3を参照するビュ
ーが存在しない為、ハッシュ表Cに新たに登録するビュ
ーは存在せず、ハッシュ表がからになるためこの処理を
終了する。このようにして前述した手順を用いることに
より、表及びビューを矛盾なく生成することが可能にな
る。
【0108】次に、GRANT文生成の手順について説
明する。 GRANT文生成の手順(入力:対象物名、所有者名) (1)ハッシュ表Gを空にする。 (2)Gに”所有者名”を登録する。 (3)ここをLOOPラベルとする。 (4)Gが空ならばここでおわり。 そうでなければHを空にする。 G内の各人間gに対し、付与者がg、対象物が”対象物
名”である権限すべてに関して、GRANT文を生成す
る。 権限がWITH GRANT OPTION付きであ
り、かつ権限受領者がユーザ一覧Uの要素であれば、H
にその権限の権限受領者を登録する。 G=Hとする。 LOOPラベルに戻る。
【0109】次に、上記GRANT文生成手順の具体例
について説明する。このGRANT文生成手順は前述し
た表、ビューの保存手順を生成する過程に呼ばれるもの
であり、ここでは図2に示した70のGRANT文が生
成される場合について説明する。図2の70は$U1が
$U2に対して選択権を与えているものであるが、図1
2に示すように、ハッシュ表Gに先ず$U1として所有
者名鈴木が登録される。次にこの鈴木が持っている権限
全てに関してGRANT文を生成する。このGRANT
文の生成は、図24に示した権限一覧を参照することに
より行われる。権限一覧にはシステムが権限を付与した
場合と、特にユーザが他のユーザに権限を付与した場合
が存在するが、ここでシステムが付与した権限は無視さ
れ、あるユーザが他のユーザに付与した権限のみが選択
される。この例においてはユーザ鈴木がユーザ田中に選
択権を与えているため、ユーザ鈴木からユーザ田中に対
して選択権を与えるGRANT文が生成される。また、
この場合は、権限を再付与することができるため、表H
にその権限を再付与することができるユーザ名田中を登
録する。この時点で図13のような状態になる。次に、
この表Hをハッシュ表Gに置き換える。即ち、図14の
ようにハッシュ表Gには田中が登録される。この田中が
持つ権限を前述したと同様に権限一覧の中から検索し、
もし田中が他のユーザに対して権限を与えている場合に
は、その権限全てに対して再びGRANT文が生成され
ることになるが、この例では田中が他のユーザに権限を
与えていることは、権限一覧には登録されていないた
め、GRANT文は生成されない。このように、ユーザ
1が鈴木である場合にはGRANT文が1つ生成され
る。
【0110】4)データベース及びカタログアクセス装
置の動作 データベースの内容自身、及びカタログの内容をアクセ
スする装置である。この部分は、データベース中核に特
別なインタフェースを設けて実現することができるが、
SQLなどでは、この部分自身もSQLで記述できる。
まずデータベースのアクセスについて説明する。例え
ば、指定した実表Tの内容を取り出すには、 SELECT * FROM T なるSQL文を実行すればよい。また、指定した内容を
実表Tの内容にするには、 INSERT INTO T1 ((1,AAA,2),(2,bbb,4),...) なるSQL文を実行すればよい。多くのSQLシステム
では更に高速の表の内容挿入インタフェースを持ってい
るのでそれを用いてもよい。例えば、論理名‘/DEV
/MT00’なる磁気テープの内容を実表Tの内容とす
るには、 INSERT INTO T1 FROM /DEV/MT00 次にカタログのアクセスについて説明する。例えば、退
避移行復元手順生成装置で必要とされるカタログ情報は
以下のようにしてSQLによりカタログから得られる。 当該ユーザuが所有している全てのスキーマ SELECT スキーマ名 FROM スキーマ情報一
覧 WHERE 所有者=u スキーマs中の表tを参照しているビューの一覧 SELECT ビュー名 FROM ビュー対表の参照
関係 WHERE 参照表名=t AND 参照表スキーマ名
=s 以上のようにすることにより通常のSQLプログラムに
より通常のSQLのインタフェースで必要な情報が採取
できる。
【0111】また、復元時及び移行時には、対象となる
システムにおけるカタログ内容を復元するには、上記の
ようにSQLの定義系コマンドを実行することにより自
動的に復元できる。例えば移行先で、 を実行することにより、表一覧、列一覧情報中に所要の
情報が設定される。また、表一覧情報中の表毎の列の個
数なども保存内容になくともこれらコマンドの実行によ
り自動的に復元される。あるいは、 CREATE VIEW V1(v11、v12) AS SELECT * FROM T1 WHERE t11>100 を実行することにより、ビュー表参照関係の情報や、ス
キーマ内に表が増加したことによるスキーマ内表数の列
なども自動的に更新されることになる。即ち、これら情
報は、退避の際に保存する必要がないことがわかる。
【0112】以上のように、この実施例は、データベー
スシステム中で開発された複数の業務から所要の業務に
関連する定義情報を取り出し、これに加えて、業務に必
要とされるデータ、業務プログラムのみをとりだし、業
務パッケージとして作成し、これを別のマシン、システ
ムに移行可能とすることを特徴とする。
【0113】また、定義情報の取りだしの際に、カタロ
グ情報自身がSQLでアクセス可能な場合、カタログ情
報の読みだしをSQLにより実行することにより特別な
カタログ情報アクセス手段を不要とすることを特徴とす
る。
【0114】また、移行内容の内の定義情報の部分を、
通常のSQLの定義情報定義のコマンド(CREATE
TABLEなど)の履歴的に矛盾のない列に変換し、
復元時には特殊なシステムインタフェースを不要とし、
通常のSQLの定義コマンド群を指定された順に実行す
ることにより復元が可能とする。また、データ自身もS
QLのデータ投入コマンドにより変換し、移行時これを
実行することにより復元が可能になる。更に、これがS
QLという国際標準言語を用いるため、ベンダを超えて
パッケージの移行が可能となる。例えば、上記のスキー
マ中の表の数などは、移行先で表定義のSQL文を順時
実行することによりシステムにより通常の方法で自動的
にこの部分を変更するため、関連する情報の移行が不必
要となる。また、特殊なインタフェースが不要となる。
【0115】また、ユーザ名、データが格納されるシス
テム上の位置など、移行先のシステムで衝突の可能性の
あるものを置き換え可能とし、移行時にはこれらを適宜
置き換えるだけでパッケージのインストールが可能なこ
とを特徴とする。
【0116】また、SQLの手続き部分は保管せず、移
行先で実行を行なった際にカタログ内にこの手続きがな
いことによりその場で再コンパイルを行ない、その結果
を登録することにより、SQLの手続き部を保管するた
めの記憶を節約し、更に移行先での最適化パラメタなど
に応じた業務プログラム移行を可能とすることを特徴と
する。
【0117】また、データベース本体を退避/復元せ
ず、復元時にデータべース定義及びその記憶領域のみを
確保し、退避のための記憶領域を節約する。更に、これ
により業務動作に必要な枠組のみをパッケージとしてイ
ンストールし、データベース内容は移行先で業務の運用
が進むに連れて蓄積されることを可能とする。
【0118】また、この手順を従来のデータベースの単
純な保管/復元手順にも応用し、パッケージ生成とデー
タベースの保管/復元を一つの手順で実行することを特
徴とする。
【0119】また、ジャーナルを保管する際には、ジャ
ーナルの履歴レコードに表の識別子を付与しておくこと
によって、表単位の保管/復元を可能とすることを特徴
とする。
【0120】実施例2.次に、移行または復元の際に
は、退避されたデータをそのまますべて用いて、移行、
または復元する場合に限らず、移行または復元の際に、
移行/復元手順生成装置3により移行先のシステム環境
にあった移行仕様や、復元すべき対象物の限定等の復元
仕様を与えることができる。例えば、復元する実表とそ
れを参照しているビューを復元するのではなく、復元時
に実表に対してビューを評価実行し、その結果を実表と
して復元することで、以降先でのディスク要領を減ら
し、また用途に応じたデータのみの復元、移行を可能と
する。
【0121】また、復元しようとする実表に対し、SQ
L文による選択、除外を実行し、移行先または復元先で
必要なデータのみを復元することを可能とする。また、
データベース本体を退避している場合でも、移行仕様を
与えることにより、データベース定義及びその記憶領域
のみを確保することも可能である。これにより業務動作
に必要な枠組のみをパッケージとしてインストールし、
データベース内容は移行先で業務の運用が進むに連れて
蓄積されることを可能とする。また、復元する場合で
も、復元仕様を与えることにより一部の実表のみを復元
することが可能になる。また、ジャーナルに対しても、
保存されたジャーナルから復元する実表に対するジャー
ナルのみを選択することが可能になる。このように、退
避されたデータの一部を用いて移行または復元する場合
は、退避されたデータの中に依存情報が存在しているか
らであり、この依存情報も参照することにより、退避さ
れたデータの中から更に、一部のデータを矛盾無く抽出
することが可能になる。
【0122】実施例3.上記実施例においてはSQLを
用いて説明したが、SQLを用いず他のデータベース処
理言語を用いる場合においても、上記実施例と同様の効
果を奏する。
【0123】実施例4.また、上記実施例1においては
データベースシステム退避/移行/復元装置として、デ
ータベース及びプログラムの退避と移行と復元が1つの
装置において出来る場合を説明したが、退避のみを行う
装置、移行のみを行う装置、或いは復元のみを行う装置
が別々に存在していても構わない。
【0124】
【発明の効果】以上のようにこの発明によれば、データ
ベースシステムから指定した業務に必要な定義情報及び
データ及びプログラムを時間軸或いは相互関係に矛盾無
く抽出することができ、これを用いてデータベースシス
テムを復元或いは移行する事が容易に出来るという効果
がある。
【0125】また、データベースの復元とデータベース
の移行を同一の仕様により行うことができるため、デー
タベースの復元と移行のための特別な処理手段を別々に
必要としないという効果がある。
【0126】またデータベースシステムの退避をデータ
ベース処理言語のコマンドの形に変換して退避するた
め、この退避したデータを復元する場合、或いは他のシ
ステムに移行する場合には、データベース処理言語を実
行できるシステムが備わっていればよく、特別な復元手
段或いは、移行手段を必要としないという効果がある。
【図面の簡単な説明】
【図1】この発明に係るデータベース及びプログラム退
避/移行/復元装置のブロック図を示す図である。
【図2】この発明に係るデータベースシステム退避装置
により退避される保存情報の一例を示す図である。
【図3】この発明に係るデータベースシステムの表とビ
ューを退避する場合の退避すべき表とビューの特定方法
を示す図である。
【図4】この発明に係る退避手順生成装置の表とビュー
の退避手順を説明する図である。
【図5】この発明に係る退避手順生成装置の表とビュー
の退避手順を説明する図である。
【図6】この発明に係る退避手順生成装置の表とビュー
の退避手順を説明する図である。
【図7】この発明に係る退避手順生成装置の表とビュー
の退避手順を説明する図である。
【図8】この発明に係る退避手順生成装置の表とビュー
の退避手順を説明する図である。
【図9】この発明に係る退避手順生成装置の表とビュー
の退避手順を説明する図である。
【図10】この発明に係る退避手順生成装置の表とビュ
ーの退避手順を説明する図である。
【図11】この発明に係る退避手順生成装置の表とビュ
ーの退避手順を説明する図である。
【図12】この発明に係る退避手順生成装置がGRAN
T文を生成する手順を説明するための図である。
【図13】この発明に係る退避手順生成装置がGRAN
T文を生成する手順を説明するための図である。
【図14】この発明に係る退避手順生成装置がGRAN
T文を生成する手順を説明するための図である。
【図15】従来のデータベースシステムのブロック図で
ある。
【図16】従来のデータベースシステムのSQL手順の
実行方式を説明するための図である。
【図17】データベースシステムのブロック図を示す図
である。
【図18】ユーザー一覧情報の具体例を示す図である。
【図19】スキーマ一覧情報の具体例を示す図である。
【図20】表一覧情報の具体例を示す図である。
【図21】データベースシステムの列一覧情報を示す図
である。
【図22】データベースシステムのビュー定義一覧を示
す図である。
【図23】データベースシステムのビュー対表の参照関
係を示す図である。
【図24】データベースシステムの権限一覧を示す図で
ある。
【図25】データベースシステムのプログラム一覧を示
す図である。
【図26】データベースシステムの手順一覧情報を示す
図である。
【図27】データベースシステムの手順対表参照関係を
示す図である。
【符号の説明】 1 コマンド解釈装置 2 制御部 3 退避移行復元手順生成装置 4 ビューSQL実行装置 5 保存媒体アクセス装置 6 データベース及びカタログアクセス装置 7 プログラムアクセス装置 8 保存媒体 9 データベースシステム 10 データベースシステム中核部 11 カタログ(定義情報) 12 データベース 13 ジャーナル 14 実行形式
【手続補正書】
【提出日】平成6年4月12日
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正内容】
【書類名】 明細書
【発明の名称】 データベースシステム退避装置及びデ
ータベースシステム復元装置及びデータベースシステム
移行装置
【特許請求の範囲】
【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、データベースシステ
ムのプログラム及びデータの退避、復元、移行方式に関
するものである。
【0002】
【従来の技術】関係データベースが急速に普及しつつあ
る。そこでは、データベースの処理言語としてSQL
(JIS X3005 ISO/IEC 9075:D
atabase Language SQL)と呼ばれ
る国際標準言語が用いられることが一般的である。この
ため、以下では関係データベースと国際標準データベー
ス処理言語SQLを前提として説明する。
【0003】業務プログラムとデータベースの基本構成
を図15に示す。一般にデータベースシステムは、処理
対象のデータそのものに加えて、データの内容を記述し
たデータベースの定義情報と、これら定義情報を参照し
ながら動作する業務プログラムとから構成される。これ
ら定義情報はカタログ、リポジトリ、データディレクト
リ/ディクショナリ等と呼ばれる。また、データに対し
ては、常時更新が行なわれており、これら更新の履歴が
特殊なファイルに記録される。更新の履歴を格納する特
殊なファイルはジャーナル、ログなどと呼ばれる。
【0004】一方、SQLなどのデータベース処理言語
はデータベース処理(データベースからの所要データの
検索、データベース中のデータの更新、削除、挿入、及
びこれらデータ操作を行なうためのデータの定義等)を
行なうことを目的とした言語であり、業務で必要となる
通信、画面制御などはプログラミングが不可能である。
このため、業務プログラムは、データベース処理の部分
をSQLで記述し、その他の部分をCOBOLなどの従
来の言語で記述して作成されることが一般的である。
【0005】SQL文を含むプログラムをコンパイルす
ると、SQL以外の部分は通常のロードモジュールに、
また、SQLの部分は、SQL手順にコンパイルされ
る。ここで、元SQL文のあった部分には、データベー
スシステムのデータベースシステム中核部を経由してコ
ンパイルされたSQL手順を呼び出すための規定の手続
呼びだし(図15ではsql exec)が替りにおか
れ、またその引数としてデータベースシステムに登録さ
れたSQL手順の識別子が与えられる。システムの実現
方式にも依存するが、SQLを用いて作成されたロード
モジュールとSQL手順は、SQLシステムの定義情報
の一部として登録されることが一般的である。
【0006】図15は業務プログラムとデータベースの
基本構成を示す図であり、図においては、COBOL業
務プログラムの中にSQLプログラムを作成した例を示
している。このSQLプログラムはコンパイラによりコ
ンパイルされる。コンパイラがSQLプログラムをコン
パイルする場合には、SQLプログラムそれぞれに対し
て識別子を与える。この図においては、それぞれのSQ
Lプログラムに対応するSQL手順に対して、No.2
3とNo.24が識別子として与えられた例を示してい
る。COBOL業務プログラムは、コンパイルされると
ロードモジュールという実行形式の形に変換されるが、
このロードモジュール内にはSQL手順を実行するため
のCALL文がおかれている。CALL文は、SQL手
順の識別子23と24を引数にすることにより、カタロ
グに登録されたSQL手順をコールする。こうしてSQ
L手順に記述されたデータベース処理を実行する。
【0007】即ち、図16に示すように業務プログラム
を実行すると、通常のプログラムと同様に実行がなされ
るが、実行がデータベースシステムの処理要求の手続き
呼びだし(sql exec)に達すると、この手続き
からデータベースシステム中核部を経由して対応するS
QL手順が取り出され、実行される。このようにして、
業務プログラムが適宜データベースにアクセスしながら
所要の業務を実現する。
【0008】次に、データベースの定義情報について説
明する。データベースシステムは、データベースに関す
る定義情報を種々の方法で生成、管理している。例えば
SQLでは、データベース情報をシステムで一元管理す
ることにより、データ定義の重複の防止やデータベース
内部での記憶情報の管理の効率化を実現している。これ
ら定義情報の集まりをカタログと呼ぶ。SQLでは、こ
れらシステムで管理される対象として以下のようなもの
がある。 (1)実表。これは従来のファイルに相当するデータの
本体である。実表を構成するフィールドを列と呼ぶ。列
には各々データ型、長さなどの属性がある。 (2)ビュー。これは、従来の論理ファイルなどに相当
し、実表に条件を付して検索した結果をあたかも実表の
ようにして見せるものである。即ち、データを、あるが
ままの状態以外に、一次加工、二次加工した形で見せる
ことにより、データへの不要なアクセスの防止、共通し
たアクセスの一元化などを実現する。これは、複数の実
表(ファイル)を結合して一つに見せる、といった複雑
な場合も含まれる。また、(複数の)別のビューを参照
することにより作成されたビューも存在する。実表とビ
ューを総称して表と呼ぶ。 (3)スキーマ。これは従来のディレクトリなどに相当
し、表等を区分けして整理するための入れ物を指す。表
(実表とビュー)は、例えばスキーマ名をS1とし、表
名をT1とするとS1.T1のようにスキーマ名を冠し
て名前付けされる。 (4)データベースの利用者。 (5)データベースの利用者が持っている権限。実表や
ビューに対する操作に対しては、これらを作成したユー
ザがすべての権限(選択、更新、削除、挿入)を有する
が、これら権限を適宜他のユーザに与えることによって
一定のユーザの集団の中でのデータベースへのアクセス
を制御することができる。即ち、SQLではデータのア
クセス権限を厳密に管理し、データの選択、更新、削
除、挿入などの権限を実表、ビュー毎に、ユーザ毎に制
御可能である。また、これらは権限は基本的に実表、ビ
ューなどの生成者が保有するものであるが、これを権限
を他人に付与したり、更にこの付与行為までを他人に認
めることも可能である。付与行為までを認めることをW
ITH GRANT OPTION付きで権限を付与す
る、と呼ぶ。 (6)データベースの業務プログラムとその中で使用さ
れるSQL手順。
【0009】SQLでは以上の(1)−(6)を例えば
以下のような情報としてカタログ中で管理する。 a)ユーザ一覧情報(ユーザ名、保有スキーマ数) ユーザ名とそのユーザが保有するスキーマの数。 b)スキーマ一覧情報(スキーマ名、所有者名、格納表
数) スキーマの名前、スキーマを所有する所有者の名前、ス
キーマ中の表の数。 c)表一覧情報(名前、列数、所属スキーマ名、ビュー
か実表か) 実表とビューを表として統一的に管理する。表の名前、
表の列の数、表の所属するスキーマ名、実表かビューか
の区別からなる。 d)列一覧情報(名前、所属表名、所属スキーマ名、デ
ータ型、長さ) 列毎の情報。列の名前、その列が属する表の名前とその
表が属するスキーマの名前、データ型、長さなど。 e)ビュー定義一覧情報(ビュー名、所属スキーマ名、
定義本体) 各ビューに対して、その定義本体を管理する。ビューの
名前とその属するスキーマ名、及びビュー定義の本体か
らなる。 f)ビュー対表の参照関係情報(ビュー名、所属スキー
マ名、参照表名、参照表所属スキーマ名) ビューは別の実表またはビューを参照することにより生
成される。そのビューが参照しているこれら表毎にビュ
ー名とそのビューが所属するスキーマ名、及びビューが
参照している表の名前とその表が所属するスキーマ名が
ある。 g)権限一覧情報(付与者、受領者、種類、対象、対象
のスキーマ名、再付与可能性) データベースの使用者に与えられている表に対するアク
セスの権限(従来の、読とり可能、書き込み可能、実行
可能、などの権限に相当)に関する情報からなる。例え
ば、権限を付与した人間、権限を受領した人間、権限の
種類(当該表に対する選択権、更新権、挿入権、削除
権)、権限の対象となる表、権限の付与行為まで与えて
いるかどうか、からなる。特に、新たに表を作成した場
合は、作成者はシステムから権限を受領したと見なさ
れ、権限付与者には特別な値( SYSTEM)が設定
される。また、ビューを生成する際には、選択権が少な
くとも必要である。また、生成されたビューが一定の条
件を満たさない(例えば複数の表を参照している、な
ど)場合には、更新が不可能となるため、ビューに対す
る更新、削除、挿入の権限は生成されない。 h)プログラム一覧情報(業務プログラム識別子、OS
内プログラム所在) 業務プログラムの一覧。識別子とプログラムが実際に存
在するOS下の位置(ディレクトリ等)からなる。 i)手順一覧情報(業務プログラム識別子、手順識別
子、手順本体) 上記の業務プログラム中で用いているSQLコマンドに
対応してコンパイルにより生成されたSQL手順の一
覧。プログラム識別子、SQL手順の識別子、及び手順
の本体の内容からなる。 j)手順対表参照関係情報(業務プログラム識別子、手
順識別子、スキーマ名、表名) 業務プログラムの各手順が各々参照している表を管理す
る。手順とそれが参照する表毎に一つの情報が存在す
る。
【0010】次に、データベースとカタログの具体例に
ついて説明する。例えば、図17のようなデータベース
の内容は図18〜図27のようなカタログ情報として管
理される。図17に示したデータベースにおいては、鈴
木と田中という2人のユーザが存在しており(図18参
照)、ユーザ鈴木はスキーマS1を所有しており、ユー
ザ田中はスキーマS2、S3を所有している(図19参
照)。また、スキーマS1は実表T1とビューV1を有
しており、スキーマS2は実表T2とビューV2を有し
ており、スキーマS3はビューV3を有している(図2
0参照)。また、ビューV1はT1を参照しているビュ
ーである(図23参照)。その定義は、 SELECT * FROM T1 WHERE t1
1>100 であり(図22参照)、更新が可能なビューである(図
24参照)。ビューV2はT1とT2を参照しているビ
ューである(図23参照)。その定義は、 SELECT t11,t12,t21 FROM T
1,T2 WHEREt11=t23 であり(図22参照)、複数の表を参照しているため、
更新が不可能なビューである(図24参照)。また、こ
のビューは他人(鈴木)が所有する表T1を参照してい
るため、予め鈴木から田中に関する選択権の付与がなけ
ればならない(図24参照)。ビューV3はV2を参照
しているビューである(図23参照)。その定義は、 SELECT v21 FROM V2 であり(図22参照)、複数の表を参照しているため、
更新が不可能なビューである(図24参照)。プログラ
ムPROG1にはSQL文が二つあり、各々P1、P2
なるSQL手順である(図25及び図26参照)。プロ
グラムPROG2にはSQL文が一つあり、P3なるS
QL手順である(図25及び図26参照)。SQL手順
P1はV2を参照している(図27参照)。SQL手順
P2はT2を参照している(図27参照)。SQL手順
P3はV1とV3を参照している(図27参照)。鈴木
は田中にT1に関する選択権(参照する権利)を再付与
権つきで与えている(図24参照)。以上のように、図
18から図27に示したカタログ情報は、前述したデー
タベースの定義情報の具体例を示すものである。
【0011】更に、SQLなどを用いたデータベースシ
ステムは、以下のような特長を持つ。 (1)データベースに対して実行された更新、削除など
の履歴をすべてジャーナルに記憶することにより、万一
のデータベースの破壊に対してもデータベースを必ず回
復できる。 (2)更に、索引の追加、アクセス権限の変更など、デ
ータベースに変化が生じ、カタログ中に登録されている
SQL手順が最適な手続きでなくなった場合には、SQ
L手順がCOBOL業務プログラムを通じて実行される
際に当該SQL手順が動的に再コンパイルされ、変化に
対応した最適な手続きを再度生成し、これをカタログに
登録しなおして実行を再開する。
【0012】
【発明が解決しようとする課題】以上の特長を実現する
一方で、逆に以下のような問題点が生じている。 (1)あるシステムの上で開発した業務をパッケージ化
しようとすると、他の開発中の業務などを含め、すべて
のデータベースの定義情報が一つのカタログ内で一元管
理されているため、その中の必要な部分だけをとりだし
てパッケージにまとめることが困難である。例えば、実
表は複数のビューに参照されており、またビューは複数
のビューに参照されている。また、ビューを参照するに
は権限が必要であり、これら権限が定義されている状態
を、ビューを生成するたびに忠実に再現しなければなら
ない。例えば、上記の例では、ビューV2を生成するた
めには、表T1、表T2の作成が必要であり、更にこれ
ら表の作成には、前もってスキーマS1、S2と各々の
スキーマの所有者である鈴木、田中のユーザが生成され
ていなければならない。また、これら表が生成された
後、更に表T1に関する選択権を鈴木から田中に対して
付与しておかなければ、田中はT1を参照することがで
きず、ビューV2が生成できない。このように、定義情
報は相互に複雑にからみあっており、また時間軸に沿っ
て履歴的な復元が必要となる。現在は、 a)これを人間が必要な部分、必要な順序を手作業で認
識し、取り出して、 b)更に、手作業により移行先で注意深く再現を行なっ
ている。 即ち、従来より行なわれているソフトウェアのパッケー
ジの作成、普及が困難であり、対象システム各々におい
て人手による複雑なシステムインストール、開発作業が
必要となっていた。
【0013】(2)更に、最近は、LAN(ローカルエ
リアネットワーク)を通じて多くのマシンが接続され、
ソフトウェア開発もあるマシンで行なわれるとその成果
がLANを通じて複数の別のマシンに配布される、とい
った形態が普及している。しかし、上記のような問題が
あり、データベースをアクセスする業務プログラムはこ
のような仕組みが整ってもこれを有効に活用して、ソフ
トウェア配布を行なうことが困難であった。
【0014】(3)更に、最近は、ソフトウェア開発全
体を管理するCASE(Computer Aided
Software Engineering)が普及
しつつあるが、CASEの中で開発作業の定義情報を管
理するリポジトリは上記のカタログと同様な位置付けの
ものであり、これら開発作業環境の移行や複数グループ
による開発の分散を行う場合にも上記(1)の問題が生
じている。
【0015】(4)これらの定義情報を履歴に沿って移
行先で再現するためにはデータベースシステム自身に従
来の機能に加えて特殊な機能が必要になる可能性があ
る。例えば、各スキーマ中に表がいくつある、といった
情報を移行しようとすると、履歴にカタログの内容をそ
っくり保管し、パッケージインストール時にこの部分を
取り出し、移行先で、システムのカタログの該当部分を
直接変更することが可能である。しかし、このために
は、通常のデータベース機能以外のカタログ処理の特殊
なインタフェースを持つ必要がある。また、このため、
COBOL、SQLと行った標準言語で開発されたパッ
ケージであっても、特殊なインターフェースがベンダの
仕様に依存してしまい、異なるベンダ間ではシステムの
移行ができない。
【0016】(5)また、従来のジャーナルはデータベ
ース全体を通じてのデータ変更の履歴を記録しており、
データベースの保管の際には、その復元作業のため常に
データベース全体を保管(バックアップ)する必要があ
る。データベース全体の内のごく一部の部分にのみ変更
が加えられていたと判っていても、常に全体を保管する
ため、システムの保守運用時間が長くなっている。
【0017】(6)また、システムの移行に際しては、
業務プログラムとカタログ中に登録されたSQL手順と
の対応関係を維持するための識別子の生成が困難とな
る。特に、業務プログラムを別のマシン、別のSQLシ
ステムに移行した場合には、そのマシン上で既に稼働中
の業務プログラム・SQL手順が使用している識別子
と、移行により持ち込んだ識別子が衝突する場合があ
り、移行が困難である。また、移行先では移行したSQ
L手順がデータ量などの関係で必ずしも最適なSQL手
順にコンパイルされた状態ではない場合がある。
【0018】この発明は以上のような問題点を解決する
ためになされたもので、データベースシステムのプログ
ラム及びデータの退避、移行、復元が容易に行える装置
を得ることを目的とする。
【0019】
【課題を解決するための手段】第1の発明に係るデータ
ベースシステム退避装置は、退避命令とそのパラメータ
を入力するコマンド解釈手段と、コマンド解釈手段によ
り解釈された退避命令とそのパラメータに基づいて退避
すべき対象物を特定する制御手段と、この制御手段によ
り特定された退避すべき対象物の退避手順を生成する退
避手順生成手段を有したものであり、以下の要素を有す
るものである。 (a)上記データベースシステムをアクセスするデータ
ベースアクセス手段、(b)退避すべきデータを保存デ
ータとして保存媒体に保存する保存媒体アクセス手段、
(c)上記データベースシステムの退避命令を入力して
解釈するコマンド解釈手段、(d)上記データベースア
クセス手段によりデータベースシステムの定義情報をア
クセスすることにより、退避すべき対象物の退避すべき
手順を生成する退避手順生成手段、(e)上記コマンド
解釈手段により解釈された退避命令に基づき、上記デー
タベースシステムの中から退避すべき対象物を特定する
とともに、上記退避手順生成手段を動作させ、退避手順
生成手段により生成された退避すべき手順に従って、退
避すべき対象物を上記データベースアクセス手段により
データベースシステムから取り出し、上記保存媒体アク
セス手段により保存媒体に保存する制御手段。
【0020】第2の発明に係るデータベースシステム退
避装置は、退避命令のパラメータとして、退避すべきユ
ーザ名、スキーマ名、表名、ビュー名、プログラム名、
権限名のいずれかを入力すると共に、これら退避すべき
対象物の種類の限定と範囲の指定がなされることを特徴
とし、制御手段はこの対象物の指定と、この対象物に対
する種類と範囲の指定に基づいて、定義情報から対象物
を特定することを特徴とするものである。
【0021】第3の発明に係るデータベースシステム退
避装置は、データベースシステムがSQL等のデータベ
ース処理言語を用いてアクセスでき、データベースアク
セス手段はSQL等のデータベース処理言語を用いて、
データベースシステムをアクセスすることを特徴とする
ものである。
【0022】第4の発明に係るデータベースシステム退
避装置は、保存媒体に情報を保存する場合に、この情報
をSQL等のデータベース処理言語により記述して保存
することを特徴とするものである。
【0023】第5の発明に係るデータベースシステム退
避装置は、定義情報を退避する場合にSQL等のデータ
ベース処理言語により、定義情報を生成するための定義
コマンドに変換して退避することを特徴とするものであ
る。
【0024】第6の発明に係るデータベースシステム退
避装置は、データを退避する場合にデータをSQL等の
データベース処理言語によるデータ挿入のためのデータ
挿入コマンドに変換して退避することを特徴とするもの
である。
【0025】第7の発明に係るデータベースシステム退
避装置は、ユーザ名やファイル名等の置換可能な変数が
退避すべき対象物に存在する場合に、これらユーザ名や
ファイル名等の置換可能な変数を置換情報として生成し
これを保存することを特徴とするものである。
【0026】第8の発明に係るデータベースシステム退
避装置は、データを処理するプログラムはSQL等のデ
ータベース処理言語による処理手順を呼び出して実行す
ると共にそのプログラムが他の機種に移植された場合の
ことを考慮して、予めデータベース処理言語による処理
手順をソースコードとしてプログラム内に保持している
ことを特徴としており、定義情報内にある実行形式の処
理手順が退避すべき対象物になった場合でも、この実行
形式の処理手順を退避せずに、その処理手順のソースコ
ードを有するプログラムを退避することを特徴とするも
のである。
【0027】第9の発明に係るデータベースシステム退
避装置は、データベースのデータを退避せず単にデータ
ベースのデータ記憶領域を確保するための領域確保コマ
ンドを生成して保存することを特徴とするものである。
【0028】第10の発明に係るデータベースシステム
退避装置は、データベースシステムがアクセス履歴情報
を記録するジャーナルを有しており、アクセス履歴情報
は、例えば表名等の識別子と共に記録されており、制御
手段は退避すべき対象物に関連したアクセス履歴情報の
みを表名などの識別子を元に検索し退避すようにしたも
のである。
【0029】第11の発明に係るデータベースシステム
退避装置は、ユーザ、スキーマ、表、ビュー、権限、プ
ログラム間の依存関係を特定する退避手順生成手段を有
し、この退避手順生成手段が生成した依存関係を依存情
報として保存する制御手段を有することを特徴とするも
のである。
【0030】第12の発明に係るデータベースシステム
復元装置は、前述したデータベースシステム退避装置に
より退避された保存データを入力することにより、デー
タベースシステムの一部または全部を復元する事を特徴
とするものである。
【0031】第13の発明に係るデータベースシステム
移行装置は、前述したようなデータベースシステム退避
装置により退避された保存データを入力することによ
り、他の機種或いは他のマシン上に新たにデータベース
システムを構築することを特徴とするものである。
【0032】第14の発明に係るデータベースシステム
復元/移行装置は、前述したデータベースシステム退避
装置がSQL等のデータベース処理言語により記述され
たコマンドの形式でデータを退避している場合に、この
データベース処理言語により記述されたコマンドを入力
して実行することにより、データベースシステムを復元
または移行することを特徴とするものである。
【0033】第15の発明に係るデータベースシステム
移行装置は、前述したデータベースシステム退避装置に
おいて、保存したデータの中に置換可能な変数が存在す
ることを示す置換情報が存在する場合に、その置換情報
に基づき置換可能な変数に新たな変数を与えて、変数の
値を置き換えながらデータベースシステムを新たに構築
することを特徴とするものである。
【0034】第16の発明に係るデータベースシステム
移行装置は、前述したデータベースシステム退避装置が
実行形式の処理手順を保存せず、かわりに処理手順のソ
ースコードを有しているプログラムを保存している場合
に、実行時に処理手順が定義情報に存在しないことを条
件として、実行時に処理手順のソースコードをコンパイ
ルして実行形式の処理手順を新たに定義情報に作成する
ことを特徴とするものである。
【0035】第17の発明に係るデータベースシステム
復元/移行装置は、前述したデータベースシステム退避
装置により退避された保存データを入力するとともに、
復元仕様又は移行仕様を入力し、上記保存データの依存
関係を参照することにより、復元又は移行するデータを
復元仕様又は移行仕様に適合するように評価して、デー
タベースを復元又は移行する復元/移行手順生成手段を
有することを特徴とするものである。
【0036】
【作用】第1の発明におけるデータベースシステム退避
装置においては、制御手段が退避命令に指定されたパラ
メータから保存すべき対象物を特定すると共に、退避手
順生成手段が定義情報を参照することにより、退避すべ
き手順を時間軸に沿って矛盾なく生成する。従って他の
業務開発中、あるいは他の業務が稼働中であるデータベ
ースシステムから、指定した業務に必要な定義情報を時
間軸、相互の関係を保存したまま抽出できる。これを用
いて業務動作に必要な情報を復元、移行することができ
る。
【0037】第2の発明におけるデータベースシステム
退避装置は、退避命令としてユーザ名、スキーマ名、表
名、ビュー名、プログラム名、権限名のいずれか1つが
指定されると共にその種類と範囲が指定され、制御手段
は退避命令による対象物と、その種類と範囲に基づい
て、退避に必要な対象物を定義情報から判定して、退避
すべき対象物として特定するので、コマンド解釈手段に
入力する退避命令には必要最少限の情報を入力すること
により、自動的に退避すべき対象物が特定されることが
可能になる。
【0038】第3の発明に係るデータベースシステム退
避装置は、データベースシステムがデータベース処理言
語によりアクセスでき、データベースアクセス手段がデ
ータベース処理言語を用いてデータベースシステムをア
クセスするため、特別なデータベースアクセス手段を持
つ必要が無く、従来のデータベースシステム及び従来の
データベースアクセス手段をそのまま用いてデータベー
スシステムを退避することが可能になる。
【0039】第4の発明におけるデータベースシステム
退避装置は、データベースシステムの情報を退避する場
合に、SQL等のデータベース処理言語によるコマンド
に変換して保存するため、これを入力してデータベース
を復元する場合、或いは別なシステムにデータベースシ
ステムを移行する場合に、特別な復元手段或いは、移行
手段というものを開発する必要が無く、従来のデータベ
ース処理言語を処理できる手段が備わっていれば、デー
タの復元或いはデータの移行が可能になる。
【0040】第5の発明におけるデータベースシステム
退避装置は、定義情報を退避する場合に、SQL等のデ
ータベース処理言語により定義情報を生成するための定
義コマンドに変換して保存するため、これを入力してデ
ータベースを復元する場合、或いは別なシステムにデー
タベースシステムを移行する場合に、特別な復元手段或
いは、移行手段というものを開発する必要が無く、従来
のデータベース処理言語を処理できる手段が備わってい
れば、データの復元或いはデータの移行が可能になる。
【0041】第6の発明におけるデータベースシステム
退避装置は、第5の発明におけるデータベース退避装置
が定義情報に対してデータベース処理言語による定義コ
マンドを用いたのに対して、データを退避する場合には
データベース処理言語によるデータ挿入のためのデータ
挿入コマンドに変換して退避するものである。従って、
データを復元する場合、或いはデータを新たなシステム
に移行する場合でも、従来からのデータベース処理言語
を処理できる手段が備わっていれば、データを復元或い
は移行することが可能になる。
【0042】第7の発明におけるデータベースシステム
退避装置は、データベースシステムを他のシステムに移
行するような場合に、移行先の他のシステムに既に同一
ユーザ名や同一ファイル名等が存在する場合に、これら
の名が重複することを避けることを可能にしたものであ
り、ユーザ名やファイル名等の置換可能な変数を予め置
換情報として生成し、保存するものである。この置換情
報を用いることにより、保存した情報を新たなシステム
に移行する場合に、変数の値を、移行しようとして居る
システムに既に存在しているユーザ名やファイル名と重
複しない名前に変えることが可能になる。
【0043】第8の発明におけるデータベースシステム
退避装置は、定義情報にある実行形式の処理手順を退避
することなく、またデータベースシステムにアクセスす
るプログラムに処理手順のソースコードをもたせてお
き、このプログラムを退避することを特徴としている。
このように実行形式の処理手順を退避しないことによ
り、退避するデータ量を削減することが可能になる。ま
た処理手順をソースコードで退避することにより、処理
手順移行先のシステムの環境で再コンパイルすることが
可能になり、移行先のシステム環境に最適な実行形式の
処理手順を生成することができる。
【0044】第9の発明におけるデータベースシステム
退避装置は、データベースのデータを退避することな
く、データベースのデータ記憶領域のみを確保するため
の領域確保コマンドを生成するため、退避すべきデータ
量の削減が図れると共に、他のシステムにデータベース
を移行する場合、定義情報が移行されると共に、データ
ベースの領域のみが確保されるため、移行先においてデ
ータを新規に蓄積していくような場合に、移行元のデー
タを移行せず領域のみを確保することが可能になる。
【0045】第10の発明におけるデータベースシステ
ム退避装置は、従来のジャーナルを退避する場合にアク
セス履歴情報をすべて退避していたのに対して、識別子
により関連するアクセス履歴情報を選択できるようにな
る。従って制御手段が特定した退避すべき対象物に関連
するアクセス履歴情報のみが退避可能になる。
【0046】第11の発明におけるデータベースシステ
ム退避装置は退避手順生成手段がユーザ、スキーマ、
表、ビュー、権限、プログラム間の依存関係を特定し、
制御手段がこの依存関係を保存するため、この保存され
たデータからデータを復元する場合、或いは移行する場
合に依存情報を参照することにより、データの選択、或
いは削除が可能になる。即ち、依存関係とは、データベ
ースシステムの定義情報に示されている各データベース
の構成要素の関連を抽出したものであり、この依存関係
を参照するということは、即ちデータベースシステムの
定義情報を参照するということに等しく、この依存関係
を保存データ内に保存しておき、復元移行の際に、この
依存関係を参照するということはデータベースシステム
の定義情報を参照するに等しく、結果として、保存され
たデータの中から更に別なデータを抽出したり、或いは
余分なデータを削除する場合に矛盾なく抽出或いは削除
することが可能になる。
【0047】第12の発明におけるデータベースシステ
ム復元装置は、データベースシステム退避装置により保
存されたデータを入力して、データベースシステムを復
元するものであり、データベースシステム退避装置が保
存媒体に対して、データを時間軸或いは相互の依存関係
を矛盾なく保存しているため、この保存データを順に入
力することにより、元のデータベースシステムを復元す
ることが可能になる。
【0048】第13の発明におけるデータベースシステ
ム移行装置は、同様に保存媒体が時間軸或いは相互関係
において、データを矛盾無く保存しているために、移行
の際には保存されたデータを順に新たなシステムにイン
ストールしていくことにより、必要な定義情報、或いは
必要なデータを新たなシステム先に構築することが可能
になる。
【0049】第14の発明におけるデータベースシステ
ム復元/移行装置は、保存されたデータがSQL等のデ
ータベース処理言語によるコマンドによって記述されて
いるため、このコマンドを実行することにより、定義情
報或いはデータベースのデータ等を復元または移行する
ことが可能になる。このようにデータベース処理言語に
より記述されたコマンドを実行するだけで、定義情報、
或いはデータ等を復元、または移行することが可能なた
め、従来から存在するデータベース処理言語の処理手段
をそのまま用いることにより、データベースシステムの
復元移行が可能になる。従ってデータベースシステムを
復元または移行するための特別な復元手段、或いは特別
な移行手段というものが不要になる。
【0050】第15の発明におけるデータベースシステ
ム移行装置は、データベースシステムを他のシステムに
移行する場合であって、移行先のシステムに既に重複す
るユーザ名やファイル名等が存在する場合に、置換情報
にある変数の値を置き換えることが可能になるため、移
行先においてユーザ名やファイル名等が重複することな
く、システムの移行をすることが可能になる。
【0051】第16の発明におけるデータベースシステ
ム移行装置は、データベースシステムを新たなシステム
に移行する場合に、実行形式の処理手順を保存データか
ら移行するのではなく、保存されたプログラム内にある
ソースコードをコンパイルすることにより、実行形式の
処理手順を定義情報内に作成する。従って、移行先のシ
ステム環境にあった最適な実行形式の処理手順が生成さ
れる。
【0052】第17の発明におけるデータベースシステ
ム復元/移行装置は、復元仕様又は移行仕様を入力し、
復元/移行手順生成手段が上記保存データの依存関係を
参照することにより、復元又は移行するデータを復元仕
様又は移行仕様に適合するように評価して、データベー
スを復元又は移行するので、保存データすべてを用いて
システムの復元、移行をするのではなく、保存データの
一部を用いてシステムの復元、移行をすることが可能に
なる。
【0053】
【実施例】 実施例1.従来例で説明したように、データベースの処
理言語として、SQLと呼ばれる国際標準言語が用いら
れることが一般的である。このため、以下では関係デー
タベースと国際標準データベース処理言語SQLを前提
として説明するが、内容的には他のデータベース、ある
いは他のデータベース言語でも同様に適用できる。又、
この実施例では、従来例で示した図17〜図27に示し
たデータベースシステムを具体例として説明する。図1
はこの発明の一実施例を示すデータベース及びプログラ
ム退避/移行/復元装置の一例を示す図である。ここで
退避とは、既に存在しているデータベース及びプログラ
ムの一部又は全部を磁気テープや磁気ディスク等の保存
媒体に複写することをいう。又移行とは、前述した退避
により保存媒体に複写してあるデータベース及びプログ
ラムを用いて、ある計算機システムにおいて動作してい
るデータベースシステムを他の計算機システムに移植す
ることを言う。又復元とは、前述した退避により保存媒
体に複写してあるデータベース及びプログラムを元の計
算機システムに複写し直すことをいう。ここで、移行と
復元の違いは、移行が他の計算機システムに対して行わ
れるのに対して、復元が元の計算機システムに対して行
われる点である。
【0054】以下、図に基づいてデータベース及びプロ
グラム退避/移行/復元装置の各部について説明する。 1)コマンド解釈装置 ユーザへのインタフェースを提供し、ユーザからの退
避、復元、移行などの要求とその対象物のリストを受取
り、正当性を確認してこれら要求を制御部に送る。又、
移行の場合は、必要に応じてユーザ名などの置換指示を
ユーザより受取り、これを制御部に送る。
【0055】2)制御部 装置全体を制御すると共に、データベース及びカタログ
アクセス装置を用いて、ユーザから指定された退避、復
元、移行の対象物を特定する。
【0056】退避の場合には、退避移行復元手順生成装
置を呼び出すことによりこれら特定された対象物と処理
要求から必要な定義情報、置換情報、依存情報を生成し
てこれをSQLの実行形式にして保存媒体アクセス装置
により保存媒体に順次記憶する。更に、指定によりデー
タ自身(実表の内容)をデータベース及びカタログアク
セス装置により読みだし、これをSQLの実行形式に変
換して保存媒体アクセス装置により保存媒体に記憶す
る。更に、指定によりジャーナルをデータベース及びカ
タログアクセス装置により読みだし、これを保存媒体ア
クセス装置により保存媒体に記憶する。更に、指定によ
りプログラムをプログラムアクセス装置により読みだ
し、これを保存媒体アクセス装置により保存媒体に記憶
する。また、以上の動作の際、ビューを評価して実表と
する指定がある場合、あるいはデータベースの実表の内
容に対してその一部をSQLコマンドの実行により変形
したい要求がある場合には、適宜ビューSQL実行装置
によりこれを実行する。
【0057】復元移行の場合には、保存媒体から定義情
報、置換情報、依存情報を読みだし、これら情報と指定
された対象物から退避移行復元手順生成装置を呼び出す
ことにより復元移行対象を選択する。これら特定された
対象物に対して置換が必要な場合、置換する内容をコマ
ンド解釈装置を経由してユーザから入力する。次に指定
により置換情報に従って必要な置換を行いながら、特定
された対象物に関する定義情報を保存媒体から保存媒体
アクセス装置により読みだし、データベース及びカタロ
グアクセス装置により復元移行する。これら定義情報は
SQLの定義系のコマンドの形となっているため、この
操作はこれらコマンドを実行することによりなされる。
更に、指定によりデータ自身(実表の内容)及びジャー
ナルを保存媒体アクセス装置により保存媒体から読みだ
し、これをデータベース及びカタログアクセス装置によ
りシステムに復元移行する。更に、指定によりプログラ
ムを保存媒体アクセス装置により保存媒体から読みだ
し、これをプログラムアクセス装置によりデータベース
システムに記憶する。また、以上の動作の際、ビューを
評価し、実表とする指定がある場合、あるいはデータベ
ースの実表の内容に対してその一部をSQLコマンドの
実行により変形したい要求がある場合には、適宜ビュー
SQL実行装置によりこれを実行する。 3)退避移行復元手順生成装置 制御部から対象物を受取り、これらに対して必要な定義
情報と定義の順序を生成する。退避の場合には、これら
生成に必要な情報はデータベース及びカタログアクセス
装置からカタログをアクセスすることにより得られる。
復元移行の場合には、これら生成に必要な情報は保存媒
体中にある依存情報をアクセスすることにより得られ
る。 4)ビューSQL実行装置 指定されたビュー、またはSQL文を実行し、その結果
を制御部に送る。 5)保存媒体アクセス装置 保存媒体(磁気テープ、ディスク等)に対して指定した
内容を読みだし、書き込みする装置。 6)データベース及びカタログアクセス装置 データベースの内容及びカタログの内容を読みだし、書
き込みする装置。この場合には、データベースシステム
に対して必要なSQL文を実行することで機能が実現さ
れる。また、この装置によりジャーナルの内容の読みだ
し、またはジャーナルの内容をデータベースに適用し、
データベースを最新の状態にする。これらジャーナル操
作に対するSQLの規格は存在しないが、システム毎に
何等かの手段が用意されている。例えば、ジャーナルの
読みだし、設定は通常のOSのファイル読みだし、生成
により実行し、ジャーナルの実行はRECOVERコマ
ンドなどによりデータベースシステムが実行する。 7)プログラムアクセス装置 業務プログラムを読みだし、設置する装置。通常のOS
のファイルのアクセス機能が備わっていれば充分であ
る。
【0058】次に動作について説明する。 1)コマンド解釈装置の動作 ユーザからの退避移行復元要求はまずコマンド解釈装置により解釈され、内容 の正当性が確認されて、これらを内部形式に変換し、制御部に送る。コマンド解 釈装置は、以下のような指定を受け付ける。 動作指定 =BACKUP:退避動作 RESTORE:復元、移行先インストール動作 対象物のリスト=対象物、対象物、.... 対象物 =ユーザ名(ユーザの所有物全ての指定の省略形と解釈) スキーマ名(スキーマ下の全ての表を指定したと解釈) スキーマ名.表名(表を指定したと解釈) 権限名 プログラム名 対象種類指定 =D:データ C:カタログ P:プログラム これらの組み合わせ、例えばD+P等 対象範囲指定 =ONLY:指定された対象物のみを対象物とする。 DOWN:指定された対象物とこれらが参照している対象物 すべてを対象物とする。 ALL:指定された対象物とこれらが参照している対象物す べてとこれらを参照している対象物すべてを対象物とする。 制限範囲指定 =ユーザ名リスト(これらユーザ以外のユーザのスキーマ、表 等を対象としない) スキーマ名リスト(これらスキーマ以外のスキーマ、表等を 対象としない) ビューの内、ビューを実行して実表としたいもののリス
ト。実表の内、それに対してデータの選択、変形を行う
ためのSQL文のリスト。
【0059】2)制御部の動作 制御部は、コマンド解釈装置からの要求を解釈し、退
避、移行、復元操作の全体を制御する。 [退避の場合] (1)制御部は、コマンド解釈装置から受け付けた対象
物を退避移行復元手順生成部におくり、対象物の一覧と
定義情報、置換情報、依存情報を受け取る。対象物の一
覧として以下のものがある。 U:ユーザ一覧 S:スキーマ一覧 T:実表一覧 V:ビュー一覧 A:権限一覧 P:プログラム一覧 RU:制限ユーザ一覧 RS:制限スキーマ一覧 (2)ビュー一覧V中のビューで、ビューを評価し、実
表とする指定のあるものは、これを評価し、このビュー
を実表とする。定義情報、依存情報において、このビュ
ーに対応する情報を実表の情報に置き換える(CREA
TE VIEW文をCREATE TABLE文に置き
換える)。また、この実表を記憶しておく。また、この
ビューが参照しているビュー及び実表のうち、このビュ
ーのみにより参照されているものを定義情報から除く。 (3)対象種類指定にC(カタログ)があれば、置換情
報、定義情報、依存情報を保存媒体アクセス装置により
保存媒体に格納する。 (4)対象種類指定にD(データ)があれば、実表一覧
Tにある実表の内容をデータベース及びカタログアクセ
ス装置によりとりだし、これをINSERTコマンドと
して保存媒体アクセス装置により保存媒体に記憶する。
保存媒体に記憶する実表がビュー評価により(2)で生
成されたものであれば、(2)で記憶しておいた実表の
内容を保存媒体に記憶する。また、保存媒体に記憶する
実表に対してSQL文の実行の指定があればこれをビュ
ーSQL実行装置により実行し、その結果をINSER
Tコマンドの形にして保存媒体に記憶する。また、対象
種類指定にD(データ)があれば、ジャーナルをデータ
ベース及びカタログアクセス装置によりとりだし、これ
を保存媒体アクセス装置により保存媒体に記憶する。こ
の際、ジャーナルには操作対象となった実表の識別子が
付されており、実表一覧Tにある表に関するジャーナル
内容のみを取り出す。対象種類指定にP(プログラム)
があれば、P(プログラム)にあるプログラムをプログ
ラムアクセス装置によりとりだし、これを保存媒体アク
セス装置により保存媒体に記憶する。
【0060】[復元移行の場合] (1)保存媒体アクセス装置から定義情報、置換情報、
依存情報を読み出す。 (2)制御部は、コマンド解釈装置から受け付けた対象
物と依存情報を退避移行復元手順生成部におくり、対象
物の一覧を受け取る。対象物の一覧は、 U:ユーザ一覧 S:スキーマ一覧 T:実表一覧 V:ビュー一覧 A:権限一覧 P:プログラム一覧 RU:制限ユーザ一覧 RS:制限スキーマ一覧 (3)コマンド解釈装置により置換指定をユーザから受
け取り、その置換内容で置換ファイルを置き換える。 (4)対象種類指定にC(カタログ)があれば、置換情
報により定義情報を置き換えながら、対象物に関する定
義情報をデータベース及びカタログアクセス装置により
復元、移行する。この場合は、SQLの定義コマンドC
REATE USER文群、CREATE SCHEM
A文群、CREATE TABLE、CREATE V
IEW、GRANT文群を読みだし、置換情報の内容に
従って置き換えを行ないながら、これら文を記憶されて
いる順に実行する。これら文は既に退避の際に時間的、
空間的に矛盾のない順に記憶されているため、この順に
実行を行なうだけでよい。ビュー一覧V中のビューで、
ビューを評価し、実表とする指定のあるものは、CRE
ATE VIEWコマンドからCREATE TABL
Eに変換してこれを実行する。また、これをSQL文の
一つとして記憶しておき、後に(5)で実行する。ま
た、このビューが参照しているビュー及び実表のうち、
このビューのみで参照されているものを定義情報から除
く。これは依存情報中で、このビューのみに依存してい
るものをたどることにより識別できる。
【0061】(5)対象種類指定にD(データ)があれ
ば、実表一覧Tにある実表の内容を生成するINSER
T文をデータベース及びカタログアクセス装置によりと
りだし、これを実行してデータベースに復元する。ま
た、この実表に対してSQL文の実行の指定があればこ
れをビューSQL文実行装置により実行し、その結果を
T’として保存し、この表の内容を、 DELETE * FROM 表名 で一旦廃棄し、 INSERT INTO 表名 SELECT * FROM T’ により先の結果で置き換える。この具体例について以下
に説明する。例えば実表T1が存在し、これを参照する
ビューV1が存在するものとする。即ち、実表T1に対
してビューV1がSQL文の実行により評価される。も
し、実表T1がビューV1のみにより参照され、それ以
外のビューには一切参照されないことが依存情報等を参
照することにより判明した場合には、実表T1をデータ
ベースに記憶しておく必要はない。従って、その実表T
1を削除しても構わないことになる。この場合には、ビ
ューV1をT1に対して評価した結果をT’として一時
記憶しておき、実表T1が他のビューや他のプログラム
において参照されることが無いと判断された時点で実表
T1を削除し、T’に記憶しておいたビューV1を実表
として生成することが可能である。また、実表T1のデ
ータの内、例えばt11=100のデータのみを復元す
る場合などは、 SELECT * FROM T1 WHERE t11=100 を直接実行し、その結果でT1の元のデータを置きかえ
るものである。 (6)対象種類指定にD(データ)があれば、保存媒体
からジャーナルをとりだし、これをデータベースに適用
する。この際、ジャーナルには操作対象となった実表の
識別子が付されており、実表一覧Tにある表に関するジ
ャーナル内容のみを取り出す。 (7)対象種類指定にP(プログラム)があれば、P
(プログラム)にあるプログラムをプログラムアクセス
装置によりとりだし、これをデータベースに記憶する。
【0062】尚、データベースをあるマシンから別マシ
ンへ移行する場合はこれら全ステップを実行する。また
データベースを同一マシン上で復元するためには
(5)、(6)の二つのステップを実行すればよい。こ
れらは対象種類の指定でD(データ)のみを指定するこ
とにより実現される。また、指定により現在のデータ内
容を破壊して復元する場合には、 DELETE * FROM 表名 によりデータベース内容を一旦破壊して復元を行う。
【0063】データベースの内容自身の移行には、IN
SERTコマンドによりSQLコマンドとして運ぶので
はなく、システムにより更に高速な形で保存することも
可能である。例えば、データの内容をファイルの形で保
存し、復元の時もファイルのまま直接置き換えを行う、
などが可能である。この場合は上記の復元操作における
DELETE文などは不用となる。この後、業務が開始
され、復元された業務プログラムを実行する。この際、
SQLの手順一覧情報は移行しないため、移行先ではS
QL手順にアクセスしようとしてカタログ中にこれが見
つからない。このため、システムは当該SQL手順を再
度コンパイルし、これを手順一覧情報に登録して実行を
再開する。これのように、SQLシステムの持つ動的再
コンパイル機構を利用することで、手順一覧情報も自動
的に再現できることになる。
【0064】次にコマンド解釈装置が受け付ける指定
と、その指定により制御部が退避移行復元手順生成装置
から受け取る対象物に関する具体例について説明する。
例えば、コマンド解釈装置に受け付けられる指定はいろ
いろな組み合わせが可能である。例えば、この指定した
業務に必要な定義情報の取りだし方として以下のような
場合が考えられる。 a)[必要な要素を全て指定する場合] 業務を構成しているユーザ、スキーマ、実表、ビュー、
プログラム、権限を全て指定し、これによりシステムが
指定されたこれら情報を、相互関係や履歴的実行順序を
自動的に判断して必要な復元順序を生成する。 b)[ユーザ名を与えて他はシステムが自動的に抽出す
る場合] 業務を構成する一つまたは複数のユーザ名のみを与え
て、このユーザが所有するスキーマ、実表、ビュー、プ
ログラム、権限を自動的に抽出し、これら情報を、相互
関係や履歴的実行順序を自動的に判断して必要な復元順
序を生成する。 c)[スキーマ名を与えて他はシステムが自動的に抽出
する場合] 業務を構成する一つまたは複数のスキーマ名のみを与え
て、このスキーマを所有するユーザ、及びスキーマの中
にある所有する実表、ビュー、権限を自動的に抽出し、
これら情報を、相互関係や履歴的実行順序を自動的に判
断して必要な復元順序を生成する。 d)[表名を与えて他はシステムが自動的に抽出する場
合] 業務を構成する一つまたは複数の表名のみを与えて、こ
の表が属するスキーマ、及びそのスキーマを所有するユ
ーザ、その表に関する権限を自動的に抽出し、これら情
報を、相互関係や履歴的実行順序を自動的に判断して必
要な復元順序を生成する。 e)[ビュー名を与えて他はシステムが自動的に抽出す
る場合] 業務を構成する一つまたは複数のビュー名のみを与え
て、このビューが属するスキーマ、及びそのスキーマを
所有するユーザ、そのビューに関する権限、及びこのビ
ューが参照しているビュー及び実表、これら参照に仮定
されている権限を自動的に抽出し、これら情報を、相互
関係や履歴的実行順序を自動的に判断して必要な復元順
序を生成する。 f)[プログラム名を与えて他はシステムが自動的に抽
出する場合] 業務を構成する一つまたは複数のプログラム名のみを与
えて、このプログラムが参照しているユーザ、スキー
マ、実表、ビュー、権限を自動的に抽出し、これら情報
を、相互関係や履歴的実行順序を自動的に判断して必要
な復元順序を生成する。 g)[権限名を与えて他はシステムが自動的に抽出する
場合] 業務を構成する一つまたは複数の権限名のみを与えて、
この権限及び権限を付与しているユーザ、権限が付与さ
れているユーザ、権限対象の実表、ビューを自動的に抽
出し、これら情報を、相互関係や履歴的実行順序を自動
的に判断して必要な復元順序を生成する。 h)上記のa)〜g)において、更に抽出された実表、
ビューを参照しているビューの全体をも抽出し、これら
ビューの生成に必要なスキーマ、ユーザ、権限を抽出し
て、これらを含めて相互関係や履歴的実行順序を自動的
に判断して必要な復元順序を生成する。 i)上記のa)〜g)及びそれらとh)の組み合わせに
おいて、抽出された情報を参照しているプログラムの全
体を抽出する。
【0065】次に従来例で示したデータベースの定義情
報の例を用いてコマンド解釈装置に対して指定されたも
のに対して制御部が定義情報を参照して特定するユーザ
一覧U、スキーマ一覧S、実表一覧T、ビュー一覧V、
権限一覧A、プログラム一覧Pの値をいくつかの例で示
す。以下に述べる例は前述したコマンド解釈装置が受け
付ける指定の例として述べた(a)から(i)には直接
対応していないが、その中の1つ、或いは複数を組み合
わせて指定した場合を示している。また以下の例におい
ては、説明を簡単にするためにコマンド解釈装置が受け
付ける全ての指定を示しているものではなく、単に対象
物のリスト、対象範囲、制限範囲指定の3つの指定のみ
を例示している。また、ユーザ一覧U、スキーマ一覧
S、ビュー一覧V、実表一覧T、権限一覧A、プログラ
ム一覧P、制限ユーザ一覧RU、制限スキーマ一覧RS
は制御部が退避移行復元手順生成装置から受け取る値を
それぞれ示すものである。退避移行復元手順生成装置
は、コマンド解釈装置に入力された指定から、これらユ
ーザ一覧U、スキーマ一覧S、実表一覧T、ビュー一覧
V、権限一覧A、プログラム一覧P、制限ユーザ一覧R
U、制限スキーマ一覧RSを求め制御部に出力するが、
その手順については後述する。また、例中に示すφの記
号は全体の意味を示すものであり、特に指定がされない
ことを示すものである。
【0066】
【0067】
【0068】
【0069】 例4 複数のビューと参照している実表を退避 対象物のリスト=鈴木、田中、S1、S2、 S1.V1、S2.V2、 S1.T1、S2.T2 対象範囲指定 =ONLY 制限範囲指定 =なし ユーザ一覧U =鈴木、田中 スキーマ一覧S =S1、S2 ビュー一覧V =V1、V2 権限一覧A =T1に関する田中の選択権 実表一覧T =T1、T2 プログラム一覧P =φ 制限ユーザ一覧RU =φ 制限スキーマ一覧RS=φ
【0070】例3に対し、ビュー名のみを指定し、ビュ
ーが参照している表名を自動的に取り出すことを指定す
るのが例5である。
【0071】例4に対し、ビュー名のみを指定し、ビュ
ーが参照している表名を自動的に取り出すことを指定す
るのが例6である。 例6 複数ビューを退避、関連実表自動退避 対象物のリスト=S1.V1、S2.V2 対象範囲指定 =DOWN 制限範囲指定 =なし ユーザ一覧U =鈴木、田中 スキーマ一覧S =S1、S2 ビュー一覧V =V1、V2 実表一覧T =T1、T2 権限一覧A =T1に関する田中の選択権 プログラム一覧P =φ 制限ユーザ一覧RU =φ 制限スキーマ一覧RS=φ
【0072】 例7 ビューを退避、参照している表を退避 対象物のリスト=S1.V2 対象範囲指定 =DOWN 制限範囲指定 =なし ユーザ一覧U =鈴木、田中 スキーマ一覧S =S1、S2 ビュー一覧V =V2 実表一覧T =T1、T2 権限一覧A =T1に関する田中の選択権 プログラム一覧P =φ 制限ユーザ一覧RU =φ 制限スキーマ一覧RS=φ
【0073】 例8 ビューを退避、関連表を全て自動退避 対象物のリスト=S1.V2 対象範囲指定 =ALL 制限範囲指定 =なし ユーザ一覧U =鈴木、田中 スキーマ一覧S =S1、S2、S3 ビュー一覧V =V2、V3 実表一覧T =T1、T2 権限一覧A =T1に関する田中の選択権 プログラム一覧P =φ 制限ユーザ一覧RU =φ 制限スキーマ一覧RS=φ
【0074】 例9 関連の複雑なビューを退避 対象物のリスト=V3 対象範囲指定 =DOWN 制限範囲指定 =なし ユーザ一覧U =鈴木、田中 スキーマ一覧S =S1、S2、S3 ビュー一覧V =V2、V3 実表一覧T =T1、T2 権限一覧A =T1に関する田中の選択権 プログラム一覧P =φ 制限ユーザ一覧RU =φ 制限スキーマ一覧RS=φ
【0075】
【0076】
【0077】
【0078】 例13 プログラムと関連物を退避 対象物のリスト=PROG2 対象範囲指定 =DOWN 制限範囲指定 =なし ユーザ一覧U =鈴木、田中 スキーマ一覧S =S1、S2、S3 ビュー一覧V =V1、V2、V3 実表一覧T =T1、T2 権限一覧A =T1に関する田中の選択権 プログラム一覧P =PROG2 制限ユーザ一覧RU =φ 制限スキーマ一覧RS=φ
【0079】 例14 プログラムと表を退避 対象物のリスト=PROG1、T1 対象範囲指定 =DOWN 制限範囲指定 =なし ユーザ一覧U =鈴木、田中 スキーマ一覧S =S1、S2 ビュー一覧V =V1、V2 実表一覧T =T1、T2 権限一覧A =T1に関する田中の選択権 プログラム一覧P =PROG1 制限ユーザ一覧RU =φ 制限スキーマ一覧RS=φ
【0080】
【0081】
【0082】次に、図2に保存媒体の内容の例を示す。
図2において、50は置換情報、60は定義情報、80
は依存情報、100はデータ本体、110はジャーナ
ル、120はプログラム群である。
【0083】置換情報50にはユーザ名の置換情報が記
録されている。この例では、置換情報各々は$ではじま
る仮の名前で表されている。この例においては、ユーザ
1が鈴木であり、ユーザ2が田中であることを示してお
り、この置換情報を置換しなければ、ユーザ1は鈴木、
ユーザ2は田中として復元、或いは移行できる。しか
し、移行先のシステムに既にユーザ名鈴木、又はユーザ
名田中が存在している場合にはこの置換情報を用いるこ
とにより、例えばユーザ1を鈴木ではなく山田というユ
ーザ名に変更することが可能になる。すなわち、以後に
出てくる$U1という変数は全て山田に置き換えられて
インストールされることになる。
【0084】次に、定義情報60は定義情報を生成する
ための情報がSQL文により、記述されている。61に
おいてはユーザ1が生成され、62においてはユーザ2
が生成されることを示している。63においては、次の
64のスキーマ作成者をユーザ1に設定する。そして6
4においては、63において設定されたユーザ1の所有
物としてスキーマS1を生成する。同様に、65から6
7においてはユーザ2に対してスキーマS2、S3が作
成される。また68においては以下のSQL文の実行者
をユーザ1に設定する。69においては実表T1が生成
される。70においては実表T1を参照する権限をユー
ザ2に与えると共に、ユーザ2はその参照権限を他のユ
ーザに与えるオプションを持っていることを宣言してい
る。71においては実表T1から列t11が100以上
のものだけをセレクトしてビューV1を生成することを
定義している。次に、72〜75においてはユーザ2に
対してテーブル2を生成し、実表T1と実表T2からビ
ューV2を生成し、更に、ビューV2からビューV3を
生成することを記述している。
【0085】次に、依存情報80は、退避したデータベ
ースシステムの定義情報から抽出された依存関係を示し
ているものである。この例においては81、82におい
てユーザ1及びユーザ2は何にも依存しないことを示し
ている。また83においてはスキーマS1はユーザ1の
存在が必要であることを示している。84と85におい
てはスキーマS2、S3はユーザ2の存在が必要である
ことを示している。即ち、スキーマ1を生成する場合に
は、ユーザ1が先に存在していなければならない。同様
に、スキーマS2、S3を生成する場合にはユーザ2が
存在しなければ生成できないことを示している。次に、
86においては実表T1はスキーマS1の存在が必要で
あることを示している。87においては実表T2はスキ
ーマS2の存在が必要であることを示している。88に
おいてはビューV1は実表T1とスキーマS1の存在が
必要であることを示している。89においてはビューV
2が実表T1、T2及び、スキーマS2の存在が必要で
あるとともに、ユーザ1からユーザ2に対する実表T1
に関する選択権が必要であることを示している。90に
おいてはビューV3はビューV2とスキーマS3の存在
が必要であることを示している。次に、89で示したユ
ーザ1からユーザ2への実表T1に関する選択権は、ユ
ーザ1とユーザ2と実表T1が存在することが必要であ
ることを示している。92においてはプログラムP1は
ビューV2の存在が必要であることを示している。ま
た、93においてはプログラムP2は実表T2が存在が
必要であることを示している。94においては、プログ
ラムP3はビューV1とビューV3の存在が必要である
ことを示している。
【0086】これらの依存情報は、従来例で説明した定
義情報の一覧情報から抽出することが可能である。例え
ば、81、82はユーザ一覧情報を参照することによっ
て抽出できる。また83〜85はスキーマ一覧情報を参
照することにより抽出することが可能である。また8
6、87は表一覧情報を参照することにより抽出可能で
ある。また88、89は表一覧情報と、ビュー定義一覧
及びビュー対表の参照関係及び権限一覧を参照する事に
より、抽出可能である。また、91は権限一覧を参照す
る事により抽出可能である。また92〜94は手順対表
参照関係から抽出することが可能である。
【0087】データ本体100はデータベースの実際の
データをSQL文のインサートコマンドにより記述した
ものであり、101は実表T1のデータ挿入コマンドで
あり、102は実表T2のデータ挿入コマンドである。
【0088】次にジャーナル110にはジャーナルの通
常のファイルの形式の履歴データが存在するが、ここで
は前述した退避すべき対象物に関する履歴情報が、表名
という識別子により抽出されて記述される。例えば、こ
の例においては、実表T1とT2が退避されるため、ジ
ャーナル110には実表T1とT2という識別子がつい
た履歴データのみが、ここに付加されることになる。
【0089】次にプログラム群120には通常のファイ
ル形式のプログラムが付加されるが、例えばこのプログ
ラムをプログラムA、B、C、Dの4つのロードモジュ
ールであるとするならば、このプログラムはCOBOL
等の一般のプログラム処理言語で記載されており、その
プログラム言語の一部にSQLで記述された手順がソー
スコードの形式で存在すると共に、その実行形式の手順
を呼ぶためのコール文が存在している。この例において
は、手順としてP1、P2、P3が退避べき対象物とし
て特定されるが、手順P1、P2、P3は定義情報内に
ある実行形式の手順が保存されるのではなくCOBOL
プログラムのロードモジュールA、B、C、D内にある
手順P1、P2、P3のソースコードがプログラム群の
一部として保存される。定義情報内にある実行形式の手
順P1、P2、P3の保存はされない。
【0090】このように、通常プログラムに対応するロ
ードモジュール中にデータベース処理言語の原プログラ
ムを保持し、移動先のデータベース処理システム上でこ
のロードモジュールを実行し、データベース処理手順の
識別子を用いて、移動先のデータベース処理システム上
のデータベース処理手順を登録するカタログ領域にある
データベース処理手順を検索し、これが存在しないこと
により、ロードモジュール中のデータベース処理言語の
プログラムを動的に再コンパイルし、これを移動先のシ
ステムのデータベース処理手順を登録するカタログ領域
に移動先のロードモジュールのファイル識別子と、デー
タベース処理手順相対番号により新たに登録し、再び該
データベース処理部の実行を継続する。この際、データ
ベース処理手順の識別子は、カウンタなどの値ではな
く、当該アプリケーションの走行しているシステム上で
実行時に採取したロードモジュールのファイル識別子を
用いる。従って、このような移植動作によってもデータ
ベース処理手順の一意性が保証されることになる。即
ち、埋め込まれたデータベース処理言語により記述され
たデータベース処理部には、データベース処理アプリケ
ーション実行時に得た当該アプリケーションプログラム
の通常プログラム部に対応するロードモジュールのオペ
レーティングシステム上でのファイルの識別子と、当該
データベース処理部の当該アプリケーションプログラム
中での相対番号の値の組からなる識別子を与え、実行時
に通常プログラムがデータベース処理が必要と成った場
合には、実行時に得た自ロードモジュールのオペレーテ
ィングシステムのファイル識別子と、必要とするデータ
ベース処理部のアプリケーション内相対番号を組とし
て、データベース処理手順を登録したカタログ領域を検
索し、これにより通常プログラム部から登録された所要
のデータベース処理部を呼出す。
【0091】3)退避移行復元手順生成装置の動作 まず、渡された対象物指定を以下のように解釈し、対象
物の一覧を得る。尚、以下で(*)の部分は、退避の場
合にはデータベースのカタログ情報から識別が可能であ
り、また復元の場合には依存情報から識別が可能であ
る。
【0092】(1)ユーザ一覧U =φ:指定された
ユーザ全体を記憶する内部変数 スキーマ一覧S =φ:指定されたスキーマ全体を記憶
る内部変数 ビュー一覧V =φ:指定されたビュー全体を記憶す
る内部変数 実表一覧T =φ:指定された実表全体を記憶する
内部変数 権限一覧A =φ:指定された権限全体を記憶する
内部変数 プログラム一覧P=φ:指定されたプログラム全体を記
憶する内部変数
【0093】(2)指定された各対象物に対して指定さ
れているものが以下のような場合、それぞれの対象物を
次のように決定する。 なお、以下に用いた記号∪はその記号左側に記載した集
合に、その記号右側に記載したものを合併する事を示す
記号である。 a)ユーザ名が指定されている場合 ユーザ一覧U =ユーザ一覧U∪このユーザ名。 スキーマ一覧S=スキーマ一覧S∪当該ユーザが所有している全てのスキー マ (*) 実表一覧T =実表一覧T∪これらスキーマ中の全ての実表 (*) ビュー一覧V =ビュー一覧V∪これらスキーマ中の全てのビュー (*) b)スキーマ名が指定されている場合 ユーザ一覧U =ユーザ一覧U∪当該スキーマを所有するユーザ (*) スキーマ一覧S=スキーマ一覧S∪当該スキーマ 実表一覧T =実表一覧T∪当該スキーマ中の全ての実表 (*) ビュー一覧V =ビュー一覧V∪当該スキーマ中の全てのビュー (*) c)スキーマ名.表名が指定されている場合 スキーマ一覧S =スキーマ一覧S∪この表が所属するスキーマ名 (*) とする。更にこれらをこの表が実表であれば (*) 実表一覧T =実表一覧T∪この表 そうでなければ (*) ビュー一覧V =ビュー一覧V∪この表 d)権限が指定されている場合 ユーザ一覧U =ユーザ一覧U∪当該権限を付与しているユーザ∪当該権 限を受領しているユーザ (*) 当該権限の対象物に対し、上記c)を実行する。 権限一覧A =権限一覧A∪当該権限 e)プログラム名が指定されている場合 当該プログラムが参照している表に対し、上記c)を実行する。 プログラム一覧P=プログラム一覧P∪当該プログラム 上記の(*)について、カタログからこれを得る場合に
ついては後述のデータベース及びカタログアクセス装置
の説明の際に述べる。また、依存情報からこれを得る場
合には、以下のようになる。 例1:あるスキーマに属する表一覧を得る。 =このスキーマに依存するビュー及び実表を取り出す。 図2に示す例では、S1に属する表一覧は86と88か
らS1に依存するT1とV1とわかる。 例2:あるビューが参照している表一覧 =このビューが依存するビュー及び実表を取り出す。 図2に示す例では、ビューV2が参照する表は89のV
2の依存部を見て、T1、T2とわかる。
【0094】(3)対象範囲指定がONLYとDOWN
とALLの場合の対象物の特定は、以下のようにして行
う。 a)ONLYの場合、指定された対象物に対して、以下
の確認を行なう。 ・実表一覧T、ビュー一覧Vにある実表、ビューが所属
するスキーマがスキーマ一覧S中にあるか? ・スキーマ一覧S中のスキーマの所有者がユーザ一覧U
にあるか? ・ビュー一覧Vの参照しているビュー、実表がビュー一
覧V、実表一覧Tにあるか? ・ビュー一覧Vの生成に必要な権限が権限一覧Aにある
か? 以上の条件を満たさない場合は、エラーとする。 b)DOWNの場合は、以下のようにして対象物の特定
を行う。これは、以下の退避復元移行手順生成装置のう
ごきと同じであるが、説明のため、ここに記述する。 ・現在のビュー一覧Vの各ビューvについて、以下の特
定を行う。 ビューvが参照している各表tについて、 表tがビューの場合:ビュー一覧V=ビュー一覧V∪表
t 表tをビューvとしてこれを再帰的に繰り返す。 表tが実表の場合 :実表一覧T=実表一覧T∪表t ・ビュー一覧V、実表一覧Tが所属するスキーマでまだ
スキーマ一覧Sにないものをスキーマ一覧Sに加える。 ・スキーマ一覧Sにあるスキーマでまだその所有者がユ
ーザ一覧Uにないものをユーザ一覧Uに加える。 これにより、全ての対象物を指定せずとも、a)ONL
Yの場合の条件が自動的に満たされ、対象物の範囲は閉
じたものとなる。 例1:ユーザ一覧U=田中、スキーマ一覧S=S2、ビ
ュー一覧V=V2、実表一覧T=φの場合、 V2が参照している実表T1、T2を実表一覧Tに加え
る。スキーマ一覧SにS1を、ユーザ一覧Uに鈴木を加
える。 例2:ユーザ一覧U=田中、スキーマ一覧S=S3、ビ
ュー一覧V=V3、実表一覧T=φの場合、 V3が参照しているビューV2をビュー一覧Vに加え
る。スキーマ一覧SにS2を加える。更にV2が参照し
ている実表T1、T2を実表一覧Tに加える。スキーマ
一覧SにS1を、ユーザ一覧Uに鈴木を加える。 c)ALLの場合は、以下のようにして対象物の特定を
行う。 ・DOWNの場合の手順を実行する。 ・B=実表一覧T ・D=φ ・L:現在のBの各表tについて a)もし、全てのtについてこれを参照しているビュー
がなければ終わり b)そうでなければtを参照している各ビューvについ
て ・権限一覧A=権限一覧A∪tに関してvの所有者に出
されている権限 ・ビュー一覧V=ビュー一覧V∪v ・vが参照している表が全てB中にある場合: B=B∪v D=D∪v ・B=D、D=φ ・Lに戻る。 これらDOWNとALLの場合を図示すると図3のよう
になる。
【0095】(4)制限範囲指定で指定されたユーザ名
群を制限ユーザ一覧RUに入れる(なければ制限ユーザ
一覧RUはφ)。制限範囲指定で指定されたスキーマ名
群を制限スキーマ一覧RSに入れる(なければ制限スキ
ーマ一覧RSはφ)。
【0096】(5)ユーザ一覧U=ユーザ一覧U∩制限
ユーザ一覧RU(ユーザ一覧Uと制限ユーザ一覧RUの
交わり) スキーマ一覧S=スキーマ一覧S∩制限スキーマ一覧R
S(スキーマ一覧Sと制限スキーマ一覧RSの交わり)
【0097】(6)以上で定まった実表一覧T、ビュー
一覧Vからスキーマ一覧Sにあるスキーマ中にない実
表、ビューを除く。
【0098】(7)復元、移行の場合には、これらユー
ザ一覧U、スキーマ一覧S、ビュー一覧V、実表一覧
T、権限一覧A、制限ユーザ一覧RU、制限スキーマ一
覧RSを、指定されたパラメータとともに制御部に渡
す。
【0099】(8)退避の場合には以下の手順を実行す
る。 1)ユーザ一覧Uで指定されたユーザを生成するCRE
ATE USER文を生成し、定義情報とする。この
際、ユーザ名は個々に異なる置き換え可能な変数とし、
この変数名とユーザ名自身を組として置換情報として順
に記憶する。 2)指定されたユーザ一覧U及び指定されたスキーマ一
覧Sを基に、これらスキーマを生成するCREATE
SCHEMA文を生成し、定義情報として記憶する。 3)これらユーザ、スキーマに関連する実表、ビュー、
アクセス権を生成、定義するCREATE TABL
E、CREATE VIEW、GRANT文を生成し、
定義情報として記憶する(詳細は後述する)。 4)上記において判明している依存関係を依存情報とし
て記憶する。依存関係は以下のようにして識別される。 ・ユーザ一覧U中のユーザ名は何にも依存しない。 ・スキーマ一覧S中のスキーマ名はその所有者のユーザ
に依存するとして依存情報を生成する。 ・実表一覧T中の実表はそれが存在するスキーマに依存
するとして依存情報を生成する。 ・ビュー一覧V中のビューは、ビュー一覧Vが参照して
いる実表またはビューとそれに関する権限、及びビュー
一覧Vが存在するスキーマに依存するとして依存情報を
生成する。。 ・権限は、権限付与者、権限受領者、権限対象の表に依
存するとして依存情報を生成する。 ・プログラムはプログラムが参照している表に依存する
として依存情報を生成する。
【0100】次に退避復元手順生成装置が行う実表、ビ
ュー、権限の保存の手順について説明する。実表、ビュ
ーは相互に関連があり、またビューを生成する際には権
限が必要となる。従って、ビュー生成の文を実行する前
にはビューが参照している表生成のCREATE TA
BLE文とビューが仮定している権限を定義するGRA
NT文が実行されてなければならない。従って、実表、
ビュー、権限の保存の大まかな手順は以下のようにな
る。 (1)まず、該当する実表をすべて生成する。この際に
各実表を生成する度に表に関して付与されている権限を
定義する。 (2)次に、これら実表のみを参照しているビューを生
成する。この際に各ビューを生成する度にビューに関し
て付与されている権限を定義する。 (3)次に、これら実表、及びビューのみを参照してい
るビューを生成する。この際に各ビューを生成する度に
ビューに関して付与されている権限を定義する。 (4)現在までに生成された実表及びビューを参照して
いるビューがなくなると停止する。
【0101】以上の過程において、権限に対するGRA
NT生成の際、複数のGRANT文が生成される場合が
ある。例えば、表T1を伏見が作成し、この権限をWI
THGRANT OPTION付きで安藤に渡す。安藤
は岩崎に更に渡す。この場合、伏見→安藤、安藤→岩崎
の順にGRANT文を生成しないと正しく実行できな
い。この順序を正しく生成する手順が必要となる。以下
に、もっとも一般的な形として上記手順により実表一覧
が得られ、かつ対象範囲指定でALLが選択された場合
に、CREATE TABLE文、CREATE VI
EW文、GRANT文が正しい順で生成される手順の一
例を示す。尚、CREATE USER文、CREAT
E SCHEMA文は各々ユーザ一覧で、スキーマ一覧
Sからそのまま生成できる為、その説明は省略する。 [入力] 実表一覧T :対象となる表一覧 [出力] CREATE TABLE,CREATE VIEW,
GRANT文の列、 [手順] (1)ハッシュ表Bを空にする。Bは現在までにCRE
ATE文を生成したすべての表、ビューを記憶する。 (2)ハッシュ表Dを空にする。Dは、現在までにCR
EATE文を生成したビュー、実表の内、まだ上位のビ
ューで参照されている可能性のあるもの全体を示す。 (3)実表一覧T中の各表tに対し、tがスキーマ一覧
Sのいづれの要素のスキーマにもなければ何もしない。
そうでなければ実表tに対するCREATE TABL
E文を生成する。表tをスキーマ名とともにハッシュ表
Bに登録する。表tをスキーマ名とともにハッシュ表D
に登録する。表tをオブジェクトとするGRANT文を
下記のGRANT文生成手順で生成する。 (4)ここをLOOPラベルとする。 ハッシュ表Cを空にする。Cは、Dの要素であるビュ
ー、実表を参照しているビューの全体を示す。ハッシュ
表Dの各表dに対し、表dを参照している各ビューvに
対し、以下a)を繰り返す。 a)もし、ビューvがスキーマ一覧Sの要素のいづれか
のスキーマにあればビューvをハッシュ表Cに登録す
る。ハッシュ表Cが空であればDを空にして終り。そう
でなければ、ハッシュ表Dを空にする。ハッシュ表Cの
各表cに対して、以下a)、b)を繰り返す。ビューv
が参照している各ビューまたは表tvに対し、 a)もしtvがハッシュ表Bにあればcontinue b)もしtvがハッシュ表Bになければbreak もしvが参照しているすべてのビューまたは実表がハッ
シュ表Bに存在すれば(つまりcontinueで上を
終了すれば)、 a)vに関するCREATE VIEW文を生成する。 b)vをハッシュ表Bに登録する。 c)vをハッシュ表Dに登録する。 LOOPラベルに戻る。
【0102】以上の手順を図2に示す具体例を用いて説
明する。先ず図4に示されるようにハッシュ表B、C、
Dが用意されているものとする。まず、スキーマS1か
ら表T1が選択され、実表T1が生成され、実表T1が
スキーマ名と共にハッシュ表Bとハッシュ表Dに登録さ
れる。そして、この実表T1をオブジェクトとするGR
ANTが生成される。ここまでの時点で図2に示す6
8、69、70までの定義情報が生成される。次に、こ
の実表T1を参照しているビューV1が存在しているの
で、これをハッシュ表Cに登録する。この時点でハッシ
ュ表B、C、Dは図5に示すような状態になる。
【0103】次に、ハッシュ表Dが空にされ、ハッシュ
表Cに登録されているビューV1が参照しているビュー
または実表(この場合には実表T1)が既にハッシュ表
Bに登録されているため、ビューV1に関するCREA
TE文を生成する。この時点で図2の71が生成され
る。そして、ビューV1をハッシュ表B及びハッシュ表
Dに登録する。この時点で各表は図6に示されるような
状態になる。尚、図2の70については後述する。
【0104】次に、前述した手順のループラベルの部分
に戻ることになる。ハッシュ表Cを空にし、ハッシュ表
Dにある表V1に対して表V1を参照しているビューが
あるかどうかをチェックする。この時点ではビューV1
を参照しているビューは存在していないため、ハッシュ
表Cに登録するものは何もなく、ハッシュ表が空である
ためこのループを終了する。
【0105】次にスキーマS2が持つ実表T2に対して
同様の処理が行われる。図7に示すように、実表T2が
スキーマ名と共にハッシュ表B及びハッシュ表Dに登録
される。この時点で、各表は図7に示すような状態にな
る。次に、この実表T2に対するGRANT文を生成す
ることになるが、この実表T2に対しては権限の付与が
ないため、何も生成されない。以上の時点までで、図2
に示す72と73が生成されたことになる。
【0106】次にハッシュ表Cを空にし、ハッシュ表D
に登録された実表T2を参照しているビューがあるかど
うかをチェックする。この場合にはビューV2が存在し
ているため、ビューV2をハッシュ表Cに登録する。こ
の時点で各表は図8に示すような状態になる。
【0107】次にハッシュ表Dを空にし、ハッシュ表C
に登録されたビューV2が参照している各ビューまたは
表が、ハッシュ表Bに登録されているかどうかをチェッ
クする。ビューV2は実表T1とT2を参照している
が、このT1とT2は共に既にハッシュ表Bに登録され
ている。従ってビューV2に関するCREATE文を作
成する。この時点で図2に示した74が生成される。そ
して、ビューV2をハッシュ表Bとハッシュ表Dに登録
する。この時点で各表は図9に示したような状態にな
る。そしてループラベルに戻る。ループラベルに戻ると
ハッシュ表Cを空にし、ハッシュ表Dに登録されている
表に対してその表を参照しているビューが有るかどうか
をチェックする。ビューV2に対しては、ビューV3が
参照しているためビューV3をハッシュ表Cに登録す
る。この時点で各表は図10に示すような状態になる。
ビューV3は、ビューV2のみを参照しており、このビ
ューV2はすでにハッシュ表Bに登録されているため、
このビューV3に対するCREATE文を生成する。こ
の時点で図2の75が生成される。そしてビューV3を
ハッシュ表Bとハッシュ表Dに登録する。この時点で各
表は図11に示すような状態になる。ここで再びループ
ラベルに戻るが、次にはこのビューV3を参照するビュ
ーが存在しない為、ハッシュ表Cに新たに登録するビュ
ーは存在せず、ハッシュ表がからになるためこの処理を
終了する。このようにして前述した手順を用いることに
より、実表及びビューを矛盾なく生成することが可能に
なる。
【0108】次に、GRANT文生成の手順について説
明する。 GRANT文生成の手順(入力:対象物名、所有者名) (1)ハッシュ表Gを空にする。 (2)Gに”所有者名”を登録する。 (3)ここをLOOPラベルとする。 (4)Gが空ならばここでおわり。 そうでなければHを空にする。 G内の各人間gに対し、付与者がg、対象物が”対象物
名”である権限すべてに関して、GRANT文を生成す
る。 権限がWITH GRANT OPTION付きであ
り、かつ権限受領者がユーザ一覧Uの要素であれば、H
にその権限の権限受領者を登録する。 G=Hとする。 LOOPラベルに戻る。
【0109】次に、上記GRANT文生成手順の具体例
について説明する。このGRANT文生成手順は前述し
た実表、ビューの保存手順を生成する過程に呼ばれるも
のであり、ここでは図2に示した70のGRANT文が
生成される場合について説明する。図2の70は$U1
が$U2に対して選択権を与えているものであるが、図
12に示すように、ハッシュ表Gに先ず$U1として所
有者名鈴木が登録される。次にこの鈴木が持っている権
限全てに関してGRANT文を生成する。このGRAN
T文の生成は、図24に示した権限一覧を参照すること
により行われる。権限一覧にはシステムが権限を付与し
た場合と、特にユーザが他のユーザに権限を付与した場
合が存在するが、ここでシステムが付与した権限は無視
され、あるユーザが他のユーザに付与した権限のみが選
択される。この例においてはユーザ鈴木がユーザ田中に
選択権を与えているため、ユーザ鈴木からユーザ田中に
対して選択権を与えるGRANT文が生成される。ま
た、この場合は、権限を再付与することができるため、
表Hにその権限を再付与することができるユーザ名田中
を登録する。この時点で図13のような状態になる。次
に、この表Hをハッシュ表Gに置き換える。即ち、図1
4のようにハッシュ表Gには田中が登録される。この田
中が持つ権限を前述したと同様に権限一覧の中から検索
し、もし田中が他のユーザに対して権限を与えている場
合には、その権限全てに対して再びGRANT文が生成
されることになるが、この例では田中が他のユーザに権
限を与えていることは、権限一覧には登録されていない
ため、GRANT文は生成されない。このように、ユー
ザ1が鈴木である場合にはGRANT文が1つ生成され
る。
【0110】4)データベース及びカタログアクセス装
置の動作 データベースの内容自身、及びカタログの内容をアクセ
スする装置である。この部分は、データベース中核に特
別なインタフェースを設けて実現することができるが、
SQLなどでは、この部分自身もSQLで記述できる。
まずデータベースのアクセスについて説明する。例え
ば、指定した実表T1の内容を取り出すには、 SELECT * FROM T1 なるSQL文を実行すればよい。また、指定した内容を
実表T1の内容にするには、 INSERT INTO T1 ((1,AAA,2),(2,bbb,4),...) なるSQL文を実行すればよい。多くのSQLシステム
では更に高速の表の内容挿入インタフェースを持ってい
るのでそれを用いてもよい。例えば、論理名‘/DEV
/MT00’なる磁気テープの内容を実表T1の内容と
するには、 INSERT INTO T1 FROM /DEV/MT00 次にカタログのアクセスについて説明する。例えば、退
避移行復元手順生成装置で必要とされるカタログ情報は
以下のようにしてSQLによりカタログから得られる。 当該ユーザuが所有している全てのスキーマ SELECT スキーマ名 FROM スキーマ一覧情
報 WHERE 所有者=u スキーマs中の表tを参照しているビューの一覧 SELECT ビュー名 FROM ビュー対表の参照
関係 WHERE 参照表名=t AND 参照表スキーマ名
=s 以上のようにすることにより通常のSQLプログラムに
より通常のSQLのインタフェースで必要な情報が採取
できる。
【0111】また、復元時及び移行時には、対象となる
システムにおけるカタログ内容を復元するには、上記の
ようにSQLの定義系コマンドを実行することにより自
動的に復元できる。例えば移行先で、 を実行することにより、表一覧、列一覧情報中に所要の
情報が設定される。また、表一覧情報中の表毎の列の個
数なども保存内容になくともこれらコマンドの実行によ
り自動的に復元される。あるいは、 CREATE VIEW V1(v11、v12) AS SELECT * FROM T1 WHERE t11>100 を実行することにより、ビュー表参照関係の情報や、ス
キーマ内に表が増加したことによるスキーマ一覧情報内
の格納表数の列なども自動的に更新されることになる。
即ち、これら情報は、退避の際に保存する必要がないこ
とがわかる。
【0112】以上のように、この実施例は、データベー
スシステム中で開発された複数の業務から所要の業務に
関連する定義情報を取り出し、これに加えて、業務に必
要とされるデータ、業務プログラムのみをとりだし、業
務パッケージとして作成し、これを別のマシン、システ
ムに移行可能とすることを特徴とする。
【0113】また、定義情報の取りだしの際に、カタロ
グ情報自身がSQLでアクセス可能な場合、カタログ情
報の読みだしをSQLにより実行することにより特別な
カタログ情報アクセス手段を不要とすることを特徴とす
る。
【0114】また、移行内容の内の定義情報の部分を、
通常のSQLの定義情報定義のコマンド(CREATE
TABLEなど)の履歴的に矛盾のない列に変換し、
復元時には特殊なシステムインタフェースを不要とし、
通常のSQLの定義コマンド群を指定された順に実行す
ることにより復元が可能とする。また、データ自身もS
QLのデータ投入コマンドにより変換し、移行時これを
実行することにより復元が可能になる。更に、これがS
QLという国際標準言語を用いるため、ベンダを超えて
パッケージの移行が可能となる。例えば、上記のスキー
マ中の表の数などは、移行先で表定義のSQL文を順時
実行することによりシステムにより通常の方法で自動的
にこの部分を変更するため、関連する情報の移行が不必
要となる。また、特殊なインタフェースが不要となる。
【0115】また、ユーザ名、データが格納されるシス
テム上の位置など、移行先のシステムで衝突の可能性の
あるものを置き換え可能とし、移行時にはこれらを適宜
置き換えるだけでパッケージのインストールが可能なこ
とを特徴とする。
【0116】また、SQLの手続き部分は保管せず、移
行先で実行を行なった際にカタログ内にこの手続きがな
いことによりその場で再コンパイルを行ない、その結果
を登録することにより、SQLの手続き部を保管するた
めの記憶を節約し、更に移行先での最適化パラメタなど
に応じた業務プログラム移行を可能とすることを特徴と
する。
【0117】また、データベース本体を退避/復元せ
ず、復元時にデータべース定義及びその記憶領域のみを
確保し、退避のための記憶領域を節約する。更に、これ
により業務動作に必要な枠組のみをパッケージとしてイ
ンストールし、データベース内容は移行先で業務の運用
が進むに連れて蓄積されることを可能とする。
【0118】また、この手順を従来のデータベースの単
純な保管/復元手順にも応用し、パッケージ生成とデー
タベースの保管/復元を一つの手順で実行することを特
徴とする。
【0119】また、ジャーナルを保管する際には、ジャ
ーナルの履歴レコードに表の識別子を付与しておくこと
によって、表単位の保管/復元を可能とすることを特徴
とする。
【0120】実施例2.次に、移行または復元の際に
は、退避されたデータをそのまますべて用いて、移行、
または復元する場合に限らず、移行または復元の際に、
退避移行復元手順生成装置3により移行先のシステム環
境にあった移行仕様や、復元すべき対象物の限定等の復
元仕様を与えることができる。例えば、復元する実表と
それを参照しているビューを復元するのではなく、復元
時に実表に対してビューを評価実行し、その結果を実表
として復元することで、以降先でのディスク容量を減ら
し、また用途に応じたデータのみの復元、移行を可能と
する。
【0121】また、復元しようとする実表に対し、SQ
L文による選択、除外を実行し、移行先または復元先で
必要なデータのみを復元することを可能とする。また、
データベース本体を退避している場合でも、移行仕様を
与えることにより、データベース定義及びその記憶領域
のみを確保することも可能である。これにより業務動作
に必要な枠組のみをパッケージとしてインストールし、
データベース内容は移行先で業務の運用が進むに連れて
蓄積されることを可能とする。また、復元する場合で
も、復元仕様を与えることにより一部の実表のみを復元
することが可能になる。また、ジャーナルに対しても、
保存されたジャーナルから復元する実表に対するジャー
ナルのみを選択することが可能になる。このように、退
避されたデータの一部を用いて移行または復元する場合
は、退避されたデータの中に依存情報が存在しているか
らであり、この依存情報も参照することにより、退避さ
れたデータの中から更に、一部のデータを矛盾無く抽出
することが可能になる。
【0122】実施例3.上記実施例においてはSQLを
用いて説明したが、SQLを用いず他のデータベース処
理言語を用いる場合においても、上記実施例と同様の効
果を奏する。
【0123】実施例4.また、上記実施例1においては
データベースシステム退避/移行/復元装置として、デ
ータベース及びプログラムの退避と移行と復元が1つの
装置において出来る場合を説明したが、退避のみを行う
装置、移行のみを行う装置、或いは復元のみを行う装置
が別々に存在していても構わない。
【0124】
【発明の効果】以上のようにこの発明によれば、データ
ベースシステムから指定した業務に必要な定義情報及び
データ及びプログラムを時間軸或いは相互関係に矛盾無
く抽出することができ、これを用いてデータベースシス
テムを復元或いは移行する事が容易に出来るという効果
がある。
【0125】また、データベースの復元とデータベース
の移行を同一の仕様により行うことができるため、デー
タベースの復元と移行のための特別な処理手段を別々に
必要としないという効果がある。
【0126】またデータベースシステムの退避をデータ
ベース処理言語のコマンドの形に変換して退避するた
め、この退避したデータを復元する場合、或いは他のシ
ステムに移行する場合には、データベース処理言語を実
行できるシステムが備わっていればよく、特別な復元手
段或いは、移行手段を必要としないという効果がある。
【図面の簡単な説明】
【図1】この発明に係るデータベース及びプログラム退
避/移行/復元装置のブロック図を示す図である。
【図2】この発明に係るデータベースシステム退避装置
により退避される保存情報の一例を示す図である。
【図3】この発明に係るデータベースシステムの実表と
ビューを退避する場合の退避すべき実表とビューの特定
方法を示す図である。
【図4】この発明に係る退避手順生成装置の実表とビュ
ーの退避手順を説明する図である。
【図5】この発明に係る退避手順生成装置の実表とビュ
ーの退避手順を説明する図である。
【図6】この発明に係る退避手順生成装置の実表とビュ
ーの退避手順を説明する図である。
【図7】この発明に係る退避手順生成装置の実表とビュ
ーの退避手順を説明する図である。
【図8】この発明に係る退避手順生成装置の実表とビュ
ーの退避手順を説明する図である。
【図9】この発明に係る退避手順生成装置の実表とビュ
ーの退避手順を説明する図である。
【図10】この発明に係る退避手順生成装置の実表とビ
ューの退避手順を説明する図である。
【図11】この発明に係る退避手順生成装置の実表とビ
ューの退避手順を説明する図である。
【図12】この発明に係る退避手順生成装置がGRAN
T文を生成する手順を説明するための図である。
【図13】この発明に係る退避手順生成装置がGRAN
T文を生成する手順を説明するための図である。
【図14】この発明に係る退避手順生成装置がGRAN
T文を生成する手順を説明するための図である。
【図15】従来のデータベースシステムのブロック図で
ある。
【図16】従来のデータベースシステムのSQL手順の
実行方式を説明するための図である。
【図17】データベースシステムのブロック図を示す図
である。
【図18】ユーザー一覧情報の具体例を示す図である。
【図19】スキーマ一覧情報の具体例を示す図である。
【図20】表一覧情報の具体例を示す図である。
【図21】データベースシステムの列一覧情報を示す図
である。
【図22】データベースシステムのビュー定義一覧を示
す図である。
【図23】データベースシステムのビュー対表の参照関
係を示す図である。
【図24】データベースシステムの権限一覧を示す図で
ある。
【図25】データベースシステムのプログラム一覧を示
す図である。
【図26】データベースシステムの手順一覧情報を示す
図である。
【図27】データベースシステムの手順対表参照関係を
示す図である。
【符号の説明】 1 コマンド解釈装置 2 制御部 3 退避移行復元手順生成装置 4 ビューSQL実行装置 5 保存媒体アクセス装置 6 データベース及びカタログアクセス装置 7 プログラムアクセス装置 8 保存媒体 9 データベースシステム 10 データベースシステム中核部 11 カタログ(定義情報) 12 データベース 13 ジャーナル 14 実行形式
【手続補正2】
【補正対象書類名】図面
【補正対象項目名】図10
【補正方法】変更
【補正内容】
【図10】
【手続補正3】
【補正対象書類名】図面
【補正対象項目名】図19
【補正方法】変更
【補正内容】
【図19】

Claims (17)

    【特許請求の範囲】
  1. 【請求項1】 以下の要素を有し、定義情報とこの定義
    情報により扱われるデータを記憶するデータベースシス
    テムを退避するデータベースシステム退避装置 (a)上記データベースシステムをアクセスするデータ
    ベースアクセス手段、(b)退避すべきデータを保存デ
    ータとして保存媒体に保存する保存媒体アクセス手段、
    (c)上記データベースシステムの退避命令を入力して
    解釈するコマンド解釈手段、(d)上記データベースア
    クセス手段によりデータベースシステムの定義情報をア
    クセスすることにより、退避すべき対象物の退避すべき
    手順を生成する退避手順生成手段、(e)上記コマンド
    解釈手段により解釈された退避命令に基づき、上記デー
    タベースシステムの中から退避すべき対象物を特定する
    とともに、上記退避手順生成手段を動作させ、退避手順
    生成手段により生成された退避すべき手順に従って、退
    避すべき対象物を上記データベースアクセス手段により
    データベースシステムから取り出し、上記保存媒体アク
    セス手段により保存媒体に保存する制御手段。
  2. 【請求項2】 上記コマンド解釈手段は、退避する対象
    物として、少なくともユーザ名、SQLのスキーマなど
    のデータの分類記述単位名、SQLの表やファイルなど
    のデータ名、SQLのビューなどの論理的データ名、プ
    ログラム名、権限名のいずれかひとつの対象物の指定
    と、この対象物に対する種類と範囲の指定がなされた退
    避命令を入力するとともに、上記制御手段は、退避命令
    による対象物の指定とこの対象物に対する種類と範囲の
    指定に基づいて、定義情報を参照して指定された種類
    と、範囲に含まれる対象物を特定することを特徴とする
    請求項1記載のデータベースシステム退避装置。
  3. 【請求項3】 上記データベースシステムは、データベ
    ース処理言語を用いてアクセスでき、上記データベース
    アクセス手段は、データベース処理言語を用いて上記デ
    ータベースシステムにアクセスすることを特徴とする請
    求項1記載のデータベースシステム退避装置。
  4. 【請求項4】 上記制御手段は、保存媒体に保存する情
    報をデータベース処理言語が用いるコマンドの記述形式
    に変換して保存することを特徴とする請求項1記載のデ
    ータベースシステム退避装置。
  5. 【請求項5】 上記制御手段は、保存媒体に退避すべき
    対象物として定義情報を保存する場合に、保存する定義
    情報をデータベース処理言語による定義情報生成のため
    の定義コマンドに変換して、保存媒体に保存することを
    特徴とする請求項1記載のデータベースシステム退避装
    置。
  6. 【請求項6】 上記制御手段は、保存媒体に退避すべき
    対象物としてデータを保存する場合に、保存するデータ
    をデータベース処理言語によるデータ挿入のためのデー
    タ挿入コマンドに変換して、保存媒体に保存することを
    特徴とする請求項1記載のデータベースシステム退避装
    置。
  7. 【請求項7】 上記制御手段は、保存媒体に退避すべき
    対象物の中に置換可能な変数がある場合、その変数の値
    を置換可能にする置換情報を生成し、これを保存媒体に
    保存することを特徴とする請求項1記載のデータベース
    システム退避装置。
  8. 【請求項8】 上記データベースシステムの定義情報
    は、データベース処理言語による実行形式の処理手順を
    有しており、上記データベースシステムは、さらに、上
    記処理手順のソースコードを保持するとともに上記定義
    情報にある実行形式の処理手順を実行してデータを処理
    するプログラムを有しており、上記データベースシステ
    ム退避手段は、さらに上記プログラムをアクセスするプ
    ログラムアクセス手段を有しており、上記制御手段は、
    上記定義情報にある実行形式の処理手順が退避すべき対
    象物になった場合でもこれを退避すべき対象物とはせ
    ず、代わりに退避すべき処理手順のソースコードを有す
    るプログラムを退避すべき対象物とし、上記プログラム
    アクセス手段を用いて退避すべきプログラムをアクセス
    して取り出し、保存媒体に保存することを特徴とする請
    求項1記載のデータベースシステム退避装置。
  9. 【請求項9】 上記制御手段は、データベースのデータ
    記憶領域を確保するためのデータベース処理言語による
    領域確保コマンドを生成して保存することを特徴とする
    請求項1記載のデータベースシステム退避装置。
  10. 【請求項10】 上記データベースシステムは、さら
    に、データベースへのアクセス履歴情報をデータの識別
    子とともに記録するジャーナルを有し、上記制御手段
    は、上記ジャーナルから識別子を検索することにより、
    保存媒体に退避すべき対象物に関連するデータのアクセ
    ス履歴情報を選択し、これを退避すべきジャーナルとし
    て、保存媒体に保存することを特徴とする請求項1記載
    のデータベースシステム退避装置。
  11. 【請求項11】 上記退避手順生成手段は、退避すべき
    手順を生成する際に、退避すべき対象物間の依存関係を
    特定し、上記制御手段は、上記退避手順生成手段が特定
    した依存関係を依存情報として保存することを特徴とす
    る請求項1記載のデータベースシステム退避装置。
  12. 【請求項12】 上記請求項1記載のデータベースシス
    テム退避装置により保存媒体に保存された保存データを
    入力し、上記保存データに基づいてデータベースシステ
    ムを復元することを特徴とするデータベースシステム復
    元装置。
  13. 【請求項13】 上記請求項1記載のデータベースシス
    テム退避装置により保存媒体に保存された保存データを
    入力し、上記保存データに基づいてデータベースシステ
    ムを新たに構築するデータベースシステム移行装置。
  14. 【請求項14】 上記請求項4、5、6記載のデータベ
    ースシステム退避装置により、データベース処理言語の
    コマンドの記述形式で保存媒体に保存された保存データ
    を入力し、データベース処理言語により記述されたコマ
    ンドを実行することにより、データベースを復元又は移
    行することを特徴とするデータベースシステム復元装置
    又はデータベースシステム移行装置。
  15. 【請求項15】 上記請求項7記載のデータベースシス
    テム退避装置により保存媒体に保存された保存データを
    入力し、置換可能な変数に新たな変数の値を与え、置換
    情報に基づいて置換可能な変数を新たな変数の値に置き
    換えながらデータベースシステムを新たに構築すること
    を特徴とするデータベースシステム移行装置。
  16. 【請求項16】 上記請求項8記載のデータベースシス
    テム退避装置により保存媒体に保存された保存データを
    入力し、データベースシステムを新たに構築するととも
    に、プログラムの実行時に、定義情報に実行形式の処理
    手順が存在しない場合、プログラムにある処理手順のソ
    ースコードをコンパイルして実行形式の処理手順を新た
    に作成することを特徴とするデータベースシステム移行
    装置。
  17. 【請求項17】 上記請求項11記載のデータベースシ
    ステム退避装置により保存媒体に保存された保存データ
    を入力するとともに、復元仕様又は移行仕様を入力し、
    上記保存データの依存関係を参照することにより、復元
    又は移行するデータを復元仕様又は移行仕様に適合する
    ように評価して、データベースを復元又は移行する復元
    手順生成手段又は移行手順生成手段を有することを特徴
    とするデータベースシステム復元装置又はデータベース
    システム移行装置。
JP5043850A 1993-03-04 1993-03-04 データベースシステム退避装置及びデータベースシステム復元装置及びデータベースシステム移行装置 Expired - Fee Related JP2783109B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP5043850A JP2783109B2 (ja) 1993-03-04 1993-03-04 データベースシステム退避装置及びデータベースシステム復元装置及びデータベースシステム移行装置
TW082111230A TW268116B (ja) 1993-03-04 1993-12-31
US08/205,091 US5642505A (en) 1993-03-04 1994-03-02 Backup, restoration, migration systems of a database
KR1019940003993A KR970004101B1 (ko) 1993-03-04 1994-03-02 데이타베이스시스템의 세이브장치, 데이타베이스시스템의 복원장치, 데이타베이스시스템의 이행장치, 데이타베이스시스템 및 그 세이브, 복원, 이행방법
DE69427381T DE69427381T2 (de) 1993-03-04 1994-03-03 Backupsystem und -verfahren für eine Datenbank
EP94103254A EP0614150B1 (en) 1993-03-04 1994-03-03 Database system backup apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5043850A JP2783109B2 (ja) 1993-03-04 1993-03-04 データベースシステム退避装置及びデータベースシステム復元装置及びデータベースシステム移行装置

Publications (2)

Publication Number Publication Date
JPH06259301A true JPH06259301A (ja) 1994-09-16
JP2783109B2 JP2783109B2 (ja) 1998-08-06

Family

ID=12675197

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5043850A Expired - Fee Related JP2783109B2 (ja) 1993-03-04 1993-03-04 データベースシステム退避装置及びデータベースシステム復元装置及びデータベースシステム移行装置

Country Status (6)

Country Link
US (1) US5642505A (ja)
EP (1) EP0614150B1 (ja)
JP (1) JP2783109B2 (ja)
KR (1) KR970004101B1 (ja)
DE (1) DE69427381T2 (ja)
TW (1) TW268116B (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003532190A (ja) * 2000-04-24 2003-10-28 マイクロソフト コーポレイション コンピュータシステムにおいてボリュームスナップショット依存関係を提供する方法および装置
JP2006065845A (ja) * 2004-08-24 2006-03-09 Microsoft Corp 最適化された復元プランの生成
JP2006126906A (ja) * 2004-10-26 2006-05-18 Daikin Ind Ltd データ管理システム
JP2006525599A (ja) * 2003-04-30 2006-11-09 オラクル・インターナショナル・コーポレイション フラッシュバックデータベース
JP2007048066A (ja) * 2005-08-10 2007-02-22 Fuji Xerox Co Ltd デバイス管理装置および方法並びにプログラム
US7191360B2 (en) 2002-11-26 2007-03-13 Samsung Electronics Co., Ltd. Method of data backup and recovery
JP2008077285A (ja) * 2006-09-20 2008-04-03 Hitachi Information Systems Ltd Sql管理システムとsql管理方法およびプログラム

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0962586A (ja) * 1995-08-25 1997-03-07 Fujitsu Ltd 情報処理装置及び情報処理装置におけるデータ処理方法
US5778395A (en) * 1995-10-23 1998-07-07 Stac, Inc. System for backing up files from disk volumes on multiple nodes of a computer network
US5754782A (en) * 1995-12-04 1998-05-19 International Business Machines Corporation System and method for backing up and restoring groupware documents
JPH09325904A (ja) * 1996-06-04 1997-12-16 Nec Corp ファームウエア情報のバックアップ方法
US5778390A (en) * 1996-06-07 1998-07-07 Electronic Data Systems Corporation Method and systems for creating duplicating, and archiving database files
US5819296A (en) * 1996-10-31 1998-10-06 Veritas Software Corporation Method and apparatus for moving large numbers of data files between computer systems using import and export processes employing a directory of file handles
JPH10224665A (ja) * 1997-02-04 1998-08-21 Sony Corp 送出システム
JP3734334B2 (ja) * 1997-05-07 2006-01-11 富士通株式会社 データ移行システム、データ移行用プログラムを格納したコンピュータ読み取り可能な記録媒体、及びデータ移行方法
US6023709A (en) * 1997-12-15 2000-02-08 International Business Machines Corporation Automated file error classification and correction in a hierarchical storage management system
US6151608A (en) * 1998-04-07 2000-11-21 Crystallize, Inc. Method and system for migrating data
US6240427B1 (en) * 1999-01-05 2001-05-29 Advanced Micro Devices, Inc. Method and apparatus for archiving and deleting large data sets
US6356895B1 (en) * 1999-01-08 2002-03-12 International Business Machines Corporation Method and computer program product for processing system files using a trigger program
US6728713B1 (en) * 1999-03-30 2004-04-27 Tivo, Inc. Distributed database management system
US7409546B2 (en) 1999-10-20 2008-08-05 Tivo Inc. Cryptographically signed filesystem
US6625622B1 (en) * 1999-05-14 2003-09-23 Eisenworld, Inc. Apparatus and method for transfering information between platforms
US6938058B2 (en) * 1999-08-23 2005-08-30 Eisenworld, Inc. Apparatus and method for transferring information between platforms
US6978272B1 (en) * 1999-11-29 2005-12-20 Ncr Corporation Method and apparatus for displaying instrumentation parameters in a database system
GB0002019D0 (en) * 2000-01-29 2000-03-22 Ibm Data migration tool
US6963875B2 (en) 2000-03-23 2005-11-08 General Atomics Persistent archives
US6711699B1 (en) 2000-05-04 2004-03-23 International Business Machines Corporation Real time backup system for information based on a user's actions and gestures for computer users
US10235368B2 (en) * 2000-06-08 2019-03-19 International Business Machines Corporation System and method for updating external file referenced by database with transactional consistency using SQL
US7107292B1 (en) 2000-10-13 2006-09-12 International Business Machines Corporation Fast system level recovery
US7620665B1 (en) * 2000-11-21 2009-11-17 International Business Machines Corporation Method and system for a generic metadata-based mechanism to migrate relational data between databases
US20020087962A1 (en) * 2000-12-29 2002-07-04 Hudson Charles A. System and process for migrating enhancements to a system
US9183317B1 (en) * 2001-06-20 2015-11-10 Microstrategy Incorporated System and method for exporting report results from a reporting system
US7133910B2 (en) * 2001-11-23 2006-11-07 International Business Machines Corporation Method for recovering the data of a logic cell in a DCE system
US6915287B1 (en) 2001-12-13 2005-07-05 Novell, Inc. System, method and computer program product for migrating data from one database to another database
US7305410B2 (en) * 2002-12-26 2007-12-04 Rocket Software, Inc. Low-latency method to replace SQL insert for bulk data transfer to relational database
JP4267353B2 (ja) 2003-03-28 2009-05-27 株式会社日立製作所 データ移行支援システム、および、データ移行支援方法
JP4149315B2 (ja) * 2003-06-12 2008-09-10 インターナショナル・ビジネス・マシーンズ・コーポレーション バックアップシステム
US7664795B2 (en) * 2003-09-26 2010-02-16 Microsoft Corporation Apparatus and method for database migration
US7499953B2 (en) * 2004-04-23 2009-03-03 Oracle International Corporation Online recovery of user tables using flashback table
US20060026587A1 (en) * 2004-07-28 2006-02-02 Lemarroy Luis A Systems and methods for operating system migration
US7389314B2 (en) * 2004-08-30 2008-06-17 Corio, Inc. Database backup, refresh and cloning system and method
US7672979B1 (en) * 2005-04-22 2010-03-02 Symantec Operating Corporation Backup and restore techniques using inconsistent state indicators
US7685170B2 (en) * 2005-08-04 2010-03-23 International Business Machines Corporation Journaling database queries for database replication
US20070112582A1 (en) * 2005-11-15 2007-05-17 Sean Fenlon Method for value-added reselling of marketing leads from multiple lead sources
US7747831B2 (en) * 2006-03-20 2010-06-29 Emc Corporation High efficiency portable archive and data protection using a virtualization layer
US7831787B1 (en) 2006-03-20 2010-11-09 Emc Corporation High efficiency portable archive with virtualization
US9235477B1 (en) 2006-04-24 2016-01-12 Emc Corporation Virtualized backup solution
US9317222B1 (en) 2006-04-24 2016-04-19 Emc Corporation Centralized content addressed storage
US8065273B2 (en) * 2006-05-10 2011-11-22 Emc Corporation Automated priority restores
US9684739B1 (en) 2006-05-11 2017-06-20 EMC IP Holding Company LLC View generator for managing data storage
US8103704B2 (en) * 2007-07-31 2012-01-24 ePrentise, LLC Method for database consolidation and database separation
US8819203B1 (en) * 2007-09-28 2014-08-26 Emc Corporation Techniques for providing an application service to an application from an appliance-style application services platform
US9507784B2 (en) 2007-12-21 2016-11-29 Netapp, Inc. Selective extraction of information from a mirrored image file
US8126847B1 (en) * 2008-04-30 2012-02-28 Network Appliance, Inc. Single file restore from image backup by using an independent block list for each file
US8200638B1 (en) 2008-04-30 2012-06-12 Netapp, Inc. Individual file restore from block-level incremental backups by using client-server backup protocol
US8239348B1 (en) * 2008-08-14 2012-08-07 Symantec Corporation Method and apparatus for automatically archiving data items from backup storage
US8504529B1 (en) 2009-06-19 2013-08-06 Netapp, Inc. System and method for restoring data to a storage device based on a backup image
DE102012202603B3 (de) * 2012-02-21 2013-07-04 Siemens Aktiengesellschaft Verfahren zur modellbasierten Softwareentwicklung von Programmen mit Datenbankzugriff
US9489271B1 (en) * 2012-03-29 2016-11-08 Veritas Technologies Llc User interface for restoring databases
CN102693174B (zh) * 2012-06-06 2015-02-18 武汉大学 一种面向对象代理数据库约束的备份方法
GB2529436B (en) * 2014-08-20 2016-05-18 Ibm Grouping file system events to perform continuous file system monitoring and backup
KR102150335B1 (ko) * 2019-01-17 2020-09-01 주식회사 쓰리데이즈 데이터베이스 관리 시스템
CN110147349A (zh) * 2019-04-08 2019-08-20 厦门天锐科技股份有限公司 一种文件数据库管理方法
US11809284B2 (en) * 2019-12-17 2023-11-07 Infosys Limited System and method of cloning a multi-tiered application
CN112084068A (zh) * 2020-09-15 2020-12-15 苏州律点信息科技有限公司 一种数据库远程备份方法、装置和云端服务器

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4961133A (en) * 1987-11-06 1990-10-02 Visystems, Inc. Method for providing a virtual execution environment on a target computer using a virtual software machine
US5136707A (en) * 1988-10-28 1992-08-04 At&T Bell Laboratories Reliable database administration arrangement
US5408652A (en) * 1990-08-31 1995-04-18 Fujitsu Limited Method and apparatus for heterogenous database access by generating different access procedures for different database data structures
US5365433A (en) * 1992-07-24 1994-11-15 Steinberg Geoffrey D System for automatically programming a functional database
US5404508A (en) * 1992-12-03 1995-04-04 Unisys Corporation Data base backup and recovery system and method

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003532190A (ja) * 2000-04-24 2003-10-28 マイクロソフト コーポレイション コンピュータシステムにおいてボリュームスナップショット依存関係を提供する方法および装置
US7191360B2 (en) 2002-11-26 2007-03-13 Samsung Electronics Co., Ltd. Method of data backup and recovery
JP2006525599A (ja) * 2003-04-30 2006-11-09 オラクル・インターナショナル・コーポレイション フラッシュバックデータベース
JP2006065845A (ja) * 2004-08-24 2006-03-09 Microsoft Corp 最適化された復元プランの生成
JP2006126906A (ja) * 2004-10-26 2006-05-18 Daikin Ind Ltd データ管理システム
JP2007048066A (ja) * 2005-08-10 2007-02-22 Fuji Xerox Co Ltd デバイス管理装置および方法並びにプログラム
JP2008077285A (ja) * 2006-09-20 2008-04-03 Hitachi Information Systems Ltd Sql管理システムとsql管理方法およびプログラム

Also Published As

Publication number Publication date
EP0614150A3 (en) 1995-04-05
EP0614150A2 (en) 1994-09-07
DE69427381T2 (de) 2002-04-18
KR940022315A (ko) 1994-10-20
TW268116B (ja) 1996-01-11
KR970004101B1 (ko) 1997-03-25
JP2783109B2 (ja) 1998-08-06
US5642505A (en) 1997-06-24
DE69427381D1 (de) 2001-07-12
EP0614150B1 (en) 2001-06-06

Similar Documents

Publication Publication Date Title
JP2783109B2 (ja) データベースシステム退避装置及びデータベースシステム復元装置及びデータベースシステム移行装置
US7310653B2 (en) Method, system, and product for maintaining software objects during database upgrade
US6003039A (en) Data repository with user accessible and modifiable reuse criteria
US7467163B1 (en) System and method to manipulate large objects on enterprise server data management system
US6003042A (en) Systems, methods and computer programs products for storing a new version of an Envy Library file in a teamconnection object oriented programming environment
US6526441B2 (en) Input/output device information management system for multi-computer system
EP0421623A2 (en) Portable and dynamic distributed applications architecture
JP2863805B2 (ja) 版数管理方式
EP0723238B1 (en) Relational database system and method with high data availability during table data restructuring
US5396623A (en) Method for editing the contents of a DB2 table using an editproc manager
US4932026A (en) Apparatus for distributing data processing across a plurality of loci of control
RU2210803C2 (ru) Компьютерное устройство для выполнения прикладных программ
US6460052B1 (en) Method and system for performing fine grain versioning
Ferrandina et al. Implementing lazy database updates for an object database system
JPH0652531B2 (ja) リレーシヨナル・データベース管理システム
Wiil et al. Hyperform: A hypermedia system development environment
JP3727076B2 (ja) プログラム管理方法および装置
US8086588B2 (en) Computer program product and method for sharing information between multiple computer applications using a grafted model network
Whang et al. Office-by-example: an integrated office system and database manager
US5963955A (en) Bridge for exporting and importing objects between object oriented programming environments
Earl Principles of a reference model for computer aided software engineering environments
Cutts Delivering the benefits of persistence to system construction and execution
JP3769775B2 (ja) 分散リンク情報維持方法
Gerritsen Tools for the automation of database design
CA2476603C (en) Avoiding data loss when refreshing a data warehouse

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080522

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090522

Year of fee payment: 11

LAPS Cancellation because of no payment of annual fees