JP5166439B2 - データベースに対するアクセスを制御する技術 - Google Patents

データベースに対するアクセスを制御する技術 Download PDF

Info

Publication number
JP5166439B2
JP5166439B2 JP2009542569A JP2009542569A JP5166439B2 JP 5166439 B2 JP5166439 B2 JP 5166439B2 JP 2009542569 A JP2009542569 A JP 2009542569A JP 2009542569 A JP2009542569 A JP 2009542569A JP 5166439 B2 JP5166439 B2 JP 5166439B2
Authority
JP
Japan
Prior art keywords
data
storage device
access
migration
unit
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
Application number
JP2009542569A
Other languages
English (en)
Other versions
JPWO2009066691A1 (ja
Inventor
昌弘 大川
創 貝嶋
明 坂口
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2009542569A priority Critical patent/JP5166439B2/ja
Publication of JPWO2009066691A1 publication Critical patent/JPWO2009066691A1/ja
Application granted granted Critical
Publication of JP5166439B2 publication Critical patent/JP5166439B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Description

本発明は、データベースに対するアクセスを制御する技術に関する。特に、本発明は、複数の記憶装置に渡って記憶されたデータベースに対するアクセスを制御する技術に関する。
多数のデータを含むデータベースを、高速処理の記憶媒体と低速処理の記憶媒体とに区分けして記憶する方法が提案されている(特許文献1を参照。)。この方法においては、検索頻度の高いデータを高速処理の記憶媒体に、検索頻度の低いデータを低速処理の記憶媒体にそれぞれ記憶することで、データベースに対する効率的なアクセスを実現できる。
特開2000−112983号公報
しかしながら、特許文献1の技術において、低速処理の記憶媒体(例えば磁気テープ)にアクセスするためには、その記憶媒体内のデータを高速処理の記憶媒体(例えばハードディスク装置)に復元している(特許文献1の図5のS4および段落0010を参照)。このため、データの検索指令を発行してからデータが参照可能となるまでに待ち時間が生じてしまう。
また、近年、企業の法令遵守を支援する観点から、データを変更不可能な状態で長期間保存する必要が生じる場合がある。この場合には、使用者は、ハードディスク装置などに記憶されたデータの一部を選択して、いわゆるWORM(Write Once Read Many)メディアなどに移行する。また、ハードディスク装置の空き容量が少なくなった場合にも、それに記憶された一部のデータをWORMメディアに移行してよい。
このようなWORMメディアもデータベースの一部として参照することができれば、ハードディスク装置はその移行したデータを記憶し続けている必要がなく、ハードディスク装置などの必要容量を削減できて効率がよい。しかしながら、非特許文献1には、ハードディスク装置から必要なデータをWORMメディアに移行すること、および、移行したデータにどのようにアクセスするべきか、については記載されていない。
そこで本発明は、上記の課題を解決することのできるシステム、方法およびプログラムを提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
上記課題を解決するために、本発明の第1の形態においては、データベースに対するアクセスを制御するシステムであって、第1の記憶装置に記憶されたデータベースのうち、使用者が入力した移行条件を満たすデータを、第2の記憶装置に移行するデータ移行部と、前記データベースに対するアクセスコマンドの入力を受け付けるコマンド入力部と、入力された前記アクセスコマンドによりアクセスされるべきデータが、既に前記第2の記憶装置に移行されたか否かを、入力された前記アクセスコマンドおよび入力された前記移行条件に基づいて判断する移行判断部と、前記移行判断部による判断に基づいて、前記データベースに含まれるデータまたは前記第2の記憶装置に移行されたデータを前記アクセスコマンドに従ってアクセスするアクセス部とを備えるシステムを提供する。また、当該システムによりデータベースに対するアクセスを制御する方法、および、当該システムとしてコンピュータを機能させるプログラムを提供する。
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、本実施形態に係る制御システム10の機能構成を示す。制御システム10は、例えばハードディスクドライブなどによって実現される第1の記憶装置150と、例えばテープ記憶装置または光磁気ディスクドライブなどによって実現される第2の記憶装置160とを備える。これに代えて、第2の記憶装置160は、例えばIBMコーポレーションのDR550などの、データを長期保存するための専用の装置であってよい。
そして、制御システム10は、使用者から受け付けたデータの移行指示に従って第1の記憶装置150に記憶されたデータベースの一部を第2の記憶装置160に移行する。本実施形態に係る制御システム10は、そのようなデータの移行の後であっても、使用者から受け付けたアクセスコマンドに従って第1の記憶装置150および/または第2の記憶装置160に適切にアクセスすることを目的とする。
制御システム10は、RAMなどの主記憶装置により実現される制御用記憶装置110およびコマンドキャッシュ125を備える。また、制御システム10は、CPUまたはマイクロコンピュータなどの演算装置がRAMなどの主記憶装置からプログラムを読み出して実行することで、データ移行部100と、コマンド入力部120と、移行判断部130と、アクセス部140と、設定部170として機能する。このプログラムは、IBMコーポレーションのDB2サーバに備わる機能を拡張して開発されてよい。また、このプログラムの第2制御部145は、IBMコーポレーションのFederation Serverのnon−relational wrapper SDKを使用して開発されてよい。
データ移行部100は、第1の記憶装置150に記憶されたデータベースのうち、使用者が入力した移行条件を満たすデータを、第2の記憶装置160に移行する。具体的には、第1の記憶装置150は、例えばテーブル構造のデータベースを記憶している。このテーブルのことを第1のテーブルと呼ぶ。そして、データ移行部100は、移行条件として、第1のテーブル中のカラム名、および、そのカラムが採り得る値の範囲の入力を受け付ける。すると、データ移行部100は、そのカラムがその範囲の値となるレコードを、第1のテーブルから読み出す。
そして、データ移行部100は、読み出したそのレコードを含む新たな第2のテーブルを生成して第2の記憶装置160に格納する。第2の記憶装置160は、例えば光磁気ディスクであるWORMメディア165に、新たな第2テーブルを格納する。第2テーブルは、WORMメディア165内の複数のファイル162−1〜Nに分散して記憶されてよい。これと共に、データ移行部100は、読み出したそれらのレコードを第1のテーブルから削除する。また、データ移行部100は、データを移行するために入力された移行条件を制御用記憶装置110に格納する。
制御用記憶装置110は、上記移行条件など、各種の制御用のデータを記憶するために設けられている。記憶する移行条件は、例えば、上記の例のように、条件設定の対象となるカラムのカラム名、および、そのカラム内のデータが満たすべき値の範囲の組である。また、移行条件は、複数のカラムおよびそれぞれのカラム内のデータが満たすべき値の範囲の組合せであってもよい。
コマンド入力部120は、データベースに対するアクセスコマンドの入力を受け付ける。例えば、アクセスコマンドは、アクセスの種類、アクセス対象とするテーブルの指定、および、アクセス対象とするレコードが満たすべき条件などを含む。アクセスの種類は、参照、更新または挿入などである。一例として、このアクセスコマンドは、例えばSQL(Structured Query Language)などの言語で記述されていてよい。
移行判断部130は、入力されたそのアクセスコマンドによりアクセスされるべきデータが、既に第2の記憶装置160に移行されたか否かを、入力されたそのアクセスコマンドおよび入力されたその移行条件に基づいて判断する。具体的には、まず、移行判断部130は、アクセスコマンドの入力に応じて移行条件をコマンド入力部120から読み出す。そして、移行判断部130は、そのアクセスコマンドに基づいて、そのアクセスコマンドによりアクセスされるべきデータが、移行条件を満たすかどうかを判断する。
アクセスされるべきデータが移行条件を満たすことを条件に、移行判断部130は、そのデータが第2の記憶装置160に既に移行されたと判断する。具体例として、移行条件が、あるカラムの数値が定数10000以上であるという条件の場合、そのアクセスコマンドに含まれる条件が、そのカラムの数値が定数20000以上という条件であれば、アクセスされるべきデータは移行されていると判断される。
一方、移行条件が、あるカラムの数値が定数10000以上であるという条件の場合、そのアクセスコマンドに含まれる条件が、そのカラムの数値が定数9000以下という条件であれば、アクセスされるべきデータは移行されていないと判断される。さらに、移行条件が、あるカラムの数値が定数10000以上であるという条件の場合、そのアクセスコマンドに含まれる条件が、そのカラムの数値が定数5000以上という条件であれば、アクセスされるべきデータは一部移行されていると判断される。このように、移行判断部130は、単にデータが移行されているか否かのみならず、一部のデータが移行されているかどうかについても判断してよい。
アクセス部140は、移行判断部130による判断に基づいて、第1の記憶装置150に記憶されたデータおよび第2の記憶装置160に移行されたデータの少なくとも一方を、アクセスコマンドに従ってアクセスする。具体的には、アクセス部140は、入力されたそのアクセスコマンドを書き換えることで、第1の記憶装置150または第2の記憶装置160にアクセスしてもよい。一例として、アクセスされるべきデータが第2の記憶装置160に既に移行されている場合において、アクセス部140は、アクセスコマンドの中のアクセス対象とするテーブルの指定を、第1の記憶装置150内の第1のテーブルから、第2の記憶装置160内の第2のテーブルに書き換えてよい。
他の例として、アクセスされるべきデータが第1の記憶装置150および第2の記憶装置160の双方に渡る場合に、アクセス部140は、アクセスコマンド中のアクセス対象とするテーブルの指定を、第1のテーブルから、第1のテーブルおよび第1のテーブルを結合したテーブルに書き換えてよい。アクセスコマンドがSQLの場合において、そのようなテーブルの結合は「UNION ALL」コマンドによって表される。これにより、第1の記憶装置150内のデータベースおよび既に移行されたデータのそれぞれに対し適切にアクセスすることができる。
なお、アクセス部140は、基本的機能としてSQLなどで記述されたアクセスコマンドを、コンパイルして、第1の記憶装置150または第2の記憶装置160により直接解釈可能なコマンドに変換したうえで、そのコンパイル済みコマンドを第1の記憶装置150および第2の記憶装置160に対し発行する。コマンドキャッシュ125は、そのようなコンパイル処理を効率化するために、過去の入力されたアクセスコマンドと、当該アクセスコマンドをアクセス部140がコンパイルしてデータベースに対し発行したコマンドであるコンパイル済みコマンドとを、対応付けて記憶している。
ここで、コンパイル済コマンドは、いわゆるアクセスプランと呼ばれるものであり、どのような処理をどのような順序で行うか、のみならず、どの記憶装置からどの情報を取得するべきかを示してよい。その例を以下に示す。
ステップ1:カラムAの値が5000から10000までのデータを第1の記憶装置150から取得する
ステップ2:カラムAの値が10000以上のデータを第2の記憶装置160から取得する
ステップ3:…(以降同様に処理が続く)
そして、アクセス部140は、コマンド入力部120が新たに入力されたアクセスコマンドが、既にコマンドキャッシュ125に記憶されている場合には、そのアクセスコマンドに対応してコマンドキャッシュ125に記憶されているコンパイル済コマンドを読み出す。その場合、アクセス部140は、そのアクセスコマンドを再度コンパイルすることなく、読み出したそのコンパイル済みコマンドが示す複数の処理を順次実行する。この結果、必要に応じて第1の記憶装置150および第2の記憶装置160がアクセスされる。これにより、既にキャッシュされている一部のコマンドについてはコンパイル処理が不要になるので、コマンド発行からアクセス完了までの待ち時間を短縮できる。
但し、データ移行部100がデータを新たに移行した場合においては、移行前後でコマンド入力部120がたとえ同じアクセスコマンドの入力を受け付けたとしても、アクセス部140が実際に発行するコンパイル済みコマンドは異なる場合がある。このため、データ移行部100は、データを移行する毎にコマンドキャッシュ125をクリアする。クリアする部分は、新たに入力した移行条件に関する部分のみであることが望ましい。
設定部170は、第2の記憶装置160に既に移行したデータに対するアクセスを許可するかどうかを、使用者ごとに設定する。例えば、ある使用者1について、移行したデータに対するアクセスを許可しない場合においては、その使用者1から、移行したデータに対するアクセスコマンドが発行されても、アクセス部140は、エラーを返答する。また、その使用者1から、第2のテーブルをアクセス対象として明示したアクセスコマンドが入力されても、アクセス部140は、エラーを返答する。
これに代えて、移行したデータに対するアクセスを許可しない場合において、その使用者1から、移行したデータに対するアクセスコマンドが発行されると、アクセス部140は、その移行されたデータを無視してアクセス可能なデータのみにアクセスしてもよい。例えば、テーブルT1からテーブルT2に一部のデータが移行された場合において、「SELECT * FROM T1」というコマンドが発行されると、テーブルT2に移行されたデータは無視されて、テーブルT1に移行されたデータのみがアクセスされてよい。
第1の記憶装置150および第2の記憶装置160に対するアクセスは、アクセスコマンドの書き換えのみではなく、アクセス部140が備えるチェック制約という機能と共に実現されてもよい。具体的には、アクセス部140は、第1制御部142および第2制御部145を有する。
第1制御部142は、第1の記憶装置150に対応して設けられている。第1制御部142は、入力されたアクセスコマンドによりアクセスされるべきデータが、予め設定された第1チェック制約を満たすか否かを判断して、当該チェック制約を満たすことを条件に、第1のテーブルへのアクセスを許可し、当該チェック制約を満たさないことを条件に、第1のテーブルへのアクセスを禁止する。
第2制御部145は、第2の記憶装置160に対応して設けられている。第2制御部145は、入力されたアクセスコマンドによりアクセスされるべきデータが、予め設定された第2チェック制約を満たすか否かを判断して、当該チェック制約を満たすことを条件に、第2のテーブルへのアクセスを許可し、当該チェック制約を満たさないことを条件に、第2のテーブルへのアクセスを禁止する。
即ち、アクセスコマンドに含まれるアクセス条件が、第1および第2チェック制約のそれぞれと順次比較されて、その何れかが満たされれば、満たされたチェック制約に対応する記憶装置が自動的に選択されてそれに対するアクセスが成功する。例えば、第1のチェック制約が「カラムC1<1000」であり、かつ、第2のチェック制約が「カラムC1>=1000」であり、入力されたSQLのSELECTコマンドなどにおけるアクセス条件部分が「C1<2000」であれば、第1の記憶装置150から該当する全てのデータが取得され、かつ、第2の記憶装置160からカラムC1が2000未満のデータが取得される。一方、情報を参照するコマンドにおけるアクセス条件部分が「カラムC1<500」なら、第1の記憶装置150のうちカラムC1<500のデータが取得され、第2の記憶装置160からデ
ータは取得されない。
なお、何れのチェック制約も満たされなければ、アクセスに失敗した旨のエラーが返答される。例えば、入力されたコマンドが情報の参照を示し(SQLのSELECT文)、該当するデ
ータがない場合、レコードなしで正常に終了する。入力されたコマンドが情報の挿入である場合には、どちらか1つのみ該当しないとエラーとなる。また、更新・削除は該当するデータがない場合、エラーとなる。エラーの発生のためのこれらの条件は、既存のデータベースの仕様に依存して定められてよい。
アクセス部140は、これらのチェック制約を利用して第1の記憶装置150および第2の記憶装置160のそれぞれにおいて適切なデータにアクセスする。具体的には、データ移行時において、データ移行部100は、入力された移行条件を第2チェック制約として第2制御部145の第2チェック制約記憶部148に設定する。そして、データ移行部100は、入力された移行条件の論理否定を第1チェック制約として第1制御部142の第1チェック制約記憶部146に設定する。また、上述のように、アクセス部140は、入力されたアクセスコマンド中のアクセス対象とするテーブルの指定を、第1のテーブルに代えて、第1のテーブルおよび第2のテーブルを結合したテーブルに書き換える。すると、以降に入力されるアクセスコマンドについては、それに含まれるアクセス条件に従って、第1の記憶装置150および第2の記憶装置160の何れかあるいは双方がアクセス対象として適切に選択される。
図2は、本実施形態に係る制御システム10がデータベースからデータを移行し、そして、移行したデータにアクセスする処理の流れを示す。まず、データ移行部100は、第1の記憶装置150に記憶されたデータベースの一部を第2の記憶装置160に移行させる指示を受信したかどうかを判断する(S200)。移行させる指示とは、例えば、移行元となるデータベースのテーブル(本実施形態においてはT1)、移行条件(例えばカラムとそのカラムの数値の範囲)、および、移行先のデータを読み出し専用にするかどうかの設定、を含む。
移行させる指示を受信したことに応じて(S200:YES)、データ移行部100は、移行元のテーブルにとってその移行指示が新規なものか、即ち、過去にその移行元のテーブルから何れのデータもまだ移行されていないかを判断する(S210)。その移行指示が新規であれば(S210:YES)、データ移行部100は、第1の記憶装置150に記憶されたデータベースのうち、使用者が入力した移行条件を満たすデータを、第2の記憶装置160に移行する(S220)。この処理の具体例を、図3−8を参照して説明する。
図3は、図2のS220における処理の流れの詳細を示す。図4は、本実施形態に係る第1の記憶装置150に記憶されたデータベースの一例を示す。図3の処理開始時点において、図4に示すように、第1の記憶装置150は、例えばリレーショナルデータベースなどの、テーブル構造のデータベースを記憶している。
第1の記憶装置150は、テーブルT1を記憶している。テーブルT1は、カラムC1およびカラムC2を含む。カラムC1のデータ型はDate(日付)型であり、カラムC2のデータ型は文字列(Char)型である。
この図4にはテーブルT1のうちの3つのレコードを示す。第1のレコードは、カラムC1に「1999−06−15」を含み、カラムC2に「AAA1」を含む。第2のレコードは、カラムC1に「2000−08−22」を含み、カラムC2に「AAA2」を含む。第3のレコードは、カラムC1に「2002−12−01」を含み、カラムC2に「AAA3」を含む。
図3の説明に戻る。まず、データ移行部100は、第2の記憶装置160に移行したデータのデータ構造を規定するための第2のテーブルを生成する(S300)。このテーブルのことを仮想テーブルと呼ぶ。この仮想テーブルの一例を図5に示す。
図5は、本実施形態に係る第2の記憶装置160に対応付けて生成した仮想テーブルの一例を示す。この仮想テーブルの名前はT1_WORMである。この仮想テーブルは、テーブルT1と全く同じように、カラムC1およびカラムC2を含む。カラムC1のデータ型はDate(日付)型であり、カラムC2のデータ型は文字列(Char)型である。但し、テーブルT1_WORMは何らレコードを含まない。
例えば、IBMコーポレーションのFederation Serverの機能を用いて、第2の記憶装置160(ここでは例えばIBMコーポレーションの製品DR550)にアクセスするためのwrapperを開発すると、IBMコーポレーションのDB2サーバに対し以下のようなコマンドを順次発行することで、t1_wormという仮想テーブルが生成される。このテーブルを用いてDR550にアクセスすることができる。
create wrapper worm_wrapper library 'db2
qgjava.dll' options(unfenced_wrapper_cla
ss 'UnfencedTapeWrapper');
create server worm_server wrapper worm_wrapper options (target 'DR550');
create nickname user1.t1_worm for server worm_server options (base_schema 'USER1', base_table 'T1', num_worm_file_records '100', cache_dir '/var/cache/db1/t1_worm', cache_size '1G');
図3の説明に戻る。次に、データ移行部100は、入力を受けたデータ移行指示に基づいて、各種の情報を登録する(S310)。例えば、データ移行部100は、入力された移行条件を第2チェック制約として第2制御部145に設定する。また、データ移行部100は、その移行条件を制御用記憶装置110に格納すると共に、移行元であるテーブルT1および移行先であるテーブルT1_WORMを対応付けた対応情報を制御用記憶装置110に格納する。さらに、データ移行部100は、移行先のデータに読み出し専用の属性を設定する指示を受けた場合には、テーブルT1_WORMに読み出し専用の属性を設定してよい。その一例を図6に示す。
図6は、本実施形態に係る制御用記憶装置110に記憶された、データ移行後における移行条件および対応情報を示す。制御用記憶装置110は、移行条件として「C1<=1999−12−31」を記憶している。また、制御用記憶装置110は、対応情報としてベーステーブルと移行先テーブルとを対応付けて記憶している。ベーステーブルは、USER.T1であり、移行先テーブルは、USER.T1_WORMである。これにより、アクセス部140は、テーブルT1に対するアクセスコマンドを、テーブルT1およびテーブルT1_WORMに対するアクセスコマンドとみなすことができる。さらに、制御用記憶装置110は、読み出し専用属性およびアタッチ有効属性を記憶している。読み出し専用属性は、移行先テーブルのアクセス制限を示す。アタッチ有効属性は、上記対応情報による対応付けが有効かどうかを示す。
以上の処理を、例えばIBMコーポレーションのDB2サーバ用のコマンドを拡張して実現すると、例えば以下のようになる。
まず、データ移行先仮想テーブルの作成については、既に例示したとおりである。
データ移行条件の登録(T1_WORMに対し図6に示す各種情報を定義する)
alter nickname user1.t1_worm add attach info (base_schema 'USER1', base_table '
T1', range_key 'C1', ending '1999−12−31',
readonly 'Y');
T1_WORMテーブルのチェック制約を登録する(上記で登録した移行条件を、チェック制約として登録する)
alter nickname user1.t1_worm add constraint c1 check (c1<='1999−12−31') not enforced;
T1テーブルをロックする
lock table user1.t1 in execlusive mode;
T1テーブルの移行対象データをT1_WORMテーブルに移行する(図6の情報を用いてデー
タを移行する)
archive table user1.t1;
T1テーブルのチェック制約を登録する(図6の移行条件と逆の条件をT1テーブルのチェック制約として登録する)
alter table user1.t1 add constraint c1 check (c1>'1999−12−31');
T1テーブルにT1_WORMテーブルをアタッチする(図6のアタッチ有効属性を、「無効」
から「有効」に変更する)
alter table user1.t1 attach table user1.t1_worm;
T1テーブルとT1_WORMテーブルに関連するSQL文のキャッシュをクリアする
flush statement cache for table user1.t1;
flush statement cache for table user1.t1_worm;
上記設定情報の確定、および、T1テーブルのロック解除を行う
commit; なお、以上の各機能は以上のように複数のコマンドによって実現されてもよいし、これらの機能をまとめて実現するための単一のコマンドによって実現されてもよい。
なお、データ移行部100は、移行したデータを第2の記憶装置160において複数のファイルに分割して保存してよい。これら複数のファイルのそれぞれには、複数の部分データのそれぞれが格納されている。そしてこれら複数の部分データは、それぞれ異なる条件を満たす。例えば、あるファイルには、カラムC1が1998−01−01から1998−12−31までの範囲にあるレコードが格納され、他のファイルには、カラムC1が1997−01−01から1997−12−31までの範囲にあるレコードが格納されてよい。この場合には、データ移行部100は、このような各部分データが満たすべき条件を制御用記憶装置110に記憶してよい。
図3の説明に戻る。次に、データ移行部100は、排他制御により移行元のデータベースをロックしてアクセスを禁止する(S320)。そして、データ移行部100は、第1の記憶装置150に記憶されたデータベースのうち移行条件を満たすデータを第2の記憶装置160に移行する(S330)。移行されたデータは、必要に応じて暗号化され、または、データ圧縮されてよい。また、データ移行部100は、入力された移行条件の論理否定を第1チェック制約として第1制御部142に設定する(S340)。
データ移行部100は、次に、移行元のテーブルを移行先のテーブルにアタッチする(S350)。アタッチとは、対応付けを示す対応情報を有効に設定することをいい、具体的には上記図6のアタッチ有効属性を有効に設定することである。これと共に、データ移行部100は、コマンドキャッシュ125をクリアする(S360)。そして、データ移行部100は、データベースをアンロックしてアクセスを許可する(S370)。
以上の処理によりデータが第1の記憶装置150から第2の記憶装置160に移行した後の第1の記憶装置150および第2の記憶装置160の例を図7および図8に示す。
図7は、本実施形態に係る第1の記憶装置150に記憶された、データ移行後におけるデータベースの一例を示す。第1の記憶装置150は、C1の数値が1999−12−31よりも新しい日付を表すレコードを記憶し、当該数値が1999−12−31以前の日付を表すレコードは第1の記憶装置150から削除されている。また、第1チェック制約記憶部146は、移行条件の論理否定である「C1>1999−12−31」を第1チェック制約として記憶している。
図8は、本実施形態に係る第2の記憶装置160に記憶された、データ移行後における仮想テーブルの一例を示す。第2の記憶装置160は、C1の数値が1999−12−31以前の日付を表すレコードを記憶し、当該数値が1999−12−31よりも新しい日付を表すレコードは第2の記憶装置160に移行されていない。また、第2チェック制約記憶部148は、移行条件である「C1<=1999−12−31」を第2チェック制約として記憶している。
図2の説明に戻る。一方、移行指示を受信していない場合には、コマンド入力部120は、データベースに対するアクセスコマンドの入力を受け付けたかどうかを判断する(S260)。アクセスコマンドの入力を受け付けたことに応じて(S260:YES)、アクセス部140は、第1の記憶装置150および第2の記憶装置160の少なくとも1つに対しアクセスする(S280)。その処理の詳細を図9に示す。
図9は、図2のS280における処理の流れの詳細を示す。まず、アクセス部140は、アクセスコマンドを発行したユーザに対し、移行先のデータに対するアクセスが許可されているかどうかを判断する(S900)。この許可は、たとえば上述の設定部170により設定されたものである。
移行先のデータへのアクセスが許可されていない場合に(S900:NO)、アクセス部140は、そのデータへの参照をエラーとするように設定されているか、または、そのデータへの参照は無視するように設定されているかを判断する(S930)。
無視するような設定がされている場合には(S930:無視する)、アクセス部140は、入力されたアクセスコマンドをそのまま発行する(S935)。この結果、もしアクセスの対象が移行先のデータであれば、そのアクセスは無視されて、移行元のデータのみがアクセスされる。
一方、移行先のデータへのアクセスをエラーとする設定がされている場合に(S930:エラーとする)、アクセス部140は、コマンド入力部120が入力したアクセスコマンドを書き換えて実行する(S940)。その書き換えの一例については、図10を参照して後に説明する。
次に、移行判断部130は、そのアクセスコマンドに従ってアクセスされるべきデータの少なくとも一部が、既に第2の記憶装置160に移行されたか否かを、入力されたそのアクセスコマンドおよび入力されたその移行条件に基づいて判断する(S950)。既に第2の記憶装置160に移行されたことを条件に(S950:YES)、アクセス部140は、アクセスコマンドを入力したユーザに対しエラーを通知する(S960)。
また、移行先のデータへのアクセスが許可されている場合においては(S900:YES)、アクセス部140は、入力されたアクセスコマンドを書き換えて実行する(S910)。その場合においては、アクセス部140は、さらに、第2の記憶装置160に移行されたデータに読み出し専用の属性が設定されており、かつ、そのデータに対するアクセスがそのデータを更新する要求であるかを判断する(S920)。そのような場合には(S920:YES)、アクセス部140は、S960に処理を移してエラーを通知する。
図10は、本実施形態に係るアクセス部140により書き換えられるアクセスコマンドの一例を示す。図10(a)に、書き換える前のアクセスコマンドを示す。このアクセスコマンドは、カラムC1の値が「1900−01−01」よりも大きい(即ち日付が新しい)レコードをテーブルT1から選択するコマンドを示す。このアクセスコマンドの書き換えの例を、以下に説明する。
チェック制約が設定されている場合において、それぞれのテーブルから読み出すべきレコードが満たす条件はチェック制約により判断される。従って、アクセス部140は、アクセスコマンド内に指定されたアクセス対象となるテーブルを書き換えれば充分であり、アクセスコマンド内で指定されるアクセス条件を書き換える必要はない。
例えば図10(b)に示すように、アクセス部140は、アクセス対象となるテーブルの指定を「T1」から、「SELECT * FROM USER1.T1 UNION ALL SELECT * FROM USER1.T1_WORM」に書き換える。この結果、第1の記憶装置150および第2の記憶装置160のそれぞれをアクセス対象とすることができる。
以上、アクセス部140によれば、入力されたアクセスコマンドにより指定されるデータのうち、データ移行時に入力された移行条件を満たさないレコードを第1のテーブルから読み出し、当該移行条件を満たすレコードを第2のテーブルから読み出すことができる。
なお、以上の例に加えて、第2の記憶装置160に対する設定によりレコード更新またはレコード挿入の操作が許可されている場合においては、アクセス部140は、SELECTコマンドのみならず、INSERTコマンドまたはUPDATEコマンドで書き換えてもよい。但し、入力されるコマンドがUPDATEコマンドの場合において、データの移行条件として設定されているカラムの内容を変更する場合においては、単に上記の書換を行うのでは不充分である。その具体例を図10(c)、図10(d)および図10(e)に示す。
図10(c)に、書き換える前のUPDATEコマンドを示す。このアクセスコマンドは、テーブルT1のうち、カラムC2の値が「100」であるレコードのカラムC1に「2000−10−10」を設定するコマンドを示す。カラムC1が2000-10-10のレコードは、テーブルT1に属す必要があるため、T1_WORMに該当するレコードがある場合、それらをT1に移動する必要がある。従って、アクセス部140は、このコマンドを、図10(d)
−(f)に示す3つのコマンドに書き換える。この結果、図10(d)に示すように、書き換えられたコマンドは、まず、テーブルUSER1.T1のうち、カラムC2の値が「100」であるレコードのカラムC1に「2000−10−10」を設定する。
そして、T1_WORMの該当するデータをUPDATEして、USER1.T1テーブルに移動する必要があるため、図10(e)に示すコマンドの実行が必要である。この結果、USER1.T1_WORMのうち該当するレコードが取得されて、そのレコードのカラムC1に「2000−10−10」がセットされ、そのレコードがテーブルUSER1.T1に挿入される。但し、ここではテーブルT1のレコードがカラムC1、C2およびC3のみを含むと仮定した。さらに、図10(f)に示すように、テーブルUSER1.T1_WORMから不要なデータが削除される。
以上、図9および図10に示すように、入力されたアクセスコマンドが、データ移行前のデータベースに対するものであっても、データ以降後のデータを含むデータベースに適切にアクセスできる。なお、アクセスの結果読み出されたデータは、その後同一のレコードに対するアクセスのために、RAMなどの記憶装置内に設けた記憶域にキャッシュされてもよい。
図2の説明に戻る。コマンド入力部120が入力したコマンドがアクセスコマンドで無い場合に(S260:NO)、制御システム10は、そのコマンドに従う従来の処理を行う(S270)。一方で、受信した移行指示が新規の移行指示ではない場合に(S210:NO)、制御システム10は、移行指示が、新たにテーブルを生成してそのテーブルにデータを移行する指示か、あるいは、既にデータを移行した移行先のテーブルにデータを追加するかどうかを判断する(S230)。
移行先のテーブルにデータを追加することを条件に(S230:NO)、データ移行部100は、第1の記憶装置150からデータベースの一部を読み出して第2の記憶装置160に追加して移行する処理を行う(S240)。その処理の詳細を、図11を参照して説明する。
図11は、図2のS240における処理の流れの詳細を示す。データ移行部100は、まず、排他制御によりデータベースをロックしてアクセスを禁止する(S1100)。これは、例えば以下のコマンドにより実現される。
lock table user1.t1 in execlusive mode; 次に、データ移行部100は、データ移行元のテーブル(例えばT1)をデータ移行先のテーブル(例えばT1_WORM)からデタッチする(S1110)。これは、例えば、制御用記憶装置110に記憶されたアタッチ属性を無効に設定することにより実現される。そのコマンド例は以下の通りである。
alter table user1.t1 detach table user1.t1_worm;
次に、データ移行部100は、入力を受けたデータ移行指示に基づいて、各種の情報を登録する(S1120)。例えば、データ移行部100は、既に第2チェック制約として第2制御部145に設定されている条件と、追加して移行するべきとして入力された条件との論理和を、新たな第2チェック制約として第2制御部145に設定する。また、データ移行部100は、既に制御用記憶装置110に記憶された移行条件と新たな移行条件との論理和を生成して制御用記憶装置110に格納すると共に、移行元であるテーブルT1および移行先であるテーブルT1_WORMを対応付けた対応情報を制御用記憶装置110に格納するさらに、データ移行部100は、必要に応じて、移行先の仮想テーブルに読み出し専用属性を設定してよい。そのコマンド例は以下の通りである。
alter table user1.t1 drop check c1;
alter table user1.t1 add constraint c1 check (c1>'2000−12−31');
その結果として登録された情報の一例を図12に示す。
図12は、本実施形態に係る制御用記憶装置110に記憶された、データを追加して移行した後における移行条件および対応情報を示す。制御用記憶装置110は、移行条件として「C1<=2000−12−31」を記憶している。また、制御用記憶装置110は、対応情報としてベーステーブルと移行先テーブルとを対応付けて記憶している。ベーステーブルは、USER.T1であり、移行先テーブルは、USER.T1_WORMである。さらに、制御用記憶装置110は、読み出し専用属性およびアタッチ有効属性を記憶している。アクセス条件を除き図6に示した制御用記憶装置110の具体例と略同一であるから、説明を省略する。
図11の説明に戻る。次に、データ移行部100は、第1の記憶装置150に記憶されたデータベースのうち、追加して移行すべきとして入力された条件を満たすデータを読み出して、第2の記憶装置160にさらに移行する(S1130)。そのコマンド例は以下の通りである。
archive table user1.t1;
移行されたデータは、必要に応じて暗号化され、または、データ圧縮されてよい。また、データ移行部100は、既に第1チェック制約として第1制御部142に設定されている条件と、追加して移行するべきとして入力された条件の否定との論理和を、新たな第1チェック制約として設定する(S1140)。そのコマンド例は以下の通りである。
alter table user1.t1 drop check c1;
alter table user1.t1 add constraint c1 check (c1>'2000−12−31');
そして、データ移行部100は、移行元のテーブルを移行先のテーブルにアタッチする(S1150)。これは、具体的には上記制御用記憶装置のアタッチ有効属性を有効に設定することで実現されてよい。そのコマンド例は以下の通りである。
alter table user1.t1 attach table user1.t1_worm;
これと共に、データ移行部100は、コマンドキャッシュ125をクリアする(S1160)。そのコマンド例は以下の通りである。
flush statement cache for table user1.t1;
flush statement cache for table user1.t1_worm;
そして、データ移行部100は、データベースをアンロックしてアクセスを許可する(S1170)。そのコマンド例は以下の通りである。
commit;
以上の処理によりデータが追加して第1の記憶装置150から第2の記憶装置160に移行した後の第1の記憶装置150および第2の記憶装置160の例を図13および図14に示す。
図13は、本実施形態に係る第1の記憶装置150に記憶された、データを追加して移行した後におけるデータベースの一例を示す。第1の記憶装置150は、C1の数値が2000−12−31より新しい日付を表すレコードを記憶し、当該数値が2000−12−31以前の日付を表すレコードは第1の記憶装置150から削除されている。また、第1チェック制約記憶部146は、追加の移行条件の論理否定である「C1>2000−12−31」を第1チェック制約として記憶している。
図14は、本実施形態に係る第2の記憶装置160に記憶された、データを追加して移行した後における仮想テーブルの一例を示す。第2の記憶装置160は、C1の数値が2000−12−31以前の日付を表すレコードを記憶し、当該数値が2000−12−31よりも新しい日付を表すレコードは第2の記憶装置160に移行されていない。また、第2チェック制約記憶部148は、移行条件である「C1<=2000−12−31」を第2チェック制約として記憶している。
図2の説明に戻る。入力した移行指示が、新たにテーブルを生成してそのテーブルにデータを移行する指示であることを条件に(S230:YES)、データ移行部100は、例えば上記T1_WORMに加えて新たなテーブルを生成して、そのテーブルにテーブルT1からデータを移行する(S240)。新たなテーブルは、第3の記憶装置166内に生成されてもよい。その場合におけるアクセス部140のハードウェア構成の一例を図15に示す。
図15は、本実施形態に係るアクセス部140の他の例を示す。この例において、制御システム10は、図1に示す構成に加えて、さらに、第3の記憶装置166を備えてよい。第3の記憶装置166は、第2の記憶装置160とは性質の異なるものであることが望ましい。
例えば、第3の記憶装置166は、第2の記憶装置160と比較して高速に動作してよく、その場合、アクセスのレイテンシが小さくかつスループットが高い。一方で、第2の記憶装置160は第3の記憶装置166と比較して安価かつ大容量であってよい。このように、移行先の複数の記憶装置の性質が異なれば、利用者は移行しようとするデータの性質に応じて(例えば頻繁にアクセスされるか、あるいは、サイズが大きいかに応じて)移行するべき記憶装置を選択できる。
そしてこの例の場合、アクセス部140は、図1に示す構成に加えて、更に、第3制御部146を有してよい。第3制御部146は、第3の記憶装置166に対応するチェック制約を記憶するための第3チェック制約記憶部149を有してよい。制御システム10のその他の構成は、図1を参照して説明した制御システム10と略同一であるから説明を省略する。
図16は、本実施形態に係る制御システム10が新たに作成した他のテーブルにデータを追加して移行する処理の流れを示す。まず、データ移行部100は、第3の記憶装置166中に、新たな仮想テーブルT1_WORM2を生成する(S1600)。次に、データ移行部100は、入力された移行条件その他の各種情報を制御用記憶装置110に登録する(S1610)。この登録の処理は、例えば以下のコマンドにより実現される。
alter nickname user1.t1_worm2 add attach info (base_schema 'USER1', base_table '
T1', range_key 'C1', ending '1999−12−31',
readonly 'Y');
次に、データ移行部100は、新たな移行先テーブルであるT1_WORM2のチェック制約を第3チェック制約記憶部149に登録する(S1620)。この登録の処理は、例えば以下のコマンドにより実現される。
alter nickname user1.t1_worm2 add constraint c1 check (c1<='1999−12−31') not enforced;
そして、データ移行部100は、移行元テーブルT1をロックしてアクセスを禁止する(S1625)。このロックの処理は、例えば以下のコマンドにより実現される。
lock table user1.t1 in execlusive mode;
次に、データ移行部100は、移行先テーブルであるT1_WORMを移行元テーブルであるT1からデタッチする(S1630)。このデタッチの処理は、例えば以下のコマンドにより実現される。
alter table user1.t1 detach table user1.t1_worm;
そして、データ移行部100は、データ移行条件を変更する。この変更の処理は、例えば以下のコマンドにより実現される。
alter nickname user1.t1_worm alter attach info (starting '2000−01−01', ending '2
004−12−31');
その結果として登録される情報の一例を図17に示す。
図17は、本実施形態に係る制御用記憶装置110に記憶された、新たに作成した他のテーブルにデータを移行した後における移行条件および対応情報を示す。この例において、移行先テーブルT1_WORMおよびT1_WORM2のそれぞれに対応して移行条件が入力される。まず、T1_WORMに対応する移行条件は、カラムC1の数値が1999−12−31以前の日付である、という条件であり、移行指示は、その移行条件を満たすレコードをテーブルT1_WORM2に移行するという指示である。また、T1_WOMR2に対応する移行条件は、カラムC1の数値が2001−01−01以上でありかつ2004−12−31以下であるという条件であり、移行指示は、その移行条件を満たすレコードをテーブルT1_WORMに移行するという指示である。
制御用記憶装置110は、移行先テーブルであるテーブルUSER1.T1_WORMおよびUSER1.T1_WORM2のそれぞれについて、移行条件を記憶している。USER1.T1_WORMについて、制御用記憶装置110は、移行条件として「C1>=2000−01−01 AND C1<=2004−12−31」を記憶している。また、USER1.T1_WORM2について、制御用記憶装置110は、移行条件として「C1<=1999−12−31」を記憶している。
また、図6の例と同様に、制御用記憶装置110は、それぞれの移行先テーブルに対応付けて、読み出し専用属性およびアタッチ有効属性を記憶している。読み出し専用属性は、移行先テーブルのアクセス制限を示す。アタッチ有効属性は、上記対応情報による対応付けが有効かどうかを示す。
図16の説明に戻る。次に、データ移行部100は、移行先テーブルT1_WORMのチェック制約を変更する(S1650)。この変更の処理は、例えば以下のコマンドによって実現される。
alter nickname user1.t1_worm drop check
c1;
alter nickname user1.t1_worm add constraint c1 check (c1>='2000−01−01' and c1<='
2004−12−31') not enforced;
そして、データ移行部100は、移行を指示されたデータを、第1の記憶装置150から読み出して第3の記憶装置166に移行する(S1660)。この以降の処理は、例えば以下のコマンドにより実現される。
archive table user1.t1;
これにより、テーブルT1にもともと記憶されていたデータは、入力された移行条件に従って、テーブルT1、T1_WORMおよびT1_WORM2に分散して記憶される。
そして、データ移行部100は、テーブルT1のチェック制約を変更する(S1670)。この変更の処理は、例えば以下のコマンドにより実現される。
alter table user1.t1 drop check c1;
alter table user1.t1 add constraint c1 check (c1>'2004−12−31');
そして、データ移行部100は、テーブルT1にテーブルT1_WORMおよびテーブルT1_WORM2のそれぞれをアタッチする(S1680)。この処理は、例えば以下のコマンドにより実現される。
alter table user1.t1 attach table user1.t1_worm;
alter table user1.t1 attach table user1.t1_worm2;
そして、データ移行部100は、コマンドキャッシュ125をクリアする(S1690)。この処理は、例えば以下のコマンドにより実現される。
flush statement cache for table user1.t1;
そして、データ移行部100は、テーブルT1をアンロックしてテーブルT1へのアクセスを許可する(S1695)。この処理は、例えば以下のコマンドにより実現される。 commit;
図18は、本実施形態に係る第1の記憶装置150に記憶された、新たに作成した他のテーブルにデータを移行した後におけるデータベースの一例を示す。第1の記憶装置150は、C1の数値が2005−01−01よりも以降の日付を表すレコードを記憶し、当該数値が2004−12−31以前の日付を表すレコードは第1の記憶装置150から削除されている。また、第1チェック制約記憶部146は、T1_WORMおよびT1_WORM2のそれぞれに対応する移行条件の論理和の論理否定である「C1>=2005−01−01」を第1チェック制約として記憶している。
図19は、本実施形態に係る第2の記憶装置160に記憶された、新たに作成した他のテーブルにデータを移行した後におけるデータベースの一例を示す。第2の記憶装置160は、C1の数値が2001−01−01以降かつ2004−12−31以前の日付を表すレコードを記憶し、当該数値がその範囲外の日付を表すレコードは第2の記憶装置160に移行されていない。また、第2チェック制約記憶部148は、移行条件である「C1>=2000−01−01 AND C1<=2004−12−31」を第2チェック制約として記憶している。
図20は、本実施形態に係る第3の記憶装置166に記憶された、新たに作成した他のテーブルにデータを移行した後におけるデータベースの一例を示す。第3の記憶装置166は、C1の数値が1999−12−31以前の日付を表すレコードを記憶し、当該数値がその範囲外の日付を表すレコードは第3の記憶装置166に移行されていない。また、第3チェック制約記憶部149は、移行条件である「C1<=1999−12−31」を第3チェック制約として記憶している。
以上、図15−図20を参照して説明したように、本実施形態に係る制御システム10によれば、ベーステーブルに記憶されたデータの一部ずつを、性質の異なる複数の記憶装置に移行させることができる。これにより、例えば、比較的高速動作する記憶装置にはアクセス頻度の高いデータを記憶し、低速だが大容量の記憶装置にはアクセス頻度の低いデータを記憶させるなどのように、データの用途に応じて記憶装置を使い分けることができる。
図21は、本実施形態に係る制御システム10として機能するコンピュータ500のハードウェア構成の一例を示す。コンピュータ500は、ホストコントローラ1082により相互に接続されるCPU1000、RAM1020、及びグラフィックコントローラ1075を有するCPU周辺部と、入出力コントローラ1084によりホストコントローラ1082に接続される通信インターフェイス1030、ハードディスクドライブ1040、及びCD−ROMドライブ1060を有する入出力部と、入出力コントローラ1084に接続されるROM1010、フレキシブルディスクドライブ1050、及び入出力チップ1070を有するレガシー入出力部とを備える。
ホストコントローラ1082は、RAM1020と、高い転送レートでRAM1020をアクセスするCPU1000及びグラフィックコントローラ1075とを接続する。CPU1000は、ROM1010及びRAM1020に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィックコントローラ1075は、CPU1000等がRAM1020内に設けたフレームバッファ上に生成する画像データを取得し、表示装置1080上に表示させる。これに代えて、グラフィックコントローラ1075は、CPU1000等が生成する画像データを格納するフレームバッファを、内部に含んでもよい。
入出力コントローラ1084は、ホストコントローラ1082と、比較的高速な入出力装置である通信インターフェイス1030、ハードディスクドライブ1040、及びCD−ROMドライブ1060を接続する。通信インターフェイス1030は、ネットワークを介して外部の装置と通信する。ハードディスクドライブ1040は、コンピュータ500が使用するプログラム及びデータを格納する。CD−ROMドライブ1060は、CD−ROM1095からプログラム又はデータを読み取り、RAM1020又はハードディスクドライブ1040に提供する。
また、入出力コントローラ1084には、ROM1010と、フレキシブルディスクドライブ1050や入出力チップ1070等の比較的低速な入出力装置とが接続される。ROM1010は、コンピュータ500の起動時にCPU1000が実行するブートプログラムや、コンピュータ500のハードウェアに依存するプログラム等を格納する。フレキシブルディスクドライブ1050は、フレキシブルディスク1090からプログラム又はデータを読み取り、入出力チップ1070を介してRAM1020またはハードディスクドライブ1040に提供する。入出力チップ1070は、フレキシブルディスク1090や、例えばパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して各種の入出力装置を接続する。
コンピュータ500に提供されるプログラムは、フレキシブルディスク1090、CD−ROM1095、又はICカード等の記録媒体に格納されて利用者によって提供される。プログラムは、入出力チップ1070及び/又は入出力コントローラ1084を介して
、記録媒体から読み出されコンピュータ500にインストールされて実行される。プログラムがコンピュータ500等に働きかけて行わせる動作は、図1から図14において説明した制御システム10における動作と同一であるから、説明を省略する。
以上に示したプログラムは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク1090、CD−ROM1095の他に、DVDやPD等の光学記録媒体、MD等の光磁気記録媒体、テープ媒体、ICカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスク又はRAM等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ500に提供してもよい。
以上、本実施形態に係る制御システム10によれば、WORMメディアなどに移行したデータを、元のハードディスクドライブなどに復帰させることなく、直接読み出すことができる。これにより、アクセスの待ち時間を短縮して処理を効率化すると共に、比較的大容量かつ安価なWORMメディアなどを使用して大規模なデータベースを安価に構築できる。また、WORMメディアなどからデータを読み出す場合であっても、アクセスコマンドは従前のハードディスクに対するコマンドのままで構わない。これにより、ハードディスクドライブ向けに既に開発されたSQLアプリケーション・プログラムの改変を不要とすることができる。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
図1は、本実施形態に係る制御システム10の機能構成を示す。 図2は、本実施形態に係る制御システム10がデータベースからデータを移行し、そして、移行したデータにアクセスする処理の流れを示す。 図3は、図2のS220における処理の流れの詳細を示す。 図4は、本実施形態に係る第1の記憶装置150に記憶されたデータベースの一例を示す。 図5は、本実施形態に係る第2の記憶装置160に対応付けて生成した仮想テーブルの一例を示す。 図6は、本実施形態に係る制御用記憶装置110に記憶された、データ移行後における移行条件および対応情報を示す。 図7は、本実施形態に係る第1の記憶装置150に記憶された、データ移行後におけるデータベースの一例を示す。 図8は、本実施形態に係る第2の記憶装置160に記憶された、データ移行後における仮想テーブルの一例を示す。 図9は、図2のS280における処理の流れの詳細を示す。 図10は、本実施形態に係るアクセス部140により書き換えられるアクセスコマンドの一例を示す。 図11は、図2のS240における処理の流れの詳細を示す。 図12は、本実施形態に係る制御用記憶装置110に記憶された、データを追加して移行した後における移行条件および対応情報を示す。 図13は、本実施形態に係る第1の記憶装置150に記憶された、データを追加して移行した後におけるデータベースの一例を示す。 図14は、本実施形態に係る第2の記憶装置160に記憶された、データを追加して移行した後における仮想テーブルの一例を示す。 図15は、本実施形態に係るアクセス部140の他の例を示す。 図16は、本実施形態に係る制御システム10が新たに作成した他のテーブルにデータを追加して移行する処理の流れを示す。 図17は、本実施形態に係る制御用記憶装置110に記憶された、新たに作成した他のテーブルにデータを移行した後における移行条件および対応情報を示す。 図18は、本実施形態に係る第1の記憶装置150に記憶された、新たに作成した他のテーブルにデータを移行した後におけるデータベースの一例を示す。 図19は、本実施形態に係る第2の記憶装置160に記憶された、新たに作成した他のテーブルにデータを移行した後におけるデータベースの一例を示す。 図20は、本実施形態に係る第3の記憶装置166に記憶された、新たに作成した他のテーブルにデータを移行した後におけるデータベースの一例を示す。 図21は、本実施形態に係る制御システム10として機能するコンピュータ500のハードウェア構成の一例を示す。
符号の説明
10 制御システム
100 データ移行部
110 制御用記憶装置
120 コマンド入力部
125 コマンドキャッシュ
130 移行判断部
140 アクセス部
142 第1制御部
145 第2制御部
146 第1チェック制約記憶部
148 第2チェック制約記憶部
150 第1の記憶装置
160 第2の記憶装置
162 ファイル
165 WORMメディア
170 設定部
500 コンピュータ

Claims (9)

  1. データベースに対するアクセスを制御するシステムであって、
    第1の記憶装置に記憶されたデータベースのうち、使用者からの移行指示に含まれる移行条件を満たすデータを、第2の記憶装置に移行するデータ移行部と、
    前記データベースに対するアクセスコマンドの入力を受け付けるコマンド入力部と、
    入力された前記アクセスコマンドによりアクセスされるべきデータが、既に前記第2の記憶装置に移行されたか否かを、入力された前記アクセスコマンドおよび入力された前記移行条件に基づいて判断する移行判断部と、
    前記移行判断部による判断に基づいて、前記データベースに含まれるデータまたは前記第2の記憶装置に移行されたデータを前記アクセスコマンドに従ってアクセスするアクセス部と
    制御用のデータを記憶するための制御用記憶装置とを備え、
    前記データ移行部は、前記第2の記憶装置にデータを移行するために入力された前記移行条件を、前記制御用記憶装置に格納し、
    前記アクセス部は、前記制御用記憶装置に記憶された前記移行条件、および、入力された前記アクセスコマンドに基づいて、前記アクセスコマンドによりアクセスされるべきデータが、前記移行条件を満たすかどうかを判断し、満たすことを条件に前記第2の記憶装置にアクセスする、
    システム。
  2. 前記第2の記憶装置に既に移行したデータに対するアクセスを許可するかどうかを、使用者ごとに設定する設定部を更に備え、
    前記アクセス部は、入力された前記アクセスコマンドによりアクセスされるべきデータが、前記データ移行部により既に前記第2の記憶装置に移行された場合であっても、前記アクセスコマンドを入力した使用者が、前記設定部によりアクセスの許可されていない使用者の場合には、前記第2の記憶装置に移行された当該データにアクセスしない、請求項1に記載のシステム。
  3. 前記第1の記憶装置に記憶された前記データベースは、第1のテーブルを含み、
    前記データ移行部は、前記第1のテーブルの一部を読み出して新たな第2のテーブルとして前記第2の記憶装置に格納すると共に、前記第1のテーブルの一部を前記データベースから削除し、
    前記アクセス部は、入力された前記アクセスコマンド中のアクセス対象とするテーブルの指定を、前記第1のテーブルから、前記第1のテーブルおよび前記第2のテーブルを結合したテーブルに書き換えることで、前記データベースまたは既に移行された前記データにアクセスする、請求項1に記載のシステム。
  4. 過去に入力されたアクセスコマンドと、当該アクセスコマンドを前記アクセス部がコンパイルして前記データベースに対し発行したコマンドであるコンパイル済みコマンドとを、対応付けて記憶しているコマンドキャッシュを更に備え、
    前記データ移行部は、前記データベースから前記第2の記憶装置に追加して移行するべきデータが満たすべき移行条件の入力を更に受け付けたことに応じ、前記データベースのうち当該移行条件を満たすデータを前記第2の記憶装置に更に移行すると共に、前記コマンドキャッシュをクリアする、請求項3に記載のシステム。
  5. 前記アクセス部は、
    入力された前記アクセスコマンドによりアクセスされるべきデータが、予め設定された第1チェック制約を満たすか否かを判断して、当該チェック制約を満たすことを条件に、前記第1のテーブルへのアクセスを許可し、当該チェック制約を満たさないことを条件に、前記第1のテーブルへのアクセスを禁止する、第1制御部と、
    入力された前記アクセスコマンドによりアクセスされるべきデータが、予め設定された第2チェック制約を満たすか否かを判断して、当該チェック制約を満たすことを条件に、前記第2のテーブルへのアクセスを許可し、当該チェック制約を満たさないことを条件に、前記第2のテーブルへのアクセスを禁止する、第2制御部と
    を有し、
    前記データ移行部は、入力された前記移行条件を前記第2チェック制約として前記第2制御部に設定し、入力された前記移行条件の否定を前記第1チェック制約として前記第1制御部に設定する、請求項3に記載のシステム。
  6. 前記データ移行部は、前記データベースから前記第2の記憶装置に追加して移行するべきデータが満たすべき条件の入力を更に受け付けて、前記データベースのうち当該条件を満たすデータを前記第2の記憶装置に更に移行し、さらに、
    既に前記第2チェック制約として設定されている条件と、追加して移行するべきとして入力された条件との論理和を、新たな前記第2チェック制約として設定すると共に、既に前記第1チェック制約として設定されている条件と、追加して移行するべきとして入力された条件の否定との論理和を、新たな前記第1チェック制約として設定する、請求項5に記載のシステム。
  7. 前記データ移行部は、使用者の指示に基づいて、前記第2の記憶装置に移行したデータに読み出し専用の属性を設定し、
    前記アクセス部は、前記移行判断部によって、前記アクセスコマンドに従ってアクセスされるべきデータが、前記第2の記憶装置に移行されたと判断された場合であっても、前記第2の記憶装置に移行したデータに前記読み出し専用の属性が設定されていることを条件に、前記アクセスコマンドによる更新のためのアクセスを禁止する、請求項1に記載のシステム。
  8. データベースに対するアクセスを制御する方法であって、
    第1の記憶装置に記憶されたデータベースのうち、使用者からの移行指示に含まれる移行条件を満たすデータを、第2の記憶装置に移行するステップと、
    前記移行条件を制御用のデータを記憶するための制御用記憶装置に記憶するステップと、
    前記データベースに対するアクセスコマンドの入力を受け付けるステップと、
    入力された前記アクセスコマンドによりアクセスされるべきデータが、既に前記第2の記憶装置に移行されたか否かを、入力された前記アクセスコマンドおよび前記制御用記憶装置に記憶された前記移行条件に基づいて判断するステップと、
    前記判断するステップにおける判断に基づいて、前記データベースに含まれるデータまたは前記第2の記憶装置に移行されたデータを前記アクセスコマンドに従ってアクセスするステップとを備え、
    前記アクセスするステップは、前記制御用記憶装置に記憶された前記移行条件、および、入力された前記アクセスコマンドに基づいて、前記アクセスコマンドによりアクセスされるべきデータが、前記移行条件を満たすかどうかを判断し、満たすことを条件に前記第2の記憶装置にアクセスする、
    方法。
  9. データベースに対するアクセスを制御するシステムとして、コンピュータを機能させるプログラムであって、
    前記コンピュータを、
    第1の記憶装置に記憶されたデータベースのうち、使用者からの移行指示に含まれる移行条件を満たすデータを、第2の記憶装置に移行するデータ移行部と、
    前記データベースに対するアクセスコマンドの入力を受け付けるコマンド入力部と、
    入力された前記アクセスコマンドによりアクセスされるべきデータが、既に前記第2の記憶装置に移行されたか否かを、入力された前記アクセスコマンドおよび入力された前記移行条件に基づいて判断する移行判断部と、
    前記移行判断部による判断に基づいて、前記データベースに含まれるデータまたは前記第2の記憶装置に移行されたデータを前記アクセスコマンドに従ってアクセスするアクセス部と
    制御用のデータを記憶するための制御用記憶装置と
    して機能させ、
    前記データ移行部は、前記第2の記憶装置にデータを移行するために入力された前記移行条件を、前記制御用記憶装置に格納し、
    前記アクセス部は、前記制御用記憶装置に記憶された前記移行条件、および、入力された前記アクセスコマンドに基づいて、前記アクセスコマンドによりアクセスされるべきデータが、前記移行条件を満たすかどうかを判断し、満たすことを条件に前記第2の記憶装置にアクセスする、
    プログラム。
JP2009542569A 2007-11-19 2008-11-19 データベースに対するアクセスを制御する技術 Expired - Fee Related JP5166439B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009542569A JP5166439B2 (ja) 2007-11-19 2008-11-19 データベースに対するアクセスを制御する技術

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2007299450 2007-11-19
JP2007299450 2007-11-19
JP2009542569A JP5166439B2 (ja) 2007-11-19 2008-11-19 データベースに対するアクセスを制御する技術
PCT/JP2008/071014 WO2009066691A1 (ja) 2007-11-19 2008-11-19 データベースに対するアクセスを制御する技術

Publications (2)

Publication Number Publication Date
JPWO2009066691A1 JPWO2009066691A1 (ja) 2011-04-07
JP5166439B2 true JP5166439B2 (ja) 2013-03-21

Family

ID=40667513

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009542569A Expired - Fee Related JP5166439B2 (ja) 2007-11-19 2008-11-19 データベースに対するアクセスを制御する技術

Country Status (6)

Country Link
US (1) US8949192B2 (ja)
EP (1) EP2224342A4 (ja)
JP (1) JP5166439B2 (ja)
KR (1) KR20100080817A (ja)
CN (1) CN101861572B (ja)
WO (1) WO2009066691A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021110861A (ja) * 2020-01-14 2021-08-02 富士通株式会社 制御方法、制御プログラム、および情報処理装置

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5357068B2 (ja) 2010-01-20 2013-12-04 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理装置、情報処理システム、データ・アーカイブ方法およびデータ削除方法
US8266126B2 (en) * 2010-03-24 2012-09-11 Matrixx Software, Inc. System with multiple conditional commit databases
KR20120082176A (ko) * 2011-01-13 2012-07-23 삼성전자주식회사 데이터베이스 관리 시스템의 데이터 처리 방법 및 시스템
JP5631839B2 (ja) * 2011-10-18 2014-11-26 富士通テレコムネットワークス株式会社 データ管理システム、センター装置およびデータ管理方法
CN102722535B (zh) * 2012-05-21 2016-04-13 周明 一种避免modbus实时数据库访问冲突的方法
US9081806B2 (en) * 2012-09-07 2015-07-14 Sap Se Automated Database Archiving
US20140136486A1 (en) * 2012-11-15 2014-05-15 Nicolas Roy Method and system for data lifecycle management of manufacturing test data
CN104462119B (zh) * 2013-09-18 2019-11-05 腾讯科技(深圳)有限公司 数据迁移方法及装置
GB2521197A (en) * 2013-12-13 2015-06-17 Ibm Incremental and collocated redistribution for expansion of an online shared nothing database
KR101679011B1 (ko) 2014-06-26 2016-11-24 주식회사 알티베이스 데이터베이스에서 데이터 이동을 처리하는 방법 및 장치
CN104881443B (zh) * 2015-05-14 2018-11-27 新浪网技术(中国)有限公司 一种在数据库间迁移数据的方法和系统
CN106294387B (zh) * 2015-05-19 2020-06-02 深圳市腾讯计算机系统有限公司 数据迁移方法和装置
CN105183852B (zh) * 2015-09-08 2018-05-22 网易(杭州)网络有限公司 一种数据库迁移方法和装置
US11100046B2 (en) 2016-01-25 2021-08-24 International Business Machines Corporation Intelligent security context aware elastic storage
US9595291B1 (en) 2016-04-27 2017-03-14 International Business Machines Corporation Columnar data storage on tape partition
US10838934B2 (en) * 2017-08-30 2020-11-17 International Business Machines Corporation Modifying archive data without table changes
CN109542872B (zh) * 2018-10-26 2021-01-22 金蝶软件(中国)有限公司 数据读取方法、装置、计算机设备和存储介质
WO2020213059A1 (ja) * 2019-04-16 2020-10-22 三菱電機株式会社 プログラム作成支援装置、プログラム作成支援方法およびプログラム
US11163782B2 (en) * 2020-03-10 2021-11-02 EMC IP Holding Company LLC Storage of time series data using dynamic schema
CN111506749B (zh) * 2020-04-15 2024-01-02 北京金山云网络技术有限公司 一种监控数据归档方法、装置、电子设备及存储介质
CN113194026A (zh) * 2021-04-20 2021-07-30 北京异乡旅行网络科技有限公司 消息处理方法及装置
WO2023201653A1 (zh) * 2022-04-21 2023-10-26 宇龙计算机通信科技(深圳)有限公司 文件的操作方法、装置、计算机设备和可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000250789A (ja) * 1999-02-25 2000-09-14 Nec Software Chugoku Ltd 分散データベースシステムおよび分散データベースシステムの拡張方法
JP2007272721A (ja) * 2006-03-31 2007-10-18 Nec Corp ストレージ装置及びその制御方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5968115A (en) * 1997-02-03 1999-10-19 Complementary Systems, Inc. Complementary concurrent cooperative multi-processing multi-tasking processing system (C3M2)
US20020069077A1 (en) * 1997-05-19 2002-06-06 Westport Benefits, L.L.C. Computerized system for customizing and managing benefits
US6269382B1 (en) * 1998-08-31 2001-07-31 Microsoft Corporation Systems and methods for migration and recall of data from local and remote storage
JP2000112983A (ja) 1998-10-07 2000-04-21 Hitachi Building Systems Co Ltd データベースのデータ格納方法
US6963875B2 (en) * 2000-03-23 2005-11-08 General Atomics Persistent archives
US7587428B2 (en) * 2000-10-13 2009-09-08 Microsoft Corporation Maintaining a relationship between two different items of data
US7251661B1 (en) * 2002-03-29 2007-07-31 Ncr Corp. Movable objects in a database
US7269733B1 (en) * 2003-04-10 2007-09-11 Cisco Technology, Inc. Reliable embedded file content addressing
US7412489B2 (en) * 2003-08-21 2008-08-12 Ameriprise Financial, Inc. Method and system for electronic archival and retrieval of electronic communications
US7287048B2 (en) * 2004-01-07 2007-10-23 International Business Machines Corporation Transparent archiving
US7296024B2 (en) * 2004-08-19 2007-11-13 Storage Technology Corporation Method, apparatus, and computer program product for automatically migrating and managing migrated data transparently to requesting applications
JP2006072789A (ja) * 2004-09-03 2006-03-16 Hitachi Ltd ストレージシステム及びストレージシステムのデータ管理装置
JP4349301B2 (ja) 2004-11-12 2009-10-21 日本電気株式会社 ストレージ管理システムと方法並びにプログラム
GB0425857D0 (en) * 2004-11-25 2004-12-29 Ibm A method and apparatus for controlling data access
JP5088735B2 (ja) * 2007-12-07 2012-12-05 インターナショナル・ビジネス・マシーンズ・コーポレーション データベースへのアクセスを制御する技術

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000250789A (ja) * 1999-02-25 2000-09-14 Nec Software Chugoku Ltd 分散データベースシステムおよび分散データベースシステムの拡張方法
JP2007272721A (ja) * 2006-03-31 2007-10-18 Nec Corp ストレージ装置及びその制御方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021110861A (ja) * 2020-01-14 2021-08-02 富士通株式会社 制御方法、制御プログラム、および情報処理装置

Also Published As

Publication number Publication date
US20090187612A1 (en) 2009-07-23
CN101861572B (zh) 2012-08-08
WO2009066691A1 (ja) 2009-05-28
US8949192B2 (en) 2015-02-03
CN101861572A (zh) 2010-10-13
JPWO2009066691A1 (ja) 2011-04-07
EP2224342A1 (en) 2010-09-01
EP2224342A4 (en) 2013-10-09
KR20100080817A (ko) 2010-07-12

Similar Documents

Publication Publication Date Title
JP5166439B2 (ja) データベースに対するアクセスを制御する技術
US9910891B2 (en) Deferring data record changes using query rewriting
US9286300B2 (en) Archiving data in database management systems
US7904426B2 (en) System and method for identifying a removable storage device
US9268804B2 (en) Managing a multi-version database
US9031923B2 (en) System for accessing shared data using multiple application servers
WO2016050112A1 (zh) 一种数据存储方法、存储装置及存储系统
JP5044816B2 (ja) オブジェクトを記憶・管理するシステム
US20070226219A1 (en) Method of managing data of file system using database management
JPWO2002056179A1 (ja) 仮想ドライブを使用したパーティションの再生成方法、データ処理装置及びデータ記憶装置
JP5697195B2 (ja) アクセス予測に基づいてテーブルのミラーリングを制御する管理システム、プログラムおよび方法
JP2013105293A (ja) 情報処理装置
JP5186270B2 (ja) データベースのキャッシュシステム
JP2018085042A (ja) データベース管理装置、情報処理システム、データベース管理方法及びデータベース管理プログラム
US11681705B2 (en) Trie data structure with subtrie data structures
JPH1021123A (ja) 情報処理装置
JP7095800B2 (ja) 情報処理プログラム、情報処理方法及び情報処理装置
US20110282911A1 (en) Method and apparatus for providing a relational document-based datastore
L’Esteve Hypers​ pace​
WO2016084190A1 (ja) ストレージ装置
JP2004259075A (ja) リレーショナルデータベースにおける階層型データのマッピングプログラム、装置、および方法
Cebollero et al. Foundations of T-SQL
JPH11338639A (ja) Cd−rに対するデータ書き込み方法ならびにシステム及び同方法がプログラムされ記録される記録媒体
JPH03265045A (ja) 計算機間共用データの管理方法
JP2014191387A (ja) 情報処理装置、情報処理方法、およびプログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120403

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120703

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: 20121204

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121220

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

Free format text: PAYMENT UNTIL: 20151228

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5166439

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees