JP2000148555A - オブジェクトモデルとリレーショナルモデルとの間でのマッピング方法 - Google Patents

オブジェクトモデルとリレーショナルモデルとの間でのマッピング方法

Info

Publication number
JP2000148555A
JP2000148555A JP10323368A JP32336898A JP2000148555A JP 2000148555 A JP2000148555 A JP 2000148555A JP 10323368 A JP10323368 A JP 10323368A JP 32336898 A JP32336898 A JP 32336898A JP 2000148555 A JP2000148555 A JP 2000148555A
Authority
JP
Japan
Prior art keywords
class
attributes
hash table
attribute
model
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
Application number
JP10323368A
Other languages
English (en)
Inventor
Satoru Takahashi
悟 高橋
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.)
Toppan Inc
Original Assignee
Toppan Printing Co Ltd
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 Toppan Printing Co Ltd filed Critical Toppan Printing Co Ltd
Priority to JP10323368A priority Critical patent/JP2000148555A/ja
Publication of JP2000148555A publication Critical patent/JP2000148555A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【課題】オブジェクトモデルを変更しても、リレーショ
ナルモデルを変更しなくても済むような、オブジェクト
モデルとリレーショナルモデルとの間でのマッピング方
法を提供することを課題とする。 【解決手段】あるクラスの一部の属性をハッシュテーブ
ルで表現し、前記クラスの残りの属性と前記ハッシュテ
ーブルとを、リレーショナルデータベースにおける表の
属性に対応させるか、又はあるクラスの属性をハッシュ
テーブルで表現し、前記クラスの親クラスの属性と前記
ハッシュテーブルとを、リレーショナルデータベースに
おける表の属性に対応させる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、RDB(リレーシ
ョナルデータベース)を用いてオブジェクトを保管する
のに必要なオブジェクトモデルとリレーショナルモデル
との間でのマッピング方法に関する。本明細書では、オ
ブジェクトという用語を、クラスのインスタンスという
意味に使う。
【0002】
【従来の技術】一般に、データ層、ビジネス層、クライ
アント層の3つの階層に区分して、アプリケーションソ
フトウェアの開発を行うことが多い。データ層は、デー
タベースとそれを管理するデータベース管理システムで
ある。ビジネス層は、クライアント層からの処理の依頼
に応じて、データベース管理システムにデータベースの
アクセスを依頼し、そのアクセス結果を利用して処理を
行い、その処理結果をクライアント層に返す。クライア
ント層は、ユーザの依頼に応じて、ビジネス層に処理を
依頼し、ビジネス層から返ってくる処理結果をユーザに
提示する。
【0003】アプリケーションソフトウェアを、オブジ
ェクト指向技術で開発する場合でも、データ層としてR
DBとRDBMS(リレーショナルデータベース管理シ
ステム)を利用することが多い。この場合、オブジェク
トをRDBに保管することになるが、この保管を行うた
めには、オブジェクトモデルとリレーショナルモデルと
の間でのマッピングが必要となる。一般に、このマッピ
ングは、クラスの属性と表の属性とを対応付けることで
ある。
【0004】しかし、このようなマッピングでは、オブ
ジェクトモデルを変更すると、それに応じてリレーショ
ナルモデルをも変更しなければならないという問題があ
る。例えば、あるクラスを継承する子クラスを追加する
と、子クラスに対応する表を新たに作成し、それに応じ
てRDBMSにRDBのアクセスを依頼する仕方を変え
るという変更作業が発生する。また、既に存在する子ク
ラスを変更すると、変更した子クラスに対応する表を変
更し、それに応じてRDBMSにRDBのアクセスを依
頼する仕方を変更するという作業が発生する。さらに、
既に存在する子クラスを削除すると、変更した子クラス
に対応する表を削除し、それに応じてRDBMSにRD
Bのアクセスを依頼する仕方を変えるという変更作業が
発生する。
【0005】これらの作業を自動的に行えるソフトウェ
アツールは存在するが、結局変更が必要であることは変
りなく、複数の箇所でアプリケーションソフトウェアを
利用している場合には、それぞれの箇所で変更作業を行
わなければならなかった。
【0006】
【発明が解決しようとする課題】そこで、本発明は、オ
ブジェクトモデルを変更しても、リレーショナルモデル
を変更しなくても済むような、オブジェクトモデルとリ
レーショナルモデルとの間でのマッピング方法を提供す
ることを課題とする。
【0007】
【課題を解決するための手段】本発明において上記課題
を達成するために、まず請求項1の発明では、あるクラ
スの一部の属性をハッシュテーブルで表現し、前記クラ
スの残りの属性と前記ハッシュテーブルとを、リレーシ
ョナルデータベースにおける表の属性に対応させること
を特徴とするオブジェクトモデルとリレーショナルモデ
ルとの間でのマッピング方法としたものである。
【0008】また請求項2の発明では、あるクラスの属
性をハッシュテーブルで表現し、前記クラスの親クラス
の属性と前記ハッシュテーブルとを、リレーショナルデ
ータベースにおける表の属性に対応させることを特徴と
するオブジェクトモデルとリレーショナルモデルとの間
でのマッピング方法としたものである。
【0009】また請求項3の発明では、上記クラスのイ
ンスタンスであるオブジェクトが、上記ハッシュテーブ
ルを作り、かつハッシュテーブルから属性値を取得する
ことを特徴とする請求項1又は2記載のオブジェクトモ
デルとリレーショナルモデルとの間でのマッピング方法
としたものである。
【0010】また請求項4の発明では、上記ハッシュテ
ーブルに対応する属性のデータ型がバイナリデータを格
納するものであることを特徴とする請求項1〜3の何れ
か1項記載のオブジェクトモデルとリレーショナルモデ
ルとの間でのマッピング方法としたものである。
【0011】
【発明の実施の形態】以下に、本発明の実施の形態を説
明する。
【0012】従来技術と同様に、本発明も、原則として
は、クラスの属性を、RDBの表の属性に対応させる。
1例を図1に示す。図1では、クラスのすべての属性
A、B、Cが、それぞれRDBの表の属性A、B、Cに
対応している。しかし、従来技術と異なるのは、RDB
の表には、バイナリデータを格納するための属性βがあ
ることである。オブジェクトモデルに変更があったと
き、変更分を、バイナリデータで表現されたハッシュテ
ーブルを属性βに格納することによって吸収し、リレー
ショナルモデルに変更がないようにすることが、本発明
の基本的な技術思想である。以下、オブジェクトモデル
の具体的な変更例をいくつか挙げて、本発明の実施の形
態を説明する。
【0013】<変更例1>図1のクラスに、新たに属性
D、E、Fを追加して、図2のクラスに変更されたとす
る。このとき、クラスからRDBの表へのマッピング、
すなわちクラスのインスタンスであるオブジェクトをR
DBの表の中に格納する手順は、以下のようになる。
【0014】クライアント層がビジネス層にオブジェ
クトの格納を要求する。 ビジネス層が、オブジェクトに、属性D、E、Fの値
を格納するハッシュテーブルを作ることを要求し、オブ
ジェクトがハッシュテーブルを作りビジネス層に渡す。
このハッシュテーブルは、キーが属性名、キーに対応す
る値が属性値である。従って、ハッシュテーブルは、図
2に示すように、キーには属性名D、E、Fが、キーに
対応する値には属性D、E、Fの値がそれぞれ入る。ま
た、このハッシュテーブルは、バイナリデータである。 ビジネス層が、オブジェクトの属性A、B、Cの値、
及びハッシュテーブルを、RDBの表の1行として、R
DBの表に格納することをRDBMSに依頼する。この
とき、図2に示すように、オブジェクトの属性A、B、
Cの値は、RDBの表の属性A、B、Cの値として、そ
してハッシュテーブルはRDBの表の属性βの値として
格納される。
【0015】RDBの表からクラスへのマッピング、す
なわちRDBの表の行からクラスのインスタンスである
オブジェクトを取得する手順は、以下のようになる。
【0016】クライアント層がビジネス層にオブジェ
クトの取得を要求する。 ビジネス層が、取得しようとするオブジェクトに対応
するRDBの表の行を検索することをRDBMSに依頼
し、RDBMSがその行を検索してビジネス層に渡す。 ビジネス層は、クラスの記述に従って、取得した行の
中で、オブジェクトの属性に対応する値、すなわち属性
A、B、Cの値を持つオブジェクトを生成する。 ビジネス層は、取得した行の中にあるハッシュテーブ
ルを、生成したオブジェクトに渡し、そのハッシュテー
ブルの中にある属性D、E、Fの値を、持つように依頼
する。オブジェクトは、ハッシュテーブルから、属性名
D、E、Fをキーとする値を取得し、それぞれの属性に
マッピングする。 ビジネス層は、クライアント層にオブジェクトを渡
す。
【0017】以上の変更例1の説明は、3つの属性を持
つクラスに3つの属性を新たに追加した場合であった
が、本発明方法は、任意の数の属性を持つクラスに任意
の数の属性を新たに追加した場合にも適用できることは
明らかである。つまり、任意の数の属性を持つクラスに
任意の数の属性を新たに追加しても、新たに追加した属
性の値をハッシュテーブルに格納し、このハッシュテー
ブルをRDBの表の属性βに格納すれば良い。
【0018】<変更例2>図3のように、人クラスのす
べての属性は、RDBの表の属性と対応している。上述
したように、属性βは、バイナリで表現されているハッ
シュテーブルを格納するためのものである。ここで、人
クラスを継承するスポーツ選手クラス(人クラスはスポ
ーツ選手クラスの親クラス、スポーツ選手クラスは人ク
ラスの子クラスと呼ばれる)を追加したとする。このと
き、スポーツ選手クラスからRDBの表へのマッピン
グ、すなわちスポーツ選手クラスのインスタンスである
オブジェクトをRDBの表の中に格納する手順は、以下
のようになる。
【0019】クライアント層がビジネス層にオブジェ
クトの格納を要求する。 ビジネス層が、オブジェクトに、属性“競技名”、
“視力”、“筋力”の値を格納するハッシュテーブルを
作ることを要求し、オブジェクトがハッシュテーブルを
作りビジネス層に渡す。このハッシュテーブルは、キー
が属性名、キーに対応する値が属性値である。従って、
ハッシュテーブルは、図4に示すように、キーには属性
名“競技名”、“視力”、“筋力”が、キーに対応する
値には属性“競技名”、“視力”、“筋力”の値がそれ
ぞれ入る。また、このハッシュテーブルは、バイナリデ
ータである。 ビジネス層が、オブジェクトの属性“生年月日”、
“性別”、“氏名”、“身長”、“体重”の値、及びハ
ッシュテーブルを、RDBの表の1行として、RDBの
表に格納することをRDBMSに依頼する。このとき、
図4に示すように、オブジェクトの属性の“生年月
日”、“性別”、“氏名”、“身長”、“体重”値は、
RDBの表の属性“生年月日”、“性別”、“氏名”、
“身長”、“体重”の値として、そしてハッシュテーブ
ルはRDBの表の属性βの値として格納される。
【0020】RDBの表からスポーツ選手クラスへのマ
ッピング、すなわちRDBの表の行からスポーツ選手ク
ラスのインスタンスであるオブジェクトを取得する手順
は、以下のようになる。
【0021】クライアント層がビジネス層にオブジェ
クトの取得を要求する。 ビジネス層が、取得しようとするオブジェクトに対応
するRDBの表の行を検索することをRDBMSに依頼
し、RDBMSがその行を検索してビジネス層に渡す。 ビジネス層は、スポーツ選手クラスの記述に従って、
取得した行の中で、オブジェクトの属性に対応する値、
すなわち属性“生年月日”、“性別”、“氏名”、“身
長”、“体重”の値を持つオブジェクトを生成する。 ビジネス層は、取得した行の中にあるハッシュテーブ
ルを、生成したオブジェクトに渡し、そのハッシュテー
ブルの中にある属性“競技名”、“視力”、“筋力”の
値を、持つように依頼する。オブジェクトは、ハッシュ
テーブルから、属性名“競技名”、“視力”、“筋力”
をキーとする値を取得し、それぞれの属性にマッピング
する。 ビジネス層は、クライアント層にオブジェクトを渡
す。
【0022】以上の変更例2の説明は、人クラスを継承
するスポーツ選手クラスを新たに追加した場合であった
が、本発明方法は、任意のクラスに任意の子クラスを新
たに追加した場合にも適用できることは明らかである。
つまり、任意のクラスに任意の子クラスを新たに追加し
ても、子クラスの属性の値を、ハッシュテーブルに格納
し、このハッシュテーブルをRDBの表の属性βに格納
すれば良い。
【0023】また、変更例1に挙げたクラスの属性の追
加、変更例2に挙げた子クラスの追加以外の変更が、オ
ブジェクトモデルに生じたとしても、ハッシュテーブル
の変更に留まる限り、リレーショナルモデルに変更は生
じない。例えば、ハッシュテーブルで表現された属性の
削除、ハッシュテーブルで表現された子クラスの変更又
は削除が、挙げられる。
【0024】
【発明の効果】本発明は、オブジェクトモデルに生じた
変更をハッシュテーブルで吸収するので、リレーショナ
ルモデルに変更を生じないようにすることができるとい
う効果がある。この結果、オブジェクトモデルを変更し
ても、RDBの表は不変なままであり、それゆえビジネ
ス層がRDBMSにRDBのアクセスを依頼する仕方も
不変なままである。
【図面の簡単な説明】
【図1】クラス属性の追加を行う前のマッピングを説明
する図。
【図2】クラス属性に追加があったときのマッピングを
説明する図。
【図3】クラスに子クラスを追加する前のマッピングを
説明する図。
【図4】クラスに子クラスを追加したときのマッピング
を説明する図。
【符号の説明】
A…属性 B…属性 C…属性 D…属性 E…属性 F…属性 β…属性

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】あるクラスの一部の属性をハッシュテーブ
    ルで表現し、前記クラスの残りの属性と前記ハッシュテ
    ーブルとを、リレーショナルデータベースにおける表の
    属性に対応させることを特徴とするオブジェクトモデル
    とリレーショナルモデルとの間でのマッピング方法。
  2. 【請求項2】あるクラスの属性をハッシュテーブルで表
    現し、前記クラスの親クラスの属性と前記ハッシュテー
    ブルとを、リレーショナルデータベースにおける表の属
    性に対応させることを特徴とするオブジェクトモデルと
    リレーショナルモデルとの間でのマッピング方法。
  3. 【請求項3】上記クラスのインスタンスであるオブジェ
    クトが、上記ハッシュテーブルを作り、かつハッシュテ
    ーブルから属性値を取得することを特徴とする請求項1
    又は2記載のオブジェクトモデルとリレーショナルモデ
    ルとの間でのマッピング方法。
  4. 【請求項4】上記ハッシュテーブルに対応する属性のデ
    ータ型がバイナリデータを格納するものであることを特
    徴とする請求項1〜3の何れか1項記載のオブジェクト
    モデルとリレーショナルモデルとの間でのマッピング方
    法。
