JP2008257570A - データベースシステム及びそのプログラム - Google Patents

データベースシステム及びそのプログラム Download PDF

Info

Publication number
JP2008257570A
JP2008257570A JP2007100554A JP2007100554A JP2008257570A JP 2008257570 A JP2008257570 A JP 2008257570A JP 2007100554 A JP2007100554 A JP 2007100554A JP 2007100554 A JP2007100554 A JP 2007100554A JP 2008257570 A JP2008257570 A JP 2008257570A
Authority
JP
Japan
Prior art keywords
trigger
database
ndb
dml
network
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.)
Granted
Application number
JP2007100554A
Other languages
English (en)
Other versions
JP5046715B2 (ja
Inventor
Taro Nakao
太郎 中尾
Yoshikazu Ijuin
由和 伊集院
Hikari Komatsu
光 小松
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.)
NTT Data Force Corp
NTT Data Group Corp
Original Assignee
NTT Data Corp
NTT Data Force 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 NTT Data Corp, NTT Data Force Corp filed Critical NTT Data Corp
Priority to JP2007100554A priority Critical patent/JP5046715B2/ja
Publication of JP2008257570A publication Critical patent/JP2008257570A/ja
Application granted granted Critical
Publication of JP5046715B2 publication Critical patent/JP5046715B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】NDBに対するNDB以外の形式のデータベースのアクセスインタフェースにおいて動的かつ非同期的な動作を提供する。
【解決手段】NDBに対してRDBの操作言語(SQL)でアクセスするためのアクセスインタフェース5を有するデータベースシステムにおいて、SQLで入力された設定情報に基づいて、NDB内の所定のデータに発生する所定のイベントを条件として所定の操作を指示するトリガを設定するトリガ管理部8と、NDBに対して入力された操作情報に基づいてトリガ設定部8によって対応するトリガが設定されているか否かを再帰的に探索し、探索されたトリガに応じた操作情報を入力された操作情報に追加する割り込み評価部3と、追加結果に基づく操作をNDBに対して行うアクセスモジュール実行部2とを備えている。
【選択図】図1

Description

本発明は、ネットワーク型データベースを構成する際に用いて好適なデータベースシステム及びデータベースシステムのプログラムに関する。
主にメインフレームのデータベースとして普及してきたネットワーク型データベース(以下、NDB)は、簡素な構造に起因するデータ操作の高速性を大きなメリットとしている。しかし、アプリケーションプログラムにレコード単位での手続き的な操作を要求するなど、テーブル単位でのデータ操作を基本とするリレーショナル型データベース(以下、RDB)に比べると、データ操作が煩雑であった。NDBのデータ操作の利便性を高めるべく、NDBに格納されているデータの利用者に、RDBのアクセスインタフェースを提供する取り組みがこれまでにいくつかなされてきている。
特許文献1では、RDB問い合わせ言語であるSQLをNDB問い合わせ言語であるDML(Data Manipulation Language )に変換する機構を用意することで、NDBのデータをSQLでアクセスできるようにしており、NDBにRDB操作の利便性をもたらしている(特許文献1の第1図及び第5図参照)。
特許文献2では、SQLをDMLに変換するためのNDBのレコードとリレーショナルスキーマの対応付け情報を作成する際に、レコードの一意性やレコードセットの定義情報を与えておくことで、SQLによる操作利便性を達成しながらNDB操作の高速性を維持する方法を説明している。特許文献2の図1にその構成が示されている。特許文献2の図1では、やはりSQL文7の入力からDMLオブジェクト8が生成され、ネットワーク型データベース10にアクセスできるようになっている。
特許文献3では、SQLからDML群を生成し、それらを逐次実行する際のDMLの並び方を工夫することで、NDBの高速操作を実現する機構について述べている。特許文献4では、RDB問い合わせをNDB問い合わせに変換する際の命令文の増加を防ぐモデルについて述べている。特許文献5では、SQLで操作するリレーショナルスキーマがNDBのレコード順序の情報を保持するようにしている。
これらの取り組みは、いずれも、NDBのデータの利用者にRDBのアクセスインタフェースを提供している。このアプローチの線上には、NDBアクセスのRDBアクセスインタフェースでのラッピングのほかにも、例えば、NDBアクセスのXML-DB(XML(Extensible Markup Language)データベース)アクセスインタフェースでのラッピングなども考えられる。これらの取り組みの基本構成は、図19のようにとらえることができると考えられる。
図19に示す構成では、NDBへのアクセス手段として、DMLオブジェクトをダイレクトに実行させるネイティブアクセスインタフェースに加え、SQLやXQueryといった利便性の高いアクセスインタフェースを利用者に提供している。インピーダンスミスマッチ解決部がSQLやXQueryでの操作要求をDMLオブジェクトに変換し、リポジトリが解決に必要な情報を提供している。
特開平2−67682号公報 特開平6−282576号公報 特開平4−299459号公報 特開平5−274348号公報 特開2001−273178号公報
上記従来技術では、NDBに格納されているデータへの参照、追加、更新、削除の機能提供において、利用者にRDBのアクセスインタフェース(SQLによるテーブル型データの参照、追加、更新、削除操作)を提供することで、NDBの利便性向上に一定の貢献をしている。しかし、上記の従来技術で提供しているラッピングアクセスインタフェースは、あくまでも問い合わせに対して受動的にデータの参照結果を返却する、あるいは更新要求に対して受動的にデータを更新するといった、受動的かつ同期的な動作提供にとどまる。
一方で、「NDBのある特定のデータレコードに対する追加、更新、削除操作がある条件を満たした」という事象を、アプリケーション動作の契機につなげることで、アプリケーションのデータに対する反応性を高めたいという要求がNDBデータの利用者側に存在する。このようなNDBデータへの操作要求を、RDBアクセスインタフェースなどのラッピングインタフェースの利便性を保ちつつ実現するためには、アクセスインタフェースがこうした動的かつ非同期的な動作を提供する必要がある。
ここで、NDBよりも利便性が高いとされるRDBの製品では、「RDBのある特定のテーブルに対する追加、更新、削除操作がある条件を満たした」という事象を利用できるように、トリガ機能が用意されていることが多い。RDBの代表的な製品の多くでは、特定のテーブルに対するINSERT(挿入)、UPDATE(更新)またはDELETE(削除)の操作開始前あるいは操作開始後の制約条件評価結果を利用者がトリガとして利用できるようにCREATE TRIGGERステートメント(新しいトリガの定義文)が用意されている。利用者は、CREATE TRIGGERステートメントを用いてRDBにトリガ設定を施すことで、トリガ結果をただちに指定したストアドプロシージャの実行につなげてくれるRDBの機能を享受できるようになっている。
しかし、上記の従来技術では、RDBのアクセスインタフェースにおけるCREATE TRIGGERステートメントと、NDB内のネットワーク型のデータ構造に対するトリガ機能はマッピングできなかったため、「NDBのある特定のデータレコードに対する追加、更新、削除操作がある条件を満たした」という事象を、アプリケーション動作の契機につなげ、アプリケーションのデータに対する反応性を高めたいというNDBデータの利用者の要求を満たせなかった。
本発明は上記の課題を解決する技術であって、NDBに対するNDB以外の型式のデータベースのアクセスインタフェースにおいて、動的かつ非同期的な動作を提供することができるデータベースシステム及びそのプログラムを実現することを目的とする。一例として具体的には、NDBに対するNDB以外の型式のデータベースのアクセスインタフェースにおいて、NDB内でイベントが発生した場合に特定の処理を自動的に行うトリガ機能をNDB以外の型式のデータベースの定義を用いて提供することができるデータベースシステム及びそのプログラムを実現する。
上記課題を解決するため、本発明は、ネットワーク型データベースに対してネットワーク型データベース以外の型式のデータベースの操作言語でアクセスするためのインタフェースを提供するデータベースシステムにおいて、ネットワーク型データベース以外の型式のデータベースの操作言語で入力された設定情報に基づいて、ネットワーク型データベース内の所定のデータに発生する所定のイベントを条件として所定の操作を指示するトリガを設定するトリガ設定手段と、ネットワーク型データベースに対して入力された操作情報に基づいてトリガ設定手段に対応するトリガが設定されているか否かを再帰的に探索する探索手段と、探索されたトリガに応じた操作情報を入力された操作情報に追加する追加手段と、追加結果に基づく操作をネットワーク型データベースに対して行う操作手段とを備えることを特徴とする。
本発明は、上記に記載の発明において、前記操作情報の由来元を記憶する由来情報記憶手段を備え、前記操作手段による操作結果を由来情報記憶手段に記憶された由来元に返却することを特徴とする。
本発明は、上記に記載の発明において、前記探索手段による探索結果が同一のトリガを複数回探索結果としているか否かを判定することで、同一のトリガを追加する回数を制限することを特徴とする。
本発明は、上記に記載の発明において、前記トリガ設定手段に設定されるトリガがネットワーク型データベースの操作言語で設定されていることを特徴とする。
また、本発明は、ネットワーク型データベースに対してネットワーク型データベース以外の型式のデータベースの操作言語でアクセスするためのインタフェースを提供するデータベースシステムを構成するコンピュータに、ネットワーク型データベース以外の型式のデータベースの操作言語で入力された設定情報に基づいて、ネットワーク型データベース内の所定のデータに発生する所定のイベントを条件として所定の操作を指示するトリガを設定するトリガ設定手順、ネットワーク型データベースに対して入力された操作情報に基づいて、それに対応するトリガが設定されているか否かを再帰的に探索する探索手順、探索されたトリガに応じた操作情報を入力された操作情報に追加する追加手順、追加結果に基づく操作をネットワーク型データベースに対して行う操作手順を実行させるためのデータベースシステムのプログラムである。
本発明によれば、例えばNDB内で所定のイベントが発生した場合に特定の処理を自動的に行うトリガ機能をNDB以外の型式のデータベースの定義を用いて入力して設定することができるので、NDBに対するNDB以外の型式のデータベースのアクセスインタフェースにおいて、動的かつ非同期的な動作を提供することができる。
また、本発明は、由来情報を記憶することで自動的に追加された操作情報による操作結果を適切な返却先に返すことができる。
また、本発明は、探索結果に応じてトリガの追加回数を制限することで自動的に追加する操作情報がループ状に繰り返されることがなくなる。また、トリガ設定手段によって設定されるトリガをDML等のネットワーク型データベースの操作言語とすることで操作情報の追加等の処理をその都度変換処理などを行う必要がなく効率的に行うことができる。
以下、図面を参照して本発明によるデータベースシステムの実施形態について説明する。図1は、本発明の実施形態のシステムの全体像を示す図である。
図1に示すデータベースシステムは、NDBを有するNDBMS(Network DataBase Management System;ネットワーク型データベース管理システム)1、アクセスモジュール実行部2、割り込み評価部3、ネイティブアクセスインタフェース4、アクセスインタフェース5、インピーダンスミスマッチ解決部6、インピーダンスミスマッチ管理リポジトリ7、トリガ管理部8、トリガ管理リポジトリ9、由来情報10、トリガ管理リポジトリ9内で格納されるトリガ設定情報11及びトリガアクションDML12から構成されている。これらの各要素はプログラム、データ等のソフトウェアから構成されている。ただし、各構成要素は、さらにそれらのソフトウェアを処理するためのコンピュータや周辺装置等のハードウェアを含むものとしてとらえることもできる。
ここで、本発明に特徴的な構成要素は、割り込み評価部3、トリガ管理部8、トリガ管理リポジトリ9、アクセスインタフェース5である。アクセスインタフェース5は、NDBMS1内のNDBに格納されているデータへの参照、追加、更新、削除の機能提供において、利用者にRDBのアクセスインタフェース(SQLによるテーブル型データの参照、追加、更新、削除操作)を提供することに加えて、本発明が特徴とするトリガ設定を受け入れる機能を有するものである。システムの構成要素について以下に順次説明を加える。
NDBMS1は一般的なNDBの管理システムであり、内部にNDBを備えている。NDBMS1と直接やりとりするアクセスモジュール実行部2は、図2に示すように、NDBへのネイティブアクセス方法であるDML(DMLで記述されたオブジェクト)101を複数、実行順序つきで束ねたアクセスモジュール102を受け取る。
アクセスモジュール実行部2は、NDBMS1内のNDBのレコードを、受け取ったアクセスモジュール102の個々のDML101にしたがって順次操作し、その実行結果を返却する。返却する実行結果103は、図3に示すように、アクセスモジュール102の各DML101に対応した各NDB操作結果104を束ねたものとなる。
ネイティブアクセスインタフェース4は、NDBMS1に対してレコード単位での手続き的な操作を指示するためのNDB問い合わせ言語によるアクセスを提供するインタフェースである。すなわちネイティブアクセスインタフェース4は、利用者に対し、従来のNDBMSと同じ操作体系を提供する入出力インタフェースである。利用者は、ネイティブアクセスインタフェース4にDML101を入力する。入力されたDML101は、割り込み評価部3及びアクセスモジュール実行部2を介してNDBMS1に渡されて実行される。また、ネイティブアクセスインタフェース4は、NDBMS1から割り込み評価部3及びアクセスモジュール実行部2を介して受け取った実行結果104を利用者に出力する。
なお、ネイティブアクセスインタフェース4の利用者にとっては、前述した本発明が特徴とする構成要素の追加によってNDBMS1内のNDBの利用方法に変化は全く生じない。
アクセスインタフェース5は、利用者に対し、従来のRDBMS(Relational DataBase Management System)やXMLDBMS(Extensible Markup Language DataBase Management System)と同じ操作体系を提供する入出力インタフェースである。利用者は、アクセスインタフェース5にSQLやXQueryなどによる同期的な問い合わせを入力し、その実行結果を受け取るだけでなく、このインタフェースを介してトリガを設定管理できる。アクセスインタフェース5は、同期問い合わせについては、入力された問い合わせをインピーダンスミスマッチ解決部6に引渡し、その実行結果をインピーダンスミスマッチ解決部6から受け取り、問い合わせの発行者に出力する。トリガ設定については、アクセスインタフェース5は、入力された指示をトリガ管理部8に引渡す。非同期的にトリガ管理部8からもたらされるトリガ結果は、アクセスインタフェース5を介して利用者などに提供される。
インピーダンスミスマッチ解決部6は、アクセスインタフェース5からのSQLやXQueryその他のさまざまな同期問い合わせをNDB操作のDML(図2のDML101)に変換する。その際、インピーダンスミスマッチ管理リポジトリ7を参照して、例えばSQLの操作対象であるテーブルを実際のNDBのレコードにマッピングする。その手法については従来技術でさまざまな工夫がなされている。本実施形態においては、変換されたDML系列は割り込み評価部3に引き渡され、その実行結果104は、割り込み評価部3から得られることになる。
割り込み評価部3は、ネイティブアクセスインタフェース4あるいはインピーダンスミスマッチ解決部6からの一連のDML101による操作要求を入力とする。入力に際して、割り込み評価部3は、トリガ管理リポジトリ9を参照する。割り込み評価部3は、トリガ管理リポジトリ9内のトリガ設定情報11を参照し、入力されたDML101が操作する対象を監視対象として設定しているトリガ(=発火すべきトリガ)が設定されていた場合に、当該トリガのトリガアクション(トリガアクションDML12)で規定されるDML101を、トリガの処理タイミングの規定に従って、逐次、一連のDML系列の前あるいは後に付け加え、アクセスモジュール102を作成する。
トリガ管理部8は、割り込み評価部3から随時もたらされるトリガ結果の到着に際して、トリガ管理リポジトリ9を参照しつつ、アクセスインタフェース5に応じてトリガ結果をテーブルやXML文書などの出力形式に変換し、トリガ設定情報11などに指示されている出力あて先とともにその変換結果をアクセスインタフェース5に引き渡す。
次に、アクセスインタフェース5を用いた利用者によるアクセスの際の動作を、図4のようにNDBMS1内のNDBのデータ構造201がRDBのデータ構造301にマッピングされている場合を例として説明する。図4に示す例では、NDBMS1のNDB内の商品レコード211と製造元レコード212がテーブル311(table1)にマッピングされ、商品レコード211と仕入レコード213がテーブル312(table2)にマッピングされ、そして、商品レコード211と製造元レコード214がテーブル313(table3)にマッピングされている。
利用者は、アクセスインタフェース5を介して、元のNDBのデータ構造(すなわちNDBMS1内のNDBの実データレコード構造201)を意識せずに、SQLに従い、例えば図5に示す「CREATE TRIGGER trigger01 AFTER UPDATE OF 売上数量 ON table3 FOR EACH ROW EXECUTE PROCEDURE proc1」という関数を定義することで、トリガを設定できる。図5に示す例は、SQL99(ISO(国際標準化機構)標準)のトリガ定義構文である。
「trigger01」はトリガの名前、「table3」と「売上数量」は、それぞれ監視対象のテーブルとそのカラム、「proc1」は、別途設定されるストアドプロシージャである。ここでは、proc1は、売上数量の変化分に応じて在庫数量を減らし、その結果を利用者に通知するというストアドプロシージャであるものとする。
トリガ管理部8は、利用者が設定したSQLによるトリガ定義をNDBMS1に対応するように変換し、変換結果をトリガ設定情報11及びトリガアクションDML12としてトリガ管理リポジトリ9に格納する。すなわち、トリガ管理部8は、アクセスインタフェース5を介して利用者から登録を指示されたトリガを、インピーダンスミスマッチ管理リポジトリ7を参照しつつ、NDBMS1内のNDBの実データレコード構造201を対象とするトリガ設定情報11とトリガアクションDML12に変換する。得られたトリガ設定情報11とトリガアクションDML12はトリガ管理リポジトリ9に格納される。本実施形態においては、トリガ管理部8が、リレーショナルデータベースの操作言語(SQL)で入力された設定情報に基づいて、ネットワーク型データベース内の所定のデータに発生するINSERT(挿入)、UPDATE(更新)、DELETE(削除)等の所定のイベントの発生を条件として所定のデータに対して所定の操作を指示するトリガをネットワーク型データベースの操作言語で設定することになる。
上述の例の場合だと、監視対象となる「table3(313)の売上数量(313a)」データが、NDBMS1のNDB内の「売上レコード(214)の売上数量(214a)」データに変換される。また、「proc1」は、「商品レコード(211)の在庫数量(211b)」を操作するDMLのオブジェクトに変換される(この得られたDMLを「dml_action1」とする)。この場合、「trigger01」と名付けられたトリガに対応するトリガ設定情報11は、図6に示すようにしてトリガ管理リポジトリ9内に格納される。また、トリガ設定情報11内で指定される「dml_action1」と名づけられたDMLオブジェクトも別途トリガ管理リポジトリ9内にトリガアクションDML12として格納される。このように登録されたトリガは、利用者の指示に従って、随時更新あるいは削除される。
図6に示すトリガ設定情報11は、利用者によって設定された各トリガを、「トリガID」、「監視対象」、「対象タイミング」、「対象操作」、「トリガアクション」、「作成者」、「作成日時」の各項目で定義している。「トリガID」は各トリガの識別情報である。「監視対象」は監視対象となるNDBMS1のNDB内のデータを指定する情報である。「対象タイミング」はトリガアクションの起動を監視対象のイベントの前(before)に行うか後(after)に行うかを指定する情報である。「対象操作」は監視対象に対して行われる操作の内容でありINSERT(挿入)、UPDATE(更新)、DELETE(削除)のいずれか、あるいはそれらの論理和(OR)を示す情報であり、これがトリガを起動するイベントとなる。「トリガアクション」は、トリガが起動したときに実行される手続き(関数)の名前を示す情報であり、このトリガアクションの内容を記述したDMLは、トリガアクションDML12として、項目「トリガアクション」に指定された名前に対応付けてトリガ管理リポジトリ9内に格納される。また、「作成者」はトリガの設定者の情報、「作成日時」はトリガ設定時の年月日時分の情報である。
図6に示すトリガ設定情報11には、上述した「トリガID」=「trigger01」の設定情報として、「監視対象」が「売上レコード(214)、売上数量(214a)」、「対象タイミング」が「after」、「対象操作」が「update」、「トリガアクション」が「dml_action1」、「作成者」が「author1」、「作成日時」が「9999/99/99 99:99」の各情報が含まれている。
また、他のトリガとして、「仕入レコード(213)の仕入数量(213c)」の「upate(更新)」を監視対象としてイベント発生前(before)に「dml_action2」を起動するトリガ「trigger02」と、「売上レコード(214)の伝票番号(214d)」の「insert(追加)」を監視対象としてイベント発生前(before)に「dml_action3」を起動するトリガ「trigger03」とが格納されている。この場合、トリガ管理リポジトリ9内には、「dml_action2」及び「dml_action3」に対応するDMLオブジェクトの記述がトリガアクションDML12として格納されている。なお、この例では、トリガアクション「dml_action2」及び「dml_action3」は、「商品レコード(211)を更新する」アクションであるとする。
次に、割り込み評価部3が、トリガ設定情報11に設定されたトリガ由来のDML(トリガアクションDML12)を逐次付加してアクセスモジュール102を生成するフローを、図7及び図8を参照して説明する。図7及び図8は、トリガ由来のDMLを逐次付加して入力DML系列からアクセスモジュール102を得るフロー図であり、図7がメインフロー、図8が図7のステップS13で呼び出されるサブルーチン(check_trigger (DML))のフローを示している。なお、図7においてステップS12〜S14間の各ステップは各入力DMLに対して繰り返し実行され、図8においてステップS23〜S28間の各ステップは各トリガアクションDMLに対して繰り返し実行される。
これらのフローでは、特に、トリガアクションDML12に対応するDML101の追加が、別のトリガをさらに発火することがあることを考慮するようにしている。つまり、トリガアクションDML12に対応するDML101の追加に際しては、追加するDML101が操作する対象を監視対象としているトリガがないか(あれば同様に追加する)という手順を再帰的に実行する。すなわち、図8のステップS27では、同じサブルーチン(check_trigger (DML))を再帰的に呼び出すようにしている。
また、再帰的なDML追加においては、複数のトリガ発火がループすることがないように、トリガ発火のループ検出(ステップS24)とエラー処理(ステップS29)を行うようにしている。本実施形態では、入力された1つのDMLに対するトリガアクションDMLを探索の際に同一のトリガアクションDMLについてそれが初めて探索結果としてして得られた場合にのみ当該トリガアクションDMLを追加する処理を行うように、つまり複数回同一のトリガアクションDMLが得られた場合でもそのトリガアクションDMLを追加する回数を1回に制限するような処理を行うようにしている。
なお、アクセスモジュール102へのDML101付加の際は、アクセスモジュール102内の個々のDML101が、それぞれネイティブアクセスインタフェース4由来のものであるか、インピーダンスミスマッチ解決部6由来のものであるか、トリガ由来(トリガ管理部8由来)のものであるかを区別する由来情報10を内部的に作成保持する。由来情報10はアクセスモジュール102ごとに作成される。
以下に、割り込み評価部3の動作について、図4〜図6に示す例を用い、図9〜図15の処理経過の説明図を参照して説明する。
いま、割り込み評価部3に、図9のように、DML101a〜101cからなるDMLの系列(アクセスモジュール102)がネイティブアクセスインタフェース4から入力されたとする(図7のステップS11)。このアクセスモジュール102の由来情報10は、図10に示すようになる。すなわち、フロー開始時の由来情報10として、DML101a〜101cに対応するDMLシーケンス「1」〜「3」に対して、ネイティブアクセスインタフェース4の識別情報(由来元ID)を示す「native access interface」の情報がそれぞれ格納される。
まずDML1(101a)(「売上レコード(214)にレコードを追加する」アクション)について、「売上」レコード(214)への追加(insert)を監視対象としているトリガが設定されているかどうかをトリガ設定情報11内で探る(ステップS13→図8のステップS21)。今回の例では、売上レコード(214)にレコードを追加するアクションは、売上レコード(214)に新たな伝票番号(214d)を追加する処理となるので、図6の「trigger03」が相当するトリガとして探索されることになる(ステップS22→ステップS23以降)。次に「trigger03」のトリガアクションDML「dml_action3」を、このDML1(101a)から始まる評価プロセスにおいて「dml_action3」が初出であることを確認しつつ(ステップS24、ステップS29)、DML系列(アクセスモジュール102)に追加する(ステップS25)。これはトリガのループを防ぐためである。DML追加の際は、「trigger03」の対象タイミングは「before」なので、「dml_action3」(101d)はDML系列(アクセスモジュール102)の先頭に追加される(図11)。
次に、由来情報10が更新され(ステップS26)、アクセスモジュール102の由来情報10は図12のようになる。この場合、由来情報10のDMLシーケンスの「1」にはアクセスモジュール102の先頭に追加されたDML101dに対応するトリガID「trigger03」を示す情報が記録され、その由来元がトリガ由来であることが示される。また、DMLシーケンスの「2」〜「4」にはDML101a〜101cの由来元を示す「native access interface」が記録される。
次に、いま追加した「dml_action3」について、再帰的にトリガ設定を探る処理が行われる(ステップS27)。つまり、「dml_action3」のアクションの内容である「商品」レコード(211)への更新を監視対象としているトリガ設定の有無を探る。この再帰はトリガが得られなくなるまで継続される。得られるトリガがなくなれば、評価作業は次のDML(DML2(101b))を対象として再び開始する。最終的に今回の例では図13のようなアクセスモジュール102と図14のような由来情報10が得られる。
すなわち、図13に示す例では、アクセスモジュール102が「dml_action2」のDML101eを先頭に、順に「dml_action3」のDML101d、DML1〜3のDML101a〜101cと、「dml_action1」のDML101fとから構成されている。また、図14の由来情報10は、DMLシーケンス「1」の由来元IDが「trigger02」、DMLシーケンス「2」の由来元IDが「trigger03」、DMLシーケンスの「3」〜「5」の由来元IDが「native access interface」、そしてDMLシーケンス「6」の由来元IDが「trigger01」となるように作成されている。
なお、図13のアクセスモジュール102において、先頭のDML101eは、入力(given)DML3(101c)による仕入レコード213の更新イベントをトリガとするトリガアクションDMLであり、最後尾のDML101fは、入力DML2(101b)による売上レコード214の更新イベントをトリガとするトリガアクションDMLである。
割り込み評価部3は、こうして得られたアクセスモジュール102をアクセスモジュール実行部2に出力する。また、その実行結果をアクセスモジュール実行部2から受け取り、その実行結果を、由来情報10を参照して分割し、ネイティブアクセスインタフェース4、インピーダンスミスマッチ解決部6、あるいはトリガ管理部8に返却する。
図15に割り込み評価部3からの結果分割返却の例を示す。図15に示す例では、図14の由来情報10のDMLシーケンス「1」及び「2」に対応する「dml_action2」の実行結果104e及び「dml_action3」の実行結果104d並びにDMLシーケンス「6」に対応する「dml_action1」の実行結果104fがトリガ管理部8に返却される。また、由来情報10のDMLシーケンス「3」〜「5」に対応するDML1〜DML3の実行結果104a〜104cがネイティブアクセスインタフェース4に返却される。
なお、図1のNDBMS1内のNDBのデータレコード構造201のRDBのテーブル構造301へのマッピングを、図4を参照して説明したように行った場合、インピーダンスミスマッチ管理リポジトリ7のエントリは、例えば、図16に示すようになる。
また、図17に、同じNDBのデータレコード構造201をXMLの構造(XML Schema)にマッピングした例を示す。もちろん、このマッピングもマッピング方法はここに例示したものにとどまらない。この例示したマッピングにおけるインピーダンスミスマッチ管理リポジトリ7のエントリは、例えば図18に示すようになる。
上記の実施形態の構成によれば、NDBに格納している実データレコードを、NDBとして参照更新操作できるだけでなく、RDBのアクセスインタフェースを介したテーブル操作やXML-DBのアクセスインタフェースを介したレコードアクセスなどによって、NDBアクセスの形態をとらずに参照更新操作できるようにしているシステムにおいて、あらかじめ利用者がシステムにトリガを設定しておくことで、ある特定のデータレコードに対する追加、更新、削除操作の発生に際して、その操作開始前の操作発生タイミングあるいは操作開始後の制約条件評価結果に起因するアクションを、アクセスインタフェースを介して利用者が設定したトリガ設定にもとづいて能動的におこし、その結果を利用者に非同期的に提供できるシステムを実現することができる。
すなわち、本実施形態の構成によれば、NDBの実データレコードを利用対象とする利用者に対し、利便性の高いRDBやXMLDBのアクセスインタフェースを提供するシステムにおいて、利用者によるトリガの設定をRDBやXMLDBのアクセスインタフェースを用いて行うことを可能にすることで、NDBのデータレコードに随時発生する操作を契機とする非同期的なデータ提供を容易に受けられるようになる。
上記の実施形態の構成によれば、「NDBのある特定のデータレコードに対する追加、更新、削除操作がある条件を満たした」という事象を、アプリケーション動作の契機につなげたい、あるいはアプリケーションのデータに対する反応性を高めたいというNDBデータの利用者の要求を満たせるようになる。
また、本実施形態の構成におけるトリガ設定においては、新設するアクセスインタフェースを介したNDB操作だけでなく、ネイティブアクセスインタフェースを介した従来のNDB操作もトリガ発火の契機として利用できる。
なお、本発明の実施形態は上記の形態に限定されず、例えば各構成要素を統合あるいは分散したり、例えば他のRDBMSと連携させるための構成要素を追加したりするなどの追加が適宜可能である。
また、本発明に記載された言語や情報等を表す構成要素は、上記の実施形態における次のような構成要素と対応している。「ネットワーク型データベース以外の型式のデータベースの操作言語」は、RDBやXMLDBに対応している。「ネットワーク型データベース以外の型式のデータベースの操作言語で入力された設定情報」は、利用者がアクセスインタフェース5を介して例えばSQLに従い図5に示すような「CREATE TRIGGER…」という関数を定義するために入力した情報に対応している。SQLで入力した情報そのものを意味するほか、例えばSQLに対応して所定のユーザインタフェースを用いて対話形式で断片的に入力した入力情報(部分情報)などが対応するものである。「トリガ」は、トリガ管理リポジトリ9内にトリガ設定情報11及びトリガアクションDML12として格納される情報に対応している。「ネットワーク型データベースに対して入力された操作情報」は、図9のDML101a〜101cのような情報に対応している。上記の説明では、これらのDMLの系列(アクセスモジュール102)がネイティブアクセスインタフェース4から入力されるとしているが、アクセスインタフェース5から入力されたもの(それが変換された情報)も含まれる。そして、「トリガ」を設定する「ネットワーク型データベースの操作言語」はトリガアクションDML12を記述するDMLに対応している。
また、図7、図8に示す各ステップを実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、また、本実施形態のデータベースシステムにおける処理部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものであってもよい。また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
本発明の実施形態のデータベースシステムの概略構成を示すシステム図である。 同実施形態で用いられるアクセスモジュールの一例を示す図である。 同実施形態におけるアクセス実行結果の一例を示す図である。 同実施形態におけるNDBデータレコード構造のRDBデータ構造へのマッピングの一例を示す図である。 同実施形態におけるトリガ定義構文の一例を示す図である。 同実施形態におけるトリガ設定情報の一例を示す図である。 同実施形態におけてトリガ由来のDMLを逐次付加して入力DML系列からアクセスモジュールを得る際の処理の流れを示すフロー図である。 同実施形態における図7のフローで呼び出されるサブルーチンのフロー図である。 同実施形態における割り込み評価部への入力DML系列の一例を示す図である。 同実施形態における処理開始時の由来情報の一例を示す図である。 同実施形態におけるDML系列を入力として作成されるアクセスモジュールの途中経過を説明するための図である。 同実施形態における由来情報に対する処理の途中経過を説明するための図である。 同実施形態における処理によって得られるアクセスモジュールの一例を示す図である。 同実施形態における処理によって得られる由来情報の一例を示す図である。 同実施形態における割り込み評価部からの実行結果返却の一例を説明するための図である。 同実施形態におけるインピーダンスミスマッチ管理リポジトリのエントリの一例を示す図である。 同実施形態におけるNDBデータレコード構造のXML構造へのマッピングの一例を示す図である。 同実施形態におけるインピーダンスミスマッチ管理リポジトリのエントリの他の例を示す図である。 従来技術におけるデータベースシステムの構成例を示す図である。
符号の説明
1 NDBMS
2 アクセスモジュール実行部(操作手段)
3 割り込み評価部(探索手段、追加手段)
4 ネイティブアクセスインタフェース
5 アクセスインタフェース
6 インピーダンスミスマッチ解決部
7 インピーダンスミスマッチ管理リポジトリ
8 トリガ管理部(トリガ設定手段)
9 トリガ管理リポジトリ
10 由来情報(由来情報記憶手段)
11 トリガ設定情報
12 トリガアクションDML
101 DML
102 アクセスモジュール

Claims (5)

  1. ネットワーク型データベースに対してネットワーク型データベース以外の型式のデータベースの操作言語でアクセスするためのインタフェースを提供するデータベースシステムにおいて、
    ネットワーク型データベース以外の型式のデータベースの操作言語で入力された設定情報に基づいて、ネットワーク型データベース内の所定のデータに発生する所定のイベントを条件として所定の操作を指示するトリガを設定するトリガ設定手段と、
    ネットワーク型データベースに対して入力された操作情報に基づいてトリガ設定手段に対応するトリガが設定されているか否かを再帰的に探索する探索手段と、
    探索されたトリガに応じた操作情報を入力された操作情報に追加する追加手段と、
    追加結果に基づく操作をネットワーク型データベースに対して行う操作手段と
    を備えることを特徴とするデータベースシステム。
  2. さらに前記操作情報の由来元を記憶する由来情報記憶手段を備え、
    前記操作手段による操作結果を由来情報記憶手段に記憶された由来元に返却する
    ことを特徴とする請求項1記載のデータベースシステム。
  3. 前記探索手段による探索結果が同一のトリガを複数回探索結果としているか否かを判定することで、同一のトリガを追加する回数を制限する
    ことを特徴とする請求項1又は2記載のデータベースシステム。
  4. 前記トリガ設定手段に設定されるトリガがネットワーク型データベースの操作言語で設定されている
    ことを特徴とする請求項1から3のいずれか1項に記載のデータベースシステム。
  5. ネットワーク型データベースに対してネットワーク型データベース以外の型式のデータベースの操作言語でアクセスするためのインタフェースを提供するデータベースシステムを構成するコンピュータに、
    ネットワーク型データベース以外の型式のデータベースの操作言語で入力された設定情報に基づいて、ネットワーク型データベース内の所定のデータに発生する所定のイベントを条件として所定の操作を指示するトリガを設定するトリガ設定手順、
    ネットワーク型データベースに対して入力された操作情報に基づいて、それに対応するトリガが設定されているか否かを再帰的に探索する探索手順、
    探索されたトリガに応じた操作情報を入力された操作情報に追加する追加手順、
    追加結果に基づく操作をネットワーク型データベースに対して行う操作手順
    を実行させるためのデータベースシステムのプログラム。
