JP4501459B2 - クロス表作成のためのプログラム及び方法及び装置 - Google Patents

クロス表作成のためのプログラム及び方法及び装置 Download PDF

Info

Publication number
JP4501459B2
JP4501459B2 JP2004050312A JP2004050312A JP4501459B2 JP 4501459 B2 JP4501459 B2 JP 4501459B2 JP 2004050312 A JP2004050312 A JP 2004050312A JP 2004050312 A JP2004050312 A JP 2004050312A JP 4501459 B2 JP4501459 B2 JP 4501459B2
Authority
JP
Japan
Prior art keywords
data
column
attribute
header
row
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.)
Expired - Fee Related
Application number
JP2004050312A
Other languages
English (en)
Other versions
JP2005242587A (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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation 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 Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP2004050312A priority Critical patent/JP4501459B2/ja
Publication of JP2005242587A publication Critical patent/JP2005242587A/ja
Application granted granted Critical
Publication of JP4501459B2 publication Critical patent/JP4501459B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

本発明は、リレーションが含むデータ群の関係を表現したクロス表の作成のための技術に関する。
関係(リレーショナル)データベース(以下「RDB」と略す)は、代表的なデータベース形式として広く用いられている。RDBが格納するデータ群は、同じ列には同じデータ属性のデータが並び、同じ行には同じ主体に関するデータが並んだ表(テーブル)形式で表現できる。このような表を構成し得るデータの集まりは「リレーション」と呼ばれる。これに対し、クロス表とは、ピボット表又はマトリクス表とも呼ばれ、基本的には、2つの質的データ(すなわち属性)の関係を見るためにそれぞれの属性の項目の組合せに対し、当てはまる度数を記入したものである。すなわち、クロス表では、行見出しと列見出しにそれぞれ異なる属性が割り当てられ、行見出しと列見出しの交わりとなる欄(セル)にそれら両属性に対応するデータ値が登録される。クロス表の中には、行見出し又は列見出しの一方又は両方を多階層の見出しにした多次元のクロス表(多次元表とも呼ばれる)もある。RDBすなわちリレーションのデータ形式そのものは人間にとって必ずしも分かりやすいものではないのに対し、クロス表は属性間の関係を人間に分かりやすく表示するものである。このため、従来より、RDB乃至リレーションのデータをクロス表に変換するための装置、方法が提案されている。
特許文献1には、データファイルに格納されている各種のデータから二次元に分類された表(クロス帳票)を作成する計算機システムにおいて、表の縦方向に分類すべき項目と横方向に分類すべき項目をユーザに指定させ、その指定に従って表を作成する方式が示されている。
また特許文献2には、クロス表の見出し部分はユーザが入力しておき、RDBのどのデータとクロス表のどの見出しが対応するかを、ユーザがGUI(グラフィカル・ユーザインタフェース)を用いて指定するシステムが開示されている。
特開平1−237878号公報 特開平7−295776号公報
上記従来技術は、いずれも、クロス表の見出しの各項目とデータベースのデータとの対応付けをユーザが行わなければならず、ユーザの負担が大きい。
また、特許文献1の方式では、個々のデータそのものでない「属性」や、表の個々のセルではない「行見出し」、「列見出し」等といった抽象的なレベルで指定を行う必要があるため、ユーザにとって必ずしも分かりやすいとは言えなかった。また、処理対象のデータベースの表に明示的に属性が付与されていない場合も一般にはあり得るが、このような場合、特許文献1の方式ではそもそも取り扱えないという問題がある。
また、特許文献2の方式は、GUIによるドラッグ・アンド・ドロップといった比較的簡便な操作で、クロス表の見出し項目とRDBのデータとを対応づけられるという点では便利であるが、その対応付けに先立って、クロス表の行見出し及び列見出しをユーザが予め作成しておかなければならないという煩雑さがある。また、この方式も、RDBのデータに対し明示的に属性名が与えられていない場合には、ユーザにとって対応付けがしづらいという問題がある。
本発明は、ユーザによる見出し項目の作成や対応付けの作業を軽減できる、クロス表作成のための技術を提供するものである。
本発明に係るプログラムは、コンピュータシステムレコードごとに当該レコードの各データ属性のデータ値を含んだリレーションの例データと、当該リレーションの例データに対応するクロス表の例データであって、1以上の列見出し項目を含んだ列見出し部と、1以上の行見出し項目を含んだ行見出し部と、前記各列見出し項目と前記各行見出し項目との組み合わせごとに当該組み合わせに該当するデータ値を含んだデータ部と、を有するクロス表の例データと、を取得する例データ取得部、前記リレーションの例データに含まれるデータ属性のなかから、前記クロス表の例データの前記行見出し部に含まれる行見出し項目群に対応するデータ値群を含んだデータ属性を行見出し属性と判別し、前記クロス表の例データの前記列見出し部に含まれる列見出し項目群に対応するデータ値群を含んだデータ属性を列見出し属性と判別し、前記クロス表の例の前記データ部に含まれるデータ値群に対応するデータ値群を含んだデータ属性をデータ部属性と判別する対応関係検出部、レコードごとに当該レコードの各データ属性のデータ値を含んだ処理対象のリレーションデータを取得する対象リレーション取得部、前記処理対象のリレーションデータをクロス表データに変換するクロス表作成部、として機能させるプログラムであって、前記クロス表作成部は、前記処理対象のリレーションデータに含まれるデータ属性のうち、前記対応関係検出部が前記行見出し属性と判別したデータ属性の各データ値を、それぞれ変換先のクロス表データの行見出し部の各見出し項目とし、前記処理対象のリレーションデータに含まれるデータ属性のうち、前記対応関係検出部が前記列見出し属性と判別したデータ属性の各データ値を、それぞれ前記変換先のクロス表データの列見出し部の各見出し項目とし、前記処理対象のリレーションデータに含まれるデータ属性のうち、前記対応関係検出部が前記データ部属性と判別したデータ属性の各データ値を、前記変換先のクロス表データのデータ部のうちの、前記処理対象のリレーションデータにおける当該データ値が含まれるレコードのうちの前記行見出し属性のデータ値に該当する行見出し項目と、当該レコードのうちの前記列見出し属性のデータ値に該当する列見出し項目と、の組み合わせに該当するデータ値とする、ことを特徴とするプログラムである。
この構成において、「リレーション」とは、n個の属性から一つづつ取り出した値からなる組(レコード)の集まりである。また、本明細書において、「クロス表」とは、各欄(セル)の意味づけを、そのセルに対応する行見出しと列見出しとの組合せにより示した2次元の表である。行見出し又は列見出しの一方乃至両方が2階層以上の見出し構造となった多次元的な表も、クロス表の一種である。「出現データ」とは、一括りのデータ群(例えば「リレーションの例におけるデータ属性ごとのデータ群」や「クロス表の例の行見出し部」に属するデータ群)の中に現れる(すなわち、含まれる)データのことである。
本発明の好適な態様では、前記対応関係検出部は、前記リレーションの例データのデータ属性ごとに、前記クロス表の例データの行又は列の中から、該データ属性のデータ群に含まれるすべてのデータ値を含む行又は列を探索し、この探索により見つかったクロス表の例データの行を列見出し部と判定すると共にその行に対応するデータ属性のデータ群が列見出し部に対応すると判断し、その探索により見つかったクロス表の例データの列を行見出し部と判定すると共にその列に対応するデータ属性のデータ群が行見出し部に対応すると判断する。
この態様は、クロス表の例として、どの行が行見出しでどの列が列見出しかが分からないものが与えられた場合にも対応できる。
また、別の好適な態様では、前記対応関係検出部は、前記リレーションの例データが構成する表の列ごと及び行ごとの各データ群を前記クロス表の例データの行ごと及び列ごとの各データ群とそれぞれ比較することで、前記リレーションの例データが構成する表の各列又は各行と前記クロス表の例データの各行又は各列との間で、含んでいるデータ値群が一致するペアを求め、求めたペアのうちのいずれかのペアに該当する前記クロス表の例データの行のデータ群を該クロス表の例データの列見出し部と判別し、求めたペアのうちのいずれかのペアに該当する前記クロス表の例データの列のデータ群を該クロス表の例データの行見出し部と判別する。

この態様は、リレーションの例として、その例が構成する表の行と列のどちらがデータ属性を示しているかがわからないものが与えられた場合にも対応できる。
以下、図面を参照して、本発明を実施するための最良の形態(以下「実施形態」と呼ぶ)を説明する。
図1は、本発明に係るクロス表作成装置の概略構成を示す機能ブロック図である。
図1においてUI部10は、クロス表作成の指示、及びクロス表作成に必要なデータの入力をユーザから受け付けるユーザインタフェース手段である。ここでクロス表作成に必要なデータには、リレーションの例、これに対応するクロス表の例、及び処理対象のリレーションがある。このうちリレーション例とクロス表例は、リレーションとクロス表の関係を示すいわば簡単な例題であり、リレーションのデータ列とクロス表の各構成部分(行見出し部や列見出し部、データ部)との対応関係を判別するために用いられる。これらの例から求められた対応関係の情報を用いて、処理対象のリレーションに対応するクロス表が作成される。
これらリレーション例、クロス表例、処理対象リレーションとしては、ファイルシステム12に既に登録されているファイルを指定することができる。UI部10は、それら各データのファイル格納場所(パス)を入力する欄を提供する。また、リレーション例及びクロス表例については、ファイル格納場所の指定の代わりに、具体的なデータそのものを入力するための入力画面を提供するようにしてもよい。
対応関係検出部14は、入力されたリレーション例及びクロス表例に基づき、リレーション(又はそれが格納されるRDB)のデータ構造の各列と、クロス表の各構成部分との対応関係を求める。求められた対応関係の情報は、対応関係記憶部16に記憶される。
クロス表作成部18は、対応関係記憶部16内の対応関係情報を参照することで、入力された処理対象リレーションのデータ群からクロス表を作成する。
図1に示すクロス表作成装置は、典型的には、コンピュータシステムに対し、UI部10,対応関係検出部14及びクロス表作成部18の機能を記述したプログラムを実行させることで実現される。各部の詳細については以下に説明する。
まず図2〜図4を参照して、対応関係検出部14が行う処理について説明する。図2は対応関係検出部14の処理手順を示すフローチャート、図3はリレーション例100のデータ内容を示す図、図4はそのリレーション例100に対応するクロス表例200のデータ内容を示す図である。
図3のリレーション例100は、各人の月ごとの残業時間を記録したリレーションの例であり、1つのレコード(行)は各人の名前、月度、残業時間の3つの属性の値を持っている。リレーションは、図3に示すように、行及び列からなる2次元の表形式で表現することができる。ここでは、リレーションが構成する2次元の表のうち、同一属性の値の並びを「列」とし、もう一方の方向の値の並びを「行」とする。すなわち、この説明においてリレーションが成す表の「列」とは、リレーションにおける同一属性のデータの集まり(グループ)と同じ意味である。各属性の属性名が明示的に示されていないリレーションもあるが、レコード内でのデータの並び順が決まっていればその並び順に従って同一属性の「列」を規定することができる(なお、リレーションが、行と列のどちらが上述の「同一属性の『列』」か分からない2次元の表として与えられる場合も考えられるが、そのような場合の対処については後で例を挙げて説明する)。また個々のレコードの各データ項目にそれぞれ明示的に属性名が付されているような場合もあり、このような場合なら当然に同一属性の「列」を規定することができる。一方図4のクロス表例200は、名前を行見出し、月度を列見出しとしたクロス表形式でそのリレーション例100を表したものである。
これらリレーション例100及びクロス表例200を参照しつつ、図2の処理手順を説明していく。
対応関係検出部14は、リレーション例100及びクロス表例200を取得すると(S10)、リレーション例100の第1行の各列のデータが、すべて文字列かどうかを判定する(S12)。そして、すべて文字列であれば、第1行目の各列のデータを、それぞれその列の属性名として認識し(S14)、第2行以下がリレーション例100の実体データ部分であると認識する。
リレーションからクロス表を作成する場合、リレーションの各列をクロス表200の行見出し部202、列見出し部204、データ部206に対応づけるわけであるが、一般にデータ部206は数値データであることが多いので、属性名の行を除いたリレーションの実体データ部分のうち少なくとも1列は数値データになることが一般的である。したがって逆に考えれば、第1行のすべての列のデータが文字列であれば、第1行は属性名の行であると判断できるわけである。
なお、仮に実体データ部分に数値データがいっさい現れないリレーションの場合は、S12の判断は使えない。しかし、リレーションでは、図3の例の第1列や第2列のデータを見れば分かるように、実体データ部分の同じ列には同じ値が繰り返し現れることが多い。このことから、第1行の各列のデータ値がすべて、同じ列の第2行以下に出現しないものである場合には、第1行を属性名の行と判定すればよい。
次に、リレーション例100の実体データ部分を列ごと(すなわち属性ごと)にグループ分けする(S16)。すなわち、実体データ部分の1つの列を構成するデータの集まりを1つのグループとする。そして、それら各グループと、クロス表例200の各行及び各列のデータ群のデータ群とを互いに照合することで、リレーション例100のグループごとに、そのグループに現れるデータのすべてが現れるクロス表例200の行又は列を探索する(S18)。この探索により見つかった「リレーション例100中のグループ」と「クロス表例200中の行又は列」とが、対応関係にあるペアと認識される。図3及び図4の例では、リレーション例100の第1列に現れる「伊藤」、「鈴木」というすべてのデータ値が、クロス表例200の第1列に現れており、両者はペアと認識される。同様にリレーション例100の第2列のデータはすべてクロス表例200の第1行に現れており、これらもペアを成すと認識される。この他には、リレーション例のグループと、その出現データのすべてが現れるクロス表の行又は列、というペアは見つからない。
次に、S18で求めた各ペアに含まれるクロス表例200の列を行見出し部202と判定し、S18で求められた各ペアに含まれるクロス表例200の行を列見出し部204と判定する(S20)。図3及び図4の例では、クロス表例200の列を含むペアが1つと、行を含むペアが1つ検出されるので、クロス表例200の行見出し及び列見出しは共に1階層であることがわかる。行見出し又は列見出しが複数階層になる場合については、あとで具体例を説明する。そして、それら各ペアに含まれるリレーション例100の各列を、それぞれクロス表例200の行見出し部202又は列見出し部204に対応する列と認識する(S20)。これで、リレーションの列とクロス表の行見出し部、列見出し部との対応関係が判明したことになる。図3及び図4の例では、リレーション例100の第1列「名前」がクロス表例200の行見出し部202に、第2列「月度」が列見出し部204に、それぞれ対応することが分かる。
なお、与えられるクロス表例のデータによっては、そのデータ構造上、行見出し部、列見出し部等といった構成部分の種別が明示されているもの、或いは各データ毎にそれが行見出しなのか列見出しなのかといった種別属性が明示されているもの、もありえる。そのようなものについては、行見出し部に現れるデータを含んだ列(すなわち同一属性のデータの集まり)をリレーション例100から探索し、見つかった列に現れるデータがすべてその行見出し部に現れていることが確認されれば、その列と行見出し部とが対応すると判定すればよい。列見出し部、データ部についても同様である。
このように、クロス表例200の行見出し部202及び列見出し部204に対応するリレーション例100の列が特定されると、それら特定された列以外の残りの列(残りの列が複数あればそのうちのいずれか1つ)が、クロス表例200のデータ部206に対応することが分かる。ここでデータ部206は、クロス表例200から行見出し部202及び列見出し部204を削除した残りの部分である。
そこでS22では、リレーション例100におけるグループ(列)のうち、行見出し部202及び列見出し部204にそれぞれ対応するものを除いた各グループを、クロス表例200のデータ部206と照合することにより、出現するデータがすべてデータ部206に現れるグループを探索する。この探索により見つかったグループに対応する列が、データ部206に対応すると認識される。図3及び図4の例では、リレーション例100の第3列「残業時間」に現れるデータが、クロス表例200のデータ部206にすべて出現しており、これらが対応するペアとなる。
そしてS24では、S20及びS22で求められた、クロス表の各構成部分(行見出し部、列見出し部、データ部)と、リレーションの各列との対応関係を示す情報を、対応関係記憶部16に登録する。図5は、図3及び図4の例を処理したときに求められる対応関係情報のデータ内容を示している。この例はリレーション例100の各列に属性名が付されているので、図5の対応関係情報ではリレーションの列は属性名によって表される。すなわち、クロス表の各構成部分とリレーションの属性名との対応が、対応関係情報に示されることになる。なお、リレーション例100に属性名が付されていない場合は、図6に示すように、クロス表の各構成部分とリレーションの列番号との対応を示す対応関係情報が作成される。
以上が、対応関係検出部14の処理の内容である。このような処理により、対応関係情報が作成されると、次にクロス表作成部18により、処理対象リレーションに対応するクロス表の作成が行われる。この処理の手順を図7に示す。
この処理では、クロス表作成部18は、処理対象リレーションを取得すると(S30)、対応関係記憶部16に登録された対応関係情報を参照して、クロス表の行見出し部、列見出し部、及びデータ部にそれぞれ対応する処理対象リレーションの列を特定する(S32)。ここで言う処理対象リレーションの「列」も、リレーション例100の場合と同様、属性を同じくするデータの集まりである。
ここで、リレーション例及び処理対象リレーションに明示的に属性名が付与されている場合は、リレーション例と処理対象リレーションとで列の順序が異なっている場合でも、S32の処理は可能である。すなわち、この場合、図5のように、クロス表の各構成部分とリレーションの各列の属性名を対応づけて管理しているので、処理対象リレーションの各列の属性名を見れば、それら各列をクロス表の各構成部分に対応づけることができるので、列の並びがリレーション例と変わっていても問題ない。例えば、図8に示すように、図3のリレーション例100とは、列(属性)の並びが異なる処理対象リレーション300が与えられても、クロス表の作成を正しく行うことができる。
次にクロス表作成部18は、行見出し部及び列見出し部にそれぞれ対応する処理対象リレーションの列のデータ群から、クロス表の行見出し部と列見出し部を作成する(S34)。すなわち、処理対象リレーションのうち、行見出し部に対応すると判定された列の各データをそれぞれ行見出しとして並べることでクロス表の行見出し部を、列見出し部に対応すると判定された列の各データをそれぞれ列見出しとして並べることでクロス表の列見出し部を、それぞれ作成する。
そして、クロス表作成部18は、処理対象リレーションのうちクロス表のデータ部に対応する列の各データを、クロス表における行見出しと列見出しの組合せに従って配列することで、クロス表のデータ部を作成する(S36)。すなわちここでは、データ部に対応する列の個々のデータは、処理対象リレーション中でそのデータと同一の行に含まれる行見出しのデータと列見出しのデータの組合せに従って、クロス表のデータ部に配列される。
以上のような処理により、処理対象リレーションに対応するクロス表が自動生成される。例えば図8に示す内容の処理対象リレーション300が与えられた場合には、図9に示すようなクロス表が求められる。
以上説明したように、本実施形態では、事例として与えられたリレーション例とこれに対応するクロス表例から、リレーション例の各列とクロス表例の各構成部分(すなわち)行見出し部、列見出し部、データ部)との対応関係を自動検出することができ、その対応関係に基づき、処理対象のリレーションからクロス表を自動生成することができる。
また本実施形態では、「リレーションは同一データ属性のデータ群を列とする表と捉えることができる」というリレーションのデータ構造の性質、「クロス表には行見出し部となる列と、列見出し部となる行とが存在し、それら行見出し部と列見出し部を除いた部分がデータ部となる」というクロス表のデータ構造の性質に基づき、与えられたリレーション例とクロス表例からリレーションのデータ属性とクロス表の各構成部分との対応関係を検出することができる。
このように本実施形態によれば、元となるリレーションとそれから作りたいクロス表の具体的な事例を装置に入力することで、リレーションとクロス表の構造上の関係づけを行うことができる。ユーザにとっては「このようなデータ(リレーション例)をこのような表(クロス表例)にして欲しい」という即物的なイメージは想起しやすいので、「列見出し」や「行見出し」、「属性」といった抽象構造レベルでの対応付けを求められる従来の装置よりも、本実施形態の装置の方がユーザにとって取り扱いやすい。
また、リレーション例やクロス表例として、以前に作成したリレーションやこれに対応するクロス表のデータを利用することもできる。
以上の説明で用いた図3及び図4の例では、リレーション例100及び処理対象リレーションの双方に、各データ属性の属性名が明示されていたが、このような属性名の明示がない場合でも、リレーション例100と処理対象リレーションとの間で各属性の並び順(すなわち列の並び順)が一致していれば、前述した図6の対応関係情報を用い、処理対象リレーションからクロス表を作成することができる。
また以上の説明で用いた図3及び図4の例では、リレーション例100のすべての列(すなわちすべての属性)がクロス表例200の構成部分のいずれかに対応づけられたが、リレーションの列の中に対応づけられないものが出る場合でも、上記実施形態の処理はそのまま適用できる。例えば、図10に示したようなリレーション例100a(図3の例に対し「休日出勤」日数のデータ項目を加えたもの)と図4のクロス表例200が与えられた場合、図3及び図4の例の組が与えられた場合との相違は、図2の手順のS22において、クロス表例200のデータ部206に対応するものとしてリレーション例100aの「残業時間」が検出されるものの、「休日出勤」の列は対応づけられずに余ってしまうという点だけである。処理の内容自体に変更を加える必要はなく、対応関係検出部14が作成する対応情報も図5に示すものとなる。そして、処理対象リレーションとして図10と同様の「休日出勤」の属性のデータも含んだリレーションが与えられた場合、クロス表作成部18は、その「休日出勤」のデータは用いずに、図4のようなクロス表を作成することになる。
また以上の説明で用いた図3及び図4の例はクロス表の列見出し部、行見出し部が共に1階層の例であったが、上記実施形態の処理は、列見出し部又は行見出し部の一方乃至両方が複数階層になる場合にも適用できる。このことを図11及び図12の例を用いて説明する。
図11はリレーション例150を、図12はこれに対応するクロス表例250を示している。リレーション例150は、各生徒の学期毎の英語と数学の試験の点数を示したものであり、1つのレコードが<名前、学期、科目、点数>の4つの属性のデータから成り立っている。一方クロス表例250では、「名前」が行見出し部202を、「学期」が列見出し部第1層204aを、「科目」が列見出し部第2層204bを、それぞれ構成しており、列見出し部が2階層構成になっている。このような例が与えられた場合も、上述の対応関係検出部14の処理内容が適用できる。
すなわち、この例の場合、図2の処理手順のS18において、リレーション例150の第2列(「学期」)に現れるデータのすべて(集合{1,2,3})がクロス表例250の第1行目に現れていること、及びリレーション例150の第3列(「科目」)に表れるデータのすべて(集合{数学,英語})がクロス表例250の第2行目に現れていること、がそれぞれ検出される。したがって、対応関係検出部14は、図13に示すように、列見出し部第1層204aに属性「学期」が、列見出し部第2層204bに属性「科目」が、それぞれ対応づけられた対応関係情報を作成して対応関係記憶部16に登録する。
クロス表作成部18は、このような対応関係情報に基づき処理対象リレーションからクロス表を作成するわけであるが、この作成処理では、図7の処理手順のS34(見出し部の作成)において、階層を考慮した見出し部の作成を行う。
例えば、列見出しが多階層になるクロス表では、図12の列見出し第1層204aと列見出し第2層204bの関係を見れば分かるように、行番号が若い方の列見出し部の方が上位の階層となり、ある階層の1つの列見出しの直下の階層には、当該直下階層の列見出しがすべて並ぶという構造となる。したがって、列見出し部を作成する場合には、処理対象リレーションから列見出し部第1層204aに対応するデータ属性「学期」に該当するデータの集合を求め、その集合に属する各データをそれぞれ列見出しとして順に並べることで列見出し第1層204aを構成し、次に処理対象リレーションから列見出し部第2層204bに対応するデータ属性「科目」に該当するデータの集合を求め、第1層204aの個々の列見出しの下にそれぞれ、その集合に属する各データをそれぞれ列見出しとして順に並べることで列見出し第1層204bを構成する。3層以上ある場合は、同様の処理を再帰的に適用すればよい。例示は省略したが、行見出しが多階層になる場合も同様の考え方でよいことは明らかであろう。
また、クロス表作成部18によるクロス表のデータ部の作成では、処理対象リレーションのうちのデータ部に対応する属性の各データ(例では「点数」)を、行見出し部202,列見出し部第1層204a及び第2層204bの組合せに該当する場所に配置していく。
以上の説明から、見出し部が多階層のクロス表(多次元クロス表)も、この実施形態の手法により作成できることが了解されるであろう。
また、以上の説明では、クロス表作成部18における行見出し部202や列見出し部204の作成の際の、各見出しの配列順には特に言及しなかった。しかし、行見出し部や列見出し部に対応する処理対象リレーションの列の各データを、無造作に、例えば単に出現順に並べたのでは、見づらい表となることも考えられる。クロス表の見出しには、年や月や日にち、製品番号や学籍番号などの識別番号、などのように順序性があるものが用いられることが少なくなく、このような場合その順序性に従って見出しを配列した方が見やすい表となる。また本来の性質として順序性がない場合でも、人名などのように一定の規則(例えばアルファベット順や五十音順)にソートして配列した方が表の使い勝手がよくなるものも多い。このようなことから、人がクロス表例を作成する時も、意識的又は無意識に見出しをソートして配列することが少なくない。したがって、ユーザが作成する事例(クロス表例200)の見出し部の見出し配列に順序性がある場合、処理対象リレーションから自動作成するクロス表もその順序性に従って見出しを配列することが好ましい。
そこで、上記実施形態の変形例として、対応関係検出部14がクロス表例200の行見出し部202及び列見出し部204の各々における見出しの配列に順序性があるかを検査し、順序性がある場合は、クロス表作成部18での行見出し部及び列見出し部の作成の際、この順序性の情報に従って各見出しを配列する方式が考えられる。
クロス表例200の見出し部に順序性があるかどうかの検査は、各見出し部ごとに、そこに含まれる見出しを順に(例えば行見出し部の場合は上から下へ)読み取っていく時に、順に現れる行見出しの値が昇順或いは降順といった一定の順序になっているかどうかを判断すればよい。この場合、見出しの値が一定の順序になっているかどうかの判断には、行見出しの値自体のデータの種類を考慮する。見出しが整数であれば整数として、文字列であれば文字列として、昇順又は降順になっているかを判断する。単純な例としては、文字コードの順序を基準に順序性の有無を判断すればよい。ただし、日本語の文字列の場合は五十音順の可能性があるなど、文字コードの順序とは異なる順序規則に従う場合もあるので、見出しに現れる値の文字コードを判断し、例えばそれがひらがなや漢字の範囲に入るものであれば五十音順であるか否かの判断も行う。また、英語の月名のように、文字コードに基づく順序とはまったく無関係な順序が規定されているものもあるので、このようなものについては、個別的に順序規則を示す規則情報(例えば月名が順に並んだ配列)を作成して本装置に登録しておき、順序性の有無を判断する際、見出しがその規則情報に登録されていれば、その規則情報に基づき判断を行うようにすればよい。
対応関係検出部14は、このような処理により各見出し部に見出し配列に順序性があるかどうかを判断し、各々の順序性に関する情報を、対応関係記憶部16に登録する。図14は、順序性情報も含んだ対応関係記憶部16の記憶データ内容例を示す図である。この例は、図3及び図4の事例に対応したものであり、図5に例示した対応関係情報と比べると「見出し配列順」の情報を示すデータ項目が増えている。図4のクロス表例200では、列見出し部204からは見出しが昇順に配列されていることが検出できるのに対し、行見出し部202の見出しの並びには順序性が見いだせない。そこで、図14の例では、行見出し部の見出し配列順は「なし」、列見出し部の見出し配列順は「昇順」となっている。なお、英語の月名などのように個別の順序規則に従った見出し配列が検出された場合は、「見出し配列順」の欄には、その順序規則自体の識別名が登録される。
クロス表作成部18は、処理対象リレーションからクロス表の各見出し部を作成する際、対応関係記憶部16に記憶された当該見出し部の「見出し配列順」の情報を参照し、処理対象リレーションにおける当該見出し部に対応する列の各データをその「見出し配列順」に従って配列する。これにより、クロス表例200に示された見出し配列順に従った見出し配列のクロス表が作成できる。
また、上記実施形態では、リレーション例において、属性名が明示されるにしてもされないにしても、各データがどの属性であるかは明確に分かる(属性名が示されない場合でも、データの並び順でどの属性かが分かる)ケースであった。しかし、リレーション例として、データ群の二次元配列の表のみが与えられ、その表の行と列のいずれが同一属性ごとのデータグループを示しているのか、示されていない場合も考えられる。
この場合も、同一属性のデータであればデータの種類も共通しているので、リレーション例が構成する二次元表(以下「二次元表例」と呼ぶ)の中の行方向と列方向のうち、データ種類が共通する方向を同一属性のデータのグループと判断すればよい。図3のリレーション例でいえば、同一列内ではデータの種類が共通している(第1列は日本語の文字列、第2,第3列は数字列)のに対し、同一行内には異なるデータ種類のデータが並んでいるので、列方向が同一属性のデータのグループを示していると判断できる。なお、この判定に当たっては、二次元表例の1行目や1列目が属性名を示している場合を考慮する。
もっとも、この手法では対処できない場合もあり、そのときの処理手順として図15に示すような手順が考えられる。
この例では、対応関係検出部14は、リレーション例とクロス表例とを取得(S10)した場合、リレーション例において各データの属性が判別できるかどうかを判断する(S40)。すなわち、ここでは、リレーション例の各データに明示的に属性が付されているか、又はそのリレーション例が構成する二次元配列の表の行又は列のどちらが同一属性のグループを示しているかが明示されているかを判断する。どちらかが成り立てば属性が判別できるということであり、その場合は同一属性のデータグループを「列」とみなして、図2の手順のS12に進む。一方、どちらも成り立たない場合は、S42に進み、そのリレーション例が構成する二次元表例の中の「列」が、同一属性のデータグループ(すなわち図2の手順におけるリレーション例の「列」)に該当するとまず仮定する。そして、この仮定の下で図2のS12〜S18と同様の処理を実行することで、リレーション例の各列(同一属性データグループ)とクロス表例の行又は列との間に出現データに関する対応関係があるかを判定する(S44)。そして、クロス表例の中にリレーション例の列と出現データが対応する行と列が両方検出できたか否かを判断し(S46)、それらが両方検出できた場合は、クロス表の行見出しと列見出しがすべて特定できたことになるのでS50に進み、図2のS20〜S24と同様の処理を行うことで対応関係情報を作成し、対応関係記憶部16に登録する。一方S46で、クロス表例からリレーション例の列と出現データが対応する行と列の一方でも検出できなければ、S42で二次元表例の列を同一属性データのグループと仮定したことが誤りであり、この場合はS48に進んで二次元表例の行を同一属性データのグループと仮定し、S44以下の処理を行う。与えられるリレーション例が正しいものであれば、S42とS48のどちらかの仮定で、クロス表例からリレーション例の列と出現データが対応する行と列の両方が検出できる。
以上のような処理により、リレーション例として属性が判別できないものが与えられた場合でも、クロス表との対応関係情報が作成できる。
また、以上の例は、いずれもリレーション例の同一属性のデータグループからクロス表の行見出しや列見出しを検出していたが、リレーション例の属性名がクロス表の見出し部に明示されるような場合もある。例えば、図16に示したクロス表例は、図3のリレーション例に対応するものであるが、図4のクロス表例と比べると、「4」、「5」、「6」といった列見出し(列見出し部第2層204b)の上に、更に「月度」という列見出し(列見出し部第1層204a)が付されている。この「月度」は、図3のリレーション例に属性名として現れているものである。このような例が与えられる場合を考慮すれば、図2の処理手順において属性名を認識(S14)した後、それら属性名に一致する文字列がないかどうかクロス表例を調べ、あればその文字列を見出し部と認識し、その見出し部の下位(行見出し部の場合は右側、列見出し部の場合は下側)に、その属性名に属する各データが下位の見出しとして並ぶものと判定する。その他の部分は、図2の処理手順と同様でよい。このような処理により、リレーションの各属性とクロス表の各見出し部との対応関係を特定することができる。この場合、対応関係検出部14が作成する対応関係情報は、図17のようなものになる。これは図3のリレーション例と図16のクロス表例の組合せに対応するものであり、図5の例との違いは、列見出し部が2層になっている点である。この例では、列見出し部第1層に「月度」という属性名自体が見出しとして配置され、列見出し第2層に属性「月度」に属する各データが各見出しとして配置されることになる。クロス表作成部18は、この対応関係情報に基づき、前述と同様の方法で、処理対象リレーションからクロス表を作成することができる。
また以上の例は、リレーション中のあるデータ属性の「データ」がクロス表の見出しとなる例であったが、リレーション中のデータ属性の「属性名」自体が見出しとなるようなクロス表を作成する場合もある。例えば、図10に示したリレーションから図18に示すクロス表を作成する場合である。図18に例示するクロス表では、行見出し部第1層202aに属性「名前」の各データ値が、行見出し部第2層202bに属性名「残業時間」及び「休日出勤」の文字列そのものが、列見出し部第1層204aには属性名「月度」の文字列そのものが、列見出し部第2層204bには属性「月度」の各データ値が、それぞれ見出しとして並んでいる。以下、このように「属性名」自体が見出しとなるようなクロス表を作成する場合も考慮した処理について、図19のフローチャートを参照して説明する。
この処理手順は、S20までは図2の手順と同じである。S20でクロス表例の行見出し部、列見出し部とそれに対応するリレーション例の各列(属性)との対応関係を特定した後、図19の手順では、対応関係検出部14は、対応づけのできた見出し部の直上階層に、属性名と同じ文字列の見出しがあるか調べ、あればそれを見出し部として認識する(S25)。
例えば図10のリレーション例と図18のクロス表例が与えられた場合、S20までの処理により、行見出し部第1層202aと属性「名前」のデータグループが、列見出し部第2層204bと属性「月度」のデータグループが、それぞれ対応づけられる。次のS25では、それら対応づけられた行見出し部第1層202aと列見出し部第2層204bの直上階層(すなわち行見出し部の場合は1列左の列、列見出し部の場合は1行上の行)を調べる。この場合、行見出し部第1層202aは最上位であり左側に列は存在しないが、列見出し部第2層204bの1行上には第1層204aが存在し、その第1層204aの見出し「月度」は、リレーション例の属性名の1つである「月度」と一致する。したがって、S25では、対応関係検出部14は、列見出し部第1層204aの見出しには属性名「月度」の文字列が入るという対応関係を認識する。なお、図12の例を見れば分かるように、S20で対応づけのできた見出し部(の層)の直上階層に別の見出し部があったとしても、必ずしもその直上階層が「属性名」を見出しとするものであるとは限らない。
S25の処理が終わると、対応関係検出部14は、クロス表例の中のすべての見出し部がリレーション例と対応付けできたかどうかを判定する(S26)。この判定で、すべて対応付けができていれば図2のS24へと進み、対応関係情報の作成を行う。これに対し、対応付けできていないものがあることが分かれば、S27に進む。
図10のリレーション例と図18のクロス表例のペアの場合、S25までの処理で、行見出し部第1層202a、列見出し部第1層204a及び列見出し部第2層204bについては対応付けができている。ここで、図18のクロス表例の場合、列見出し部は左から数えて第3列目から始まっているので、対応関係検出部14は第1列及び第2列が行見出し部の各階層となると判定できる。そして、そのうち第1列である行見出し部第1層202aは対応付けができていることが分かり、第2列である行見出し部第2層202bが対応付けできていないことが分かるので、S27に進む。
S27では、対応付けできなかった見出し部の各見出しの文字列に対応する属性名をリレーション例の各属性名から探索し、探索できた属性名とそれら各見出しとの対応関係を求める。図10及び図18の例では、クロス表例の第2列である行見出し部第2層202bの各見出しに対応する属性名をリレーション例から探し出す。その結果、各見出しに対応するものとして属性名「残業時間」、「休日出勤」が見つかり、しかも行見出し部第2層202bにはそれら2つの属性名しか現れないこと、及び1つ上位の見出しである各「名前」(すなわち鈴木、伊藤)に対して、それら2つの属性名がそれぞれ直下の見出しとして現れていることが分かるので、行見出し第2層202bに対してそれら2つの属性名が対応づけられる。
このようにして、S27までで、行見出し部及び列見出し部のすべての階層の対応付けが完了する。すると、対応関係検出部14は、S27までに検出した対応関係の情報を対応関係記憶部16に登録する。この例では、対応関係記憶部16に登録される対応関係情報は、例えば図20のようなものとなる。この例は、図5等に示した対応関係情報と異なり、クロス表のような表形式となっている。この表には、カギ括弧(「」)で囲んだ属性名と、そうでない属性名とが示されているが、前者は属性名の文字列そのものを、後者はその属性名が示す属性のデータグループを指す。
すなわち、この表は、まず行見出しについては、リレーションの属性「名前」に該当する各データがクロス表の第1列に行見出しとして現れ、その第1列の行見出しの1つ1つに対してクロス表第2列に属性名「残業時間」及び「休日出勤」に対応する行見出しが現れることを示している。同様に列見出しについては、クロス表第1列に属性名「月度」に対応する列見出しが現れ、その第1行の列見出しに対しクロス表第2行に属性「月度」に該当する各データが列見出しとして現れることを示している。そして、それら行見出し「残業時間」及び「休日出勤」と、列見出しの各「月度」とが交差するセルに、それぞれ属性「残業時間」及び「休日出勤」に該当するデータが入ることを示している。このように、図20のような形式でも、クロス表の各構成部分と、リレーション例の各属性や属性名そのもののとの対応関係を示すことができる。
なお図20では、直観的に分かりやすくするために対応関係情報を表形式で示したが、対応関係情報の実際の表現形式はこのような表形式でなくてもよく、図20と同様の関係が表現できるものであればどのようなものでもよい。この点は、図5や図13、図17についても同様である。また、図5や図13、図17等の対応関係情報が図20と同様の形式で表現できることも容易に了解されるであろう。
また、上記実施形態の手法を利用すれば、集計欄を持ったクロス表の生成も実現できる。以下、この点について説明する。
周知のように、クロス表は集計欄を含む場合が少なくない。例えば図22に示すクロス表例は、図21に示すリレーション例に対応するものであるが、集計欄として、5及び9行目に各人の四半期ごとの小計の行が、10行目に各人の全期間の合計の行が配置され、4列目(D列)に月度ごとの合計の列が配置されている。以下、このような場合の処理について、図21及び図22のリレーション例及びクロス表例を例にとって説明する。
基本的な処理手順は図2に示したものでよい。ただしこの場合は、クロス表例(図22)に現れる集計欄の見出しやデータがリレーション例(図21)には現れてこないことを考慮した処理が必要となる。具体的には、図2の手順のS10でクロス表例が与えられた際、まずそのクロス表例から集計欄に該当する行や列を検出する。一般的な表計算ソフトウエアで集計欄付きのクロス表を作成した場合、図22に示したように、集計欄には、個々のデータ(数値)ではなく、「=B2+B3+B4」(B列2行の値とB列3行の値とB列4行の値を足し合わせる計算を示す)などのように計算式が含まれている。そこで、このようなクロス表例が与えられた場合、データ値がなく計算式だけが並んでいる行や列を検出し、そのような行や列は集計行、集計列に該当すると判断して、それら集計行及び集計列の構造を示す集計欄情報を作成する。
図23に、図22のクロス表例から作成された集計欄情報を例示する。集計欄情報には、検出された集計行又は集計列ごとに、その集計行又は列に対応する見出しの文字列(「見出し名」)、クロス表にてその集計行又は列が現れる位置(「配列位置」)、及びそれら集計行又は列に属する各欄の計算式を求めるための計算式決定規則(「計算式」)が含まれている。一般に、クロス表の集計行又は集計列には、表の最終行又は最終列に来るものと(図22の例では「合計」の行と、「月度計」の列)、所定数の行又は列ごとに規則的に現れるもの(「四半期計」の行)とがある。前者については、与えられたクロス表例の最終行、最終列を調べることで即座に見つけることができるし、後者についても、計算式からなる行や列のうち、同じ見出し名であるものの行番号や列番号を調べることで、その規則性を検出することができる。
図22の例では、「四半期計」の集計行が(4n+1)行目(nは自然数)に現れているという規則を検出することができるので、集計欄情報の集計行#1「四半期計」の「配置位置」には、その規則を示す計算式が示されている。図22の例からは、この他に表の最終行である集計行が1種類(集計行#2)と、表の最終列である集計行が1種類(集計列#1)検出される。また、各集計行、集計列の各欄の計算式を調べることで、計算式決定規則を特定することができる。例えば、「四半期計」の各行に属する各欄については、「=X(4n-2)+X(4n-1)+X(4n)」であることがわかる。ここでXは当該集計欄と同じ列の番号を示し、「X(k)」の書式は第X列第k行の欄(セル)に含まれる値を指している。
また、最終行の集計行「合計」については、「四半期計」により括られる小計のグループの繰り返しの後に現れる。このリレーション例及びクロス表例は四半期が2回ある例であったが、処理対象リレーションは、四半期の数が2回とは限らない。そこで、一般化した計算式を求める必要がある。この例では、「合計」の行の各欄は、同じ列の「四半期計」の値の合計であることが分かるので、計算式決定規則として「ΣX(4n+1)」(X(4n+1)は、当該欄と同じ列Xの「四半期計」の行(4n+1)を示し、Σは最初の四半期計から最後の四半期計までの総和である)となる。同様に集計列「月度計」の各欄の計算式は、当該欄と同一行(Yと表す)のB列とC列の欄の値の和であることが分かるので、計算式決定規則は「BY+CY」となる。
このような手法で、与えられたクロス表例から、そのクロス表例の形式に従った一般的なクロス表の構造を示す集計欄情報を得ることができる。
なお、特開2003−346074号公報(「表作成装置、表作成方法、表作成プログラム」)には、これと同様の考え方に基づくクロス表例の解析手法が詳細に示されている。したがって、この公報の解析手法を用いてクロス表例を解析し、その解析結果を用いて処理対象リレーションに対応するクロス表を構築することができる。
このようにクロス表例の解析が終わった後は、対応関係検出部14は、図2の手順のS12以降の処理を実行すればよい。なお、この手順でリレーション例の列とクロス表例の行又は列との対応関係を検出する際には、集計行及び集計列と判定した行及び列に属するデータを除いた上で対応関係を調べるようにすればよい。作成される対応関係情報は、上記実施形態のものと同様である。
また、クロス表作成部18は、クロス表例の解析結果(例えば集計欄情報)と、リレーション例とクロス表例の対応関係情報とに基づき、与えられた処理対象リレーションからクロス表を作成する。すなわち、上記実施形態の手法で行見出し部及び列見出し部を作成すると共に、その行見出し部及び列見出し部に対してクロス表例の解析結果が示す規則性に従って各集計列・集計行を配置することで、クロス表が作成できる。このクロス表作成時の集計列・集計行の配置の処理についても、上述の特開2003−346074号公報に示された処理を用いることができる。
なお、本実施形態の処理手順は、リレーション形式の表において、属性(列)の順序を並べ替えたり、不必要な属性(列)を削除したりする場合にも適用可能である。この場合には、変換元のリレーション例と、変換先のリレーション例を本装置に与えればよい。すると、変換元リレーションの各列のデータグループと、変換先のリレーション例の各列のデータグループとの間で出現データの一致するものが探索され、これにより変換元リレーションの各列が変換先リレーションにおいて何番目の列に現れるか(或いは現れないか)という対応付けを行うことができる。リレーション形式の表において、行と列のどちらが同一属性のデータグループを示しているかが分からない場合は、(変換元リレーション例の)列と(変換先リレーションの)列との対比で出現データが一致するものが見つからなければ、次に列と行を対比し、それでも駄目なら行と列を対比するといった具合に、行と列の組合せを順番に調べていくことで、対応付けができる。この対応付けの情報を対応関係記憶部16に登録しておけば、処理対象リレーションが与えられた場合、これを変換先リレーションの形式に変換できる。
本発明に係るクロス表作成装置の概略構成を示す機能ブロック図である。 対応関係検出部の処理手順を示すフローチャートである。 リレーション例のデータ内容を示す図である。 図3のリレーション例に対応するクロス表例のデータ内容を示す図である。 対応関係情報の例を示す図である。 対応関係情報の別の例を示す図である。 クロス表作成部の処理手順を示すフローチャートである。 処理対象リレーションのデータ内容の例を示す図である。 図9の処理対象リレーションに基づき作成されるクロス表を示す図である。 別のリレーション例のデータ内容を示す図である。 更に別のリレーション例のデータ内容を示す図である。 図11のリレーション例に対応するクロス表例のデータ内容を示す図である。 列見出しが2階層の場合の対応関係情報の例を示す図である。 見出し配列順の情報を含んだ対応関係情報の例を示す図である。 対応関係検出部の処理手順の変形例を示すフローチャートである。 別のクロス表例のデータ内容を示す図である。 対応関係情報の別の例を示す図である。 属性名が見出しに現れるクロス表例を示す図である。 属性名が見出しに現れる場合を考慮した対応関係検出部の処理手順の変形例を示すフローチャートである。 対応関係情報の別の例を示す図である。 更に別のリレーション例のデータ内容を示す図である。 図18のリレーション例に対応する、集計欄付きのクロス表例のデータ内容を示す図である。 集計欄付きのクロス表例の解析結果のデータ内容の例を示す図である。
符号の説明
10 UI部、12 ファイルシステム、14 対応関係検出部、16 対応関係記憶部、18 クロス表作成部。

Claims (7)

  1. コンピュータシステムを、
    レコードごとに当該レコードの各データ属性のデータ値を含んだリレーションの例データと、当該リレーションの例データに対応するクロス表の例データであって、1以上の列見出し項目を含んだ列見出し部と、1以上の行見出し項目を含んだ行見出し部と、前記各列見出し項目と前記各行見出し項目との組み合わせごとに当該組み合わせに該当するデータ値を含んだデータ部と、を有するクロス表の例データと、を取得する例データ取得部、
    前記リレーションの例データに含まれるデータ属性のなかから、前記クロス表の例データの前記行見出し部に含まれる行見出し項目群に対応するデータ値群を含んだデータ属性を行見出し属性と判別し、前記クロス表の例データの前記列見出し部に含まれる列見出し項目群に対応するデータ値群を含んだデータ属性を列見出し属性と判別し、前記クロス表の例の前記データ部に含まれるデータ値群に対応するデータ値群を含んだデータ属性をデータ部属性と判別する対応関係検出部、
    レコードごとに当該レコードの各データ属性のデータ値を含んだ処理対象のリレーションデータを取得する対象リレーション取得部、
    前記処理対象のリレーションデータをクロス表データに変換するクロス表作成部、
    として機能させるプログラムであって、
    前記クロス表作成部は、
    前記処理対象のリレーションデータに含まれるデータ属性のうち、前記対応関係検出部が前記行見出し属性と判別したデータ属性の各データ値を、それぞれ変換先のクロス表データの行見出し部の各見出し項目とし、
    前記処理対象のリレーションデータに含まれるデータ属性のうち、前記対応関係検出部が前記列見出し属性と判別したデータ属性の各データ値を、それぞれ前記変換先のクロス表データの列見出し部の各見出し項目とし、
    前記処理対象のリレーションデータに含まれるデータ属性のうち、前記対応関係検出部が前記データ部属性と判別したデータ属性の各データ値を、前記変換先のクロス表データのデータ部のうちの、前記処理対象のリレーションデータにおける当該データ値が含まれるレコードのうちの前記行見出し属性のデータ値に該当する行見出し項目と、当該レコードのうちの前記列見出し属性のデータ値に該当する列見出し項目と、の組み合わせに該当するデータ値とする、
    ことを特徴とするプログラム。
  2. 前記対応関係検出部は、前記リレーションの例データのデータ属性ごとに、前記クロス表の例データの行又は列の中から、該データ属性のデータ群に含まれるすべてのデータ値を含む行又は列を探索し、この探索により見つかったクロス表の例データの行を列見出し部と判定すると共にその行に対応するデータ属性のデータ群が列見出し部に対応すると判断し、その探索により見つかったクロス表の例データの列を行見出し部と判定すると共にその列に対応するデータ属性のデータ群が行見出し部に対応すると判断する、
    ことを特徴とする請求項1記載のプログラム。
  3. 前記対応関係検出部は、前記リレーションの例データが構成する表の列ごと及び行ごとの各データ群を前記クロス表の例データの行ごと及び列ごとの各データ群とそれぞれ比較することで、前記リレーションの例データが構成する表の各列又は各行と前記クロス表の例データの各行又は各列との間で、含んでいるデータ値群が一致するペアを求め、求めたペアのうちのいずれかのペアに該当する前記クロス表の例データの行のデータ群を該クロス表の例データの列見出し部と判別し、求めたペアのうちのいずれかのペアに該当する前記クロス表の例データの列のデータ群を該クロス表の例データの行見出し部と判別する、ことを特徴とする請求項1記載のプログラム。
  4. 前記対応関係検出部は、前記クロス表の例データにおける行見出し部及び列見出し部の少なくとも一方に複数の階層がある場合、当該複数の階層の各々について、当該階層の行見出し項目群又は列見出し項目群に対応するデータ値群を含んだ前記リレーションの例データ中のデータ属性求めることを特徴とする請求項1記載のプログラム。
  5. 前記リレーションの例データが各データ属性の属性名を含む場合に、
    前記対応関係検出部は、前記クロス表の例の行見出し部及び列見出し部のうち、当該行見出し部又は当該列見出し部に含まれる行見出し項目群又は列見出し項目群に対応するデータ値群を含んだデータ属性が見つからない見出し部については、該見出し部に現れる各見出し項目に対応する属性名を前記リレーションの例データから求め、
    前記クロス表作成部は、前記変換先のクロス表データの行見出し部及び列見出し部のうち、各見出し項目がそれぞれ属性名に対応づけられたものについては、それら属性名を見出し項目とする見出し部を作成する、
    ことを特徴とする請求項1記載のプログラム。
  6. コンピュータにより、リレーションからクロス表を作成する方法であって、
    レコードごとに当該レコードの各データ属性のデータ値を含んだリレーションの例データと、当該リレーションの例データに対応するクロス表の例データであって、1以上の列見出し項目を含んだ列見出し部と、1以上の行見出し項目を含んだ行見出し部と、前記各列見出し項目と前記各行見出し項目との組み合わせごとに当該組み合わせに該当するデータ値を含んだデータ部と、を有するクロス表の例データと、を取得するステップと、
    前記リレーションの例データに含まれるデータ属性のなかから、前記クロス表の例データの前記行見出し部に含まれる行見出し項目群に対応するデータ値群を含んだデータ属性を行見出し属性と判別し、前記クロス表の例データの前記列見出し部に含まれる列見出し項目群に対応するデータ値群を含んだデータ属性を列見出し属性と判別し、前記クロス表の例の前記データ部に含まれるデータ値群に対応するデータ値群を含んだデータ属性をデータ部属性と判別する対応関係検出ステップと、
    レコードごとに当該レコードの各データ属性のデータ値を含んだ、該コンピュータが処理対象のリレーションデータを取得するステップと、
    前記処理対象のリレーションデータをクロス表データに変換するクロス表作成ステップと、
    を含み、前記クロス表作成ステップでは、
    前記処理対象のリレーションデータに含まれるデータ属性のうち、前記対応関係検出ステップにより前記行見出し属性と判別されたデータ属性の各データ値を、それぞれ変換先のクロス表データの行見出し部の各見出し項目とし、
    前記処理対象のリレーションデータに含まれるデータ属性のうち、前記対応関係検出ステップにより前記列見出し属性と判別されたデータ属性の各データ値を、それぞれ前記変換先のクロス表データの列見出し部の各見出し項目とし、
    前記処理対象のリレーションデータに含まれるデータ属性のうち、前記対応関係検出ステップにより前記データ部属性と判別されたデータ属性の各データ値を、前記変換先のクロス表データのデータ部のうちの、前記処理対象のリレーションデータにおける当該データ値が含まれるレコードのうちの前記行見出し属性のデータ値に該当する行見出し項目と、当該レコードのうちの前記列見出し属性のデータ値に該当する列見出し項目と、の組み合わせに該当するデータ値とする、
    ことを特徴とするクロス表作成方法。
  7. リレーションからクロス表を作成する装置であって、
    レコードごとに当該レコードの各データ属性のデータ値を含んだリレーションの例データと、当該リレーションの例データに対応するクロス表の例データであって、1以上の列見出し項目を含んだ列見出し部と、1以上の行見出し項目を含んだ行見出し部と、前記各列見出し項目と前記各行見出し項目との組み合わせごとに当該組み合わせに該当するデータ値を含んだデータ部と、を有するクロス表の例データと、を取得する例データ取得部と、
    前記リレーションの例データに含まれるデータ属性のなかから、前記クロス表の例データの前記行見出し部に含まれる行見出し項目群に対応するデータ値群を含んだデータ属性を行見出し属性と判別し、前記クロス表の例データの前記列見出し部に含まれる列見出し項目群に対応するデータ値群を含んだデータ属性を列見出し属性と判別し、前記クロス表の例の前記データ部に含まれるデータ値群に対応するデータ値群を含んだデータ属性をデータ部属性と判別する対応関係検出部と、
    レコードごとに当該レコードの各データ属性のデータ値を含んだ処理対象のリレーションデータを取得する対象リレーション取得部と、
    前記処理対象のリレーションデータをクロス表データに変換するクロス表作成部と、
    を備え
    前記クロス表作成部は、
    前記処理対象のリレーションデータに含まれるデータ属性のうち、前記対応関係検出部が前記行見出し属性と判別したデータ属性の各データ値を、それぞれ変換先のクロス表データの行見出し部の各見出し項目とし、
    前記処理対象のリレーションデータに含まれるデータ属性のうち、前記対応関係検出部が前記列見出し属性と判別したデータ属性の各データ値を、それぞれ前記変換先のクロス表データの列見出し部の各見出し項目とし、
    前記処理対象のリレーションデータに含まれるデータ属性のうち、前記対応関係検出部が前記データ部属性と判別したデータ属性の各データ値を、前記変換先のクロス表データのデータ部のうちの、前記処理対象のリレーションデータにおける当該データ値が含まれるレコードのうちの前記行見出し属性のデータ値に該当する行見出し項目と、当該レコードのうちの前記列見出し属性のデータ値に該当する列見出し項目と、の組み合わせに該当するデータ値とする、
    ことを特徴とするクロス表作成装置。
JP2004050312A 2004-02-25 2004-02-25 クロス表作成のためのプログラム及び方法及び装置 Expired - Fee Related JP4501459B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004050312A JP4501459B2 (ja) 2004-02-25 2004-02-25 クロス表作成のためのプログラム及び方法及び装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004050312A JP4501459B2 (ja) 2004-02-25 2004-02-25 クロス表作成のためのプログラム及び方法及び装置

Publications (2)

Publication Number Publication Date
JP2005242587A JP2005242587A (ja) 2005-09-08
JP4501459B2 true JP4501459B2 (ja) 2010-07-14

Family

ID=35024277

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004050312A Expired - Fee Related JP4501459B2 (ja) 2004-02-25 2004-02-25 クロス表作成のためのプログラム及び方法及び装置

Country Status (1)

Country Link
JP (1) JP4501459B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007149014A (ja) * 2005-11-30 2007-06-14 Just Syst Corp データ処理装置およびデータ処理方法
JP4663526B2 (ja) * 2006-01-11 2011-04-06 株式会社日立製作所 帳票作成支援装置、帳票作成支援方法、および帳票作成支援プログラム
JP5340689B2 (ja) * 2008-10-14 2013-11-13 株式会社ジャストシステム データベース生成装置、データベース生成方法及びコンピュータプログラム
JP5687918B2 (ja) * 2011-02-22 2015-03-25 株式会社アプストウェブ 業務アプリケーション構成装置
JP5462967B1 (ja) * 2013-04-09 2014-04-02 株式会社Osk データ出力システム
JP6652141B2 (ja) * 2016-02-04 2020-02-19 富士通株式会社 項目名対応付け処理方法、項目名対応付け処理プログラム及び情報処理装置
JP6638739B2 (ja) * 2016-02-04 2020-01-29 富士通株式会社 表形式データの解析方法、表形式データの解析プログラム及び情報処理装置

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01237878A (ja) * 1988-03-18 1989-09-22 Fujitsu Ltd クロス帳票の統計値集計方式
JPH05346940A (ja) * 1992-06-15 1993-12-27 Fuji Xerox Co Ltd データべース検索システム
JPH06251007A (ja) * 1993-02-23 1994-09-09 Fuji Xerox Co Ltd 表データ入力装置
JPH06266742A (ja) * 1993-03-12 1994-09-22 Fuji Xerox Co Ltd 表作成装置
JPH076162A (ja) * 1993-02-18 1995-01-10 Fuji Xerox Co Ltd 表生成装置
JPH07129688A (ja) * 1993-10-30 1995-05-19 Fuji Xerox Co Ltd 表情報処理装置
JPH07295776A (ja) * 1994-04-21 1995-11-10 Hitachi Ltd データ配置構造変換方法およびそのシステム並びにクライアントサーバシステム
JPH1040050A (ja) * 1996-07-22 1998-02-13 Fuji Xerox Co Ltd 表作成指示装置および表作成システム
JPH1139412A (ja) * 1997-07-18 1999-02-12 Fuji Xerox Co Ltd 表編集装置
JPH11328282A (ja) * 1998-05-21 1999-11-30 Fuji Xerox Co Ltd 表見出し構造決定装置及び表見出し構造決定プログラムを記録したコンピュータ読み取り可能な記録媒体
JPH11328284A (ja) * 1998-05-12 1999-11-30 Fuji Xerox Co Ltd 表作成装置及び表作成プログラムを記録したコンピュータ読み取り可能な記録媒体

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01237878A (ja) * 1988-03-18 1989-09-22 Fujitsu Ltd クロス帳票の統計値集計方式
JPH05346940A (ja) * 1992-06-15 1993-12-27 Fuji Xerox Co Ltd データべース検索システム
JPH076162A (ja) * 1993-02-18 1995-01-10 Fuji Xerox Co Ltd 表生成装置
JPH06251007A (ja) * 1993-02-23 1994-09-09 Fuji Xerox Co Ltd 表データ入力装置
JPH06266742A (ja) * 1993-03-12 1994-09-22 Fuji Xerox Co Ltd 表作成装置
JPH07129688A (ja) * 1993-10-30 1995-05-19 Fuji Xerox Co Ltd 表情報処理装置
JPH07295776A (ja) * 1994-04-21 1995-11-10 Hitachi Ltd データ配置構造変換方法およびそのシステム並びにクライアントサーバシステム
JPH1040050A (ja) * 1996-07-22 1998-02-13 Fuji Xerox Co Ltd 表作成指示装置および表作成システム
JPH1139412A (ja) * 1997-07-18 1999-02-12 Fuji Xerox Co Ltd 表編集装置
JPH11328284A (ja) * 1998-05-12 1999-11-30 Fuji Xerox Co Ltd 表作成装置及び表作成プログラムを記録したコンピュータ読み取り可能な記録媒体
JPH11328282A (ja) * 1998-05-21 1999-11-30 Fuji Xerox Co Ltd 表見出し構造決定装置及び表見出し構造決定プログラムを記録したコンピュータ読み取り可能な記録媒体