JP10323368A 1998-11-13 1998-11-13 オブジェクトモデルとリレーショナルモデルとの間でのマッピング方法 Pending JP2000148555A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10323368A JP2000148555A (ja) 1998-11-13 1998-11-13 オブジェクトモデルとリレーショナルモデルとの間でのマッピング方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10323368A JP2000148555A (ja) 1998-11-13 1998-11-13 オブジェクトモデルとリレーショナルモデルとの間でのマッピング方法

Publications (1)

Publication Number Publication Date
JP2000148555A true JP2000148555A (ja) 2000-05-30

Family

ID=18153994

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10323368A Pending JP2000148555A (ja) 1998-11-13 1998-11-13 オブジェクトモデルとリレーショナルモデルとの間でのマッピング方法

Country Status (1)

Country Link
JP (1) JP2000148555A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007249345A (ja) * 2006-03-14 2007-09-27 Nec Corp マッピング装置、マッピング方法およびプログラム
JP2009223644A (ja) * 2008-03-17 2009-10-01 Nec Corp マッピング装置、マッピング方法およびプログラム
US10678608B2 (en) 2016-02-29 2020-06-09 Red Hat Israel, Ltd. Interacting with a source object via a virtual object

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007249345A (ja) * 2006-03-14 2007-09-27 Nec Corp マッピング装置、マッピング方法およびプログラム
JP2009223644A (ja) * 2008-03-17 2009-10-01 Nec Corp マッピング装置、マッピング方法およびプログラム
US10678608B2 (en) 2016-02-29 2020-06-09 Red Hat Israel, Ltd. Interacting with a source object via a virtual object

Similar Documents

Publication Publication Date Title
US6665863B1 (en) Data referencing within a database graph
US8010533B2 (en) System for executing a database query
US6728726B1 (en) Prefetching and caching persistent objects
US7650604B2 (en) Access management apparatus, access management method and program
US7251653B2 (en) Method and system for mapping between logical data and physical data
JP4716729B2 (ja) データに関するセキュリティを提供する方法、及びそのコンピュータ・プログラム
US7599948B2 (en) Object relational mapping layer
US7373341B2 (en) Computer readable medium, method and apparatus for preserving filtering conditions to query multilingual data sources at various locales when regenerating a report
KR100843651B1 (ko) 추상적 데이터베이스에서의 규칙 애플리케이션 관리
US20040015516A1 (en) Object graph faulting and trimming in an object-relational database system
US20100049692A1 (en) Apparatus and Method For Retrieving Information From An Application Functionality Table
US6886016B2 (en) Method and system for supporting multivalue attributes in a database system
US20030200223A1 (en) System and method for storing data
JPH09244896A (ja) 永続性オブジェクトのオブジェクトベース構築方法、コンピュータ読み取り可能媒体、および情報操作システム
US8458200B2 (en) Processing query conditions having filtered fields within a data abstraction environment
JP2006085717A (ja) .netデータ型およびインスタンスの持続性ストレージ
KR20060048418A (ko) 사용자 정의 형식의 지정 멤버의 지연 인출을 위한시스템과 방법
US7283996B2 (en) Converting expressions to execution plans
US20080319969A1 (en) Query conditions having filtered fields within a data abstraction environment
US20050021924A1 (en) Memory management tile optimization
JP2000148555A (ja) オブジェクトモデルとリレーショナルモデルとの間でのマッピング方法
US20110153679A1 (en) System and method to for implementing unique primary keys across enterprise databases
US6460028B1 (en) System and method for data organization
JPH0736756A (ja) オブジェクト管理方式
US7225201B1 (en) Extensible data type