JP2009146084A - テーブル管理装置 - Google Patents

テーブル管理装置 Download PDF

Info

Publication number
JP2009146084A
JP2009146084A JP2007321563A JP2007321563A JP2009146084A JP 2009146084 A JP2009146084 A JP 2009146084A JP 2007321563 A JP2007321563 A JP 2007321563A JP 2007321563 A JP2007321563 A JP 2007321563A JP 2009146084 A JP2009146084 A JP 2009146084A
Authority
JP
Japan
Prior art keywords
field
record
additional
data
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.)
Pending
Application number
JP2007321563A
Other languages
English (en)
Inventor
Hiroshi Ishii
洋 石井
Takuya Hirose
拓也 広瀬
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.)
Mitsubishi Electric Corp
Mitsubishi Electric Information Systems Corp
Mitsubishi Electric Information Technology Corp
Original Assignee
Mitsubishi Electric Corp
Mitsubishi Electric Information Systems Corp
Mitsubishi Electric Information Technology 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 Mitsubishi Electric Corp, Mitsubishi Electric Information Systems Corp, Mitsubishi Electric Information Technology Corp filed Critical Mitsubishi Electric Corp
Priority to JP2007321563A priority Critical patent/JP2009146084A/ja
Publication of JP2009146084A publication Critical patent/JP2009146084A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

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

Abstract

【課題】データベース構成を変更せずフィールドの追加や削除が可能であり、RDBMSに用意される全てのデータ型についてデータレコードの格納/検索の可能なシステムを提供する。
【解決手段】入力手段510は、フィールドを追加する業務テーブルのテーブル識別IDと、追加対象フィールドのフィールドID、フィールド名称、フィールドのデータ型とを含むフィールド追加要求を受け付ける。フィールド追加部110は、フィールド追加要求のこれらのデータを1レコードとして追加フィールド管理テーブル410に登録すると共に、登録の際、前記データ型のフィールド値を格納する追加フィールドデータテーブル440が作成済みかを判定し、作成されていない場合、インデックス、テーブルID、フィールドID、フィールド値の項目からなり、フィールド値としてフィールド追加要求に含まれるデータ型を格納する追加フィールドデータテーブル440を作成する。
【選択図】図3

Description

