JP3756407B2 - ユーザ定義データ型のデータ項目を扱うための方法 - Google Patents
ユーザ定義データ型のデータ項目を扱うための方法 Download PDFInfo
- Publication number
- JP3756407B2 JP3756407B2 JP2000569332A JP2000569332A JP3756407B2 JP 3756407 B2 JP3756407 B2 JP 3756407B2 JP 2000569332 A JP2000569332 A JP 2000569332A JP 2000569332 A JP2000569332 A JP 2000569332A JP 3756407 B2 JP3756407 B2 JP 3756407B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- database system
- user
- routine
- type
- 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 - Lifetime
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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/289—Object oriented databases
-
- 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/99941—Database schema or data structure
- Y10S707/99942—Manipulating data structure, e.g. compression, compaction, compilation
-
- 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/99941—Database schema or data structure
- Y10S707/99944—Object-oriented database structure
-
- 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/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
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)
Description
【発明の分野】
この発明は、データベースシステムに関し、より特定的には、データベースシステム内のユーザ定義データ型の使用に関する。
【0002】
【発明の背景】
典型的には、データ項目は、揮発性メモリに記憶されるのとは異なった態様で不揮発性メモリに記憶される。すなわち、不揮発性メモリから揮発性メモリにロードする際、何らかの変換動作を行なわなければならない。同様に、揮発性メモリから不揮発性メモリに逆に記憶される際、別の変換動作を行なわなければならない。説明の目的のため、ここでは、データを揮発性フォーマットから不揮発性フォーマットに変換するプロセスを、データ項目を「ピクリング」すると称し、データを不揮発性フォーマットから揮発性フォーマットへ変換するプロセスを、データ項目を「アンピクリング」すると称する。
【0003】
数多くの従来のリレーショナルデータベースシステムでは、自動ピクリングおよびアンピクリングは数少ないデータの型に対してしか行なわれない。このようなシステムがサポートするデータの型は典型的に、数および日付などのスカラー型を含む。「C」および「Java」などの他のプログラミング環境に関連して、典型的なデータベースシステムがサポートするデータ型の組は非常に限られている。このため、これらの他の環境において書かれたコンピュータプログラムによって生成され用いられるデータを記憶するのにそのデータベースシステムが用いられる際に困難が生じる。
【0004】
たとえば、あるユーザは、複雑なユーザ定義のデータ型(「TYPE1」)を用いてデータを表わし操作する1組のルーチンを作成し得る。例示の目的のため、TYPE1を用いるユーザ実装のルーチンはここで集合的にAPP1と称する。
【0005】
TYPE1の構造またはそのいずれの属性も、データベースシステム(「DBS1」)がサポートするどのデータ型の構造とも大幅に異なるものであり得る。APP1によって用いられるデータをDBS1が管理するデータベースに渡すためには、すべてのTYPE1データ項目を、DBS1がサポートするデータ型の1つ以上のインスタンスに変換しなければならない。一旦、データを、DBS1が理解しサポートするデータ型に変換すると、DBS1はデータを記憶しディスクから取出すことができる。同様に、APP1がDBS1からのデータを使用するには、そのデータを、DBS1がサポートするデータ型に関連付けられた構造からTYPE1に関連付けられた構造およびフォーマットに変換しなければならない。
【0006】
図1を参照して、この図はAPP1がそのデータをDBS1内に記憶することを可能にするために行なわれなければならない変換動作を示すブロック図である。特定的には、APP1内で生成されるデータ項目はユーザTYPE1の構造およびフォーマットに従って記憶される。データ項目を記憶するためにDBS1に渡すためには、そのデータ項目はDBS1がサポートするデータ型(DBTYPE1)に変換される。DBS1内の揮発性メモリにある間、データ項目はアンピリングされたDBTYPE1として記憶される。DBS1はDBTYPE1データ項目をディスクに記憶するためにこれをピクリングする。
【0007】
ディスクに記憶されるデータ項目をAPP1に供給するため、DBS1はデータ項目をアンピクリングしてアンピクリングされたDBTYPE1データ項目を作成する。アンピクリングされたDBTYPE1データ項目は次に、そのデータ項目を操作するAPP1内のルーチンに供給される前に、ユーザTYPE1データ型に変換される。
【0008】
ユーザ定義型の一例は以下のように宣言される型である。
struct TYPE1
{
int i;
char *s;
}
この宣言はたとえば、APP1のソースコード内で生じ得る。APP1のソースコードはまた、TYPE1データ構造内に記憶されるデータを操作するのに用いられる1つ以上のメソッドを含む。このようなメソッドに対するインターフェイスの一例は以下のとおりである。
【0009】
my_method(TYPE1 *me, int i);
TYPE1データ項目は、TYPE1の属性を、NumberおよびDateなどのDBS1がサポートするデータ型にマッピングすることによってDBS1内へ受渡してもよい。TYPE1データ項目からデータを記憶するためのデータベースオブジェクトを作成するためのステートメントの一例は以下のとおりである。
【0010】
create type DBTYPE1 as OBJECT
(
a Number;
b Date;
memberprocedure.set_date();
)
APP1によって用いられるTYPE1構造とDBS1内においてTYPE1データを記憶するため用いられるDBTYPE1構造との間でデータを変換するために、以下の構造体を用いてもよい。
【0011】
struct
{
OCINumber n;
OCIDate d;
}
この例では、TYPE1の属性がDBS1によってサポートされるデータ型によって十分に表わすことができることを仮定している。しかしながら、一般的なプログラム言語(CまたはJavaなど)において設計され実現されるデータ型は、データベースシステムによって容易に取得されるものではない。なぜなら、これらの内部構造はその言語のある特定の構造構文を用いてモデリングされており、データベースシステムによっては理解されないためである。
【0012】
オブジェクト指向データベースは、ある特定のプログラム言語に強く結合されており、それらのためにその言語におけるデータ型のモデリングを行なうことが可能であるとしても、データベースシステムにおける言語中立性という柔軟性が損なわれる。たとえば、APP1を作成するのに用いられた言語と同じ言語を中心にDBS1が設計された場合、DBS1はTYPE1データ型をサポートし得る。しかし、他方で、APP1を作成するのに用いられた言語とは異なる言語を中心にDBS1が設計された場合、依然として複雑な変換が必要であり得る。
【0013】
データベースシステムがサポートするデータ型に密接に対応していない属性を有するユーザ定義型を変換することに関連する負担を軽減するため、いくつかのデータベースシステムでは「RAW」データ型をサポートしている。データベースシステムの観点からは、RAWデータ項目とは構造を有さない単なるバイトの塊である。データベースによりサポートされる他のデータ型と同様に、RAWデータ項目は、関係表の列に記憶できる。データベースシステムはRAWデータ項目に対して何ら構造を想定していないため、RAWデータ項目は、データベースシステムがサポートするいずれのデータ型にも容易に変換されない属性を有する複雑なユーザ定義のデータ型に対するデータを記憶するのに用いることができる。
【0014】
以下のステートメントにより、たとえばTYPE1データ項目からのデータを記憶するために用いることができるRAW列を有する表が作成される。
【0015】
create table t
(coll raw(20),...);
以下のステートメントにより、外部my_methodルーチンを呼出すための、データベースの内部のルーチンが作成される。
【0016】
create procedure mymethod(a IN RAW)
この内部ルーチンに対する入力はRAWデータ項目であるが、外部my_methodはTYPE1データ項目を想定している。したがって、mymethod手続きのインプリメーションは以下の形をとらなければならない。
【0017】
mymethod(a)
{
raw-to-struct(a)
manipulate
struct-to-raw(a)
}
この例では、mymethodルーチンはRAWデータ項目「a」を受ける。raw-to-struct(a)ステートメントは、データベースによってデータ項目を記憶するのに用いられるRAWフォーマットからAPP1によって用いられるTYPE1フォーマットにデータ項目を変換するユーザ供給のルーチンを呼出す。「manipulate」ステートメントは、TYPE1データ項目を操作するユーザ供給ルーチンに対するコールを一般的に表わす。データ項目に対して所望の演算が行なわれた後、struct-to-raw(a)に対するコールにより、データ項目をTYPE1構造からデータベースによって用いられるRAWフォーマットに変換して戻す。
【0018】
図2を参照して、APP1がそのデータをRAWデータ型をサポートするデータベース(DBS1)内に記憶するのを可能にするために行なわなければならない変換動作を示すブロック図が示される。特定的には、APP1内で生成されるデータ項目は、「user type1」に従ってフォーマット化される。データ項目を記憶するためにDBS1内に渡すために、データ項目はRAWデータ型に変換される。DBS1内の揮発性メモリ内にある間、データ項目はアンピクリングされたRAWデータとして記憶される。DBS1はそのRAWデータをピクリングしてこれをディスクに記憶する。
【0019】
APP1にデータベース内に記憶されるデータ項目を供給するため、DBS1はRAWデータ項目をアンピクリングしてアンピクリングされたRAWデータを作成する。アンピクリングされたRAWデータは次に、データ項目を操作するAPP1内のルーチンに供給される前に、ユーザTYPE1データ型に変換される。
【0020】
この例によって示されるように、RAWデータ型をサポートするデータベースシステムを用いていても、ユーザ定義型を作成するユーザ(「型作成者」)は、制御がデータベースシステムからユーザルーチンに渡されるたびに、RAWエンティティをその適当な構造化された等価物に変換したり戻したりするためのルーチンを提供する責任がある。特定的には、上述の例では、型作成者はraw-to-structおよびstruct-to-rawルーチンを書く責任がある。
【0021】
ユーザ定義型からのデータをデータベース内においてRAWデータ項目として記憶することに関連してさまざまな欠点がある。たとえば、この技術では強い型づけをサポートしていない。換言すると、異なるユーザ定義型に関連付けられたデータ項目が、同じデータベース型としてデータベース内に記憶される。すなわち、データベースシステムおよび他のデータベースのユーザはこれらの型のあるものを別のものと区別することができない。これは、これらがすべてデータベース管理システムによってRAWエンティティとして扱われるためである。したがって、データベースシステムは、あるユーザが、ある種類のユーザ定義データ型からのデータを、別の種類のユーザ定義データ型からのデータを保持するはずであるRAW列に誤って記憶した場合にこれを検知することができない。
【0022】
さらに、ユーザ定義型をRAWデータとして記憶する技術ではモデリングが貧弱である。データベースシステムがユーザ定義データ型を記憶できないことを考慮して作業することは型作成者にとって非常に厄介である。さらに、この技術では性能が比較的低い。これは、データがデータベースシステムとユーザアプリケーションとの間を行き来するたびに変換を行なうことが計算機資源を多く必要とするからである。
【0023】
強い型づけをサポートし、かつRAWデータ型に対するデータベースのサポートを利用するため、ユーザ定義型のためのデータがRAW属性を有するデータベースのオブジェクト型に記憶されてもよい。たとえば、型作成者が2つの型TYPE1およびTYPE2を定義したと仮定する。TYPE1ユーザ型からのデータは、以下のステートメントによって作成されるデータベースオブジェクトに記憶されるだろう。
【0024】
create type DBTYPE1 as OBJECT
(
a RAW(20)
mymethod1(a IN DBTYPE1);
)
同様に、TYPE2ユーザ型からのデータは、以下のステートメントによって作成されるデータベースオブジェクトに記憶されるだろう。
【0025】
create type DBTYPE2 as OBJECT
(
a RAW(20);
mymethod2(a IN DBTYPE2);
)
この態様でデータベース定義オブジェクトをRAWデータ型と組合せて用いることにより、TYPE1およびTYPE2ユーザ定義データ型と関連付けられたデータは、データベースシステムにおいて互いから区別することができる。しかしながら、型作成者は依然としてRAW-ネイティブのフォーマット変換ルーチンを供給する責任がある。さらに、依然として、変換ルーチンを呼出すことに関連するオーバヘッドが、ユーザ定義型のためのデータがデータベースシステムとユーザ供給ルーチンとの間で受渡されるたびに生じる。
【0026】
特定的には、何らかのデータ操作を行なうためにmymethod1ルーチンが呼ばれるたびに、入力データ項目「a」のRAW属性がRAWデータ項目からTYPE1データ項目へと変換されなければならない。操作の後、TYPE1データ項目はRAWデータ属性に変換して戻されなければならない。これらの変換は、データベースシステムによって制御される揮発性メモリとユーザ供給ルーチンによって用いられる揮発性メモリとの間でデータ項目が受渡されるたびに行なわなければならない。同様にmymethod2ルーチンに対するいずれのコールも、RAW属性をTYPE2データ項目に変換することと、外部ルーチンを呼ぶことと、次にTYPE2データ項目をRAWデータ属性に変換して戻すこととを含む。
【0027】
上記に基づいて、型作成者が型作成者の選択するプログラム言語(C、JAVAなど)においてデータ型を構築することを可能にする機構を提供することが望ましいのは明らかである。さらに、データベースシステムがこれらのデータ型の内部構造を理解せずともデータベースシステムにそのような型を記憶させそれらにインデックスをつけさせることが望ましい。また、ユーザ定義型のデータが、データベース管理システムにおける他の言語環境からアクセス可能であり続けながら、同時にそれらのネイティブの言語環境においてはそれらのネイティブの形式として(Cの構造体またはJavaクラスとして)見えることを可能にする機構を提供することが望ましい。また、1組のデータがデータベース環境とそのネイティブ言語環境との間で受渡されるたびに変換を行なうことの必要を低減するまたはなくすことが望ましい。
【0028】
【発明の概要】
ネイティブな構造がデータベースシステムには知られていないデータ型に関連付けられるデータ項目をデータベースシステム内で扱うための方法および装置が提供される。データ項目は、データベースシステムによって理解されていないにもかかわらず、そのネイティブな構造でデータベースシステム内に記憶される。データ項目を記憶するため、データベースシステムは、そのデータ項目にネイティブのプログラミング環境のランタイムサブシステムによって、またはユーザによって提供されるピクリングルーチンを呼ぶ。ストレージからルーチンを取出すため、データベースシステムはアンピクリングルーチンを呼ぶが、アンピクリングルーチンもまた、ユーザまたは適当なランタイムサブシステムによって提供される。データベースがデータ項目をそのネイティブなフォーマットに維持するため、データ項目がデータベースシステムと、データ項目を操作する外部ルーチンとの間で受渡される際に変換は必要ではない。
【0029】
また、データベースシステム内でアクセスできるデータ項目の属性を宣言するための技術が提供される。ユーザは、データ項目がそのネイティブな環境において有する実際の属性とは異なり得る宣言された属性にアクセスするためにデータベースシステムが呼ぶルーチンを提供する。
【0030】
この発明は、限定としてではなく例として添付の図面に示され、図中では同じ参照番号は同様の要素を示す。
【0031】
【好ましい実施例の詳細な説明】
データベースシステムにユーザ実装のデータ型を記憶するための方法および装置を説明する以下の記載において、説明の目的で、この発明の完全な理解を促すために数多くの特定的な詳細が挙げられている。しかしながら、当業者には、この発明をこれらの特定の詳細なしに実施できることが明らかになるであろう。別の場合では、不必要にこの発明を曖昧にすることを避けるために周知の構造および装置はブロック図の形態で示している。
【0032】
ハードウェアの概要
図3は、この発明のある実施例を実装し得るコンピュータシステム300を示すブロック図である。コンピュータシステム300は、バス302または情報を通信するための他の通信機構と、バス302に結合された、情報を処理するためのプロセッサ304とを含む。コンピュータシステム300はまた、バス302に結合されプロセッサ304によって実行すべき命令および情報を記憶するためのランダムアクセスメモリ(RAM)または他の動的記憶装置などの主メモリ306を含む。主メモリ306はまた、プロセッサ304によって実行すべき命令の実行の間に一時変数または他の中間情報を記憶するのにも用いられる。コンピュータシステム300はさらに、バス302に結合されプロセッサ304のための静的情報および命令を記憶するための読取専用メモリ(ROM)308または他の静的記憶装置を含む。磁気ディスクまたは光ディスクなどの記憶装置310が、情報および命令を記憶するため設けられバス302に結合される。
【0033】
コンピュータシステム300は、コンピュータユーザに情報を表示するための、陰極線管(CRT)などの表示装置312にバス302を介して結合されていてもよい。英数字キーおよび他のキーを含む入力装置314は、バス302に結合され、プロセッサ304に情報およびコマンド選択を通信する。別のタイプのユーザ入力装置は、プロセッサ304に方向情報およびコマンド選択を通信し、かつ表示装置312上のカーソル移動を制御するための、マウス、トラックボールまたはカーソル方向キーなどのカーソル制御316である。この入力装置は典型的に、第1の軸(たとえばx)および第2の軸(たとえばy)の、2軸での2つの自由度を有し、これは装置が平面における位置を特定することを可能にする。
【0034】
この発明は、ユーザ実装のデータ型をデータベースシステムにおいて記憶するためのコンピュータシステム300の使用に関する。この発明の一実施例によれば、ユーザ実装のデータ型は、プロセッサ304が主メモリ306に含まれる1つ以上の命令の1つ以上のシーケンスを実行することに応答して、コンピュータシステム300上で実行されるデータベースシステム内に記憶される。このような命令は、記憶装置310などの別のコンピュータ可読媒体から主メモリ306内へ読込まれてもよい。主メモリ306に含まれる命令のシーケンスの実行により、プロセッサ304がここで説明する処理ステップを行なうことになる。代替の実施例では、この発明を実施するのに布線回路をソフトウェア命令の代わりに、またはソフトウェア命令と組合せて用いてもよい。このように、この発明の実施例は、ハードウェア回路およびソフトウェアのいずれの特定の組合せにも限定されるものではない。
【0035】
ここで用いられる用語「コンピュータ可読媒体」は、実行のためにプロセッサ304に命令を提供することにかかわるすべての媒体を指していう。このような媒体は数多くの形態をとることができ、これには不揮発性媒体、揮発性媒体および伝送媒体が含まれるが、これらに限定されるものではない。不揮発性媒体はたとえば、記憶装置310などの光ディスクまたは磁気ディスクを含む。揮発性媒体には、主メモリ306などの動的メモリが含まれる。伝送媒体には、バス302をなす配線を含む、同軸ケーブル、銅線および光ファイバが含まれる。伝送媒体はまた、電波および赤外線データ通信において生成されるもののような、音波または光波の形態をとっていてもよい。
【0036】
一般的な形態のコンピュータ可読媒体には、たとえば、フロッピーディスク、フレキシブルディスク、ハードディスク、磁気テープまたは他の磁気媒体すべて、CD−ROM、他の光学媒体すべて、穿孔カード、紙テープ、孔のパターンを有する他の物理媒体すべて、RAM、PROM、およびEPROM、FLASH−EPROM、他のメモリチップすべてまたはカートリッジ、以下に説明するような搬送波またはコンピュータが読むことのできる他の媒体すべてが含まれる。
【0037】
さまざまな形態のコンピュータ可読媒体が、実行のためにプロセッサ304に1つ以上の命令の1つ以上のシーケンスを与えることに関係し得る。たとえば、命令は初めに、遠隔地のコンピュータの磁気ディスクに担持されているかもしれない。遠隔地のコンピュータはその動的メモリに命令をロードして、命令をモデムを用いて電話回線を介して送信することができる。コンピュータシステム300が有するモデムが電話回線上のデータを受信し、赤外線送信機を用いてそのデータを赤外線信号に変換することができる。赤外線検出器は赤外線信号に載ったデータを受信し、適当な回路がそのデータをバス302上に出力することができる。バス302はそのデータを主メモリ306に運び、そこからプロセッサ304が命令を取出し実行する。主メモリ306によって受信された命令は、場合により、プロセッサ304による実行の前または後のいずれかにおいて記憶装置310に記憶されてもよい。
【0038】
また、コンピュータシステム300は、バス302に結合される通信インターフェイス318を含む。通信インターフェイス318は、ローカルネットワーク322に接続されるネットワークリンク320に結合される双方向データ通信を提供する。たとえば、通信インターフェイス318は、対応するタイプの電話回線に対するデータ通信接続をもたらすモデムまたはサービス総合デジタルネットワーク(ISDN)カードであってもよい。別の例としては、通信インターフェイス318は、互換性のあるLANへのデータ通信接続をもたらすためのローカルエリアネットワーク(LAN)カードであってもよい。無線リンクもまた実現され得る。このような実現例のいずれにおいても、通信インターフェイス318は、さまざまなタイプの情報を表わすデジタルデータストリームを担持する電気信号、電磁信号または光信号を送受信する。
【0039】
ネットワークリンク320は典型的には、1つ以上のネットワークを介して他のデータ装置に対するデータ通信を提供する。たとえば、ネットワークリンク320は、ローカルネットワーク322を介して、ホストコンピュータ324またはインターネットサービスプロバイダ(ISP)326によって運用されるデータ機器に対する接続をもたらし得る。そのISP326は、現在一般的に「インターネット」328と称されるワールドワイドパケットデータ通信ネットワークを介するデータ通信サービスを提供する。ローカルネットワーク322およびインターネット328はともに、デジタルデータストリームを担持する電気信号、電磁信号または光信号を用いる。さまざまなネットワークを介する信号と、ネットワークリンク320上および、デジタルデータをコンピュータシステム300と授受する通信インタフェース318を介する信号とは、情報を転送する搬送波の例示的な形態である。
【0040】
コンピュータシステム300は、ネットワーク、ネットワークリンク320および通信インターフェイス318を介して、メッセージを送信しプログラムコードを含むデータを受信することができる。インターネットの例では、サーバ330がインターネット328、ISP326、ローカルネットワーク322および通信インターフェイス318を介してアプリケーションプログラムに対する要求されたコードを送信するかもしれない。
【0041】
受信されたコードは、受信されるとともにプロセッサ304によって実行されてもよく、および/または後に実行するために記憶装置310または他の不揮発性ストレージに記憶されてもよい。このような態様で、コンピュータシステム300は搬送波の形態であるアプリケーションコードを得てもよい。
【0042】
不透明型の概要
この発明の一局面によれば、データベースシステムがサポートしていないデータ型の型作成者は、そのデータ型をデータベースシステムに登録する。登録において、データベースシステムにはそのデータ型についての情報が供給される。データ型について供給される情報にはたとえば、そのデータ型に対する名、そのデータ型の属性に対する名、そのデータ型をピクリングおよびアンピクリングするためのルーチンならびにそのデータ型の個別の属性をゲットおよびセットするためのルーチンが含まれるだろう。
【0043】
データベースシステムに供給される情報により、データベースシステムが、ユーザ定義データ型に属するデータ項目のネイティブな構造をピクリングし、これによってそのデータ項目をディスクに記憶できるようにし、そのデータ項目をアンピクリングしてそのデータ項目をそのネイティブな構造においてディスクから取出す機構を呼出すことが可能となる。データベース内の揮発性メモリ内に記憶される間、データ項目はそのネイティブ構造のままであるため、データベースシステムと外部ルーチンとの間で受渡される際に変換は必要ではない。
【0044】
この態様で登録されるユーザ定義データ型はここで「不透明型」と称するが、これは、このようなユーザ定義データ型に属するデータ項目が、データベースシステムにとって未知であるまたはデータベースシステムが理解しない構造でデータベースシステム内に存在するためである。
【0045】
型作成者の供給するピクリングルーチン
上に述べたように、不透明型登録プロセスにおいて、型作成者は不透明型とともに使用するためのピクリングおよびアンピクリングルーチンをデータベースシステムに供給してもよい。
【0046】
ピクリングルーチンは、不透明型(「ネイティブ構造」)を操作する外部ルーチンが期待する構造およびフォーマットから永続的に記憶するのに適したフォーマット(「記憶可能な構造」)へとデータを変換する。逆に、アンピクリングルーチンでは、記憶可能な構造からネイティブ構造へとデータを変換する。データベースシステムは、データベースがサポートするデータ型に対する組込ピクリングおよびアンピクリングルーチンを呼出すのと同じ条件の下でユーザ供給データ型に対するピクリングおよびアンピクリングルーチンを呼出す。特定的には、アンピクリングルーチンは、不揮発性ストレージからデータベースシステムによって制御される揮発性ストレージの中へユーザ定義型のデータ項目を読込むことに応答して呼出される。ピクリングルーチンは、データベースシステムによって制御される揮発性ストレージ内にあるユーザ定義型のデータ項目を不揮発性ストレージに記憶する前に呼出される。
【0047】
データベースシステムは不透明型のピクリングおよびアンピクリングルーチンを制御しているため、不透明型に関連付けられるデータ項目はデータベースシステム内にありながらそのネイティブな構造で存在することができる。データベースシステム内のデータ項目の構造およびフォーマットは、そのデータ項目を操作する外部ルーチンが必要とする構造およびフォーマットと同じであるため、データ項目をこれらのルーチンからデータベースシステムへおよびデータシステムからこれらのルーチンへ受渡す際に変換しなくてもよい。
【0048】
図4を参照して、APP1がそのデータを不透明型をサポートするデータベースシステム(DBS1)内に記憶することを可能にするために行なわなければならない変換動作を示すブロック図が示される。特定的には、APP1内で生成されるデータ項目は、ユーザTYPE1の構造およびフォーマットに従ってAPP1内で記憶され操作される。DBS1内では、データ項目はそのネイティブの構造およびフォーマットのままである。すなわち、データ項目が記憶のためにDBS1内に渡される際に変換は行なわれない。DBS1は、型作成者によって供給されるピクリングルーチンを呼ぶことによってデータ項目をピクリングしてこれをディスクに記憶する。
【0049】
APP1にディスクに記憶されるデータ項目を供給するために、DBS1は、型作成者が供給するアンピクリングルーチンを呼ぶことによってデータ項目をアンピクリングする。DBS1内でアンピクリングされるのだが、この際、データ項目はそのネイティブ構造およびフォーマットである。すなわち、アンピクリングされたデータ項目は、さらなる変換を全く行なうことなく、データ項目を操作するAPP1内のルーチンに供給することができる。
【0050】
データ項目がデータベースシステムと外部ルーチンとの間で受渡されるたびに変換を行なうことを回避する能力の価値は、変換動作のコストが増大するにつれ増す。たとえば、大きいデジタル画像のためのデータをユーザ定義データ型が保持すると仮定する。性能上の理由のため、外部ルーチンは圧縮されていない画像を操作するよう設計される。しかしながら、ディスク空間を節約するため、画像は圧縮フォーマットでディスクに記憶されることとなる。
【0051】
不透明型をサポートしないデータベースシステムでは、画像がデータベースシステムによって記憶される前に圧縮されることを確実にするため、外部ルーチンは画像をデータベースシステムに渡す前にすべての画像を圧縮しなければならないことになる。同様に、外部ルーチンはデータベースシステムから受取ったすべての画像を伸張しなければならないこととなる。
【0052】
不透明型に対するサポートを用いて、ユーザは、圧縮および伸張をそれぞれ行なうピクリングおよびアンピクリングルーチンを登録してもよい。これによって、圧縮に関連するコストは画像が実際にディスクに記憶される際またはディスクから取出される際にのみ生じることとなり、画像がデータベースシステムと外部ルーチンとの間で受渡されるたびに生じることにはならない。
【0053】
言語に基づいたピクリングおよびアンピクリング
この発明の別の局面によれば、不透明型は、データ項目がどのようにピクリングされアンピクリングされるかを言語環境が決定するような言語環境において作成してもよい。たとえば、JAVAにより実装されたデータ型はある特定のフォーマットを有するクラスファイル内に記憶され、JAVAランタイムサブシステムによりJAVAクラスをメモリ内にロードするための機構がもたらされる。このような条件の下では、特定のピクルおよびアンピクルルーチンを各々の個別のJAVAクラスに対して登録する必要はない。代わりに、データベースシステムは、どの不透明型がJAVAクラスであるかを示すメタデータを記憶する。データベースシステムはそこで、JAVAランタイムサブシステム内の適当なJAVAルーチンを自動的に呼出して、このようなJAVAクラスに属するオブジェクトをピクリングおよびアンピクリングする。
【0054】
不透明型の属性へのアクセス
不透明型登録プロセスにおいて、型作成者は、不透明型の属性に対する名と、不透明型の個別の属性をゲットおよびセットするためのルーチンとをデータベースシステムに供給してもよい。たとえば、型作成者はデータベースシステムに以下のステートメントを提示してもよい。
【0055】
create type foo as opaque object
(
attrib1,NUMBER;
attrib2,char(31);
)
この例では、「foo」の名を有する不透明型に対する不透明型宣言がデータベースシステムに提示される。不透明型宣言は、不透明型内の2つの属性に対する名を供給する(attrib1およびattrib2)。属性の各々に対し、この宣言はデータベースによりサポートされたデータ型を特定する。特定的に、attrib1に対して特定された、データベースによりサポートされるデータ型はNUMBERであり、attrib2に対して特定された、データベースによりサポートされる型はchar(31)である。しかしながら、この名および型情報があっても、不透明なデータ型は不透明なままである。なぜなら、データベースシステムはその不透明型のネイティブ構造を理解しないからである。よって、データベースシステムは補助なしにはfoo型のデータ項目内の個別の属性にアクセスすることができない。
【0056】
データベースシステムがfoo型のデータ項目内の個別の属性にアクセスするのを可能にするために、型作成者は、個別の属性にアクセスするためのルーチンをデータベースシステムに登録する。たとえば、ユーザは2つのルーチン、すなわち、foo.attrib1.get(a OUT NUMBER)およびfoo.attrib1.set(a IN NUMBER)を供給してもよい。foo.attrib1.getルーチンは、NUMBER型の入力パラメータの値としてfoo型のデータ項目のattrib1属性の値をセットする。foo.attrib1.setルーチンは、foo型のデータ項目のattrib1属性の値としてNUMBER型の入力パラメータの値をセットする。
【0057】
データベースシステムに供給される不透明型定義においてリストされる属性とネイティブなデータ型定義における属性との間に1対1のマッピングがある必要はない。したがって、型作成者には、データベースシステム環境内で、もしあれば、不透明型のどの部分にアクセスできるかということに関して高い柔軟度が許される。たとえば、型作成者は、ネイティブな言語宣言を用いて「web_page」データ型を作成してもよい。
【0058】
struct web_page
{
header:text;
body:text;
}
しかしながら、型作成者は、以下の不透明型宣言を用いてweb_page型をデータベースシステムに登録してもよい。
【0059】
create type web_page as opaque object:
(
firstword:char(10)
checksum: NUMBER;
)
不透明型宣言は、データベースシステムに、web_pageデータ項目が2つの属性、すなわち、firstwordおよびchecksumを有することを知らせる。web_pageデータ項目は、そのネイティブ環境においては実際には2つの異なる属性、すなわち、headerおよびbodyを有する。この例においてもそうであるように、不透明型宣言において特定される属性はデータ型のネイティブ属性のいずれにも対応していないこともあり得るため、これらはここで不透明型属性と称する。
【0060】
headerおよびbody属性は、web_page型のネイティブ構造を知っている外部ルーチンを呼出すことによってアクセスされ操作され得るが、データベースシステム内で直接アクセスすることはできない。データベースシステムはこれらの属性が存在していることさえも知らない。なぜなら、これらは不透明型宣言において名が挙がっていないためである。
【0061】
型作成者は、データベースシステム内で不透明型属性にアクセスすることを可能にするルーチンを作成する。これらのルーチンはそのデータ型のネイティブ環境において書かれているため、これらはそのデータ型のすべてのネイティブ属性を知っておりアクセスすることができる。型作成者によりデータベースシステムに供給される属性アクセスルーチンは、どの不透明型属性にアクセスすることができ、かつどのようにこれらにアクセスするかを定める。たとえば、web_pageデータ型の型作成者は、web_pageデータ項目のbody内の先頭の単語をデータベース変数に記憶するweb_page.firstword.get(a OUT Char(10))関数を登録してもよい。同様に、型作成者は、web_pageデータ項目のbodyにハッシュ関数を適用することによって生成されるチェックサムをデータベースのNUMBER変数に記憶するweb_page.checksum.out(a OUT Char(10))ルーチンを登録してもよい。
【0062】
前述の明細書において、この発明をその特定の実施例を引用して説明した。しかしながら、この発明のより広い精神および範囲から逸脱することなくさまざまな修正および変更をこれに対して行なってもよいことが明らかになるであろう。したがって、この明細書および図面は限定的な意味ではなく例示的なものとみなすべきである。
【図面の簡単な説明】
【図1】 あるアプリケーションが、そのアプリケーションが用いるデータ構造をサポートしないデータベースシステムを用いてそのデータを記憶する際に生じるさまざまな変換を示すブロック図である。
【図2】 あるアプリケーションが、RAWデータ型をサポートするがそのアプリケーションが用いるデータ構造をサポートしないデータベースシステムを用いてそのデータを記憶する際に生じるさまざまな変換を示すブロック図である。
【図3】 この発明の実施例が実装され得るコンピュータシステムのブロック図である。
【図4】 この発明の一実施例に従ってデータ項目がデータベースシステム内にそのネイティブフォーマットにおいて記憶される際に、データ項目がデータベースシステムと外部ルーチンとの間で受渡される際に変換されない様子を示すブロック図である。
Claims (22)
- データベースシステムにおいて、前記データベースシステムにとって未知であるネイティブ構造を有するデータ型に関連付けられるデータ項目を扱う方法であって、
前記データベースシステムが、前記データ型に対するピクリング機構およびアンピクリング機構を特定するユーザ入力を受けるステップと、
前記データベースシステムが、前記データ型に属するデータ項目をピクリングするための第1のユーザ指定ルーチンを登録するステップと、
前記データベースシステムが、前記データ型に属するデータ項目をアンピクリングするための第2のユーザ指定ルーチンを登録するステップと、
前記データ項目を不揮発性メモリに記憶する前に、前記データベースシステムが、ユーザ入力によって特定されたピクリング機構を呼出すステップを含み、前記ピクリング機構は前記データ項目を前記ネイティブ構造から記憶可能なフォーマットに変え、ピクリング機構を呼出すステップは、前記データ型に属するデータ項目をピクリングするための第1のユーザ指定ルーチンを呼出すことによって行なわれ、前記方法はさらに
前記データ項目を不揮発性メモリから読む際に、前記データベースシステムがユーザ入力によって特定されたアンピクリング機構を呼出すステップを含み、前記アンピクリング機構は前記データ項目を前記記憶可能なフォーマットから前記ネイティブ構造に変え、アンピクリング機構を呼出すステップは、前記データ型に属するデータ項目をアンピクリングするための第2のユーザ指定ルーチンを呼出すことによって行なわれ、前記方法はさらに
データ項目が前記データベースシステムと前記データ項目が前記ネイティブ構造であることを期待するルーチンとの間で受渡される際に前記データ項目を前記ネイティブ構造に維持するステップを含む、方法。 - 前記データ型に属するデータ項目をピクリングするための第1のユーザ指定ルーチンを呼出すステップは、データ型に関連付けられたプログラミング環境に対するランタイムサブシステムを呼出すことによって行なわれ、
前記データ型に属するデータ項目をアンピクリングするための第2のユーザ指定ルーチンを呼出すステップは、データ型に関連付けられたプログラミング環境に対するランタイムサブシステムを呼出すことによって行なわれる、請求項1に記載の方法。 - 前記データ型に属するデータ項目をピクリングするための第1のユーザ指定ルーチンを呼出すステップは、前記データ型に属するデータ項目をピクリングするための第1のユーザ実装ルーチンを呼出すことによって行なわれ、
前記データ型に属するデータ項目をアンピクリングするための第2のユーザ指定ルーチンを呼出すステップは、前記データ型に属するデータ項目をアンピクリングするための第2のユーザ実装ルーチンを呼出すことによって行なわれる、請求項1に記載の方法。 - 前記データベースシステムが、前記データ型と関連付けられた型宣言を受けるステップをさらに含み、前記型宣言は、前記データベースシステムがサポートするデータ型のものである1つ以上の属性を特定する、請求項1に記載の方法。
- 前記データベースシステムが、前記1つ以上の属性の第1の属性に関連付けられるユーザ指定の方法を登録するステップと、
前記データベースシステムが、前記第1の属性にアクセスするように前記ユーザ指定の方法を呼出すステップとをさらに含む、請求項4に記載の方法。 - 前記データベースシステムが、前記1つ以上の属性の第2の属性に関連付けられる第2のユーザ指定の方法を登録するステップと、
前記データベースシステムが、前記第2の属性にアクセスするように前記第2のユーザ指定の方法を呼出すステップとをさらに含む、請求項5に記載の方法。 - 前記ネイティブ構造は複数の属性を有し、前記複数の属性は前記型宣言によって特定される前記1つ以上の属性と1対1対応を有していない、請求項4に記載の方法。
- 前記ネイティブ構造は、前記型宣言によって特定される前記1つ以上の属性のいずれとも対応していない属性を有する、請求項7に記載の方法。
- 前記ネイティブ構造は、前記型宣言によって特定される前記1つ以上の属性に対応する属性を全く有していない、請求項7に記載の方法。
- データベースシステムにおいて、前記データベースシステムにとって未知であるネイティブ構造を有するデータ型と関連付けられるデータ項目を扱うための方法であって、
前記データベースシステムが、前記データ型に属するデータ項目をピクリングするための第1のユーザ指定ルーチンを登録するステップと、
前記データベースシステムが、前記データ型に属するデータ項目をアンピクリングするための第2のユーザ指定ルーチンを登録するステップと、
前記データ型に属するデータ項目を不揮発性メモリに記憶するために、前記データ型に属するデータ項目をピクリングするための前記第1のユーザ指定ルーチンを呼び出し、前記データ型に属するデータ項目を不揮発性メモリからロードするために、前記データ型に属するデータ項目をアンピクリングするための前記第2のユーザ指定ルーチンを呼び出すステップと、
前記データベースシステムが1組の属性を特定するユーザ入力を受けるステップと、
前記データベースシステムが、前記1組の属性における各属性に対して前記データベースシステムがサポートするデータ型を特定するユーザ入力を受けるステップと、
前記データベースシステムが、前記1組の属性の第1の属性にアクセスするための外部ルーチンを特定するユーザ入力を受けるステップとを含み、前記外部ルーチンは、前記データ項目が前記ネイティブ構造を有することを期待しており、前記方法はさらに、
前記データベースシステムが、前記少なくとも1つの属性にアクセスするための前記外部ルーチンを呼び出すステップを含み、前記外部ルーチンの呼出しに応答して、前記データベースシステムは前記外部ルーチンから前記第1の属性に関連付けられるデータ型に従って構成される値を受ける、方法。 - データ項目が前記データベースシステムと前記データ項目が前記ネイティブ構造であることを期待するルーチンとの間で受渡される際に前記データ項目を前記ネイティブ構造に維持するステップをさらに含む、請求項10に記載の方法。
- 前記ネイティブ構造は複数の属性を有し、前記複数の属性は前記1組の属性と1対1対応を有していない、請求項10に記載の方法。
- 第1の属性は、前記複数の属性のいずれとも対応していない、請求項12に記載の方法。
- データベースシステムにおいて、前記データベースシステムにとって未知であるネイティブ構造を有するデータ型と関連付けられるデータ項目を扱うための命令の1つ以上のシーケンスを担持するコンピュータ可読記録媒体であって、1つ以上のプロセッサによる命令の1つ以上のシーケンスの実行により、1つ以上のプロセッサが以下のステップ、すなわち、
前記データベースシステムが、前記データ型に対するピクリング機構およびアンピクリング機構を特定するユーザ入力を受けるステップと、
前記データベースシステムが、前記データ型に属するデータ項目をピクリングするための第1のユーザ指定ルーチンを登録するステップと、
前記データベースシステムが、前記データ型に属するデータ項目をアンピクリングするための第2のユーザ指定ルーチンを登録するステップと、
前記データ項目を不揮発性メモリに記憶する前に、前記データベースシステムが、ユーザ入力によって特定されたピクリング機構を呼出すステップとを行なうようにさせ、前記ピクリング機構は前記データ項目を前記ネイティブ構造から記憶可能なフォーマットに変え、前記ピクリング機構を呼出すステップは、前記データ型に属するデータ項目をピクリングするための第1のユーザ指定ルーチンを呼出すことによって行なわれ、前記コンピュータ可読記録媒体はさらに、
前記データ項目を不揮発性メモリから読む際に、前記データベースシステムが、ユーザ入力によって特定されたアンピクリング機構を呼出すステップを行わせ、前記アンピクリング機構は、前記データ項目を前記記憶可能なフォーマットから前記ネイティブ構造に変え、前記アンピクリング機構を呼出すステップは、前記データ型に属するデータ項目をアンピクリングするための第2のユーザ指定ルーチンを呼出すことによって行なわれ、前記コンピュータ可読記録媒体はさらに、
データ項目が前記データベースシステムと前記データ項目が前記ネイティブ構造であることを期待するルーチンとの間で受渡される際に前記データ項目を前記ネイティブ構造に維持するステップを行なうようにさせる、コンピュータ可読記録媒体。 - 前記データ型に属するデータ項目をピクリングするための第1のユーザ指定ルーチンを呼出すステップは、データ型に関連付けられたプログラミング環境に対するランタイムサブシステムを呼出すことによって行なわれ、
前記データ型に属するデータ項目をアンピクリングするための第2のユーザ指定ルーチンを呼出すステップは、データ型に関連付けられたプログラミング環境に対するランタイムサブシステムを呼出すことによって行なわれる、請求項14に記載のコンピュータ可読記録媒体。 - 前記データ型に属するデータ項目をピクリングするための第1のユーザ指定ルーチンを呼出すステップは、前記データ型に属するデータ項目をピクリングするための第1のユーザ実装ルーチンを呼出すことによって行なわれ、
前記データ型に属するデータ項目をアンピクリングするための第2のユーザ指定ルーチンを呼出すステップは、前記データ型に属するデータ項目をアンピクリングするための第2のユーザ実装ルーチンを呼出すことによって行なわれる、請求項14に記載のコンピュータ可読記録媒体。 - 前記データベースシステムが、前記データ型と関連付けられた型宣言を受けるステップを行なうための命令をさらに含み、前記型宣言は、前記データベースシステムがサポートするデータ型のものである1つ以上の属性を特定する、請求項14に記載のコンピュータ可読記録媒体。
- 前記データベースシステムが、前記1つ以上の属性の第1の属性に関連付けられるユーザ指定の方法を登録するステップと、
前記データベースシステムが、前記第1の属性にアクセスするように前記ユーザ指定の方法を呼出すステップとを行なうための命令のシーケンスをさらに含む、請求項17に記載のコンピュータ可読記録媒体。 - 前記データベースシステムが、前記1つ以上の属性の第2の属性に関連付けられる第2のユーザ指定の方法を登録するステップと、
前記データベースシステムが、前記第2の属性にアクセスするように前記第2のユーザ指定の方法を呼出すステップとを行なうための命令をさらに含む、請求項18に記載のコンピュータ可読記録媒体。 - 前記ネイティブ構造は複数の属性を有し、
前記複数の属性は、前記型宣言によって特定される前記1つ以上の属性と1対1対応を有していない、請求項17に記載のコンピュータ可読記録媒体。 - 前記ネイティブ構造は、前記型宣言によって特定される前記1つ以上の属性のいずれとも対応していない属性を有する、請求項20に記載のコンピュータ可読記録媒体。
- 前記ネイティブ構造は、前記型宣言によって特定される前記1つ以上の属性の1つに対応する属性を全く有していない、請求項20に記載のコンピュータ可読記録媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/149,889 US6286015B1 (en) | 1998-09-08 | 1998-09-08 | Opaque types |
US09/149,889 | 1998-09-08 | ||
PCT/US1999/020106 WO2000014656A1 (en) | 1998-09-08 | 1999-09-03 | Method for handling data items of user-defined data types |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002524801A JP2002524801A (ja) | 2002-08-06 |
JP3756407B2 true JP3756407B2 (ja) | 2006-03-15 |
Family
ID=22532228
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000569332A Expired - Lifetime JP3756407B2 (ja) | 1998-09-08 | 1999-09-03 | ユーザ定義データ型のデータ項目を扱うための方法 |
Country Status (8)
Country | Link |
---|---|
US (2) | US6286015B1 (ja) |
EP (1) | EP1112543B1 (ja) |
JP (1) | JP3756407B2 (ja) |
AU (1) | AU757734B2 (ja) |
CA (1) | CA2340739C (ja) |
DE (1) | DE69932524T2 (ja) |
HK (1) | HK1036335A1 (ja) |
WO (1) | WO2000014656A1 (ja) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7007037B2 (en) * | 2000-07-31 | 2006-02-28 | Oracle International Corporation | Opaque types |
US7089257B2 (en) * | 2001-09-27 | 2006-08-08 | Qualcomm, Inc. | Method and system for providing a unified data exchange and storage format |
EP1338979A1 (en) * | 2002-02-14 | 2003-08-27 | Sun Microsystems, Inc. | Method and apparatus for graphically defining and modifying of complex data types in relational databases |
US6873991B2 (en) * | 2002-10-02 | 2005-03-29 | Matter Associates, L.P. | System and method for organizing information |
US20050071342A1 (en) * | 2003-09-25 | 2005-03-31 | International Business Machines Corporation | Data processing for objects with unknown data structures |
US7711695B2 (en) * | 2005-01-18 | 2010-05-04 | Oracle International Corporation | Reducing memory used by metadata for duplicate user defined types |
US7650346B2 (en) * | 2005-04-01 | 2010-01-19 | Microsoft Corporation | User-defined type consistency checker |
US20070083549A1 (en) * | 2005-10-10 | 2007-04-12 | Oracle International Corporation | Method and mechanism for providing a caching mechanism for contexts |
US7660836B2 (en) * | 2006-03-09 | 2010-02-09 | International Business Machines Corporation | Controlling incremental backups using opaque object attributes |
US7958501B2 (en) | 2006-03-31 | 2011-06-07 | Sap Ag | System to disclose the internal structure of persistent database objects |
US7694185B2 (en) * | 2007-04-05 | 2010-04-06 | General Instrument Corporation | Method and apparatus for providing simplified control for device fault and event handling |
US9519591B2 (en) | 2013-06-22 | 2016-12-13 | Microsoft Technology Licensing, Llc | Latch-free, log-structured storage for multiple access methods |
CN106462540B (zh) | 2014-05-27 | 2020-06-30 | 三星电子株式会社 | 不可知数据代理 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60218142A (ja) * | 1984-04-13 | 1985-10-31 | Hitachi Ltd | デ−タの動的型変換方式 |
JPH02165353A (ja) * | 1988-12-20 | 1990-06-26 | Fujitsu Ltd | 対話型データ処理方式 |
US5491752A (en) * | 1993-03-18 | 1996-02-13 | Digital Equipment Corporation, Patent Law Group | System for increasing the difficulty of password guessing attacks in a distributed authentication scheme employing authentication tokens |
ATE305682T1 (de) * | 1994-07-19 | 2005-10-15 | Certco Llc | Verfahren zur sicheren anwendung digitaler unterschriften in einem kommerziellen verschlüsselungssystem |
CA2138302C (en) * | 1994-12-15 | 1999-05-25 | Michael S. Fortinsky | Provision of secure access to external resources from a distributed computing environment |
JP3426385B2 (ja) * | 1995-03-09 | 2003-07-14 | 富士通株式会社 | ディスク制御装置 |
US6061690A (en) * | 1997-10-31 | 2000-05-09 | Oracle Corporation | Apparatus and method for storage of object collections in a database system |
US6128621A (en) * | 1997-10-31 | 2000-10-03 | Oracle Corporation | Apparatus and method for pickling data |
US6112207A (en) * | 1997-10-31 | 2000-08-29 | Oracle Corporation | Apparatus and method which features linearizing attributes of an information object into a string of bytes for object representation and storage in a database system |
US6012067A (en) | 1998-03-02 | 2000-01-04 | Sarkar; Shyam Sundar | Method and apparatus for storing and manipulating objects in a plurality of relational data managers on the web |
-
1998
- 1998-09-08 US US09/149,889 patent/US6286015B1/en not_active Expired - Lifetime
-
1999
- 1999-09-03 JP JP2000569332A patent/JP3756407B2/ja not_active Expired - Lifetime
- 1999-09-03 AU AU58019/99A patent/AU757734B2/en not_active Expired
- 1999-09-03 EP EP99945418A patent/EP1112543B1/en not_active Expired - Lifetime
- 1999-09-03 CA CA002340739A patent/CA2340739C/en not_active Expired - Lifetime
- 1999-09-03 WO PCT/US1999/020106 patent/WO2000014656A1/en active IP Right Grant
- 1999-09-03 DE DE69932524T patent/DE69932524T2/de not_active Expired - Lifetime
-
2000
- 2000-07-31 US US09/629,541 patent/US6470348B1/en not_active Expired - Lifetime
-
2001
- 2001-09-04 HK HK01106218A patent/HK1036335A1/xx not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
JP2002524801A (ja) | 2002-08-06 |
HK1036335A1 (en) | 2001-12-28 |
CA2340739A1 (en) | 2000-03-16 |
US6470348B1 (en) | 2002-10-22 |
US6286015B1 (en) | 2001-09-04 |
DE69932524T2 (de) | 2007-03-08 |
AU5801999A (en) | 2000-03-27 |
EP1112543A1 (en) | 2001-07-04 |
CA2340739C (en) | 2007-01-09 |
DE69932524D1 (de) | 2006-09-07 |
AU757734B2 (en) | 2003-03-06 |
WO2000014656A1 (en) | 2000-03-16 |
EP1112543B1 (en) | 2006-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6963880B1 (en) | Schema evolution of complex objects | |
US6356946B1 (en) | System and method for serializing Java objects in a tubular data stream | |
US6012067A (en) | Method and apparatus for storing and manipulating objects in a plurality of relational data managers on the web | |
US6804671B1 (en) | Pluggable tablespaces for database systems | |
US5327559A (en) | Remote and batch processing in an object oriented programming system | |
US6678887B1 (en) | Customizing business logic and data sources by modifying methods defined within an API | |
US6931642B1 (en) | Data type mapping for external callouts | |
JP3756407B2 (ja) | ユーザ定義データ型のデータ項目を扱うための方法 | |
US20020078068A1 (en) | Method and apparatus for flexible storage and uniform manipulation of XML data in a relational database system | |
US7058655B2 (en) | Determining object graph and object graph projection | |
JP2004530216A (ja) | 異なるブロックサイズのテーブルスペースの統合 | |
US7007037B2 (en) | Opaque types | |
JP2000155679A (ja) | 共有デ―タ収集において安定反復子を作成する方法及びその装置 | |
US6549901B1 (en) | Using transportable tablespaces for hosting data of multiple users | |
US5764949A (en) | Query pass through in a heterogeneous, distributed database environment | |
KR20060121653A (ko) | 데이터베이스 저장소에서의 객체 존속을 위한 시스템 및방법 | |
US6421666B1 (en) | Mechanism for sharing ancillary data between a family of related functions | |
US6516354B2 (en) | Method and apparatus for efficient representation of variable length identifiers in a distributed object system | |
US7962484B2 (en) | LDAP bulk append | |
US7958154B2 (en) | Apparatus, system, and method for command manager support for pluggable data formats | |
US6763361B1 (en) | Object-oriented database abstraction and statement generation | |
US6493704B1 (en) | Method and apparatus for using metadata to dynamically generate a display page to solicit input from a user | |
US20050154715A1 (en) | Dynamic return type generation in a database system | |
US6725213B1 (en) | Method and mechanism for providing external procedures to a database system | |
US20030140081A1 (en) | Method and system of accessing shared resources using configurable management information bases |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050510 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20050809 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20050816 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050823 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20050913 |
|
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: 20051213 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051221 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 3756407 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100106 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110106 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120106 Year of fee payment: 6 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130106 Year of fee payment: 7 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130106 Year of fee payment: 7 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |