トップ :: G 物理学 :: G06 計算;計数




【発明の名称】 データベースシステム
【発明者】 【氏名】松浦 洋

【氏名】小倉 隆宏

【氏名】久保田 敦紀

【氏名】高野 誠

【要約】 【課題】汎用的で高い再利用性をもつエンタープライズJava Beansによるデータベースシステムを実現する。

【解決手段】クライアントからデータベースのコラムとデータを指定されると共に演算要求があったとき、指定されたコラムに対して指定されたデータの演算を行い、演算結果をクライアントに返すデータ演算手段(plusInt (String,int)224、minusInt(String,int)225、multiplyInt (String,int)226、divideInt (String,int)227、plusFloat(String,float) 229等)を、Javaのデータ型と演算(加、減、乗、除)毎に設けると共に、クライアントからデータベースのコラムを指定されると共にデータ取得要求があったとき、指定されたコラムのデータを取得しクライアントに返すデータ取得手段(currentIntValue (String)223、currentFloatValue(String)228等)を、Javaのデータ型毎に設けたことを特徴とする。
【特許請求の範囲】
【請求項1】 エンタープライズJava BeansのEntity Beansを用いてリレーショナルデータベースへのアクセスを容易にするデータベースシステムにおいて、クライアントからデータベースのコラムとデータを指定され、演算要求があったとき、前記指定されたコラムに対して前記指定されたデータの演算を行い、演算結果を前記クライアントに返すデータ演算手段を、Javaのデータ型と演算毎に設けたことを特徴とするデータベースシステム。
【請求項2】 エンタープライズJava BeansのEntity Beansを用いてリレーショナルデータベースへのアクセスを容易にするデータベースシステムにおいて、クライアントからデータベースのコラムを指定され、データ取得要求があったとき、指定されたコラムのデータを取得し前記クライアントに返すデータ取得手段を、Javaのデータ型毎に設けたことを特徴とするデータベースシステム。
【請求項3】 エンタープライズJava BeansのEntity Beansを用いてリレーショナルデータベースへのアクセスを容易にするデータベースシステムにおいて、クライアントからデータベースのコラムとデータを指定され、演算要求があったとき、前記指定されたコラムに対して前記指定されたデータの演算を行い、演算結果を前記クライアントに返すデータ演算手段を、Javaのデータ型と演算毎に設けると共に、クライアントからデータベースのコラムを指定され、データ取得要求があったとき、指定されたコラムのデータを取得し前記クライアントに返すデータ取得手段を、Javaのデータ型毎に設けたことを特徴とするデータベースシステム。
【発明の詳細な説明】【0001】
【発明の属する技術分野】本発明は、データベース管理技術に関し、JavaBeans を用いてデータベースに対してアクセスを行うフレームワークであるEntity Beansをリレーショナルデータベースに適用した場合のデータベースシステムに関するものである。
【0002】
【従来の技術】1999年 7月にSun Microsystemsが提唱した“Enterprise JavaBeans Specification,v1.1”(EJB )は、複数のベンダにより実装されており、主にデータベースアクセスへの簡素化、トランザクション管理に広く利用され始めている。EJB では2つのBeanを定義している。一つはSession Beanで、もう一つはEntity Bean である。本発明はEntity Bean に関するものである。
【0003】Entity Bean の構造を図3に示す。図3において、クライアント1は、EJBHome 21、22と、EJBObject 31〜36にアクセスすることにより、Container 11が管理するEnterprise Bean141、Enterprise Bean2 42に対してアクセスする。EJBHome 21は、EntityBean Instance 51〜53の作成、検索、削除を行う。EJBHome 22は、EntityBean Instance 54〜56の作成、検索、削除を行う。EJBObject331〜36は作成されたEntity Bean Instance 51〜56のリモートインタフェースを提供するオブジェクトである。
【0004】Enterprise Bean1 41、Enterprise Bean2 42等のEnterprise Bean の実装は、Enterprise Bean 提供者によって行われ、EJBHome 21、22、EJBObject31〜36クラスの実装はContainer 11の提供者によって行われる。
【0005】Entity Bean には2つの永続化手法がある。一つはBMP (Bean Managed Persistence)という手法であり、他はCMP (Container Managed Persistence )という手法である。BMP では、Enterprise Bean 41、42のInstance51〜56がデータベースへの永続化(データ生成/削除/検索/読み書き)を行うのに対し、CMP では、Container 11が、Enterprise Bean の永続化項目を抽出することにより、データのデータベースへの永続化(データ生成/削除/検索/読み書き)を行う。
【0006】CMP の方が、Enterprise Bean に永続化のための振る舞いを記述する必要がないので、Enterprise Bean を容易に生成できるメリットがあるが、反面あるBeanInstance にアクセスされた場合に、固定的な永続データ(属性)を全てデータベースとの間で同期を取る必要がある等のデメリットがあると考えられる。
【0007】図4は、Entity Bean のクライアント(Client)1からのBean Instance のcreate(args)92要求についてのシーケンスを示す。尚、このシーケンスはBMP の場合を示している。また、トランザクションの開始は、Client1からのJavax.transaction.UserTransaction.begin ()91によって行われる例を示しているが、このトランザクションの開始はContainer 11によって自動的に開始される場合もある。
【0008】Create(args)92を受け取ったEJB Home21は、Entity Bean Instance 51のejbCreate (args)93メソッドを呼び出す。EjbCreate (args)93は引数に従いBean Instance の活性化94を行い、同時にEntity Bean Instance 51に相当するデータをDatabase81内に作成要求する。リレーショナルデータベースでは、行を1行追加要求することになる。
【0009】また、DBMSは追加するDatabase81内のデータをTransaction Service 71内のResource Managerに登録96する。これは、トランザクションがロールバックされたとき等に、追加要求されたデータを元に戻すときに利用される。
【0010】次に、EJB Home21は新規に作成されたBean Instance に対応するリモートインタフェースを持つEJB objectをContainer 11内に作成する。さらにはEntityBean Instance41のejb PostCreate(args)98メソッドを呼び出す。さらに、Synchronization 61を新たにnew し、registerSynchronization (Synchoronization)100メソッドでTransaction Service 71に登録する。
【0011】このnew 99されたSynchronization 61オブジェクトは、Transaction がCommitされたときにTransaction Service 71から呼び出され、registerSynchronization (Synchronization)100後に、Transaction に関係したEntity BeanInstance群がDatabase81との間で同期をとる処理のトリガとなる。
【0012】図5は、クライアント(Client)1からのBean Instance のcreate(args)92要求をCMP で処理した場合のシーケンスを示すものである。図4と異なる部分は、94のBean Instance 活性化の後に、Container の1クラスであるEJB Home21が、当該Bean Instance 94の属性の中でDatabase内へ永続化する属性を抽出101し、Bean Instance 94に相当するデータをDatabase81内に作成要求102する。リレーショナルデータベースでは行を1行追加要求することになる。
【0013】図4と図5の比較から分かるように、CMP ではEntity Bean InstanceがDatabase内へのデータ作成要求をする必要がないので、Bean Provider にとってはプログラム作成量が少なくなるメリットがある。
【0014】図6は、クライアント(Client)1が、トランザクションの開始をJavax.transaction.UserTransaction.begin() で行った後に、Entity Bean instance 51のBusiness method のリモートインタフェースであるEJB Object31のBusinessmethod 111を呼び出す場合のシーケンスを示している。尚、この処理はBMPを前提としている。トランザクション開始後最初のBusiness method 111を呼び出されたEJB object31は、対応するEntity Bean instance 51のejbLoad ()112を呼び出す。Entity Bean instanceでは必要に応じて、Entity Bean instance 51に対応するDatabase81内のデータをEntity Bean instance 51に反映113する。
【0015】また、DBMSはこの処理でアクセスされたDatabase81内のデータをTransaction Service 71内のResource Managerに登録96する。その後にEJBObject 31は、Synchronization 61を新たにnew し、registerSynchronization (Synchoronization)100メソッドでTransaction Service 71に登録する。このようなContainer 特有の処理を行った後に初めて、EJBobject 31は対応するBusiness method 114を呼び出すことになる。同一トランザクション中の2度目の同一Entity object 31に対するBusiness method 115要求は、既にDatabase81の情報を必要に応じて反映しているので、直接Entity Bean instance 51の対応するBusiness method 116を呼び出す。
【0016】図7は、図6と同様にクライアント(Client)1が、トランザクションの開始をJavax.transaction.UserTransaction.begin ()で行った後に、Entity Beaninstance 51のBusiness method のリモートインタフェースであるEJB Object31のBusiness method 111を呼び出す場合のシーケンスを示している。ただし、この処理はCMP を前提としている。図6のBMP との違いは、Business method 111に対応して121に示すように、EJB Objectに対応するDatabase81内のデータを121でreadするところと、その取得したデータを永続属性抽出101後、その属性に反映するところである。
【0017】図6と図7の比較から分かるように、CMP では、Entity Bean InstanceがDatabase81内のデータをinstanceに反映する必要がないので、Bean Provider にとってはプログラム作成量が少なくなるメリットがある。逆に、図7に示すようにCMP では、Transaction に関わらず、Entity Bean instance 51に一律の永続属性をDatabase81から取得することになる。これらのデータはTransaction が終了するまでDatabase81内で排他制御されることになるので、Database81内の並列処理に制限を与えるデメリットがある。また、Container とDatabase81との間で流通されるデータ量も多くなる。
【0018】これに対して、図6に示すようにBMP では、Entity Bean Instance 51のejbLoad ()112でDatabase81のデータをEntity Bean Instance 51に反映するタイミングがあるが、この際に反映するデータはプログラマにまかせられる。また、ejbLoad ()112ではデータの反映を行わずに、Business method 114、116の中でデータベースにアクセスし、そのデータをEntity Bean Instance 51に反映する手法も有効である。この手法を使えは、各Business methodが必要とするデータだけをDatabase81から取得することが可能である。
【0019】図8は、クライアント(Client)1からのトランザクションのCommit要求をJavax.transaction.UserTransaction.commit()131関数でTransaction Service 71が受けた場合のシーケンスである。尚、この処理はBMP を前提としている。Transaction Service 71は、Javax.transaction.UserTransaction.commit()131に呼応してContainer のsynchronization に対してbeforeCompletion()132を要求する。このbeforeCompletion()132要求を受けたSynchronization 61は、当該Transaction に参加したEntity Bean Instance41に対してejbStore()133要求を行う。このejbStore()133で、Transaction 中に更新されたEntity Bean Instance 51の属性のDatabase81内への反映要求134を行う。
【0020】Transaction Service 71は、その後にDatabase81に対して2相コミットprepare ()135、commit()136を行う。さらに、Transaction Service 71はSynchronization に対して、afterCompletion ()137要求を行う。AfterCompletion ()要求を受けた場合のSynchronization の処理はContainer の設定によっても異なるが、活性化されていたEntity Bean Instanceを非活性化する場合等がある。
【0021】図9は、図8と同様に、クライアント(Client)1からのトランザクションのCommit要求をJavax.transaction.UserTransaction.commit()131関数でTransaction Service 71が受けた場合のシーケンスを示す。ただし、この処理はCMP を前提としている。BMP との違いは、BMP でEntity Bean Instance41がejbStore()の中で行っていた、属性のDatabase81への反映処理134をContainer の1クラスであるSynchronization が管理属性の抽出101、属性のDatabaseへのアップデート141により自動的に行うことである。
【0022】図8と図9の比較から分かることは、CMP は、Entity Bean のejbStore()のプログラミングをする必要がないため、BMP と比ベてプログラム作成の負担は軽減することである。ただし、図9に示すように、CMP では101と141の処理において、Entity Bean Instanceの全ての永続属性を抽出して、その永続属性をアップデートする必要がある。これらの永続属性はトランザクションが始まったときから、Database81内でロックされていることになるので、Instance41に対応する永続属性はDatabase81内でロックされる期間が長くなることになる。また、Entity Bean Instance41とDatabase81の間でやりとりされるデータ量も多くなる。
【0023】これに対し、図8に示すようにBMP では、Database81に対するアクセスは、そのトランザクションに必要な永続属性に対するアクセスで行うことができる。すなわち、図8のejbStore()133内でDatabase81内に対するアクセス記述をしてもよいし、ejbStore()133内ではDatabase81に対するアクセス記述を行わず、Business method の中でデータベースヘの書き込みを行う方法も有効である。
【0024】
【発明が解決しようとする課題】上述した従来のEntity Bean では、BMP 、CMP それぞれに次のような問題があった。BMP では、図4、図6、図8の例で示すように、データベースへのアクセスをプログラマが記述しなければならないので、工数がかかるという問題があった。
【0025】また、CMP では、図5、図7、図9の例で示すように、データベースとEnterprise Java Beans との間のデータのやり取りをContainer が行ってくれるので、プログラマが記述する必要がない利点があるが、データベースとEnterprise Java Beans との間で常に一律の永続情報がやり取りされるので、Enterprise JavaBeans の永続属性数が多い場合は、Enterprise Java Beans とデータベースとの間の情報量が必要以上に多くなったり、データベース内でトランザクション中、排他制御される対象データが必要以上に多くなる可能性があるという問題があった。
【0026】もう一つのCMP の問題点を図10に示す。この例は、BankBeanという名のEntity Bean で、普通/定期/外貨(アメリカドル)のそれぞれの預金残高を参照するものである。図10において、BankBeanに対するEJBHome 151の中のcreate(String)関数152とfind(String)関数153は、それぞれ指定されたStringをPrimaryKey (ここではid174)とするBankBean instance の活性化と検索を行う。
【0027】161、162、163のEJBObject はそれぞれ、171、172、173のBankBean Instance に対応し、BankBeanのリモートのBusiness method であるget-ordinary()164、get _time()165、get _america ()166を提供する。BankBean instance には、PrimaryKeyであるString型のid174(名前)の外に、integer 型のordinary175、 time 176、 america177でそれぞれの預金残高を永続情報としてもっている。
【0028】また、その残高を返す関数である、get _ordinary()178、get _time()179、get _america ()180が含まれる。永続情報に指定したordinary175、time176、america 177は、Transaction の開始と共に、Database81内のAccount Table 191からContainer 11によりアップデートされ、Transaction のCommit時にContainer 11によりDatabase81内のAccount Table191に格納される。
【0029】つまり、BankBeanはデータベースに対するアクセス処理を、そのBusiness method であるget _ordinary()178、get _time()179、get _america()180で記述する必要はなく、変数であるordinary175、time176、america 177の値をreturnする記述を行うだけでよいのである。
【0030】ただ、問題は、Bank Service Provider 181が他の預金(ここでは外貨(韓国のWON )を新預金として加えたときに生じる。この韓国預金に対しては、EJBObject内にリモートのBusiness Method が存在しないし、BankBeanにも対応する永続属性、及びBusiness Method が存在しない。このように新規のテーブル追加の際にEntity Bean の属性、メソッドを追加して、その永続属性の指定をEntityBean のContainer 内への配布時に指定しなくてはならないことになる。
【0031】この制約により、新預金追加のたびにクライアントからの要求を一時ストップしなくてはならないような事態が起きかねない。また、Entity Bean の変更はプログラマが人手で行うので、変更時にバグや食い違いが起きることが懸念される。
【0032】本発明は上述したCMP の問題を解決し、様々なリレーショナルデータベースのデータに対して汎用的に再利用できるEntity Bean を用いたデータベースシステム及びデータベースへのアクセス方法を提供することを目的としている。
【0033】
【課題を解決するための手段】上記の目的を達成するために、本発明によるデータベースシステムは、エンタープライズJava BeansのEntity Beansを用いてリレーショナルデータベースへのアクセスを容易にするデータベースシステムにおいて、クライアントからデータベースのコラムとデータを指定され、演算要求があったとき、前記指定されたコラムに対して前記指定されたデータの演算を行い、演算結果を前記クライアントに返すデータ演算手段を、Javaのデータ型と演算毎に設けたものである。
【0034】また、本発明による他のデータベースシステムは、エンタープライズJava BeansのEntity Beansを用いてリレーショナルデータベースへのアクセスを容易にするデータベースシステムにおいて、クライアントからデータベースのコラムを指定され、データ取得要求があったとき、指定されたコラムのデータを取得し前記クライアントに返すデータ取得手段を、Javaのデータ型毎に設けたものである。
【0035】また、本発明による他のデータベースシステムは、エンタープライズJava BeansのEntity Beansを用いてリレーショナルデータベースへのアクセスを容易にするデータベースシステムにおいて、クライアントからデータベースのコラムとデータを指定され、演算要求があったとき、前記指定されたコラムに対して前記指定されたデータの演算を行い、演算結果を前記クライアントに返すデータ演算手段を、Javaのデータ型と演算毎に設けると共に、クライアントからデータベースのコラムを指定され、データ取得要求があったとき、指定されたコラムのデータを取得し前記クライアントに返すデータ取得手段を、Javaのデータ型毎に設けたものである。
【0036】また、本発明によるデータベースシステムにおいて、前記演算は、加、減、乗、除のうちの少なくとも一つである。
【0037】
【作用】従って、本発明によれば、クライアントからデータベースのコラムとデータを指定されると共に演算要求があると、これに応じて、前記指定されたコラムに対して前記指定されたデータの演算をJavaのデータ型に応じて行い、その演算結果を前記クライアントに返す処理が実行される。
【0038】また、クライアントからデータベースのコラムを指定されると共にデータ取得要求があると、これに応じて、指定されたコラムのデータをJavaのデータ型に応じて取得し、クライアントに返す処理が実行される。上記により、様々なリレーショナルデータベースのデータ型に対して、汎用的にEntity Bean を再利用することができる。
【0039】以下、本発明の実施の形態を図面を参照して説明する。前述したように、CMP という手法は、データベースヘのアクセス内容をアプリケーション側で自動生成するためプログラマの負担が少ないという利点があるが、データベースにアクセスするための情報量が大きい、排他制御が多くなる、データベースのスキーマ変更に柔軟に対応できないといった欠点があった。
【0040】本実施の形態は、CMP のこれらの問題を解決すると共に、再利用性の高いコンポーネントとして提案するEntity Bean (本実施の形態においては、UtilityBean と命名する)を様々な環境で、プログラムレスで適用できることに特徴がある。
【0041】本実施の形態においては、BMP を利用するが、BMP の問題であるEntity Beanプログラム量の増大を軽減するために多くのアプリケーションでプログラムの変更なしにEntity Bean (Utitity Bean)が再利用できるようにしている。この新しい手法では、BMP におけるプログラム量の増大を軽減するために、リレーショナルデータベースに対する汎用的なアクセス手法(加減乗除)を利用可能としており、これにより、従来から利用していたアプリケーションを流用してデータベースヘのアクセス制御を行うことができ、新たなプログラムの追加を行う必要がなくなった。これにより、様々なリレーショナルデータベースのデータに対して、UtilityBean を汎用的に再利用できるという効果を得ることができる。
【0042】図1は、本発明の実施の形態によるEntity Bean (以下、Utility Bean231と呼ぶ)と、その主なBusiness Method と、そのリモートインタフェースを持つEJBObject であるUtility 211、及びそのライフサイクル、検索を主に司るEJBHome であるUtilityHome 201を示している。222はString型のidであり、対応するリレーショナルデータベースのPrimary Key と同じ項目をString型で保持する。
【0043】223〜229はUtility Beanの主なBusiness Method を示している。currentIntValue (String)223は、引数で指定されたString型のコラムに対する値を取得する関数である。plusInt (String,int)224は、第1引数で指定されたリレーショナルデータベースのコラムの値に対して第2引数で指定された整数値を加える関数である。minusInt(String,int)225は、第1引数で指定されたリレーショナルデータベースのコラムの値から第2引数で指定された整数値を減ずる関数である。multiplyInt (String,int)226は、第1引数で指定されたリレーショナルデータベースのコラムの値に対して第2引数で指定された整数値を乗ずる関数である。divideInt (String,int)227は、第1引数で指定されたリレーショナルデータベースのコラムの値を第2引数で指定された整数値で除する関数である。
【0044】また、currentFloatValue(String)228は、223と同様に指定されたコラムに対する値を取得する関数であるが、その値がFloat 型の場合である。plusFloat(String,float) 229は、224と同様に指定されたコラムに第2引数の値を加える関数であるが、その加える値がFloat 型となる。整数型の225〜227に相当するFloat 型の関数も同様に存在する。また、Short,Double型等の数値に対する関数も同様にして存在する。
【0045】尚、上記currentIntValue (String)223、currentFloatValue(String)228は、本発明におけるデータ取得手段を構成し、上記plusInt (String,int)224、minusInt(String,int)225、multiplyInt (String,int)226、divideInt (String,int)227、plusFloat(String,float) 229は、本発明におけるデータ演算手段を構成する。
【0046】201は221等のUtility Bean instance のライフサイクル、及びその検索を行うことを可能にするEJBHome であるUtilityHome を示している。その中には、インスタンスの活性化を行うcreate(String)202、検索を行うfind(String)203が存在する。両者の引数はどちらもPrimary Key であるidの値を示しており、そのidをもつInstanceの活性化、検索を行う。
【0047】211はUtility Bean instance 221のリモートインタフェースを提供するEJBObject であるUtility である。これはUtility BeanのBusiness Method である223〜229の関数のリモートインタフェースをクライアントに対して提供する。
【0048】図2に、上記Utility Beanを利用したアプリケーション適用例を示す。このシステムはバンキングシステムである。図2において、231はUtility Bean、241はWeb ブラウザ等を利用したお客様用の口座操作画面(お客様用ブラウザ)、251は銀行の顧客のID、パスワード等の認証を行うための情報をもつデータベース、261は新規顧客口座を関設する機能、預金(例えば韓国WON の外貨預金)を追加/削除する機能をもつ、銀行側の顧客、預金管理をするためのWEB ブラウザ等を利用した操作画面(銀行メンテナンスブラウザ)、271はデータベース281に対して、預金の追加/削除、現状預金種類の把握をするためのアプリケーションである。281は顧客の預金データを管理するためのデータベースである。
【0049】次に、このバンキングシステムにおけるUtility Bean231の利用方法について説明する。まず、銀行窓口等で新規顧客の申請(ここでは、顧客名を「松浦」と仮定する)を受けた銀行側は、銀行メンテナンスブラウザ261を用いて松浦を顧客管理データベース251に登録すると共に、UtilityHome 201のcreate(String)メソッドを利用して、松浦のUtility Beanインスタンスを活性化すると共に、EJBObject であるUtility を松浦用に作成する。
【0050】一方、顧客である松浦はお客様ブラウザ241を用いて、まず、認証後に、口座に対するお金の入金、引落し等の処理を行う。顧客は現在サービスされている預金種類を預金listをクリックすることにより知ることができる。これは、お客様ブラウザ241の預金リストが預金種類管理アプリケーション271のcurrentIntColumns ()273関数を呼び出すことにより、現在の預金種別を認識することができるからである。
【0051】また、預金種別を選択した後にその預金に対する残高を知りたい場合は、UtilityBean のリモート関数であるcurrentIntValue (String)223に指定した預金名がStringで指定され要求が送られることになる。同様にして、入金を行う場合は、plusInt (String,int)224が、引き落としを行う場合はminusInt(String,int)がそれぞれ預金の種類(String)と、額(int )を指定して呼び出されることになる。Utility Bean231は、呼び出された関数と指定された引数に従い、その顧客である松浦の指定された預金に指定された額の処理を行うことになる。
【0052】Utility Bean231の良さは、Stringを新預金名に指定することにより、柔軟に追加された預金に対するアクセスを行うことができることである。また、この例では銀行に対するアプリケーションに対して示したので、整数型の例を示したが、currentIntColumn()273の代わりにcurrentFloatColumn()等の関数で現在のFloat 型コラムのString配列を返すようにすれば、現状のFloat 型の型をもつコラムを認識してアクセスすることも可能である。
【0053】このように、Utility Bean231は、リレーショナルデータベースで列追加/削除が行われるような状況では柔軟に対応することを可能にしているので、多くのシステムで再利用が可能になる。
【0054】次に、本発明の実施の形態によるコンピュータ読み取り可能な記録媒体について説明する。図1、図2におけるUtility Bean231のプログラムを格納する記録媒体は、本実施の形態によるコンピュータ読み取り可能な記録媒体を構成する。
【0055】この記録媒体としては、光磁気ディスク、光ディスク、半導体メモリ、磁気記録媒体等を用いることができ、これらをROM、RAM、CD−ROM、フロッピーディスク、メモリカード等に構成して用いてよい。
【0056】またこの記録媒体は、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部のRAM等の揮発性メモリのように、一定時間プログラムを保持するものも含まれる。
【0057】また上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから伝送媒体を介して、あるいは伝送媒体中の伝送波により他のコンピュータシステムに伝送されるものであってもよい。上記伝送媒体とは、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体をいうものとする。
【0058】また、上記プログラムは、前述した機能の一部を実現するためであってもよい。さらに、前述した機能をコンピュータシステムに既に記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
【0059】従って、この記録媒体を図1、図2のシステム又は装置とは異なるシステム又は装置において用い、そのシステム又は装置のコンピュータがこの記録媒体に格納されたプログラムを実行することによっても、各実施の形態で説明した機能及び効果と同等の機能及び効果を得ることができ、本発明の目的を達成することができる。
【0060】
【発明の効果】以上説明したように本発明によれば、リレーショナルデータベースのコラムの追加/削除に、再コンパイルの必要なく、柔軟に対応することが可能になる。また、整数型、Float 型、short 型等、各データ型に対する加減乗除の演算を備えているので、様々なリレーショナルデータベース上のアプリケーションで再利用が可能になり、汎用的で高い再利用性をもつエンタープライズJava Beansによるデータベースシステムを実現することができる。
【出願人】 【識別番号】399041158
【氏名又は名称】西日本電信電話株式会社
【出願日】 平成12年10月3日(2000.10.3)
【代理人】 【識別番号】100064908
【弁理士】
【氏名又は名称】志賀 正武
【公開番号】 特開2002−108689(P2002−108689A)
【公開日】 平成14年4月12日(2002.4.12)
【出願番号】 特願2000−304142(P2000−304142)