この発明は、データベースの構成を変更することなしに、フィールドの追加や削除を行うことができるテーブル管理装置に関する。
特開2000−123038号公報(特許文献1)では、データベースの構成を変更することなしに、フィールドの追加や削除を行うことができるデータベース装置の技術として、RDB(Relational DataBase)の対応関係テーブルに列番号、データのフィールド名、型、サイズを記憶し、データベース上に行番号、列番号、データのフィールドで構成するデータを格納し、行番号および列番号をキーにして一つのレコードで追加定義されたフィールドのデータを登録、検索できるシステムが開示されている。
特開2000−123038号公報
背景技術に示した特許文献1においては以下の課題がある。
(1)特許文献1ではデータ格納フィールドに可変長文字列型を使っているため、文字列以外の値を格納/抽出/検索する場合、エンコード/デコードが発生し、特に数値型のデータでは効率が悪くなり、エンコード/デコードすることによって本来の値が失われることがある。
(2)数値型をエンコードしたフィールドデータに対して、多くの場合SQLの検索条件式が使えない。例えば、「“2”と“10”」の文字列比較を実施すると「“2”>“10”」と誤った結果となるし、浮動小数点型では小数点の位置が個々の値によって異なるため文字列同士を比較しても意味がない。
これらの課題を解決するために、(1)及び(2)に対しては、追加フィールドの値を格納するために別テーブルをデータ型別に用意することで、RDBMS(Relational Database Management System)で用意されている全てのデータ型について関数などの機能を利用して格納/検索の可能なシステムを提供する。
この発明のテーブル管理装置は、
テーブルを管理するテーブル管理装置において、
インデックスのフィールドと名称が付与された1以上のフィールドとのそれぞれのフィールド値からなるレコードを1レコードとして登録する複数の登録テーブルを格納するテーブル格納部と、
前記複数の登録テーブルのうちのいずれかを一意に示すテーブルID(Identification)と、テーブルIDの示す登録テーブルのフィールド名称に対応するフィールド値とを含む登録用情報の入力を受け付ける入力受付部と、
前記入力受付部により受け付けられた登録用情報にこの登録用情報を特定するインデックスを付与し、インデックスの付与された登録用情報のうちテーブルIDを除くインデックスとフィールド値とを1レコードとして、この登録用情報に含まれるテーブルIDの示す登録テーブルに登録する登録部と
を備え、
前記入力受付部は、
フィールドの追加を要求する情報であって、テーブルIDと、このテーブルIDの示す登録テーブルとの関係において追加が要求されるフィールドに一意に付与されたフィールドIDと、追加が要求されるフィールドのフィールド名称と、追加が要求されるフィールドに格納されるフィールド値のデータ型とを含むとともに、テーブルIDの示す登録テーブルに対してフィールド名称の示すフィールドの追加を要求するフィールド追加要求情報を受け付け、
前記テーブル管理装置は、さらに、
追加フィールド管理テーブルを格納する追加フィールド管理テーブル格納部と、
前記入力受付部がフィールド追加要求情報を受け付けると、
フィールド追加要求情報に含まれるテーブルIDと、フィールドIDと、フィールド名称と、データ型とを1レコードとして前記追加フィールド管理テーブルに登録するとともに、フィールド追加要求情報に含まれるデータ型のフィールド値を格納する追加フィールドデータテーブルが既に作成されているかどうかを判定し、作成されていないと判定すると、インデックスと、テーブルIDと、フィールドIDと、フィールド値との項目からなるテーブルであって、フィールド値としてフィールド追加要求情報に含まれるデータ型を格納する追加フィールドデータテーブルを作成するフィールド追加部と
備え、
前記入力受付部は、
インデックスと、テーブルIDと、フィールド名称と、このフィールド名称に対応する値とを含む情報であって前記テーブルIDの示す登録用テーブルにおける前記インデックスの示すレコードの更新を要求する更新要求情報の入力を受け付け、
前記テーブル管理装置は、さらに、
前記入力受付部が更新要求情報を受け付けると、この更新要求情報に含まれるテーブルIDとフィールド名称とに基づいて、前記追加フィールド管理テーブルに登録されたレコードのうち更新要求情報に含まれるテーブルIDとフィールド名称とをもつレコードを特定し、特定された特定レコードに含まれるデータ型からこのデータ型の追加フィールドデータテーブルを特定し、特定された追加フィールドデータテーブルの中に更新要求情報に含まれるインデックスを有するレコードが存在するかどうかを判定し、判定の結果、存在しないと判定すると、更新要求情報に含まれるインデックス、テーブルID、フィールド名称に対応する値、及び前記追加フィールド管理テーブルにおいて特定された特定レコードに含まれるフィールドIDとを1レコードとして前記追加フィールドデータテーブルに登録する更新部を備えたことを特徴とする。
この発明により、RDBMSで用意されている全てのデータ型について、関数などの機能を利用して格納/検索の可能なシステムを提供することができる。
実施の形態1.
図1は、コンピュータである動的テーブル管理システム10000(テーブル管理装置)の外観の一例を示す図である。図1において、動的テーブル管理システム10000は、システムユニット830、CRT(Cathode・Ray・Tube)やLCD(液晶)の表示画面を有する表示装置813、キーボード814(Key・Board:K/B)、マウス815、FDD817(Flexible・Disk・ Drive)、コンパクトディスク装置818(CDD:Compact Disk Drive)、プリンタ装置819などのハードウェア資源を備え、これらはケーブルや信号線で接続されている。システムユニット830は、コンピュータであり、また、ネットワークに接続されている。
図2は、コンピュータである動的テーブル管理システム10000のハードウェア資源の一例を示す図である。図2において、動的テーブル管理システム10000は、プログラムを実行するCPU810(中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。CPU810は、バス825を介してROM(Read Only Memory)811、RAM(Random Access Memory)812、表示装置813、キーボード814、マウス815、通信ボード816、FDD817、CDD818、プリンタ装置819、磁気ディスク装置820と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置820の代わりに、光ディスク装置、フラッシュメモリなどの記憶装置でもよい。
RAM812は、揮発性メモリの一例である。ROM811、FDD817、CDD818、磁気ディスク装置820等の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部、格納部の一例である。通信ボード816、キーボード814、FDD817などは、入力部、入力装置の一例である。また、通信ボード816、表示装置813、プリンタ装置819などは、出力部、出力装置の一例である。
通信ボード816は、ネットワーク(LAN等)に接続されている。通信ボード816は、LANに限らず、インターネット、ISDN等のWAN(ワイドエリアネットワーク)などに接続されていても構わない。
磁気ディスク装置820には、オペレーティングシステム821(OS)、ウィンドウシステム822、プログラム群823、ファイル群824が記憶されている。プログラム群823のプログラムは、CPU810、オペレーティングシステム821、ウィンドウシステム822により実行される。
上記プログラム群823には、以下に述べる実施の形態の説明において「〜部」として説明する機能を実行するプログラムが記憶されている。プログラムは、CPU810により読み出され実行される。
ファイル群824には、以下に述べる実施の形態の説明において、「〜テーブル」として説明する各種のテーブルや、「〜の判定結果」、「〜の算出結果」、「〜の抽出結果」、「〜の生成結果」、「〜の処理結果」として説明する情報や、データや信号値や変数値やパラメータなどが、「〜ファイル」や「〜データベース」の各項目として記憶されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU810によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのCPUの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
また、以下に述べる実施の形態の説明においては、データや信号値は、RAM812のメモリ、FDD817のフレキシブルディスク、CDD818のコンパクトディスク、磁気ディスク装置820の磁気ディスク、その他光ディスク、ミニディスク、DVD(Digital・Versatile・Disk)等の記録媒体に記録される。また、データや信号は、バス825や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
また、以下に述べる実施の形態の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」、「手段」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ROM811に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。プログラムはCPU810により読み出され、CPU810により実行される。すなわち、プログラムは、以下に述べる「〜部」としてコンピュータを機能させるものである。あるいは、以下に述べる「〜部」の手順や方法をコンピュータに実行させるものである。
図3は、実施の形態1における動的テーブル管理システム10000のシステム構成を示す。動的テーブル管理システム10000は、RDBMS400(テーブル格納部、追加フィールド管理テーブル格納部)、入力手段510(入力受付部)、表示手段520、業務サーバ1000を備えている。
業務サーバ1000は、DB定義部100と、所定の業務アプリケーションを実行する業務アプリケーション実行部200と、DB処理部300とを備えている。DB定義部100は、フィールド追加部110、追加フィールド取得部120、追加フィールド削除部130、を備えている。DB処理部300は、追加フィールドレコード追加部310(登録部)と、追加フィールドレコード検索部320(ビュー作成部)と、追加フィールドレコード削除部330(ビュー作成部)と、追加フィールドレコード更新部340(更新部)とを備える。RDBMS400は、追加フィールド管理テーブル410と、レコード関連付けインデックス管理テーブル420と、複数の業務テーブル430と、複数の追加フィールドデータテーブル440とを備えている。
(入力手段510、表示手段520)
入力手段510、表示手段520は、業務サーバ1000に対する入力及び出力機能を提供する。
(DB定義部100)
DB定義部100は、RDBMS400で管理している業務テーブル430に対して、データベースの構成を変更することなしに、フィールドの追加や削除を行う機能を提供し、フィールドの追加や削除の情報を追加フィールド管理テーブル410に格納する。
(業務アプリケーション実行部200)
業務アプリケーション実行部200により実行される業務アプリケーションは、業務を実行する機能を提供し、入力手段510からの入力された情報に基づいて、業務に必要な情報をDB処理部300に送受信し、処理した結果を表示手段520に出力する。
(DB処理部300)
DB処理部300は、RDBMS400で管理されている業務データに対する入出力機能を提供し、業務アプリケーション実行部200により実行される業務アプリケーションから、追加フィールドを含んだ業務テーブルへのデータ要求に対して、ユーザに追加フィールドを意識させずに、業務テーブルと追加フィールドとから抽出したデータを結合し、まとまったデータとして出力する。
(RDBMS400)
RDBMS400は、業務テーブル430と、後からフィールドの追加や削除が可能なようにフィールドを管理するための追加フィールド管理テーブル410,レコード関連付けインデックス管理テーブル420と、追加フィールドのフィールド値を格納する追加フィールドデータテーブル440を持つ。
以下に業務サーバ1000の備えるDB定義部100、DB処理部300、及びRDBMS400について詳しく説明をする。
(RDBMS400)
RDBMS400は、追加フィールド管理テーブル410と、レコード関連付けインデックス管理テーブル420と、業務テーブル430と、追加フィールドデータテーブル440の4種類のテーブルを管理する。
(追加フィールド管理テーブル410)
図4は、追加フィールド管理テーブル410を示す図である。追加フィールド管理テーブル410は、どの業務テーブル430にどのようなフィールドが追加されているかという情報を管理するテーブルである。追加フィールド管理テーブル410は、少なくとも追加対象のテーブルを一意に決定するテーブル識別ID411と、追加対象のテーブルにおいてフィールドを一意に決定するフィールドID412と、フィールドの格納値のデータ型を定義するデータ型413と、フィールドの名称を定義する項目名414とのフィールドから成る。
(インデックス管理テーブル420)
図5は、レコード関連付けインデックス管理テーブル420を示す図である。レコード関連付けインデックス管理テーブル420は、業務テーブル430と追加フィールドデータテーブル440のそれぞれに格納されたレコードを関連付けるインデックス番号に重複が発生しないように管理するテーブルである。レコード関連付けインデックス管理テーブル420は、少なくとも発行済みインデックス421のフィールドから成る。
(業務テーブル430)
図6は、ある業務テーブルを示す図である。業務テーブルは、いずれも同じ構成である。業務テーブル430は、業務データを格納し運用中にフィールドの追加が可能なテーブルである。業務テーブル430は、少なくとも追加フィールドデータとの関連を格納するインデックス431と、業務情報を格納する業務情報432・・・のフィールドから成る。
(追加フィールドデータテーブル440)
図7は、追加フィールドデータテーブル440を示す図である。追加フィールドデータテーブル440は、業務テーブル430に対して追加したフィールドの実データが格納されるテーブルである。追加フィールドデータテーブル440は、追加フィールド管理テーブル410に対して、追加したレコードのデータ型413が追加フィールド管理テーブル410の中でいちばん最初だった場合に、動的に作成されるテーブルである。少なくとも業務テーブル430と追加フィールドデータテーブル440のレコードを関連付けるインデックス441と、追加対象の業務テーブルを一意に識別可能なテーブル識別ID442と、追加したフィールドを識別するフィールドID443と、データ型413で定義された型を格納可能な値444のフィールドから成る。
(DB定義部100)
図3を参照して、DB定義部100を説明する。DB定義部100は、フィールド追加部110と、追加フィールド取得部120と、追加フィールド削除部130とを備えている。
(フィールド追加部110)
フィールド追加部110は、RDBMS400によって管理されている既存の業務テーブル430において不足しているフィールドを仮想的に追加する機能を有する。詳細は、動作の説明で後述するが、フィールド追加部110は、図4の追加フィールド管理テーブル410に対して、追加対象の業務テーブルを一意に識別可能なテーブル識別ID411と、追加したフィールドを一意に識別するフィールドID412と、追加したフィールドのデータ型を示すデータ型413と、追加したフィールドの名称を示す項目名414とからなる情報をレコードとしてインサートする(後述のS102)。この時、フィールド追加部110は、図4の追加フィールド管理テーブル410にレコードをインサートする際に、インサートするレコードのデータ型413(追加フィールドデータテーブル440は、データ型ごとに存在する)が、追加フィールド管理テーブル410の中で最初だった場合、すなわち、追加フィールド管理テーブル410には、インサートされたレコードの有するデータ型のレコードがいまだに登録されていない場合には、図7に示した追加フィールドデータテーブル440を動的に作成する。すなわち、追加フィールドデータテーブル440は、フィールド追加部110によって、データ型ごとに作成される。図3に示す複数の追加フィールドデータテーブル440は、フィールド追加部110によって作成された場合を示している。追加フィールドデータテーブル440は、業務テーブル430のレコードと、追加フィールドデータテーブル440のレコードとを関連付けるインデックス441(後述)と、フィールドの追加対象となる業務テーブルを一意に識別可能なテーブル識別ID442と、追加したフィールドを識別するフィールドID443と、データ型413で定義された型のデータ(フィールド値)を格納する「値444」とのフィールドを持つ。
(追加フィールド取得部120)
追加フィールド取得部120は、任意の「業務テーブル430」に対して後から追加された追加フィールドの情報を取得する機能を持つ。追加フィールド取得部120は、図4に示した追加フィールド管理テーブル410から、追加対象の業務テーブルを一意に識別可能なテーブル識別ID411と、追加したフィールドを一意に識別するためのフィールドID412と、追加したフィールドのデータ型を示すデータ型413と、追加したフィールドの名称を示す項目名414との情報を取得する。
(追加フィールド削除部130)
追加フィールド削除部130は、任意の業務テーブル430に対して後から追加されたフィールド情報を削除する機能を持つ。追加フィールド削除部130は、図4の追加フィールド管理テーブル410から、追加したフィールド情報を削除する。
(追加フィールドデータテーブル440の動的削除)
この時、追加フィールド削除部130は、追加フィールド管理テーブル410に対して、削除したレコードのデータ型413が追加フィールド管理テーブル410にもはや存在しなくなった場合、追加フィールドデータテーブル440を動的に削除する。一方、削除されたレコードのデータ型413と同じデータ型をもつレコードが追加フィールド管理テーブル410に登録されている場合は、追加フィールドデータテーブル440を削除せずに、該当フィールドのレコードを追加フィールドデータテーブル440から全て削除する(その型のレコードがあれば残す)。
(DB処理部300)
DB処理部300は、追加フィールドレコード追加部310(以下、レコード追加部310という)と、追加フィールドレコード検索部320(以下、レコード検索部320という)と、追加フィールドレコード削除部330(以下、レコード削除部330という)とから構成される。
(レコード追加部310)
レコード追加部310は、業務アプリケーション210からのレコード追加要求(レコードの新規登録)に対して、業務テーブル430と追加フィールドデータテーブル440とにレコード情報を格納する(後述のS301〜)。レコード追加部310は、業務テーブル430と、この業務テーブル430に追加された追加フィールドの情報とをテーブル識別ID411をキーとして追加フィールド管理テーブル410から抽出し、レコード関連付けインデックス管理テーブル420から一意のインデックス値を算出する。レコード追加要求の追加フィールドに対応するデータは、追加フィールドデータテーブル440にインデックス441と、テーブル識別ID442と、フィールドID443と、値444とを追加フィールドの数だけインサートする。また、レコード追加要求の追加フィールド以外の業務情報432,433,・・・は、先ほどレコード関連付けインデックス管理テーブル420の情報から算出したインデックス431を付加して業務テーブル430にインサートする。(後述のS301〜で詳述する)。
(レコード検索部320)
レコード検索部320は、業務アプリケーション210からのレコード検索要求に対して、業務テーブル430と追加フィールドデータテーブル440とから適切にレコード情報を抽出する機能を提供する(後述のS401〜で詳述する)。レコード検索部320は、ある業務テーブルと、この業務テーブルに追加された追加フィールドの情報とをテーブル識別ID411をキーに追加フィールド管理テーブル410から抽出し、該当する業務テーブルと追加フィールドデータテーブル440から追加フィールドを付加した仮想的な業務テーブルのビューを作成し、このビューに対して検索を実施する。
(レコード削除部330)
レコード削除部330は、業務アプリケーション210からのレコード削除要求に対して、レコード削除要求に係る業務テーブルと追加フィールドデータテーブル440とに対してレコード情報を削除する機能を提供する。レコード削除部330は、ある業務テーブルとこの業務テーブルに追加されたフィールド情報とをテーブル識別ID411をキーに追加フィールド管理テーブル410から抽出し、該当する業務テーブルと追加フィールドデータテーブル440から追加フィールドを付加した仮想的な業務テーブルのビューを作成し、このビューに対して削除対象のレコードを特定し、全てのレコードのインデックス431(図6)、インデックス441(図7)によって、その業務テーブルと追加フィールドデータテーブル440の該当レコードを削除する。レコード削除は、後述のS501〜で詳述する。
(動的テーブル管理システム10000の動作)
次に、システムの動作を以下に記述する。
<A.業務テーブルへのフィールドの追加>
業務テーブルに対して足りないフィールドを追加する場合を説明する。以下の説明A〜Eでは、対象とする業務テーブルは、業務テーブルAを想定する。図8は、フィールドを追加する動作を示すフローチャートである。
S101において、入力手段510からDB定義部100(フィールド追加部110)に対して、「フィールドの追加」を要求するフィールド追加要求情報を入力する。すなわち、ユーザが入力手段510を用いて、ある業務テーブルに対するフィールド追加要求を入力すると、フィールド追加部110が、このフィールド追加要求を受け付ける。フィールド追加要求情報は、
(1)追加が要求されるフィードをする業務テーブのテーブル識別ID、
(2)追加が要求されるフィールドをその業務テーブルにおいて一意に識別するフィールドID、
(3)追加が要求されるフィールドの項目名(フィールド名称)、
(4)追加が要求されるフィールドに格納されるデータのデータ型
を含む。
S102において、
入力手段510から入力されたフィールド追加要求情報に従って、図4に示すように、
フィールド追加部110は、追加フィールド管理テーブル410に、
追加対象の業務テーブルを一意に識別可能なテーブル識別ID411と、
追加するフィールドを一意に識別するフィールドID412と、
追加するフィールドのデータ型を示すデータ型413と、
追加するフィールドの名称を示す項目名414との
情報をレコードとしてインサートする。
図9は、フィールド追加部110によるS102の処理内容をSQL文として示した。また、図10は、このSQL文に対するフィールド追加部110によるS102の処理結果を示したものである。
S103において、フィールド追加部110は、追加フィールド管理テーブル410を参照することにより、追加フィールド管理テーブル410に追加(インサート)したレコードのデータ型413と同じデータ型のレコードが既に登録されているかどうかを検索する。フィールド追加部110は、いまだに登録されていない場合にはS104の処理を実行し、既に追加されている場合は終了する。
(追加フィールドデータテーブル440の動的作成)
S104において、フィールド追加部110は、業務テーブル430と追加フィールドデータテーブル440の互いのレコードを関連付けるインデックス441と、フィールドの追加対象となる業務テーブルを一意に識別可能なテーブル識別ID442と、追加したフィールドをこのフィールドか追加される業務テーブルとの関係において識別するフィールドID443と、データ型413で定義された型を格納可能な「値444」とのフィールドを持つ追加フィールドデータテーブル440を動的に作成する。
以上により、フィールドか追加される業務テーブルに対して、仮想的にフィールドが追加される。この仮想的に追加されたフィールド(実際には業務テーブルに存在しないフィールド)を追加フィールドと呼ぶ。
<B.追加フィールドを削除する処理>
次に、図11を参照して、追加フィールドを削除する処理を説明する。図11は、ある業務テーブルに対して追加された追加フィールドを検索し、ヒットした追加フィールドを削除する処理を示すフローチャートである。
S201において、ユーザは、まず、入力手段510からDB定義部100に対して、「ある業務テーブルの追加フィールドの検索要求」を入力する。追加フィールド取得部120は、この「検索要求」に応答して、テーブル識別IDを検索キーにして、追加フィールド管理テーブル410から、
追加対象の業務テーブルを一意に識別可能なテーブル識別ID411と、
追加したフィールドを一意に識別するためのフィールドID412と、
追加したフィールドのデータ型を示すデータ型413と、
追加したフィールドの名称を示す項目名414との
情報を取得する。
図12は、追加フィールド取得部120によるS201の処理内容をSQL文として示したものである。また、図13及び図14は、このSQL文に対する追加フィールド取得部120によるS201の処理結果を示したものである。図13は、図12の上段のselect文に対応し、図14は、図12の下段のselect文に対応する。
S201の結果、例えば、図13の結果が表示手段520に表示される。そして、S202において、ユーザは、入力手段510を用いて、表示手段520に表示された結果から削除する項目名(レコード)を指定する。追加フィールド削除部130は、この指定に応答し、テーブル識別ID411及びフィールドID412を削除キーにして、追加フィールド管理テーブル410に登録されているレコードのうち該当するレコードを削除する。図15は、追加フィールド削除部130が追加フィールド管理テーブル410からレコードを削除する処理をSQL文として示したものである。また、追加フィールド削除部130は、テーブル識別ID411及びフィールドID412を削除キーとして、追加フィールドデータテーブル440にある実際のデータも削除する。図16は、追加フィールド削除部130が追加フィールドデータテーブル440のレコードを削除する処理をSQL文として示したものである。
S203において、追加フィールド削除部130は、追加フィールド管理テーブル410を参照して、削除したレコードのデータ型413と同じデータ型を有するレコードが追加フィールド管理テーブル410に存在するか検索する。図17は、追加フィールド削除部130が、追加フィールド管理テーブル410を対象として、削除したレコードと同じデータ型のレコードを検索する処理をSQL文として示したものである。同じデータ型を有するレコードが追加フィールド管理テーブル410に存在しない場合、処理はS204に進む。存在する場合、処理は終了する。
(追加フィールドデータテーブル440の動的削除)
S204において、追加フィールド削除部130は、該当する型の追加フィールドデータテーブル440を削除する。図18は、追加フィールド削除部130が、該当する追加フィールドデータテーブル440を削除する処理をSQL文として示したものである。
<C.業務テーブルへのデータレコードの新規登録処理>
図19は、ある業務テーブルに対してデータレコードを追加する場合のフローチャートである。
S301において、DB処理部300に対して、ユーザは、入力手段510から希望する業務テーブルに対するデータレコードの追加要求(登録情報)を入力する。追加要求(登録情報)は、
「データレコードの新規登録を希望するテーブルID」と
「テーブルIDの示す業務テーブルのフィールドのフィールド名に対応する1以上のフィールド値」と
を含む。
また、「テーブルIDの示す業務テーブルの追加フィールドのフィールド名(項目名)に対応する1以上のフィールド値」を含んでよいことは当然である。ユーザは、データレコードのフィールド値が、追加フィールドに対するものかどうかを意識することは不要である。
S302において、レコード追加部310は、対象となる業務テーブルのレコードと、追加フィールドデータテーブルのレコードとを関連付けるインデックス441を生成するために、レコード関連付けインデックス管理テーブル420に格納されている発行済みインデックス421の最大値を取得し、1を足す。図20は、インデックスを生成する処理の内容をSQL文として示したものである。
S303において、DB処理部300のレコード追加部310は、テーブル識別ID411を検索キーにして、追加フィールド管理テーブル410から追加フィールドのデータ型413および項目名414の情報を取得する(更新要求ごとに、初回1回のみ実施する)。レコード追加部310は、追加フィールドがある場合は1件ごとにS304を実施し、
追加フィールドがない場合あるいは全追加フィールドに対してS304を実施済みの場合はS306を実施する。図21は、該当する業務テーブル430として業務テーブルAを対象として、追加フィールドデータテーブル440から業務テーブルAのレコードを抽出する処理内容をSQL文として示したものである。図22は、図21のselect文の実行結果(クエリ発行結果)を示している。
S304において、レコード追加部310は、S301の追加要求(登録情報)に、追加フィールドの項目名に対応するフィールド値(項目値)が含まれているか判定し、含まれていればS305を実施し、含まれていない場合はS303を実施する。
S305において、レコード追加部310は、追加フィールドのデータを追加フィールドデータテーブル440に格納する。図23は、レコード追加部310によるS305の処理内容をSQL文として示したものである。図24は、図23のSQL文の実行の結果、データ型が「DATA型」である追加フィールドデータテーブル440に「値」(追加要求に含まれていたフィールド値)が登録された状態を示している。図25は、図23のSQL文の実行の結果、データ型が「INT型」である追加フィールドデータテーブル440に「値」(追加要求に含まれていたフィールド値)が登録された状態を示している。
S306において、レコード追加部310は、該当する業務テーブルにデータを格納する。図26は、レコード追加部310によるS306の処理内容をSQL文として示したものである。図27は、図26のSQL文の実行の結果、該当する業務テーブルに業務項目1、業務項目2等に、この業務テーブルに登録されるべきデータ(業務項目1、業務項目2等のフィールド値)が登録された状態を示す図である。
<D.業務テーブルに対するデータレコードの検索処理>
次に図28を参照して、業務テーブルに対するデータ検索の処理を説明する。図28は、業務テーブルに対してデータレコードを検索する処理を示すフローチャートである。
S401において、ユーザは、入力手段510を用いて、業務アプリケーション210を介することにより、DB処理部300に対し、希望する業務テーブルに対するデータレコードの検索要求を送る。DB処理部300では、レコード検索部320が、データレコードの検索要求を受け付ける。検索要求は、例えば、「業務テーブルA」のビューを生成することができるように、少なくとも業務テーブルAの
「テーブル識別ID=A」
を含む。
S402において、レコード検索部320は、検索要求情報に含まれるテーブル識別IDを検索キーにして、追加フィールド管理テーブル410から、
追加対象の業務テーブルを一意に識別可能なテーブル識別ID411と、
追加したフィールドを一意に識別するためのフィールドID412と、
追加したフィールドのデータ型413と、
項目名414と
を取得する。図29は、レコード検索部320が追加フィールド管理テーブル410から業務テーブルAのレコードを抽出する処理内容をSQL文として示したものである。図30は、図29のSQL文の実行の結果、該当するレコードが抽出された状態を示す図である。
S403において、レコード検索部320は、S402の結果、追加フィールドがあれば(追加フィールド管理テーブル410からテーブル識別IDのレコードが抽出された場合には)S404を実施し、なければS405から処理を実施する。
S404において、レコード検索部320は、S402の結果から、業務テーブルAに対して業務テーブルAの追加フィールドを加えたテーブルのビューを作成する。具体的には、レコード検索部320は、業務テーブルAのレコードと、追加フィールドデータテーブル440のレコードとは、業務テーブルAにおけるインデックス431と,追加フィールドデータテーブル440におけるインデックス441とから関連付けることができる。この場合、追加フィールドデータテーブル440は複数存在し得る。図31は、レコード検索部320が、ビューを作成する処理をSQL文として示したものである。図32は、図31のSQL文の実行の結果、作成された業務テーブルのビューを示す図である。図32に示すように、業務テーブルAのフィールドである「業務項目1」、「業務項目1」等と業務テーブルAの追加フィールドである追加項目1(DATA型)、追加項目2(INT型)が追加されたビューが生成されている。そして、「業務項目1」、「業務項目1」のレコードと、追加項目1(DATA型)、追加項目2(INT型)のデータ(フィールド値)とは、インデックスを介して結合される。図32では、それぞれのインデックス9、10等のレコードが一つの意味あるレコードとなっている。
S405において、レコード検索部320は、業務テーブルAに対し検索を実行する。追加フィールドがある場合は、S404の結果によるビューに対して、検索条件をWhere句に追加して記述する。図33は、レコード検索部320が、業務テーブルAを対象として図33に示す検索条件でデータレコードを検索する処理をSQL文として示したものである。図34は、図33のSQL文の実行の結果、業務テーブルのビューにおいてインデックス9のレコードがヒットした状態を示している。
<E.業務テーブルへのデータレコードの削除処理>
次に、図35を参照して、業務テーブルに対するデータレコードの削除処理を説明する。図35は、業務テーブルAからデータレコードを削除する場合のフローチャートを示す。S501〜S505は図28のS401〜S405の検索処理と同じである。最後のS506が、図28では検索実行であったのに対し、S506では、該当するデータレコードの削除処理となる点のみが異なる。
S501において、ユーザは、入力手段510を用いて業務アプリケーション210を介することにより、DB処理部300に対し、業務テーブルAからのデータレコードの削除を求める削除要求を送る。DB処理部300のレコード削除部330は、データレコードの検索要求を受け付ける。
S502において、レコード削除部330は、テーブル識別IDを検索キーにして追加フィールド管理テーブル410から、
少なくとも追加対象の業務テーブルを一意に識別可能なテーブル識別ID411と、
追加したフィールドを一意に識別するためのフィールドID412と、
追加したフィールドのデータ型413
および
項目名414の
情報を取得する。
図36、図37は、S402の図29、図30と同じである。
S503において、S502の結果、追加フィールドがあればS504を実施し、なければS505から処理を実施する。
S504において、S502の結果から、業務テーブル430に対して追加フィールドを加えたテーブルを作成する。業務テーブル430と追加フィールドデータテーブル440はインデックス431,441に関連付けることができ、例えば、以下に示すようなSQL文によって、簡単にビューを作成することが可能である。図38、図39は、S404の図31、図32と同じである。
S505において、業務テーブルに対し検索を実行する。追加フィールドがある場合はS504の結果に対して、検索条件をWhere句に追加して記述する。図40、図41は、S404の図33、図34と同じである。
S506において、レコード削除部330は、S505の結果から、該当レコードのインデックス431,インデックス441をキーに、業務テーブル430と追加フィールドデータテーブル440に対してレコードを削除する。図42は、レコード削除部330が、業務テーブルA、及び追加フィールド管理テーブル410からインデックスが9であるレコードを削除する処理をSQL文として示したものである。
各テーブルのフィールドと値が、どのような関連を持つのかを図43に示す。
図45を参照して、ビューの作成動作を説明する。各テーブルは、図45に示すRDBMS400の状態とする。この状態でレコード検索部320(あるいはレコード削除部330部)がビュー作成する場合を説明する。ビューの作成対象は業務テーブルAとする。
(1)まず、入力手段510が、検索要求を受け付ける。検索要求には、業務テーブルAのテーブルIDを含む。
(2)レコード検索部320は、入力手段510から業務アプリケーション210を介して検索要求情報(ビュー作成要求情報の一例)を受け付けると、検索要求情報に含まれたテーブルID「A」をキーとしてこのテーブルID「A」を持つレコードを追加フィールド管理テーブル410のなかから第1レコードとして特定する。図45の場合、「A,001,DATA,生年月日」と「A,002,INT,年齢」とのレコード(第1レコード)が特定される。
(3)レコード検索部320は、「A,001,DATA,生年月日」及び「A,002,INT年齢」の示すデータ型の追加フィールドデータテーブルに対して、すなわち、追加フィールドデータテーブル440−1、追加フィールドデータテーブル4400−2とに対して、これらのレコードの示すフィールドID「001」、「002」をキーとしてこのフィールドIDをもつレコードを追加フィールドデータテーブル440−1、440−2から特定する。図45の場合は、それぞれ「9,A,001,生年月日」と「9,A,002,年齢」とのレコード(第2レコード)が特定される。
(4)レコード検索部320は、フィールドIDを同じくする第1レコードと第2レコードとの間で第2レコードの示すフィールド値と第1レコードの示すフィールド名称とを対応付ける。この例では、「生年月日」(フィールド名称)と「1980/1/1」(フィールド値)とが対応付けられ、「年齢」(フィールド名称)と「27」(フィールド値)とが対応付けられる。
(5)レコード検索部320は、フィールド名称が対応付けられたフィールド値をこのフィールド値の元となる第2レコードの示すインデックスと同一のインデックスを持つレコードであって登録テーブルに登録されているレコードに結合する。すなわちレコード検索部320は、「生年月日:1980/1/1」及び「年齢:27」を業務テーブルAにおけるインデックス「9」のレコード「ニッポン,タロウ」に結合する。よってレコード「苗字,名前,生年月日,年齢」の項目からなるレコードとして「ニッポン,タロウ,1980/1/1,27」が作成される。業務テーブルAの複数のレコードに対して同じ処理が実行されることで、業務テーブルAのビューが生成される。
<F.業務テーブルのデータレコードへの更新処理>
次に、図44を参照して、業務テーブルに対するデータレコードの更新処理を説明する。図44は、業務テーブルAに対して、追加済み(登録済み)のデータレコードを更新する処理のフローチャートを示す。具体的な例を用いて説明する。
(データ更新:S601)
業務テーブルAに対して、新たに2つ目の追加フィールドとして「年齢」を追加したとする。(追加フィールド管理テーブル410におけるレコードは、『業務テーブルA(テーブル識別ID)、002(フィールドID)、INT(データ型)、年齢(項目名)』とする。)すなわち、図8のフローチャートにしたがって、フィールド追加部110が、追加フィールドとして、「年齢」を追加しているとする。図45は、その状態を示している。図45において、追加フィールド管理テーブル410には、「テーブル識別ID、フィールド識別ID、データ型、項目名」として、レコード「A,001、DATA、生年月日」に対して、さらに、レコード「A,002、INT、年齢」が追加されている状態である。そして、フィールド追加部110は、レコード「A,002、INT、年齢」の登録に関連して、追加フィールドデータテーブル440−1に加えて、追加フィールドデータテーブル440−2を作成した状態である。ここで、ユーザは、業務テーブルAについて、既に登録して済みである『ニッポン(苗字)、タロウ(名前)』のレコードを検索し、インデックスが”9”であることを確認する。そして、ユーザは、業務テーブルAに対し、インデックスが”9”のレコードについて、“年齢”フィールドを”27”才に更新要求する。ユーザは、予め、図45に示した検索処理などの機能によって、更新対象の「テーブル識別ID」と「インデックス」を特定しておく。そして、ユーザは入力手段510から更新要求情報を入力する。ここで、更新要求情報は、インデックス、テーブルID、項目名、フィールド値を含む。図45には、更新要求情報の例として、「インデックス、テーブルID、項目名、フィールド値」=「9,A,年齢,27」を示している。ユーザは、入力手段510から「9,A,年齢,27」を入力する。
S602おいて、レコード更新部340は、更新要求情報に含まれるテーブル識別IDである”業務テーブルA”を検索キーとして、追加フィールド管理テーブル410からデータ型および項目名を取得する(更新要求ごとに、初回1回のみ実施する)。図46は、レコード更新部340が、追加フィールド管理テーブル410を対象として業務テーブルAの行うレコードの取得処理をSQL文として示したものである。図47は、図46のSQL文の実行の結果、図45の追加フィールド管理テーブル410から、フィールドIDが「001」と「002」との2つのレコードを取得したことを示している。
まずは、レコード更新部340は、1つ目の追加フィールド”生年月日”について、S603を実施する。すなわち、S603おいて、レコード更新部340は、更新要求情報の項目名として、”生年月日”が存在するかを確認する。この例では存在しないので、処理はS602に戻る。
S602おいて、2つ目の追加フィールド”年齢”について、S603を実施する。S603おいて、レコード更新部340は、更新要求の項目名に”年齢”が存在するかを確認する。この例では存在するため、レコード更新部340はS613を実施する。
S613おいて、年齢はINT型であるので、レコード更新部340は、追加フィールドデータテーブル440−2[INT型]に対して、更新要求情報である「9,A,年齢,27」に対応するレコードが存在するかをインデックスをキーに判定する。すなわちレコード更新部340は、追加フィールドデータテーブル440−2に「インデックス=9」のレコードが存在するかどうかを判定する。レコード更新部340が、「インデックス=9」のレコードの存在を判定する処理をSQL文として示したものである。図45に示すように、追加フィールドデータテーブル440−2は作成されてはいるが、レコードは登録されていない状態とする。このため、『9(インデックス)、業務テーブルA(テーブル識別ID)、002(フィールドID)、27(年齢)』のレコードは、まだ追加フィールドデータテーブル440−2には登録されておらず、結果として、レコードが検索されない。図49は、図48のSQL文の実行の結果、レコードが検索されない状態を示している。
レコードは存在しないため、レコード更新部340は、S614を実施する。すなわち、レコード更新部340は、S614において、追加フィールドデータテーブル440−2[INT型]に対して、「9,A,年齢,27」に対応するレコードである『9(インデックス)、業務テーブルA(テーブル識別ID)、002(フィールドID)、27(値)』を追加する。図50は、レコード更新部340による追加フィールドデータテーブル440−2[INT型]へのレコードの登録処理を示したものである。「002(フィールドID)」は、更新要求情報「9,A,年齢,27」に含まれるテーブル識別ID及び項目名から追加フィールド管理テーブル410のレコードが決定するので、決定されたレコードから「002(フィールドID)」が決まる。
S614からS602へ戻るが、S602では未処理の追加フィールドは存在しないので、処理はS615に進む。
S615おいて、レコード更新部340は、S601で入力した更新要求情報に、追加フィールド以外の、つまり業務テーブルAへの更新要求(この例では、苗字あるいは名前)があるか判定する。この例では存在しないので処理は終了する。
以上の処理の結果、図45に示すように、更新用要求情報「9,A,年齢,27」の入力に対して、追加フィールドデータテーブル440−2にレコード「9,A,002,27」が追加(登録)される。
図44の更新処理のフローチャートについての一般的処理を簡単に説明する。
S601において、ユーザは、DB処理部300に対して業務テーブルに対するデータレコードの更新要求(テーブル識別ID、インデックス、項目名と値)を要求する。
S602において、DB処理部300のレコード更新部340は、テーブル識別IDを検索キーにして、追加フィールド管理テーブル410から、追加フィールドのデータ型413および項目名414の情報を取得する(更新要求ごとに、初回1回のみ実施する)。追加フィールドがある場合は1件ごとにS603を実施し、追加フィールドがない場合、あるいは全追加フィールドに対してS603を実施済みの場合はS605を実施する。図51は、レコード更新部340が、追加フィールド管理テーブル410から業務テーブルAのレコードを取得するしょりをSQL文として示したものである。図52は、図51のSQL文の実行の結果、業務テーブルAのレコードが取得された状態を示している。
S603において、レコード更新部340は、S601の更新要求情報に処理対象となる追加フィールドが含まれているか判定し、含まれていればS613を実施し、含まれていない場合はS602を実施する。
S613において、レコード更新部340は、処理対象の追加フィールドに対する追加フィールドデータテーブル440に、更新要求情報に対応するデータレコードが存在するか判定し、存在すればS604を実施し、存在しなければS614を実施する。図53は、レコード更新部340が、追加フィールドデータテーブル440から該当するレコードを取得する処理をSQL文として示したものである。図54は、図53のSQL文の実行の結果、業務テーブルAのレコードが取得された状態を示している。
S604において、レコード更新部340は、S613の結果から、対象となる追加フィールドデータテーブル440に対して、更新要求情報のデータ内容に更新する。図55は、レコード更新部340が、追加フィールドデータテーブル440の該当するレコードを更新する処理をSQL文として示したものである。図56は、図55のSQL文の実行の結果、追加フィールドデータテーブル440のレコードが更新された状態を示している。
S614の場合は、すなわち、該当するデータ型の追加フィールドデータテーブル440に更新要求情報のインデックスをもつ存在しない場合は、レコード更新部340は、追加フィールドデータテーブル440に対して、要求要求情報に対応するレコードを追加する。図57は、レコード更新部340が、追加フィールドデータテーブル440にレコードを追加する処理をSQL文として示したものである。図58は、図57のSQL文の実行の結果、追加フィールドデータテーブル440に更新要求情報に対応するレコードが追加された状態を示している。
S615において、レコード更新部340は、業務テーブルに対する更新項目があればS605を実施し、なければ終了する。
S605において、レコード更新部340は、更新要求情報のテーブル識別IDの示す業務テーブルに対して、更新要求情報のデータを格納することによりデータ更新する。図59は、レコード更新部340が、業務テーブルの該当するデータを更新する処理をSQL文として示したものである。図60は、図59のSQL文の実行の結果、業務テーブルの該当するデータが更新された状態を示している。
以上のように、実施の形態1による動的テーブル管理システム10000によれば、追加フィールドの値を格納するために別テーブルをデータ型別に用意することで、RDBMSで用意されている全てのデータ型について関数などの機能を利用して格納/検索の可能なシステムを提供することができる。
実施の形態1における動的テーブル管理システム10000実現するコンピュータシステムの外観。 実施の形態1における動的テーブル管理システム10000のハードウェア構成。 実施の形態1における動的テーブル管理システム10000のブロック図。 実施の形態1における追加フィールド管理テーブル410のフィールド構成。 実施の形態1におけるレコード関連付けインデックス管理テーブル420の構成。 実施の形態1における業務テーブル430のフィールド構成。 実施の形態1における追加フィールドデータテーブル440のフィールド構成。 実施の形態1における業務テーブルに対するフィールドの追加動作を示すフローチャート。 実施の形態1におけるSQL文の例。 実施の形態1におけるSQL文の実行結果の例。 実施の形態1における業務テーブルに対する追加フィールドの削除動作のフローチャート。 実施の形態1におけるSQL文の例。 実施の形態1におけるSQL文の実行結果の例。 実施の形態1におけるSQL文の実行結果の例。 実施の形態1におけるSQL文の例。 実施の形態1におけるSQL文の例。 実施の形態1におけるSQL文の例。 実施の形態1におけるSQL文の例。 実施の形態1における業務テーブルに対するデータレコードの新規登録の動作のフローチャート。 実施の形態1におけるSQL文の例。 実施の形態1におけるSQL文の例。 実施の形態1におけるSQL文の実行結果の例。 実施の形態1におけるSQL文の例。 実施の形態1におけるSQL文の実行結果の例。 実施の形態1におけるSQL文の実行結果の例。 実施の形態1におけるSQL文の例。 実施の形態1におけるSQL文の実行結果の例。 実施の形態1における業務テーブルに対するデータレコード検索動作のフローチャート。 実施の形態1におけるSQL文の例。 実施の形態1におけるSQL文の実行結果の例。 実施の形態1におけるSQL文の例。 実施の形態1におけるSQL文の実行結果の例。 実施の形態1におけるSQL文の例。 実施の形態1におけるSQL文の実行結果の例。 実施の形態1における業務テーブルからのデータレコード削除動作のフローチャート。 実施の形態1におけるSQL文の例。 実施の形態1におけるSQL文の実行結果の例。 実施の形態1におけるSQL文の例。 実施の形態1におけるSQL文の実行結果の例。 実施の形態1におけるSQL文の例。 実施の形態1におけるSQL文の実行結果の例。 実施の形態1におけるSQL文の例。 実施の形態1におけるビュー生成の概要を説明する図。 実施の形態1におけるる業務テーブルに対するデータレコードの更新動作のフローチャート。 実施の形態1におけるデータレコードの更新動作を説明する図。 実施の形態1におけるSQL文の例。 実施の形態1におけるSQL文の実行結果の例。 実施の形態1におけるSQL文の例。 実施の形態1におけるSQL文の実行結果の例。 実施の形態1におけるSQL文の例。 実施の形態1におけるSQL文の例。 実施の形態1におけるSQL文の実行結果の例。 実施の形態1におけるSQL文の例。 実施の形態1におけるSQL文の実行結果の例。 実施の形態1におけるSQL文の例。 実施の形態1におけるSQL文の実行結果の例。 実施の形態1におけるSQL文の例。 実施の形態1におけるSQL文の実行結果の例。 実施の形態1におけるSQL文の例。 実施の形態1におけるSQL文の実行結果の例。
符号の説明
100 DB定義部、110 フィールド追加部、120 追加フィールド取得部、130 追加フィールド削除部、200 業務アプリケーション実行部、210 業務アプリケーション、300 DB処理部、310 レコード追加部、320 レコード検索部、330 レコード削除部、340 レコード更新部、400 RDBMS、410 追加フィールド管理テーブル、411 テーブル識別ID、412 フィールドID、413 データ型、414 項目名、420 レコード関連付けインデックス管理テーブル、421 発行済みインデックス、430 業務テーブル、431 インデックス、432 業務情報、433 業務情報、440 追加フィールドデータテーブル、441 インデックス、442 テーブル識別ID、443 フィールドID、444 値、510 入力手段、520 表示手段、1000 業務サーバ、10000 動的テーブル管理システム。

Claims (4)

  1. テーブルを管理するテーブル管理装置において、
    インデックスのフィールドと名称が付与された1以上のフィールドとのそれぞれのフィールド値からなるレコードを1レコードとして登録する複数の登録テーブルを格納するテーブル格納部と、
    前記複数の登録テーブルのうちのいずれかを一意に示すテーブルID(Identification)と、テーブルIDの示す登録テーブルのフィールド名称に対応するフィールド値とを含む登録用情報の入力を受け付ける入力受付部と、
    前記入力受付部により受け付けられた登録用情報にこの登録用情報を特定するインデックスを付与し、インデックスの付与された登録用情報のうちテーブルIDを除くインデックスとフィールド値とを1レコードとして、この登録用情報に含まれるテーブルIDの示す登録テーブルに登録する登録部と
    を備え、
    前記入力受付部は、
    フィールドの追加を要求する情報であって、テーブルIDと、このテーブルIDの示す登録テーブルとの関係において追加が要求されるフィールドに一意に付与されたフィールドIDと、追加が要求されるフィールドのフィールド名称と、追加が要求されるフィールドに格納されるフィールド値のデータ型とを含むとともに、テーブルIDの示す登録テーブルに対してフィールド名称の示すフィールドの追加を要求するフィールド追加要求情報を受け付け、
    前記テーブル管理装置は、さらに、
    追加フィールド管理テーブルを格納する追加フィールド管理テーブル格納部と、
    前記入力受付部がフィールド追加要求情報を受け付けると、
    フィールド追加要求情報に含まれるテーブルIDと、フィールドIDと、フィールド名称と、データ型とを1レコードとして前記追加フィールド管理テーブルに登録するとともに、フィールド追加要求情報に含まれるデータ型のフィールド値を格納する追加フィールドデータテーブルが既に作成されているかどうかを判定し、作成されていないと判定すると、インデックスと、テーブルIDと、フィールドIDと、フィールド値との項目からなるテーブルであって、フィールド値としてフィールド追加要求情報に含まれるデータ型を格納する追加フィールドデータテーブルを作成するフィールド追加部と
    備え、
    前記入力受付部は、
    インデックスと、テーブルIDと、フィールド名称と、このフィールド名称に対応する値とを含む情報であって前記テーブルIDの示す登録用テーブルにおける前記インデックスの示すレコードの更新を要求する更新要求情報の入力を受け付け、
    前記テーブル管理装置は、さらに、
    前記入力受付部が更新要求情報を受け付けると、この更新要求情報に含まれるテーブルIDとフィールド名称とに基づいて、前記追加フィールド管理テーブルに登録されたレコードのうち更新要求情報に含まれるテーブルIDとフィールド名称とをもつレコードを特定し、特定された特定レコードに含まれるデータ型からこのデータ型の追加フィールドデータテーブルを特定し、特定された追加フィールドデータテーブルの中に更新要求情報に含まれるインデックスを有するレコードが存在するかどうかを判定し、判定の結果、存在しないと判定すると、更新要求情報に含まれるインデックス、テーブルID、フィールド名称に対応する値、及び前記追加フィールド管理テーブルにおいて特定された特定レコードに含まれるフィールドIDとを1レコードとして前記追加フィールドデータテーブルに登録する更新部を備えたことを特徴とするテーブル管理装置。
  2. 前記入力受付部が受け付ける登録情報は、
    テーブルID、フィールド値に加え、さらに、前記追加フィールド管理テーブルに登録された少なくともいずれかのレコードの有するフィールド名称に対応するフィールド値である管理フィールド値を含み、
    前記登録部は、
    前記入力受付部により受け付けられた登録情報に、この登録情報を特定するインデックスを付与し、インデックスの付与された登録情報に含まれるテーブルIDと管理フィールド値とに基づいて前記追加フィールド管理テーブルに登録されたレコードのうち登録情報に含まれるテーブルIDと、管理フィールド値に対応するフィールド名称とをもつレコードを特定し、特定された特定レコードに含まれるデータ型の追加フィールドデータテーブルに、付与されたインデックスと、登録情報にふくまれるテーブルIDと、前記追加フィールド管理テーブルにおいて特定された特定レコードに含まれる追加フィールドIDと、登録情報に含まれる管理フィールド値とを1レコードとして登録するとともに、登録情報に含まれるフィールド値に生成されたインデックスを付与し、インデックスの付与されたフィールド値を1レコードとして、登録情報に含まれるテーブルIDの示す登録テーブルに登録することを特徴とする請求項1記載のテーブル管理装置。
  3. 前記入力受付部は、
    ビューの作成対象となる登録テーブルのテーブルIDを含むとともに、テーブルIDの示す登録テーブルに対するビューの作成を要求するビュー作成要求情報を受け付け、
    前記テーブル管理装置は、さらに、
    前記入力受付部がビュー作成要求情報を受け付けると、ビュー作成要求情報に含まれたテーブルIDをキーとしてこのテーブルIDを持つレコードを追加フィールド管理テーブルのなかから第1レコードとして特定し、第1コードの示すデータ型の前記追加フィールドデータテーブルに対して、第1レコードの示すフィールドIDをキーとしてこのフィールドIDをもつレコードを追加フィールドデータテーブルから第2レコードとして特定し、フィールドIDを同じくする第1レコードと第2レコードとの間で第2レコードの示すフィールド値と第1レコードの示すフィールド名称とを対応付け、フィールド名称が対応付けられたフィールド値をこのフィールド値の元となる第2レコードの示すインデックスと同一のインデックスを持つレコードであって登録テーブルに登録されているレコードに結合することにより、ビュー作成要求情報に含まれたテーブルIDの示す登録テーブルのビューを作成するビュー作成部を備えたことを特徴とする請求項1または2のいずれかに記載のテーブル管理装置。
  4. 前記入力受付部は、
    前記追加フィールド管理デーブルに登録されている特定のレコードを指定するとともに指定されたレコードの削除を要求する削除指示情報を受け付け、
    前記テーブル管理装置は、さらに、
    前記入力受付部が削除指示情報を受け付けると、削除指示情報により指示されたレコードを追加フィールド管理テーブルから削除するとともに、削除後に、削除されたレコードの有するデータ型と同じデータ型を有するレコードが残っているかを判定し、残っていないと判定すると、削除されたレコードの有するデータ型の追加フィールドデータテーブルを削除する追加フィールド削除部を備えたことを特徴とする請求項1〜3のいずれかに記載のテーブル管理装置。
JP2007321563A 2007-12-13 2007-12-13 テーブル管理装置 Pending JP2009146084A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007321563A JP2009146084A (ja) 2007-12-13 2007-12-13 テーブル管理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007321563A JP2009146084A (ja) 2007-12-13 2007-12-13 テーブル管理装置

Publications (1)

Publication Number Publication Date
JP2009146084A true JP2009146084A (ja) 2009-07-02

Family

ID=40916636

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007321563A Pending JP2009146084A (ja) 2007-12-13 2007-12-13 テーブル管理装置

Country Status (1)

Country Link
JP (1) JP2009146084A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015022575A (ja) * 2013-07-19 2015-02-02 富士通株式会社 データ管理プログラム、データ管理装置およびデータ管理方法
CN110019242A (zh) * 2017-12-29 2019-07-16 北京京东尚科信息技术有限公司 用于数据表的处理方法、装置和系统
CN110196877A (zh) * 2018-08-17 2019-09-03 平安科技(深圳)有限公司 数据展示方法、装置、计算机设备及存储介质
US20200042510A1 (en) * 2015-12-19 2020-02-06 The Von Drakk Corporation Method and device for correlating multiple tables in a database environment
US10922299B2 (en) 2018-04-24 2021-02-16 The Von Drakk Corporation Correlating multiple tables in a non-relational database environment
KR20210097984A (ko) * 2020-01-31 2021-08-10 이화여자대학교 산학협력단 교육 관광 데이터베이스 구축장치, 방법 및 교육 관광 검색서버

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015022575A (ja) * 2013-07-19 2015-02-02 富士通株式会社 データ管理プログラム、データ管理装置およびデータ管理方法
US20200042510A1 (en) * 2015-12-19 2020-02-06 The Von Drakk Corporation Method and device for correlating multiple tables in a database environment
CN110019242A (zh) * 2017-12-29 2019-07-16 北京京东尚科信息技术有限公司 用于数据表的处理方法、装置和系统
US10922299B2 (en) 2018-04-24 2021-02-16 The Von Drakk Corporation Correlating multiple tables in a non-relational database environment
US11151112B2 (en) 2018-04-24 2021-10-19 The Von Drakk Corporation Correlating multiple tables in a non-relational database environment
CN110196877A (zh) * 2018-08-17 2019-09-03 平安科技(深圳)有限公司 数据展示方法、装置、计算机设备及存储介质
CN110196877B (zh) * 2018-08-17 2024-05-07 平安科技(深圳)有限公司 数据展示方法、装置、计算机设备及存储介质
KR20210097984A (ko) * 2020-01-31 2021-08-10 이화여자대학교 산학협력단 교육 관광 데이터베이스 구축장치, 방법 및 교육 관광 검색서버
KR102357200B1 (ko) 2020-01-31 2022-01-28 이화여자대학교 산학협력단 교육 관광 데이터베이스 구축장치, 방법 및 교육 관광 검색서버

Similar Documents

Publication Publication Date Title
US9600507B2 (en) Index structure for a relational database table
US7386568B2 (en) Techniques for partial rewrite of XPath queries in a relational database
US8301610B2 (en) Optimizing search for insert-only databases and write-once data storage
US20150234870A1 (en) Dynamic mapping of extensible datasets to relational database schemas
US7526469B2 (en) Method and system of database management with shared area
WO2018097846A1 (en) Edge store designs for graph databases
JP2009146084A (ja) テーブル管理装置
JP2016126788A (ja) 関係型データベース表の列横断的検索
JP2008009861A (ja) システム構成管理方式
US20090193420A1 (en) Method and system for batch processing form data
US9430554B2 (en) Object-relational mapping based on virtual columns
JP5186270B2 (ja) データベースのキャッシュシステム
US9576008B2 (en) System and method for search indexing
CA3089289C (en) System and methods for loading objects from hash chains
US20180144060A1 (en) Processing deleted edges in graph databases
KR20150123603A (ko) 데이터베이스 관리 방법 및 데이터베이스 관리 시스템
JP2007334412A (ja) 検索プログラムおよび検索装置
CN114116907A (zh) 一种数据库的同步方法、装置、电子设备和存储介质
US11256679B2 (en) Systems and methods for storing object state on hash chains
JP7274293B2 (ja) 情報処理装置、情報処理方法及びプログラム
US20100205197A1 (en) Two-valued logic database management system with support for missing information
US20160042022A1 (en) Data coordination support apparatus and data coordination support method
JP4825504B2 (ja) データ登録・検索システムおよびデータ登録・検索方法
JP5606303B2 (ja) 情報処理装置及び情報処理方法及びプログラム
EP4009175A1 (en) Simulation service providing a generic api endpoint