Also Published As

Publication number Publication date
JP2005242587A (ja) 2005-09-08

Similar Documents

Publication Publication Date Title
US7814111B2 (en) Detection of patterns in data records
US10248858B2 (en) Multi-page document recognition in document capture
Gardener Community ecology: analytical methods using R and Excel
US8015198B2 (en) Method for automatically indexing documents
US6728725B2 (en) Process for creating and displaying a publication historiograph
US20020062302A1 (en) Methods for document indexing and analysis
US7877403B2 (en) System and method for database searching using fuzzy rules
AU2002331728A1 (en) A method for automatically indexing documents
JP4501459B2 (ja) クロス表作成のためのプログラム及び方法及び装置
US20080270431A1 (en) Genealogical System and Method
JP3394694B2 (ja) フォーマット情報登録方法及びocrシステム
JP2014102625A (ja) 情報検索システム、プログラム、および方法
JP3929418B2 (ja) 情報探索プログラム及び情報探索プログラムを記録した媒体
WO2014170965A1 (ja) 文書処理方法、文書処理装置および文書処理プログラム
JPH05165893A (ja) データ編集方式
JP6642929B2 (ja) 診療データ管理システム及び診療データ管理プログラム
Carver Preparing data for analysis with JMP
JP3109331B2 (ja) 帳票出力装置
JP3109330B2 (ja) 帳票出力装置
AU2012258320B2 (en) A method for automatically indexing documents
JP2008009705A (ja) 希望リスト作成補助システム
Sharmila et al. Search Algorithm for Multiple Histories Using Time-Sorted Array
Selvaratnam et al. Characteristics of Disease Maps of Zoonoses: A Scoping Review and a Recommendation for a Reporting Guideline for Disease Maps
CN117009588A (zh) 一种基于知识图谱的三维数据关联检索方法
JP2000315242A (ja) 集計表作成装置および集計表作成プログラム記憶媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090915

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091111

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

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100412

R150 Certificate of patent or registration of utility model

Ref document number: 4501459

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130430

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130430

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140430

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees