JP2000181777A - データベース−ファイル連携方法及び装置 - Google Patents

データベース−ファイル連携方法及び装置

Info

Publication number
JP2000181777A
JP2000181777A JP10357255A JP35725598A JP2000181777A JP 2000181777 A JP2000181777 A JP 2000181777A JP 10357255 A JP10357255 A JP 10357255A JP 35725598 A JP35725598 A JP 35725598A JP 2000181777 A JP2000181777 A JP 2000181777A
Authority
JP
Japan
Prior art keywords
file
record
identifier
access
dbms
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP10357255A
Other languages
English (en)
Inventor
Hiroshi Nojima
博 野島
Kazumasa Iwasaki
一正 岩崎
Shigeru Matsuzawa
茂 松澤
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP10357255A priority Critical patent/JP2000181777A/ja
Publication of JP2000181777A publication Critical patent/JP2000181777A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【課題】データベース管理システムにおいて、レコード
とファイルの整合性を維持し、かつファイル形式を管理
する方法及び装置を提供することにある。 【解決手段】データベース管理システム342におい
て、ファイル244を管理することを目的としたデータ
構造を具備し、前記データ構造を含むレコードの更新処
理時に呼び出される外部ファイル連携機能343を具備
し、前記レコードの更新と前記ファイル244の更新を
同期させる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、オペレーティング
システムのファイルシステム(以下、OSファイルシス
テム)によって定義される「ファイル」をデータベース
管理システム(以下、DBMS)制御下で管理するシス
テムに関し、特にこのデータベース管理システムを用い
て管理されたファイルを、検索の結果として利用者が取
得する際に効果的なデータベース−ファイル連携方法及
び装置に関する。
【0002】
【従来の技術】データベースのレコードに関連づけてO
Sファイルシステムの定義する「ファイル」を管理する
方法として、ファイル所在位置情報(いわゆるディレク
トリパス)をレコード内の一つのフィールドに書き込ん
でおく方法がある。この方法では、DBMS側から見た
とき、単に文字列が格納されているに過ぎず、その文字
列がファイルを指しているという認識はなく、ファイル
サイズ、ファイルの内容形式も関知していない。つま
り、当該ファイルは、DBMSとは独立に、利用者が管
理する必要がある。こうした方法でデータベースを作成
した利用者プログラムは、任意のフィールドを検索キー
としてデータベースを検索した後、当該レコード中のフ
ァイルのディレクトリパスが書き込まれたフィールドの
文字列を取得し、その文字列をディレクトリパスと見な
して当該ファイルを参照していた。
【0003】
【発明が解決しようとする課題】ディレクトリパスをデ
ータベースのレコードに直接格納する従来の技術によれ
ば、ファイルの管理とディレクトリパスを格納したレコ
ードの管理が別々に行なわれるため、データベースのレ
コードの更新・削除とは、非同期にファイルの追加・削
除が実行される可能性があり、データベースとファイル
との間に不整合が発生しやすい。一度整合性が取れなく
なると、整合性の取れた状態に戻すことは困難である。
【0004】また、検索されたファイルを利用する際に
は、そのファイルがどのような形式で、どのようなサイ
ズであっても、DBMS管理下ではファイルに加工を施
すことができず、すべて利用者プログラムの責任でファ
イルの管理と活用を行なわなければならなかった。
【0005】したがって、潜在的に以下の3つの問題が
ある。
【0006】(1)ファイルのサイズが大きい場合、検
索後のファイル転送でネットワークの負荷が高くなる。
【0007】(2)利用者クライアントに、一時的に、
取得するファイルを元の形式で格納できるだけのディス
ク・スペースもしくは空きメモリが必要である。
【0008】(3)ファイルの形式変換が必要とされる
場合、利用者プログラム側にファイル形式変換プログラ
ムを用意しておく必要がある。
【0009】
【課題を解決するための手段】DBMSによりファイル
を管理するために、ファイル抽象データ型をDBMSに
導入する。ファイル抽象データ型は、管理するファイル
に関する情報(ディレクトリパス、ファイル内容形式、
ファイルサイズなど)を格納するデータ構造と当該情報
を処理するための関数を提供する。DBMS利用者は、
このファイル抽象データ型のフィールドを持つテーブル
を定義することにより、データベースにファイルを登録
することが出来るようになる。
【0010】また、DBMS管理下のファイルを管理す
るために、一般利用者よりも上位のファイルアクセス権
限を持つファイル管理システム(以下、DBMS外部フ
ァイル管理システムと呼ぶ)を導入する。DBMS管理
下のファイルは、このDBMS外部ファイル管理システ
ムを所有者とし、OSファイルシステムレベルにおい
て、一般利用者から参照・更新ができないようなアクセ
ス制御情報を設定しておく。
【0011】さらに、テーブルに格納されたファイル管
理情報とDBMS外部ファイル管理システムとを連携さ
せるために、DBMS内部にファイル抽象データ型の処
理機能としての外部ファイル連携機能を定義し、データ
ベース操作(例えば、INSERT処理、SELECT
処理など)の実行契機に、上記DBMS外部ファイル管
理システムの該当する処理を呼び出すように設定する。
【0012】また、DBMSの利用者が検索結果のファ
イルにアクセスする手段を提供するために、外部ファイ
ル連携機能には、データベースレコードの検索時にアク
セス用ハンドルを作成する機能を持たせる。この機能
は、上記ファイル抽象データ型の提供する関数から呼び
出される。DBMS管理下のファイルを参照するには、
データベースレコードを検索し、ファイル抽象データ型
の関数により前述のアクセス用ハンドルを取得し、アク
セス用ハンドルを使用してDBMS外部ファイル管理シ
ステムのファイル参照機能を呼び出すことにより、ファ
イルの参照が可能となる。
【0013】加えて、DBMS外部ファイル管理システ
ムには、ファイル形式変換機能を持たせる。ファイル参
照の際、利用者が所望するファイル取得形態(ファイル
内容形式の変換、ファイルの任意オフセット位置からの
任意長部分データ)を指定することにより、前記DBM
S外部ファイル管理システムでファイルが加工され、利
用者は指定したファイル形式でファイルデータを取得す
ることが出来る。
【0014】このように、データベース操作処理とファ
イル操作処理とを連携させることにより、データベース
レコードとそのレコードに関連付けられて管理されるフ
ァイルとの整合性維持をデータベース管理システムに対
する操作で実現できるとともに、前記課題(1),
(2),(3)が解決される。
【0015】
【発明の実施の形態】以下、図面を参照して、本発明の
実施の形態(実施例)を詳細に説明する。
【0016】図1は、本発明を、データベースサーバ
(以下、DBサーバ)、ファイルサーバ、利用者クライ
アントで構成される分散データ管理システムに適用した
場合の各計算機と、その上で稼動するソフトウェアの構
成を示すシステムブロック図である。
【0017】利用者クライアント10とファイルサーバ
20、DBサーバ30は、互いに通信ネットワーク90
で接続されている。
【0018】利用者クライアント10は、CPU11、
メモリ12、ネットワークインタフェース13、二次記
憶装置14を備え、これらはバス19によって接続され
ている。利用者クライアント10は、ネットワークイン
タフェース13を通して通信ネットワーク90に接続し
ている。二次記憶装置14上には、オペレーティングシ
ステム(以下、OS)141、クライアント用DBMS
外部ファイル管理システム(以下、FMS−C)14
2、利用者プログラム143、利用者プログラムからの
アクセスのためにDBMS管理下のファイルをコピーし
た取得ファイル144、及びこの取得ファイル144の
OSファイルアクセス制御情報145が格納される。
【0019】ファイルサーバ20は、CPU21、メモ
リ22、ネットワークインタフェース23、二次記憶装
置24を備え、これらはバス29によって接続されてい
る。ファイルサーバ20は、ネットワークインタフェー
ス23を通して通信ネットワーク90に接続している。
二次記憶装置24上には、OS241、サーバ用DBM
S外部ファイル管理システム(以下、FMS−S)、F
MS−Sから呼び出されるファイル形式変換機能(FC
L)243、DBMS342管理下のファイル244、
及びこのDB管理下ファイル244のOSファイルアク
セス制御情報245が格納される。
【0020】DBサーバ30は、CPU31、メモリ3
2、ネットワークインタフェース33、二次記憶装置3
4を備え、これらはバス39によって接続されている。
DBサーバ30は、ネットワークインタフェース33を
通して通信ネットワーク90に接続している。二次記憶
装置34上には、OS341、DBMS342、DBM
Sの外部ファイル連携機能(FAE)343、DBMS
342管理下のテーブル情報344、及びこのテーブル
更新に対する操作のログ345が格納される。テーブル
情報344の詳細は、図2で説明する。
【0021】DBMS342は、SQLをインタフェー
スとして採用しており、通常のSQLデータ型の他にフ
ァイル抽象データ型を扱えるように拡張されている。フ
ァイル抽象データ型は、ファイルを管理するための情報
を格納するデータ構造とこのデータ構造専用の関数を提
供する。DBMS342において、ファイル抽象データ
型の処理機能を実装するモジュールが、前述の外部ファ
イル連携機能343である。
【0022】DBMS外部ファイル管理システムは、フ
ァイルサーバ20上のFMS−S242及び利用者クラ
イアント10上のFMS−C142から構成される。D
BMS外部ファイル管理システムは、一般利用者と異な
るファイルアクセス権限を持つ利用者FMSの権限で稼
動する。DBMS管理下のファイル244は、登録時に
FMS−S242により、そのOSファイルアクセス制
御情報245を更新され、DBMS外部ファイル管理シ
ステム(すなわち利用者FMS)以外は参照も更新も出
来ないように設定される。これにより、データベースに
登録されたファイルに対する不当な参照及び更新を防止
する。
【0023】ファイルサーバ20上のFMS−S242
は、外部ファイル連携機能343及び利用者プログラム
143とのインタフェースを持つ。これらのインタフェ
ースは、一般にリモートプロシージャコール(以下、R
PC)と呼ばれる手段を用いて実装される。RPCによ
り、プログラムは、呼び出し先プログラムの識別子と関
数名称を指定することで、他プログラム内の関数を呼び
出すことが出来る。DBMS外部ファイル管理システム
の関数を呼び出すために必要となるFMS−C142、
FMS−S242の識別子は、呼び出し側で動的に決定
する。なお、FMS−C142も利用者プログラムから
のRPCインタフェースを持つ。また、FMS−S24
2もFMS−C142からのRPCインタフェースを持
つ。
【0024】図2から図4を用いて、ファイル抽象デー
タ型と外部ファイル連携機能343について説明する。
【0025】図2は、テーブル情報344内に格納され
る、外部ファイル管理テーブル4000の構造を示して
いる。このフィールド構成は一つの例であり、これと異
なるフィールド構造であっても、本発明の実施には差し
支えない。テーブル4000のレコードには、番号40
11、表題4012、外部ファイル4013の3つのフ
ィールドがある。
【0026】DBMS342は、テーブルのレコード、
フィールドに、それぞれレコード識別子4001、フィ
ールド識別子4002を付与する。レコード識別子40
01は、テーブルに含まれるレコードを一意に識別する
ためのものであり、フィールド識別子4002は、レコ
ードを構成するフィールドを一意に識別するためのもの
である。
【0027】外部ファイル4013のデータ型は前述の
ファイル抽象データ型であり、ファイル抽象データ型の
データ構造として、FMS−S識別子4014、ディレ
クトリパス4015、ファイル内容形式4016、及び
ファイルサイズ4017が格納される。
【0028】図3は、DBMS342の処理とこれに関
連づけられる外部ファイル連携機能343の処理との対
応を示している。パラメータは、その関数へDBMS3
42が渡すべき情報であり、契機はDBMS342がデ
ータベース処理のどの時点でその関数を呼び出すのかを
示している。以下、それぞれの連携機能について説明す
る。
【0029】ファイル登録連携機能は、DBMS342
がSQLのINSERT文を処理する際に呼び出され
る。この際にパラメータとして、新規レコードのレコー
ド識別子、このレコードのファイル抽象データ型フィー
ルドのフィールド識別子、現行トランザクションのトラ
ンザクション識別子が与えられる。この関数により、登
録されるファイル244に関する情報がINSERT文
で作成されるレコードの外部ファイルフィールド401
3に格納される。
【0030】ファイル削除連携機能は、DBMS342
がSQLのDELETE文を処理する際に呼び出され
る。この際にパラメータとして、削除するレコードのレ
コード識別子、このレコードのファイル抽象データ型フ
ィールドのフィールド識別子、及び現行トランザクショ
ンのトランザクション識別子が与えられる。この関数に
より、削除されるレコードの外部ファイルフィールド4
013に格納されたディレクトリパス4015で指定さ
れるDB管理下ファイル244が削除される。
【0031】ファイル更新連携機能は、DBMS342
がSQLのUPDATE文を処理する際に呼び出され
る。この際にパラメータとして、新規レコードのレコー
ド識別子、このレコードのファイル抽象データ型フィー
ルドのフィールド識別子、現行トランザクションのトラ
ンザクション識別子が与えられる。この関数により、新
規に登録されるDB管理下ファイル244に対応するフ
ァイル抽象データ型のデータがUPDATE文で更新さ
れるレコードの外部ファイルフィールド4013に格納
され、このフィールドに旧値として格納されていたディ
レクトリパス4015で指定されるDB管理下ファイル
244が削除される。
【0032】コミット処理の連携機能は、DBMS34
2が現行のトランザクションをコミット終了する際に呼
び出される。この際にパラメータとして、コミット終了
するトランザクションのトランザクション識別子が渡さ
れる。この関数により、現行トランザクション内で行な
われたファイル登録処理、ファイル削除処理、及びファ
イル更新処理の結果が確定される。
【0033】ロールバック処理の連携機能は、DBMS
342が現行のトランザクションをロールバック終了す
る際に、当該トランザクション中に外部ファイル連携機
能343が作成したログ345のレコードごとに呼び出
される。この際にパラメータとして、ロールバック終了
するトランザクションのトランザクション識別子とロー
ルバックすべきログレコードが渡される。この関数によ
り、ログレコードに記録されたファイル登録処理、ファ
イル削除処理、及びファイル更新処理が取り消される。
【0034】登録パラメータ設定連携機能、すなわちフ
ァイル抽象データ型関数new()は、ファイル登録に
関するパラメータを指定するためにINSERT文また
はUPDATE文に埋め込まれる。利用者プログラム1
43では、パラメータとして登録用ハンドルとファイル
内容形式を指定する。DBMS342において、処理対
象となるレコードのレコード識別子、及びこのレコード
のファイル抽象データ型フィールドのフィールド識別子
をパラメータに追加して、外部ファイル連携機能343
の機能呼び出しを行なう。
【0035】アクセス用ハンドル生成連携機能、すなわ
ちファイル抽象データ型関数get_accessha
ndle()は、登録されたファイルにアクセスするた
めのアクセス用ハンドルを取得するために、SQLのS
ELECT文中に埋め込まれる。利用者プログラム14
3は、パラメータとしてアクセル用ハンドルの利用者名
称のみを指定するが、DBMS342において、処理対
象となるレコードのレコード識別子、このレコードのフ
ァイル抽象データ型フィールドのフィールド識別子をパ
ラメータに追加して、外部ファイル連携機能343の機
能呼び出しを行なう。利用者プログラム143は、この
関数の戻り値であるアクセス用ハンドルをSQLのFE
TCH文により取得する。
【0036】図4は、表4000に対するDB操作文の
例である。以下、各々について説明する。
【0037】(1)は、ファイル登録を伴うレコード登
録のためのINSERT文である。VALUES句の3
つ目には、前述のファイル抽象データ型の関数ne
w()を指定する。この関数new()のパラメータで
ある変数:entryhandleには、登録されるフ
ァイルの登録用ハンドルが格納されており、ファイル内
容形式は’image/tiff’と指定されている。
この例では、番号4011に104、表題4012に”
dandelion”、外部ファイル4013に:en
tryhandleで指定したファイルの情報を持つレ
コードがデータベースに登録され、指定されたファイル
がDBMSの管理下に入る。(ただし、確定するのは現
行トランザクションのコミット時である。)(2)は、
レコード削除のためのDELETE文である。この例で
は、番号4011が100であるレコードと、このレコ
ードの外部ファイル4013で管理されるファイルが削
除される。(ただし、ファイルの実体が削除されるのは
現行トランザクションのコミット時である。)(3)
は、外部ファイル4013を更新するためのUPDAT
E文である。この例では、番号4011が103である
レコード4023の外部ファイルに、前述のファイル抽
象データ型の関数new()を、変数:entryha
ndleに新規に登録されるファイルの登録用ハンドル
を格納して指定することにより、このレコードで管理さ
れているファイルを新規ファイルに差し替える。差し替
えられるファイル(更新前に登録されていたファイル)
は削除される。(ただし、ファイルの実体が削除される
のは現行トランザクションのコミット時である。)
(4)は、ファイルアクセスのためのアクセス用ハンド
ルを取得するためのSELECT文である。この例で
は、表題4012が”sun”で始まるレコードが検索
対象となる。表4000の内容が図2に示した状態であ
る場合、レコード4021と4022が該当する。検索
結果として取得されるのは、表題4012と、前述の抽
象データ型の関数get_accesshandl
e()の実行結果として得られるアクセス用ハンドルで
ある。検索結果は、SELECT文実行後にFETCH
文を実行する毎に1レコードずつ取得することが出来
る。なお、変数:usernameには、アクセス用ハ
ンドルの利用者名称を指定することが出来る。これによ
って、取得したアクセス用ハンドルを別の利用者プログ
ラムに渡してファイルアクセスを行なわせることも出来
る。
【0038】図5から図8は、DBMS外部ファイル管
理システム(FMS−C142、FMS−S242)及
び外部ファイル連携機能343のインタフェースを示し
ている。
【0039】図5は、利用者プログラム143がFMS
−S242を呼び出す時のインタフェースを示してい
る。
【0040】(1)のmake_entryhandl
e()は、前述のINSERT文、UPDATE文で使
用するファイル登録用ハンドルを作成するためのインタ
フェースである。入力用パラメータとして、登録するフ
ァイルのディレクトリパスを指定する。出力用パラメー
タとして、作成された登録用ハンドルを受け取るための
出力用領域を指定する。RPC呼び出しに成功した場
合、前記出力用領域に、そのファイルに対する登録用ハ
ンドルが設定される。登録するファイルは、予めFMS
−S242の稼動するファイルサーバ20上に配置して
おく。
【0041】(2)のbegin_access()
は、前述のSELECT文で得られたアクセス用ハンド
ルで指定されるファイルを、利用者クライアントからア
クセスできるようセッションを開始するためのインタフ
ェースである。入力用パラメータとして、DB検索で取
得したアクセス用ハンドル、利用者クライアントのFM
S−C142の識別子、利用者プログラムのプロセス識
別子を指定する。出力用パラメータとして、作成された
アクセス識別子を受け取るための出力用領域を指定す
る。RPC呼び出しに成功した場合、前記出力用領域に
そのファイルに対するアクセス識別子が設定される。
【0042】このアクセス識別子を用いることで、アク
セス用ハンドル4300(後述)の内部情報の他、FM
S−C142の識別子、利用者プログラムのプロセス識
別子などの情報を、必要に応じて取得できる。また、ア
クセスが開始されたファイルに対してFMS−S242
でロックをかけることで、利用者のアクセス中にDBM
SのDELETE文でファイルが削除されることを防止
する。
【0043】(3)のread_direct()は、
アクセス用ハンドルで指定されるファイルを、利用者ク
ライアント10のメモリ12へ直接読み出すためのイン
タフェースである。入力用パラメータとして、begi
n_access()で取得したアクセス識別子、ファ
イルの読み出し開始地点のオフセット、読み出す長さを
指定する。出力用パラメータとして、読み出されたファ
イル・データを受け取るための出力用領域を指定する。
RPC呼び出しに成功した場合、前記出力用領域にファ
イルデータが格納される。
【0044】(4)のend_access()は、b
egin_access()で開始したファイルアクセ
スセッションを終了するためのインタフェースである。
入力パラメータとして、begin_accessで取
得したアクセス識別子を指定する。この呼び出しによっ
てFMS−S242でファイルに対してかけられていた
ロックが解除される。
【0045】図6は、利用者プログラム143がFMS
−C142を呼び出す時のインタフェースを示してい
る。
【0046】(1)のprepare_localfi
le()は、検索結果のファイルを利用者の所望の形式
に変換して、利用者クライアント上に取得するためのイ
ンタフェースである。入力用パラメータとして、beg
in_access()で取得したアクセス識別子、取
得するファイルのディレクトリパス、取得する際に変換
する(変換後の)ファイル内容形式を指定する。RPC
呼び出しに成功した場合、指定したディレクトリパス
に、指定したファイル内容形式でファイルが格納され
る。
【0047】(2)のdelete_localfil
e()は、利用者クライアントに取得したファイルを削
除するためのインタフェースである。入力用パラメータ
として、begin_access()で取得したアク
セス識別子を指定する。RPC呼び出しに成功した場
合、入力用パラメータのアクセス識別子を用いてpre
pare_localfile()で取得したファイル
が、すべて削除される。
【0048】図7は、外部ファイル連携機能343がF
MS−S242を呼び出す時のインタフェースを示して
いる。
【0049】(1)のnew_file()は、外部フ
ァイル連携機能343におけるファイル登録処理におい
て、登録用ハンドル4200(後述)の有効性を検証す
るためのインタフェースである。入力用パラメータとし
て、登録用ハンドル4200から取得した通番(登録用
ハンドル発行管理テーブル4500(後述)内の通番に
等しい)と、登録する際のファイル内容形式を指定す
る。この呼び出しによって、必要であればファイル内容
形式のチェックも行なわれる。
【0050】(2)のdelete_file()は、
外部ファイル連携機能343における、ファイル削除処
理またはファイル更新処理を含む、トランザクション完
了処理(コミット処理またはロールバック処理)におい
て、外部ファイルの削除が指示された場合に、ファイル
の削除を指示するためのインタフェースである。入力用
パラメータとして、削除するファイルのディレクトリパ
スを指定する。
【0051】(3)のcheck_file()は、外
部ファイル連携機能343におけるファイル削除処理ま
たはファイル更新処理において、対象となるファイルの
削除の可否を確認するためのインタフェースである。他
の利用者がアクセスしているファイルは、FMS−S2
42においてロックがかけられているため、削除するこ
とが出来ない。入力用パラメータとして、アクセス中か
どうかを確認するファイルのディレクトリパスを指定す
る。
【0052】図8は、FMS−C142がFMS−S2
42を呼び出す時のインタフェースを示している。
【0053】(1)のsend()は、prepare
_localfile()の延長で呼び出される、ファ
イル送信を指示するためのインタフェースである。入力
用パラメータとして、転送元のFMS−S242におけ
る外部ファイルアクセス管理テーブル4600(後述)
内の通番、取得対象ファイルの変換後のファイル内容形
式を指定する。出力用パラメータとして、受信データを
格納するためのデータ領域を指定する。RPC呼び出し
に成功した場合、前記データ領域にファイル・データが
格納される。
【0054】図9は、DBMS外部ファイル管理システ
ムFMS−S242から、ファイル形式変換機能243
を呼び出すときのインタフェースを示している。この呼
び出し形態は、前述したRPCでなくても構わない。
【0055】(1)のconv_file()は、ファ
イルの形式変換を行なうためのインタフェースである。
入力用パラメータとして、変換元のファイルのディレク
トリパス、元のファイル内容形式、変換後のファイル内
容形式を指定する。出力用パラメータとして、変換後の
ファイル・データを格納するためのデータ領域を指定す
る。変換に成功した場合、前記データ領域にファイル・
データが格納される。
【0056】(2)のget_filetype()
は、ファイル登録時にファイル形式が会っているかを確
認する際に用いられる、ファイルの内容形式を調べるた
めのインタフェースである。入力用パラメータとして、
調べるファイルのディレクトリパスを指定する。出力用
パラメータとして、判別されたファイルの内容形式を格
納するための領域を指定する。判別に成功した場合、前
記領域にファイル内容形式が格納される。判別できなか
った場合、空文字列が格納される。
【0057】(3)のread_file()は、前述
のread_direct()の延長で呼び出される、
ファイルの部分読み出しを行なうためのインタフェース
である。入力用パラメータとして、読み出すファイルの
ディレクトリパス、ファイルの読み出し開始地点のオフ
セット、読み出す長さを指定する。出力用パラメータと
して、ファイル・データを格納するためのデータ領域を
指定する。読み出しに成功した場合、前記データ領域に
ファイル・データが格納される。
【0058】図10から図16は、本発明に係わる種々
のデータ構造を示している。
【0059】図10は、OSファイルアクセス制御情
報、すなわちOSが管理するファイルに関する情報のう
ち、本発明に係わるアクセス制御の部分のデータ構造で
ある。利用者クライアント10のOSファイルアクセス
制御情報145を例としているが、ファイルサーバ20
のOSファイルアクセス制御情報245も同様のデータ
構造である。
【0060】OSファイルアクセス制御情報145内に
は、FMS−C142管理下の取得ファイル144一つ
に対して一つのアクセス制御情報4100が作成され
る。OSファイルアクセス制御情報245内には、FM
S−S242が管理するDB管理下ファイル244一つ
に対して一つのアクセス制御情報4100が作成され
る。
【0061】アクセス制御情報4100には、利用者毎
に利用者名称4111とその利用者に与えられるファイ
ルへのアクセス権4112が登録される。利用者名称4
111に登録されていない利用者は、ファイルをアクセ
スすることが出来ない。
【0062】レコード4121は、利用者「FMS」に
対して参照及び更新を許し、レコード4122は利用者
「nojima」に対して参照を許すことを、それぞれ
示している。なお、この利用者名称4111の並びには
意味があり、最上位のもの、すなわち図10では412
1で示される利用者「FMS」は、このファイルの「所
有者」であることを意味している。
【0063】図11は登録用ハンドル4200のデータ
構造である。登録用ハンドルは、FMS−S242のm
ake_entryhandle関数において作成され
る。登録用ハンドルは、通番4211、FMS−S識別
子4212、ディレクトリパス4213、及びファイル
サイズ4214の4つのフィールドから構成される。
【0064】通番4211には、make_entry
handle関数実行時に作成される登録用ハンドル発
行管理テーブル4500(後述)の通番4511と同じ
値が設定される。FMS−S識別子4212には、当該
登録用ハンドルを作成したFMS−S242の識別子が
設定される。
【0065】ディレクトリパス4213には、make
_entryhandle関数の入力パラメータとして
指定されたディレクトリパスが設定される。ファイルサ
イズ4214には、前記ディレクトリパスによって示さ
れるファイルのサイズが、FMS−S242によってO
S241の提供するOSファイルサイズ情報取得関数が
呼び出されて取得され、設定される。
【0066】図12は、アクセス用ハンドル4300の
データ構造である。アクセス用ハンドルは、外部ファイ
ル連携機能343において作成され、ファイル抽象デー
タ型関数get_accesshandle()の戻り
値として利用者プログラムに与えられる。アクセス用ハ
ンドルは、FMS−S識別子4311、ディレクトリパ
ス4312、ファイル内容形式4313、ファイルサイ
ズ4314、及び利用者名称4315の5つのフィール
ドから構成される。FMS−S識別子4311には、ア
クセス対象のファイルを管理するFMS−S242の識
別子が設定される。ディレクトリパス4312には、ア
クセス対象となるファイルのディレクトリパスが設定さ
れる。内容形式4313には、アクセス対象のファイル
のDB管理下でのファイル内容形式が設定される。ファ
イルサイズ4314には、アクセス対象のファイルのサ
イズが設定される。利用者名称4315には、get_
accesshandle()の入力用パラメータとし
て指定された利用者名称がそのまま設定される。
【0067】図13は、クライアント用DBMS外部フ
ァイル管理システムFMS−C142がメモリ12上に
確保する領域122内に格納される、取得ファイル管理
に関するデータ構造を示している。
【0068】取得ファイル144の管理は、取得ファイ
ル管理テーブル4400によって行なわれる。取得ファ
イル管理テーブル4400は、プロセス識別子441
1、ディレクトリパス4412、FMS−S識別子44
13、通番4414の4つのフィールドから構成され
る。prepare_localfile()によって
利用者クライアントにファイルが取得されるときに、取
得ファイル144の情報が合わせてレコードに登録され
る。プロセス識別子4411は利用者プログラムのプロ
セス識別のためのものであり、前記関数の入力パラメー
タに指定されたアクセス識別子から抽出されたものが設
定される。
【0069】ディレクトリパス4412には、前記関数
の入力パラメータに指定されたファイルのディレクトリ
パスが設定される。FMS−S識別子には、前記関数の
入力パラメータに指定されたアクセス識別子から抽出さ
れた識別子が設定される。通番4414には、前記関数
の入力パラメータに指定されたアクセス識別子から抽出
された通番、すなわちFMS−S242の外部ファイル
アクセス管理テーブル4600(後述)中の通番461
1が設定される。
【0070】図14は、サーバ用DBMS外部ファイル
管理システムFMS−S242がメモリ22上に確保す
る領域222内に格納される、管理情報のデータ構造を
示している。上部はファイルの登録用ハンドルに関する
データ構造であり、下部は外部ファイルのアクセスセッ
ション管理に関するデータ構造である。
【0071】登録用ハンドル管理情報は、登録用ハンド
ル発行管理テーブル4500と、登録用ハンドル通番管
理4590とで構成される。登録用ハンドル通番管理4
590は、自然数を保持し、登録用ハンドル発行管理テ
ーブルに新規レコードを追加する際に参照されたとき、
現在の値を返した後番号が一つ増える動作をする。
【0072】登録用ハンドル発行管理テーブル4500
は、通番4511、ディレクトリパス4512、ファイ
ルサイズ4513、所有者名称4514、アクセス権4
515の5つのフィールドから構成される。FMS−S
242のmake_entryhandle()によっ
て登録用ハンドルが生成されるときに、合わせてレコー
ドに登録される。通番4511は登録用ハンドルの識別
のためのものであり、登録用ハンドルの作成時に登録用
ハンドル通番管理4590の参照によって取得された値
が設定される。ディレクトリパス4512には、前記関
数の入力パラメータに指定されたファイルのディレクト
リパスが設定される。
【0073】ファイルサイズ4513には、前記関数の
呼び出し時に、指定されたファイルにアクセスして取得
したサイズが設定される。所有者名称4514には、前
記関数の呼び出し時に、指定されたファイルのアクセス
制御情報4100の利用者名称4111の先頭の名称、
すなわち所有者名称が設定される。アクセス権4515
には、前記関数の呼び出し時に、指定されたファイルの
アクセス制御情報4100のアクセス権4112の先頭
のものが設定される。これら所有者名称4514とアク
セス権4515は、ファイル登録に失敗したときに、フ
ァイルの所有者とアクセス権を前記関数呼び出しの直前
の状態になるべく近い状態に戻すためのものである。
【0074】アクセスセッション管理情報は、外部ファ
イルアクセス管理テーブル4600と、外部ファイルア
クセス通番管理4690とで構成される。外部ファイル
アクセス通番管理4690は、自然数を保持し、新規の
外部ファイルアクセス要求が来て外部ファイルアクセス
管理テーブル4600に新規レコードを追加する際に参
照されたとき、現在の値を返した後番号が一つ増える動
作をする。
【0075】外部ファイルアクセス管理テーブル460
0は、通番4611、ディレクトリパス4612、FM
S−C識別子4614、プロセス識別子4615の4つ
のフィールドから構成される。begin_acces
s関数によって外部ファイルへのアクセスセッションが
開始されるときに、合わせてレコードに登録される。通
番4611はアクセスセッションの識別のためのもので
あり、アクセス開始時に外部ファイルアクセス通番管理
4690の参照によって取得された値が設定される。
【0076】ディレクトリパス4612には、前記関数
の入力パラメータに指定されたアクセス用ハンドルから
取得されたファイルのディレクトリパスが設定される。
FMS−C識別子4614には、前記関数の入力パラメ
ータに指定されたクライアント名が設定される。プロセ
ス識別子4615には、前記関数の入力パラメータに指
定された利用者プログラムのプロセス識別子が設定され
る。
【0077】図15はログ345に格納されるログレコ
ードのうち、外部ファイル連携機能343が取得する外
部ファイルログ4800のデータ構造を示している。外
部ファイル連携機能343では、レコード登録時、レコ
ード削除時、及びレコード更新時において外部ファイル
フィールド4013が更新されるときに、その後のトラ
ンザクションロールバック処理において参照する情報を
保持するために、DBMS342のログ取得機能を用い
て外部ファイルログ4800に回復のための情報を記録
する。
【0078】外部ファイルログ4800は、トランザク
ション識別子4811、操作4812、FMS−S識別
子4813、ディレクトリパス4814、更新後のFM
S−S識別子(後)4815、更新後のディレクトリパ
ス(後)4816から構成される。
【0079】トランザクション識別子4811には、外
部ファイルログ4800にログを取得する契機となった
更新処理の属する現行トランザクションの識別子が設定
される。操作4812は、更新処理の種類によって、
「INSERT」(レコード登録時)、「DELET
E」(レコード削除時)、「UPDATE」(レコード
更新時)のうちいずれかが設定される。FMS−S識別
子4813、ディレクトリパス4814、及びFMS−
S識別子(後)4815、ディレクトリパス(後)48
16には、更新対象となるファイルのFMS−S識別
子、ディレクトリパスが設定される。
【0080】操作4812が「DELETE」または
「INSERT」の場合は、FMS−S識別子(後)4
815、ディレクトリパス(後)4816には空値が設
定される。操作4812が「UPDATE」の場合は、
FMS−S識別子4813、ディレクトリパス4814
に更新前のファイルに関する情報が設定され、FMS−
S識別子(後)4815、ディレクトリパス(後)48
16には、更新後のファイルに関する情報が設定され
る。
【0081】図16は、外部ファイル連携機能343が
メモリ32上の外部ファイル連携機能用領域323に保
持する、削除ファイル管理テーブル4900と、ファイ
ル抽象データ型関数new()のパラメータ待避テーブ
ル5000を示している。
【0082】削除ファイル管理テーブル4900は、ト
ランザクション識別子4911、FMS−S識別子49
12、ディレクトリパス4913から構成される。外部
ログファイル4800が保有する情報のうち、トランザ
クションコミット処理で削除のために参照すべき情報の
みを保有する。
【0083】パラメータ待避テーブル5000は、レコ
ード識別子5011、フィールド識別子5012、登録
用ハンドル5013、内容形式5014から構成され
る。それぞれnew()のパラメータがそのまま設定さ
れる。
【0084】図17から図45のフローチャートは、本
発明に係わる処理の流れを示している。
【0085】ファイル登録処理については、図17から
図22に示す。
【0086】ファイル削除処理については、図23から
図26に示す。
【0087】ファイル更新処理については、図27から
図29に示す。
【0088】ファイル取得処理については、図30から
図38に示す。
【0089】トランザクションコミット処理時の流れに
ついては、図39から図42のフローチャートに示すト
ランザクションロールバック終了時の流れは、図43か
ら図45のフローチャートに示す。図44に示すROL
LBACK文処理は、利用者プログラムの不正終了など
によるトランザクションロールバック時の処理と同じも
のである。
【0090】図17から図22のフローチャートに基づ
いて利用者プログラム143がファイル244をDBM
S342に登録する手順を説明する。
【0091】図17から始まる。ステップ6001で、
利用者プログラム143は、FMS−S242に対して
make_entryhandle()を呼び出しファ
イルサーバ20上のファイル244の登録を依頼する。
入力用パラメータとして、あらかじめファイルサーバ2
0に置いてあるファイル244のディレクトリパスを指
定する。出力用パラメータとして、登録用ハンドル42
00の格納用領域を指定する。
【0092】図18へ行く。利用者プログラム143か
らの要求を受けてFMS−S242では、ステップ61
01で登録用ハンドル発行管理テーブル4500に新規
レコード4522を登録し、登録用ハンドル通番管理4
590から通番を取得して通番4511に設定し、入力
パラメータを用いてディレクトリパス4512を設定す
る。ステップ6102で、OS241の提供するOSフ
ァイルサイズ情報取得関数を用いてディレクトリパス4
512で示されるファイルのファイルサイズを取得し、
ファイルサイズ4513に設定する。ステップ6103
で、OS241の提供するOSファイルアクセス制御情
報取得関数を用いてOSファイルアクセス制御情報41
00を参照し、現在の所有者名称4111及びアクセス
権4112を、それぞれ所有者名称4514、アクセス
権4515に保管しておく。続くステップ6104で、
OS241の提供するOSファイルアクセス制御情報変
更関数を用いて、OSファイルアクセス制御情報410
0の利用者名称4111として「FMS」、アクセス権
4112として「参照+更新」を設定し、他の利用者名
称は削除する。
【0093】これにより、登録対象ファイルをDBMS
外部ファイル管理システム以外の一般利用者からは参照
も更新もできないようにする。ステップ6105で、こ
こまでで作成してきた登録用ハンドル発行管理テーブル
4500の新規レコード4522の内容を元に登録用ハ
ンドル4200を作成し、出力用パラメータ領域に設定
する。以上でmake_entryhandle()か
ら処理が戻る。
【0094】図17のステップ6002に戻る。続いて
利用者プログラム143は、図4(1)の形式のINS
ERT文(変数:entryhandleにはステップ
6001で取得した登録用ハンドル4200を指定)を
用いて、DBMS342の外部ファイル管理テーブル4
000に新規レコード4023を登録する。
【0095】図19へ行く。利用者プログラム143か
らの要求を受けてDBMS342では、INSERT文
処理を実行する。まず、ステップ6201で新規レコー
ド4023を作成する。これにより新規レコード402
3のレコード識別子4001とフィールド識別子400
2が確定する。続いてステップ6202で、レコード4
023の定義情報を参照し、ファイル抽象データ型のフ
ィールドを含むレコードであるか判定が行われ、含まれ
ない場合はステップ6206へ進む。含む場合は、続い
てファイル抽象データ型に関する処理が行なわれる。
【0096】ステップ6203で、ファイル抽象データ
型に関する処理として、まずINSERT文中のnew
()を処理するため、外部ファイル連携機能343の登
録用パラメータ設定処理new()を呼び出す。この
時、パラメータとして、登録用ハンドル、ファイル内容
形式、レコード識別子、フィールド識別子が渡される。
【0097】図20へ行く。外部ファイル連携機能34
3におけるnew()では、ステップ6301で、メモ
リ32上のパラメータ待避テーブル5000に新規レコ
ード5021を作成し、new()のパラメータである
レコード識別子、フィールド識別子、登録用ハンドル、
ファイル内容形式を、それぞれレコード識別子501
1、フィールド識別子5012、登録用ハンドル501
3、内容形式5014に設定して登録する。以上でne
w()から処理が戻る。
【0098】図19のステップ6204に戻る。引き続
きファイル抽象データ型に関する処理として、INSE
RT文の処理時に呼び出すように関連付けられた外部フ
ァイル連携機能343のファイル登録処理on_ins
ert()を呼び出す。この時、パラメータとして、レ
コード識別子、フィールド識別子、トランザクション識
別子が渡される。
【0099】図21へ行く。外部ファイル連携機能34
3におけるファイル登録処理では、まず、ステップ64
01で、メモリ32上のパラメータ待避テーブル500
0から、on_insert()のパラメータであるレ
コード識別子、フィールド識別子と一致するレコード識
別子5011、フィールド識別子5012を持つレコー
ドを検索し、見つかったパラメータ待避レコード502
1の登録用ハンドル5013、ファイル内容形式501
4を取得する。続くステップ6402で、取得された登
録用ハンドル4200から通番4211、FMS−S識
別子4212、ディレクトリパス4213、ファイルサ
イズ4214を取り出す。
【0100】そして、ステップ6403で、登録用ハン
ドルの有効性検証とファイル内容形式確認のため、ステ
ップ6402で取得したFMS−S識別子で識別される
FMS−S242のnew_file()を呼び出す。
この時、入力パラメータとして、ステップ6402で取
得した登録用ハンドル4200の通番4211、及びス
テップ6401で取得したファイル内容形式5014を
指定する。
【0101】図22へ行く。外部ファイル連携機能34
3から呼び出されたFMS−S242のnew_fil
e()では、ステップ6501で、メモリ22上の登録
用ハンドル発行管理テーブル4500の中から、入力パ
ラメータに指定された通番と一致する通番4511を持
つ登録用ハンドル発行管理レコードが存在するか確認す
る。ステップ6502で見つからなかった場合、ステッ
プ6507へ行ってnew_file()は異常終了す
る。
【0102】見つかった場合、ステップ6503で見つ
けた登録用ハンドル発行管理テーブル4500のレコー
ドを削除する。引き続きファイル内容形式の確認を行な
う。
【0103】ステップ6504で、ファイル形式変換機
能243のget_filetype()を呼び出し、
登録対象ファイルのファイル内容形式を取得する。ステ
ップ6505で、前記関数で判別された内容形式と、入
力パラメータに指定された内容形式とを比較する。両者
が明らかに不一致だった場合、ステップ6507へ行っ
てnew_file()は異常終了する。一致していた
場合、new_file()は正常終了し、処理が戻
る。
【0104】図21のステップ6404に戻る。new
_file()が異常終了した場合ファイル登録処理も
エラー終了し、ステップ6408へ行って異常終了す
る。new_file()が正常終了した場合は処理を
続ける。
【0105】ステップ6405で、DBMS342のロ
グ記録機能を利用してログ4800に新規ログレコード
4821を作成し、操作4812にはINSERTを設
定する。その際、ファイル登録処理on_insert
()のパラメータであるトランザクション識別子、ステ
ップ6402で登録用ハンドル4200から取り出した
FMS−S識別子4212、ディレクトリパス4213
を、それぞれトランザクション識別子4811、FMS
−S識別子4813、ディレクトリパス4814に設定
し登録する。
【0106】最後に、ステップ6406で、FMS−S
識別子、ディレクトリパス、ファイル内容形式、ファイ
ルサイズを、ファイル登録処理on_insert()
のパラメータであるレコード識別子、フィールド識別子
で指定される外部ファイル4013の中の4014,4
015,4016,4017に設定する。そして、ステ
ップ6407で、ファイル登録処理on_insert
()を正常終了する。
【0107】図19のステップ6205に戻る。DBM
S342は、外部ファイル連携機能343のファイル登
録処理on_insert()が正常終了しなかった場
合、INSERT文の処理もステップ6208へ行って
異常終了する。正常終了した場合は、ステップ6206
で作成された新規レコード4023を書き込み、ステッ
プ6207でINSERT文の処理を正常終了させる。
【0108】ファイル登録処理に関して、上記ではあら
かじめファイル244をファイルサーバ20上に配置す
ることとしていたが、利用者クライアント10上に置か
れたファイルを登録対象に指定する方法も考えられる。
この場合、FMS−S242のmake_entryh
andle()のステップ6101の前ステップとして
利用者クライアント10上のファイルをファイルサーバ
20上に転送するステップを追加し、make_ent
ryhandle()のパラメータとして、ファイルを
配置したDBMS外部ファイル管理システムの識別子を
追加することで実現可能である。
【0109】また、登録のために指定されたファイルを
利用者から隠蔽するなどの目的で特定のディレクトリに
コピーする方法も考えられる。この場合も同様に、ma
ke_entryhandle()のステップ6101
の前ステップとして登録するファイル244を特定のデ
ィレクトリへコピーあるいは移動するステップを組み込
むことで実現できる。
【0110】図23から図26のフローチャートに基づ
いて利用者プログラム143がDBMS342管理下の
ファイル244を削除する手順を説明する。
【0111】図23から始まる。ステップ6601で、
利用者プログラム143は、図4(2)の形式のDEL
ETE文を用いてDBMS342に登録されたレコード
4023とこのレコードで管理されるDB管理下ファイ
ル244の削除を要求する。
【0112】図24へ行く。利用者プログラムから呼び
出されたDBMS342ではDELETE文の処理を実
行する。まず、ステップ6701で、指定されたDEL
ETE文のWHERE句の条件を満たすレコードが確認
され、レコードが無い場合、DELETE文の処理はス
テップ6707へ行って正常終了する。レコードがある
場合、ステップ6702で処理対象となるレコードを決
定する。
【0113】続いてステップ6703で、このレコード
の定義情報に基づいてファイル抽象データ型のフィール
ドを含むレコードであるか判定が行われ、含まない場合
はステップ6706へ進む。含む場合は、ファイル抽象
データ型に関する処理が行われる。
【0114】ステップ6704で、ファイル抽象データ
型に関する処理として、外部ファイル連携機能343の
ファイル削除処理on_delete()を呼び出す。
この時、パラメータとして、レコード識別子、フィール
ド識別子、トランザクション識別子が渡される。
【0115】図25へ行く。外部ファイル連携機能34
3のファイル削除処理では、まずステップ6801で、
on_delete()のパラメータとして渡されたレ
コード識別子、フィールド識別子で指定されるレコード
の、外部ファイル4013から、FMS−S識別子40
14、ディレクトリパス4015を取り出す。続くステ
ップ6802で、削除対象となるファイルへのアクセス
が行われているか確認するために、ステップ6801で
取得したFMS−S識別子で識別されるFMS−S24
2のcheck_file()を呼び出す。この時、入
力パラメータとして、ステップ6801で取得したディ
レクトリパスを指定する。
【0116】図26へ行く。FMS−S242のche
ck_file()では、ステップ6901で、メモリ
22の外部ファイルアクセス管理テーブル4600か
ら、ディレクトリパス4612がcheck_file
()のパラメータと一致するレコードが有るかどうか調
べる。ステップ6902で、一致するレコードが見つか
らなかった場合はステップ6904へ行ってOKを返
す。一致するレコードが見つかった場合は、パラメータ
で指定されたDB管理下ファイル244を参照中のファ
イルアクセスセッションがあり、ファイルアクセスを保
証するためにはファイルを削除でき無いため、ステップ
6903へ進んでNGを返す。以上でcheck_fi
le()から処理が戻る。
【0117】図25のステップ6803に戻る。ファイ
ル削除処理on_delete()では、check_
file()の結果がNGの場合、ステップ6807へ
進んでエラー終了し、OKの場合、処理を続行する。
【0118】続いて、ステップ6804で、DBMS3
42のログ記録機能を利用してログ4800に新規ログ
レコード4821を作成し、操作4812としてDEL
ETEを設定する。その際、ファイル削除処理on_d
elete()のパラメータであるトランザクション識
別子、ステップ6801で取得したFMS−S識別子、
ディレクトリパスを、それぞれトランザクション識別子
4811、FMS−S識別子4813、ディレクトリパ
ス4814に設定し登録する。
【0119】さらにステップ6805で、メモリ32上
の削除ファイル管理テーブル4900に新規レコード4
921を作成する。その際、ファイル削除処理on_d
elete()のパラメータであるトランザクション識
別子、ステップ6801で取得したFMS−S識別子、
ディレクトリパスを、それぞれトランザクション識別子
4911、FMS−S識別子4912、ディレクトリパ
ス4913に設定し記録する。そして、ステップ680
6でファイル削除処理on_delete()は正常終
了する。
【0120】図24のステップ6705に戻る。DBM
S342では、外部ファイル連携機能343のファイル
削除処理on_delete()が正常終了した場合、
ステップ6706に進んでレコード削除を行ない処理が
ステップ6701に戻り、引き続き別のレコードの削除
処理を行なう。ファイル削除処理on_delet
e()がエラーした場合、ステップ6708へ行き、D
ELETE文の処理をエラー終了する。
【0121】図27から図29のフローチャートに基づ
いて利用者プログラム143がレコードの管理するファ
イルを新規ファイルに更新する手順を説明する。
【0122】図27から始まる。ステップ7001で、
利用者プログラム143は、FMS−S242のmak
e_entryhandle()を呼び出しファイルサ
ーバ20上のファイル244の登録を依頼する。入力用
パラメータとして、あらかじめファイルサーバ20に置
いてある新規ファイル244のディレクトリパスを指定
する。
【0123】出力用パラメータとして、登録用ハンドル
4200の格納用領域を指定する。続くステップ700
2で、利用者プログラム143は、図4(3)の形式の
UPDATE文(変数:entryhandleにはス
テップ7001で取得した登録用ハンドル4200を指
定)を用いて、WHERE句の条件で指定されるDBM
S342に登録されたレコード4023が管理するファ
イルをステップ7001で取得した登録用ハンドル42
00で示されるファイルに更新する。
【0124】図28へ行く。利用者プログラム143か
らの要求を受けて、DBMS342はUPDATE文処
理を実行する。まず、ステップ7101で、指定された
UPDATE文のWHERE句の条件を満たすレコード
が確認される。レコードが無い場合、ステップ7108
へ行ってUPDATE文の処理は終了する。レコードが
ある場合、ステップ7102で処理対象となるレコード
を決定する。
【0125】続いて、ステップ7103で、このレコー
ドの定義情報に基づいてファイル抽象データ型のフィー
ルドを含むレコードであるか判定が行われ、含まない場
合はステップ7107へ進む。含む場合は、ファイル抽
象データ型に関する処理が行なわれる。ステップ710
4でファイル抽象データ型に関する処理として、まずU
PDATE文中のnew()を処理するため、外部ファ
イル連携機能343の登録用パラメータ設定処理new
()を呼び出す。
【0126】この時パラメータとして、登録用ハンド
ル、ファイル内容形式、レコード識別子、フィールド識
別子が渡される。続いて、ステップ7105で外部ファ
イル連携機能343のファイル更新処理on_upda
te()を呼び出す。この時、パラメータとして、レコ
ード識別子、フィールド識別子、トランザクション識別
子が渡される。
【0127】図29へ行く。外部ファイル連携機能34
3のファイル更新処理では、まずステップ7101で、
パラメータであるレコード識別子、フィールド識別子で
指定されるレコードの外部ファイル4013から、FM
S−S識別子4014、ディレクトリパス4015を取
り出す。続くステップ7102で、ステップ7101で
取得したFMS−S識別子で識別されるFMS−S24
2のcheck_file()を呼び出す。この時、パ
ラメータとしてステップ7101で取得したディレクト
リパスを渡す。ステップ7103で、check_fi
le()の戻り値がNGの場合、ファイル更新処理on
_update()はエラー終了し、OKの場合は、処
理を続行する。
【0128】続いて、ステップ7104で、メモリ32
上のパラメータ待避テーブル5000から、ファイル更
新処理on_update()のパラメータであるレコ
ード識別子、フィールド識別子と一致するレコード識別
子5011、フィールド識別子5012を持つレコード
を検索し、見つかったレコード5021から登録用ハン
ドル5013とファイル内容形式5014を取り出す。
ステップ7105で、登録用ハンドル4200から、通
番4211、FMS−S識別子4212、ディレクトリ
パス4213、ファイルサイズ4214を取り出す。
【0129】そして、ステップ7106で、登録用ハン
ドルの有効性検証とファイル内容形式確認のため、ステ
ップ7105で取得したFMS−S識別子で識別される
FMS−S242のnew_file()を呼び出す。
この時、入力パラメータとして、ステップ7105で取
得した登録用ハンドル4200の通番4211の値、及
びステップ7104で取得したファイル内容形式501
4を設定する。外部ファイル連携機能343では、ne
w_file()がNGを返した場合、エラー終了し、
OKを返した場合は処理を続行する。
【0130】ステップ7108で、DBMS342のロ
グ記録機能を利用してログ4800に新規ログレコード
4821を作成し、操作4812としてUPDATEを
設定する。その際、ファイル更新処理on_updat
e()のパラメータであるトランザクション識別子、ス
テップ7101でレコード4023から取り出した、F
MS−S識別子、ディレクトリパスおよびステップ71
05で登録用ハンドルから取り出したFMS−S識別
子、ディレクトリパスをそれぞれトランザクション識別
子4811、FMS−S識別子4813、ディレクトリ
パス4814、FMS−S識別子(後)4815、ディ
レクトリパス(後)4816に設定し登録する。
【0131】続いて、ステップ7109で、メモリ32
上の削除ファイル管理テーブル4900に新規レコード
4921を作成する。その際、ファイル更新処理on_
update()のパラメータであるトランザクション
識別子、ステップ7105で取得したFMS−S識別
子、ディレクトリパスを、それぞれトランザクション識
別子4911、FMS−S識別子4912、ディレクト
リパス4913に設定し登録する。
【0132】最後に、ステップ7110で、登録用ハン
ドルから取り出した、FMS−S識別子、ディレクトリ
パス、ファイルサイズ、ファイル内容形式を、それぞれ
ファイル更新処理のパラメータであるレコード識別子、
フィールド識別子で指定される外部ファイル4013の
中の4014、4015、4017、4016に設定す
る。そして、ステップ7111でファイル更新処理を正
常終了する。
【0133】図28のステップ7106に戻る。DBM
S342は、外部ファイル連携機能343のファイル更
新処理on_update()が正常終了しなかった場
合、UPDATE文もステップ7109へ行って異常終
了する。正常終了した場合、ステップ7107で更新さ
れたレコード4023を書き込み、ステップ7101に
進み別のレコードの更新処理を行なう。
【0134】図30から図38のフローチャートに基づ
いて、利用者プログラム143がDBMS342管理下
のファイル244をアクセスする手順を説明する。
【0135】図30から始まる。利用者プログラム14
3は、ステップ7201で、図4(4)の形式のSEL
ECT文を用いてレコードの選択条件とアクセス用ハン
ドル4300の生成をDBMS342に要求し、これを
受けてDBMS342はSELECT文を処理する。
【0136】続いて、利用者プログラム143は、ステ
ップ7202で、SELECT文の結果を取得すべく、
FETCH文の実行をDBMS342に要求する。利用
者プログラム143からの要求を受けてDBMS342
はFETCH文処理を実行する。
【0137】図31に行く。まず、ステップ7301
で、検索結果として条件を満たすレコードがあるか判定
を行ない、無い場合はFETCH文処理を終了して戻
る。ある場合はステップ7302に進み、処理対象とな
るレコードを決定する。ステップ7303で、このレコ
ードの定義情報に基づいてファイル抽象データ型のフィ
ールドを含むレコードであるか判定が行なわれ、含まな
い場合はステップ7305へ進む。含む場合は、ファイ
ル抽象データ型に関する処理が行なわれる。
【0138】ステップ7304で、ファイル抽象データ
型に関する処理として、外部ファイル連携機能343の
アクセス用ハンドル生成処理get_accessha
ndle()を呼び出す。入力用パラメータとして、利
用者名称の他、DBMSによってレコード識別子、フィ
ールド識別子が付け加えられ、渡される。
【0139】図32に行く。DBMS342から呼び出
された外部ファイル連携機能343のget_acce
sshandle()では、まず、ステップ7401
で、パラメータであるレコード識別子、フィールド識別
子で指定されるレコードのフィールドの4014、40
15、4016、4017から、FMS−S識別子、デ
ィレクトリパス、ファイル内容形式、ファイルサイズを
取り出す。続いてステップ7402で、取得したFMS
−S識別子、ディレクトリパス、ファイル内容形式、フ
ァイルサイズと、get_accesshandl
e()のパラメータである利用者名称を、それぞれFM
S−S識別子4311、ディレクトリパス4312、内
容形式4313、ファイルサイズ4314、利用者名称
4315に設定したアクセス用ハンドル4300を作成
し、get_accesshandle()の出力に設
定する。以上で、get_accersshandle
()の処理から戻る。
【0140】図31のステップ7305に戻る。DBM
S342のFETCH文処理は、get_access
handle()の呼び出しの結果得られたアクセス用
ハンドル4300を他の検索結果データと併せて出力結
果に設定する。ステップ7301へ行って、SELEC
T文の条件を満たすレコードがなくなるまで繰り返さ
れ、なくなればFETCH文の処理は完了である。
【0141】図30のステップ7203に戻る。利用者
プログラム143は、ファイルに対するアクセスを開始
するため、begin_access()の呼び出しを
行なう。begin_access()の呼び出し先の
FMS−S242は、アクセス用ハンドル4300のF
MS−S識別子4311によって動的に決定される。入
力用パラメータは、前述のSELECT文で取得したア
クセス用ハンドル4300と、利用者クライアントのF
MS−C142の識別子、利用者プログラムのプロセス
識別子である。出力用パラメータは、作成されるアクセ
ス識別子を受け取るための領域である。
【0142】図33へ行く。利用者プログラム143か
らの要求を受け、FMS−S242ではファイルに対す
るアクセス開始処理を行なう。まず、ステップ7501
で、パラメータとして設定されたアクセス用ハンドルか
ら、アクセス対象ファイルのディレクトリパス4312
を取り出す。続いて、ステップ7502で、メモリ22
上の外部ファイルアクセス管理テーブル4600にアク
セス情報を登録する。新しいレコード4622を登録
し、外部ファイルアクセス通番管理4690から取得し
た通番を、通番4611に設定する。
【0143】また、前記ディレクトリパス4312、入
力パラメータのFMS−C142の識別子、利用者プロ
グラムのプロセス識別子を、それぞれディレクトリパス
4612、FMS−C識別子4614、プロセス識別子
4615に設定する。以上で外部ファイルアクセス管理
テーブルへの登録は完了し、begin_access
()の処理は終わりである。
【0144】図30のステップ7204へ戻る。ステッ
プ7203で取得したアクセス用ハンドル4300に対
応するファイル244の内容を、利用者クライアント1
0の二次記憶装置14上の取得ファイル144にコピー
して取得する。その際、ファイルの内容形式の変換も指
示することにする。FSM−C142のprepare
_localfile()を呼び出す。入力用パラメー
タとして、ステップ7203で取得したアクセス用ハン
ドル4300、取得するファイル144のディレクトリ
パス、取得する際に変換する(変換後の)ファイル内容
形式を指定する。
【0145】図34へ行く。まず、ステップ7601
で、入力用パラメータのアクセス識別子からFMS−S
識別子、通番を取得する。続くステップ7602で、F
MS−S242に対してファイル送信処理send()
の呼び出しを行なう。入力用パラメータは、前記通番と
ファイル内容形式である。出力用パラメータとして、受
信するデータを格納するデータ領域を指定する。
【0146】図35へ行く。まず、ステップ7701
で、メモリ22上の外部ファイルアクセス管理テーブル
4600から、入力用パラメータとして指定された通番
を元にディレクトリパスを取得する。続くステップ77
02で入力用パラメータとして指定されたファイル内容
形式を確認する。設定がされていない場合、変換は必要
なく、ステップ7706へ行ってそのままの形式でファ
イルを読み出す。設定がされていた場合ステップ770
3に進む。ここで入力パラメータとして指定されたファ
イル内容形式と、外部ファイルアクセス管理テーブル4
600の内容形式4613とを比較し、ファイル内容形
式が異なっているか判断を行なう。異なっていなければ
変換は必要なく、ステップ7706へ行ってそのままの
形式でファイルを読み出す。
【0147】ファイル形式の変換が必要な場合、ステッ
プ7703へ進み、ファイル形式変換機能243におけ
るファイル形式変換処理を行なうため、conv_fi
le()の呼び出しを行なう。入力用パラメータは、変
換元のファイルのディレクトリパス、元のファイルの内
容形式、変換後のファイル内容形式を指定する。出力用
パラメータとして、変換後のファイル・データを格納す
るためのデータ領域を指定する。
【0148】図36へ行く。ファイル形式変換機能24
3におけるファイル変換処理conv_file()で
は、まず、ステップ7801で、変換元のファイル内容
形式と、変換先のファイル内容形式の変換アルゴリズム
を持っているかの確認を行なう。ステップ7802で持
っていないと判断された場合、変換は不可能なのでステ
ップ7806へ進みエラー終了となる。変換処理が可能
な場合、ステップ7803に進み、指定されたファイル
読み込んでファイルの形式変換を行なう。ステップ78
04で変換結果を確認し、変換過程で失敗していた場
合、ステップ7806へ行ってエラー終了となる。変換
に成功していたら、ステップ7805へ進み正常終了と
して、conv_file()の処理から戻る。
【0149】図35のステップ7705に戻る。con
f_file()の呼び出しに失敗していた場合、ステ
ップ7708へ進み、send()によるファイル送信
処理はエラー終了する。呼び出しに成功していた場合、
ステップ7707へ進み、正常終了としてsend()
の処理から戻る。
【0150】図34のステップ7603に戻る。ステッ
プ7603でファイル送信処理send()に成功した
か判定する。失敗していた場合、ステップ7608へ進
み。利用者ファイル取得処理はエラー終了する。成功し
ていた場合、そのままステップ7604へ進む。ステッ
プ7604ではメモリ12上の取得ファイル管理テーブ
ル4400に新規レコード4422を追加する。続くス
テップ7605で、取得したデータを取得ファイル14
4に書き出す。
【0151】ステップ7606で、取得ファイル144
に関するOSファイルアクセス制御情報4100を設定
する。最上位の利用者、すなわち所有者は「FMS」で
あり、アクセス権は「参照+更新」である。また、ファ
イルを取得した利用者には参照が出来るように、利用者
名称としてファイル取得者、アクセス権を「参照」とい
うアクセス制御情報も加える。以上で利用者ファイル取
得処理prepare_localfile()の処理
は終わりである。
【0152】この状態で、検索されたファイルが利用者
プログラムによって読み込める状態になり、ステップ7
205で利用者プログラムから必要な処理が行なわれ
る。処理が済んだら、ステップ7206へ進み、利用者
ファイル削除処理としてdelete_localfi
le()の呼び出しを行なう。入力用パラメータとして
は、アクセス識別子を指定する。
【0153】図37へ行く。まず、ステップ7901
で、アクセス識別子からFMS−S識別子、通番を取得
し、メモリ12上の取得ファイル管理テーブル4400
の検索を行なう。ステップ7902で削除対象がないと
判明した場合、その時点でdelete_localf
ile()の処理は終了である。削除対象がある場合、
ステップ7903に進んで取得ファイル144の削除を
行ない、対応する取得ファイル管理テーブル4400の
レコードも削除する。再びステップ7901に戻り、入
力パラメータとして指定されたアクセス識別子に関連づ
けられた取得ファイル144がなくなるまで繰り返しフ
ァイル削除を行なう。
【0154】図30のステップ7207に戻る。ファイ
ルアクセスが終了した時、アクセスセッションの終了を
明示的に行なうため、アクセス終了処理end_acc
ess()の呼び出しを行なう。入力用パラメータとし
て、アクセス識別子を指定する。
【0155】図38へ行く。まずステップ8001でア
クセス識別子から通番を取り出す。次に、ステップ80
02で、メモリ22上の外部ファイルアクセス管理テー
ブル4600を検索し、通番が合致するレコードを削除
する。これによって、FMS−Sによってかけられてい
たファイルのロックが解除される。
【0156】利用者プログラムにおけるファイル取得処
理は以上である。
【0157】ファイルアクセス処理として、利用者クラ
イアント10上に取得ファイル144を作成する替わり
に利用者クライアント10のメモリ12へ読み込む方法
も考えられる。これは、利用者プログラム143からF
MS−S242へread_direct()インタフ
ェースを使って転送要求を行なうことで実現される。
【0158】また、利用者プログラム143をファイル
サーバ20上に置く、あるいは、ファイルサーバ20上
のファイル244をネットワークファイルシステムを利
用して利用者クライアント10から参照できるようにし
ておき、ファイル244に対するOSファイルアクセス
制御情報145を変更することにより、利用者プログラ
ム143がファイル244を直接参照できるようにする
方法も考えられる。これは、prepare_loca
lfile()でステップ7602から7605を行な
わず、ステップ7606で直接DB管理下ファイル24
4のOSファイルアクセス制御情報245を変更すれば
良い。
【0159】ファイル244の利用に関して、DBMS
342を利用する権限を持つ利用者が代行してファイル
244参照権を取得する方法が考えられる。このために
は利用者プログラム143がファイル利用者の管理を行
い、get_accesshandle()のパラメー
タの利用者名称としてファイル利用者の名称を設定すれ
ば良い。
【0160】図39から図42のフローチャートに基づ
いてトランザクションコミット処理について説明する。
【0161】図39から始まる。利用者プログラム14
3は、ステップ8101で、COMMIT文によりDB
MS342にトランザクションをコミット終了させるこ
とを要求する。
【0162】図40へ行く。DBMS342のCOMM
IT文処理では、まずステップ8201で、外部ファイ
ル連携機能343のコミット処理on_commi
t()を呼び出す。この時、パラメータとしてコミット
するトランザクションのトランザクション識別子が渡さ
れる。
【0163】図41へ行く。外部ファイル連携機能34
3のコミット処理on_commit()では、まずス
テップ8301で、メモリ32上の削除ファイル管理テ
ーブル4900から、on_commit()のパラメ
ータであるトランザクション識別子に一致する値をトラ
ンザクション識別子4911の値として持つレコードを
検索する。ステップ8302で、これが見つからなかっ
た場合には、on_commit()は終了する。見つ
かった場合、削除ファイル管理テーブル4900のレコ
ードから、FMS−S識別子4911、ディレクトリパ
ス4913を取得する。続いてステップ8304で、見
つかったファイルを削除するためにFMS−S242の
ファイル削除処理delete_file()を呼び出
す。この時、入力パラメータとして前記ディレクトリパ
スを指定する。
【0164】図42へ行く。FMS−S242のファイ
ル削除処理では、ステップ8401で、入力パラメータ
で指定されたディレクトリパスのファイルを削除する。
delete_file()の処理は以上である。
【0165】図41のステップ8305へ戻る。del
ete_file()でファイルを削除したら、削除フ
ァイル管理テーブル4900のレコードを削除し、再度
ステップ8301へ戻る。処理するレコードがなくなる
と、外部ファイル連携機能におけるコミット処理は終了
する。
【0166】図40のステップ8202に戻る。外部フ
ァイル連携機能343のコミット処理on_commi
t()処理終了後、DBMS342は、データベースに
関するCOMMIT処理を行なう。
【0167】以上が、コミット処理の流れである。
【0168】図43から図45のフローチャートに基づ
いてトランザクションロールバック処理について説明す
る。
【0169】図43から始まる。利用者プログラム14
3は、ステップ8501で、ROLLBACK文により
DBMS342にトランザクションをロールバック終了
させることを要求する。
【0170】図44へ行く。DBMS342のROLL
BACK文処理では、ステップ8601で、ログ345
からロールバック対象のトランザクションに関するログ
レコードを調べ、無い場合は終了する。ログレコードが
ある場合は、ステップ8602で外部ファイル連携機能
343のログレコードであるか判定し、そうでない場合
はステップ8604でデータベースのロールバック処理
を呼び出し、ステップ8601へ戻る。外部ファイル連
携機能343のログレコードである場合は、ステップ8
063で、外部ファイル連携機能343のロールバック
処理on_rollback()を呼び出す。この時、
パラメータとしてロールバックするトランザクションの
トランザクション識別子とログレコードが渡される。
【0171】図45へ行く。外部ファイル連携機能34
3のロールバック処理on_rollback()で
は、ステップ8701で外部ファイルログ4800の操
作4812から操作種別を取り出し、操作種別毎の処理
に分岐する。
【0172】まず、操作がDELETEだった場合、何
もせずに終了する。
【0173】ステップ8702で操作がINSERTと
判断された場合、ステップ8704でログレコード48
21のFMS−S識別子4813、ディレクトリパス4
814からディレクトリパスを取り出し、ステップ87
05で、ステップ8704で取得したディレクトリパス
をパラメータとして、ステップ8704で取得したFM
S−S識別子で識別されるFMS−S242のdele
te_file()を呼び出し、ステップ8708へ進
む。
【0174】ステップ8703で操作がUPDATEと
判断された場合、ステップ8706でログレコード48
21のFMS−S識別子(後)4815、ディレクトリ
パス(後)4816の値を取り出し、ステップ8707
で、ステップ8706で取得したディレクトリパスをパ
ラメータとして、ステップ8706で取得したFMS−
S識別子で識別されるFMS−S2420のdelet
e_file()を呼び出し、ステップ8708へ進
む。
【0175】ステップ8708では、メモリ32上の削
除ファイル管理テーブル4900を検索し、ログレコー
ド4821のトランザクション識別子4811、FMS
−S識別子4813、ディレクトリパス4814が、そ
れぞれトランザクション識別子4911、FMS−S識
別子4912、ディレクトリパス4913と一致するレ
コード4921があるか調べる。ステップ8709で無
いと判断された場合、on_rollback()から
戻る。あると判断された場合は、ステップ8708で、
見つけた削除ファイル管理テーブル4900のレコード
4921を削除し、on_rollback()から戻
る。
【0176】図44のステップ8601に戻り、処理対
象のログレコードがなくなれば、ロールバック処理は終
わる。
【0177】
【発明の効果】以上述べたように、本発明によれば、D
BMSにファイル抽象データ型と外部ファイル連携機能
を導入し、DBMS管理下のファイルを管理するために
DBMS外部ファイル管理システム及びファイル変換機
能を導入し、外部ファイル連携機能とDBMS外部ファ
イル管理システム及びファイル変換機能とが適切に連携
するよう設定することにより、DBMS利用者が行なう
データベースレコードの操作に対応して、当該レコード
と関連付けられたファイルに対する適切な操作が行なわ
れることが保証されるため、前記データベースレコード
とファイルとの整合性が保証され、ファイル内容形式と
ファイルサイズといったファイルの属性情報までDBM
Sで管理することが出来る。また、DBMS管理下のフ
ァイルに対する不当なアクセスを排除することが出来
る。
【0178】利用者プログラムは、データベース検索後
に、検索結果のファイルを所望のファイル内容形式にし
て、または所望の範囲に限定して、利用者クライアント
で取得することが出来る。したがって、ネットワークへ
の負荷、利用者クライアントで必要なメモリ及びディス
ク容量を低減させることができ、利用者クライアントで
個別にファイル変換機能を具備する必要がなくなる。
【0179】また、発明の実施の形態で説明したよう
に、外部ファイル連携機能とDBMS外部ファイル管理
システムとの連携をリモートプロシージャコール機能を
利用して実装することにより、ネットワークで互いに接
続された複数の計算機上にDBMS、DBMS外部ファ
イル管理システム及びファイル変換機能、利用者プログ
ラムを配置することが出来る。
【図面の簡単な説明】
【図1】本発明に係る一実施形態のデータベースシステ
ムの概略構成を示すブロック構成図である。
【図2】本実施形態において、外部ファイルを管理する
テーブルの構成例を示す図である。
【図3】外部ファイル連携機能の処理の一覧表を示す図
である。
【図4】DB操作文を示す図である。
【図5】利用者プログラムから呼び出される、サーバ用
DBMS外部ファイル管理システム(FMS−S)のイ
ンタフェースを示す図である。
【図6】利用者プログラムから呼び出される、クライア
ント用DBMS外部ファイル管理システム(FMS−
C)のインタフェースを示す図である。
【図7】外部ファイル連携機能から呼び出される、サー
バ用DBMS外部ファイル管理システム(FMS−S)
のインタフェースを示す図である。
【図8】クライアント用DBMS外部ファイル管理シス
テム(FMS−C)から呼び出される、サーバ用DBM
S外部ファイル管理システム(FMS−S)のインタフ
ェースを示す図である。
【図9】DBMS外部ファイル管理システム(FMS−
S)から呼び出される、ファイル形式変換機能(FC
L)のインタフェースを示す図である。
【図10】OSファイルアクセス制御情報のデータ構造
を示す図である。
【図11】ファイル登録処理に使用する登録用ハンドル
のデータ構造を示す図である。
【図12】ファイルアクセス処理に使用するアクセス用
ハンドルのデータ構造を示す図である。
【図13】クライアント用DBMS外部ファイル管理シ
ステム(FMS−C)が使用するメモリ上のデータ構造
を示す図である。
【図14】サーバ用DBMS外部ファイル管理システム
(FMS−S)が使用するメモリ上のデータ構造を示す
図である。
【図15】外部ファイル連携機能が取得するログのデー
タ構造を示す図である。
【図16】外部ファイル連携機能が使用するメモリ上の
データ構造を示す図である。
【図17】利用者プログラムにおける外部ファイル登録
処理のフローチャートである。
【図18】サーバ用DBMS外部ファイル管理システム
(FMS−S)における登録ハンドル作成処理のフロー
チャートである。
【図19】DBMSにおけるINSERT文処理のフロ
ーチャートである。
【図20】外部ファイル連携機能における登録パラメー
タ作成処理のフローチャートである。
【図21】外部ファイル連携機能におけるファイル登録
処理のフローチャートである。
【図22】サーバ用DBMS外部ファイル管理システム
(FMS−S)におけるファイル登録処理のフローチャ
ートである。
【図23】利用者プログラムにおける外部ファイル削除
処理のフローチャートである。
【図24】DBMSにおけるDELETE文処理のフロ
ーチャートである。
【図25】外部ファイル連携機能におけるファイル削除
処理のフローチャートである。
【図26】サーバ用DBMS外部ファイル管理システム
(FMS−S)におけるファイルチェック処理のフロー
チャートである。
【図27】利用者プログラムにおける外部ファイル更新
処理のフローチャートである。
【図28】DBMSにおけるUPDATE文処理のフロ
ーチャートである。
【図29】外部ファイル連携機能におけるファイル更新
処理のフローチャートである。
【図30】利用者プログラムにおけるファイル取得処理
のフローチャートである。
【図31】DBMSにおけるFETCH文処理のフロー
チャートである。
【図32】外部ファイル連携機能におけるアクセス用ハ
ンドル生成処理のフローチャートである。
【図33】サーバ用DBMS外部ファイル管理システム
(FMS−S)におけるアクセス開始処理のフローチャ
ートである。
【図34】クライアント用DBMS外部ファイル管理シ
ステム(FMS−C)における利用者ファイル取得処理
のフローチャートである。
【図35】サーバ用DBMS外部ファイル管理システム
(FMS−S)におけるファイル送信処理のフローチャ
ートである。
【図36】ファイル形式変換機能(FCL)におけるフ
ァイル変換処理のフローチャートである。
【図37】クライアント用DBMS外部ファイル管理シ
ステム(FMS−C)における利用者ファイル削除処理
のフローチャートである。
【図38】サーバ用DBMS外部ファイル管理システム
(FMS−S)におけるアクセス終了処理のフローチャ
ートである。
【図39】利用者プログラムにおけるトランザクション
・コミット処理のフローチャートである。
【図40】DBMSにおけるトランザクション・コミッ
ト処理のフローチャートである。
【図41】外部ファイル連携機能におけるトランザクシ
ョン・コミット処理のフローチャートである。
【図42】サーバ用DBMS外部ファイル管理システム
(FMS−S)におけるファイル削除処理のフローチャ
ートである。
【図43】利用者プログラムにおけるトランザクション
・ロールバック処理のフローチャートである。
【図44】DBMSにおけるトランザクション・ロール
バック処理のフローチャートである。
【図45】DBMS外部ファイル管理システム(FMS
−S)におけるトランザクション・ロールバック処理の
フローチャートである。
【符号の説明】
10…利用者クライアント、11…CPU、 12…メ
モリ、13…ネットワークインタフェース、 1
4…二次記憶装置、141…オペレーティングシステム
(OS)、142…クライアント用DBMS外部ファイ
ル管理システム(FMS−C)、143…利用者プログ
ラム、144…取得ファイル、145…OSファイルア
クセス制御情報、 19…バス、20…ファイルサ
ーバ、 21…CPU、 22…メモリ、23…ネッ
トワークインタフェース、 24…二次記憶装
置、241…オペレーティングシステム(OS)、24
2…サーバ用DBMS外部ファイル管理システム(FM
S−S)、243…ファイル形式変換機能(FCL)、
244…DB管理下ファイル、 245…OSファイ
ルアクセス制御情報、29…バス、 30…DBサー
バ、31…CPU、 32…メモリ、33…ネットワー
クインタフェース、 34…二次記憶装
置、341…オペレーティングシステム(OS)、34
2…データベース管理システム(DBMS)、343…
外部ファイル連携機能(FAE)、344…テーブル情
報、 345…ログ、 39…バス。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 松澤 茂 神奈川県川崎市幸区鹿島田890番地 株式 会社日立製作所システム開発本部内 Fターム(参考) 5B075 KK07 KK13 KK43 KK54 NK13 NK54 5B082 AA01 BA13 CA18 DC06 DD08 EA11 GA02 GA08 GA13 GA14 GB02 GB06 HA08 HA09

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】データベース管理システムで管理されるテ
    ーブル情報と外部ファイルを連携させる方法であって、 ファイルを管理するプログラム、及びファイルを管理す
    ることを目的としたデータ構造によって、 前記データ構造を含むテーブルのレコード更新処理時に
    呼び出される、ファイル登録処理、ファイル更新処理あ
    るいはファイル削除処理により、前記プログラムを制御
    し、前記レコードの更新と前記ファイルの更新を同期さ
    せることによりテーブル情報とファイルの整合性を維持
    し、 前記レコードの検索処理時に、前記レコードで管理され
    るファイルに関するアクセス用ハンドル生成処理を呼び
    出し、前記アクセス用ハンドルと前記プログラムを用い
    て、前記レコードにより管理されるファイルへのアクセ
    ス権限を取得することにより、検索されたファイルを利
    用者が所望するファイル形式に変換して取得できること
    を特徴とするデータベース−ファイル連携方法。
  2. 【請求項2】データベース管理システムで管理されるテ
    ーブル情報と外部ファイルを連携させる装置であって、 ファイルを管理するプログラム、及びファイルを管理す
    ることを目的としたデータ構造を具備し、 前記データ構造を含むテーブルのレコード更新処理時に
    呼び出される、ファイル登録処理、ファイル更新処理あ
    るいはファイル削除処理により、前記プログラムを制御
    し、前記レコードの更新と前記ファイルの更新を同期さ
    せることによりテーブル情報とファイルの整合性を維持
    する手段と、 前記レコードの検索処理時に、前記レコードで管理され
    るファイルに関するアクセス用ハンドル生成処理を呼び
    出し、前記アクセス用ハンドルと前記プログラムを用い
    て、前記レコードにより管理されるファイルへのアクセ
    ス権限を取得することにより、検索されたファイルを利
    用者が所望するファイル形式に変換して取得できる手段
    を有することを特徴とするデータベース−ファイル連携
    装置。
JP10357255A 1998-12-16 1998-12-16 データベース−ファイル連携方法及び装置 Pending JP2000181777A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10357255A JP2000181777A (ja) 1998-12-16 1998-12-16 データベース−ファイル連携方法及び装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10357255A JP2000181777A (ja) 1998-12-16 1998-12-16 データベース−ファイル連携方法及び装置

Publications (1)

Publication Number Publication Date
JP2000181777A true JP2000181777A (ja) 2000-06-30

Family

ID=18453193

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10357255A Pending JP2000181777A (ja) 1998-12-16 1998-12-16 データベース−ファイル連携方法及び装置

Country Status (1)

Country Link
JP (1) JP2000181777A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005309852A (ja) * 2004-04-22 2005-11-04 Hitachi Ltd ストレージシステム及びファイル管理装置
US7260578B2 (en) 2000-03-30 2007-08-21 Hitachi, Ltd. Database-file link system and method therefor
WO2014189056A1 (ja) * 2013-05-21 2014-11-27 株式会社 東芝 データ処理装置および方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7260578B2 (en) 2000-03-30 2007-08-21 Hitachi, Ltd. Database-file link system and method therefor
JP2005309852A (ja) * 2004-04-22 2005-11-04 Hitachi Ltd ストレージシステム及びファイル管理装置
JP4491269B2 (ja) * 2004-04-22 2010-06-30 株式会社日立製作所 ストレージシステム及びファイル管理装置
WO2014189056A1 (ja) * 2013-05-21 2014-11-27 株式会社 東芝 データ処理装置および方法
JP2014229016A (ja) * 2013-05-21 2014-12-08 株式会社東芝 データ処理装置、方法およびプログラム

