JP4573710B2 - データベース管理装置、データベース管理方法及びデータベース管理プログラム - Google Patents

データベース管理装置、データベース管理方法及びデータベース管理プログラム Download PDF

Info

Publication number
JP4573710B2
JP4573710B2 JP2005177005A JP2005177005A JP4573710B2 JP 4573710 B2 JP4573710 B2 JP 4573710B2 JP 2005177005 A JP2005177005 A JP 2005177005A JP 2005177005 A JP2005177005 A JP 2005177005A JP 4573710 B2 JP4573710 B2 JP 4573710B2
Authority
JP
Japan
Prior art keywords
database management
management device
data
database
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.)
Active
Application number
JP2005177005A
Other languages
English (en)
Other versions
JP2006350741A (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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2005177005A priority Critical patent/JP4573710B2/ja
Publication of JP2006350741A publication Critical patent/JP2006350741A/ja
Application granted granted Critical
Publication of JP4573710B2 publication Critical patent/JP4573710B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Description

本発明は複数のデータベースを分散構成したデータベース管理装置、データベース管理方法及びデータベース管理プログラムに関する。
分散データベースシステムを実現する場合、分散データベースを構成するデータベースの定義情報をサイト上にどのように配置するかということが重要である。この配置情報の違いにより分散データベース処理の手法は異なってくる。
従来の分散データベースの手法としては、リレーショナルデータモデルや
オブジェクト指向データモデルに基づいたレコードフォーマットを用いるデータベース管理装置が知られている(特許文献1参照。)。また、水平・垂直分散などの観点でデータを分割して、分散するデータベース管理装置群を統括する大域サーバが登録データを受け付け、分散するデータベース管理装置群にデータを登録する等の処理を行う分散データベースシステム(集中型グローバルDD/D管理方式)が知られている(特許文献2参照。)。この特許文献2に更に記載される分散型グローバルDD/D管理方式では、大域サーバを使用せず分散する各データベース管理装置が自立的に応用プログラムからの要求を処理する。
Raghu Ramakrishnan, Johannes Gehrke、“Database Management Systems”、 Second Edition、GcGraw-Hill、「レコードフォーマット(record formats)」、P221−224 特許第002969627号公報
しかしながら、特許文献1のデータベース管理装置では、リレーショナルデータモデルやオブジェクト指向データモデルに基づいており、断片的なレコードを登録する際には、更新対象となるレコードを検索した上で更新を実行しなければならないため、処理の手間がかかってしまうという問題があった。これは特にセンシングされたデータのように膨大な断片データを登録するような応用においては、高速にデータを書き込めないという問題があった。
更に、特許文献2の集中型グローバルDD/D管理方式に基づく分散データベースシステムでは、データを格納する方法として水平・垂直分散などの観点でデータを分割して分散するデータベース管理装置群にデータを登録するが、検索を実行する際には大域サーバが問い合わせを受け付けて、分散するデータベース管理装置群へ問い合わせを実行する必要があった。このため、分散サーバ数の増加に従って大域サーバが性能上のボトルネックになってしまうという問題があった。また、分散型グローバルDD/D管理方式に基づく分散データベースシステムでは、データベース管理装置の負荷状況によらず応用プログラムが自由にアクセス対象であるデータベース管理装置を指定してしまうため、データベース管理装置の負荷を分散できずに性能が劣化してしまうという問題があった。
この他にも、水平・垂直分散を組み合わせてデータベースを分散させる分散データベース装置では、キー値を指定した問い合わせもしくは問い合わせの処理の中間結果として得られる断片レコード群に含まれる個々の断片レコード毎に問い合わせ処理を継続する場合、通常の水平分散の方法では指定のカラム値の範囲(特許文献1には「レンジパーティショニング」と記載)やカラム値(ハッシュによるパーティショニング)によってデータベースを分散しているため、問い合わせにおいて指定されていないカラムに対する条件を処理する場合は、アクセスするべきデータがどのデータベース管理装置に分散配置されているか判断できないため、全てのデータベース管理装置に対してアクセスが発生してしまい、性能が劣化するという問題があった。
本発明は上記問題点を鑑み、断片レコードの登録処理を迅速に行い、ディスク上の記憶領域に空きが生じさせないようにし、分散するデータベース管理装置数の増加に従っても大域サーバが性能上のボトルネックにならず、データの登録・問い合わせ処理において格納するデータ・アクセスするデータがどのデータベース管理装置にあるかを高速に判断して、データの登録・問い合わせ処理を高速に実行することができるデータベース管理装置、データベース管理方法及びデータベース管理プログラムを提供することを目的とする。
上記目的を達成するために、本発明の第1の特徴は、 [イ]水平垂直分散を組みあわせてデータを分散配置するデータベース管理装置であって、データを指定するキー値およびカラム名を入力とし、キー値およびカラム名により特定されるデータが格納されている若しくは格納すべきデータベース管理装置IDを出力とするハッシュ関数により、ハッシュ値を算出するハッシュ関数演算部と、[ロ]カラム名を入力とし、カラム名が指定するデータが格納されている1つ以上のデータベース管理装置IDであるデータベース管理装置ID群を出力とする分散関数であり、ハッシュ関数により得られるデータベース管理装置IDは当該分散関数により得られるデータベース管理装置ID群に含まれるという要件を満たす分散関数によりデータベース管理装置ID群を算出する分散関数演算部と、[ハ]クライアント端末からデータの処理要求を受けた場合、処理要求のキー値およびカラム名からハッシュ関数によりデータベース管理装置IDを得て、当該データベース管理装置IDで特定される自データベース管理装置、あるいは他のデータベース管理装置が受けたデータの処理要求を実行する第1の処理部と、[ニ]クライアント端末からデータの処理要求を受けた場合、処理要求のカラム名から分散関数によりデータベース管理装置ID群を得て、当該データベース管理装置ID群で特定されるそれぞれの、自データベース管理装置、あるいは他のデータベース管理装置に、受けたデータの処理要求を依頼し、依頼した処理結果を受ける第2の処理部とを備えるデータベース管理装置であることを要旨とする。
本発明の第の特徴は、[イ]水平垂直分散を組みあわせてデータを分散配置するデータベース管理装置によるデータベース管理方法であって、データを指定するキー値およびカラム名を入力とし、キー値およびカラム名により特定されるデータが格納されている若しくは格納すべきデータベース管理装置IDを出力とするハッシュ関数により、ハッシュ関数演算部がハシュ値を算出するステップと、[ロ]カラム名を入力とし、カラム名が指定するデータが格納されている1つ以上のデータベース管理装置IDであるデータベース管理装置ID群を出力とする分散関数であり、ハッシュ関数により得られるデータベース管理装置IDは当該分散関数により得られるデータベース管理装置ID群に含まれるという要件を満たす分散関数により分散関数演算部がデータベース管理装置ID群を算出するステップと、[ハ]クライアント端末からデータの処理要求を受けた場合、第1の処理部が処理要求のキー値およびカラム名からハッシュ関数によりデータベース管理装置IDを得て、当該データベース管理装置IDで特定される自データベース管理装置、あるいは他のデータベース管理装置が受けたデータの処理要求を実行するステップと、[ニ]クライアント端末からデータの処理要求を受けた場合、第2の処理部が処理要求のカラム名から分散関数によりデータベース管理装置ID群を得て、当該データベース管理装置ID群で特定されるそれぞれの、自データベース管理装置、あるいは他のデータベース管理装置に、受けたデータの処理要求を依頼し、依頼した処理結果を受けるステップとを備えるデータベース管理方法であることを要旨とする。
本発明の第の特徴は、請求項1または2に記載のデータベース管理装置を構成する各処理部としてコンピュータを機能させるためのデータベース管理プログラムであることを要旨とする。
本発明のデータベース管理装置、データベース管理方法及びデータベース管理プログラムによると、応用プログラムは事前にアクセス権を大域サーバから発行してもらうため、データの登録・問い合わせの実行時には大域サーバへの負荷集中をさけることができる。また、大域サーバでは全データベース管理装置の負荷情報に基づきアクセス権を発行するため、データベース管理装置の負荷を分散することができる。
データの登録の際は、ハッシュ関数を用いてそのデータを格納するべきデータベース管理装置を高速に特定し、追記方式で記憶領域にデータを書き込むため、高速にデータの登録処理を行うことができる。
問い合わせ処理の際は、ハッシュ関数・分散関数を用いて問い合わせを処理する上で必要となるデータを格納するデータベース管理装置を高速に特定することができる。
以下、本発明の実施の形態に係るデータベース管理装置、データベース管理方法及びデータベース管理プログラムについて説明する。尚、本発明の実施の形態において使用される機器、手法等は一例であり、本発明はこれらに限定されるものでないことは勿論である。
(実施の形態)
(分散データベース管理システム)
本発明の実施の形態に係る分散データベース管理システム100は、水平・垂直分散を組み合わせてデータベースを分散させる為のシステムであり、その装置して、図1に示すように、大域サーバ1、各々がデータベース2を備える複数のデータベース管理装置2、クライアント端末4等を備える。
大域サーバ1は複数のデータベース管理装置2から成る分散データベース管理装置群5のアクセス状況を管理し、特定のデータベース管理装置2に負荷がかからないように、アクセス状況に応じて、応用プログラムがアクセスするデータベース管理装置2を特定したり、そのアクセス期間を設定したりする。クライアント端末4は利用者が使用する端末であり、分散データベース管理装置群5へ対してデータの登録処理や検索処理を行うための応用プログラムを備えている。尚、クライアント端末4は、入力装置、出力装置、通信装置、主記憶装置、CPU等を備える通常のパーソナルコンピュータ等である。
(データベース管理装置)
データベース管理装置2は、図2に示すように、入力装置11、出力装置12、通信制御装置13、通信インタフェース14、中央制御装置(以下、CPUと記載)15、主記憶装置16、データベース部3、ハッシュテーブル記憶部18、関数記憶部19およびキャッシュ部20等を備えている。
入力装置11は、キーボード、マウス、入力信号を受信するインタフェース等である。フロッピー(登録商標)ディスク、ハードディスク等の外部記憶装置を介して入力されても良い。出力装置12は、処理結果等を出力するための装置であり、具体的にはプリンタ、液晶ディスプレイ、CRTディスプレイ等を指す。通信制御装置13は、大域サーバ1、他のデータベース管理装置2およびクライアント端末4に対しデータを送受信する為の制御信号を生成する。通信インタフェース14は、大域サーバ1、他のデータベース管理装置2およびクライアント端末4との間においてデータを送受信するための装置である。
CPU15はプロセス、各命令等の演算処理を行う。主記憶装置16は、主メモリとして、処理の手順を記述したプログラムや処理されるべきデータを一時的に記憶し、CPU15の要請に従ってプログラムの機械命令やデータを引き渡す。又、CPU15で処理されたデータは主記憶装置16に書き込まれる。主記憶装置16とCPU15はアドレスバス、データバス、制御信号等で結ばれている。キャッシュ部20は、主記憶装置17の補助メモリ、作業用メモリである。
データベース部3は、図3に示すようなID、カラム名、カラム値、時刻等の項目から構成される断片レコードを追記格納する。同一IDの断片レコードは統合され、まとまった1つの統合レコード3aと成る。
例えば、図3の統合レコード3aは、RFIDが212である断片レコード群を統合したものであり、カラムとして温度,経路(IDリーダ番号)等がある。データベース部3の記憶領域では常に空き領域の先頭アドレスを管理するだけであり、データの追記では第1断片レコードの次に第2断片レコードを書き込むように、記憶領域の空き領域の先頭に次々に追記する。連続領域にデータを書き込むことにより、記憶領域の無駄が出ず、また書き込みが高速に行える。
ハッシュテーブル記憶部18は、ハッシュテーブルを格納するための記憶領域である。関数記憶部19は、ハッシュ関数、分散関数を格納するための記憶領域である。
CPU15は、図2に示すように、データ登録処理部15a、検索処理部15b、ハッシュテーブル管理部15c、関数管理部15d、ハッシュ関数演算部15e、分散関数演算部15f、データ断片登録部15g、第1部分検索部15h、第2部分検索部15i、検索結果構成部15j、レコード統合部15kおよびプラン生成部15l等を備えている。
データ登録処理部15aは、クライアント端末4の応用プログラムからのデータの登録命令を処理する。検索処理部15bは、応用プログラムからのデータの検索命令を処理する。ハッシュテーブル管理部15cは、ハッシュテーブル記憶部18を管理する。ハッシュテーブルはデータの登録時にエントリ登録され、データ検索時のエントリ検索において使用される。関数管理部15dは、データの登録や検索時に用いられるハッシュ関数や分散関数を管理する。
ハッシュ関数演算部15eは、水平・垂直分散を組み合わせてデータベースを分散させる分散データベースにおいて、キー値(レコードID)とカラム名のペアの入力により、そのデータが格納されている若しくは格納すべきデータベース管理装置IDとデータ断片IDを組み合わせたハッシュ値を返却する関数を算出する。
分散関数演算部15fは、カラム名を入力することで、そのデータが格納されている若しくは格納すべきデータベース管理装置IDの集合を返却する分散関数を算出する。
データ断片登録部15gは、レコードの一部(断片レコード)をデータベース部3の記憶領域に追記方式で格納する。データを格納するべきデータベース管理装置2は上記のハッシュ関数を用いて特定される。
第1部分検索部15hは、問い合わせ処理の際のWHERE句の処理にて使用され、分散関数を用いて、検索に必要となるデータを格納している1つ以上のデータベース管理装置IDを特定し、このデータベース管理装置2が実行可能な問い合わせ分の部分を送信して検索を実行する。
第2部分検索部15iは、問い合わせ処理の際のWHERE句の処理にて使用され、検索の中間結果より特定されたデータのキー値(レコードID)とカラム名のペアとハッシュ関数を用いて、検索に必要となるデータを格納している1つ以上のデータベース管理装置IDを特定する。更に、このデータベース管理装置2が実行可能な問い合わせ文(句)を送信して検索を実行する。
検索結果構成部15jは、問い合わせ処理の際のSELECT句の処理にて、最終的な検索結果を構成する。レコード統合部15kは、断片レコードからレコードを復元して、問い合わせ処理を実行する。プラン生成部15lはWHERE句の処理を行う際のプランを生成する。
(大域サーバ)
大域サーバ1は、図4に示すように、入力装置21、出力装置22、通信制御装置23、通信インタフェース24、CPU25、主記憶装置26、負荷情報記憶部27およびアクセス権情報記憶部28等を備えている。
負荷情報記憶部27は、CPUコストやIOコスト等の負荷情報を格納する。アクセス権情報記憶部28は、応用プログラムが使用可能なデータベース管理装置2およびそのデータベース管理装置2へのアクセス許可期間等のアクセス権情報を格納する。
CPU25は、負荷情報収集部25aおよびアクセス権管理部25b等より構成される。負荷情報収集部25aは分散する全てのデータベース管理装置2のCPUコストやIOコスト等の負荷情報を定期的収集し、負荷情報記憶部27に書き込む。
アクセス権管理部25bは、問い合わせやデータの登録時の大域サーバへのアクセスの集中を防ぐため、応用プログラムが負荷の低いデータベース管理装置を利用するよう制御し、問い合わせ処理、検索処理等を負荷分散する。アクセス権管理部25bは統計処理部25cおよびアクセス権算出部25d等を備えている。
統計処理部25cは、最も負荷の低いデータベース管理装置2を決定する基準となる負荷情報を収集し、統計的にデータ処理する。
アクセス権算出部25dは、応用プログラムからの要求に応じて、その応用プログラムがアクセス可能なデータベース管理装置2と、アクセスを許可する期間を算出して応用プログラムに返却する。アクセス可能なデータベース管理装置2としては、収集した負荷情報を基に、その時に負荷が軽いデータベース管理装置2が選択、決定される。
他の装置については、データベース管理装置2と同様であるため説明を省略する。
(分散データベース管理システムの動作)
分散データベース管理システム100の主な動作として、
1. データベース管理装置2の初期化処理
2. 大域サーバ1の情報収集処理
3. 大域サーバ1のアクセス権発行処理
4. データベース管理装置2のデータ登録処理
5. データベース管理装置2の問い合わせ処理
6. データベース管理装置2のWHERE句処理
7. データベース管理装置2のWHERE句内の条件式処理
8. データベース管理装置2のSELECT句処理
が挙げられる。以下、これらの動作について各々図面を参照して説明する。
(データベース管理装置の初期化処理)
以下、データベース管理装置2の初期化処理について図5のフローチャートを参照して説明する。
(a)先ずステップS11においては、1つのデータベース管理装置2のハッシュ関数演算部15eが、データ分散処理に使用するハッシュ関数を算出する。ハッシュ関数の算出では、既に入力された断片レコードの値のヒストグラムなどの統計情報を用いて、今後入力されると断片レコードのキー値の集合が均一にハッシュされるよう関数h1を決定する。ハッシュ関数の決定方法については、イントロダクショントゥアルゴリズム(introduction to algorithms、著者: Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein、出版社: The MIT Press
)等の書籍や、SHA-1、MD5といったものが広く知られている。
また分散関数演算部15fが、分散関数h2を算出する。ハッシュ関数h1、分散関数h2は、少なくとも以下のような入力と出力の対応表を個々のデータベース管理装置2の関数記憶部19が保持することで実装可能である。つまり、h1とh2は、
h1(入力:レコードのキー値,カラム名)→(出力:データベース管理装置ID,レコードのキー値のハッシュ値)
h2(入力:カラム名)→(出力:データベース管理装置ID)の集合
という関数となる。但し、h1(キー値,カラム名)によって得られるデータベース管理装置IDはh2(カラム名)により得られるデータベース管理装置ID群に含まれる。h1はレコードのキー値とデータベースのスキーマにおけるカラム名(もしくはテーブル名とカラム名)を入力とし、ハッシュ値を演算する。そのハッシュ値は複合的なハッシュ値であり、分散するデータベース管理装置2のIDと入力したレコードのハッシュ値である。
h2はデータベース部3のスキーマにおけるカラム名、若しくはテーブル名とカラム名を入力とし、分散するデータベース管理装置2のIDの集合を返却する。
(b)ステップS12においては、決定されたハッシュ関数を、通信網を介して、全てのデータベース管理装置2(分散データベース管理装置群5)へ送信する。
(c)ステップS13においては、全てのデータベース管理装置2の関数管理部15dが、同じハッシュ関数を受け取り、関数記憶部19に格納する。更にハッシュテーブル管理部15cがこのハッシュ関数を基にハッシュテーブルを作成する。作成されたハッシュテーブルは各々のハッシュテーブル記憶部18に格納される。
(大域サーバの情報収集処理)
次に大域サーバ1が分散データベース管理装置群5から負荷情報を収集する処理について図6のフローチャートを参照して説明する。
(a)先ずステップS21において、負荷情報収集の収集契機を大域サーバ1の管理者が入力する。収集契機は、定期的な時間間隔を空ける方法や、データベース管理装置2が一定の負荷以下の場合に契機とする方法等によって決定する。またこれらの基準は、分散データベース管理装置群5で統一したものを利用する方法、また個々のデータベース管理装置2毎に異なるものを利用する方法がある。
(b)ステップS22においては、図4の負荷情報収集部25aは、指定された収集契機に従って、分散データベース管理装置群5からIOコストやCPUコスト等の負荷情報を収集して、大域サーバ1が有する図4の負荷情報記憶部27に書き込む。
(c)ステップS22の処理はステップS23にて大域サーバ1の管理者が停止を指定しない限り実行される。停止が指定されたら、負荷情報の収集フローを終了する。
(大域サーバのアクセス権発行処理)
次にクライアント端末4の応用プログラムからの要求に応じて、大域サーバ1がアクセス権を発行する処理について図7のフローチャートを参照して説明する。
(a)先ずステップS31において、アクセス権管理部25bがクライアント端末4の応用プログラムからアクセス権の発行要求を受け付ける。
(b)ステップS32においては、統計処理部25cが収集した全てのデータベース管理装置2のCPU/IO負荷情報を利用して、アクセス権算出部25dは、アクセス権として、応用プログラムがアクセスするべき最も負荷の低いデータベース管理装置2とそのデータベース管理装置2へのアクセス期間を算出する。算出されたアクセス権はアクセス権情報記憶部28に格納される。
アクセス期間については、過去のデータベース管理装置のCPU/IO負荷情報と既に応用プログラムに対して割り当てているアクセス権とを参照し、各々のデータベース管理装置2の負荷の変化を予測する。これにより、負荷が低いアクセス期間を決定する。
(c)ステップS33においては、通信網を介して、これらのアクセスが許可されたデータベース管理装置2とそのアクセス期間を、アクセス権として応用プログラムに返却する。
(データベース管理装置のデータ登録処理)
次に、クライアント端末4の応用プログラムより登録要求を受け、アクセス権にて決定されたデータベース管理装置2がデータを登録する際の動作について図8のフローチャートを参照して説明する。
(a)ステップS41において、クライアント端末4よりデータ登録要求を受けたデータ登録処理部15aは、入力された断片レコードのキー値とカラム名をハッシュ関数h1に入力し、データベース管理装置IDを得る。このデータベース管理装置IDを用いて、登録された断片レコードを登録するべきデータベース管理装置2が特定される。
例えば、図3の第1断片レコードではキー値は212であり、カラム名は温度である。これらがハッシュ関数h1に入力されることになる。
(b)ステップS42においては、登録するべきデータベース管理装置2が、自装置であるか他装置であるかを判定する。自装置である場合はデータ断片登録部15gが断片レコードを自装置のデータベース部3に登録する。またハッシュテーブル管理部15cはこのデータ登録をハッシュテーブルのエントリとしてハッシュテーブル記憶部18に追記する。ハッシュテーブルにおけるエントリの追加場所については、ハッシュ関数h1から得られるもう一つの結果であるレコードのキー値のハッシュ値を用いて決定される。
(c)他装置である場合は、登録要求があった断片レコードを指定された他装置に送信し、他装置のデータベース部3に登録するよう依頼する。
(データベース管理装置の問い合わせ処理)
次にクライアント端末4の応用プログラムより問い合わせを受けたデータベース管理装置2が、問い合わせを処理する際の動作について図9のフローチャートを参照して説明する。
(a)ステップS51においては、受信した問い合わせを解析し、問い合わせのパース木を作成する。
(b)ステップS52においては、問い合わせのWHERE句を処理するサブルーチンを実行する。
(c)ステップS53においては、SELECT句を処理するサブルーチンを実行する。
(データベース管理装置のWHERE句処理)
次にステップS52のWHERE句を処理するサブルーチンについて図10のフローチャートを参照して説明する。
(a)ステップS61においては、プラン生成部15lがWHERE句を実行するプランを作成する。実行プランでは、WHERE句をAND/OR/括弧により分割された最小の条件式の処理を並列若しくは直列に組み合わせた実行プランを作成する。例えば、a=5 AND b>3 AND c=10というWHERE句の場合、最小の条件式は、a=5、b>3、c=10である。
この例では可能な実行プランは、図11(a)に示す完全に直列なプラン1、図11(b)に示す一つの条件式だけを並列に実行するプラン2、図11(c9に示す2つの条件を並列に実行するプラン3である。
条件式が3つあるためプラン2は3種類あるが、図11(b)ではb>3だけを並列に実行するプランを記述している。条件式が3以上ある場合は、平行に実行可能な条件式を3つ以上にするプランがある。一般的に知られている分散問い合わせの最適化技術を利用して、最も高速に処理できる実行プランを選択し、そのプランを実行する。
(b)ステップS62においては、第1部分検索部15hおよび第2部分検索部15iによりWHERE句内の条件式処理が行われる。詳細は次項にて説明する。
(データベース管理装置のWHERE句内の条件式処理)
次に第1部分検索部15hおよび第2部分検索部15iによる条件式の処理方法について図12のフローチャートを参照して説明する。
(a)先ずステップS71において、WHERE句にキー値が指定されていない場合は、第1部分検索部15hを用いて検索対象となる断片レコードが登録されているデータベース管理装置2を判定する。またWHERE句にキー値が指定されている場合は、第2部分検索部15iを用いて検索対象となる断片レコードが登録されているデータベース管理装置2を判定する。
(b)ステップS72においては、特定されたデータベース管理装置2が自装置他装置かを判定し、自装置であればステップS73において後述する条件式の処理を行う。
(c)他装置と判定されるとステップS74にて特定された他装置(データベース管理装置2)に条件式を送信し、条件式結果値を送信するように依頼する。ステップS75では他装置より条件式結果値を受信する。
条件式の処理について、プラン毎に説明すると、プラン1では、最初にa=5を処理して条件を満たす断片レコード群を特定する。これは後述するWHERE句中の条件式の処理において、分散関数h2にカラム名aを入力することで、その結果としてカラム名aのデータを管理する1つ以上のデータベース管理装置2を特定する。そして特定したデータベース管理装置2毎にa=2を処理して、結果として断片レコード群を得る。
次に、個々の断片レコード毎にb>3を処理する。後述するWHERE句中の条件式の処理において、ハッシュ関数h1にキー値とカラム名bを入力することで、該当レコードのbのカラム断片を格納する1つ以上のデータベース管理装置2を特定する。そして特定したデータベース管理装置2毎にb>3を処理して、結果として断片レコード群を得る。
最後に、個々の断片レコード毎にc=10を処理する。これは後述するWHERE句中の条件式の処理において、ハッシュ関数h1にキー値とカラム名cを入力することで、該当レコードのcカラム断片を格納する1つ以上のデータベース管理装置2を特定する。そして特定したデータベース管理装置2毎にc=10を処理して、結果として断片レコード群を得る。
プラン2では、a=5の処理とb>3の処理を平行に実行する。次に、a=5の結果得られた断片レコード毎にc=10を処理する。最後に、b>3の結果得られる断片レコード群とc=10を処理して得られた断片レコードの積集合を演算する。
プラン3では、全ての条件を平行に実行し、得られた断片レコード群の積集合を演算する。
(データベース管理装置のSELECT句処理)
次にステップS53にて検索結果構成部15jがSELECT句を処理するサブルーチンについて図13のフローチャートを参照して説明する。
(a)先ずステップS81において、検索結果構成部15jがWHERE句で算出された断片レコード毎にハッシュ関数h1を用いて、該当キー値とSELECT句で指定されたカラム名を入力し、該当レコードの指定されたカラム断片を格納するデータベース管理装置を1つ以上特定する。
(b)ステップS82においては、特定されたデータベース管理装置2が自装置他装置かを判定し、自装置であればステップS83においてハッシュテーブルから、検索対象の断片レコードを特定し、カラム値を取得する。
(c)他装置と判定されるとステップS84にて特定された他装置(データベース管理装置2)にハッシュテーブルから、検索対象の断片レコードを特定し、カラム値を取得するよう依頼する。ステップS85では他装置よりカラム値を受信する。最後にレコード統合部15kがデータベース部3に格納される断片レコードからレコードを復元して、問い合わせ処理を実行する。
このため通常の問い合わせ処理を可能にしながら、連続領域にデータを追記でき、登録処理は高速に行われる。
(実施例)
次に上記の分散データベース管理システム100の動作の実施例について図14を参照して説明する。図14はサプライチェーンマネージメントにおける応用例であり、クライアント端末4が応用プログラムにて「物品,212の運搬(流通)経路において、室温30度以上であった区間(IDリーダ番号)を調べたい」といった問い合わせを実行している。これはSQLで、「SELECT
IDリーダ番号 FROM 流通物品 WHERE RFID=212 AND 温度>30」と表記される。
この問い合わせがデータベース管理装置2にて実行されるとすると、まずこのSQLをパースに問い合わせ木に変換する。次にWHERE句の処理を行う。この例では、温度>30の条件式を処理するため、キー値が212、カラム名が温度である断片レコードを格納するデータベース管理装置2をハッシュ関数h1を用いて特定し、結果として4を得る。
そして4で指定されるデータベース管理装置2に対して、温度>30の条件式を送信し、条件を満たす断片レコード群(キー値が212)を特定し返却してもらう。
最後にSELECT句の処理を行う。キー値が212、カラム名がIDリーダ番号ある断片レコードを格納するデータベース管理装置2をハッシュ関数 h1を用いて特定し、結果として2を得る。そして2で指定されるデータベース管理装置2に対して、キー値が212に該当する断片レコードを特定し、カラム値を返却してもらう。
このように、本発明によると、断片レコードの登録処理が遅いという問題とディスク上の記憶領域に空きが生じてしまうという問題を解決することができる。
分散するデータベース管理装置数の増加に従って大域サーバが性能上のボトルネックになってしまうという問題を解決することができる。
データの登録・問い合わせ処理において格納するデータ・アクセスするデータがどのデータベース管理装置にあるかを高速に判断して、データの登録・問い合わせ処理を高速に実行することができる。
本実施形態の実施の形態に係る分散データベース管理システムの構成を示す図である。 本実施形態の実施の形態に係るデータベース管理装置の構成を示す図である。 データベース部のデータの内部構成を示す図である。 大域サーバ1の構成を示す図である。 データベース管理装置2の初期化処理を示すフローチャートである。 大域サーバ1の情報収集処理を示すフローチャートである。 大域サーバ1のアクセス権発行処理を示すフローチャートである。 データベース管理装置2のデータ登録処理を示すフローチャートである。 データベース管理装置2の問い合わせ処理を示すフローチャートである。 データベース管理装置2のWHERE句処理を示すフローチャートである。 各プランの条件式を示す図である。 データベース管理装置2のWHERE句内の条件式処理を示すフローチャートである。 データベース管理装置2のSELECT句処理を示すフローチャートである。 本発明の実施の形態の実施例を示す図である。
符号の説明
1…大域サーバ
2…データベース管理装置
3…データベース部
3a…統合レコード
4…クライアント端末
5…分散データベース管理装置群
11…入力装置
12…出力装置
13…通信制御装置
14…通信インタフェース
15…CPU
15a…データ登録処理部
15b…検索処理部
15c…ハッシュテーブル管理部
15d…関数管理部
15e…ハッシュ関数演算部
15f…分散関数演算部
15g…データ断片登録部
15h…第1部分検索部
15i…第2部分検索部
15j…検索結果構成部
15k…レコード統合部
15l…プラン生成部
16…主記憶装置
17…主記憶装置
18…ハッシュテーブル記憶部
19…関数記憶部
20…キャッシュ部
21…入力装置
22…出力装置
23…通信制御装置
24…通信インタフェース
25…CPU
25a…負荷情報収集部
25b…アクセス権管理部
25c…統計処理部
25d…アクセス権算出部
26…主記憶装置
27…負荷情報記憶部
28…アクセス権情報記憶部
100…分散データベース管理システム

Claims (4)

  1. 水平垂直分散を組みあわせてデータを分散配置するデータベース管理装置であって、
    前記データを指定するキー値およびカラム名を入力とし、前記キー値およびカラム名により特定されるデータが格納されている若しくは格納すべきデータベース管理装置IDを出力とするハッシュ関数により、ハッシュ値を算出するハッシュ関数演算部と、
    前記カラム名を入力とし、前記カラム名が指定するデータが格納されている1つ以上のデータベース管理装置IDであるデータベース管理装置ID群を出力とする分散関数であり、前記ハッシュ関数により得られるデータベース管理装置IDは当該分散関数により得られるデータベース管理装置ID群に含まれるという要件を満たす分散関数によりデータベース管理装置ID群を算出する分散関数演算部と、
    クライアント端末からデータの処理要求を受けた場合、処理要求のキー値およびカラム名から前記ハッシュ関数によりデータベース管理装置IDを得て、当該データベース管理装置IDで特定される自データベース管理装置、あるいは他のデータベース管理装置が前記受けたデータの処理要求を実行する第1の処理部と、
    クライアント端末からデータの処理要求を受けた場合、処理要求のカラム名から前記分散関数によりデータベース管理装置ID群を得て、当該データベース管理装置ID群で特定されるそれぞれの、自データベース管理装置、あるいは他のデータベース管理装置に、前記受けたデータの処理要求を依頼し、依頼した処理結果を受ける第2の処理部
    とを備えることを特徴とするデータベース管理装置。
  2. 断片レコードをデータとして登録するデータ断片登録部と、
    登録した断片レコードを追記方式で格納するデータベース部と、
    前記データベース部に格納された断片レコードを統合してレコードを構成するレコード統合部と、
    前記複数のデータベース管理装置のうち前記断片レコードを登録すべきデータベース管理装置に前記断片レコードを登録する際には前記断片レコードが保持する前記キー値およびカラム名を入力し、前記ハッシュ関数を用いてデータを格納するべきデータベース管理装置IDを特定し、特定された前記データベース管理装置に対して前記断片データを送信し登録するデータ登録処理部と、
    前記複数のデータベース管理装置内にて前記断片レコードを検索する際には前記検索の為の問い合わせ文に記述された1つ以上のカラム名を特定し、前記分散関数を用いて、データベース管理装置ID群を特定し、特定された各データベース管理装置ID群で特定されるそれぞれのデータベース管理装置が実行可能な前記問い合わせ文の一部を送信し、検索を実行する第1部分検索部と、
    前記検索を実行した中間結果より特定されたデータのキー値およびカラム名を基に、前記ハッシュ関数を用いて、データベース管理装置IDを特定し、特定された前記データベース管理装置が実行可能な部分問い合わせ分を送信し、検索を実行する第2部分検索部
    とを更に備えることを特徴とする請求項1に記載のデータベース管理装置。
  3. 水平垂直分散を組みあわせてデータを分散配置するデータベース管理装置によるデータベース管理方法であって、
    前記データを指定するキー値およびカラム名を入力とし、前記キー値およびカラム名により特定されるデータが格納されている若しくは格納すべきデータベース管理装置IDを出力とするハッシュ関数により、ハッシュ関数演算部がハシュ値を算出するステップと、
    前記カラム名を入力とし、前記カラム名が指定するデータが格納されている1つ以上のデータベース管理装置IDであるデータベース管理装置ID群を出力とする分散関数であり、前記ハッシュ関数により得られるデータベース管理装置IDは当該分散関数により得られるデータベース管理装置ID群に含まれるという要件を満たす分散関数により分散関数演算部がデータベース管理装置ID群を算出するステップと、
    クライアント端末からデータの処理要求を受けた場合、第1の処理部が処理要求のキー値およびカラム名から前記ハッシュ関数によりデータベース管理装置IDを得て、当該データベース管理装置IDで特定される自データベース管理装置、あるいは他のデータベース管理装置が前記受けたデータの処理要求を実行するステップと、
    クライアント端末からデータの処理要求を受けた場合、第2の処理部が処理要求のカラム名から前記分散関数によりデータベース管理装置ID群を得て、当該データベース管理装置ID群で特定されるそれぞれの、自データベース管理装置、あるいは他のデータベース管理装置に、前記受けたデータの処理要求を依頼し、依頼した処理結果を受けるステップ
    とを備えることを特徴とするデータベース管理方法。
  4. 請求項1または2に記載のデータベース管理装置を構成する各処理部としてコンピュータを機能させるためのデータベース管理プログラム。
JP2005177005A 2005-06-16 2005-06-16 データベース管理装置、データベース管理方法及びデータベース管理プログラム Active JP4573710B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005177005A JP4573710B2 (ja) 2005-06-16 2005-06-16 データベース管理装置、データベース管理方法及びデータベース管理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005177005A JP4573710B2 (ja) 2005-06-16 2005-06-16 データベース管理装置、データベース管理方法及びデータベース管理プログラム

Publications (2)

Publication Number Publication Date
JP2006350741A JP2006350741A (ja) 2006-12-28
JP4573710B2 true JP4573710B2 (ja) 2010-11-04

Family

ID=37646503

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005177005A Active JP4573710B2 (ja) 2005-06-16 2005-06-16 データベース管理装置、データベース管理方法及びデータベース管理プログラム

Country Status (1)

Country Link
JP (1) JP4573710B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4845149B2 (ja) * 2008-10-27 2011-12-28 インターナショナル・ビジネス・マシーンズ・コーポレーション データを管理する管理装置、管理プログラム、および管理方法
JP5727258B2 (ja) 2011-02-25 2015-06-03 ウイングアーク1st株式会社 分散型データベースシステム
CN103765391A (zh) 2012-08-23 2014-04-30 数创株式会社 分布式数据库系统
JP6226599B2 (ja) * 2013-07-17 2017-11-08 株式会社東芝 データベース・システム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001175536A (ja) * 1999-10-31 2001-06-29 Emerging Architectures Llc 仮想アドレスからページ・テーブル・インデックスを計算する方法および装置
JP2001512260A (ja) * 1997-07-30 2001-08-21 ヴィスト・コーポレーション コンピュータ・ネットワーク内で統一情報に大域的にかつ安全にアクセスするシステムおよび方法
JP2002373103A (ja) * 2001-06-14 2002-12-26 Hitachi Ltd 計算機システム
JP2003006028A (ja) * 2001-06-19 2003-01-10 Jeol Ltd 電子文書取扱システム
JP2004530213A (ja) * 2001-05-15 2004-09-30 インターナショナル・ビジネス・マシーンズ・コーポレーション 分散トランザクション中で複数のdbmsにわたる分散セーブポイントを管理するための方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05135113A (ja) * 1991-11-13 1993-06-01 Nec Corp 重複データ管理システム
JPH05298366A (ja) * 1992-04-22 1993-11-12 Fujitsu Ltd レコードキーのハッシング処理方式
JP2762949B2 (ja) * 1995-02-24 1998-06-11 日本電気株式会社 オブジェクト指向データベース管理システムにおける問い合わせの分割処理方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001512260A (ja) * 1997-07-30 2001-08-21 ヴィスト・コーポレーション コンピュータ・ネットワーク内で統一情報に大域的にかつ安全にアクセスするシステムおよび方法
JP2001175536A (ja) * 1999-10-31 2001-06-29 Emerging Architectures Llc 仮想アドレスからページ・テーブル・インデックスを計算する方法および装置
JP2004530213A (ja) * 2001-05-15 2004-09-30 インターナショナル・ビジネス・マシーンズ・コーポレーション 分散トランザクション中で複数のdbmsにわたる分散セーブポイントを管理するための方法
JP2002373103A (ja) * 2001-06-14 2002-12-26 Hitachi Ltd 計算機システム
JP2003006028A (ja) * 2001-06-19 2003-01-10 Jeol Ltd 電子文書取扱システム

Also Published As

Publication number Publication date
JP2006350741A (ja) 2006-12-28

Similar Documents

Publication Publication Date Title
CN107402992B (zh) 一种分布式NewSQL数据库系统和全文检索建立方法
EP2987096B1 (en) Caching external data sources for sql processing
US11048753B2 (en) Flexible record definitions for semi-structured data in a relational database system
KR101775433B1 (ko) 분산형 데이터베이스 쿼리 엔진을 위한 시스템 및 방법
EP1639503B1 (en) A data processing method and system
US20060085451A1 (en) Mapping of schema data into data structures
JP2015099586A (ja) データ集約のためのシステム、装置、プログラム、及び方法
US9785725B2 (en) Method and system for visualizing relational data as RDF graphs with interactive response time
US8209361B2 (en) Techniques for efficient and scalable processing of complex sets of XML schemas
CA2865451A1 (en) Background format optimization for enhanced sql-like queries
US8386445B2 (en) Reorganizing database tables
US8880485B2 (en) Systems and methods to facilitate multi-threaded data retrieval
JP4573710B2 (ja) データベース管理装置、データベース管理方法及びデータベース管理プログラム
US8156091B2 (en) Method to retain an inherent and indelible item value in a relational database management system
US8756246B2 (en) Method and system for caching lexical mappings for RDF data
Yuan et al. VDB-MR: MapReduce-based distributed data integration using virtual database
US8543549B2 (en) Normalizing data on database restore
Mozaffari et al. CONST: Continuous online NoSQL schema tuning
US8352481B2 (en) Server, data transfer method, and recording medium
JP6812321B2 (ja) データベース管理装置、データベース管理方法、及びデータベース管理プログラム
WO2016132472A1 (ja) データ検索装置及びデータ検索方法及びデータ検索プログラム
CN109739874A (zh) 提供数据内容的方法、装置、计算机设备及存储介质
US11514007B1 (en) Dynamic data processing for a semantic data storage architecture
JP2023090552A (ja) データ管理システム及びデータ管理方法
Kaufmann et al. NoSQL Databases

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070808

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100126

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100329

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100518

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100707

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100817

R150 Certificate of patent or registration of utility model

Ref document number: 4573710

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130827

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350