JP2007501476A - オブジェクトおよび従属オブジェクトをドロップしないデータベースシステム - Google Patents
オブジェクトおよび従属オブジェクトをドロップしないデータベースシステム Download PDFInfo
- Publication number
- JP2007501476A JP2007501476A JP2006532383A JP2006532383A JP2007501476A JP 2007501476 A JP2007501476 A JP 2007501476A JP 2006532383 A JP2006532383 A JP 2006532383A JP 2006532383 A JP2006532383 A JP 2006532383A JP 2007501476 A JP2007501476 A JP 2007501476A
- Authority
- JP
- Japan
- Prior art keywords
- dependent
- objects
- trash
- drop
- database
- 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
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2216/00—Indexing scheme relating to additional aspects of information retrieval not explicitly covered by G06F16/00 and subgroups
- G06F2216/09—Obsolescence
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
データベースシステムにおいてオブジェクト(たとえば、テーブル)および従属オブジェクトをドロップしないための技術が与えられる。オブジェクトがドロップされると、オブジェクトはごみ箱に移動され、そこでオブジェクトは、ユーザーがオブジェクトをドロップしないか、またはオブジェクトがパージされるまで存在する。従属オブジェクトも、従属オブジェクトが従属するオブジェクトとともにごみ箱に移動される。オブジェクトは、ユーザーによって、またはより多くの記憶空間が必要なときに、明示的にごみ箱からパージされ得る。従属オブジェクトおよびパーティションのパージングは、より多くの記憶空間を得る必要がなければ、先送りされ得る。
Description
発明の背景
この発明はコンピュータシステムに関する。より具体的には、この発明は、データベースシステムにおいてオブジェクトおよび従属オブジェクトをドロップしない能力をもたらすことに関する。
この発明はコンピュータシステムに関する。より具体的には、この発明は、データベースシステムにおいてオブジェクトおよび従属オブジェクトをドロップしない能力をもたらすことに関する。
概して、データベース管理システム(DBMS)は、データベースにおいて情報の編成、記憶、検索、機密保護、および保全性を制御するコンピュータソフトウェアである。データベースにおける情報は、多くのタイプのオブジェクトを利用して、記憶され得る。たとえば、情報はテーブルに記憶されることができ、テーブルへのアクセスはインデックスによって容易になり得る。他の共通オブジェクトは、入れ子テーブル、部分テーブル、インデックス編成テーブル(IOT)、ラージオブジェクト(LOB)、制約、トリガなどを含む。
多くの理由から、ユーザーはオブジェクトをパージまたは削除することを決めるであろう。たとえば、より多くの記憶空間を利用可能にするために、オブジェクトがもはや必要ないとユーザーは感じる場合もあれば、またはそれは偶発的なものであるかもしれない。パージのための理由にかかわらず、ユーザーは時折考えを変え、オブジェクトを元に戻すことを望む。
今日のデータベースアプリケーションを用いて、データベースの現在の状態が定期的に記憶される。さらに、その状態以降にデータベース上で実行されるトランザクションのリストも記憶される。ユーザーがパージされたオブジェクトを検索したいとき、データベースは最後に記憶された状態にロールバックされる。ロールバックの後、その状態が記憶された後に実行されたトランザクションは、トランザクションのリストから実行され得る。
この解決策はパージされたオブジェクトを検索し得るが、比較的時間がかかるという不利な点を有する。より重要なことには、この解決策は、データベースのロールバックおよびロールフォワードの間、新しいトランザクションが典型的にデータベースによって除外されることができないという不利な点を有する。したがって、データベースは、パージされたオブジェクトの検索の間、事実上シャットダウンされる。
データベースシステムにおいてオブジェクトがパージされる方法を改善するための革新的な技術を有することは有益であろう。さらに、データベースがシャットダウンされる必要なく、オブジェクトの検索を可能にする革新的な技術を有することは有益であろう。
発明の概要
この発明は、データベースにおいてオブジェクトおよび従属オブジェクトをドロップしないための革新的な技術をもたらす。概して、ユーザーがオブジェクトをドロップまたは削除したいとき、そのオブジェクトはごみ箱に移動されるか、またはごみ箱に置かれる。このオブジェクトに従属するオブジェクトも、ごみ箱に移動されるであろう。後に、ユーザーがそのオブジェクトを検索したい場合、オブジェクトはごみ箱から移動され得る。この態様で、オブジェクトの検索は速くなされることができ、検索の間データベースがシャ
ットダウンされる必要がない。この発明のいくつかの具体的な実施例は以下に記載される。
この発明は、データベースにおいてオブジェクトおよび従属オブジェクトをドロップしないための革新的な技術をもたらす。概して、ユーザーがオブジェクトをドロップまたは削除したいとき、そのオブジェクトはごみ箱に移動されるか、またはごみ箱に置かれる。このオブジェクトに従属するオブジェクトも、ごみ箱に移動されるであろう。後に、ユーザーがそのオブジェクトを検索したい場合、オブジェクトはごみ箱から移動され得る。この態様で、オブジェクトの検索は速くなされることができ、検索の間データベースがシャ
ットダウンされる必要がない。この発明のいくつかの具体的な実施例は以下に記載される。
一つの実施例では、この発明はデータベースシステムにおいてドロップしないことを可能にする方法をもたらす。データベースにおいてオブジェクトをドロップするコマンドが受取られる。オブジェクトはごみ箱に移動され、そのオブジェクトに従属する従属オブジェクトがあれば、従属オブジェクトはごみ箱に移動される。オブジェクトをドロップしないようにコマンドを受取るとすぐに、オブジェクトはごみ箱から移動される。
別の実施例では、この発明はデータベースシステムにおいてドロップしないことを可能にする方法をもたらす。データベースにおいてオブジェクトをドロップするコマンドが受取られる。オブジェクトはごみ箱に移動され、そのオブジェクトに従属する従属オブジェクトがあれば、従属オブジェクトはごみ箱に移動される。オブジェクトをドロップしないようにコマンドを受取るとすぐに、オブジェクトはごみ箱から移動される。より多くの空間が必要であれば、オブジェクトはより多くの記憶空間を与えるようにパージされる。
この発明の他の特徴および利点は、同一または同様の構造が同じ参照番号を用いて示される、以下の記載および添付の図面との関連を再検討するとすぐに、容易に明らかとなる。
好ましい実施例の詳細な説明
以下の記載では、この発明は、データベース環境においてオブジェクトおよび従属オブジェクトをドロップしない実施例を参照して記載される。しかしながら、この発明の実施例は任意の特定の構造、環境、アプリケーション、または実現例に限定されない。たとえば、データベース管理システムのための例示的な3段構造が記載されるが、この発明は任意のデータベースアプリケーションまたは構造に有利に適用されてもよい。したがって、以下の実施例の記載は、例示を目的とするものであり、限定を目的とするものではない。
以下の記載では、この発明は、データベース環境においてオブジェクトおよび従属オブジェクトをドロップしない実施例を参照して記載される。しかしながら、この発明の実施例は任意の特定の構造、環境、アプリケーション、または実現例に限定されない。たとえば、データベース管理システムのための例示的な3段構造が記載されるが、この発明は任意のデータベースアプリケーションまたは構造に有利に適用されてもよい。したがって、以下の実施例の記載は、例示を目的とするものであり、限定を目的とするものではない。
かなり一般的なデータベース管理システム構造は、図1に示される3段構造である。データベース管理システムの中核には、データベース3を記憶する中央記憶装置1がある。データベース3は、典型的にはより大型のコンピュータシステムの一部である1つ以上のハードドライブ上に典型的に記憶される。情報は、情報を記憶するためにテーブルに大きく依存するリレーショナルデータベース管理システムを用いて、さまざまなフォーマットでデータベース3上に記憶され得る。
データベースサーバ5は、データベース3と対話するプログラムの例である。データベースサーバの各々の例は、とりわけ、独立してデータベース3を照会することができ、その中に情報を記憶することができる。データベースサーバ5は、グラフィカルユーザーインターフェイスなどのユーザーフレンドリーなインターフェイスを含まないかもしれない。
したがって、1つ以上のアプリケーションサーバ7が、ユーザーインターフェイスをデータベースサーバ5に与え得る。たとえば、アプリケーションサーバ7はインターネット(または他のネットワーク)上のウェブアプリケーションサーバであり得る。アプリケーションサーバ7は、データベースサーバ5を介してデータベース3にアクセスするためのユーザーフレンドリーな機構を与え得る。ウェブブラウザ9はアプリケーションサーバ7にアクセスするために利用され得る。
図2は、この発明の実施例を実現する、コンピュータシステムに存在し得る構成要素のブロック図を示す。コンピュータシステム101は、コンピュータプログラム(オペレーティングシステムを含む)からの命令を実行するプロセッサ103を含む。プロセッサは典型的にメモリキャッシュも有するが、プロセッサ103は命令またはコンピュータコードおよびデータを記憶し得るメモリ105を利用する。
固定記憶装置107は、典型的には永続的であり、メモリ105と比較するとより多くの記憶を与えるように、コンピュータプログラムおよびデータを記憶し得る。現在のところ、データベースのための一般的な固定記憶装置は、多重(たとえば、配列)ハードドライブである。取外し可能記憶装置109は、その上に記憶されるコンピュータプログラムおよび/またはデータに移動性を与える。取外し可能記憶装置の例は、フロッピー(登録商標)ディスク、テープ、CD/ROM、フラッシュメモリ装置などである。
メモリ103、固定記憶装置107、および取外し可能記憶装置109は、この発明を実現するコンピュータコードを組入れるコンピュータプログラム、この発明とともに使用するためのデータなどを記憶および検索するために利用され得る、コンピュータが読取可能な記憶媒体の例を与える。さらに、搬送波の状態で(たとえば、インターネットを含むネットワークにおいて)実施されるデータ信号は、コンピュータが読取可能な記憶媒体であり得る。入力111は、ユーザーがシステムとインターフェイスすることを可能にする。入力は、キーボード、マウス、ボタン、ダイヤル、または任意の他の入力機構の使用を介してなされることができる。出力113は、システムがユーザーに出力を与えることを可能にする。出力は、モニタ、ディスプレイ画面、LED、プリンタ、または任意の他の出力機構を介して与えられることができる。
ネットワークインターフェイス115は、システムが接続されるネットワークとシステムがインターフェイスすることを可能にする。コンピュータシステム101のシステムバス構造は矢印117によって表わされる。図2に示される構成要素は、多くのコンピュータシステムに見出されることができる。しかしながら、構成要素は追加、削除、および組合せられ得る。たとえば、固定記憶装置107は、ネットワーク接続を介してアクセスされるファイルサーバであり得るだろう。このように、図2は例示を目的とするものであり、限定を目的とするものではない。
例示的なデータベースアプリケーションおよび環境が記載されてきたので、データベースにおける例示的なオブジェクトを論じることは有益であろう。図3は、データベースに存在してもよいオブジェクトおよび従属オブジェクトを示す。
テーブル201はラージオブジェクト(LOB)203を含むように示される。テーブルは、データベースに情報を記憶するために使用される一般的なオブジェクトである。情報は典型的にテーブルのフィールドに記憶され、数、ストリング、ポインタ、入れ子テーブルなどのデータタイプを含み得る。入れ子テーブル、パーティション付テーブル、IOTなどの総称テーブルに加えて、多くの種類のテーブルがある。
例示の目的で、LOB203は、テーブルに記憶されてもよい別のタイプのデータを表わすように示される。LOBは、2値画像およびサウンドファイルなどの情報を記憶し得る。より効率的にテーブル201にアクセスするために、インデックス205および207が示される。インデックスは典型的にキーフィールドを利用して、より効率的にテーブルにアクセスする。
LOB203およびインデックス205、207は従属オブジェクトの例であり、なぜならば、それらは別のオブジェクト(この場合は、テーブル201)に従属するからであ
る。LOB203およびインデックス205、207が従属オブジェクトである理由は、それらが従属するオブジェクトがなければ、それらはほとんど価値がないか、または全く価値がないかもしれないからである。
る。LOB203およびインデックス205、207が従属オブジェクトである理由は、それらが従属するオブジェクトがなければ、それらはほとんど価値がないか、または全く価値がないかもしれないからである。
いくつかの従属オブジェクトは再構成可能であり、これは従属オブジェクトがパージされると再構成され得ることを意味する。インデックス205および207は、再構成され得る従属オブジェクトの例である。LOB203は、一度パージされると再構成されることが典型的にできない従属オブジェクトの例である。従属オブジェクトの他の例は制約およびトリガを含むが、この発明は任意のタイプの従属オブジェクトで作動するように有利に適用されることができる。
データベースは典型的には、図3に示されるものよりもはるかに複雑である。しかしながら、この図はこの発明の実施例を記載するのに有益となる。
図4は、データベースからオブジェクトをドロップしないプロセスのフローチャートを示す。ここに示されるすべてのフローチャートと同様に、ステップはこの発明の精神および範囲から逸脱することなく追加、削除、組合せ、または並べ替えられることができる。
ステップ301において、オブジェクトをドロップするようにコマンドが受取られる。コマンドは典型的にはユーザーから受取られ、グラフィカルユーザーインターフェイスまたはコマンドラインなどのインターフェイスを介して入力されてもよい。オブジェクトをドロップすることによって、ユーザーはオブジェクト(たとえば、テーブル)がもはや必要なくなることを確信していることを示している。
ステップ303において、オブジェクトはごみ箱に移動される。ごみ箱は、より多くの記憶空間を得るために、ユーザーがオブジェクトをドロップしないか、ユーザーが明示的にオブジェクトをパージするか、またはデータベースがオブジェクトをパージするまで、ドロップされたオブジェクトを記憶するリポジトリである。オブジェクトの移動は、ごみ箱の中にあるものを規定する変数を変更することによって実行されることができる。
いくつかの実施例では、ごみ箱はディクショナリテーブルとして実現される。オブジェクトがドロップされると、項目がこのテーブルの中に作られ、これらのオブジェクトはドロップされないことが可能である。ごみ箱の中のオブジェクトのための空間は、たとえオブジェクトがドロップされるとしても、依然として適切なユーザーに割当てられてもよい。一つの実施例のさらなる詳細は、図7および図8を参照して以下に記載される。
ステップ305において、ドロップされたオブジェクトに従属する任意の従属オブジェクトがあるかどうかが判断される。従属オブジェクトがあれば、ステップ307において、従属オブジェクトはごみ箱に移動される。たとえば、図3に戻って参照して、テーブル201がドロップされるべきであるとユーザーが指示すると、システムはLOB203およびインデックス205、207をテーブル201の従属オブジェクトとして識別し、それらはごみ箱に移動されるであろう。
図4に戻って、ステップ309において、オブジェクトをドロップしないようにコマンドを受取るとすぐに、オブジェクトはごみ箱から移動される。オブジェクトをごみ箱から移動することによって、データベースシステムは、検索の間データベースが事実上シャットダウンされる必要なく、テーブルをドロップしないことが可能になっている。
オブジェクトがドロップされず、ごみ箱から移動されると、ごみ箱に存在する任意の従属オブジェクトもごみ箱から移動され得る(つまり、ドロップされない)。いくつかの例
では、再構成可能な従属オブジェクトは、より多くの記憶空間を得るために、ごみ箱からパージされたかもしれない。再構成可能な従属オブジェクトは、それが従属するオブジェクトがドロップされないとき、再構成可能なオブジェクトが必要とされるとき、データベースシステムが処理要件において一時的な静止を有するとき、または任意の他のときに、再構成されることができる。
では、再構成可能な従属オブジェクトは、より多くの記憶空間を得るために、ごみ箱からパージされたかもしれない。再構成可能な従属オブジェクトは、それが従属するオブジェクトがドロップされないとき、再構成可能なオブジェクトが必要とされるとき、データベースシステムが処理要件において一時的な静止を有するとき、または任意の他のときに、再構成されることができる。
図4は、如何にしてオブジェクトおよび従属オブジェクトがごみ箱に移動されてもよいかという例を示した。図5はオブジェクトがごみ箱から移動されてもよい方法を示す。より具体的には、図5はオブジェクトおよび従属オブジェクトがごみ箱から除去され得る方法を示すプロセスのフローチャートを示す。
ステップ351において、より多くの記憶空間が必要とされない状態にデータベースがある場合、ユーザーはごみ箱からオブジェクトおよび従属オブジェクトを除去するようにコマンドを実行することができる。たとえば、ステップ353において、ユーザーはごみ箱からオブジェクトまたは従属オブジェクトを明示的にパージし得る。オブジェクトまたは従属オブジェクトが一度パージされると、ユーザーが考えを変えた場合にオブジェクトまたは従属オブジェクトを検索するために、ロールバックおよびロールフォワードを実行することが必要であろう。
さらに、ステップ355において、ユーザーはオブジェクトまたは従属オブジェクトをドロップしなくてもよい。オブジェクトまたは従属オブジェクトをドロップしないことによって、オブジェクトまたは従属オブジェクトはごみ箱から移動され、まるでドロップされなかったかのように利用可能である。
記憶空間が必要である場合、ステップ357において、データベースはパージするためにオブジェクトを選択してもよい。ステップ359において、データベースは、ステップ359で選択されたオブジェクトに従属する従属オブジェクトをパージしてもよい。ステップ361において、選択されたオブジェクトがパージされる。
記載されるように、いくつかの実施例では、より多くの記憶空間が必要である場合、データベースはパージするためにオブジェクトおよび従属オブジェクト(もしあれば)を選択する。他の実施例では、たとえば、パージされるオブジェクトを選択するために、ユーザーがこのプロセスにかかわることができる。
ごみ箱の中にあるオブジェクトが依然として記憶空間を占めるために、ユーザーが新しいオブジェクトを要求する(またはデータベースがオブジェクトを作成する必要がある)ときに、より多くの記憶空間が所望されることが判断されることになるということが起こってもよい。図6は、ごみ箱の中の1つ以上のオブジェクトをパージすることによって、より多くの記憶空間を得るプロセスのフローチャートを示す。
ステップ401において、ある量の記憶空間の要求が受取られる。ステップ403において、最も古いオブジェクトがパージされるために選択される。いくつかの実施例では、最も古いオブジェクトが選択されるが、他の実施例はパージされるオブジェクトを選択するために任意の数の特性を使用することができる。
ステップ405において、選択されたオブジェクトがパーティションに分割されるかどうかが判断される。選択されたオブジェクトがパーティションに分割されない場合、ステップ407において、オブジェクトはパージされる。パージされるオブジェクトに従属するオブジェクトもパージされ得る。しかしながら、ステップ407におけるオブジェクトのパージングが要求された記憶空間をもたらしたために、従属オブジェクトがこのときに
パージされる必要がない場合、従属オブジェクトのパージングは後に延期されることが可能である。たとえば、いくつかの実施例では、デーモンがバックグラウンドにおいて実行され、パージ可能であると印を付けられたが、まだパージされていない、ごみ箱の中の従属オブジェクトを識別する。デーモンは、その後、より都合のよいときに、これらの従属オブジェクトをパージし得る。
パージされる必要がない場合、従属オブジェクトのパージングは後に延期されることが可能である。たとえば、いくつかの実施例では、デーモンがバックグラウンドにおいて実行され、パージ可能であると印を付けられたが、まだパージされていない、ごみ箱の中の従属オブジェクトを識別する。デーモンは、その後、より都合のよいときに、これらの従属オブジェクトをパージし得る。
ステップ409において、より多くの記憶空間がまだ必要であるかどうかが判断され、より多くの記憶空間が必要であれば、フローはステップ403に戻る。そうでない場合には、要求された記憶空間は利用可能になっている。
ステップ405に戻って、オブジェクトがパーティションに分割される場合、ステップ411において、1つ以上のパーティションがパージされる。いくつかの実施例では、すべてのパーティションがパージされる。しかしながら、要求された記憶空間を得るために、すべてのパーティションに満たないパーティションがパージされる必要がある場合、それらのパーティションのみがすぐにパージされる。上記に記載されるように、他のパーティションはパージ可能であると印を付けられることができ、デーモンは後にごみ箱からこれらのパーティションをパージすることができる。このように、オブジェクトの一部(たとえば、1つ以上のパーティション)が将来のパージのために印を付けられることができる。
要求された記憶空間を得るために必要とされるオブジェクトまたはパーティションをパージすることのみによって見られることができるように、ユーザー(またはデータベース)は記憶空間を得るために必要な限りただ待っているだけである。したがって、従属オブジェクトまたはパーティションが、必要でない記憶空間のためにパージされるのをユーザーは待つ必要はない。このため、いくつかの実施例では、ユーザーが明示的にオブジェクトをパージするとき、そのオブジェクト、すべての従属オブジェクトおよびすべてのパーティションはすぐにパージされる(つまり、デーモンによるパージのために先送りされない)。なぜなら、コマンドを発行したのはユーザーであり、処理の遅れを被るはずであるのはユーザーであるからである。
例
上記に論じられるように、ごみ箱はテーブルとして実現され得る。テーブルはドロップされたあらゆるオブジェクトのための項目を含み得る。図7はテーブルがごみ箱を実現するスキーマの例を示し、以下はテーブルにおける具体的なフィールドを記載する。
上記に論じられるように、ごみ箱はテーブルとして実現され得る。テーブルはドロップされたあらゆるオブジェクトのための項目を含み得る。図7はテーブルがごみ箱を実現するスキーマの例を示し、以下はテーブルにおける具体的なフィールドを記載する。
OBJ♯は、ドロップされるオブジェクトのために元のオブジェクト番号を記憶する。このフィールドは、ディクショナリテーブルにおいてオブジェクトを識別するために使用される。OBJ♯はデータベースにおけるすべてのオブジェクトに対して固有であり、したがって、オブジェクトに対して固有の識別子を形成する。
パーティションの場合、新しいオブジェクトはごみ箱に移動されるときに生成されることになり、したがって、新しいOBJ♯がその新しいオブジェクトに割当てられ得る。この新しいOBJ♯は次いで、主体パーティションを識別するために使用され得る。いくつかの実施例では、パーティションがドロップされない場合、パーティションは新しいオブジェクトとして回復されることになる。
OWNER♯は、オブジェクトの元の所有者のためにUSER♯を記憶するために使用される。オブジェクトをドロップすると、所有者情報はそのオブジェクトのために修正され得る。ユーザーがオブジェクトをドロップしなければ、オブジェクトは元の所有者へ復元されるはずであり、これはこのフィールドを用いて容易になり得る。
ORIGINAL_NAMEはオブジェクトの元の名前を保持する。オブジェクトの名前は、オブジェクトがごみ箱に移動されると、変更され得る。オブジェクトの元の名前は、ユーザーの便宜のためだけに維持される。
OPERATIONは、オブジェクト上で実行されたDDLオペレーションを指定する。このフィールドは、オブジェクトが適切に処理されることができるように、オブジェクトがドロップされたか、または切捨てられたかを見分けるために使用され得る。このフィールドは以下の2つの有効な値のうちの1つを保持し得る。2つの有効な値とは、0−オブジェクトはドロップされた(DROP)、および1−オブジェクトは切捨てられた(TRUNCATE)である。
TYPE♯はドロップされるオブジェクトのオブジェクトタイプを記憶する。以下は、ドロップしないためにサポートされ得るタイプの例である。その例とは、テーブル、標準インデックス、ビットマップインデックス、入れ子テーブル、LOB、LOBインデックス、ドメインインデックス、IOTトップインデックス、IOTオーバーフローセグメント、IOTマッピングテーブル、トリガ、制約、テーブルパーティション、テーブル複合パーティション、インデックスパーティション、インデックス複合パーティション、LOBパーティション、LOB複合パーティションなどである。
TS♯は、ドロップされ、直ちにごみ箱に移動されるオブジェクトに「テーブル空間(Table Space)」番号を与える。これは、今にも一杯になる「テーブル空間(Tablespace)」のために空間を空けようとするのに有益であり得る。空間を入れるためにまだ多大な量の空間を有する「テーブル空間(Tablespace)」からの空間を再利用することは、空間圧力の問題を解決しないであろう。したがって、ほとんど一杯であり、いくらかの空間を必要とするテーブル空間のためにのみ、ごみ箱からの空間を再利用することは有益であろう。
FILE♯は、オブジェクトのためのセグメントヘッダのために「ファイル番号(File
Number)」を記憶する。TS♯およびBLOCK♯とともに、固有のSEG$項目が得られることができる。
Number)」を記憶する。TS♯およびBLOCK♯とともに、固有のSEG$項目が得られることができる。
BLOCK♯は、オブジェクトのためのセグメントヘッダに「ブロック番号(Block Number)」を与える。TS♯およびFILE♯とともに、固有のSEG$項目が得られることができる。このフィールドは、空間圧力の場合に、セグメントヘッダに効率的にアクセスするために利用され得る。
DROPTIMEは、オブジェクトがドロップされたシステム時間を記憶する。このフィールドの値は、オブジェクトがごみ箱の中に存在した時間を計算するために使用され得る。空間圧力の場合に、オブジェクトはドロップされた順序でごみ箱から再利用され得る。このように、このフィールドはごみ箱の中のオブジェクトの、時間をベースにした順序付けを維持するために使用されることさえある。
DROPSCNは、オブジェクトのドロップを引起したSCNを与える。これは「フラッシュバック(Flash Back)」クエリに役立つであろう。
PARTITION_NAMEは、ドロップされたパーティションの名前を保持する。非パーティションテーブルの場合、このフィールドは「ヌル(NULL)」になる。したがって、フィールドはユーザーの便宜のために使用されるのみである。
FLAGSは、ごみ箱の中のオブジェクトのためにさまざまなフラグを保持する。このフィールドにおけるビットのうちの1つは、オブジェクトがドロップされないことが可能であるかどうかを常に把握するために使用され得る。空間再利用のためのインクリメンタルアプローチの場合、オブジェクトに属するわずかなエクステントのみが空けられ、残余のエクステントがまだごみ箱の中に存在するということは十分にあり得る。オブジェクトに割当てられるエクステントが空けられていない場合、そのオブジェクトはドロップされないことが可能である。オブジェクトに属する1つのエクステントさえ空けられれば、オブジェクトはドロップされるはずである。
RELATEDは、対象としているオブジェクトのために親オブジェクトのOBJ♯を識別する。
BOは、このオブジェクトがドロップされ、ごみ箱に置かれることを引起したベーステーブルのためにOBJ♯を記憶する。
PURGEOBJは、空間圧力を受けてパージされることになるオブジェクト(たとえば、インデックスまたはテーブルのいずれか)に対し、この特定のオブジェクトをシステムからパージし、空間を開放することが望ましい場合には、OBJ♯を与える。
BASE_TS♯は、ベースオブジェクト(たとえば、テーブル)のために「テーブル空間(TableSpace)」番号を記憶する。
BASE_OWNER♯は、ベースオブジェクトの所有者のためにユーザー番号を保持する。
SPACEはオブジェクトのサイズを与える。このフィールドは、ごみ箱の中のオブジェクトによって利用される空間の量を見る(たとえば、ブロックの数において)ために使用され得る。
CON♯は、制約に起因して作られるインデックスの場合に、制約IDを記憶する。そうでない場合には、これは「ヌル(NULL)」になる。
SPARE1、SPARE2、およびSPARE3は、将来の実現例において利用されてもよい。
図7においてテーブルのスキーマが記載されてきたので、ドロップされ、ごみ箱に置かれるオブジェクトおよび従属オブジェクトの例を論じることは有益であろう。
ユーザーがオブジェクトをドロップすると、オブジェクトはごみ箱に置かれる。オブジェクトはOBJ$においてドロップされると印を付けられる(しかし、パージされない)。ユーザーはユーザーの判断でこのオブジェクトをパージできるか、またはオブジェクトは空間圧力を受けて自動的にパージされることになる。
図8は、ドロップされたオブジェクトおよび従属オブジェクトのための項目を示す。この項目は、テーブルTABLE1およびインデックスINDEX1(従属オブジェクト)がドロップされたことを示す。これらの項目は、TABLE1がドロップされたときに、テーブルに追加された。
示され得るように、RELATEDフィールドは、INDEX1がTABLE1に関連することを示す。したがって、TABLE1がドロップされたので、INDEX1はごみ
箱にある。
箱にある。
ユーザーは最初にTABLE1をドロップしないことをせずにINDEX1をドロップしないことはできないはずであるが、関連するオブジェクトからの空間が再利用されていなければ、TABLE1をドロップしないことはINDEX1をドロップしないことにもなる。オブジェクトが回復される(ドロップされない)必要があるとき、ごみ箱からの元の所有者情報(たとえば、OWNER♯)は、オブジェクトの割当てを元の所有者に戻すために利用されることになる。オブジェクトがパージされる(ユーザーまたは空間再利用プロセスのいずれかによって)ときにのみ、オブジェクトはごみ箱から除去されることになり、空間は空間を要求するトランザクションによって再使用されることが可能である。
上記はこの発明の好ましい実施例の完全な記載であるが、さまざまな代替例、修正例、および等価物が使用され得る。この発明は上記に記載される実施例に適切な修正を行なうことによって同様に適用できることは明らかなはずである。たとえば、テーブルのスキーマがごみ箱を実現するために利用され得るが、この発明は記載される具体的な例に限定されるものではない。したがって、上記の記載は、等価物の全範囲とともに特許請求の範囲の境界によって規定されるこの発明の範囲を限定するものとして捉えられるべきではない。
Claims (25)
- データベースシステムにおいてドロップしないことを可能にする方法であって、
データベースにおいてオブジェクトをドロップするようにコマンドを受取ることと、
前記オブジェクトをごみ箱に移動することと、
前記オブジェクトに従属する従属オブジェクトがあれば、前記従属オブジェクトを前記ごみ箱に移動することと、
前記オブジェクトをドロップしないようにコマンドを受取るとすぐに、前記オブジェクトを前記ごみ箱から移動することとを含む、方法。 - 前記ごみ箱の中の前記オブジェクトをパージすることをさらに含む、請求項1に記載の方法。
- 前記オブジェクトはより多くの記憶空間を得るためにパージされた、請求項2に記載の方法。
- ある量の記憶空間の要求を受取ることをさらに含む、請求項1に記載の方法。
- 前記量の記憶空間を得るために、前記ごみ箱の中のオブジェクトをパージすることをさらに含む、請求項4に記載の方法。
- パージされる前記オブジェクトに従属する従属オブジェクトをパージすることをさらに含む、請求項4に記載の方法。
- 前記量の記憶空間を得る必要があれば、パージされる前記オブジェクトに従属する従属オブジェクトをパージすることと、将来のパージのために任意の他の従属オブジェクトに印を付けることとをさらに含む、請求項4に記載の方法。
- オブジェクトの一部が前記量の記憶空間を得るためにパージされる必要がなければ、将来のパージのために前記一部に印を付けることをさらに含む、請求項4に記載の方法。
- 前記ごみ箱はテーブルである、請求項1に記載の方法。
- 前記テーブルは従属オブジェクトが従属する前記オブジェクトを識別するフィールドを含む、請求項1に記載の方法。
- データベースシステムにおいてドロップしないことを可能にするコンピュータプログラム製品であって、
データベースにおいてオブジェクトをドロップするようにコマンドを受取るコンピュータコードと、
前記オブジェクトをごみ箱に移動するコンピュータコードと、
前記オブジェクトに従属する従属オブジェクトがあれば、前記従属オブジェクトを前記ごみ箱に移動するコンピュータコードと、
前記オブジェクトをドロップしないようにコマンドを受取るとすぐに、前記オブジェクトを前記ごみ箱から移動するコンピュータコードと、
前記コンピュータコードを記憶する、コンピュータが読取可能な媒体とを含む、コンピュータプログラム製品。 - 前記コンピュータが読取可能な媒体はCD−ROM、フロッピー(登録商標)ディスク、テープ、フラッシュメモリ、システムメモリ、ハードドライブ、または搬送波の状態で
実施されるデータ信号である、請求項11に記載のコンピュータプログラム製品。 - ユーザーが前記ごみ箱の中のオブジェクトをドロップしないことが可能であるように、テーブルに情報を記憶し、ドロップされたオブジェクトを示す、ごみ箱を実現するテーブルを含むデータベースを含む、データベースシステム。
- 前記テーブルは従属オブジェクトが従属する前記オブジェクトを識別するフィールドを含む、請求項13に記載のデータベースシステム。
- データベースシステムにおいてドロップしないことを可能にする方法であって、
データベースにおいてオブジェクトをドロップするようにコマンドを受取ることと、
前記オブジェクトをごみ箱に移動することと、
前記オブジェクトに従属する従属オブジェクトがあれば、前記従属オブジェクトを前記ごみ箱に移動することと、
前記オブジェクトをドロップしないようにコマンドを受取るとすぐに、前記オブジェクトを前記ごみ箱から移動することと、
より多くの記憶空間が必要であれば、より多くの記憶空間を与えるように前記オブジェクトをパージすることとを含む、方法。 - ある量の記憶空間の要求を受取ることをさらに含む、請求項15に記載の方法。
- パージされる前記オブジェクトに従属する従属オブジェクトをパージすることをさらに含む、請求項15に記載の方法。
- 前記量の記憶空間を得る必要があれば、パージされる前記オブジェクトに従属する従属オブジェクトをパージすることと、将来のパージのために任意の他の従属オブジェクトに印を付けることとをさらに含む、請求項15に記載の方法。
- オブジェクトの一部が前記量の記憶空間を得るためにパージされる必要がなければ、将来のパージのために前記一部に印を付けることをさらに含む、請求項15に記載の方法。
- 前記ごみ箱はテーブルである、請求項15に記載の方法。
- 前記テーブルは従属オブジェクトが従属する前記オブジェクトを識別するフィールドを含む、請求項15に記載の方法。
- データベースシステムにおいてドロップしないことを可能にするコンピュータプログラム製品であって、
データベースにおいてオブジェクトをドロップするようにコマンドを受取るコンピュータコードと、
前記オブジェクトをごみ箱に移動するコンピュータコードと、
前記オブジェクトに従属する従属オブジェクトがあれば、前記従属オブジェクトを前記ごみ箱に移動するコンピュータコードと、
前記オブジェクトをドロップしないようにコマンドを受取るとすぐに、前記オブジェクトを前記ごみ箱から移動するコンピュータコードと、
より多くの記憶空間が必要であれば、より多くの記憶空間を与えるように前記オブジェクトをパージするコンピュータコードと、
前記コンピュータコードを記憶する、コンピュータが読取可能な媒体とを含む、コンピュータプログラム製品。 - 前記コンピュータが読取可能な媒体はCD−ROM、フロッピー(登録商標)ディスク、テープ、フラッシュメモリ、システムメモリ、ハードドライブ、または搬送波の状態で実施されるデータ信号である、請求項22に記載のコンピュータプログラム製品。
- ユーザーが前記ごみ箱の中のオブジェクトをドロップしないことが可能であるように、テーブルに情報を記憶し、ドロップされたオブジェクトを示す、ごみ箱を実現するテーブルを含むデータベースを含むデータベースシステムであって、オブジェクトはより多くの記憶空間が必要であれば前記ごみ箱からパージされる、データベースシステム。
- 前記テーブルは従属オブジェクトが従属する前記オブジェクトを識別するフィールドを含む、請求項24に記載のデータベースシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/445,793 US8521789B2 (en) | 2003-05-27 | 2003-05-27 | Undrop objects and dependent objects in a database system |
PCT/US2004/010616 WO2004107215A1 (en) | 2003-05-27 | 2004-04-07 | Undrop objects and dependent objects in a database system |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007501476A true JP2007501476A (ja) | 2007-01-25 |
Family
ID=33450939
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006532383A Pending JP2007501476A (ja) | 2003-05-27 | 2004-04-07 | オブジェクトおよび従属オブジェクトをドロップしないデータベースシステム |
Country Status (7)
Country | Link |
---|---|
US (1) | US8521789B2 (ja) |
EP (1) | EP1627334B1 (ja) |
JP (1) | JP2007501476A (ja) |
CN (1) | CN1791873B (ja) |
AU (1) | AU2004244168B2 (ja) |
CA (1) | CA2522047A1 (ja) |
WO (1) | WO2004107215A1 (ja) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6920460B1 (en) * | 2002-05-29 | 2005-07-19 | Oracle International Corporation | Systems and methods for managing partitioned indexes that are created and maintained by user-defined indexing schemes |
US7634510B2 (en) * | 2004-10-05 | 2009-12-15 | Oracle International Corporation | Method and system for time-based reclamation of objects from a recycle bin in a database |
US7636737B2 (en) * | 2005-12-20 | 2009-12-22 | Microsoft Corporation | Web site multi-stage recycling |
CN101546311B (zh) * | 2008-03-27 | 2012-05-02 | 北京铭万互联科技有限公司 | 回收站的数据处理方法及数据处理装置 |
US8380702B2 (en) * | 2009-03-10 | 2013-02-19 | Oracle International Corporation | Loading an index with minimal effect on availability of applications using the corresponding table |
CN102750198B (zh) * | 2011-04-20 | 2016-01-20 | 腾讯科技(深圳)有限公司 | 一种社交网站内容的备份方法及系统 |
WO2014042648A1 (en) * | 2012-09-14 | 2014-03-20 | Empire Technology Development Llc | Cloud-based trash-can |
CN104246716B (zh) * | 2012-12-19 | 2018-02-09 | 华为技术有限公司 | 存储空间对象的处理方法及设备 |
US9063967B2 (en) * | 2013-01-10 | 2015-06-23 | Pure Storage, Inc. | Performing copies in a storage system |
WO2016053231A1 (en) | 2014-09-29 | 2016-04-07 | Hewlett Packard Enterprise Development Lp | Retain data above threshold |
US20180018356A1 (en) * | 2016-07-13 | 2018-01-18 | Deepspace Storage Systems Inc. | Relational database online storage manager |
CN112181938B (zh) * | 2019-07-05 | 2024-06-14 | 杭州海康威视数字技术股份有限公司 | 数据库清理方法、装置和计算机可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10240592A (ja) * | 1996-12-27 | 1998-09-11 | Fujitsu Ltd | ファイルの依存関係を示す装置及び方法 |
JP2002278821A (ja) * | 2001-03-22 | 2002-09-27 | Sharp Corp | データ管理システム、データ管理方法およびデータ管理システムをコンピュータにて実現させるプログラム |
JP2002366410A (ja) * | 2001-06-06 | 2002-12-20 | Fujitsu Ltd | ごみ箱サーバおよびごみ箱処理プログラム |
WO2003001422A1 (fr) * | 2001-06-26 | 2003-01-03 | Toshiyuki Tani | Procede de fourniture de renseignements commerciaux |
JP2003044329A (ja) * | 2001-08-02 | 2003-02-14 | Minolta Co Ltd | ファイル管理プログラム、ファイル管理プログラムを記録したコンピュータ読取可能な記録媒体、およびファイル管理方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US83064A (en) * | 1868-10-13 | Improved gearing for grindstones | ||
US6246410B1 (en) | 1996-01-19 | 2001-06-12 | International Business Machines Corp. | Method and system for database access |
US5767851A (en) | 1996-01-29 | 1998-06-16 | Sun Microsystems, Inc. | Method and apparatus for emulating an environment's drag and drop functionality in a host environment |
US5802514A (en) | 1996-04-09 | 1998-09-01 | Vision Software Tools, Inc. | Automated client/server development tool using drag-and-drop metaphor |
CN1201950A (zh) | 1998-05-08 | 1998-12-16 | 中国人民解放军济南医学高等专科学校 | 数据库中物理表行的删除和恢复方法 |
CA2279028C (en) | 1999-07-29 | 2002-09-10 | Ibm Canada Limited-Ibm Canada Limitee | Dropped database table recovery |
US6591295B1 (en) | 1999-11-05 | 2003-07-08 | Oracle International Corp. | Methods and apparatus for using multimedia data stored in a relational database in web applications |
US6611836B2 (en) | 2000-12-26 | 2003-08-26 | Simdesk Technologies, Inc. | Server-side recycle bin system |
-
2003
- 2003-05-27 US US10/445,793 patent/US8521789B2/en active Active
-
2004
- 2004-04-07 JP JP2006532383A patent/JP2007501476A/ja active Pending
- 2004-04-07 AU AU2004244168A patent/AU2004244168B2/en not_active Expired
- 2004-04-07 WO PCT/US2004/010616 patent/WO2004107215A1/en active Application Filing
- 2004-04-07 CA CA002522047A patent/CA2522047A1/en not_active Abandoned
- 2004-04-07 EP EP04785596A patent/EP1627334B1/en not_active Expired - Lifetime
- 2004-04-07 CN CN200480013535.7A patent/CN1791873B/zh not_active Expired - Lifetime
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10240592A (ja) * | 1996-12-27 | 1998-09-11 | Fujitsu Ltd | ファイルの依存関係を示す装置及び方法 |
JP2002278821A (ja) * | 2001-03-22 | 2002-09-27 | Sharp Corp | データ管理システム、データ管理方法およびデータ管理システムをコンピュータにて実現させるプログラム |
JP2002366410A (ja) * | 2001-06-06 | 2002-12-20 | Fujitsu Ltd | ごみ箱サーバおよびごみ箱処理プログラム |
WO2003001422A1 (fr) * | 2001-06-26 | 2003-01-03 | Toshiyuki Tani | Procede de fourniture de renseignements commerciaux |
JP2003044329A (ja) * | 2001-08-02 | 2003-02-14 | Minolta Co Ltd | ファイル管理プログラム、ファイル管理プログラムを記録したコンピュータ読取可能な記録媒体、およびファイル管理方法 |
Also Published As
Publication number | Publication date |
---|---|
CA2522047A1 (en) | 2004-12-09 |
CN1791873A (zh) | 2006-06-21 |
US20040243624A1 (en) | 2004-12-02 |
AU2004244168A1 (en) | 2004-12-09 |
CN1791873B (zh) | 2014-01-15 |
EP1627334A1 (en) | 2006-02-22 |
EP1627334B1 (en) | 2012-09-26 |
AU2004244168B2 (en) | 2009-11-26 |
US8521789B2 (en) | 2013-08-27 |
WO2004107215A1 (en) | 2004-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8051045B2 (en) | Archive indexing engine | |
US9798759B2 (en) | Delegation of database post-commit processing | |
US9779104B2 (en) | Efficient database undo / redo logging | |
US9875024B2 (en) | Efficient block-level space allocation for multi-version concurrency control data | |
US8386431B2 (en) | Method and system for determining database object associated with tenant-independent or tenant-specific data, configured to store data partition, current version of the respective convertor | |
US9639542B2 (en) | Dynamic mapping of extensible datasets to relational database schemas | |
US7418544B2 (en) | Method and system for log structured relational database objects | |
US7472140B2 (en) | Label-aware index for efficient queries in a versioning system | |
US7953749B2 (en) | Providing the timing of the last committed change to a row in a database table | |
US20110302195A1 (en) | Multi-Versioning Mechanism for Update of Hierarchically Structured Documents Based on Record Storage | |
CA2302303A1 (en) | System for accessing database tables mapped into memory for high performance | |
WO2005041059A1 (en) | Sorting result buffer | |
JP2007501476A (ja) | オブジェクトおよび従属オブジェクトをドロップしないデータベースシステム | |
US7475088B2 (en) | Systems and methods of providing data from a data source to a data sink | |
US8510269B2 (en) | Uninterrupted database index reorganization/movement | |
EP3696688B1 (en) | Locking based on categorical memory allocation | |
JPH08235040A (ja) | データファイル管理システム | |
EP4141686A1 (en) | Using self-maintaining structure information for faster data access | |
Zabback et al. | Office documents on a database kernel—filing, retrieval, and archiving |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070316 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091124 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100518 |