Similar Documents

Publication Publication Date Title
JP3992263B2 (ja) データベース−ファイル連携方法
JP4842279B2 (ja) データベースサーバによるファイル操作を実行するためのインフラストラクチャ
US6029160A (en) Method and means for linking a database system with a system for filing data
US5440735A (en) Simplified relational data base snapshot copying
US6081811A (en) Method of database conversion including data verification
US8572035B2 (en) Universal data management interface
JP4759570B2 (ja) データベース管理システムにおけるファイル操作のためのロックを提供するための手法
KR100398753B1 (ko) 효과적인 파일 갱신 처리 및 복구 처리를 이용하는트랜잭션 처리 시스템
US20050131902A1 (en) File system and file transfer method between file sharing devices
US20060212496A1 (en) System and method for quiescing select data modification operations against an object of a database during one or more structural operations
US7610304B2 (en) Techniques for performing file operations involving a link at a database management system
US20060136516A1 (en) Techniques for maintaining consistency for different requestors of files in a database management system
JP2000181777A (ja) データベース−ファイル連携方法及び装置
US7716260B2 (en) Techniques for transaction semantics for a database server performing file operations
JP2000148552A (ja) データベース−ファイル連携方法及びその実施システム並びにその処理プログラムを記録した媒体
JPH117445A (ja) 統合化文書管理装置
JP3330006B2 (ja) 情報記憶システムを備えるネットワークシステム、該システムの入力システムならびに
JP2002032248A (ja) データベース問合せ処理におけるトランザクションの版の提供システム及び該システムにより提供された版を用いたデータベース問合せ処理システム
JP2003036190A (ja) アンドゥ処理システム及びアンドゥ処理方法
JP2885144B2 (ja) 管理情報ベースシステム
JP2980610B2 (ja) トランザクション管理装置
JPH09167167A (ja) オブジェクト指向データベースにおけるオブジェクト検索方法
JP2586330B2 (ja) 論理削除データ管理方式
CN114996285A (zh) 一种记录数据变更的方法及装置、存储介质及电子设备
JP2002073389A (ja) ネットワーク型データベースのキャッシング方法