JP3992263B2 - データベース−ファイル連携方法 - Google Patents
データベース−ファイル連携方法 Download PDFInfo
- Publication number
- JP3992263B2 JP3992263B2 JP2000095934A JP2000095934A JP3992263B2 JP 3992263 B2 JP3992263 B2 JP 3992263B2 JP 2000095934 A JP2000095934 A JP 2000095934A JP 2000095934 A JP2000095934 A JP 2000095934A JP 3992263 B2 JP3992263 B2 JP 3992263B2
- Authority
- JP
- Japan
- Prior art keywords
- file
- update
- content
- external
- function
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/953—Organization of data
- Y10S707/959—Network
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【発明の属する技術分野】
本発明は、オペレーティングシステムのファイルシステム(以下、OSファイルシステム)によって定義される「ファイル」をデータベース管理システム(以下、DBMS)制御下で管理するシステムに関し、特にこのデータベース管理システムを用いて管理されたファイルの内容を更新する際に効果的なデータベース−ファイル連携方法及び装置に関する。
【0002】
【従来の技術】
データベースのレコードに関連づけてOSファイルシステムの定義する「ファイル」または「ディレクトリ」(以降、単一ファイル、複数ファイル、ディレクトリ構造を伴った複数ファイルの総称として「コンテンツ」と表記する)を管理する方法として、その所在位置情報(いわゆるディレクトリパス)をレコード内の一つのフィールドに書き込んでおく方法がある。この方法では、DBMS側から見たとき、単に文字列が格納されているに過ぎず、その文字列がファイルまたはディレクトリを指しているという認識はなく、ファイルサイズを始めとする属性、ファイルとディレクトリの区分も関知していない。つまり、当該ディレクトリパスの指し示すコンテンツは、DBMSとは独立に、利用者が管理する必要がある。こうした方法でデータベースを作成した利用者プログラムは、任意のフィールドを検索キーとしてデータベースを検索した後、当該レコード中のディレクトリパスが書き込まれたフィールドの文字列を取得し、その文字列をディレクトリパスと見なしてコンテンツを参照していた。
【0003】
【発明が解決しようとする課題】
ディレクトリパスをデータベースのレコードに直接格納する従来の技術によれば、外部のコンテンツの管理と、そのディレクトリパスを格納したフィールドの管理が別々に行なわれるため、データベースのフィールド値の更新・削除とは非同期に外部のコンテンツに対しての更新・削除が実行される可能性があり、データベースと外部のコンテンツとの間に不整合が発生しやすい。一度整合性が取れなくなると、整合性の取れた状態に戻すことは困難である。
【0004】
また、上述した従来の技術によれば、同一のコンテンツに対してデータベースの複数のフィールドと対応関係を持たせようとすると、対応を保持しているフィールドの数を別途管理する必要があった。この管理をしないと、コンテンツの更新と削除を行なうときに、他のリンク元となっているデータベースのフィールドから見たときのリンク先の内容まで更新されることになり、不整合が生じるからである。このようにデータベースを用いてコンテンツの版管理を行なうことは困難であった。
【0005】
このように従来の方法は、運用上データベースと外部のファイルとの連携整合性を保ち続けるのが困難であり、外部のコンテンツの内容の更新や削除を行なう際の確認手順が煩雑になるという問題があった。
【0006】
本発明の目的は、データベースのトランザクションの延長で外部のコンテンツとの連携処理を行なうことで、データベースからの参照整合性及び更新整合性を保つ方法及び装置を提供することにある。
【0007】
【課題を解決するための手段】
DBMSを用いて外部のコンテンツを管理するために、ファイル抽象データ型をDBMSに導入する。ファイル抽象データ型は、管理するコンテンツに関する所在情報(ファイルサーバ名、ディレクトリパスなど)を格納するデータ構造と当該情報を処理するための関数を提供する。DBMS利用者は、このファイル抽象データ型のフィールドを持つテーブルを定義することにより、データベースの外部のコンテンツをテーブルのリンク先として登録することが出来るようになる。
【0008】
また、DBMS管理下のコンテンツを管理するために、一般利用者よりも上位のファイルアクセス権限を持つファイル管理システム(以下、DBMS外部ファイル管理システムと呼ぶ)を導入する。DBMS管理下のコンテンツは、このDBMS外部ファイル管理システムを所有者とし、OSファイルシステムレベルにおいて、一般利用者から参照・更新ができないようなアクセス制御情報を設定しておく。抽象データ型フィールドのリンク先としてしてコンテンツを管理するため、DBMS外部ファイル管理システムはリンク先のコンテンツの内部のファイル構成を管理する機構を持つ。また、同一のコンテンツを複数の抽象データ型フィールドのリンク先として管理するため、リンク数を管理する機構を持つ。さらに、DBMSトランザクションの延長でリンク先コンテンツの内容更新を行なうため、更新差分情報を保持する機構を持つ。
【0009】
テーブルに格納されたファイル管理情報とDBMS外部ファイル管理システムとを連携させるために、DBMS内部にファイル抽象データ型の処理機能としての外部ファイル連携機能を定義し、データベース操作(例えば、INSERT処理、SELECT処理など)の実行契機に、上記DBMS外部ファイル管理システムの該当する処理を呼び出すように設定する。
【0010】
また、DBMSの利用者が検索結果のコンテンツにアクセスする手段を提供するために、外部ファイル連携機能には、データベースレコードの検索時にアクセスハンドルを作成する機能を持たせる。この機能は、上記ファイル抽象データ型の提供する関数から呼び出される。DBMS管理下のコンテンツを参照するには、データベースレコードを検索し、ファイル抽象データ型の関数により前述のアクセスハンドルを取得し、アクセスハンドルを使用してDBMS外部ファイル管理システムのファイル参照機能を呼び出すことにより、コンテンツの参照が可能となる。
【0011】
加えて、DBMSの利用者がデータベースのフィールドのリンク先のコンテンツの内容を更新する手段を提供するために、外部ファイル連携機能には、データベースレコードの検索によって取得されたアクセスハンドルによって、DBMS管理下のコンテンツに対する更新情報を登録する機能を持たせる。DBMS管理下のコンテンツを更新するには、更新情報登録の際に取得された編集更新ハンドルを使用して、データベースのトランザクションでフィールド値の更新を行なうことで、DBMS外部ファイル管理システムのファイル更新機能が呼び出されて、リンク先のコンテンツの内容更新が行なわれる。
【0012】
このように、データベース操作処理とファイル操作処理とを連携させることにより、データベースレコードとそのレコードに関連付けられて管理されるコンテンツとの整合性維持が、データベース管理システムに対する操作の延長で行なわれることから、データベースからの参照整合性及び更新整合性の保証が実現される。
【0013】
【発明の実施の形態】
以下、図面を参照して、本発明の実施の形態を詳細に説明する。
【0014】
図1は、本発明を、データベースサーバ(以下、DBサーバと呼ぶ)、ファイルサーバ、及び利用者クライアントで構成される分散データ管理システムに適用した場合の各計算機と、その上で稼動するソフトウェアの構成を示すシステムブロック図である。
【0015】
利用者クライアント10と、ファイルサーバ20と、DBサーバ30とは、互いに通信ネットワーク90で接続されている。
【0016】
利用者クライアント10は、CPU11、メモリ12、ネットワークインタフェース13、及び二次記憶装置14を備え、これらはバス19によって接続されている。利用者クライアント10は、ネットワークインタフェース13を通して通信ネットワーク90に接続している。二次記憶装置14上には、オペレーティングシステム(以下、OSと呼ぶ)141、利用者プログラム142、DBMS外部ファイル連携ライブラリ(以下、FMLと呼ぶ)143、及び利用者プログラムからデータベースに登録する登録対象コンテンツ144が格納される。本実施形態では、利用者プログラム142はFML143に対してライブラリ呼び出しをする実装例で説明しているが、その他の実装方式としても本発明の実施には差し支えない。
【0017】
ファイルサーバ20は、CPU21、メモリ22、ネットワークインタフェース23、及び二次記憶装置24を備え、これらはバス29によって接続されている。ファイルサーバ20は、ネットワークインタフェース23を通して通信ネットワーク90に接続している。二次記憶装置24上には、OS241、DBMS外部ファイル管理システム(以下、FMSと呼ぶ)242、データベースに登録されたDB管理下コンテンツ243、DB管理下コンテンツの属性情報などを保持するコンテンツ情報ファイル244、及びDB管理下コンテンツ243とコンテンツ情報ファイル244に関するOSファイルアクセス制御情報245が格納される。DB管理下コンテンツ243は複数あり、1つ1つのファイルを別個にDB管理下に置くことも、複数ファイルをまとめてDB管理下に置くことも出来る。
【0018】
DBサーバ30は、CPU31、メモリ32、ネットワークインタフェース33、及び二次記憶装置34を備え、これらはバス39によって接続されている。DBサーバ30は、ネットワークインタフェース33を通して通信ネットワーク90に接続している。二次記憶装置34上には、OS341、DBMS342、DBMSの外部ファイル連携機能拡張(以下、FAEと呼ぶ)343、DBMS342が管理しているテーブル情報344、及びDBMS342のテーブル更新に関する操作のログ345が格納される。テーブル情報344の詳細は、後述する。
【0019】
DBMS342は、SQL(Structured Query Language)をインタフェースとして採用しており、通常のSQLデータ型の他にファイル抽象データ型を扱えるように拡張されている。ファイル抽象データ型は、ファイルを管理するための情報を格納するデータ構造とこのデータ構造専用の関数群を提供する。DBMS342において、ファイル抽象データ型の処理機能を実装するモジュールが、前述のFAE343である。本実施形態では、DBMS342はFAE343に対してライブラリ呼び出しをする実装例で説明しているが、その他の実装方式としても本発明の実施には差し支えない。
【0020】
本発明で実現されるDBMS外部ファイル管理システムは、ファイルサーバ20上のFMS242、利用者クライアント10上のFML143、及びDBサーバ30上のDBMS342中のFAE343から構成される。
【0021】
ファイルサーバ20上のFMS242は、一般利用者よりも上位のファイルアクセス権限を持つ利用者(FMS)の権限で稼動する。DBMS管理下コンテンツ243は、FMS242により、データベース登録時にOSファイルアクセス制御情報245を更新され、FMS242以外からは参照も更新も出来ないように設定される。これにより、データベースに登録されたファイルに対する不当な参照及び更新を防止する。また、データベース登録時には、DB管理下コンテンツ243に関する属性情報をコンテンツ情報ファイル244で保持する。
【0022】
ファイルサーバ20上のFMS242は、外部ファイル連携機能拡張FAE343及びDBMS外部ファイル連携ライブラリFML143とのインタフェースを持つ。これらのインタフェースは、一般にリモートプロシージャコール(以下、RPCと呼ぶ)と呼ばれる手段を用いて実装される。RPCにより、プログラムは、呼び出し先プログラムの識別子と関数名称を指定することで、他プログラム内の関数を呼び出すことが出来る。
【0023】
図2から図4を用いて、ファイル抽象データ型と外部ファイル連携機能拡張FAE343について説明する。
【0024】
図2は、テーブル情報344内に格納される、外部ファイル管理テーブル4000の構造を示している。このフィールド構成は一つの例であり、これと異なるフィールド構造のテーブルであっても、本発明の実施には差し支えない。テーブル4000には、整数型の番号4011、文字列型の表題4012、及びファイル抽象データ型の外部ファイル4013の3つのフィールドがある。
【0025】
DBMS342は、テーブル4000のレコード及びフィールドに、それぞれレコード識別子4001及びフィールド識別子4002を付与する。レコード識別子4001は、テーブル4000に含まれるレコードを一意に識別するためのものである。フィールド識別子4002は、レコードを構成するフィールドを一意に識別するためのものである。
【0026】
ファイル抽象データ型の外部ファイル4013のデータ構造として、FMS識別子4014、ディレクトリパス4015、及びコンテンツがファイルであるかディレクトリであるかのコンテンツ形式4016が格納される。ファイル抽象データ型のデータ構造にさらに他の付加情報を加えても、本発明の実施には差し支えない。
【0027】
図3は、DBMS342の処理とそれに関連付けられる外部ファイル連携機能拡張FAE343の処理との対応を示している。パラメータは、DBMS342がFAE343の関数を呼び出すときに渡す情報であり、DBMS契機は、DBMS342がデータベース処理のどの時点でFAE343の関数を呼び出すのかを示している。以下、それぞれの連携機能について説明する。
【0028】
#1のコンテンツリンク登録連携機能は、DBMS342がSQLのINSERT文を処理してDB管理下コンテンツ243へのリンクを設定する際、またはSQLのUPDATE文を処理してDB管理下コンテンツ243へのリンクを設定する際に呼び出される。呼び出しパラメータとして、現行トランザクションのトランザクション識別子及びファイル抽象データ型値を与える。呼び出しの結果、データベース管理下に置かれるコンテンツ243に関する情報が、INSERT文で作成されるレコードの外部ファイル4013に格納され、更新情報がログ345に格納される。
【0029】
#2のコンテンツリンク削除連携機能は、DBMS342がSQLのDELETE文を処理してDB管理下コンテンツ243へのリンクを削除する際、またはSQLのUPDATE文を処理してDB管理下コンテンツ243へのリンクを削除する際に呼び出される。呼び出しパラメータとして、現行トランザクションのトランザクション識別子及びファイル抽象データ型値を与える。呼び出しの結果、削除されるレコードの外部ファイル4013に係わる更新情報がログ345に格納される。
【0030】
#3のコンテンツ編集更新連携機能は、DBMS342がSQLのUPDATE文を処理してDB管理下コンテンツ243の内容を編集更新しようとする際に呼び出される。呼び出しパラメータとして、現行トランザクションのトランザクション識別子及び更新前後のファイル抽象データ型値を与える。呼び出しの結果、編集更新されるレコードの外部ファイル4013に係わる更新情報がログ345に格納される。
【0031】
#4のコミット処理の連携機能は、DBMS342が現行のトランザクションをコミット終了する際に呼び出される。呼び出しパラメータとして、コミット終了するトランザクションのトランザクション識別子を与える。呼び出しの結果、ログ345に格納されたコンテンツリンク登録処理、コンテンツリンク削除処理、及びコンテンツ編集更新処理の情報の中で指定されたトランザクション識別子を持つものが、それぞれ関係するDB管理下コンテンツ243に対して確定され、ログ345から削除される。
【0032】
#5のロールバック処理の連携機能は、DBMS342が現行のトランザクションをロールバック終了する際に呼び出される。呼び出しパラメータとして、ロールバック終了するトランザクションのトランザクション識別子を与える。呼び出しの結果、ログ345に格納されたコンテンツリンク登録処理、コンテンツリンク削除処理、及びコンテンツ編集更新処理の情報の中で指定されたトランザクション識別子を持つものが、すべてログ345から削除される。
【0033】
#6の登録パラメータ設定連携機能、すなわちファイル抽象データ型関数new()は、コンテンツリンク登録に関するパラメータを指定するためにINSERT文またはUPDATE文に埋め込まれる。利用者プログラム142では、パラメータとして登録ハンドルを指定する。この処理の中で、ファイル抽象データ型としての値が構築される。この値は、登録ハンドルと同じ値であっても、new()の内部で何らかの変換処理が施された値であっても、本発明の実施には差し支えない。
【0034】
#7の編集更新パラメータ設定連携機能、すなわちファイル抽象データ型関数update()は、ファイルの編集更新に関するパラメータを設定するためにUPDATE文に埋め込まれる。利用者プログラム142では、パラメータとして編集更新ハンドルを指定する。この処理の中で、ファイル抽象データ型としての値が構築される。
【0035】
#8のアクセスハンドル生成連携機能、すなわちファイル抽象データ型関数get_accesshandle()は、データベースに登録されたコンテンツにアクセスするためのアクセスハンドルを取得するために、SQLのSELECT文中に埋め込まれる。利用者プログラム142は、この関数の戻り値であるアクセスハンドルをSQLのFETCH文により取得する。
【0036】
図4は、外部ファイル管理テーブル4000に対するDB操作文の例である。以下、各々について説明する。
【0037】
(1)は、外部コンテンツへのリンク登録を伴うレコード登録のためのINSERT文である。VALUES句の3つ目には、前述のファイル抽象データ型の関数new()を指定する。この関数new()のパラメータである変数:entryhandleには、登録されるコンテンツの登録ハンドルが格納されている。この例では、番号4011に104、表題4012に”dandelion”、外部ファイル4013に:entryhandleで指定した外部コンテンツに関する情報を持つレコードがデータベースに登録され、指定されたコンテンツがDBMSの管理下に入り、リンクが設定される。ただし、リンク登録が確定するのはDBMSトランザクションのコミット時である。
【0038】
(2)は、レコード削除のためのDELETE文である。この例では、番号4011が100であるレコードが削除され、このレコードの外部ファイル4013で指定される外部コンテンツへのリンクが削除される。ただし、リンク削除が確定するのはDBMSトランザクションのコミット時である。
【0039】
(3)は、外部ファイル4013を更新するためのUPDATE文である。この例では、番号4011が103であるレコードの外部ファイル4013に、前述のファイル抽象データ型の関数new()を、変数:entryhandleには新規に登録されるコンテンツの登録ハンドルを格納して指定することにより、外部ファイル4013で既に管理されているコンテンツへのリンク情報を、別のコンテンツへのリンク情報に差し替える。具体的には、元のリンク先コンテンツへのリンクを削除し、新しいコンテンツに対するリンクを設定することになる。ただし、リンク登録とリンク削除とが実際に確定するのは、DBMSトランザクションのコミット時である。
【0040】
(4)は、外部ファイル4013で指定される外部のコンテンツの内容を編集更新するためのUPDATE文である。この例では、番号4011が103であるレコードの外部ファイル4013で指定される外部のコンテンツが、ファイル抽象データ型の関数update()のパラメータ:updatehandleで指定される編集更新ハンドルで示される編集更新差分情報に基づいて、その内容を更新される。ただし、外部のコンテンツに対して内容の更新が反映されるのは、DBMSトランザクションのコミット時である。
【0041】
(5)は、外部コンテンツをアクセスするためのアクセスハンドルを取得するためのSELECT文である。この例では、表題4012が‘sun’で始まるレコードが検索対象となる。外部ファイル管理テーブル4000の内容が図2に示した状態である場合、レコード4021及び4022が該当する。検索結果として取得されるのは、該レコードの表題4012と、前述の抽象データ型の関数get_accesshandle()の戻り値として返されるアクセスハンドルである。
【0042】
次に、DBMS外部ファイル管理システム(FMS)242のインタフェースの一例を示す。DB管理下コンテンツ243に対する操作はこれらのインタフェースを通じて行なわれる。
【0043】
まず、外部ファイル連携機能拡張(FAE)343から呼び出されるインタフェースの例としては、次の7つがある。
【0044】
(1)コンテンツ登録準備機能は、利用者クライアント10上の登録対象コンテンツ144をファイルサーバ20に転送してDB管理下コンテンツ243を作成するためのものである。入力として、FML143が読み出す登録対象コンテンツ144のファイルデータを指定する。該ファイルデータには、ファイル名とファイルの内容が含まれるが、該ファイルデータの形式は規定しない。また、ここで作成されるDB管理下コンテンツ243のディレクトリパスについても特に規定しない。出力として、FMS242で作成された登録ハンドルが返される。なお、本実施例ではFML143から呼び出しているが、DBMSトランザクションの延長でFAE343から呼び出す実装としても本発明の実施には差し支えない。
【0045】
(2)コンテンツ登録中止機能は、登録ハンドルの無効化を行なうためのものである。入力として、前記コンテンツ登録準備機能で取得した登録ハンドルを指定する。該登録ハンドルに関連するDB管理下コンテンツ243がDBMS342に未登録であり、なおかつトランザクションも開始されていなかった場合、登録ハンドルの解放とともにDB管理下コンテンツ243の削除を行なう。
【0046】
(3)リンク登録機能は、登録ハンドル4300(後述)で指定されるコンテンツへのリンクを仮登録状態とするためのものである。入力として、DBMS342のトランザクション識別子、及びリンク登録対象コンテンツのパス名(ファイル名もしくはディレクトリ名)を指定する。指定されたDB管理下コンテンツ243へのリンクが仮登録状態となり、FMS242内部でコミットまたはロールバック待ち状態となる。
【0047】
(4)リンク削除機能は、コンテンツへのリンクを仮削除状態とするためのものである。入力として、DBMS342のトランザクション識別子、及びリンク削除対象コンテンツのパス名(ファイル名もしくはディレクトリ名)を指定する。指定されたDB管理下コンテンツ243へのリンクが仮削除状態となり、FMS242内部でコミットまたはロールバック待ち状態となる。
【0048】
(5)リンク先編集更新機能は、コンテンツの内容を更新するためのものである。入力として、DBMS342のトランザクション識別子及び編集更新ハンドルを指定する。指定されたDB管理下コンテンツ243への内容更新が仮登録状態となり、FMS242内部でコミットまたはロールバック待ち状態となる。
【0049】
(6)トランザクション確定機能は、外部コンテンツに対するリンク登録、リンク削除、及び内容更新を確定するためのものである。入力として、DBMS342のトランザクション識別子を指定する。
【0050】
(7)トランザクション無効化機能は、外部コンテンツに対するリンク登録、リンク削除、及び内容更新を無効化するためのものである。入力として、DBMS342のトランザクション識別子を指定する。
【0051】
次に、DBMS外部ファイル連携ライブラリ(FML)143から呼び出される、外部コンテンツへのアクセスを行なうためのFMS242のインタフェースとしては、次の4つがある。
【0052】
(1)アクセス開始機能は、利用者プログラム142とFMS242との間でアクセスセッションを開始するためのものである。入力として、アクセスハンドル中に格納されているアクセス対象のコンテンツのパス名、及び利用者プログラム142を一意に識別するためのクライアント識別子(利用者クライアント10のネットワークアドレスと、利用者プログラム142がネットワークインタフェース13との間で確立したセッションの識別子を合わせたもの、など)を指定する。出力として、確立されたセッションを一意に表わすアクセス識別子が返される。この処理の延長で、FMS242ではアクセス情報をアクセス管理テーブル4600(後述)に登録する。
【0053】
(2)コンテンツ属性情報取得機能は、外部コンテンツに関するファイル属性情報を取得するためのものである。入力として、前記アクセス開始機能で取得されたアクセス識別子を指定する。出力として、外部コンテンツのファイル構成情報が返される。ファイル構成情報の一例として、ファイル数、ファイル名、及びファイルサイズなどのリストがある。属性情報の種類及び取得形式は、本発明の実施においては特に規定されるものではない。
【0054】
(3)データ読み出し機能は、DB管理下コンテンツ243のデータを取得するためのものである。入力として、前記アクセス開始機能で取得されたアクセス識別子、ファイル名、ファイルの読み出し開始地点のオフセット、及び読み出す長さを指定する。出力として、読み出されたファイルデータが返される。
【0055】
(4)アクセス終了機能は、前記アクセス開始機能で開始したアクセスセッションを終了するためのものである。入力として、前記アクセス開始機能で取得されたアクセス識別子を指定する。この処理の延長で、FMS242ではアクセス情報をアクセス管理テーブル4600(後述)から削除する。
【0056】
最後に、DBMS外部ファイル連携ライブラリ(FML)143から呼び出される、外部コンテンツへの編集更新を行なうためのFMS242の各種インタフェースとしては、次の8つがある。なお、これらのインタフェースは、編集更新に関わる更新差分情報をFMS242内で保持するためのものであり、DB管理下の外部コンテンツに対する更新が反映されるのは、DBMSのトランザクションがコミットした時点である。
【0057】
(1)編集更新開始機能は、利用者プログラム142とFMS242との間で更新セッションを開始するためのものである。入力として、アクセスハンドル中に格納されている編集更新対象のコンテンツのパス名、及び利用者プログラム142を一意に識別するためのクライアント識別子(利用者クライアント10のネットワークアドレスと、利用者プログラム142がネットワークインタフェース13との間で確立したセッションの識別子を合わせたもの、など)を指定する。出力として、確立されたセッションを一意に表わす更新識別子が返される。この処理の延長で、FMS242ではアクセス情報をアクセス管理テーブル4600(後述)に登録する。
【0058】
(2)コンテンツ属性取得機能は、外部コンテンツに関するファイル属性情報を取得するためのインタフェースである。入力として、前記編集更新開始機能で取得された更新識別子を指定する。出力として、外部コンテンツのファイル構成情報が返される。ファイル構成情報の一例として、ファイル数、ファイル名、及びファイルサイズなどのリストがある。属性情報の種類及び取得形式は、本発明の実施においては特に規定されるものではない。
【0059】
(3)ファイル作成機能は、DB管理下に置かれた外部コンテンツに対してファイルやディレクトリの追加を行なうためのものである。入力として、前記編集更新開始機能で取得された更新識別子、及び作成するファイルまたはディレクトリの名称を指定する。この処理の延長で、FMS242ではファイル作成の更新情報を編集更新管理テーブル4700(後述)に登録する。
【0060】
(4)ファイル削除機能は、DB管理下に置かれた外部コンテンツに含まれるファイルやディレクトリの削除を行なうためのものである。入力として、前記編集更新開始機能で取得された更新識別子、及び削除するファイルまたはディレクトリの名称を指定する。この処理の延長で、FMS242ではファイル削除の更新情報を編集更新管理テーブル4700(後述)に登録する。
【0061】
(5)データ書き出し機能は、DB管理下コンテンツ243に対してデータの追記や更新を行なうためのものである。入力として、前記編集更新開始機能で取得された更新識別子、ファイル名、ファイルの書き込み開始地点のオフセット、書き込む長さ、及び書き込むファイルデータを格納した領域を指定する。この処理の延長で、FMS242ではファイル内容変更の更新情報を編集更新管理テーブル4700(後述)に登録する。
【0062】
(6)ファイル移動機能は、DB管理下コンテンツ243に対してファイルの移動、すなわちファイル名称の変更を行なうためのものである。ファイルだけでなく、ディレクトリの移動に対しても適用される。入力として、前記編集更新開始機能で取得された更新識別子、移動の元となるファイル名またはディレクトリ名、及び移動後のファイル名またはディレクトリ名を指定する。この処理の延長で、FMS242ではファイル移動の更新情報を編集更新管理テーブル4700(後述)に登録する。
【0063】
(7)編集更新ハンドル取得機能は、前記編集更新開始機能で開始した更新セッションに係わる編集更新ハンドルを取得するためのものである。入力として、前記編集更新開始機能で取得された更新識別子を指定する。出力として、FMS242で作成された編集更新ハンドルが返される。
【0064】
(8)編集更新終了機能は、前記編集更新開始機能で開始した更新セッションを終了するためのものである。入力として、前記編集更新開始機能で取得された更新識別子を指定する。この処理の延長で、保持していたセッション情報及びロックが解放される。
【0065】
図5から図9は、本実施の形態に係わる種々のデータ構造を示している。
【0066】
図5は、コンテンツ情報ファイル244のデータ構造である。コンテンツ情報ファイル244は、DB管理下コンテンツ243一つに対して一つ作成される。ファイルが作成される場所は特に規定しないが、DB管理下コンテンツ243とコンテンツ情報ファイル244との対応は容易に取れるものとする。リファレンス数4121は、外部ファイル管理テーブル4000(図2)中のいくつの外部ファイルフィールドからリンクが設定されているかを保持する。ディレクトリ名エントリ4122は、コンテンツ内に含まれるディレクトリの情報を保持する。該エントリ4122中には、ディレクトリ名とそのディレクトリの下に含まれるファイル数などの情報が格納される。ファイル名エントリ4123は、コンテンツ内に含まれるファイルの情報を保持する。該エントリ4123中には、ファイル名とファイルサイズなどの情報が格納される。なお、格納効率向上のため、複数のDB管理下コンテンツ243に対して一つのコンテンツ情報ファイル244を対応させる構成としても、本発明の実施には差し支えない。
【0067】
図6に、登録ハンドル4300、アクセスハンドル4400、及び編集更新ハンドル4500のデータ構造を示す。
【0068】
登録ハンドル4300は、DBMS外部ファイル管理システム(FMS)242のコンテンツ登録準備機能で作成される。登録ハンドルは、FMS識別子4311、及びディレクトリパス4312の2つのフィールドから構成される。FMS識別子4311には、当該登録ハンドルを作成したFMS242の識別子が設定される。ディレクトリパス4312には、DB管理下コンテンツ243に係わるディレクトリパスが設定される。コンテンツが一つのファイルとして指定された場合は該ファイルのフルパス、コンテンツがディレクトリとして指定された場合は該ディレクトリのフルパスが、それぞれ設定される。
【0069】
アクセスハンドル4400は、外部ファイル連携機能拡張(FAE)343において作成され、ファイル抽象データ型関数get_accesshandle()の戻り値として利用者プログラム142に与えられる。アクセスハンドルは、FMS識別子4411、及びディレクトリパス4412の2つのフィールドから構成される。FMS識別子4411には、アクセス対象のコンテンツを管理するFMS242の識別子が設定される。ディレクトリパス4412には、アクセス対象となるコンテンツのディレクトリパスが設定される。コンテンツが一つのファイルとしてリンク登録されている場合は該ファイルのフルパス、コンテンツがディレクトリとしてリンク登録されている場合は該ディレクトリのフルパスが、それぞれ設定される。
【0070】
編集更新ハンドル4500は、DBMS外部ファイル管理システム(FMS)242の編集更新ハンドル取得機能で作成され、利用者プログラム142に与えられる。編集更新ハンドルは、FMS識別子4511、ディレクトリパス4512、及び通番4513の3つのフィールドから構成される。FMS識別子4511には、編集更新対象のコンテンツを管理するFMS242の識別子が設定される。ディレクトリパス4512には、編集更新対象となるコンテンツのディレクトリパスが設定される。コンテンツが一つのファイルとしてリンク登録されている場合は該ファイルのフルパス、コンテンツがディレクトリとしてリンク登録されている場合は該ディレクトリのフルパスが、それぞれ設定される。通番4513には、編集更新管理テーブル4700(後述)でキーとして使用される、編集更新の識別子が設定される。
【0071】
図7は、DBMS外部ファイル管理システム(FMS)242がメモリ22上に確保する領域221内に格納される、利用者クライアント10に係わる管理情報のデータ構造の一例を示している。上図は外部コンテンツへのアクセスセッション管理に関するデータ構造であり、下図は外部コンテンツへの編集更新セッション管理に関するデータ構造である。アクセスセッション管理情報は、アクセス管理テーブル4600で管理される。編集更新セッション管理情報は、編集更新管理テーブル4700で管理される。
【0072】
アクセス管理テーブル4600は、通番4611、ディレクトリパス4612、クライアント識別子4613、及び更新フラグ4614の4つのフィールドから構成される。DBMS外部ファイル管理システム(FMS)242のアクセス開始機能または編集更新開始機能の呼び出しによって外部コンテンツへのアクセスセッションまたは更新セッションが開始されるときに、アクセス管理テーブル4600に新規レコードが登録される。通番4611はセッションの識別のためのものであり、セッション開始時に一意な値が設定される。ディレクトリパス4612には、前記機能の入力に指定されたパス名が設定される。クライアント識別子4613には、前記機能の入力の際に指定されたクライアント識別子が設定される。更新フラグ4614には、アクセス開始機能の場合はN、編集更新開始機能の場合にはYが設定され、参照のみのセッションなのか、編集更新のセッションなのかが区別される。
【0073】
編集更新管理テーブル4700は、通番4711、更新種別4712、及び更新内容4713の3つのフィールドから構成される。通番4711の値は、アクセス管理テーブル4600中の通番4611に対応しており、アクセス管理テーブル4600と編集更新管理テーブル4700の通番で結合することにより、どの利用者プログラムから編集更新要求が来ているのかが識別される。更新種別4712と更新内容4713を合わせたものが、更新の具体的内容を示している。4721で示されるレコードは、4622で示されるディレクトリパス‘/db/pictures/river/’の下に、ファイル名‘Tama.jpeg’で、更新内容4713中に続いて格納されたデータで、ファイルを新規作成することを示している。なお、既存のファイルの内容更新の場合もこの形式である。4722で示されるレコードは、4622で示されるディレクトリパス‘/db/pictures/river/’の下に、ディレクトリ‘Edo’を作成することを示している。4723で示されるレコードは、4622で示されるディレクトリパス‘/db/pictures/river/’の下にあるファイル‘Naka.jpg’を削除することを示している。4724で示されるレコードは、4622で示されるディレクトリパス‘/db/pictures/river/’の下にあるファイル‘Edo.jpg’を、‘/db/pictures/river/Edo/0001.jpg’に名称変更(移動)することを示している。
【0074】
なお、本実施の形態では編集更新管理テーブル4700をすべてメモリ上で保持しているが、これを部分的に二次記憶装置上に格納する実装としても、本発明の実施においては差し支えない。
【0075】
図8は、DBMS外部ファイル管理システム(FMS)242がメモリ22上に確保する領域221内に格納される、DBMS342のトランザクションに係わる管理情報のデータ構造の一例を示している。
【0076】
トランザクション管理テーブル4800は、トランザクション識別子4811、更新種別4812、ディレクトリパス4813、及び通番4814の4つのフィールドから構成される。トランザクション識別子4811は、DBMS342のトランザクションを一意に示す識別子である。更新種別4812には、insert(リンク登録)、delete(リンク削除)、及びupdate(リンク先編集更新)の3種類がある。ディレクトリパス4813は、更新に係わるリンク先コンテンツのフルパスである。通番4814は更新種別4812がupdateのときのみ意味を持ち、アクセス管理テーブル4600の通番4611、及び編集更新管理テーブル4700の通番4711と同じ値が設定される。図8の4821は、トランザクションtx003で、ディレクトリ‘/db/pictures/sea/’をリンク先コンテンツとして登録する場合の例である。4822は、トランザクションtx004でファイル‘/db/pictures/mountain.bmp’へのリンクを削除する場合の例である。4823と4824は、update文でファイル‘/db/pictures/sun.bmp’へのリンクを削除し、その代わりにファイル‘db/pictures/moon.jpg’をリンク先コンテンツとして登録する場合の例である。4825は、ディレクトリ‘/db/pictures/river’以下のコンテンツを、編集更新管理テーブル4700中のアクセス通番5で示される編集更新情報に基づいて更新する場合の例である。
【0077】
図9は、ログ345に格納されるDBMS342のログレコードのうち、外部ファイル連携機能拡張(FAE)343が取得する外部ファイルログ4900のデータ構造の一例を示している。FAE343では、トランザクション中のレコード登録時、レコード削除時、及びレコード更新時において外部ファイル4013が更新されるときに、DBMS342のログ取得機能を用いて外部ファイルログ4900にDBMS外部ファイル管理システム(FMS)242の識別子を記録しておく。これにより、コミット時またはロールバック時に、FAE343がFMS242と通信をしてDBMSトランザクションの決着結果を通知することで、外部ファイルテーブル4000と外部コンテンツとの参照整合性を保証する。
【0078】
外部ファイルログ4900は、トランザクション識別子4911、及びFMS識別子4912の2つのフィールドから構成される。トランザクション識別子4911には、外部ファイルログ4900にログを取得する契機となった更新処理の属するトランザクションの識別子を設定する。FMS識別子4912には、DBMSトランザクションに係わるFMSの識別子を設定する。トランザクション識別子4911とFMS識別子4912の組が同一となるレコードが既に登録済みの場合、重複を排除するため、外部ファイルログ4900へのログ出力は行なわない。
【0079】
図10から図19のフローチャートは、本実施の形態に係わる処理の流れを示している。コンテンツへのリンク登録処理を、図10及び図11に示す。コンテンツへのリンク削除処理を、図12及び図13に示す。コンテンツ参照処理を、図14及び図15に示す。リンク先コンテンツの編集更新処理を、図16及び図17に示す。トランザクションコミット処理については、図18に示す。トランザクションロールバック処理については、図19に示す。図19に示すROLLBACK文処理は、DBMS342の障害時、あるいは利用者プログラムの不正終了などによるトランザクションロールバック時の処理と同じものである。
【0080】
図10及び図11のフローチャートに基づいて、利用者プログラム142が登録対象コンテンツ144をDBMS342にリンク登録する手順を説明する。
【0081】
図10から始まる。ステップ5001で、利用者プログラム142は、FML143経由でFMS242のコンテンツ登録準備機能を呼び出し、利用者クライアント10上の登録対象コンテンツ144の登録準備を依頼する。FMS242では、入力パラメータよりファイルデータを抽出し、OS241の提供するOSファイルアクセス制御情報設定機能を用いて、OSファイルアクセス制御情報245にFMSの所有を意味する設定をした上で、DB管理下コンテンツ243を作成する。ファイルが複数渡されてきたときは、DB管理下コンテンツ243として複数のファイルが作成される。登録ハンドル4300が作成され、出力パラメータとして、利用者プログラム142に返される。
【0082】
ステップ5002で、続いて利用者プログラム142は、図4(1)の形式のINSERT文(変数:entryhandleにはステップ5001で取得した登録ハンドル4300を指定)を用いて、DBMS342の外部ファイル管理テーブル4000に新規レコード4023を登録する。
【0083】
図11へ行く。利用者プログラム142からの要求を受けてDBMS342では、INSERT文処理を実行する。まず、ステップ5101で新規レコード4023を作成する。これにより新規レコード4023のレコード識別子4001とフィールド識別子4002が確定する。続いてステップ5102で、レコード4023の定義情報を参照し、ファイル抽象データ型関数new()を含むか否か判定が行われ、含まれない場合はステップ5107へ進む。含む場合は、続いてFAE343でファイル抽象データ型に関する処理が行なわれる。
【0084】
ステップ5103で、まずINSERT文中のnew()を処理する。new()では、登録ハンドルを元にしてファイル抽象データ型値が生成される。この例では登録対象コンテンツはファイルであるので、コンテンツ形式4016にはfileが設定される。
【0085】
続いてステップ5104で、FAE343のコンテンツリンク登録処理を呼び出す。このとき、パラメータとして、トランザクション識別子とファイル抽象データ型値が渡される。コンテンツリンク登録処理では、ファイル抽象データ型値からFMS識別子、ディレクトリパス、及びコンテンツ形式を抽出する。コンテンツ形式がディレクトリの場合、ディレクトリパスの末尾にディレクトリ区切り文字‘/’を付加する。そして、コンテンツの確認とリンクを仮登録状態にするため、FMS242のリンク登録機能を呼び出す。この際、呼び出すFMS242はファイル抽象データ型値のFMS識別子で示されるFMSである。このときの入力パラメータとして、DBMS342の現行トランザクションの識別子と、ディレクトリパスを指定する。FMS242では、入力パラメータで指定されたディレクトリパス下にファイルが存在することを確認し、このときコンテンツ情報ファイル244も作成する。トランザクション管理テーブル4800に、更新種別4812をinsertとして、トランザクション識別子、ディレクトリパスとともにエントリを追加する。
【0086】
ステップ5105で、DBMS342のログ記録機能を利用して外部ファイルログ4900に新規ログレコードを作成し、トランザクション識別子とFMS識別子を記録する。
【0087】
続くステップ5106で、DBMS342は、FAE343のコンテンツリンク登録処理が正常終了しなかった場合、INSERT文の処理もステップ5109へ進み異常終了する。正常終了した場合は、ステップ5107で、作成されたファイル抽象データ型値をレコード4023の外部ファイル4013に書き込み、ステップ5108でINSERT文の処理を正常終了させる。
【0088】
図10に戻り、ステップ5003でコミット処理またはロールバック処理が行なわれる。これらの処理については後述する。
【0089】
最後にステップ5004で、DBMS処理終了後に、登録ハンドルの解放を行なうため、利用者プログラム142は、FML143経由でFMS242に対してコンテンツ登録中止機能を呼び出す。このとき入力パラメータとして、登録ハンドルを渡す。FMS242では、登録ハンドルに係わる外部コンテンツが未登録かどうかを確認する。リンクが設定されているか、もしくはリンク設定のトランザクションの途中であった場合、何もしない。そうでなかった場合、コンテンツ登録準備機能で作成したファイル及びディレクトリは削除される。
【0090】
以上で、外部コンテンツへのリンク登録処理は終了する。
【0091】
コンテンツリンク登録処理に関して、上記では登録対象コンテンツ144が利用者クライアント10上にある場合としたが、あらかじめファイルサーバ20上にあるコンテンツをDB管理下に置きたい場合もある。この場合、FMS242のコンテンツ登録準備機能呼び出しの際にファイルデータの転送を行なわず、指定されたコンテンツのOSファイルアクセス制御情報245のみ更新して所有者をFMS242とし、そのままDB管理下コンテンツ243とすれば良い。
【0092】
図12及び図13のフローチャートに基づいて、利用者プログラム142がDBMS342管理下のコンテンツ244のリンクを削除する手順を説明する。
【0093】
図12から始まる。ステップ5201で、利用者プログラム142は、図4(2)の形式のDELETE文を用いて、DBMS342に登録されたレコード4023と該レコードで管理されるDB管理下コンテンツ243の削除を要求する。
【0094】
図13へ行く。利用者プログラム142から呼び出されたDBMS342では、DELETE文の処理を実行する。まず、ステップ5301で、指定されたDELETE文のWHERE句の条件を満たすレコードが確認され、レコードが無い場合、ステップ5308へ行きDELETE文の処理は正常終了する。レコードがある場合、ステップ5302で、処理対象となるレコードを決定する。
【0095】
続いてステップ5303で、このレコードの定義情報に基づいてファイル抽象データ型のフィールドを含むレコードであるか否か判定が行なわれ、含まない場合はステップ5307へ進む。含む場合は、FAE343でファイル抽象データ型に関する処理が行われる。
【0096】
ステップ5304で、FAE343のコンテンツリンク削除処理を呼び出す。このとき、入力パラメータとして、DBMS342の現行トランザクションの識別子と、ファイル抽象データ型値が渡される。FAE343では、ファイル抽象データ型値から取得したFMS識別子とディレクトリパスをもとに、FMS242のリンク削除機能を呼び出す。FMS242では、トランザクション管理テーブル4800に、更新種別4812をdeleteとして、入力パラメータとして渡されたトランザクション識別子及びディレクトリパスとともにエントリを追加する。
【0097】
続いてステップ5305で、DBMS342のログ記録機能を利用して外部ファイルログ4900に新規ログレコードを作成し、トランザクション識別子とFMS識別子を記録する。ステップ5306でFAE343の内部処理が正常に終了したか否かを判断し、正常でなかった場合はステップ5309に進み異常終了とする。正常の場合はステップ5307に進む。
【0098】
ステップ5307では、データベースのレコード削除を行ない、その後、処理はステップ5301に戻り、引き続き別のレコードの削除処理を行なう。処理対象となるレコードが残っていなければ、DBMSにおけるDELETE文の処理は終了する。
【0099】
図12に戻り、続いて、ステップ5202でコミット処理またはロールバック処理が行なわれる。これらの処理については後述する。
【0100】
以上で、外部コンテンツのリンク削除処理は終了する。
【0101】
SQLのUPDATE文で、元のファイル抽象データ型の値を、別のファイル抽象データ型の値で上書きすることによって、リンク情報の付け替えを行なうことができる。これは、FAE343の内部で、上述したDELETE文の処理とINSERT文の処理とを同時に行なうことで、実現できる。この場合、トランザクション管理テーブル4800には、図8の4823と4824で示したレコードが作成される。
【0102】
図14及び図15のフローチャートに基づいて、利用者プログラム142がDBMS342管理下のコンテンツ243を参照する手順を説明する。
【0103】
図14から始まる。利用者プログラム142は、ステップ5401で、図4(5)の形式のSELECT文を用いてレコードの選択条件とアクセスハンドル4400の生成をDBMS342に要求し、これを受けてDBMS342はSELECT文を処理する。
【0104】
続いて、ステップ5402で、SELECT文の結果を取得するために、FETCH文の実行をDBMS342に要求する。利用者プログラム142からの要求を受けてDBMS342はFETCH文処理を実行する。
【0105】
図15に行く。まず、ステップ5501で、検索結果として条件を満たすレコードがあるか否か判定を行ない、無い場合はFETCH文処理を終了して戻る。ある場合にはステップ5502に進み、処理対象となるレコードを決定する。ステップ5503で、このレコードの定義情報に基づいてファイル抽象データ型のフィールドを含むレコードであるか否か判定が行なわれ、含まない場合はステップ5505へ進む。含む場合は、ステップ5504で、FAE343でファイル抽象データ型に関する処理が行なわれる。
【0106】
FAE343内部処理として、アクセスハンドル生成処理get_accesshandle()が呼び出される。このとき入力パラメータとして、ファイル抽象データ型値が渡される。FAE343では、ファイル抽象データ型値から、FMS識別子及びディレクトリパスを取り出し、アクセスハンドル4400を作成する。
【0107】
ステップ5505で、作成されたアクセスハンドル4400を他の検索結果データと併せて出力結果に設定する。次にステップ5501に戻り、SELECT文の条件を満たすレコードが無くなるまで上記の処理を繰り返し、無くなればFETCH文の処理は完了である。
【0108】
図14のステップ5403に戻る。アクセスハンドルを取得した後、外部コンテンツに対するアクセスを開始するため、FML143経由でFMS242のアクセス開始機能の呼び出しを行なう。呼び出し先となるFMS242は、アクセスハンドル4400のFMS識別子4411によって動的に決定される。入力パラメータは、前述のSELECT文で取得したアクセスハンドル4400中のディレクトリパス4412と、利用者プログラム142のクライアント識別子(利用者クライアント10のネットワークアドレスと、利用者プログラム142がネットワークインタフェース13との間で確立したセッションの識別子を合わせたもの、など)である。FMS242では、アクセス管理テーブル4600に、更新フラグ4614としてN、ディレクトリパス4612及びクライアント識別子4613として入力パラメータのディレクトリパスとクライアント識別子を設定したエントリを作成し、利用者プログラム142にアクセス識別子が返される。
【0109】
続いて、該アクセスハンドル4400に対応するコンテンツに関する情報を取得するため、ステップ5404でFML143経由でFMS242のコンテンツ属性情報取得機能を呼び出し、DB管理下コンテンツ243に関する情報を取得する。入力パラメータには前記アクセス開始機能で取得したアクセス識別子を設定する。FMS242では、アクセス管理テーブル4600から、入力パラメータのアクセス識別子を元にディレクトリパスを取得し、対応するコンテンツ情報ファイル244を読み出し、読み出した属性情報を利用者プログラム142に返す。
【0110】
続いて、ステップ5404で取得した属性情報を元に、ファイル名を指定してファイルデータの読み出しを行なう。ステップ5405でFML143経由でFMS242のデータ読み出し機能を呼び出し、DB管理下コンテンツ243のファイルデータを読み出す。入力パラメータには前記アクセス開始機能の呼び出しで取得したアクセス識別子の他、読み出すファイル名、ファイル内オフセット位置、及び読み出すデータのサイズを設定する。FMS242では、アクセス管理テーブル4600から、入力パラメータのアクセス識別子を元にディレクトリパスを取得する。取得したディレクトリパスに、入力パラメータとして指定されたファイル名を付加し、ファイルデータの読み出しを行ない、読み出したデータを利用者プログラム142に返す。
【0111】
コンテンツの参照が終わった時点で、アクセス終了処理を行なう。すなわちステップ5406で、FML143経由でFMS242のアクセス終了処理機能を呼び出し、入力パラメータとして、アクセス識別子を指定する。FMS242では、アクセス管理テーブル4600を検索し、アクセス識別子に合致するレコードを削除する。これによって、FMS242によって掛けられていた外部コンテンツへのロックも解除される。
【0112】
以上で、利用者プログラムにおけるコンテンツ参照処理は終了する。
【0113】
なお、SELECT文に伴うコミット処理もしくはロールバック処理は、FMS242のアクセス開始機能の呼び出し以降であれば、どの時点で実行しても構わない。
【0114】
FML143のコンテンツ参照処理として、利用者プログラム142のメモリ上にデータを読み出す代わりに、利用者クライアント10の二次記憶装置14上にファイル形式で取得する方法を採ってもよい。これはFML143にファイル取得のインタフェースを定義すれば実現できる。取得先がメモリ上でも二次記憶装置上であっても、本発明の実施には差し支えない。
【0115】
図16及び図17のフローチャートに基づいて、利用者プログラム142がDBMS342管理下のコンテンツ243の内容を更新する手順を説明する。
【0116】
図16から始まる。利用者プログラム142は、ステップ5601で、図4(5)の形式のSELECT文を用いてレコードの選択条件とアクセスハンドル4400の生成をDBMS342に要求し、これを受けてDBMS342はSELECT文を処理する。
【0117】
続いて、ステップ5602で、SELECT文の結果を取得するために、FETCH文の実行をDBMS342に要求する。利用者プログラム142からの要求を受けてDBMS342はFETCH文処理を実行する。(FETCH文処理の内容は、図15に示した通りである。)
【0118】
アクセスハンドルを取得した後、ステップ5603で、外部コンテンツに対する編集更新を開始するため、FML143経由でFMS242の編集更新開始機能の呼び出しを行なう。呼び出し先となるFMS242は、アクセスハンドル4400のFMS識別子4411によって動的に決定される。入力パラメータは、前述のSELECT文で取得したアクセスハンドル4400中のディレクトリパス4412と、利用者プログラム142のクライアント識別子(利用者クライアント10のネットワークアドレスと、利用者プログラム142がネットワークインタフェース13との間で確立したセッションの識別子を合わせたもの、など)である。FMS242では、アクセス管理テーブル4600に、更新フラグ4614としてY、ディレクトリパス4612及びクライアント識別子4613として入力パラメータのディレクトリパスとクライアント識別子を設定したエントリを作成し、利用者プログラム142に更新識別子が返される。
【0119】
続いて、該アクセスハンドル4400に対応するコンテンツに関する情報を取得するため、ステップ5604でFML143経由でFMS242のコンテンツ属性情報取得機能を呼び出し、DB管理下コンテンツ243に関する情報を取得する。入力パラメータには前記編集更新開始機能で取得した更新識別子を設定する。FMS242では、アクセス管理テーブル4600から、入力パラメータの更新識別子を元にディレクトリパスを取得し、対応するコンテンツ情報ファイル244を読み出し、読み出した属性情報を利用者プログラム142に返す。
【0120】
続いて、ステップ5604で取得した属性情報を元に、外部コンテンツに対して各種の更新処理を行なう。ステップ5605では、ファイル(またはディレクトリ)作成、ファイル(またはディレクトリ)削除、ファイルへの書き込み、ファイル(またはディレクトリ)名称の変更、などの処理を行なう。
【0121】
ファイル(またはディレクトリ)作成では、FML143経由でFMS242のファイル作成機能を呼び出し、DB管理下コンテンツ243を新規に作成する。入力パラメータには前記編集更新開始機能で取得した更新識別子と、新規作成するファイル(またはディレクトリ)の名称を指定する。FMS242では、編集更新管理テーブル4700に対して、更新種別がnewのエントリを追加する。
【0122】
ファイル(またはディレクトリ)削除では、FML143経由でFMS242に対してファイル削除機能を呼び出し、DB管理下コンテンツ243を削除する。入力パラメータには前記編集更新開始機能で取得した更新識別子と、削除するファイル(またはディレクトリ)の名称を指定する。FMS242では、編集更新管理テーブル4700に対して、更新種別がdeleteのエントリを追加する。
【0123】
ファイルへの書き込みでは、FML143経由でFMS242のファイル書き出し機能を呼び出し、DB管理下コンテンツ243の内容を更新する。入力パラメータには、前記編集更新開始機能で取得した更新識別子、書き込みを行なうファイルの名称、ファイル内オフセット位置、書き込むデータのサイズ、及び書き込むデータの格納された領域を指定する。FMS242では、編集更新管理テーブル4700に対して、必要があれば更新種別がnewのエントリを追加した上で、更新結果のファイルイメージを登録する。
【0124】
ファイル(またはディレクトリ)名称の変更では、FML143経由でFMS242のファイル移動機能を呼び出し、DB管理下コンテンツ243の名称を変更する。入力パラメータには、前記編集更新開始機能で取得した更新識別子、名称変更を行なうファイル(またはディレクトリ)の名称及び変更後の名称を指定する。FMS242では、編集更新管理テーブル4700に対して、更新種別がrenameのエントリを追加する。
【0125】
以上に述べたような各種編集更新処理を行なった後、ステップ5606で、編集更新ハンドルを取得する。FML143経由でFMS242の編集更新ハンドル取得機能を呼び出し、外部コンテンツに係わる更新ハンドルを取得する。入力パラメータには前記編集更新開始機能で取得した更新識別子を設定する。FMS242ではアクセス管理テーブル4600から編集更新ハンドル4500を生成し、利用者プログラム142に返す。
【0126】
図16のステップ5607に戻る。続いて利用者プログラム142は、図4(4)の形式のUPDATE文(変数:updatehandleにはステップ5306で取得した編集更新ハンドル4500を指定)を用いて、DBMS342の外部ファイル管理テーブル4000中のレコード中の外部ファイル4013の値を更新するとともに、DBMSトランザクションの延長でDB管理下コンテンツ243を仮更新状態にする。
【0127】
図17へ行く。利用者プログラム142からの要求を受けてDBMS342では、UPDATE文処理を実行する。まず、ステップ5701で、更新の対象にファイル抽象データ型が含まれているかどうか判別する。ファイル抽象データ型が含まれていない場合、通常のレコード更新と見なしてステップ5708へ行く。ファイル抽象データ型が含まれている場合、続くステップ5702で編集更新かどうかを判別する。編集更新パラメータ設定関数update()が指定されていない場合、編集更新ではないので、ステップ5703へ行き、通常のリンク情報だけの更新処理を行なう。
【0128】
編集更新の場合、ステップ5704以降で、FAE343でファイル抽象データ型に関する処理を行なう。まず、FAE343の編集更新パラメータ設定関数update()を呼び出す。このとき、パラメータとして、編集更新ハンドルが渡される。update()では、編集更新ハンドルを元にしてファイル抽象データ型値が生成される。
【0129】
続いて、ステップ5705で、UPDATE文の処理時に呼び出すように関連付けられたFAE343のコンテンツ編集更新処理を呼び出す。このとき、パラメータとして、トランザクション識別子と、編集更新ハンドルが渡される。FAE343では、編集更新ハンドルから、FMS識別子、ディレクトリパス、及びコンテンツ形式を抽出する。コンテンツ形式がディレクトリの場合、ディレクトリパスの末尾にディレクトリ区切り文字‘/’を付加する。そして、コンテンツの確認と編集更新を仮登録状態にするため、FMS242のリンク先編集更新機能を呼び出す。この際、呼び出すFMS242はファイル抽象データ型値のFMS識別子で示されるFMSである。このときの入力パラメータとして、DBMS342の現行トランザクションの識別子と、編集更新ハンドルを指定する。FMS242では、編集更新管理テーブル4700を参照し、入力パラメータで指定された編集更新ハンドル4500中の通番4513から、更新情報が登録されていることを確認し、トランザクション管理テーブル4800に、更新種別4812をupdateとして、トランザクション識別子、ディレクトリパス、及び通番とともにエントリを追加する。なお、ディレクトリパスと通番は、編集更新ハンドルから取得したものである。
【0130】
ステップ5706で、DBMS342のログ記録機能を利用して外部ファイルログ4900に新規ログレコードを作成し、トランザクション識別子とFMS識別子を記録する。
【0131】
続くステップ5707で、DBMS342は、FAE343のコンテンツ編集更新処理が正常終了しなかった場合、UPDATE文の処理もステップ5710へ行って、異常終了する。正常終了した場合は、ステップ5708で、ステップ5704において作成されたファイル抽象データ型値を更新対象のレコードに書き込み、ステップ5709でUPDATE文の処理を正常終了させる。
【0132】
図16に戻り、ステップ5608でコミット処理またはロールバック処理が行なわれる。これらの処理については後述する。
【0133】
最後にステップ5609で、DBMS処理終了後に、編集更新処理の終了を行なうため、FML143経由でFMS242の編集更新終了機能を呼び出す。入力パラメータとして、前記編集更新開始機能の呼び出しで取得した更新識別子を渡す。FMS242では、入力パラメータで渡された更新識別子中の通番4513を元に、アクセス管理テーブル4600及び編集更新管理テーブル4700から関係するレコードを削除する。
【0134】
以上で、外部コンテンツの更新処理は終了する。
【0135】
図18に示すフローチャートに基づいてトランザクションコミット処理について説明する。
【0136】
DBMS342のCOMMIT文処理では、まずFAE343のコミット処理を呼び出す。このとき、入力パラメータとしてコミットするトランザクションのトランザクション識別子が渡される。
【0137】
まず、ステップ5801で、外部ファイルログ4900から、入力パラメータで渡されたトランザクション識別子と一致するトランザクション識別子4911を持つレコードを検索する。ステップ5802で、これが見つからなかった場合には、FAE343のコミット処理は終了する。
【0138】
見つかった場合、ステップ5803で、外部ファイルログ4900のレコードから、FMS識別子4912を取得し、FMS242のトランザクション確定機能を呼び出す。このとき、入力パラメータとして前記トランザクション識別子を指定する。FMS242では、トランザクション管理テーブル4800を検索し、入力パラメータで指定されたトランザクション識別子を持つレコードがあるかどうかを調べ、一致するものがあった場合、更新種別4812の種類で順序付けて確定処理を行なう。
【0139】
まず、更新種別がinsertのトランザクションを確定させる。確定処理に伴い、コンテンツ情報ファイル244のリファレンス数4121を1つ増やす。続いて、更新種別がupdateのトランザクションを確定させる。確定処理の際、元のコンテンツ情報ファイル244のリファレンス数4121が1だった場合、そのまま上書きで確定処理を行なう。具体的には、トランザクション管理テーブル4800の通番4814をキーにして編集更新管理テーブル4700を検索し、通番が一致するものの編集更新の結果を反映させる。元のコンテンツ情報ファイル244のリファレンス数4121が2以上だった場合、他のリンク元のファイル抽象データ型値に対してはリンク先のコンテンツを保証するため、元ののコンテンツはそのままで、該コンテンツの情報ファイル244からはリファレンス数を1つ減らす。更新されたファイル抽象データ型値に対してはリンク先のコンテンツに編集更新の結果を反映させるため、DB管理下コンテンツ243を別途複製した上で、編集更新の結果を反映させる。複製されたコンテンツに対するコンテンツ情報ファイル244のリファレンス数4121は1になる。最後に、更新種別がdeleteのトランザクションを確定させる。確定処理に伴い、コンテンツ情報ファイル244のリファレンス数4121を1つ減らす。リファレンス数が0になった場合、データベースのリンク元がなくなったことになるので、コンテンツに対応するDB管理下コンテンツ243及びコンテンツ情報ファイル244を削除する。ただし、その時点でアクセス管理テーブル4600に同一コンテンツのエントリがあり利用者プログラム142からのアクセスが継続していた場合、すべての利用者プログラム142からのアクセスがなくなるまで、コンテンツの削除は遅延させる。
【0140】
確定処理が終わった後、トランザクション管理テーブル4800及び編集更新管理テーブル4700の処理済みのレコードを削除する。
【0141】
続いて、ステップ5804で、外部ファイルログ4900の処理済みのレコードを削除する。
【0142】
以上で、FAE343におけるコミット処理は終了する。
【0143】
ステップ5805で、DBMS342は、データベースのレコードに関する通常のコミット処理を行なう。
【0144】
以上が、コミット処理の流れである。
【0145】
なお、FMS242のトランザクション確定機能の処理中で、同一のコンテンツに対して複数のファイル抽象データ型フィールドからリンクが設定されている場合に、リファレンス数4121はそのままでリンク先のコンテンツを直接更新する実装としても、参照整合性を保つことができることから、本発明の実施には差し支えない。
【0146】
図19に示すフローチャートに基づいて、トランザクションロールバック処理について説明する。
【0147】
DBMS342のROLLBACK文処理では、まずFAE343のロールバック処理を呼び出す。このとき、入力パラメータとしてロールバックするトランザクションのトランザクション識別子が渡される。
【0148】
まずステップ5901で、外部ファイルログ4900から、入力パラメータで渡されたトランザクション識別子と一致するトランザクション識別子4911を持つレコードを検索する。ステップ5902で、これが見つからなかった場合には、FAE343のロールバック処理は終了する。
【0149】
見つかった場合、ステップ5903で、外部ファイルログ4900のレコードから、FMS識別子4912を取得し、FMS242のトランザクション無効化機能を呼び出す。このとき、入力パラメータとして前記トランザクション識別子を指定する。FMS242では、トランザクション管理テーブル4800を検索し、入力パラメータで指定されたトランザクション識別子を持つレコードがあるかどうかを調べ、一致するものがあった場合、無効化処理を行なう。トランザクション管理テーブル4800中で、トランザクション識別子4811が入力パラメータのトランザクション識別子と合致するレコードを削除する。
【0150】
続いて、ステップ5904で、外部ファイルログ4900の処理済みのレコードを削除する。
【0151】
以上で、FAE343におけるロールバック処理は終了する。
【0152】
ステップ5905で、DBMS342は、データベースのレコードに関する通常のロールバック処理を行なう。
【0153】
以上が、ロールバック処理の流れである。
【0154】
【発明の効果】
以上述べたように、本発明によれば、DBMSにファイル抽象データ型と外部ファイル連携機能を導入し、DBMS管理下のファイルを管理するためにDBMS外部ファイル管理システムを導入し、外部ファイル連携機能とDBMS外部ファイル管理システムとが適切に連携するよう設定することにより、DBMS利用者が行なうデータベースレコードの操作に対応して、当該レコードと関連付けられた外部ファイルに対する適切な操作が行なわれることが保証されるため、前記データベースレコードと外部ファイルとの整合性が保証され、また、DBMS管理下のファイルに対する不当なアクセスを排除することが出来る。
【0155】
利用者は、データベース検索後に、登録されたファイルに関する更新差分情報をDBMS外部ファイル管理システムに登録してから、データベーストランザクションによってリンク先のファイルに対して内容更新を反映させるため、ファイルの内容の整合性までデータベースを用いて管理することが出来る。リファレンス数と組み合わせたリンク管理により、外部ファイルをデータベースによって版管理することも実現される。
【図面の簡単な説明】
【図1】本発明に係る一実施形態のデータベースシステムの概略構成を示すブロック構成図である。
【図2】本実施形態において、外部ファイルを管理するテーブルの構成例を示す図である。
【図3】外部ファイル連携機能拡張の処理の一覧表を示す図である。
【図4】DB操作文である。
【図5】コンテンツ情報ファイルのデータ構造の一例を示す図である。
【図6】コンテンツリンク登録処理に使用する登録ハンドルのデータ構造、コンテンツアクセス処理及びコンテンツ編集更新処理に使用するアクセスハンドルのデータ構造、並びにコンテンツ編集更新処理に使用する編集更新ハンドルのデータ構造の一例を示す図である。
【図7】DBMS外部ファイル管理システム(FMS)が使用するメモリ上のデータ構造の一例を示す図である。
【図8】DBMS外部ファイル管理システム(FMS)が使用するメモリ上のデータ構造の一例を示す図である。
【図9】外部ファイル連携機能拡張(FAE)が取得する外部ファイルログのデータ構造の一例を示す図である。
【図10】利用者プログラムにおけるコンテンツリンク登録処理のフローチャート図である。
【図11】DBMSにおけるINSERT文処理のフローチャート図である。
【図12】利用者プログラムにおけるコンテンツリンク削除処理のフローチャート図である。
【図13】DBMSにおけるDELETE文処理のフローチャート図である。
【図14】利用者プログラムにおけるコンテンツ参照処理のフローチャート図である。
【図15】DBMSにおけるFETCH文処理のフローチャート図である。
【図16】利用者プログラムにおけるコンテンツ編集更新処理のフローチャート図である。
【図17】DBMSにおけるUPDATE文処理のフローチャート図である。
【図18】DBMSにおけるCOMMIT文処理のフローチャート図である。
【図19】DBMSにおけるROLLBACK文処理のフローチャート図である。
【符号の説明】
10 利用者クライアント
11 CPU
12 メモリ
13 ネットワークインタフェース
14 二次記憶装置
141 オペレーティングシステム(OS)
142 利用者プログラム
143 DBMS外部ファイル連携ライブラリ(FML)
144 登録対象ファイル
19 バス
20 ファイルサーバ
21 CPU
22 メモリ
221 FMS用領域
23 ネットワークインタフェース
24 二次記憶装置
241 オペレーティングシステム(OS)
242 DBMS外部ファイル管理システム(FMS)
243 DB管理下ファイル
244 コンテンツ情報ファイル
245 OSファイルアクセス制御情報
29 バス
30 DBサーバ
31 CPU
32 メモリ
33 ネットワークインタフェース
34 二次記憶装置
341 オペレーティングシステム(OS)
342 データベース管理システム(DBMS)
343 外部ファイル連携機能拡張(FAE)
344 テーブル情報
345 ログ
39 バス
Claims (2)
- データベース管理システムで管理されるテーブル情報と外部ファイルを連携させるデータベース−ファイル連携方法であって、
前記テーブル情報に、管理すべき外部ファイルのコンテンツに関する所在情報を格納するデータ構造を提供するファイル抽象データ型のフィールドを定義し、前記データベース管理システムに、前記ファイル抽象データ型のフィールドの所在情報を用いてコンテンツを参照・更新処理する前記データ構造専用の関数を設け、
前記テーブル情報の前記ファイル抽象データ型のフィールドの更新処理時に呼び出される前記関数の処理機能により、当該データベース管理システムのみが参照・更新できるアクセス権限で前記外部ファイルを管理する外部ファイル管理システムを制御するとともに、
同一外部ファイルへのリンク数を管理し、
リンク先ファイル更新処理において、ファイルの内容を更新する際にファイルの複製を作成して更新し、
更新処理の行なわれたレコード中のフィールドのみ複製後のファイルをリンク先として設定する
ことを特徴とするデータベース−ファイル連携方法。 - データベース管理システムが稼働するデータベースサーバと、外部ファイルを管理する外部ファイル管理システムが稼働するファイルサーバと、利用者クライアントとを、ネットワークで接続したシステムにおけるデータベース−ファイル連携方法であって、
前記データベース管理システムが管理するテーブル情報に、管理すべき前記ファイルサーバ上の外部ファイルに関する所在情報を格納するデータ構造を提供するファイル抽象データ型のフィールドを定義して、複数の前記フィールドから1つの外部ファイルに関連付けられるようにし、前記データベース管理システムに、前記ファイル抽象データ型のフィールドの所在情報を用いてコンテンツを参照・更新処理する前記データ構造専用の関数を設け、
前記ファイルサーバでは、前記外部ファイル管理システム経由でのみ前記外部ファイルに対する参照・更新が実行されるようにアクセス権限が設定されており、
前記利用者クライアントが前記テーブル情報から外部ファイルの検索処理を行なうときには、前記レコード中の前記ファイル抽象データ型のフィールドで管理される外部ファイルに関する処理機能の1つであるアクセスハンドル生成処理を実行する関数を呼び出すことにより、検索条件を満たす外部ファイルのリンク情報であるアクセスハンドルを取得し、取得したアクセスハンドルと前記外部ファイル管理システムを用いて、前記レコード中のフィールドにより管理される外部ファイルを参照し、
前記利用者クライアントが前記テーブル情報のレコードに対応する外部ファイルの更新処理を行なうときには、前記レコード中の前記ファイル抽象データ型のフィールドで管理される外部ファイルに関する処理機能の1つであるリンク先ファイル更新処理を実行する関数を呼び出すことにより、当該外部ファイルの複製を作成した後、指定された更新を実行し、該更新処理の行なわれた前記レコード中のフィールドの所在情報として前記複製後のファイルの所在を示す情報を設定する
ことを特徴とするデータベース−ファイル連携方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000095934A JP3992263B2 (ja) | 2000-03-30 | 2000-03-30 | データベース−ファイル連携方法 |
US09/819,708 US20010029507A1 (en) | 2000-03-30 | 2001-03-29 | Database-file link system and method therefor |
US10/847,333 US7260578B2 (en) | 2000-03-30 | 2004-05-18 | Database-file link system and method therefor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000095934A JP3992263B2 (ja) | 2000-03-30 | 2000-03-30 | データベース−ファイル連携方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001282593A JP2001282593A (ja) | 2001-10-12 |
JP3992263B2 true JP3992263B2 (ja) | 2007-10-17 |
Family
ID=18610764
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000095934A Expired - Fee Related JP3992263B2 (ja) | 2000-03-30 | 2000-03-30 | データベース−ファイル連携方法 |
Country Status (2)
Country | Link |
---|---|
US (2) | US20010029507A1 (ja) |
JP (1) | JP3992263B2 (ja) |
Families Citing this family (69)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6564209B1 (en) * | 2000-03-08 | 2003-05-13 | Accenture Llp | Knowledge management tool for providing abstracts of information |
US7904595B2 (en) | 2001-01-18 | 2011-03-08 | Sdl International America Incorporated | Globalization management system and method therefor |
JP4208484B2 (ja) * | 2002-05-23 | 2009-01-14 | シャープ株式会社 | 情報処理方法、情報処理システム、情報取得装置、コンピュータプログラム、及び記録媒体 |
US7505971B2 (en) * | 2002-06-28 | 2009-03-17 | Hewlett-Packard Development Company, L.P. | Shared drive that provides shared access to editable files in a database |
US7987209B2 (en) * | 2002-12-27 | 2011-07-26 | Honda Motor Co., Ltd. | Enhanced trade compliance system: mass amendment |
JP2004295464A (ja) * | 2003-03-27 | 2004-10-21 | Hitachi Ltd | 計算機システム |
US7536376B2 (en) * | 2003-10-03 | 2009-05-19 | International Business Machines Corporation | Task oriented log retrieval utilizing a self-learning search tool |
US7284010B2 (en) * | 2003-10-23 | 2007-10-16 | Microsoft Corporation | System and method for storing and retrieving a field of a user defined type outside of a database store in which the type is defined |
US20060184585A1 (en) * | 2004-02-24 | 2006-08-17 | First Data Corporation | Communication point delivery instructions |
US20050203903A1 (en) * | 2004-03-10 | 2005-09-15 | Rajan Rajeev B. | System and method for locking and isolation in a storage platform |
JP2005351994A (ja) * | 2004-06-08 | 2005-12-22 | Sony Corp | コンテンツ配信サーバ,コンテンツ配信方法,プログラム |
US7599924B2 (en) * | 2004-06-25 | 2009-10-06 | International Business Machines Corporation | Relationship management in a data abstraction model |
US7627574B2 (en) * | 2004-12-16 | 2009-12-01 | Oracle International Corporation | Infrastructure for performing file operations by a database server |
US7548918B2 (en) * | 2004-12-16 | 2009-06-16 | Oracle International Corporation | Techniques for maintaining consistency for different requestors of files in a database management system |
US20060136508A1 (en) * | 2004-12-16 | 2006-06-22 | Sam Idicula | Techniques for providing locks for file operations in a database management system |
US7716260B2 (en) * | 2004-12-16 | 2010-05-11 | Oracle International Corporation | Techniques for transaction semantics for a database server performing file operations |
US7493347B2 (en) * | 2005-06-02 | 2009-02-17 | International Business Machines Corporation | Method for condensing reported checkpoint log data |
US7809675B2 (en) * | 2005-06-29 | 2010-10-05 | Oracle International Corporation | Sharing state information among a plurality of file operation servers |
US8224837B2 (en) * | 2005-06-29 | 2012-07-17 | Oracle International Corporation | Method and mechanism for supporting virtual content in performing file operations at a RDBMS |
CA2512385C (en) * | 2005-07-08 | 2008-11-04 | Marathon Marine Manufacturing (1996) Ltd. | Cargo deck for a truck box |
KR100667827B1 (ko) * | 2005-11-02 | 2007-01-11 | 삼성전자주식회사 | 컨텐츠 파일 정보 관리 방법, 장치와 그 방법을 수행하는프로그램이 기록된 기록 매체 |
US20070130138A1 (en) * | 2005-11-02 | 2007-06-07 | Sourcecode Technology Holding, Inc. | Methods and apparatus for storing a collaboratively designed workflow process |
WO2007056656A2 (en) * | 2005-11-02 | 2007-05-18 | Sourcecode Technology Holding, Inc. | Methods and apparatus for processing business objects, electronic forms, and workflows |
US8239226B2 (en) | 2005-11-02 | 2012-08-07 | Sourcecode Technologies Holdings, Inc. | Methods and apparatus for combining properties and methods from a plurality of different data sources |
US7996758B2 (en) | 2005-11-02 | 2011-08-09 | Sourcecode Technologies Holding, Inc. | Methods and apparatus for storing data associated with an electronic form |
US8224853B2 (en) * | 2005-11-02 | 2012-07-17 | Sourcecode Technologies Holdings, Inc. | Methods and apparatus for updating a plurality of data fields in an electronic form |
US8010940B2 (en) | 2005-11-02 | 2011-08-30 | Sourcecode Technologies Holdings, Inc. | Methods and apparatus for designing a workflow process using inheritance |
US7613739B2 (en) * | 2005-11-17 | 2009-11-03 | Research In Motion Limited | Method and apparatus for synchronizing databases connected by wireless interface |
EP1801710A1 (en) * | 2005-11-17 | 2007-06-27 | Research In Motion Limited | Method and apparatus for synchronizing databases connected by wireless interface |
WO2007056842A1 (en) * | 2005-11-17 | 2007-05-24 | Research In Motion Limited | System and method for communication record logging |
US7610304B2 (en) * | 2005-12-05 | 2009-10-27 | Oracle International Corporation | Techniques for performing file operations involving a link at a database management system |
US7464117B2 (en) * | 2006-01-20 | 2008-12-09 | Microsoft Corporation | Using directory historical data to facilitate automated file updates |
JP4952119B2 (ja) * | 2006-08-02 | 2012-06-13 | 日本電気株式会社 | ファイルサーバを用いたコンテンツ管理システムと方法およびプログラム |
US8238882B2 (en) | 2006-10-19 | 2012-08-07 | Research In Motion Limited | System and method for storage of electronic mail |
US8495519B2 (en) * | 2006-11-27 | 2013-07-23 | Sourcecode Technologies Holdings, Inc. | Methods and apparatus for displaying interprocess communication thumbnails |
US20080155495A1 (en) * | 2006-11-27 | 2008-06-26 | Sourcecode Technology Holding, Inc. | Methods and apparatus for modeling a workflow process in an offline environment |
US20080155330A1 (en) * | 2006-11-27 | 2008-06-26 | Sourcecode Technology Holding, Inc. | Methods and apparatus for debugging a workflow process |
US20080155518A1 (en) * | 2006-11-27 | 2008-06-26 | Sourcecode Technology Holding, Inc. | Methods and apparatus for tokenizing workflow process objects |
US8141128B2 (en) * | 2007-02-20 | 2012-03-20 | Source Code Technologies Holdings, Inc. | Methods and apparatus for building and executing natural language workflow functions |
US20080320405A1 (en) * | 2007-03-22 | 2008-12-25 | Sourcecode Technology Holding, Inc. | Methods and apparatus for providing context sensitive templates for a web based workflow design |
AU2008230964A1 (en) * | 2007-03-23 | 2008-10-02 | Sourcecode Technology Holding, Inc. | Methods and apparatus for dynamically allocating tasks |
US20090037397A1 (en) * | 2007-05-03 | 2009-02-05 | Sourcecode Technology Holding, Inc. | Methods and apparatus for providing context search results in process design |
AU2008101325A4 (en) | 2007-05-08 | 2014-01-30 | Sourcecode Technology Holding, Inc. | Methods and apparatus for exposing workflow process definitions as business objects |
AU2008101326A4 (en) * | 2007-05-24 | 2014-01-30 | Sourcecode Technology Holding, Inc. | Methods and apparatus for collaborative process modeling |
EP2302577A1 (en) * | 2009-09-22 | 2011-03-30 | IPR Taxback Limited | A customer relationship management system |
US11308490B2 (en) * | 2010-07-28 | 2022-04-19 | Cox Communications, Inc. | Security system and method that allows users to securely setup and maintain system security for all business systems |
US9547626B2 (en) | 2011-01-29 | 2017-01-17 | Sdl Plc | Systems, methods, and media for managing ambient adaptability of web applications and web services |
US10657540B2 (en) | 2011-01-29 | 2020-05-19 | Sdl Netherlands B.V. | Systems, methods, and media for web content management |
US10580015B2 (en) | 2011-02-25 | 2020-03-03 | Sdl Netherlands B.V. | Systems, methods, and media for executing and optimizing online marketing initiatives |
US8812439B2 (en) * | 2011-03-22 | 2014-08-19 | Oracle International Corporation | Folder structure and authorization mirroring from enterprise resource planning systems to document management systems |
JP2013127748A (ja) * | 2011-12-19 | 2013-06-27 | Fujitsu Ltd | 情報処理装置、データ記憶方法及びプログラム |
US9430449B2 (en) | 2012-03-30 | 2016-08-30 | Sdl Plc | Systems, methods, and media for managing editable previews of webpages |
US9773270B2 (en) | 2012-05-11 | 2017-09-26 | Fredhopper B.V. | Method and system for recommending products based on a ranking cocktail |
US11386186B2 (en) | 2012-09-14 | 2022-07-12 | Sdl Netherlands B.V. | External content library connector systems and methods |
US11308528B2 (en) | 2012-09-14 | 2022-04-19 | Sdl Netherlands B.V. | Blueprinting of multimedia assets |
US10452740B2 (en) * | 2012-09-14 | 2019-10-22 | Sdl Netherlands B.V. | External content libraries |
US10701149B2 (en) | 2012-12-13 | 2020-06-30 | Level 3 Communications, Llc | Content delivery framework having origin services |
US10652087B2 (en) | 2012-12-13 | 2020-05-12 | Level 3 Communications, Llc | Content delivery framework having fill services |
US10701148B2 (en) | 2012-12-13 | 2020-06-30 | Level 3 Communications, Llc | Content delivery framework having storage services |
US9634918B2 (en) | 2012-12-13 | 2017-04-25 | Level 3 Communications, Llc | Invalidation sequencing in a content delivery framework |
US10791050B2 (en) | 2012-12-13 | 2020-09-29 | Level 3 Communications, Llc | Geographic location determination in a content delivery framework |
US9628346B2 (en) | 2012-12-13 | 2017-04-18 | Level 3 Communications, Llc | Devices and methods supporting content delivery with reducer services |
US20140337472A1 (en) | 2012-12-13 | 2014-11-13 | Level 3 Communications, Llc | Beacon Services in a Content Delivery Framework |
US10331765B2 (en) | 2013-05-24 | 2019-06-25 | Sourcecode Technology Holdings, Inc. | Methods and apparatus for translating forms to native mobile applications |
US10614167B2 (en) | 2015-10-30 | 2020-04-07 | Sdl Plc | Translation review workflow systems and methods |
CN106326425B (zh) * | 2016-08-24 | 2019-11-05 | 明算科技(北京)股份有限公司 | 数据分类处理方法和装置 |
US10339102B2 (en) * | 2016-09-30 | 2019-07-02 | Vmware, Inc. | Automating script creation for a log file |
US11144568B2 (en) * | 2019-04-24 | 2021-10-12 | EMC IP Holding Company LLC | System and method for management of data in distributed systems |
CN113204598B (zh) * | 2021-05-28 | 2023-05-09 | 平安科技(深圳)有限公司 | 一种数据同步方法、***及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5619690A (en) * | 1993-06-21 | 1997-04-08 | Hitachi, Ltd. | Computer system including a computer which requests an access to a logical address in a secondary storage system with specification of a local address in the secondary storage system |
JP4381496B2 (ja) * | 1998-12-01 | 2009-12-09 | 株式会社日立製作所 | データベース処理方法及びその実施装置並びにその処理プログラムを記録した媒体 |
JP2000148552A (ja) * | 1998-11-09 | 2000-05-30 | Hitachi Ltd | データベース−ファイル連携方法及びその実施システム並びにその処理プログラムを記録した媒体 |
JP2000181777A (ja) | 1998-12-16 | 2000-06-30 | Hitachi Ltd | データベース−ファイル連携方法及び装置 |
US6564215B1 (en) * | 1999-12-16 | 2003-05-13 | International Business Machines Corporation | Update support in database content management |
US6850938B1 (en) * | 2001-02-08 | 2005-02-01 | Cisco Technology, Inc. | Method and apparatus providing optimistic locking of shared computer resources |
-
2000
- 2000-03-30 JP JP2000095934A patent/JP3992263B2/ja not_active Expired - Fee Related
-
2001
- 2001-03-29 US US09/819,708 patent/US20010029507A1/en not_active Abandoned
-
2004
- 2004-05-18 US US10/847,333 patent/US7260578B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20010029507A1 (en) | 2001-10-11 |
US20040199540A1 (en) | 2004-10-07 |
JP2001282593A (ja) | 2001-10-12 |
US7260578B2 (en) | 2007-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3992263B2 (ja) | データベース−ファイル連携方法 | |
US11068447B2 (en) | Directory level atomic commit protocol | |
US6029160A (en) | Method and means for linking a database system with a system for filing data | |
US6061678A (en) | Approach for managing access to large objects in database systems using large object indexes | |
US6738790B1 (en) | Approach for accessing large objects | |
US7831643B1 (en) | System, method and computer program product for multi-level file-sharing by concurrent users | |
US6393435B1 (en) | Method and means for evaluating the performance of a database system referencing files external to the database system | |
US5553279A (en) | Lossless distribution of time series data in a relational data base network | |
US5999943A (en) | Lob locators | |
JP2002503000A (ja) | ウェブサイトを開発するためのシステムと方法 | |
KR20080106431A (ko) | 기업 자원 계획 시스템 내에서의 동시성 제어 방법, 컴퓨터판독가능 매체 및 컴퓨터 | |
JPH07175704A (ja) | ファイル装置およびデータオブジェクトアクセス方法 | |
JP2002519765A (ja) | トランザクションデータの高速記憶常駐処理方法および処理システム | |
JP2009522677A (ja) | ノードの番号付けによるファイル・システムのダンプ/復元のための方法、システム、およびデバイス | |
JP4497691B2 (ja) | データベース管理方法及び管理システム | |
US6735598B1 (en) | Method and apparatus for integrating data from external sources into a database system | |
US7194486B2 (en) | Method and system for data processing with data replication for the same | |
CN114741453A (zh) | 数据同步的方法、***及计算机可读存储介质 | |
JP3763982B2 (ja) | データベース処理方法及びその実施装置並びにその処理プログラムを記録した媒体 | |
US8903846B2 (en) | Method and apparatus for integrating data from external sources into a database system | |
JP3777666B2 (ja) | データベース処理方法およびシステム | |
JP3484440B2 (ja) | 分散型データベース更新方法 | |
JP2000155706A (ja) | オブジェクト指向とリレーショナル・データベースのマッピング方法、装置及びその記録媒体 | |
JP2000148552A (ja) | データベース−ファイル連携方法及びその実施システム並びにその処理プログラムを記録した媒体 | |
JP2000181777A (ja) | データベース−ファイル連携方法及び装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070119 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070320 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070423 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070622 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070723 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070723 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100803 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110803 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120803 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130803 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |