(57)【要約】【課題】構造化されたデータのＤＢへの一括登録・更新を行う技術を提供する。【解決手段】コンピュータのプログラムは、複数の表の要素に対応する複数要素を１行に含むシートとシートに含まれる各表のキーの要素及び他の表の要素への関係付けを含む定義体とを記憶部に記憶する処理と、定義体に従ってシートの各行について、各表に対応するキーと他の表の要素への関係付けを生成して出力する処理と、を実行させる。【選択図】図５Ｂ
2015191258.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
複数の表の要素に対応する複数要素を１行に含むシートと前記シートに含まれる各表のキーの要素及び他の表の要素への関係付けを含む定義体とを記憶部に記憶する処理と、
前記定義体に従ってシートの各行について、各表に対応するキーと他の表の要素への関係付けを生成して出力する処理と、
を実行させるためのプログラム。
【請求項２】
前記行の、前記他の表の要素への関係付けに対応する領域の、データ設定の状態に応じて更新登録を判定する処理を、さらに実行させる請求項１に記載のプログラム。
【請求項３】
前記行の、前記複数の表のキーの要素に対応する領域の、データ設定の状態に応じて更新登録を判定する処理を、さらに実行させる請求項１または２に記載のプログラム。
【請求項４】
コンピュータが、
複数の表の要素に対応する複数要素を１行に含むシートと前記シートに含まれる各表のキーの要素及び他の表の要素への関係付けを含む定義体とを記憶部に記憶する処理と、
前記定義体に従ってシートの各行について、各表に対応するキーと他の表の要素への関係付けを生成して出力する処理と、
を実行する処理方法。
【請求項５】
複数の表の要素に対応する複数要素を１行に含むシートと前記シートに含まれる各表のキーの要素及び他の表の要素への関係付けを含む定義体とを記憶する記憶部と、
前記定義体に従ってシートの各行について、各表に対応するキーと他の表の要素への関係付けを生成して出力する出力部と、
を備える情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、処理方法及び情報処理装置に関する。
【背景技術】
【０００２】
従来、情報処理システム等で処理されたデータ保管等の管理方式としてＲＤＢ（Relational Database）方式によるデータ管理が知られている。ＲＤＢ方式では、例えば、一件
のデータを複数の項目（例えば、フィールド）の集合として表現し、データの集合をテーブルと呼ばれる表形式で表現することができる。情報処理システムにおいては、ＲＤＢを採用する場合、例えば、データの冗長性排除や拡張性の確保を目的として、テーブルの正規化が行われる。
【０００３】
なお、本明細書で説明する技術に関連する技術が記載されている先行技術文献としては、以下の特許文献が存在している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−１９６５８９号公報
【特許文献２】特開平１０−３３４１６２号公報
【特許文献３】特開平８−２３５２８５号公報
【特許文献４】特開２００２−１９７４０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＲＤＢを採用する場合、例えば、多量のデータを手入力でデータベースに登録するような場合には、関連付けられたデータの項目を意識することなく、複数のテーブルに跨るデータ間の整合性を確保した状態で、データの登録／更新を可能とするインターフェースが課題となる。
【０００６】
例えば、単一のテーブルに対するインターフェースとしての、入力画面等の自動作成ツール等は知られている。しかし、複数のテーブルに含まれるデータを含むレコードを扱う情報処理システムを開発する場合には、情報処理システム毎に、個別にデータ入力に係るインターフェースの入力画面を開発しているのが現状である。
【０００７】
１つの側面では、本発明は、複数のテーブルに含まれるデータのデータベースへ、データ間の整合性を確保した状態で登録・更新を行うことを目的とする。
【課題を解決するための手段】
【０００８】
１つの態様では、コンピュータのプログラムは、複数の表の要素に対応する複数要素を１行に含むシートとシートに含まれる各表のキーの要素及び他の表の要素への関係付けを含む定義体とを記憶部に記憶する処理と、定義体に従ってシートの各行について、各表に対応するキーと他の表の要素への関係付けを生成して出力する処理と、を実行させる。
【０００９】
また、他の態様では、コンピュータの処理方法は、複数の表の要素に対応する複数要素を１行に含むシートとシートに含まれる各表のキーの要素及び他の表の要素への関係付けを含む定義体とを記憶部に記憶する処理と、定義体に従ってシートの各行について、各表に対応するキーと他の表の要素への関係付けを生成して出力する処理と、を実行する。
【００１０】
また、他の態様では、情報処理装置は、複数の表の要素に対応する複数要素を１行に含むシートとシートに含まれる各表のキーの要素及び他の表の要素への関係付けを含む定義体とを記憶部に記憶する記憶部と、定義体に従ってシートの各行について、各表に対応するキーと他の表の要素への関係付けを生成して出力する出力部と、を備える。
【発明の効果】
【００１１】
１つの側面として、複数のテーブルに含まれるデータのデータベースへ、データ間の整合性を確保した状態で登録・更新を行うことができる。
【図面の簡単な説明】
【００１２】
【図１】情報処理システムを説明する説明図である。
【図２】情報処理装置のハードウェア構成例を示す図である。
【図３Ａ】定義領域と入力領域とを有するワークシートを説明する説明図である。
【図３Ｂ】他のテーブルとの関連性を説明する説明図である。
【図３Ｃ】定義領域に沿って入力領域のデータを複数のテーブルに登録したテーブル例を示す図である。
【図４Ａ】ＤＢに対するデータ更新処理を説明する説明図である。
【図４Ｂ】ＤＢに対するデータ更新処理を説明する説明図である。
【図４Ｃ】ＤＢに対するデータ更新処理を説明する説明図である。
【図４Ｄ】ＤＢに対するデータ更新処理を説明する説明図である。
【図５Ａ】ＤＢへの登録処理を例示するフローチャートである。
【図５Ｂ】図５Ａに例示のＳ４の登録処理のフローチャートの例示である。
【発明を実施するための形態】
【００１３】
以下、図面を参照して、一実施形態に係る情報処理装置について説明する。以下の実施形態の構成は例示であり、情報処理装置は実施形態の構成には限定されない。
以下、図１から図５の図面に基づいて、情報処理装置を説明する。
【００１４】
＜実施例＞
〔システム構成〕
図１に、本実施形態の情報処理システム１の説明図を例示する。図１に例示の情報処理システム１では、例えば、ネットワークＮを介して接続された情報処理装置１０、記憶装置２０が含まれる。ネットワークＮには、例えば、インターネット等の公衆ネットワーク、携帯電話網等の無線ネットワーク等が含まれる。ネットワークＮには、複数の記憶装置２０が接続され得る。
【００１５】
図１に例示の情報処理システム１において、情報処理装置１０は、例えば、サーバ、ＰＣ（Personal Computer）といったコンピュータである。記憶装置２０は、各種プログラ
ム、各種データを格納する記憶媒体を備えた記憶装置であり、外部記憶装置とも呼ばれる。記憶装置２０としては、例えば、ソリッドステートドライブ装置、ハードディスクドライブ装置等がある。また、記憶装置２０は、ＣＤ（Compact Disc）ドライブ装置、ＤＶＤ（Digital Versatile Disc）ドライブ装置、ＢＤ（Blu-ray（登録商標） Disc）ドライブ装置等の可搬記録媒体を含むことができる。なお、情報処理装置１０、記憶装置２０は、例えば、ネットワーク上のコンピュータ群であるクラウドの一部を構成するものであってもよい。
【００１６】
図１に例示の情報処理システム１において、情報処理装置１０は、情報処理システム１で処理されたデータを、例えば、リレーショナル・データベース（ＲＤＢ：Relational Database）方式により管理し、各記憶装置２０のデータベースに格納する。ＲＤＢ方式で
は、例えば、一件のデータを複数の項目（例えば、フィールド）の集合として表現し、デ
ータの集合をテーブルと呼ばれる表形式で表現する。各表のそれぞれの項目は、例えば、他の表の項目と演算することにより、情報処理システム１で実行される様々な処理、或いは管理の対象となる。情報処理装置１０は、例えば、各項目が関連付けられた複数のテーブルを正規化された状態で、データベースとして各記憶装置２０に格納する。
【００１７】
本実施形態の情報処理システム１は、例えば、オペレータ等により手入力された各種データを受け付ける。そして、情報処理システム１は、例えば、入力されたデータの整合性及び関連性を確保して複数のテーブルに登録し、ＲＤＢ方式によるデータ管理を行うことを可能とする。本実施形態の情報処理システム１では、例えば、データベースに登録される各種データのモデルを表形式のワークシートで定義する。ワークシートでは、例えば、データの登録先のデータベースの複数のテーブルとカラムの属性、テーブル間の関係が定義された定義領域、各種データが入力される入力領域を有する。定義領域は、例えば、ワークシートの先頭部分に位置し、入力領域は、定義領域に後続して設けられる。
【００１８】
本実施形態の情報処理システム１では、情報処理装置１０は、例えば、ワークシートの先頭部分に位置する定義領域を解析し、入力先となる複数のテーブル間の関係を特定する。そして、情報処理装置１０は、特定された、複数のテーブル間の関係に基づいて、ワークシートの入力領域に入力された各種データの関連付けを行う。関連付けが行われた各種データは、ワークシートで定義された複数のテーブルに対応するデータベースに一括して登録・更新される。なお、データの登録先となる複数のテーブルに対応するデータベースは、例えば、複数のテーブルを含む単一のデータベースであってもよいし、複数のテーブルが分離して管理される複数のデータベースであってもよい。すなわち、本実施の形態において、データベースの構成に限定がある訳ではない。
【００１９】
本実施形態の情報処理システム１では、例えば、ワークシートの入力領域にオペレータ等により手入力された各種データを、登録先となる複数のテーブル間に跨るデータ間の関連性を維持した状態で、各テーブルに一括登録・更新することが可能となる。この結果、本実施形態の情報処理システム１では、データ間の整合性を確保した状態で複数のテーブルに含まれるデータの、データベースへの一括した登録・更新を行う技術が提供できる。〔装置構成〕
図２に、情報処理装置１０のハードウェア構成を例示する。図２に例示する情報処理装置１０は、いわゆる一般的なコンピュータの構成を有している。情報処理装置１０は、接続バスＢ１によって相互に接続されたＣＰＵ（Central Processing Unit）１１、主記憶
部１２、補助記憶部１３、入力部１４、出力部１５、通信部１６を有する。主記憶部１２及び補助記憶部１３は、情報処理装置１０が読み取り可能な記録媒体である。
【００２０】
情報処理装置１０は、ＣＰＵ１１が補助記憶部１３に記憶されたプログラムを主記憶部１２の作業領域に実行可能に展開し、プログラムの実行を通じて周辺機器の制御を行う。これにより、情報処理装置１０は、所定の目的に合致した機能を実現することができる。
【００２１】
図２に例示の情報処理装置１０において、ＣＰＵ１１は、情報処理装置１０全体の制御を行う中央処理演算装置である。ＣＰＵ１１は、補助記憶部１３に格納されたプログラムに従って処理を行う。主記憶部１２は、ＣＰＵ１１がプログラムやデータをキャッシュしたり、作業領域を展開したりする記憶媒体である。主記憶部１２は、例えば、ＲＡＭ（Random Access Memory）やＲＯＭ（Read Only Memory）を含む。
【００２２】
補助記憶部１３は、各種のプログラム及び各種のデータを読み書き自在に記録媒体に格納する。補助記憶部１３には、オペレーティングシステム（Operating System :ＯＳ）、各種プログラム、各種テーブル等が格納される。ＯＳは、通信部１６を介して接続される外部装置等とのデータの受け渡しを行う通信インターフェースプログラムを含む。外部装
置等には、例えば、接続されたネットワークＮ上の、他のサーバ等の情報処理装置、外部記憶装置、通信機能を有する装置等が含まれる。
【００２３】
補助記憶部１３は、例えば、ＥＰＲＯＭ（Erasable Programmable ROM）、ソリッドス
テートドライブ装置、ハードディスクドライブ（ＨＤＤ、Hard Disk Drive）装置等であ
る。また、補助記憶部１３としては、例えば、ＣＤドライブ装置、ＤＶＤドライブ装置、ＢＤドライブ装置等が提示できる。記録媒体としては、例えば、不揮発性半導体メモリ（フラッシュメモリ）を含むシリコンディスク、ハードディスク、ＣＤ、ＤＶＤ、ＢＤ、ＵＳＢ（Universal Serial Bus）メモリ、メモリカード等がある。
【００２４】
入力部１４は、ユーザ等からの操作指示等を受け付ける。入力部１４は、入力ボタン、キーボード１４ａ、マウス１４ｂ、タッチパネル等のポインティングデバイス、ワイヤレスリモコン、マイクロフォン、カメラ等の入力デバイスである。入力部１４から入力された情報は、接続バスＢ１を介してＣＰＵ１１に通知される。
【００２５】
出力部１５は、ＣＰＵ１１で処理されるデータや主記憶部１２に記憶されるデータを出力する。出力部１５は、ＣＲＴ（Cathode Ray Tube）ディスプレイ、ＬＣＤ（Liquid Crystal Display）１５ａ、ＰＤＰ（Plasma Display Panel）、ＥＬ（Electroluminescence
）パネル、有機ＥＬパネル、プリンタ、スピーカ等の出力デバイスである。通信部１６は、例えば、ネットワークＮ等とのインターフェースである。
【００２６】
情報処理装置１０は、例えば、ＣＰＵ１１が補助記憶部１３に記憶されているＯＳ、各種プログラムや各種データを主記憶部１２に読み出して実行することにより、解析処理部１０１、登録処理部１０２の各機能部を実現する。また、情報処理装置１０は、以上の各機能部が参照し、或いは、管理するデータの格納先として、例えば、補助記憶部１３を有する。
【００２７】
情報処理装置１０は、以上の機能部が機能することにより、例えば、ワークシートの定義領域解析し、データ登録先の複数のテーブルに対する内部オブジェクトを生成することができる。ここで、内部オブジェクトとは、ワークシートにより定義された複数のテーブルへのインターフェースであり、内部オブジェクトに基づいて、例えば、ワークシートの入力領域のレコードに記述された各種データが処理される。
【００２８】
内部オブジェクトには、例えば、ワークシートに定義された複数のテーブルオブジェクト、各テーブルオブジェクトに含まれるカラム情報、各テーブルオブジェクト間の関連性等が含まれる。ここで、テーブルオブジェクトとは、ワークシートで定義されたテーブル毎のインターフェースであり、ワークシートの入力領域に記述された各種データは、テーブルオブジェクトに沿って処理される。
【００２９】
また、情報処理装置１０は、生成した内部オブジェクトに基づいて、ワークシートの入力領域のレコードに入力された各種データの、複数のテーブルへのデータ登録を行うことができる。情報処理装置１０は、例えば、ワークシートの入力領域のレコードを、上述のテーブルオブジェクト毎の領域に分割する。そして、情報処理装置１０は、分割された領域に含まれる各種データを、テーブルオブジェクト毎のカラム領域に対応付ける。また、情報処理装置１０は、テーブルオブジェクト間の関連性の定義に沿って、分割された領域に含まれる各種データの、テーブルオブジェクト間の関連付けを行う。情報処理装置１０は、例えば、ワークシートの入力領域のレコードに入力された各種データを、複数のテーブルに一括して登録・更新することができる。
【００３０】
例えば、情報処理装置１０の解析処理部１０１は、各種データが手入力されたワークシ
ートを受け付ける。解析処理部１０１は、ワークシートの先頭部分で、ワークシートの項目に対応して位置する定義領域を解析し、複数のテーブルに対する内部オブジェクトを生成する。解析処理部１０１は、例えば、ワークシートに定義された複数のテーブルに対してテーブルオブジェクトを生成し、各テーブルオブジェクトにカラム情報を記録する。そして、解析処理部１０１は、例えば、各テーブルオブジェクト間の関連性を生成する。生成された内部オブジェクトは、例えば、主記憶部１２の所定の領域に一時的に記憶され、登録処理部１０２に引き渡される。
【００３１】
情報処理装置１０の登録処理部１０２は、例えば、解析処理部１０１で生成された内部オブジェクトに基づいて、ワークシートの入力領域のレコードを、テーブル単位に分割する。そして、登録処理部１０２は、テーブル単位に分割したレコードの各種データを、それぞれのテーブルの対応する項目（以下、項目をカラムとも称する）に登録・更新する。ワークシートの入力領域のレコードに入力された各種データは、例えば、解析処理部１０１で生成された内部オブジェクトに基づいて、複数のテーブルに対して一括して登録・更新される。
【００３２】
なお、情報処理装置１０の各機能部のうち、いずれかが、他の情報処理装置に含まれてもよい。例えば、解析処理部１０１を含む情報処理装置と、登録処理部１０２を含む情報処理装置とが、ネットワークＮ等を介して接続されることにより、情報処理装置１０として機能してもよい。情報処理装置１０は、複数の情報処理装置に機能部を分散し、各機能部を実現することで、処理負荷を軽減することができる。
【００３３】
〔ワークシートによるデータ処理例〕
（ＤＢ登録）
次に、図３Ａ−３Ｃを参照し、本実施形態の情報処理装置１０での、ワークシートによるデータ処理例を説明する。図３Ａは、例えば、データベースの操作対象となる複数のテーブルとカラムの属性、テーブル間の関係が定義された定義領域と、各種データが入力される入力領域とを有するワークシート例である。図３Ａのワークシートは、例えば、マイクロソフト社のＭＳ−ＥＸＣＥＬ（登録商標）といった表形式のスプレッドシートによる例である。なお、以下の説明では、表形式で表現されたワークシートの定義領域の行を「定義レコード」とし、定義領域で定義付けされた列を「カラム」として説明する。また、入力領域の行は「レコード」として説明する。入力領域の「レコード」は、定義領域で定義付けされた列である「カラム」毎に区分けされる。
【００３４】
図３Ａに例示のワークシートは、先頭部分の行に定義領域Ａを有し、定義領域Ａの下位行に継続して各種データが入力される入力領域Ｂを有する。定義領域Ａは、複数の定義レコードを有し、各レコードには、ワークシートで関連付けされるテーブル構造等を示す情報が定義される。また、定義領域Ａの各定義レコードの領域は、複数のテーブル毎のテーブル領域に区分けされる。図３Ａの例では、定義領域Ａの各定義レコードは、テーブルＣ１、Ｃ２、Ｃ３に対応するテーブル領域に区分けされている。なお、入力領域Ｂのレコードは、テーブルＣ１、Ｃ２、Ｃ３に対応したテーブル領域に区分けされた入力領域範囲を有する。入力領域Ｂのレコードに記述される各種データは、それぞれのテーブル領域に区分けされた入力領域範囲に、例えば、オペレータ等により手入力される。
【００３５】
図３Ａに例示のワークシートは、定義領域Ａとして、複数の定義レコードＡ１−Ａ７を有する一例である。定義領域Ａの各定義レコードは、先頭行の定義レコードＡ１から順に、「table」、「column」、「type」、「size」、「notnul」、「key」、「relation」といったテーブル構造等を示す情報を定義する。定義レコードＡ１の「table」では、ワー
クシートの処理により関連付けされるテーブルを指し示す情報が定義される。テーブルを指し示す情報として、例えば、テーブルを一意に識別するテーブル識別情報、テーブル名
称等が例示できる。定義レコードＡ１のレコードは、テーブル数に応じた複数のカラム領域に区分けされ、各カラム領域には、テーブルを指し示す情報が格納される。
【００３６】
定義レコードＡ２の「column」では、テーブル毎のカラム種別を指し示す情報が定義される。定義レコードＡ２のレコードは、テーブル毎に定義された複数のカラム領域に区分けされ、各カラム領域には、テーブル毎のカラム種別を指し示す情報が格納される。定義レコードＡ３の「type」では、カラム種別毎の入力されるデータ形式を指し示す情報が定義される。定義レコードＡ３のレコードは、テーブル毎に定義された複数のカラム領域に区分けされ、各カラム領域には、カラム種別毎のデータ形式を指し示す情報が格納される。
【００３７】
定義レコードＡ４の「size」では、カラム種別毎の入力されるデータサイズを指し示す情報が定義される。定義レコードＡ４のレコードは、テーブル毎に定義された複数のカラム領域に区分けされ、各カラム領域には、カラム種別毎のデータサイズを指し示す情報が格納される。定義レコードＡ５の「notnul」では、カラム種別毎の入力データに対する未設定状態の許可の有無を指し示す情報が定義される。入力データの未設定状態の許可の有無を指し示す情報として、例えば、「yes」、「no」で表される２値のステータス状態が
例示できる。定義レコードＡ５のレコードは、テーブル毎に定義された複数のカラム領域に区分けされ、各カラム領域には、カラム種別毎の入力データの未設定状態の許可の有無を指し示す情報が格納される。
【００３８】
定義レコードＡ６の「key」では、各カラム種別がキー要素であるか否かを示す情報が
定義される。ＲＤＢ方式によるデータ管理においては、例えば、キー要素に定義付されたカラム種別を軸として自動採番が行われ、正規化される。キー要素であるか否かを示す情報として、例えば、「key」といった、対象となるカラム種別がキー要素であることを示
す文字列、記号等が例示できる。定義レコードＡ６のレコードは、テーブル毎に定義された複数のカラム領域に区分けされ、各カラム領域には、各カラム種別がキー要素であるか否かを示す情報が格納される。
【００３９】
定義レコードＡ７の「relation」では、カラム種別毎に複数のテーブル間を跨ぐ関連性を指し示す情報が定義される。複数のテーブル間を跨ぐ関連性を指し示す情報として、例えば、関連元のテーブル及びカラム種別を一対として組み合わせた形式が例示できる。例えば、定義レコードＡ１の「table」と定義レコードＡ２の「column」で指し示される情
報を組み合せて一対とした、「（table）..（column）」との形式が例示できる。定義レ
コードＡ７のレコードは、テーブル毎に定義された複数のカラム領域に区分けされ、各カラム領域には、カラム種別毎の複数のテーブル間を跨ぐ関連性を指し示す情報が格納される。
【００４０】
なお、図３Ａに例示のワークシートにおいて、定義領域Ａの定義レコード数に限定がある訳ではない。定義領域Ａの定義レコード数は、例えば、ＲＤＢ方式によるデータ管理が行われる情報処理システム、テーブル構造等に応じて可変することが可能である。定義領域Ａを有するワークシートは、少なくとも、ワークシートに含まれる複数のテーブルを指し示す情報、正規化時の採番対象となるカラム情報、テーブル間のデータの関連性を指し示す情報に対応する定義レコードを含めばよい。
【００４１】
図３Ａの例では、定義レコードＡ１は、テーブル領域Ｃ１、Ｃ２、Ｃ３に対応するカラム領域に複数に区分けされ、それぞれ「DIRECTOR」、「FILM」、「PRIZE」とのテーブル
を指し示す情報が格納されている。例えば、「DIRECTOR」は映画監督に関する情報がデータとして入力されるテーブル、「FILM」は映画監督による作品に関する情報がデータとして入力されるテーブル、「PRIZE」は作品に係る表彰の情報がデータとして入力されるテ
ーブルである。
【００４２】
定義レコードＡ２は、定義レコードＡ１で区分けされたテーブル領域毎に、それぞれのテーブルで定義されたカラム種別に対応するカラム領域に複数に区分けされている。例えば、テーブル領域Ｃ１の「DIRECTOR」では、定義レコードＡ２は、「DIRECTOR_ID」、「NAME」、「BIRTH_DATE」、「COUNTRY」とのカラム種別に対応する複数のカラム領域に区分けされている。例えば、「DIRECTOR_ID」は映画監督を一意に識別する識別情報がデータ
として入力されるカラム種別であり、「NAME」は映画監督の氏名がデータとして入力されるカラム種別である。また、例えば、「BIRTH_DATE」は映画監督の生年月日がデータとして入力されるカラム種別であり、「COUNTRY」は映画監督の国籍がデータとして入力され
るカラム種別である。
【００４３】
同様に、テーブル領域Ｃ２の「FILM」では、定義レコードＡ２は、例えば、「FILM_ID
」、「DIRECTOR_ID」、「FILM_NAME」、「YEAR」とのカラム種別に対応する複数のカラム領域に区分けされている。例えば、「FILM_ID」は映画作品を一意に識別する識別情報が
データとして入力されるカラム種別であり、「DIRECTOR_ID」は映画監督を一意に識別す
る識別情報がデータとして入力されるカラム種別である。「FILM_NAME」は映画作品の標
題がデータとして入力されるカラム種別であり、「YEAR」は映画作品の公開年がデータとして入力されるカラム種別である。テーブル領域Ｃ２の「DIRECTOR_ID」カラムには、テ
ーブル領域Ｃ１の「DIRECTOR_ID」カラムに入力されるデータが記述される。
【００４４】
また、テーブル領域Ｃ３の「PRIZE」では、定義レコードＡ２は、例えば、「FILM_ID」、「SEQ_NO」、「PRIZE_NAME」、「YEAR」とのカラム種別に対応する複数のカラム領域に区分けされている。例えば、「FILM_ID」は映画作品を一意に識別する識別情報がデータ
として入力されるカラム種別であり、「SEQ_NO」は映画作品が受賞した表彰を一意に識別する識別情報がデータとして入力されるカラム種別である。「PRIZE_NAME」は映画作品が受賞した表彰の名称がデータとして入力されるカラム種別であり、「YEAR」は映画作品の表少年がデータとして入力されるカラム種別である。テーブル領域Ｃ３の「FILM_ID」カ
ラムには、テーブル領域Ｃ２の「FILM_ID」カラムに入力されるデータが記述される。
【００４５】
定義レコードＡ３では、定義レコードＡ２で区分けされたカラム種別に対応するカラム領域に、「NUMBER」、「VARCHAR2」、「DATE」といったデータ形式を指し示す情報が格納されている。定義レコードＡ４では、定義レコードＡ２で区分けされたカラム種別に対応するカラム領域に、「１０，０」、「８０」、「２５６」といったデータサイズを指し示す情報が格納されている。定義レコードＡ５では、定義レコードＡ２で区分けされたカラム種別に対応するカラム領域に、「yes」といったカラム種別毎の入力データに対する未
設定状態の許可の有無を指し示す情報が格納されている。
【００４６】
定義レコードＡ６では、定義レコードＡ２で区分けされたカラム種別に対応するカラム領域に、「key」といったキー要素であるか否かを表す情報が格納されている。例えば、
テーブル領域Ｃ１では「DIRECTOR_ID」に対応するカラム領域に、テーブル領域Ｃ２では
「FILM_ID」に対応するカラム領域に、テーブル領域Ｃ３では「FILM_ID」、「SEQ_NO」に対応するカラム領域に「key」が格納されている。テーブル領域Ｃ１の「DIRECTOR_ID」、テーブル領域Ｃ２の「FILM_ID」、テーブル領域Ｃ３の「FILM_ID」に対応するカラム領域は、何れも、各テーブル領域の左端に位置している。
【００４７】
キー要素に定義付けされたカラム領域には、自動採番による識別番号が入力される。各テーブル領域では、図３Ａに例示のように、ワークシート上で区分けされたテーブル領域の左端に、キー要素として定義付けされるカラム領域を配置することにより、データ処理時のテーブルの正規化を図ることができる。
【００４８】
なお、テーブル領域Ｃ３の「FILM_ID」に対応する、定義レコードＡ７のカラム領域に
は、他のテーブルに属するカラム種別との関連性を指し示す情報が定義されている。図３Ａに例示のように、テーブル領域Ｃ３の「FILM_ID」に対応するカラム領域は、キー要素
を定義するカラム領域であると共に、他のテーブルに属するカラム種別との関連性を指し示す情報が定義付けされるカラム領域である。キー要素を定義する定義レコードの情報と、他のテーブルとの関連性を定義する定義レコードの情報とが重複する場合では、例えば、他のテーブルとの関連性を指し示す情報が優先されるように定義できる。他のテーブルとの関連性を指し示す情報が優先されるように定義することで、複数のテーブルに跨るデータ間の整合性を確保することができる。
【００４９】
さらに、キー要素を定義する定義レコードの情報と、他のテーブルとの関連性を定義する定義レコードの情報とが重複する場合には、例えば、定義情報が重複するカラム種別に隣接するカラム領域に、キー要素となる他のカラム種別を配置することができる。図３Ａのテーブル領域Ｃ３の例では、「FILM_ID」カラムの右側に隣接するカラム領域に、「SEQ_NO」カラムを配置し、キー要素としての定義付けが行われている。このように、定義情
報が重複するカラム種別に対し、隣接するカラム領域にキー要素となる他のカラム種別を配置することにより、複数のテーブルに跨るデータ間の整合性を確保した上で、他のカラム種別を軸とした自動採番が可能となる。この結果、他のテーブルとの関連性が定義されたカラム種別に対応するカラム領域に入力されたデータに対して、入力されたデータ毎の自動採番を行い、正規化されたテーブルを生成することが可能となる。
【００５０】
図３Ａに例示の定義レコードＡ７では、定義レコードＡ２で区分けされたカラム種別に対応するカラム領域に、「（table）..（column）」といった形式による、テーブル間を
跨ぐ関連性を指し示す情報が格納されている。（table）には、例えば、定義レコードＡ
１で定義付けられたテーブルを指し示す情報が格納され、（column）には、定義レコードＡ２で定義付けられたカラム種別を指し示す情報が格納される。
【００５１】
例えば、テーブル領域Ｃ２では、「DIRECTOR_ID」に対応するカラム領域に、「DERECTOR..DERECTOR_ID」が格納されている。テーブル領域Ｃ２の「DERECTOR..DERECTOR_ID」は
、例えば、「FILM」テーブルの「DIRECTOR_ID」のカラム種別と、「DERECTOR」テーブル
の「DERECTOR_ID」カラムとは、関連性を有することを表している。
【００５２】
また、例えば、テーブル領域Ｃ３では、「FILM_ID」に対応するカラム領域に、「FILM..FILM_ID」が格納されている。テーブル領域Ｃ３の「FILM..FILM_ID」は、例えば、「PRIZE」テーブルの「FILM_ID」のカラム種別と、「FILM」テーブルの「FILM_ID」カラムとは、関連性を有することを表している。
【００５３】
図３Ｂに、定義レコードＡ７で定義されたテーブル間の関連性を示す説明図を例示する。図３Ｂの説明図において、定義レコードＡ１で定義付されたように、テーブル領域Ｃ１−Ｃ３は、それぞれ、「DERECTOR」テーブル、「FILM」テーブル、「PRIZE」テーブルに
対応する。また、定義レコードＡ２で定義付されたように、テーブル領域Ｃ１の「DERECTOR」テーブルには、「DIRECTOR_ID」、「NAME」、「BIRTH_DATE」、「COUNTRY」といったカラム種別が含まれる。同様に、テーブル領域Ｃ２の「FILM」テーブルには、「FILM_ID
」、「DIRECTOR_ID」、「FILM_NAME」、「YEAR」、テーブル領域Ｃ３の「PRIZE」テーブ
ルには、「FILM_ID」、「SEQ_NO」、「PRIZE_NAME」、「YEAR」といったカラム種別が含
まれる。
【００５４】
図３Ｂの説明図では、他のテーブルのカラム種別との間に関連性を有するカラム種別同士が接続線Ｚ１、Ｚ２により結ばれている。例えば、テーブル領域Ｃ２の「FILM」テーブ
ルの「DIRECTOR_ID」のカラム種別は、テーブル領域Ｃ１の「DERECTOR」テーブルの「DERECTOR_ID」カラム種別と関連性を有するため、接続線Ｚ１により結ばれている。また、テーブル領域Ｃ３の「PRIZE」テーブルの「FILM_ID」のカラム種別は、例えば、テーブル領域Ｃ２の「FILM」テーブルの「FILM_ID」カラム種別と関連性を有するため、接続線Ｚ２
により結ばれている。
【００５５】
図３Ｂに例示のように、定義レコードＡ７では、関連元のテーブル及びカラム種別が組み合わされて一対となった形式で、関連先のテーブルのカラム種別に対応するカラム領域に格納される。関連元のテーブル及びカラム種別を組み合わせた一対の形式が、関連先のテーブルのカラム種別に対応するカラム領域に格納されることにより、関連先のテーブルの入力領域Ｂに入力されたデータ処理では、関連元の情報を特定できる。特定された関連元の情報に基づいて入力領域Ｂのデータ処理を行うことにより、複数のテーブルに跨るデータ間の整合性を確保することができる。
【００５６】
なお、図３Ｂに例示のように、各テーブルは、テーブル領域Ｃ１の「DERECTOR」テーブルを最上位として、テーブル領域Ｃ２の「FILM」テーブル、テーブル領域Ｃ３の「PRIZE
」テーブルが階層化されている。図３Ａのワークシート例では、各テーブル領域は、左側から、Ｃ１→Ｃ２→Ｃ３の順に配列されている。このように、ワークシート上の各テーブル領域を、階層化されたテーブルの最上位から階層順に、左側から配列することにより、階層化されたテーブル構造を有するＲＤＢへの一括したデータ登録が可能となる。
【００５７】
図３Ａの説明図に戻り、ワークシートでは、例えば、定義レコードＡ１−Ａ７で定義された情報に基づいて、入力領域Ｂに対するデータ入力が行われる。入力領域Ｂに対するデータ入力は、例えば、ワークシートのレコード毎に行われる。なお、入力領域Ｂに対するデータ入力は、オペレータ等の手入力であってもよく、例えば、複数の計測器で計測されたデータがネットワークＮを介して自動的に読み込まれるとしてもよい。
【００５８】
オペレータ等の手入力でデータ入力が行われる場合には、例えば、定義領域Ａは、セル保護といった、ロック処理が施されるとしてもよい。また、例えば、定義レコードＡ１、Ａ２のテーブル及びテーブル毎のカラム種別を示す定義レコードを除く、他の定義レコードＡ３−Ａ７を非表示とするとしてもよい。定義レコードＡ３−Ａ７を非表示の状態にすることにより、第３者による改ざんや、オペレータ等の誤操作による不要なデータ入力を防止することができる。
【００５９】
入力領域Ｂのレコードでは、例えば、定義レコードＡ６で定義付けされたキー要素のカラム種別、定義レコードＡ７で定義付けされた他のテーブルとの関連性を有するカラム種別に対応するカラム領域へのデータ入力を不要とすることができる。なお、オペレータ等の手入力でデータ入力が行われる場合には、定義レコードＡ６、Ａ７で定義付されたカラム種別に対し、セル保護や非表示処理を施すとしてもよい。定義レコードＡ６、Ａ７で定義付されたカラム種別に対し、セル保護や非表示処理を施すことにより、例えば、オペレータ等の誤操作による、意図しないデータ入力を防止できる。
【００６０】
図３Ａの例では、例えば、入力領域Ｂのレコードの、テーブル領域Ｃ１に対応するカラム領域には、「黒澤明」、「1910/3/23」、「JPN」といったデータが入力されている。「黒澤明」は「NAME」カラム領域、「1910/3/23」は「BIRTH_DATE」カラム領域、「JPN」は「COUNTRY」カラム領域に入力されている。また、テーブル領域Ｃ１に対応するカラム領
域の、「NAME」カラム領域に「Stanley Kubrick」、「BIRTH_DATE」カラム領域に「1928/7/26」、「COUNTRY」カラム領域に「US」といったデータが入力されている。
【００６１】
なお、入力領域Ｂのレコードの、テーブル領域Ｃ１に対応するカラム領域では、「NAME
」カラム領域に「黒澤明」が入力されたレコードから「Stanley Kubrick」が入力された
レコード迄の間のレコードの各カラム領域のデータは空欄状態となっている。入力領域Ｂのレコードの、テーブル領域Ｃ１に対応するカラム領域では、レコード毎に同じデータが重複して入力される場合には、空欄状態が入力される。
【００６２】
同様に、入力領域Ｂのレコードの、テーブル領域Ｃ２に対応するカラム領域には、「姿三四郎」−「影武者」、「1943」−「1980」等のデータが入力されている。入力領域Ｂのレコードの、テーブル領域Ｃ２に対応するカラム領域において、「姿三四郎」−「影武者」等のデータは「FILM_NAME」カラム領域、「1943」−「1980」等のデータは「YEAR」カ
ラム領域に入力されている。また、入力領域Ｂのレコードの、テーブル領域Ｃ２に対応するカラム領域において、テーブル領域Ｃ２の「FILM_NAME」カラム領域には「拳闘試合の
日」−「シャイニング」等のデータ、「YEAR」カラム領域には「1951」−「1980」等のデータが入力されている。なお、テーブル領域Ｃ２に対応するカラム領域においても、テーブル領域Ｃ１で説明したように、レコード毎に同じデータが重複して入力される場合、空欄状態が入力される。
【００６３】
同様に、入力領域Ｂのレコードの、テーブル領域Ｃ３に対応するカラム領域には、「アカデミー賞特殊視覚効果賞」、「ヒューゴー賞」、「1968」、「1969」等のデータが入力されている。なお、図３Ｂで説明したように、階層化されたテーブル関係において、テーブル領域Ｃ３は、最下位層のテーブルとなる。このため、入力領域Ｂのレコードの、テーブル領域Ｃ３に対応するカラム領域の空欄状態は、例えば、入力されるデータが存在しないことを示している。
【００６４】
図３Ｃに、本実施形態の情報処理装置１０の処理で登録されたＲＤＢ方式のテーブル例を例示する。図３Ｃのテーブル例は、例えば、図３Ａに例示のワークシートに入力されたデータに基づくテーブル登録例である。図３Ａに例示のワークシートの、入力領域Ｂのレコードの、各テーブル領域に対応するカラム領域に入力されたデータが一括して格納されている。
【００６５】
図３Ｃのテーブル例において、レコードＤ１には、定義レコードＡ１で定義付されたテーブルを指し示す情報が、左側から順に格納されている。また、レコードＤ２には、定義レコードＡ２で定義付けされた、テーブル毎のカラム種別を指し示す情報が格納されている。各テーブルの左端側のカラムには、定義レコードＡ６で定義付されたキー要素となるカラム種別が配列されている。例えば、「DIRECTOR」テーブルでは「DIRECTOR_ID」カラ
ム、「FILM」テーブルでは「FILM_ID」カラム、「PRIZE」テーブルでは「FILM_ID」カラ
ムが左端側に配列されている。
【００６６】
また、「DIRECTOR」テーブルのレコードでは、「DIRECTOR_ID」カラムに対応するカラ
ム領域に、自動採番による番号が格納されている。同様に、「FILM」テーブルでは、「FILM_ID」カラムに対応するカラム領域に、自動採番による番号が格納されている。「PRIZE」テーブルでは、「FILM_ID」カラムに対して他のテーブルとの関連性が定義付けされて
いるため、「FILM_ID」カラムの右側に隣接する「SEQ_NO」カラムに対応するカラム領域
に自動採番による番号が格納されている。
【００６７】
図３Ｃのテーブル例において、定義レコードＡ７で他のテーブルとの関連性が定義付された、「FILM」テーブルの「DIRECTOR_ID」カラムには、関連元のテーブルで自動採番さ
れた番号が格納されている。例えば、「FILM」テーブルの「FILM_ID」カラムに「１」−
「５」を格納したレコードの「DIRECTOR_ID」カラムには「１」が格納されている。「FILM」テーブルの「FILM_ID」カラムに「１」−「５」を格納したレコードは、「DIRECTOR」テーブルの「DIRECTOR_ID」カラムに「１」を採番した、「黒澤明」のレコードに関連付
けられていることがわかる。
【００６８】
また、例えば、「FILM」テーブルの「FILM_ID」カラムに「６」−「９」を格納したレ
コードの「DIRECTOR_ID」カラムには「２」が格納されている。「FILM」テーブルの「FILM_ID」カラムに「６」−「９」を格納したレコードは、「DIRECTOR」テーブルの「DIRECTOR_ID」カラムに「２」を採番した、「Stanley Kubrick」のレコードに関連付けられていることがわかる。
【００６９】
同様に、定義レコードＡ７で他のテーブルとの関連性が定義付された、「PRIZE」テー
ブルの「FILM_ID」カラムには、関連元のテーブルで自動採番された番号が格納されてい
る。例えば、「PRIZE」テーブルの「SEQ_NO」カラムに「１」−「２」を格納したレコー
ドの「FILM_ID」カラムには「８」が格納されている。「PRIZE」テーブルの「SEQ_NO」カラムに「１」−「２」を格納したレコードは、「FILM」テーブルの「FILM_ID」カラムに
「８」を採番した、「２００１年宇宙の旅」のレコードに関連付けられていることがわかる。
【００７０】
本実施形態の情報処理装置１０では、例えば、ワークシートの定義領域で定義されたテーブル構造が解析される。情報処理装置１０では、解析したテーブル構造に基づいて、例えば、ワークシートの入力領域に入力された各種データが、複数のテーブル間に跨るデータ間の関連性を維持した状態で、データベースに一括登録される。本実施形態の情報処理装置１０では、複数のテーブルに含まれるデータのデータベースへ、データ間の整合性を確保した状態で一括して登録することができる。
【００７１】
（ＤＢ更新）
なお、本実施形態の情報処理装置１０では、一括登録されたデータのワークシートを編集することにより、例えば、既に登録されたデータベースに対するデータ更新を行うことが可能である。以下、図４Ａ−４Ｄを参照し、既に登録されたデータベースに対するデータ更新処理を説明する。
【００７２】
図４Ａに例示のテーブル例は、図３Ｃで説明したテーブル例である。また、図４Ｂに例示のワークシート例は、図３Ａで説明したワークシート例である。なお、データベースに登録された状態のワークシートでは、キー要素に定義付けされたカラム種別に対応するカラム領域には、自動採番された番号が格納された状態となる。また、同様に、他のテーブルとの関連性が定義付けされたカラム種別に対応するカラム領域には、関連元のテーブルで自動採番された番号が格納された状態となる。
【００７３】
例えば、情報処理装置１０により一括登録処理された、図４Ａに例示のテーブルに対し、データの追加等が発生した場合を想定する。例えば、情報処理装置１０の管理者は、図４Ａに例示のテーブルを参照し、図４Ｂに例示のワークシートを呼び出してＬＣＤ１５ａ等の表示画面に表示させる。そして、情報処理装置１０の管理者は、表示画面に表示された図４Ｂに例示のワークシートに対して編集作業を実行する。
【００７４】
図４Ｃに、編集された状態のワークシート例を例示する。編集箇所の領域（カラム、レコード）には、右上がり斜め斜線によるハッチングが施されている。図４Ｃの例では、例えば、「FILM」テーブルの「FILM_NAME」カラムに格納された「荒野の七人」とのデータ
が「七人の侍」に変更されている。また、例えば、「FILM」テーブルの「FILM_NAME」カ
ラムに「天国と地獄」とのデータが追加されている。編集段階では、「FILM_NAME」カラ
ムに「天国と地獄」を格納したレコードは、「椿三十郎」を格納したレコードと「影武者」を格納したレコードとの間に追加されているため、「FILM_ID」と「DIRECTOR_ID」のカラムには採番が行われていない。
【００７５】
また、例えば、「DIRECTOR」テーブルには、「Alfred Joseph Hitchcock」に関するレ
コードが新たに追加されている。また、例えば、「Alfred Joseph Hitchcock」に関する
追加レコードの、「FILM」テーブルの「FILM_NAME」カラムには、「第３逃亡者」、「レ
ベッカ」、「サイコ」、「鳥」といったデータが追加されている。また、「FILM」テーブルの「FILM_NAME」カラムに「サイコ」が格納されたレコードの、「PRIZE」テーブルの「PRIZE_NAME」カラムには、「ゴールデングローブ賞」、「エドガー賞」とのデータが追加されている。
【００７６】
本実施形態の情報処理装置１０では、編集された状態のワークシートに対し、例えば、定義領域で定義されたテーブル構造を解析し、解析したテーブル構造に基づいて、追加入力、変更入力されたデータに対する更新処理を実行する。更新処理は、登録処理と同様に、データベースに対して一括して実行される。
【００７７】
図４Ｄに、更新処理が実行されたテーブル例を例示する。図４Ｄに例示のテーブルは、例えば、図４Ｃに例示のワークシートに基づいて更新されたテーブル例である。図４Ｄのテーブル例において、例えば、「荒野の七人」から「七人の侍」に変更されたレコードに対する、「FILM」テーブルの「FILM_ID」と「DIRECTOR_ID」カラムの採番値には変更がない。
【００７８】
一方、「FILM」テーブルの「FILM_NAME」カラムに対し、「椿三十郎」のレコードと「
影武者」のレコードとの間に追加された「天国と地獄」のレコードでは、「FILM_ID」カ
ラムに新たに採番された「１０」が格納されている。また、同様に、「FILM」テーブルの「天国と地獄」のレコードでは、「DIRECTOR_ID」カラムに関連元のテーブルで自動採番
された「１」が格納されている。本実施形態の情報処理装置１０では、既に入力済みのレコード間に新たなレコードが追加された場合には、キー要素に定義付けされたカラム種別に対応するカラム領域には、既に発番された番号値から採番した番号値が格納される。本実施形態の情報処理装置１０では、例えば、追加されたレコード位置を検出し、追加されたレコードのキー要素に定義付けされたカラム種別に対応するカラム領域に、既に発番された番号値から採番した番号値を格納する。
【００７９】
なお、図４Ｃに例示のワークシート例において、例えば、「天国と地獄」が格納されたレコードを、「Alfred Joseph Hitchcock」の「第３逃亡者」が格納されたレコード位置
に追加したとする。追加したレコードの、テーブル領域Ｃ１に対応するカラム領域が空欄状態の場合には、「Stanley Kubrick」と同じデータが重複されていると判断されるため
、「DIRECTOR_ID」カラムに関連元のテーブルで自動採番された「２」が格納されること
となる。
【００８０】
また、例えば、テーブル領域Ｃ１に対応するカラム領域に「黒澤明」等の情報を追加し、「天国と地獄」が格納されたレコードを、「Alfred Joseph Hitchcock」の「第３逃亡
者」が格納されたレコード位置に追加したとする。この場合には、テーブル領域Ｃ１に対応するカラム領域に情報が含まれているため、新たに追加されたレコードに対して「DIRECTOR_ID」カラムで割り当てられる番号が自動的に採番されるので、「３」が格納される
こととなる。つまり、「DIRECTOR_ID」カラムに「１」が格納された既存の「黒澤明」と
は異なる「黒澤明」としてデータ管理が行われる。
【００８１】
図４Ｄに例示の、更新されたテーブル例において、階層化されたテーブル構造の最上位の「DIRECTOR」テーブルに追加された「Alfred Joseph Hitchcock」のレコードの「DIRECTOR_ID」カラムには、「３」が格納されている。新たなレコードが追加された場合では、既に発番された番号値から「DIRECTOR_ID」カラムに対する採番が行われるためである。
【００８２】
そして、「Alfred Joseph Hitchcock」のレコードに関する「FILM」テーブルの「FILM_NAME」カラムには、追加入力された「第３逃亡者」、「レベッカ」、「サイコ」、「鳥」といったデータが格納されている。また、加入力された「第３逃亡者」、「レベッカ」、「サイコ」、「鳥」に対する「FILM」テーブルの「FILM_ID」カラムには、既に発番され
た番号値から採番した「１１」、「１２」、「１３」、「１４」との番号値が順に格納されている。例えば、情報処理装置１０では、ワークシートの入力領域に対し、上位行から順に更新処理を行うため、「Alfred Joseph Hitchcock」のレコードに関する採番値は、
既存のレコード間に追加された「天国と地獄」の採番値から採番されるためである。
【００８３】
また、「Alfred Joseph Hitchcock」の追加されたレコードに関する「FILM」テーブル
の「DIRECTOR_ID」カラムには、関連元のテーブルで新たに自動採番された「３」が格納
されている。
【００８４】
そして、「Alfred Joseph Hitchcock」の追加されたレコードに関する「PRIZE」テーブルの「PRIZE_NAME」カラムには、「ゴールデングローブ賞」、「エドガー賞」とのデータが追加されている。また、「PRIZE」テーブルの「FILM_ID」カラムには、関連元のテーブルで新たに自動採番された「１３」が格納され、「SEQ_NO」カラムには、既に発番された番号値から採番した「３」、「４」が格納されている。
【００８５】
図４Ａ−４Ｄで説明したように、本実施形態の情報処理装置１０では、編集された状態のワークシートに対し、例えば、定義領域で定義されたテーブル構造を解析し、解析したテーブル構造に基づいて、追加入力、変更入力されたデータに対する更新処理を実行する。このため、本実施形態の情報処理装置１０は、更新処理であっても、登録処理と同様に、複数のテーブル間に跨るデータ間の関連性を維持した状態で、データベースに一括登録することが可能となる。
【００８６】
〔処理フロー〕
［全体処理］
以下、図５Ａ、５Ｂに例示のフローチャートを参照し、本実施形態の情報処理装置１０におけるデータベース登録処理を説明する。図５Ａ、５Ｂに例示のデータベース登録処理では、例えば、情報処理装置１０は、ワークシートの定義領域で定義されたテーブル構造を解析する。情報処理装置１０は、解析したテーブル構造に基づいて、ワークシートの入力領域に入力された各種データの、テーブル毎の登録を行う。入力データは、例えば、複数のテーブル間に跨るデータ間の関連性が維持された状態で、複数のテーブルに一括して登録される。
【００８７】
図５Ａに例示のフローチャートは、データベース登録処理のフローチャートである。図５Ａに例示のフローチャートにおいて、データベース登録処理の開始は、例えば、データベース登録処理の起動のときが例示できる。情報処理装置１０は、例えば、入力領域に各種データが記述されたワークシートを受け付ける。情報処理装置１０は、Ｓ１−Ｓ３の処理で、受け付けたワークシートの定義領域を解析し、各種データを登録するテーブル毎の内部オブジェクトを生成する。そして、情報処理装置１０は、ワークシートの定義領域に基づいて生成した内部オブジェクトをＳ４の処理に引き渡す。
【００８８】
Ｓ１の処理では、情報処理装置１０は、例えば、図３Ａに例示の定義レコードＡ１から、各種データが登録されるテーブル種別、テーブル領域等のテーブルインスタンス（Table Instance）を生成する。生成されたテーブルインスタンスは、例えば、主記憶部１２の所定の領域に一時的に記憶される。
【００８９】
Ｓ２の処理では、情報処理装置１０は、例えば、図３Ａに例示の定義レコードＡ２−Ａ６からカラム情報を特定し、特定したカラム情報をＳ１の処理で生成されたテーブルインスタンス毎に記録する。カラム情報には、例えば、テーブル毎のカラム種別、カラム種別毎のデータ形式、カラム種別毎の領域サイズ、カラム種別毎のカラム領域に対する未設定状態の許可の有無、カラム種別毎のキー要素の指定といった情報が含まれる。情報処理装置１０は、例えば、特定したカラム情報が記録されたテーブルインスタンスを主記憶部１２の所定の領域に一時的に記憶する。
【００９０】
Ｓ３の処理では、情報処理装置１０は、例えば、図３Ａに例示の定義レコードＡ７からカラム種別毎のテーブル間の関連性を特定し、特定したカラム種別毎のテーブル間の関連性に基づいて、テーブルインスタンス間に関連性を生成する。情報処理装置１０は、例えば、Ｓ２の処理でカラム情報が記録されたテーブルインスタンスを読み出し、生成したテーブルインスタンス間の関連性を記録する。テーブルインスタンス間の関連性が記録されたテーブルインスタンスは、例えば、主記憶部１２の所定の領域に一時的に記憶される。テーブルインスタンス間の関連性が記録されたテーブルインスタンスは、例えば、Ｓ４の処理に引き渡される。
【００９１】
ここで、情報処理装置１０で実行されるＳ１−Ｓ３の処理は、複数の表の要素に対応する複数要素を１行に含むシートと前記シートに含まれる各表のキーの要素及び他の表の要素への関係付けを含む定義体とを記憶部に記憶する処理の一例である。また、情報処理装置１０のＣＰＵ１１等は、複数の表の要素に対応する複数要素を１行に含むシートと前記シートに含まれる各表のキーの要素及び他の表の要素への関係付けを含む定義体とを記憶する記憶部の一例としてＳ１−Ｓ３の処理を実行する。
【００９２】
なお、図３Ａで説明したように、カラム種別に対し、キー要素の定義とカラム種別毎のテーブル間の関連性が重複して定義される場合では、カラム種別毎のテーブル間の関連性が優先される。また、図３Ａで説明したように、カラム種別毎のテーブル間の関連性は、例えば、関連元のテーブル及びカラム種別を一対として組み合わせた“関連元テーブル..関連元カラム種別”といった形式で記述される。
【００９３】
Ｓ４の処理では、情報処理装置１０は、例えば、Ｓ１−Ｓ３の処理で生成された内部オブジェクトに沿って、ワークシートの入力領域に記述された各種データのテーブル登録処理を実行する。ワークシートの入力領域に記述された各種データのテーブル登録処理は、例えば、レコード単位で行われる。
【００９４】
［登録処理］
図５Ｂに例示のフローチャートを参照し、図５Ａに例示のＳ４の入力領域のレコード登録処理を説明する。図５Ｂに例示のフローチャートにおいて、情報処理装置１０は、例えば、ワークシートの入力領域から１行分のレコードを取得し、取得したレコードの領域をテーブル領域毎に区分けする（Ｓ１１）。Ｓ１１の処理で区分けされた各テーブル領域は、例えば、図５ＡのフローチャートのＳ２の処理で特定されたカラム種別毎のカラム領域を含む。
【００９５】
情報処理装置１０は、例えば、Ｓ１１の処理で区分けされた各テーブル領域に対し、１テーブル領域分に相当するレコード領域の入力データを取得する（Ｓ１２）。情報処理装置１０は、例えば、Ｓ１２の処理で取得したレコード領域が空欄状態であるか否かを判定する（Ｓ１３）。Ｓ１３の処理では、情報処理装置１０は、Ｓ１１の処理で区分けされたテーブル領域内のカラム種別毎のカラム領域に記述された入力データが未設定状態であることを判定する。
【００９６】
情報処理装置１０は、例えば、Ｓ１２の処理で取得したレコード領域が空欄状態である場合には（Ｓ１３、ＹＥＳ）、Ｓ１４−Ｓ３０の処理をスキップし、Ｓ３１の処理に移行する。一方、情報処理装置１０は、例えば、Ｓ１２の処理で取得したレコード領域が空欄状態でない場合には（Ｓ１３、ＮＯ）、Ｓ１４の処理に移行する。
【００９７】
Ｓ１４の処理では、情報処理装置１０は、例えば、Ｓ１２の処理で取得したレコード領域に対応するテーブルのレコードインスタンスを生成する。Ｓ１４の処理で生成されるレコードインスタンスには、例えば、カラム種別、カラム種別毎のデータ形式、カラム種別毎の領域サイズ、カラム種別毎のカラム領域に対する未設定状態の許可の有無、カラム種別毎のキー要素の指定といった情報が含まれる。また、Ｓ１４の処理で生成されるレコードインスタンスには、カラム種別毎のテーブル間の関連性を指し示す情報が含まれる。
【００９８】
また、Ｓ１４の処理において、情報処理装置１０は、例えば、Ｓ１２の処理で取得したレコード領域に対応するテーブルのカラム種別と、該カラム種別に記述された入力データとを組み合わせて対としたペア情報を生成する。例えば、Ｓ１２の処理で取得したレコード領域に対応するテーブルのカラム種別を、“colＮ”（Ｎは整数値であり、テーブル毎
のカラム種別数）とし、カラム種別に対応するカラム領域に記述されたデータを“valＮ
”とする。情報処理装置１０は、Ｓ１４の処理において、例えば、カラム種別数に応じた、｛｛col１，val１｝｛col２，val２｝・・・｛colＮ，valＮ｝｝といったペア情報を生成する。
【００９９】
また、Ｓ１４の処理において、情報処理装置１０は、例えば、データの更新登録を指し示す“update_flag”を「０」に設定する。例えば、図３Ａに例示の、定義領域と入力領
域を含むワークシートは、入力データの新規登録及び更新登録に共用されるからである。
【０１００】
図５Ｂに例示のフローチャートにおいて、情報処理装置１０は、例えば、Ｓ１４の処理で生成したペア情報の中から処理対象のペア情報を取得する（Ｓ１５）。そして、情報処理装置１０は、例えば、Ｓ１５の処理で取得したペア情報のカラム種別の属性を判定する（Ｓ１６）。Ｓ１６の処理では、情報処理装置１０は、処理対象とするペア情報に含まれるカラム種別に対して、キー要素の定義付け、テーブル間の関連性の定義付けが行われているかを判定する。
【０１０１】
例えば、情報処理装置１０は、Ｓ１５の処理で取得したペア情報のカラム種別の属性にテーブル間の関連性の定義付けが行われている場合には（Ｓ１６、“colにrelationが定
義”）、Ｓ１７−Ｓ１９の処理を実行する。また、例えば、情報処理装置１０は、Ｓ１５の処理で取得したペア情報のカラム種別の属性にキー要素の定義付けが行われている場合には（Ｓ１６、“colがkeyとして定義”）、Ｓ２０−Ｓ２２の処理を実行する。また、例えば、情報処理装置１０は、Ｓ１５の処理で取得したペア情報のカラム種別の属性にテーブル間の関連性、キー要素の定義付けが行われていない場合には（Ｓ１６、“relation 
，keyの定義なし”）、Ｓ２３−Ｓ２５の処理を実行する。
【０１０２】
（テーブル間の関連性の処理）
Ｓ１７の処理では、情報処理装置１０は、例えば、Ｓ１５の処理で取得したペア情報のデータが空欄状態（未設定状態）であるかを判定する。情報処理装置１０は、例えば、Ｓ１５の処理で取得したペア情報のデータが空欄状態でない場合には（Ｓ１６、ＮＯ）、ペア情報のデータをカラム種別に対応するデータとして設定し、“update_flag”に「１」
を設定する（Ｓ１８）。情報処理装置１０は、例えば、Ｓ１８の処理結果を主記憶部１２の所定の領域に一時的に格納し、Ｓ２６の処理に移行する。
【０１０３】
一方、情報処理装置１０は、例えば、Ｓ１５の処理で取得したペア情報のデータが空欄
状態の場合には（Ｓ１６、ＹＥＳ）、Ｓ１９の処理に移行する。Ｓ１９の処理では、情報処理装置１０は、例えば、関連元のテーブルインスタンスから、親となるレコードインスタンスを特定する。情報処理装置１０は、例えば、図５ＡのＳ３の処理で特定されたカラム種別毎のテーブル間の関連性に基づいて、関連元のテーブルインスタンスの親となるレコードインスタンスを特定する。そして、情報処理装置１０は、例えば、特定されたレコードインスタンスのＩＤを、ペア情報のカラム種別に対応するデータとして設定する。情報処理装置１０は、例えば、Ｓ１９の処理結果を主記憶部１２の所定の領域に一時的に格納し、Ｓ２６の処理に移行する。
【０１０４】
（キー要素の処理）
Ｓ２０の処理では、情報処理装置１０は、例えば、Ｓ１５の処理で取得したペア情報のデータが空欄状態（未設定状態）であるかを判定する。情報処理装置１０は、例えば、Ｓ１５の処理で取得したペア情報のデータが空欄状態でない場合には（Ｓ２０、ＮＯ）、ペア情報のデータをカラム種別に対応するデータとして設定し、“update_flag”に「１」
を設定する（Ｓ２１）。情報処理装置１０は、例えば、Ｓ２１の処理結果を主記憶部１２の所定の領域に一時的に格納し、Ｓ２６の処理に移行する。
【０１０５】
一方、情報処理装置１０は、例えば、Ｓ１５の処理で取得したペア情報のデータが空欄状態の場合には（Ｓ２０、ＹＥＳ）、Ｓ２２の処理に移行する。Ｓ２２の処理では、情報処理装置１０は、例えば、自動採番されるｋｅｙの値を生成し、生成したｋｅｙの値をＳ１４の処理で生成したレコードインスタンスのＩＤとして設定する。なお、Ｓ２２の処理の自動採番では、例えば、既に発番された番号値から採番処理が行われる。情報処理装置１０は、例えば、Ｓ１９の処理結果を主記憶部１２の所定の領域に一時的に格納し、Ｓ２６の処理に移行する。
【０１０６】
（キー要素、関連性の定義なしの処理）
Ｓ２３の処理では、情報処理装置１０は、例えば、Ｓ１５の処理で取得したペア情報のデータのチェックを行う。ペア情報のデータのチェックは、例えば、ペア情報のカラム種別に定義されたデータ形式、領域サイズとの比較で行われる。情報処理装置１０は、例えば、ペア情報のデータがペア情報のカラム種別に定義されたデータ形式、領域サイズに適合しない場合には（Ｓ２４、“ＮＧ”）、Ｓ３４の処理に移行し、エラー情報をエラーログに出力する。
【０１０７】
一方、情報処理装置１０は、例えば、ペア情報のデータがペア情報のカラム種別に定義されたデータ形式、領域サイズに適合する場合には（Ｓ２４、“ＯＫ”）、Ｓ２５の処理に移行する。Ｓ２５の処理では、情報処理装置１０は、例えば、ペア情報のデータをカラム種別に対応するデータとして設定する。情報処理装置１０は、例えば、Ｓ２５の処理結果を主記憶部１２の所定の領域に一時的に格納し、Ｓ２６の処理に移行する。
【０１０８】
Ｓ２６の処理では、情報処理装置１０は、例えば、Ｓ１４の処理で生成したレコードインスタンスに対し、全てのカラム種別に対する処理が行われたか否かを判定する（Ｓ２６）。情報処理装置１０は、例えば、Ｓ１４の処理で生成したペア情報に対し、対象となるペア情報が存在しないことを判定する。情報処理装置１０は、例えば、Ｓ１４の処理で生成したペア情報に対し、対象となるペア情報が存在する場合には（Ｓ２６、ＮＯ）、Ｓ１５の処理に移行し、Ｓ１５−Ｓ２６の処理を繰り返す。
【０１０９】
一方、情報処理装置１０は、例えば、Ｓ１４の処理で生成したペア情報に対し、対象となるペア情報が存在しない場合には（Ｓ２６、ＹＥＳ）、Ｓ２７の処理に移行する。Ｓ２７の処理では、情報処理装置１０は、例えば、Ｓ１２の処理でレコードの取得対象となったテーブルインスタンスに対して、Ｓ１４の処理で生成されたレコードインスタンスを親
として設定する。情報処理装置１０は、例えば、Ｓ２７の処理結果を主記憶部１２の所定の領域に一時的に格納し、Ｓ２８の処理に移行する。
【０１１０】
Ｓ２８−Ｓ３０の処理では、情報処理装置１０は、例えば、“update_flag”に設定さ
れた値に基づいて、データ登録のためのクエリを生成する。Ｓ２８の処理では、情報処理装置１０は、例えば、“update_flag”に設定された値が「１」か否かを判定する。
【０１１１】
情報処理装置１０は、例えば、“update_flag”に設定された値が「１」の場合には（
Ｓ２８、ＹＥＳ）、Ｓ２９の処理に移行し、データ更新のためのUPDATE用クエリを生成し、Ｓ１４の処理で生成したレコードインスタンスと対応付けて登録する。情報処理装置１０は、例えば、Ｓ２９の処理結果を、例えば、主記憶部１２の所定の記憶領域に一時的に格納し、Ｓ３１の処理に移行する。
【０１１２】
一方、情報処理装置１０は、例えば、“update_flag”に設定された値が「０」の場合
には（Ｓ２８、ＮＯ）、Ｓ３０の処理に移行し、データ登録のためのINSERT用クエリを生成し、Ｓ１４の処理で生成したレコードインスタンスと対応付けて登録する。情報処理装置１０は、例えば、Ｓ３０の処理結果を、例えば、主記憶部１２の所定の記憶領域に一時的に格納し、Ｓ３１の処理に移行する。
【０１１３】
Ｓ３１の処理では、情報処理装置１０は、例えば、Ｓ１１の処理で処理対象となったレコードに対し、全てのテーブル領域に対する処理が行われたか否かを判定する（Ｓ３１）。情報処理装置１０は、例えば、Ｓ１１の処理で処理対象となったレコードに対し、処理対象となるテーブル領域が存在する場合には（Ｓ３１、ＮＯ）、Ｓ１２の処理に移行し、Ｓ１２−Ｓ３１の処理を繰り返す。一方、情報処理装置１０は、例えば、Ｓ１１の処理で処理対象となったレコードに対し、処理対象となるテーブル領域が存在しない場合には（Ｓ３１、ＹＥＳ）、Ｓ３２の処理に移行する。
【０１１４】
Ｓ３２の処理では、情報処理装置１０は、例えば、ワークシートの入力領域の全ての行の読み込みが完了したかを判定する。情報処理装置１０は、例えば、ワークシートの入力領域の全ての行の読み込みが完了していない場合には（Ｓ３２、ＮＯ）、Ｓ１１の処理に移行し、Ｓ１１−Ｓ３２の処理を繰り返す。
【０１１５】
一方、情報処理装置１０は、例えば、ワークシートの入力領域の全ての行の読み込みが完了した場合には（Ｓ３２、ＹＥＳ）、Ｓ３３の処理に移行する。Ｓ３３の処理では、情報処理装置１０は、例えば、Ｓ１１−Ｓ３２の処理で生成された、UPDATE用クエリ、INSERT用クエリを一括して実行する。情報処理装置１０は、Ｓ３３の処理により、例えば、ワークシートに入力された各種データを、数のテーブル間に跨るデータ間の関連性を維持した状態で、ＲＤＢ方式によりデータ管理が行われるデータベースに一括登録・更新することができる。
【０１１６】
ここで、情報処理装置１０で実行されるＳ１１−Ｓ３３の処理は、前記定義体に従ってシートの各行について、各表に対応するキーと他の表の要素への関係付けを生成して出力する処理の一例である。また、情報処理装置１０のＣＰＵ１１等は、前記定義体に従ってシートの各行について、各表に対応するキーと他の表の要素への関係付けを生成して出力する出力部の一例としてＳ１１−Ｓ３３の処理を実行する。
【０１１７】
また、情報処理装置１０で実行されるＳ１７−Ｓ１８の処理は、前記行の、前記他の表の要素への関係付けに対応する領域の、データ設定の状態に応じて更新登録を判定する処理の一例である。また、情報処理装置１０のＣＰＵ１１等は、前記行の、前記他の表の要素への関係付けに対応する領域の、データ設定の状態に応じて更新登録を判定する判定部
の一例としてＳ１７−Ｓ１８の処理を実行する。
【０１１８】
また、情報処理装置１０で実行されるＳ２０−Ｓ２１の処理は、前記行の、前記複数の表のキーの要素に対応する領域の、データ設定の状態に応じて更新登録を判定する処理の一例である。また、情報処理装置１０のＣＰＵ１１等は、前記行の、前記複数の表のキーの要素に対応する領域の、データ設定の状態に応じて更新登録を判定する判定部の一例としてＳ２０−Ｓ２１の処理を実行する。
【０１１９】
以上、説明したように、本実施形態の情報処理装置１０では、例えば、ワークシートの定義領域で定義されたテーブル構造を解析することができる。情報処理装置１０は、解析したテーブル構造に基づいて、例えば、ワークシートの入力領域に入力された各種データのテーブル割り付けを、複数のテーブル領域を含むレコード単位で処理することができる。情報処理装置１０は、例えば、テーブル割り付けされた各種データを、複数のテーブル間に跨るデータ間の関連性を維持した状態で、データベースに一括登録することができる。また、情報処理装置１０は、キー要素、テーブル間の関連性を定義付けしたカラム種別に対応するカラム領域の状態から、データ更新に係るレコードを特定できる。情報処理装置１０は、データ更新に係るレコードに対し、更新登録用のクエリを生成することができる。そして、情報処理装置１０は、生成した更新登録用のクエリを含むデータ登録用のクエリを一括して実行することができる。この結果、本実施形態の情報処理装置１０は、複数のテーブル間に跨るデータ間の関連性を維持した状態で、ワークシートの入力領域に入力された各種データを、データベースに一括登録・更新することが可能となる。本実施形態の情報処理装置１０では、複数のテーブルに含まれるデータのデータベースへ、データ間の整合性を確保した状態で登録・更新を行うことができる。
【０１２０】
《コンピュータが読み取り可能な記録媒体》
コンピュータその他の機械、装置（以下、コンピュータ等）に上記いずれかの機能を実現させるプログラムをコンピュータ等が読み取り可能な記録媒体に記録することができる。そして、コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。
【０１２１】
ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる記録媒体をいう。このような記録媒体のうちコンピュータ等から取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ／Ｗ、ＤＶＤ、ブルーレイディスク、ＤＡＴ、８ｍｍテープ、フラッシュメモリなどのメモリカード等がある。また、コンピュータ等に固定された記録媒体としてハードディスクやＲＯＭ等がある。
【０１２２】
《その他》
以上の実施形態は、さらに以下の付記と呼ぶ態様を含む。以下の各付記に含まれる構成要素は、他の付記に含まれる構成と組み合わせることができる。
（付記１）
コンピュータに、
複数の表の要素に対応する複数要素を１行に含むシートと前記シートに含まれる各表のキーの要素及び他の表の要素への関係付けを含む定義体とを記憶部に記憶する処理と、
前記定義体に従ってシートの各行について、各表に対応するキーと他の表の要素への関係付けを生成して出力する処理と、
を実行させるためのプログラム。
（付記２）
前記行の、前記他の表の要素への関係付けに対応する領域の、データ設定の状態に応じ
て更新登録を判定する処理を、さらに実行させる付記１に記載のプログラム。
（付記３）
前記行の、前記複数の表のキーの要素に対応する領域の、データ設定の状態に応じて更新登録を判定する処理を、さらに実行させる付記１または２に記載のプログラム。
（付記４）
コンピュータが、
複数の表の要素に対応する複数要素を１行に含むシートと前記シートに含まれる各表のキーの要素及び他の表の要素への関係付けを含む定義体とを記憶部に記憶する処理と、
前記定義体に従ってシートの各行について、各表に対応するキーと他の表の要素への関係付けを生成して出力する処理と、
を実行する処理方法。
（付記５）
複数の表の要素に対応する複数要素を１行に含むシートと前記シートに含まれる各表のキーの要素及び他の表の要素への関係付けを含む定義体とを記憶する記憶部と、
前記定義体に従ってシートの各行について、各表に対応するキーと他の表の要素への関係付けを生成して出力する出力部と、
を備える情報処理装置。
【符号の説明】
【０１２３】
１  情報処理システム
１０  情報処理装置
１１  ＣＰＵ
１２  主記憶部
１３  補助記憶部
１４  入力部
１４ａ  キーボード
１４ｂ  マウス
１５  出力部
１５ａ  ＬＣＤ
１６  通信部
２０  記憶装置
１０１  解析処理部
１０２  登録処理部
【図１】
2015191258.tif 000003
【図２】
2015191258.tif 000004
【図３Ａ】
2015191258.tif 000005
【図３Ｂ】
2015191258.tif 000006
【図３Ｃ】
2015191258.tif 000007
【図４Ａ】
2015191258.tif 000008
【図４Ｂ】
2015191258.tif 000009
【図４Ｃ】
2015191258.tif 000010
【図４Ｄ】
2015191258.tif 000011
【図５Ａ】
2015191258.tif 000012
【図５Ｂ】
2015191258.tif 000013