JP2007100554A 2007-04-06 2007-04-06 データベースシステム及びそのプログラム Active JP5046715B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007100554A JP5046715B2 (ja) 2007-04-06 2007-04-06 データベースシステム及びそのプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007100554A JP5046715B2 (ja) 2007-04-06 2007-04-06 データベースシステム及びそのプログラム

Publications (2)

Publication Number Publication Date
JP2008257570A true JP2008257570A (ja) 2008-10-23
JP5046715B2 JP5046715B2 (ja) 2012-10-10

Family

ID=39981064

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007100554A Active JP5046715B2 (ja) 2007-04-06 2007-04-06 データベースシステム及びそのプログラム

Country Status (1)

Country Link
JP (1) JP5046715B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010140092A (ja) * 2008-12-09 2010-06-24 Felica Networks Inc 情報処理装置、情報処理方法、プログラム、および情報処理システム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000267909A (ja) * 1999-03-19 2000-09-29 Hitachi Software Eng Co Ltd データベースシステム
JP2001273178A (ja) * 2000-03-28 2001-10-05 Hitachi Software Eng Co Ltd データベース制御装置およびシステム
JP2002534742A (ja) * 1999-01-08 2002-10-15 コンピュータ アソシエイツ シンク,インコーポレイテッド Dbmsプロシージャの再帰的パス解析のためのシステムおよび方法
JP2003085012A (ja) * 2001-09-10 2003-03-20 Hitachi Information Systems Ltd ストアドプロシージャ呼出関係図の表示方法及びデータベース管理システム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002534742A (ja) * 1999-01-08 2002-10-15 コンピュータ アソシエイツ シンク,インコーポレイテッド Dbmsプロシージャの再帰的パス解析のためのシステムおよび方法
JP2000267909A (ja) * 1999-03-19 2000-09-29 Hitachi Software Eng Co Ltd データベースシステム
JP2001273178A (ja) * 2000-03-28 2001-10-05 Hitachi Software Eng Co Ltd データベース制御装置およびシステム
JP2003085012A (ja) * 2001-09-10 2003-03-20 Hitachi Information Systems Ltd ストアドプロシージャ呼出関係図の表示方法及びデータベース管理システム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010140092A (ja) * 2008-12-09 2010-06-24 Felica Networks Inc 情報処理装置、情報処理方法、プログラム、および情報処理システム
JP4668316B2 (ja) * 2008-12-09 2011-04-13 フェリカネットワークス株式会社 情報処理装置、情報処理方法、プログラム、および情報処理システム

