JP5542857B2 - クエリ発行装置、クエリ発行プログラム、クエリ発行方法 - Google Patents

クエリ発行装置、クエリ発行プログラム、クエリ発行方法 Download PDF

Info

Publication number
JP5542857B2
JP5542857B2 JP2012065770A JP2012065770A JP5542857B2 JP 5542857 B2 JP5542857 B2 JP 5542857B2 JP 2012065770 A JP2012065770 A JP 2012065770A JP 2012065770 A JP2012065770 A JP 2012065770A JP 5542857 B2 JP5542857 B2 JP 5542857B2
Authority
JP
Japan
Prior art keywords
information
physical
data
column
logical
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
JP2012065770A
Other languages
English (en)
Other versions
JP2013196610A (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.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Solutions 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 Toshiba Corp, Toshiba Solutions Corp filed Critical Toshiba Corp
Priority to JP2012065770A priority Critical patent/JP5542857B2/ja
Publication of JP2013196610A publication Critical patent/JP2013196610A/ja
Application granted granted Critical
Publication of JP5542857B2 publication Critical patent/JP5542857B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

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

Description

本発明の実施形態は、参照、挿入、更新、削除の各操作を行うためのクエリを生成し、データベースに発行する技術に関する。
企業業務に用いられるデータは、一般的に関係データベース管理システム(RDBMS)で管理されており、RDBMSへSQL文(クエリ)を発行することで、データ取得や登録、削除、更新の処理が行われる。また業務システムは、複数のクライアントと1つまたは複数のサーバ群により構成されるクライアント−サーバシステムが採用される。
また業務システムでは、システム運用時に利用者がデータベース(以下、DBと称す)内のデータを操作する際、使用上の手間や各テーブル間、カラム間のデータ不整合を防止するため、利用者が直接SQL文を記述してDBへ発行することは稀である。通常は、利用者の観点で分類(カテゴリ化)された業務内容や処理内容に関する情報をシステムが受け付け、この情報に基づき、システムがSQL文を作成してDBへ発行する、という実装が採用される。よって、SIベンダー等、DBの設計や構築に携わる者は、利用者の観点に立脚して業務内容や処理内容を分類し、この分類分けに基づきDBを設計、構築していく。
関連技術として、以下の文献が開示されている。
特開2005−63374号公報
DBを構築する際、依頼元の企業ごとに、その企業に適合するようにDBを構築する必要があり、企業に適合したクエリを生成し、発行するシステムを、企業ごとに都度実装する必要がある。また依頼元の企業に現存のDBがあり、新規システムに移行する場合、現存DB内の各データを新設のDBへ移行する作業が発生する。この際、既存DBの物理構造に応じた検索、更新、登録、削除のクエリを実装する必要がある。
本発明が解決しようとする課題は、利用者観点である論理視点と、DBの物理的定義(物理視点。実データが保持されているDB内のテーブル定義やカラム定義)とを対応付けた情報を用いることで、物理データを意識しないアクセスを実現するとともに、この対応情報を用いることで、データアクセス処理の機能を一部汎用化させ、構築期間の短縮を図ることが可能な技術を提供することである。
実施形態のクエリ発行装置は、保持部と、処理部とを有する。保持部は、利用者の観点で区分けされた処理内容に関する情報である論理情報と、操作対象となるデータベースのテーブル定義情報およびカラム定義情報を少なくとも含む情報である物理情報と、を対応付けて保持する。処理部は、論理情報を特定する情報である第1情報を取得し、保持部で保持された対応付けおよび第1情報に基づき、データベース内のデータを操作するクエリを作成し、クエリをデータベースに発行する。
また実施形態のクエリ発行装置は、保持部と、処理部とを有する。保持部は、第1のデータベースのテーブル定義情報およびカラム定義情報を少なくとも含む第1物理情報と、第2のデータベースのテーブル定義情報およびカラム定義情報を少なくとも含む第2物理情報と、を対応付けて保持する。処理部は、第1物理情報を特定する第1情報を取得し、保持部で保持された対応情報および第1情報に基づき、第2のデータベース内のデータを操作するクエリを作成し、クエリを第2のデータベースに発行する。
実施形態の業務システムの構成例を示す図である。 実施形態の業務システムのブロック図の一例を示す図である。 実施形態のメタDBのデータモデルの一例を示すER図である。 実施形態のメンテナンス項目エンティティの一例を示す図である(その1)。 実施形態のメンテナンス項目エンティティの一例を示す図である(その2)。 実施形態の画面表示部が表示するテーブル型レイアウトの一例を示す図である。 実施形態の画面表示部が表示するツリー型レイアウトの一例を示す図である。 実施形態の業務システムの物理データ抽出時(検索時)の動作例を示すフローチャートである。 実施形態の抽出用クエリ生成処理の動作例を示すフローチャートである。 実施形態の物理データ抽出処理の動作例を示すフローチャートである。 実施形態の抽出データ表示処理の動作例を示すフローチャートである。 実施形態の業務システムの物理データ登録、更新、削除時の動作例を示すフローチャートである。 実施形態の物理データの登録、更新、削除の可否を検証する処理の動作例を示すフローチャートである。 実施形態の物理データの登録、更新、削除用のクエリを生成する処理の動作例を示すフローチャートである(その1)。 実施形態の物理データの登録、更新、削除用のクエリを生成する処理の動作例を示すフローチャートである(その2)。 実施形態の態様を適用させた応用例の構成を示す図である。
図1は、業務システムのハードウェア構成例を示す図である。本実施形態の業務システムは、主に顧客からの問い合わせや相談、受注や修理等の窓口であるコールセンター業務を管理するシステムである。また以下では、主にコールセンター業務で用いられるDBのマスタデータ(物理データ)の検索、登録、更新、削除を行うときの操作例について説明する。尚、マスタデータの更新等の作業は、専らシステム保守時(メンテナンス時)に行われるため、以下の実施形態ではテーブルやエンティティに「メンテナンス」という用語が用いられているが、態様は保守時等に限定されない。また上記の業務システム以外にも本実施形態の態様を適用することができる。
業務システム100は、クライアント端末1、アプリケーションサーバ2(クエリ発行装置)、DBサーバ3の3階層システム(3層アーキテクチャ)で実装されている。これら各装置は、それぞれがプロセッサやメモリ、ハードディスクドライブ等の従前のユニットで構成されるコンピュータである。また必要に応じて、それぞれ複数台で構成されてもよい。
クライアント端末1とアプリケーションサーバ2とは、本実施形態ではネットワーク4Aを介して互いに通信可能であり、アプリケーションサーバ2とDBサーバ3とは、本実施形態ではネットワーク4Bを介して互いに通信可能である。このネットワーク構成はあくまでも一例である。
クライアント端末1は、例えば据え置き型PC(PC:パーソナルコンピュータ)やスレートPC、タブレットPCであり、演算処理装置であるプロセッサ、主記憶装置であるメモリ、フラッシュメモリやHDD(ハードディスクドライブ)等の補助記憶装置を有する。またクライアント端末1は、外部とのデータ通信を制御する通信デバイス、モニター等の表示装置、キーボード、マウス等の入力装置を有する。表示装置、入力装置はタッチパネルディスプレイであっても構わない。これら各ユニットはデータバスを介して互いにコマンド送受信、データ送受信を行っている。
アプリケーションサーバ2は、クライアント端末1と同様にプロセッサ、メモリ、補助記憶装置や通信デバイスを有する据え置き型のコンピュータである。アプリケーションサーバ2は、クライアント端末1からの指示に基づき、DBサーバ3に保持されている物理データを検索、登録、削除、更新(以下、必要に応じてこれらを「操作」と総称する)を行うためのクエリを生成する。またアプリケーションサーバ2は、生成したクエリをDBサーバ3へ発行して検索結果や処理後のステータスを受信し、クライアント端末1へ送信する。アプリケーションサーバ2内のメモリには、メタ情報が記憶される。メタ情報とは、DBサーバ3に格納されているDBのテーブル名やカラム名等の物理的な定義情報と、利用者の観点に立脚して処理内容が分類された情報とを対応付けたDBである。詳細については後述する。
DBサーバ3は、RDBMSが事前に導入されており、操作対象となる物理データ(実データ)を永続的に保持している。本実施形態で用いられるRDBMSとして、現在市場に流通しているRDBMSを流用することができる。DBサーバ3は、アプリケーションサーバ2からの検索用クエリに応じて、保持している物理データをアプリケーションサーバ2へ送信し、また、アプリケーションサーバ2からの登録、削除、更新用のクエリに応じて、物理データの登録、削除、更新を行う。
図2に、業務システム100の機能ブロックの一例を示す。業務システム100は、画面表示部10、処理部20、DB制御部30の機能部を有し、またDBとして、メタDB23、物理DB31を有する。図2に示す各機能部は、クライアント端末1、アプリケーションサーバ2、DBサーバ3に事前に導入されたアプリケーションが、各装置内のメモリにロードされ、各装置内のプロセッサで演算実行されることで実現される。
画面表示部10は、図1のクライアント端末1に相当し、利用者に所定のレイアウトでメタDB23や物理DB31内のデータを表示し、また利用者からの入力を受け付け、DB操作の指示電文を生成し、処理部20へ指示電文を送信する。
処理部20は、データ送受信部21、クエリ生成部22を有する。データ送受信部21は、画面表示部10、クエリ生成部22、DB制御部30間のデータの送受信を司る機能部である。データ送受信部21は、クエリ生成部22が生成したクエリをDB制御部30へ発行し、また必要に応じて自らがクエリを生成し、DB制御部30へ発行する。クエリ生成部22は、メタDB23内で定義されている情報に基づき、ユーザからの要求に対応したクエリを生成する。尚、処理部20(データ送受信部21およびクエリ生成部22)が、図1のアプリケーションサーバ2に相当する。また、以下に説明する処理が行われる際、メタDB23のデータは、アプリケーションサーバ2内のメモリ(保持部)にロードされ、アプリケーションサーバ2に取り込まれる。
DB制御部30は、クエリ生成部22で生成されたクエリを、データ送受信部21を介して受信し、クエリに応じた操作を物理DB31に行う。DB制御部30は、受信したクエリが検索用のクエリである場合、物理DB31から対象となる物理データを検索し、検索結果である物理データを処理部20に送信する。またDB制御部30は、受信したクエリが登録、更新、削除用のクエリである場合、物理DB31内のデータについて、登録、更新、削除の処理を行い、処理成功や失敗等のステータスデータを処理部20に送信する。
物理DB31は、運用時に用いられる実データや、更新日、更新者、権限等の管理データを定義付けて蓄積するDBである。物理DB31では、1:Nや1:N:N(Nは複数を意味する)などのテーブル間の関連性(リレーション)も管理される。
DB制御部30、物理DB31を含んだ構成が、図1のDBサーバ3に相当し、DB制御部30、物理DB31でRDBMSパッケージが構成される。またメタDB23は、本実施形態では、DBサーバ3内のハードディスクドライブに永続的に記憶されている。上述通り、メタDB23内のデータは、実行処理時にはアプリケーションサーバ2内のメモリ(保持部)にロードされ、アプリケーションサーバ2内に記憶される。図2の例は、メタDB23がアプリケーションサーバ2内に取り込まれている状態を示しており、以降の説明も同様とする。尚、メタDB23を永続的にアプリケーションサーバ2内のハードディスクドライブに記憶させる実装でもよい。
図3は、メタDB23内で管理されるデータモデルを具体的に示した図であり、メタDB23内に記憶されている各エンティティの関係を、IE表記法(IE:インフォメーション・エンジニアリング)で示したER図である。尚、図3に示す各ブロックは、実際にはメタDB23内ではテーブルとして実装されているが、以下の説明では、物理DB31内の各テーブルと区別するため、エンティティと称する。また図3の各ブロック最上段には、「メンテナンス種別マスタ/MNT_TYPE_MST」等のエンティティ名称やエンティティ物理名(テーブル名)が示されており、その下段には当該エンティティ内で定義されているデータ項目が示されている。データ項目の欄は、例えば「(PK)メンテナンス種別ID」、「MNT_TYPE_ID」、「NUMBER(NN)」など、データ項目名称、物理名(カラム名)、データ型の順で示されている。データ項目内の(PK)の表記は、当該エンティティのプライマリキー(主キー)であることを意味し、また(FK)の表記は外部キーを意味する。
また図3には、エンティティ間のリレーションも示されており(エンティティ同士の関係が、いわゆる「鳥の足」で示されている)、1:1の関係や、1:N、1:N:N関係も示されている。
図3に示されているエンティティ名やデータ項目、リレーションは、あくまでメタDB23内で管理されているテーブルやカラム、リレーションを示すものであり、物理DB31のテーブルやカラムを示すものではないことに留意する。
メタDB23は、利用者観点に立脚した情報である論理情報と、物理データに関する情報である物理情報とを、エンティティやリレーションで対応付けたデータ構造を有している。論理情報とは、本実施形態では、例えば「商品Aの値段に関する問い合わせの内容をDBに登録する」、「特定部署に所属している社員の情報を更新する」、「所定商品の販売を行うため情報を登録する」、「所定製品の単価を変更する」等の利用者側に立脚したDB操作や、このような操作を行うためのDBへの操作順番などを定義した情報である。論理情報には、画面表示部10の表示レイアウトや表示用の文字列(ラベル)も含まれる。
一方、物理情報とは、上述の通り、実データを保持している物理DB31内のテーブル定義、カラム定義である。尚、本実施形態では、複数テーブルの結合方法や、テーブル操作を行うことができるか否かのフラグデータもテーブル定義(物理情報)に含め、また当該カラムがキーであるかの情報もカラム定義(物理情報)に含める。
図3を参照して、より具体的に説明すると、論理観点についての定義情報は、主にメンテナンス種別マスタエンティティ、メンテナンスユニット、メンテナンス情報、メンテナンス項目の各エンティティに具現化されている。また物理DB31で管理されているテーブルやカラム等の定義情報(物理情報)は、主に、対象テーブル、対象テーブルカラムの各エンティティに具現化されている。クエリ生成部22は、この対応関係に基づきDB制御部30へ発行するためのクエリを生成する。
ここで、主要となるエンティティについて説明する。
まずは、メンテナンス種別マスタエンティティ内の各データ項目について説明する。メンテナンス種別マスタエンティティは、主に画面表示部10の表示に関して定義付けするためのエンティティである。
・メンテナンス種別ID・・・メンテナンス時の方式や画面表示部10で表示されるレイアウト(テーブル型やツリー型等)を区別するID。
・メンテナンス種別名・・・メンテナンス種別を表す名前である。メンテナンス種別には、1:単純ツリー構造、2:複層ツリー構造、3:一覧、がある。
・メンテナンスモジュール生成クラス・・・メンテナンスレイアウトなどを生成、定義するためのクラス。
・メンテナンスモジュールクライアントクラス・・・物理DB31内のデータを編集するエディタプログラムのFQCN(完全修飾クラス名)。
尚、本実施形態において、クラスとは実行モジュールのことである。上記のようにデータ項目名に「クラス」とあるものは、実行モジュールを特定するための情報(例えばFQCNで示した文字列やフォルダ名、ファイル名)が格納される(以下同様)。導入先企業に応じた特殊なカスタマイズが必要となる場合があるため、本実施形態では、カスタマイズが必要となる機能については、外部の実行モジュールとして指定し、その外部実行モジュールを起動させる実装となっている。このように、カスタマイズが必要なものについては外部へ出し、そのインターフェイスとなる部分をデータで保持することで、システムとしてはより汎用性を高めることができる。実行モジュールは、システムを導入する先々に応じて作成されてもよいし、予め作成済みのモジュールであってもよい。
次に、メンテナンスユニットエンティティ内の各データ項目について説明する。メンテナンスユニットエンティティは、1つのメンテナンス機能(後述のメンテナンス情報エンティティ)を論理的にまとめ、グループ化するためのエンティティである。
・メンテナンスユニットID・・・このメンテナンスユニットを識別するための情報。
・メンテナンスユニット名・・・このメンテナンスユニットの名前。画面表示部10には、このメンテナンスユニット名がメンテナンス名として表示される。
・メンテナンス種別ID・・・メンテナンス種別を表す名前。メンテナンス種別マスタエンティティを参照する外部キー。
メンテナンス情報エンティティ内の各データ項目について説明する。メンテナンス情報エンティティは、1つのメンテナンス機能において、データ内容や処理を論理的に区別するためのエンティティである。メンテナンス機能は、例えば「全ての商品に関する問い合わせデータは、同じメンテナンス機能で行う」や、「商品Aに関する全ての情報は、同じメンテナンス機能で行う」等、利用者の観点で区分される。
・メンテナンスID・・・このメンテナンス情報を識別するための情報。
・メンテナンスユニットID・・・メンテナンス種別を表す名前。上記メンテナンスユニットエンティティを参照する外部キー。
・ユニット内順番・・・メンテナンスユニット内での、このメンテナンス情報の順位を示す値であり、データ処理の順番や画面表示時の順番などを示す。
・メンテナンス名・・・このメンテナンス情報を表す名称であり、画面表示部10で表示する際に使用される文字列(ラベル)である。
・権限オブジェクトID・・・利用者が操作を行えるかどうかを定義したID。メンテナンス権限エンティティの主キーが定義される。
・最小有効階層・・・ツリー構造であるとした場合に、データとして最低限何階層必要かを示す値である。
・最大有効階層・・・ツリー構造であるとした場合に、データとして最大何階層必要かを示す値である。
・下位データ接続種別ID・・・下位データに接続する方法を区別するID。下位データ接続種別マスタエンティティを参照する外部キーである。
・抽出条件SQL・・・メンテナンス対象のデータ(物理DB31内の物理データ)を抽出するためのSQLが定義されており、各エンティティで定義されない、カスタマイズされたSQL(WHERE句への追加条件)が定義される。
メンテナンス項目エンティティ内の各データ項目について説明する。メンテナンス項目エンティティは、主に、論理情報の最小単位を定義したエンティティであり、論理情報と物理DB31内のカラムとを対応付けるためのエンティティである。
・メンテナンス項目ID・・・このメンテナンス項目を区別するIDである。
・メンテナンスID・・・上記メンテナンス情報エンティティを参照する外部キーである。
・メンテナンス情報内順番・・・メンテナンス情報内での順番を表し、メンテナンス情報のくくりで、このメンテナンス項目のデータ処理順や画面表示の際の表示順が定義されている。
・メンテナンス項目名・・・メンテナンス対象カラムの物理キー名を表し、データ取得の際のキーとして利用される。ここに、物理DB31のカラム名が定義される。
・メンテナンス項目論理名・・・メンテナンス対象カラムを表す名称。画面表示部10で表示する際に使用される。
・下位メンテナンス項目ID・・・下位のメンテナンス項目に接続する際の、結合先キーとなるIDである。
・ソート順・・・メンテナンス情報を取得する際のレコードのソート順を決める項目が定義される。
・ソート種別コード・・・ソート種別を示すコード。1:正順、2:逆順。
・表示フラグ・・・この項目を画面表示部10に表示させるかを定義するフラグデータ。
・編集種別コード・・・この項目を編集可否などのモードを指定するコード。0:編集不可、1:常時編集可能、2:新規のみ編集可能、3:更新時のみ編集可能、のいずれかの値が定義される。
・ラベルデータ項目フラグ・・・画面表示部10でメンテナンス情報を編集する際に、画面上に表示されるラベル項目(ツリー表示におけるフォルダ名、一覧表示における固定スクロール項目など)であるかどうかを表すフラグ。
・ラベルデータ項目順番・・・ラベルデータを画面表示に使用する際の、表示する順番が定義されている。この順番を利用することで、ラベルデータの表示する範囲や方法を変えることが可能となる。
・入力フォーム形式ID・・・画面表示部10で表示される入力フォームの形式を区別するID。入力フォームには、テキスト型、複数行テキスト型、選択リスト型、入力可能選択リスト型、チェックボックス型、ラジオボックス型、年月日型、時間型などがある。
・参照選択肢ID・・・参照選択肢を区別するID。メンテナンス参照選択肢エンティティを参照する外部キーである。
・選択肢ID・・・選択肢を区別するID。
・標準値指定種別ID・・・標準値指定種別を区別するIDであり、標準値指定種別マスタエンティティを参照する外部キーである。1:ログイン者ユーザID、2:ログイン者組織ID、3:SYSDATE、99:固定値がIDとして定義され、いずれかの数値が格納されている。
・標準値・・・標準値指定種別IDで「99:固定値」が定義されている場合に、この標準値には、適用される固定値が定義される。
・シーケンス名・・・物理DB31へのレコードの新規登録を行う際、シーケンスからの発番を必要とするカラムの場合、そのシーケンス名が定義される。尚、シーケンスは発番プログラムであり、DB制御部30の機能として提供される。
・シーケンス発番クラス・・・物理DB31へのレコード新規登録時に特殊な方法でのシーケンス発番を必要とするカラムの場合に、そのクラス名(発番する実行モジュール)を指定する。
・下位データ接続項目ID・・・このメンテナンス情報における子孫データ(下位データ)に接続する際に使用するカラムを特定するための項目ID。
・書式種別ID・・・カラムの書式種別を区別するIDであり、カラム書式種別マスタエンティティを参照する外部キーである。書式種別IDには、例えば「半角入力」、「西暦年月日」、「整数」、「メールアドレス」等がある。
次に、対象テーブルエンティティ内の各データ項目について説明する。対象テーブルエンティティには、物理DB31内の各テーブル名が定義されており、複数の物理テーブルを指定する場合はどのように結合するか、またここで定義された物理テーブルを操作することが可能か否かを定義するエンティティである。
・メンテナンステーブルID・・・この対象テーブルエンティティを区別するためのIDである。
・メンテナンスID・・・メンテナンス情報エンティティを参照する外部キーである。
・メンテナンス順番・・・メンテナンス実行時の順番を示す。登録、更新時は正順、削除時は逆順で処理される。
・メンテナンステーブル名・・・物理DB31内のテーブル物理名。
・メンテナンステーブル別名・・・物理テーブルを一意に特定できるテーブル別名。
・テーブル結合順番・・・メンテナンス情報エンティティ内でのテーブル結合の順番を示す値であり、FROM句内の順番を表す。
・テーブル結合インデント・・・1つのメンテナンス機能内で結合される各テーブルのインデントであり、FROM句内での結合の包含関係を表す。
・テーブル結合種別コード・・・テーブルの結合方式を示すコードであり、0:結合不要、1:内部結合、2:外部結合のコードが定義される。
・テーブル結合条件SQL・・・テーブル結合のON句内に記述されるSQLである。
・作成可能フラグ、更新可能フラグ、削除可能フラグ・・・物理テーブルに対して各操作が可能か否かを表すフラグである。
対象テーブルカラムエンティティ内の各データ項目について説明する。対象テーブルカラムエンティティは、物理DB31内で管理されているテーブルの物理カラムを定義したエンティティである。
・メンテナンスカラムID・・・この対象テーブルカラムエンティティを区別するためのIDである。
・メンテナンステーブルID・・・対象テーブルエンティティを参照する外部キーである。
・メンテナンス項目ID・・・メンテナンス項目エンティティを参照する外部キーである。
・メンテナンス項目代表フラグ・・・ここで定義された物理カラムをメンテナンス項目として表示、利用するかを定義したフラグである。メンテナンス項目は、複数の物理カラムに紐づく場合があることから、ここで代表として指定されているものを使用する。
・カラム名・・・物理DB31のカラムの物理名が定義される。
・検索カラム名定義・・・メンテナンス項目をデータベースから取得する際に使用するカラム名。通常は物理DB31のカラム物理名であるが、必要があれば関数を含む文字列であってもよい。
・論理カラム名・・・物理DB31のカラムの論理名が定義される。
・キーカラムフラグ・・・ここで定義される物理カラムが、レコードを一意に判別できるキーカラム(主キー相当)であるか示すフラグ。
・キーカラム順番・・・物理DB31内のレコードを判別できるキーカラムの順番。
・シーケンス名・・・物理DB31内にレコードを新規登録するときに、発番を必要とするカラムである場合、そのシーケンス名が定義される。
・シーケンス発番クラス・・・物理DB31内にレコードを新規登録するときに特殊な発番を必要とするカラムである場合、その発番を行う実行モジュールが定義される。
下位データ接続種別マスタエンティティについて説明する。下位データ接続種別マスタエンティティは、メンテナンス情報の括りを跨ぐ操作を可能とするための機能を提供するための定義情報であり、上位データと下位データとの関連について定義したエンティティである(上位データ、下位データの関連については後述する。)
・下位データ接続種別ID・・・この下位データ接続種別マスタエンティティを区別するためのIDである。
・下位データ接続種別名・・・この下位データ接続種別マスタエンティティの名称である。
・接続情報生成クラス・・・メンテナンス情報を跨いだ操作を行うときに実行されるクラスを定義する。
メタDB23には、図3に示すように、これら以外にもメンテナンス権限や値の型を定義したエンティティ、画面表示部10の表示用入力フォームを定義したエンティティ等、様々な定義情報が記憶されている。
図3により、メンテナンス情報エンティティと対象テーブルエンティティとがリレーション関係にあること、および、メンテナンス項目エンティティと対象テーブルカラムとがリレーション関係にあることがわかる。このことから、本実施形態では、管理上の層(レイア)の構成としては、メンテナンス情報エンティティと物理DB31のテーブルとが対応し、メンテナンス項目エンティティと物理DB31のカラムとが対応する。
メタDB23には、論理視点(メンテナンス情報の括り)を跨いだ関係も定義されており、クエリ生成部22は、この対応関係も考慮してクエリを生成する。本実施形態では、この論理視点を跨いだ関係を、必要に応じて上下関係と称する(上下関係の構築例については、後述の画面説明の際に詳説する。)
この上下関係について、図4、図5を参照しつつ説明する。図4、図5は、メンテナンス項目エンティティ(テーブル)に格納されているデータの具体例を示している。すなわち図4、図5は、図3のメンテナンス項目エンティティ内に列挙されている各データ項目をカラムとし、具体的データをレコードで保持しているテーブルを示している。この図4、図5は、メンテナンス項目IDについての上下関係も例示されている(図中の矢印参照)。
利用者が、例えばメンテナンス情報Aについての更新処理を行う場合(尚、本実施形態は、利用者がメンテナンス情報Aを直接的に意識することなく指定することが可能な実装となっている)、メンテナンス情報Aに関連するメンテナンス項目エンティティや、対象テーブルエンティティ、対象テーブルカラムエンティティ等のレコードが収集され、更新用のクエリが作成される。このとき、クエリ生成部22は、物理DB31の所定のテーブル内で保持されている「ORG_ID」、「ORG_CODE」、・・・、「VERSION_NO」のカラムを対象に、変更が発生したものについては更新を行うSQL文を生成する。
ここで、下位メンテナンス項目IDについて説明する。下位メンテナンス項目IDは、テーブル間のリレーション(外部キー)を示すものであり、同一メンテナンスユニットエンティティ内の他の(下位の)メンテナンス情報エンティティに属するIDが設定されている。よって、(上位の)下位メンテナンス項目IDにID値が設定されている場合、(下位の)メンテナンス情報エンティティ内のデータも更新される。下位メンテナンス項目IDの使用方法は、以下となる。
上記以外の図4、図5内において、矩形枠で囲まれ、矢印で示されている関係も、同様の動作となる。尚、この例では「ORG_ID」のカラム名が同じであるため、同一の物理テーブル内の「ORG_ID」カラムのように感じられるが、上述したように、メンテナンス情報と物理DB31の物理テーブルとが対応付けられていることから、これら「ORG_ID」は、物理DB31内のそれぞれ異なった物理テーブルの物理カラムとなる。
尚、下位データ接続項目IDが自身のメンテナンス情報を指し示しているもの(図の例では、メンテナンス項目IDが「10040002」のもの)は、組織コード(物理データ)の上位桁が「部」を示し、下位桁が「課」を示す等、コード自体で階層構造を有するデータ(自己参照型)となっている場合の対処である。
また図4、図5からも明らかなように、メンテナンス項目エンティティには、メンテナンス項目IDやメンテナンスIDという、利用者視点のカラムを有し、且つ、メンテナンス項目名、メンテナンス項目論理名という、物理視点のカラムを有する。これは、論理視点のデータと、物理視点のデータとを少なくとも対応付けてレコードで保持していることを意味する。
次に、画面表示部10での表示例を図6、図7に示す。図6は、物理DB31に保持されている内容を、上段をテーブル型、下段を編集型で表示したものである。上段テーブル型画面の任意の行をユーザが指定すると、画面表示部10は、下段編集型画面に、内容(プロパティ)や値を表示する。この下段画面は編集可能な領域となっており、利用者は、キーボードやマウスを用いて値を設定する。
また図7(A)は、利用者視点で区分された構造をツリー型で表示した例であり、図7(B)は、ツリー型およびテーブル型で表示した例である。図7(A)に示す各表示画面も、上段に表示されたツリー項目を利用者が選定することで、下段の編集型画面にこの選定された内容や値が表示される。図7(B)については、上段左側のうちからツリー項目(本例では「管理グループ」)が選定されると、上段右側のテーブル型画面に、代表項目が表示される。テーブル型画面に表示された項目のうちの一つが選定されると、下段に、編集可能な形式で詳細項目が表示される。
図7(B)の場合、「管理グループ」が選択されると、処理部20は、「管理グループ」に関連した物理データを一括で取得し、画面表示部10へ送信する。画面表示部10は、一括で取得されたデータのうちから、現時点で必要な内容のみを表示するように制御する。例えば図7(B)の場合、「管理グループ」が選定された際には、「管理グループ」に関連した物理データが一括で取得されるが、テーブル型画面の表示領域に「ログインID」、「利用者名」の各値のみを表示し、下段の領域には何も表示しない。テーブル型画面の「ログインID」や「利用者名」が選択されて初めて下段領域に詳細内容が表示される。このように複数段階で表示される方式においても、一括で物理データが取得されることで、DBに対しての問い合わせ数を削減することができる。この一括取得は、図7(A)の表示形式でも同様である。例えば「テレビ問合せ(業務用)」がユーザにより選択された場合、当該ツリー内に属しているプロパティや値の全てが一括で取得される。
また上記図7(A)の場合、「テレビ問合わせ(業務用)」がメンテナンス情報エンティティ内のメンテナンス名に相当し、「テレビ問合せ(業務用)」とメンテナンス情報エンティティのID(メンテナンスID)とが紐付けられている。上記図7(B)の場合、「管理グループ」がメンテナンス情報エンティティ内のメンテナンス名に相当し、「管理グループ」とメンテナンス情報エンティティのID(メンテナンスID)とが紐付けられている。このように、画面に表示されている項目が選択されると、メンテナンス情報エンティティが特定される。
また図7(B)に示される「相談事業部」もメンテナンス情報に相当させることで、「相談事業部」と「管理グループ」とを上下関係とすることも可能である。このように、本実施形態では、同列のエンティティでもネスト構成、上下関係とさせることができる。
図8〜図15を参照しつつ、業務システム100の動作を説明する。まず初めに、物理DB31内で保持されているデータの検索処理、および検索結果の表示処理について、図8〜図11を用いて説明し、登録、更新、削除の処理については、図12〜図15を用いて説明する。
図8は、検索、表示処理の概要を示すフローチャートである。尚、検索処理は、利用者が画面表示部10で表示されている項目のうちの一つ(例えば図7(A)の上段に表示されるツリーの「テレビ問合せ(業務用)」)を選択した後に実行される。尚、画面表示部10に表示される各表示項目は、メンテナンスユニットエンティティに基づき取得されている。尚、ここでも上述通りデータは一括で取得される。すなわち、「テレビ問合せ(業務用)」が選択指定されると、第2階層、第3階層で定義された物理情報も含め一括でデータが取得され、アプリケーションサーバ2のメモリ内に格納され、その後の利用者の操作に対応して必要な情報が当該メモリから取得され画面表示される。
データ送受信部21は、画面表示部10から送信されたメンテナンスIDを取得し、クエリ生成部22は、メンテナンスIDに基づき、メンテナンス対象に関する定義情報を取得する(S101)。次にクエリ生成部22は、物理データ抽出用のクエリを生成する(S102)。データ送受信部21は、生成されたクエリをDB制御部30に発行することで、物理DB31から物理データを抽出する(S103)。データ送受信部21は、抽出結果(検索結果)を画面表示部10に送信し、画面表示部10は、図6、図7で示すレイアウト上に、抽出結果を表示する(S104)。この処理は、ネストデータ(上下関係において、下位のデータ)が有る限り実行される。
ステップS102のクエリ生成処理の詳細動作を、図9を参照しつつ説明する。クエリ生成部22は、対象となるテーブル(物理DB31内のテーブル)が複数テーブルであるか単一テーブルであるかを判定する(S111)。この判定は、メンテナンス情報エンティティに紐付けられた対象テーブルエンティティが1つであるか複数であるかを基に判定される。
単一テーブルである場合(S111、単一テーブル)、クエリ生成部22は、その対象テーブルエンティティで指定された物理テーブルを処理対象と定義する(S112)。一方、複数テーブルである場合(S111、複数テーブル)、クエリ生成部22は、対象テーブルエンティティ内部の各データ項目を参照し、結合方法(単純結合/等価結合/外部結合)、結合順番、インデント(結合時の階層)を定義し、対象となるテーブル(物理テーブル)を、対象テーブルエンティティの対象テーブル結合順番の順で結合する(S113)。この際、対象テーブルエンティティの結合条件SQLに値が設定されている場合、結合条件SQLの設定値も結合条件に加えられる。尚、ステップS111、S112、S113の処理は、抽出対象となる物理テーブルを決定する処理であり、対象テーブルエンティティのテーブル結合順番、テーブル結合インデント、テーブル結合種別コード、テーブル結合条件SQLが主に用いられる。
次にクエリ生成部22は、対象テーブルカラムエンティティで定義されているカラム(物理カラム)を抽出対象として指定する(S114)。クエリ生成部22は、ここでは、ステップS112やS113で指定されている対象テーブルエンティティとリレーション関係を確認したり、また、メンテナンス項目エンティティ内で定義されているメンテナンス項目名に基づくことで、対象テーブルカラムエンティティを特定し、当該対象テーブルカラムエンティティ内のデータ項目を取得する。ステップS114の処理は、抽出対象となる物理テーブルの物理カラムを決定する処理となり、対象テーブルカラムエンティティのカラム名、検索カラム名定義、論理カラム名等が参照される。
クエリ生成部22は、メンテナンス情報エンティティで定義された抽出条件(抽出条件SQL)を取得し(S115)、メンテナンス項目エンティティで定義されたソート条件(ソート順、ソート種別コード)を取得する(S116)。ステップS115〜S116の処理は、抽出条件、ソート条件を決定する処理となる。
クエリ生成部22は、上位データから下位データに向けた接続条件の指定の有無を判定する(S117)。ここでは、メンテナンス項目エンティティ内の下位メンテナンス項目IDに値が設定されているか否かで接続条件の指定の有無を判定する。指定が無い場合(S117、指定なし)、処理はステップS119へ進み、指定がある場合(S117、指定あり)、クエリ生成部22は、当該下位メンテナンス項目IDによって、テーブル間リレーション(1:N)のキーカラムであるメンテナンスIDを特定し、これに基づき、データを絞り込む条件を指定する(S118)。下位データは、現在におけるクエリ生成対象となる。上位データからは、下位メンテナンス項目IDとその値内容が渡されているため、下位においては、同じメンテナンス項目IDのカラムに対して、その値を条件に指定される。
クエリ生成部22は、上記各ステップにより指定される項目を組み合わせることにより、クエリ(セレクト文)を作成する(S119)。
次に、図8のステップS103(メンテナンスデータ抽出処理)について、図10を参照しつつ詳説する。尚、この処理は、データ送受信部21が主体となって動作するものとして説明するが、データ送受信部21とクエリ生成部22とが互いに連携して動作する実装でもよい。
データ送受信部21は、生成されたクエリをDB制御部30に送信することで、当該クエリに基づいた物理データを取得する(S131)。尚、データ送受信部21のクエリ送信処理、DB制御部30のクエリの解釈処理や検索処理は既知の技術が採用される。
データ送受信部21は、メンテナンス項目エンティティの下位データ接続項目IDやメンテナンス情報エンティティの下位データ接続種別IDに値が設定されているかを判定する(S132)。値が設定されている場合(S132、指定有り)、下位データ接続種別マスタエンティティを参照して接続情報生成クラス(実行モジュール)を特定し、当該実行モジュールを実行することで、データの階層構造を生成する(S133)。接続情報生成クラスにより、例えば上記自己参照型にも対応させることができる。自己参照型の階層構造を生成する実行モジュールである場合、値の何桁までを上位部署のコードとし、何桁までを下位部署のコードとするかを判別し、上位部署のコードと下位部署のコードとをCSVデータで出力する、などの処理を行う。
このように取得される物理DB31内の値、および階層構造は、画面表示部10に送信される。尚、ステップS132で下位データ接続種別IDに値が設定されていない場合(S132、指定なし)、データ送受信部21は、物理データ30内の値のみを画面表示部10に送信する。ここで示される送信処理では、データの型や表示レイアウトに関するデータ等、画面表示部10で表示を行う際に必要となるデータも同時に送信される。
次に、図8のステップS104の表示処理について、図11を参照しつつ詳細動作を説明する。
画面表示部10は、イメージを作成する対象部位がテーブル型やツリー型を表示する領域か、またはデータ編集可能な領域かを判定する(S141)。テーブル型やツリー型を作成する部位である場合(S141、テーブル/ツリー型)、画面表示部10は、事前に取得している、メンテナンスユニットエンティティで定義されたメンテナンス種別を判定する(S142)。メンテナンス種別がテーブル型である場合(S142、テーブル型)、画面表示部10は、図6の画面上段に示すようにテーブル一覧の画面レイアウトを作成する(S145)。一方、メンテナンス種別がツリー型である場合(S142、ツリー型)、画面表示部10は、図7(A)の画面上段や図7(B)の画面上段左側に示すように、1:N型や1:N:N型(すなわちツリー型)に対応する画面レイアウトを作成する(S143)。次に画面表示部10は、データ送受信部21から送信された物理データを、作成した画面レイアウト上に表示する(S144)。
また一方、ステップS141で、作成部位がデータ編集用の領域である場合(S141、データ編集型)、画面表示部10は、編集対象項目数に達するまで以下のステップS146〜S148の処理をループさせる。
画面表示部10は、データ編集形式を判定する(S146)。ここでは、メンテナンス項目エンティティで定義されている入力フォーム形式IDの値に基づき判定する。ここでデータ編集形式がテキスト型である場合(S146、テキスト形式)、画面表示部10は、メンテナンス項目エンティティの書式種別IDで指定されたデータ書式(日付、時刻、カンマ区切りの数値、その他の設定)に補正して、現在の設定内容を表示する(S147)。またデータ編集形式が選択肢型である場合(S146、選択肢形式)、メンテナンス項目エンティティの参照選択肢IDの参照先であるメンテナンス参照選択肢エンティティと、メンテナンス項目エンティティの選択肢IDに基づくメンテナンス選択肢マスタエンティティとを用いて、固定値、または任意のマスタデータ内容を動的に参照して選択肢を作成する(S148)。
尚、図11のステップS141〜S144は、メンテナンスユニットエンティティのメンテナンス種別ID、メンテナンス種別マスタエンティティのメンテナンスモジュール生成クラス、メンテナンスモジュールクライアントクラスが主に用いられる。またステップS143、S145では、メンテナンスユニットエンティティの権限オブジェクトID、およびメンテナンス権限エンティティの作成可能フラグ、参照可能フラグ、更新可能フラグ、削除可能フラグも用いられ、利用者が操作可能かも判定される。さらに、図11に示されるループ処理やステップS146〜S148は、メンテナンス項目エンティティの表示フラグ、編集種別コード、入力フォーム形式ID、参照選択肢ID、選択肢ID、書式種別ID、カラム書式種別マスタエンティティのカラム書式種別名、カラム書式種別名バリエーションクラス、メンテナンス参照選択肢エンティティの抽出用SQL、メンテナンス選択肢マスタエンティティの選択値が用いられる。
次に、業務システム100の登録、削除、更新処理の概要について図12に示す。以降、登録、削除、更新の動作を区別する必要のないものについては、「更新」の用語を用いる。
まずは更新処理の概要について、図12のフローチャートを参照しつつ説明する。尚、更新処理は、画面制御部10の編集型表示領域に表示されているデータが変更されたときに、随時行われる。更新処理において、まずデータ送受信部20(画面表示部10でもよい)は、更新可能かを検証し(S202)、クエリ生成部22は、メタDB23に基づき更新用のクエリを生成する(S203)。その後、データ送受信部20は、クエリ生成部22で生成されたクエリをDB制御部30へ送信し、DB制御部33が物理データ31に対して更新処理を行う(S204)。更新処理の結果(ステータス)は、画面表示部10まで送信され、随時利用者に通知される実装でもよいし、エラー時のみ通知される実装でもよい。
引き続き、ステップS202、S203の処理の詳細を図13〜図15を参照しつつ説明する。尚、ステップS204の処理は既存技術であるため、これ以上の説明を割愛する。
まずステップS202の更新検証処理について、図13を用いて説明する。データ送受信部20は、変更種別を識別する(S211)。この変更種別は、利用者の、表示データに対しての操作(更新や削除、または登録)に応じて、画面表示部10によって付与されるデータである。
変更種別が更新、削除である場合(S211、更新、削除)、データ送受信部21は、物理DB31の更新対象データのレコードを取得してロックをかける(S212)。ロックの制御はDB制御部30の機能を用いてもよいし、データ送受信部20の機能として提供されてもよい。尚、レコードが他のユーザによって削除されている場合、データ送受信部20は排他エラーとして扱い、画面表示部10にその旨の電文を送信する(S213)。尚、変更種別が登録である場合(S211、登録)、ロック制御は不要であるため、そのままS202は終了する。
次に、ステップS203の更新用クエリ生成処理について、図14、図15のフローチャートを用いて説明する。また図14、図15に示される各ステップは、メンテナンス情報のレコード分、ネスト構造も含めて実行される。
クエリ生成部22は、メンテナンス情報ごとに、データの変更が発生したか否かを判定する(S231)。ここでの判定は、下位のネスト構造も含めてデータ変更の有無が判定される。データ変更が無い場合、当該メンテナンス情報についての処理は終了し、次のメンテナンス情報についての処理が行われる。
データに変更がある場合(S231、あり)クエリ生成部22は、次に変更種別の値を用いて、当該変更が更新、削除、登録のいずれであるかを判定する(S232)。変更種別が登録である場合(S23、登録)、クエリ生成部22は、メンテナンス情報エンティティのユニット内順番、対象テーブルエンティティのメンテナンス順番で定義された順番の正順となるように準備する(S233)。ここでの準備とは、最終的に生成するクエリの一部分を生成したり、また順番を定義付けた中間データを作成したりすることである。
クエリ生成部22は、次に登録値がシーケンス番号か、標準値か、これら以外であるかを判定する(S234)。ここでは、登録対象の実データ(登録値)に対応するメンテナンス項目エンティティ内で、標準値やシーケンス名、シーケンス発番クラスに値が設定されているか否かで判定される。登録値とメンテナンス項目エンティティとの対応は、メンテナンス項目エンティティ内のメンテナンス項目名で紐付けることができる。登録値がシーケンス番号、標準値以外の場合(S234、シーケンス・標準値以外)、処理はS240に進む。
登録値がシーケンス番号である場合(S234、シーケンス)、クエリ生成部22は、メンテナンス項目エンティティで定義されているシーケンス発番方法に基づいてシーケンス発番を行い、その値をクエリに設定する(S235)。ここでは、メンテナンス項目エンティティのシーケンス名、シーケンス発番クラスが参照され、発番される。また登録値が標準値である場合(S234、標準値)、メンテナンス項目エンティティで定義された標準値をクエリに設定する(S236)。ステップS235、S236が行われた後は、S243に処理が進む。
ステップS232の変更種別判定処理に説明を戻す。変更種別が更新、または削除である場合(S232、更新・削除)、クエリ生成部22は、メンテナンス情報エンティティ、対象テーブルエンティティで設定された順番の逆順となるように設定する(S237)。ステップS233の登録処理の場合は正順とし、ステップS237では逆順とする理由について説明する。例えば所定部署と、当該所定部署に所属する社員の情報とを登録、更新、削除する場合、登録は、上位となる所属部署をまず確定させ、下位の社員情報を登録した方が、データの整合が取りやすい。一方、更新、削除の場合、下位となる社員情報をまず更新、削除をしてから上位となる所属部署を更新、削除する方がデータの整合が取りやすい。よって本実施形態では、登録の場合は正順となるように設定し、更新、削除の場合は逆順となるように設定する。
次にクエリ生成部23は、登録する値、更新する値が、利用者が直接入力/選択した値であるか、または上位データの変更に伴い、変更されるものであるかを判定する(S240)。図4、図5を用いて説明したように、下位メンテナンス項目IDに値が設定されている場合、これに起因して処理が行われる。ステップS240では、対象となる登録値、更新値が、利用者が直接入力したものであるか上位データの変更に基づいたものであるかが判定される。
引き続き図15に示す処理について説明する。図15に示すステップS243、S244は、メンテナンス項目に対応付けられた対象テーブルカラムの数だけループ処理を行う。
クエリ生成部23は、テーブル対象エンティティの作成可能フラグ、更新可能フラグ、削除可能フラグに値が設定されているかを確認することで、データが変更可能であるかを判定する(S243)。ここで変更可能である場合(S243、変更可)、対象テーブル、対象テーブルカラム、メンテナンス項目の各エンティティで設定されている、物理テーブルカラムに対する変更を行うクエリを作成する(S244)。
本実施形態のアプリケーションサーバ2は、上述の通り、保持部と、処理部とを有する。保持部は、メタDB23やメタDB23を記憶するメモリである。保持部には、利用者の観点で区分けされた処理内容に関する情報である論理情報と、操作対象となるデータベースのテーブル定義情報およびカラム定義情報を少なくとも含む情報である物理情報とが対応付けられ、対応情報として保持されている。
論理情報は、本実施形態ではメンテナンス種別マスタエンティティ、メンテナンスユニットエンティティやメンテナンス情報エンティティ、メンテナンス項目エンティティに相当する。物理情報は、本実施形態では対象テーブルエンティティ、対象テーブルカラムエンティティに相当する。
処理部は、論理情報を特定する情報である第1情報を取得し、保持部で保持された対応情報および第1情報に基づき、データベース内のデータを操作するクエリを作成し、クエリをデータベースに発行する。第1情報とは、本実施形態では、例えば、利用者が画面表示部10を用いて指定したメンテナンス情報のメンテナンスIDである。
本実施形態の利用者観点は、物理DB31内部のテーブル定義、カラム定義を利用者に意識させないよう、また利用者の業務や作業上の効率性に重きを置いた観点となる。また、利用者にとって理解しやすい、利用者にとって使い勝手がよい、ユーザビリティを有する、等の観点で纏められることもある。
DBシステムを構築する際、通常、論理設計、物理設計の各設計フェーズがあるが、この論理設計の段階で、SIベンダーは導入先企業にどのような処理内容になるのかを確認し、処理内容を区分けする。これが、本実施形態でいう利用者の観点で区分けされた処理内容となる。
このような利用者観点は、利用者とシステムとの間を取り持つユーザインターフェイス(本実施形態では画面表示部)の表示内容に反映される。表示内容とは、例えばレイアウトや表示用の文字列ラベル、アイコンやボタン等がある。本実施形態のメンテナンス種別マスタ、メンテナンスユニットエンティティ、メンテナンス情報エンティティ、メンテナンス項目エンティティ等には、表示用の文字列ラベルやレイアウト等の定義情報も含んでいる。すなわち、本実施形態のアプリケーションサーバは、画面表示部から、画面の定義情報に関する情報を取得する、という捉え方も可能となり、物理DBを操作する際、表示内容を特定する情報をアプリケーションサーバが取得し、メタDB内の対応情報と、取得した情報とを基にクエリを生成する、という捉え方も可能となる。
また、従前より用いられるインデックス(ポインタ情報と総称される場合もある)は、データベースで管理されているテーブルのレコード(行)を指し示す情報であるが、本実施形態のメタDBは、データベースで管理されているテーブルのカラム(列)の情報を保持するものである。
上記例では、システム導入後の運用フェーズ時の物理DBへのアクセスについて言及したが、システムの構築フェーズでも適用できる。すなわち、上記メタDBを導入先の企業ごとに構築することで、アプリケーション(上記例での処理部20の機能に相当)は、一度作成すれば他企業へ導入する際にも相当部分を流用させることができる。特殊なケース等、細部についてはクラスファイル(実行モジュール)を作成し、メタDB内で定義する。
(応用例)
上記実施形態は、DBの移設作業にも応用できる。図16は、既存のDBサーバ3A内の物理DB31Aに格納されているデータを、新設のDBサーバ3B内の物理DB31Bへ移行するときの構成例を示す図である。DBサーバ3A内のDB制御部30A、物理DB31Aと、DBサーバ3B内のDB制御部30B、物理DB31Bとは、同じ仕様(例えばRDBMSの提供ベンダーが同一)であってもよく、異なる仕様であっても構わない。
物理DB31Aと物理DB31Bとの間で、テーブル、カラムの定義が異なっている場合、構築担当者はデータ移行プログラムを作成する必要がある。このようなデータ移行プログラムは、型変換や型チェック、既存の物理DB31Aのカラム内データを新設のDB31Bのいずれのテーブルのいずれのカラムに格納させるか、等の処理を実行する。このデータ移行プログラムは、導入先の企業に応じて、都度作成する必要がある。
ここで、上記のようなメタDB23Aを有するサーバ2A(クエリ生成装置)を導入し、サーバ2Aを介してDBサーバ3AとDBサーバ3Bとのデータ移行を行うことで、データ移行プログラムの構築期間を短縮させることができる。メタDB23A内については、上記利用者視点(論理視点)に関するデータを既存の物理DB31Aのテーブル、カラム定義を有するデータとし(このデータを第1物理情報とする)、上記物理視点に関するデータを移行先の物理DB31Bのテーブル、カラム定義を有するデータとして(このデータを第2物理情報とする)、これらを対応づけさせる。このようにすることで、データ移行用プログラムに相当する処理部20Aの作成時間を短縮させることができる。
尚、処理部20Aは、第1物理情報を特定する識別情報を取得し、上記対応情報および識別情報に基づき、物理DB31B内のデータを操作するクエリを作成し、作成したクエリを物理DB31Bに向けて発行する。
また本実施形態を適用することで、上記のデータ移行以外にも、2つ以上のシステム間のデータ連携を図ることができる。図16を流用すると、DBサーバ3Aが例えば会計システムのデータ管理を司るものとし、DBサーバ3Bが例えば在庫管理システムのデータ管理を司るものである場合、メタDB23A内に、物理DB31Aのテーブル、カラム定義と、物理DB31Bのテーブル、カラム定義とを対応付けて保持させることで、会計システムと在庫管理システムとの間でデータの連携を図ることができ、データ間の不整合の防止を図ることができる。対象範囲を拡大させることで、同一企業内のシステム間連携のみならず、異なる企業間のデータ連携も実現させることができる。
本実施形態のアプリケーションサーバ2、サーバ2Aには、上記機能を実現するためのクエリ発行プログラムが事前に導入されている。このクエリ発行プログラムは、ハードディスクドライブ、USBメモリ、CD−ROM等の記憶媒体に記憶させ、提供されることが可能である。また、ネットワークを介した提供も可能である。
以上、この実施形態で説明した態様により、データアクセス処理の機能を一部汎用化させることができる。
なお、本発明の実施形態を説明したが、当該実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。この新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1 クライアント端末、2 アプリケーションサーバ、2A サーバ、3、3A、3B DBサーバ、4A、4B ネットワーク、10 画面表示部、20、20A 処理部、21 データ送受信部、22 クエリ生成部、23、23A メタDB、30、30A、30B DB制御部、31、31A、31B 物理DB、100 業務システム。

Claims (5)

  1. 作対象となるデータベースのテーブルを定義した情報であり、前記テーブルのテーブル名、各テーブルをそれぞれ結合するための情報を少なくとも含むテーブル定義情報と、前記テーブルの各カラムを定義した情報であり、カラム名を少なくとも含むカラム定義情報とを少なくとも含み、1つのテーブル定義情報に対し1つまたは複数のカラム定義情報となるように対応づけた情報である、複数の物理情報と、
    利用者の観点で区分けされた処理内容に関する情報であり、抽出条件を少なくとも含む、複数の論理情報と
    、1つの論理情報に対し1つまたは複数の物理情報となるように対応付けて保持する保持部と、
    論理情報を特定する情報である第1情報を取得し、前記第1情報に基づき特定される論理情報と、この論理情報に対応づけられた物理情報とに基づき、前記定義されるテーブル名、結合情報、カラム名、抽出条件のいずれかもしくは全てを組み合わせて前記データベース内のデータを操作するクエリを作成し、該クエリを前記データベースに発行する処理部と、
    を有するクエリ発行装置。
  2. 請求項1に記載のクエリ発行装置において、
    前記保持部は、任意の論理情報である第1論理情報と、該第1論理情報とは異なる論理情報である第2論理情報を保持し、さらに、前記第1論理情報には、前記第2論理情報を特定する情報が含まれており、
    前記処理部は、前記第1情報に基づき第1論理情報を特定し、該第1論理情報に基づき第2論理情報を特定し、前記データベース内のデータであり前記第1論理情報に対応付けられたデータを操作するクエリを作成するとともに、前記第2論理情報に対応付けられたデータを操作するクエリを作成する
    クエリ発行装置。
  3. 操作対象となるデータベースのテーブルを定義した情報であり、前記テーブルのテーブル名、各テーブルをそれぞれ結合するための情報を少なくとも含むテーブル定義情報と、前記テーブルの各カラムを定義した情報であり、カラム名を少なくとも含むカラム定義情報とを少なくとも含み、1つのテーブル定義情報に対し1つまたは複数のカラム定義情報となるように対応づけた情報である、複数の物理情報と、
    利用者の観点で区分けされた処理内容に関する情報であり、抽出条件を少なくとも含む、複数の論理情報と
    を、1つの論理情報に対し1つまたは複数の物理情報となるように対応付けて保持する保持部からデータを取得するコンピュータに
    理情報を特定する第1情報を取得させ、
    前記第1情報に基づき特定される論理情報と、この論理情報に対応づけられた物理情報とに基づき、前記定義されるテーブル名、結合情報、カラム名、抽出条件のいずれかもしくは全てを組み合わせて前記データベース内のデータを操作するクエリを作成させ、
    前記クエリを前記データベースに発行させる
    ためのクエリ発行プログラム。
  4. 操作対象となるデータベースのテーブルを定義した情報であり、前記テーブルのテーブル名、各テーブルをそれぞれ結合するための情報を少なくとも含むテーブル定義情報と、前記テーブルの各カラムを定義した情報であり、カラム名を少なくとも含むカラム定義情報とを少なくとも含み、1つのテーブル定義情報に対し1つまたは複数のカラム定義情報となるように対応づけた情報である、複数の物理情報と、
    利用者の観点で区分けされた処理内容に関する情報であり、抽出条件を少なくとも含む、複数の論理情報と
    を、1つの論理情報に対し1つまたは複数の物理情報となるように対応付けて保持する保持部からデータを取得するコンピュータが
    理情報を特定する第1情報を取得し、
    前記第1情報に基づき特定される論理情報と、この論理情報に対応づけられた物理情報とに基づき、前記定義されるテーブル名、結合情報、カラム名、抽出条件のいずれかもしくは全てを組み合わせて前記データベース内のデータを操作するクエリを作成し、
    前記クエリを前記データベースに発行する
    クエリ発行方法。
  5. 第1のデータベースのテーブルを定義した情報であり、前記テーブルのテーブル名、各テーブルをそれぞれ結合するための情報を少なくとも含むテーブル定義情報および前記テーブルの各カラムを定義した情報であり、カラム名を少なくとも含むカラム定義情報を少なくとも含み、1つのテーブル定義情報に対し1つまたは複数のカラム定義情報となるように対応づけた情報である、複数の第1物理情報と、
    第2のデータベースのテーブルを定義した情報であり、該テーブルのテーブル名、前記第2のデータベースの各テーブルをそれぞれ結合するための情報を少なくとも含むテーブル定義情報および前記第2のデータベースのテーブルの各カラムを定義した情報であり、カラム名を少なくとも含むカラム定義情報を少なくとも含み、1つのテーブル定義情報に対し1つまたは複数のカラム定義情報となるように対応づけた情報である、複数の第2物理情報と、を対応付けて保持する保持部と、
    1物理情報を特定する第1情報を取得し、前記第1情報に基づき特定される第1物理情報と、この第1物理情報に対応づけられた第2物理情報とに基づき、前記定義されるテーブル名、結合情報、カラム名のいずれかもしくは全てを組み合わせて、前記第2のデータベース内のデータを操作するクエリを作成し、該クエリを前記第2のデータベースに発行する処理部と、
    を有するクエリ発行装置。
JP2012065770A 2012-03-22 2012-03-22 クエリ発行装置、クエリ発行プログラム、クエリ発行方法 Active JP5542857B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012065770A JP5542857B2 (ja) 2012-03-22 2012-03-22 クエリ発行装置、クエリ発行プログラム、クエリ発行方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012065770A JP5542857B2 (ja) 2012-03-22 2012-03-22 クエリ発行装置、クエリ発行プログラム、クエリ発行方法

Publications (2)

Publication Number Publication Date
JP2013196610A JP2013196610A (ja) 2013-09-30
JP5542857B2 true JP5542857B2 (ja) 2014-07-09

Family

ID=49395412

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012065770A Active JP5542857B2 (ja) 2012-03-22 2012-03-22 クエリ発行装置、クエリ発行プログラム、クエリ発行方法

Country Status (1)

Country Link
JP (1) JP5542857B2 (ja)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3865197B2 (ja) * 2000-09-29 2007-01-10 日立ソフトウエアエンジニアリング株式会社 データベースアクセス処理方法
EP1896995A4 (en) * 2005-06-24 2009-05-27 Orbital Technologies Inc SYSTEM AND METHOD OF TRANSLATION BETWEEN RELATIONAL DATA BANKING REQUESTS AND MULTIMIMUM DIVISIONAL DATA BANKING REQUESTS
EP1934812A4 (en) * 2005-09-09 2012-01-04 Salesforce Com Inc SYSTEMS AND METHODS FOR EXPORTING, PUBLICIZING, NAVIGATING AND INSTALLING APPLICATIONS ON DEMAND IN A MULTI-HOLDER DATABASE ENVIRONMENT
JP4983060B2 (ja) * 2006-03-17 2012-07-25 富士通株式会社 共通フォーマット作成プログラム
JP5488792B2 (ja) * 2009-09-08 2014-05-14 日本電気株式会社 データベース操作装置、データベース操作方法、及びプログラム
JP2011258122A (ja) * 2010-06-11 2011-12-22 Mitsubishi Electric Corp データ転送装置及びデータ転送方法及びデータ転送プログラム及びデータ連携システム

Also Published As

Publication number Publication date
JP2013196610A (ja) 2013-09-30

Similar Documents

Publication Publication Date Title
JP6857689B2 (ja) データ検索装置、プログラム、及び記録媒体
US6263341B1 (en) Information repository system and method including data objects and a relationship object
US20210334254A1 (en) Column lineage for resource dependency system and graphical user interface
CN105849726B (zh) 用于高效地支持通过分层标记数据的即席查询的通用索引
US8954480B2 (en) End-to-end interoperability and workflows from building architecture design to one or more simulations
JP5843965B2 (ja) 検索装置、検索装置の制御方法及び記録媒体
EP2116954A1 (en) Apparatus and method for accessing data in a multi-tenant database according to a trust hierarchy
US20080183689A1 (en) Search method and apparatus for plural databases
Singh et al. Business Intelligence Basics
JP2009145972A (ja) データべースシステム及びデータべースシステムの制御方法
US20080313107A1 (en) Data management apparatus and method
JP5033322B2 (ja) 連結関係情報を用いた情報管理方法及び装置
US20210056084A1 (en) Processes and Systems for Onboarding Data for a Digital Duplicate
JP5530173B2 (ja) 組織構造管理ディレクトリを備えたディレクトリシステム及びそのプログラム
US20160125001A1 (en) Automatic screen generation device, automatic screen generation program, and automatic screen generation method
JP2009217529A (ja) ナレッジマネジメントシステム
KR20010083845A (ko) 이기종 시스템 및 메타 데이터의 통합 관리를 위한 통합메타 데이터 관리 방법 및 장치
JP5542857B2 (ja) クエリ発行装置、クエリ発行プログラム、クエリ発行方法
JP2009059026A (ja) ファイル検索装置及びファイル検索プログラム
JP6638053B1 (ja) ドキュメント作成支援システム
KR100873807B1 (ko) 기업 데이터 시스템들에 대한 객체 지향형 메타 데이터저장소 구축 방법
Madhikerrni et al. Data discovery method for Extract-Transform-Load
JP2020197839A (ja) データ管理プログラム、データ管理方法およびデータ管理システム
KR102488466B1 (ko) 테이블 다이어그램 기반형 키-밸류 db 설계 정보처리장치 및 방법
US11216486B2 (en) Data retrieval apparatus, program and recording medium

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131105

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131226

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140507

R150 Certificate of patent or registration of utility model

Ref document number: 5542857

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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