Also Published As

Publication number Publication date
JP5046715B2 (ja) 2012-10-10

Similar Documents

Publication Publication Date Title
CN110032604B (zh) 数据存储装置、转译装置及数据库访问方法
Capriolo et al. Programming Hive: Data warehouse and query language for Hadoop
US7487174B2 (en) Method for storing text annotations with associated type information in a structured data store
US7937410B2 (en) Generic archiving of enterprise service oriented architecture data
JP6939384B2 (ja) データ処理装置、方法およびプログラム
US20060136382A1 (en) Well organized query result sets
US20190138522A1 (en) Query translation for searching complex structures of objects
EP2425383B1 (en) Method and device for ontology evolution
JP2008516341A5 (ja)
JP5927886B2 (ja) クエリシステム及びコンピュータプログラム
JP2006277732A (ja) データベースのクローリングによる情報検索
US8433729B2 (en) Method and system for automatically generating a communication interface
Ba et al. Uncertain version control in open collaborative editing of tree-structured documents
JP7170004B2 (ja) 標準化データベースアクセスシステムおよび方法
US8001110B2 (en) Apparatus, method, and computer program product for processing databases
JP3786233B2 (ja) 情報検索方法および情報検索システム
JP3671765B2 (ja) 異種情報源問い合わせ変換方法及び装置及び異種情報源問い合わせ変換プログラムを格納した記憶媒体
JP5046715B2 (ja) データベースシステム及びそのプログラム
JP4289022B2 (ja) 構造化文書処理方法及び装置及び構造化文書処理プログラム及び構造化文書処理プログラムを格納した記憶媒体
JP2002063165A (ja) 情報検索方法および情報検索システムおよび情報検索プログラムおよび情報検索プログラムを記録した記録媒体
US11880362B2 (en) Generating debugging information for query plan steps
US20210141773A1 (en) Configurable Hyper-Referenced Associative Object Schema
US11797552B2 (en) System and method for selective retrieval of metadata artefact versions
US20230376310A1 (en) Information processing method and information processing apparatus
Wadjinny et al. Query processing in the WASSIT mediation framework

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100318

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120403

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120601

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

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

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

Free format text: PAYMENT UNTIL: 20150727

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5046715

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350