(57)【特許請求の範囲】
【請求項１】
テーブルの列間の階層構造を用いて取得対象列を指定する列条件文を含む拡張問合せ記述を受付ける拡張受付部と、
前記テーブルの列名と、前記列間の階層構造を示す階層構造情報とを格納する列階層構造格納部と、
前記列階層構造格納部の列名と前記階層構造情報に基づき、前記列条件文に当てはまる列名を抽出し、前記拡張問合せ記述の前記列条件文を前記抽出した列名を用いた列指示文に置き換えて出力する書換部と、
を備える書換装置。
【請求項２】
前記テーブルの列名を含むスキーマ情報を受付けるスキーマ受付部と、
前記スキーマ情報から前記列間の階層構造を抽出する階層構造抽出部と、を備える、
請求項１記載の書換装置。
【請求項３】
前記スキーマ情報は、さらに列のデータ型を含む、請求項２記載の書換装置。
【請求項４】
前記スキーマ情報から前記列間の階層構造を抽出するための抽出ルールを保持する抽出ルール格納部と、を備え、
前記階層構造抽出部は、
前記抽出ルールに基づき、前記スキーマ情報から前記列間の階層構造を抽出する、
請求項２記載の書換装置。
【請求項５】
前記スキーマ情報に含まれる前記列名の一覧から前記列間の階層構造を抽出する、
請求項４に記載の書換装置。
【請求項６】
前記抽出ルールが、前記スキーマ情報に含まれる前記列名からのパトリシア木の構築である、請求項４に記載の書換装置。
【請求項７】
前記抽出ルールを受付け、前記抽出ルール格納部に保存する抽出ルール受付部を備える、
請求項４から６のいずれか１つに記載の書換装置。
【請求項８】
前記列間の階層構造が木構造又は入れ子構造である、
請求項１から７のいずれか１に記載の書換装置。
【請求項９】
前記拡張問合せ記述は、取得対象の列の階層構造の深さを列条件に含む、
請求項１から８のいずれか１つに記載の書換装置。
【請求項１０】
前記拡張問合せ記述は、正規表現を列条件指定に含む、
請求項１から８のいずれか１つに記載の書換装置。
【請求項１１】
書換装置と、関係データベース装置とを備え、
前記書換装置は、
テーブルの列間の階層構造を用いて取得対象列を指定する列条件文を含む拡張問合せ記述を受付ける拡張受付部と、
前記テーブルの列名と、前記列間の階層構造を示す階層構造情報とを格納する列階層構造格納部と、
前記列階層構造格納部の列名と前記階層構造情報に基づき、前記列条件文に当てはまる列名を抽出し、前記拡張問合せ記述の前記列条件文を前記抽出した列名を用いた列指示文に置き換えて出力する書換部と、を有し、
前記関係データベース装置は、
前記テーブルを格納するデータ格納部と、
前記出力された問合せ記述を受付け、前記出力された問合せ記述に基づき前記データ格納部からデータを取得する受付部と、を有する
情報処理装置。
【請求項１２】
前記書換装置が、前記関係データベース装置に搭載された、
請求項１１に記載の情報処理装置。
【請求項１３】
拡張受付部によって、テーブルの列間の階層構造を用いて取得対象列を指定する列条件文を含む拡張問合せ記述を受付け、
書換部によって、列階層構造格納部に格納されたテーブルの列名と、前記列間の階層構造を示す階層構造情報を用いて、前記拡張問合せ記述の前記列条件文に当てはまる列名を抽出し、前記拡張問合せ記述の列条件文を前記抽出した列名を用いた列指示文に置き換えて出力する、処理方法。
【請求項１４】
拡張受付部によって、テーブルの列間の階層構造を用いて取得対象列を指定する列条件文を含む拡張問合せ記述を受付け、
書換部によって、列階層構造格納部に格納されたテーブルの列名と、前記列間の階層構造を示す階層構造情報を用いて、前記拡張問合せ記述の前記列条件文に当てはまる列名を抽出し、前記拡張問合せ記述の列条件文を前記抽出した列名を用いた列指示文に置き換えて出力する、ことをコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、書換装置、処理方法とそのプログラム、および、情報処理装置に関する。
【背景技術】
【０００２】
関係データベース管理システム（Ｒｅｌａｔｉｏｎａｌ  ＤａｔａＢａｓｅ  Ｍａｎａｇｅｍｅｎｔ  Ｓｙｓｔｅｍ，以下、ＲＤＢＭＳと示す）は、関係モデルに基づく表形式のデータ（以下、テーブルと示す）に対し、ユーザにデータの効率的な検索・更新処理を提供する。図１３はテーブルの一例である。テーブル内の行はレコードと呼ばれ、ひとつのデータをあらわす。データはいくつかの属性を持つことができ、テーブル内の列が各属性に対応する。図１３のテーブルには、属性として、年齢、身長、体重、性別、血液型が登録されている。そのテーブルに含まれる列の＜列名，データ型＞一覧を、そのテーブルのスキーマと呼ぶ。
【０００３】
ＲＤＢＭＳのユーザは、テーブルに対する検索・更新処理をプログラミング言語によってＲＤＢＭＳに指示する。この指示は問合せ（Ｑｕｅｒｙ）と呼ばれる。問合せを記述するためには、ＳＱＬ（非特許文献１）というプログラミング言語が標準的に用いられている。ＳＱＬを用いると、テーブルの中から条件にあてはまるレコードを簡便かつ効率的に取り出すことができる。また、列名を指定することで、レコードの中から必要な属性のみを取り出すこともできる。
【０００４】
特許文献１には、関係データベース（Ｒｅｌａｔｉｏｎａｌ  ＤａｔａＢａｓｅ，以下、ＲＤＢと示す）における全文検索時の応答性能を向上させるために、検索対象となる列集合を「カラム名、データ型、データ長、データ型のカテゴリ名」に制限することが記載されている。
【０００５】
近年、機械学習によるデータ分析処理のなかで、分析の質を高めるためにＲＤＢＭＳとＳＱＬを利用したデータの変形処理が頻繁におこなわれる。この変形処理は特徴量加工処理（Ｆｅａｔｕｒｅ  Ｅｎｇｉｎｅｅｒｉｎｇ、以下、ＦＥと示す）と呼ばれ、列（特徴量）同士の操作を主とする。ＦＥの例として、二値展開（Ｂｉｎａｒｙ  Ｅｘｐａｎｓｉｏｎ）がある。二値展開は、カテゴリ変数を値として持つ列から、カテゴリ変数の種類それぞれに対応するバイナリ値の列を作成する。各列は、元のカテゴリ変数の値が自身のあらわす種類であった場合１を、そうでない場合は０を格納する。列を二値展開したテーブルの例を図１４に示す。図１４は、図１３に示すテーブルのうち、血液型が二値展開された例である。血液型はＡ，Ｂ，Ｏ，ＡＢのいずれか１つをとるカテゴリ変数であり、これを二値展開することでそれぞれに対応した列名として血液型＿Ａ，血液型＿Ｂ，血液型＿Ｏ，血液型＿ＡＢが作成されている。
【０００６】
特許文献２には、構造化データ（例えば、ＸＭＬ）をＲＤＢに格納する際に構造情報として「クラスとクラス間の階層関係」を明示的に与え、複数のテーブルで表現する技術が記載されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１０−０６７２１３号公報
【特許文献２】特開２００５−２０２８５０号公報
【非特許文献】
【０００８】
【非特許文献１】“Information technology--Database languages--SQL--Part14:XML-Related Specifications (SQL/XML)”、[online]、ISO/IEC 9075-14:2011、[平成26年6月24日検索]、インターネット(URL:http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=53686)
【発明の概要】
【発明が解決しようとする課題】
【０００９】
上述のようなデータ分析処理に用いるテーブルは、ＦＥによって列が派生することでテーブルの列間に意味的な階層構造を持ち、結果、膨大な数の列となる。そのため、ＳＱＬを用いて問合せする場合、ユーザが取得対象となる列群の完全な列名を知らないと、ＳＱＬの問合せ記述が指定できない。例えば、図１４の二値展開されたテーブルに対する問合せで“血液型＿Ａ”という列名を取得対象とする指定はできるが、完全な列名でない“血液型”という列指定はできない。
【００１０】
また、ＳＱＬを用いて問合せする場合、ユーザが列間の階層構造に基づく条件を指定できない。例えば、ＦＥによって列Ａから列Ａ＿１と列Ａ＿２が派生した場合に、ＳＱＬでは「列Ａから派生した全ての列を取得対象とする」という問合せ記述の指示ができない。これは特許文献１、２に記載の技術も同様である。
【００１１】
このように、問合せ記述の記述内容に柔軟性を与え、ＲＤＢＭＳにおけるテーブルの取得対象列を問合せすることが可能な技術が望まれている。
【００１２】
本発明の目的は、上記課題を解決するために、問合せ記述の記述内容に柔軟性を与え、ＲＤＢＭＳにおけるテーブルの取得対象列を問合せする技術を提供することにある。
【課題を解決するための手段】
【００１３】
本発明の書換装置の一態様は、
テーブルの列間の階層構造を用いて取得対象列を指定する列条件文を含む拡張問合せ記述を受付ける拡張受付部と、
前記テーブルの列名と、前記列間の階層構造を示す階層構造情報とを格納する列階層構造格納部と、
前記列階層構造格納部の列名と前記階層構造情報に基づき、前記列条件文に当てはまる列名を抽出し、前記拡張問合せ記述の前記列条件文を前記抽出した列名を用いた列指示文に置き換えて出力する書換部と、
を備える。
【００１４】
本発明の情報処理装置の一態様は、
書換装置と、関係データベース装置とを備え、
前記書換装置は、
テーブルの列間の階層構造を用いて取得対象列を指定する列条件文を含む拡張問合せ記述を受付ける拡張受付部と、前記テーブルの列名と、前記列間の階層構造を示す階層構造情報とを格納する列階層構造格納部と、前記列階層構造格納部の列名と前記階層構造情報に基づき、前記列条件文に当てはまる列名を抽出し、前記拡張問合せ記述の前記列条件文を前記抽出した列名を用いた列指示文に置き換えて出力する書換部と、を有し、
前記関係データベース装置は、
前記テーブルを格納するデータ格納部と、前記出力された問合せ記述を受付け、前記出力された問合せ記述に基づき前記データ格納部からデータを取得する受付部と、を有する。
【００１５】
本発明の処理方法の一態様は、
テーブルの列間の階層構造を用いて取得対象列を指定する列条件文を含む拡張問合せ記述を受付け、
前記テーブルの列名と、前記列間の階層構造を示す階層構造情報を用いて、前記拡張問合せ記述の前記列条件文に当てはまる列名を抽出し、前記拡張問合せ記述の前記列条件文を前記抽出した列名を用いた列指示文に置き換えて出力する。
【００１６】
本発明のプログラムの一態様は、
テーブルの列間の階層構造を用いて取得対象列を指定する列条件文を含む拡張問合せ記述を受付け、
前記テーブルの列名と、前記列間の階層構造を示す階層構造情報を用いて、前記拡張問合せ記述の前記列条件文に当てはまる列名を抽出し、前記拡張問合せ記述の前記列条件文を前記抽出した列名を用いた列指示文に置き換えて出力する、
ことをコンピュータに実行させる。
【発明の効果】
【００１７】
本発明は、問合せ記述の記述内容に柔軟性を与え、ＲＤＢＭＳにおけるテーブルの取得対象列を問合せすることができる。
【図面の簡単な説明】
【００１８】
【図１】第１の実施形態に係る問合せ装置の構成を示すブロック図である。
【図２】第１の実施形態で用いる拡張問合せ記述の一例を示す図である。
【図３】第１の実施形態に係る書換装置の書換部における書換処理の一例を示す図である。
【図４】第１の実施形態に係る書換装置の階層構造格納部で保持する列名の一覧と、列間の階層構造の一例である。
【図５】第１の実施形態に係る書換装置の階層構造格納部で保持する列名の一覧と、列間の階層構造の一例である。
【図６】階層構造を列条件文として用いる拡張問合せ記述の一例を示す図である。
【図７】第１の実施形態に係る問合せ装置の動作を示すフローチャート図である。
【図８】第２の実施形態に係る書換装置の構成を示すブロック図である。
【図９】第２の実施形態に係る書換装置の一部の動作を示すフローチャート図である。
【図１０】第２の実施形態におけるスキーマ情報と階層構造の例を示す図である。
【図１１】第３の実施形態に係る書換装置の構成を示すブロック図である。
【図１２】本発明の第１〜３の実施形態の書換装置、又は、ＲＤＢ装置をコンピュータ装置で実現したハードウエア構成を示すブロック図である。
【図１３】テーブルの一例である。
【図１４】列を二値展開したテーブルの例を示す図である。
【発明を実施するための形態】
【００１９】
本発明の第１の実施形態に係る書換装置、及び、情報処理装置について、図面を用いて詳細に説明する。なお、以下の例では、情報処理装置の一例として、問合せ装置を用いて説明する。
【００２０】
（構成）
図１は、第１の実施形態に係る問合せ装置の構成を示すブロック図である。図１の各ブロックは、機能単位の構成を表している。図１に示すように、問合せ装置５００は、書換装置１０００とＲＤＢ装置２０００で構成されている。書換装置１０００は、拡張問合せ記述を受付けて、ＲＤＢ装置２０００の問合せ記述に書き換える機能を有する。ＲＤＢ装置２０００は、受付部２０２０、データ格納部２１００を備える。受付部２０２０は、レコードの問合せ記述を受け取り、データ格納部２１００から問合せ記述の指定するデータを取得する。例えば、受付部２０２０は、ＲＤＢＭＳの機能の一部である。データ格納部２１００は、テーブルのレコード群を保持する。問合せ記述を受け取り、データを格納するデータ格納部２１００から問合せ記述に基づくデータを出力する。
【００２１】
次に、第１の実施形態に係る書換装置の構成について説明する。図１に示す書換装置１０００は、拡張受付部１０２０、書換部１０４０、列階層構造格納部１０６０を備える。
【００２２】
拡張受付部１０２０は、レコードの拡張問合せ記述を取得する。拡張問合せ記述は、取得対象の行（行群）を指定する条件文と、取得対象の列（列群）を指定する指示文を含む。列（列群）を指定する指示文は、取得対象の列（列群）を指定する列（列群）の完全な列名、あるいは、全ての列を取得することを指定する指示文（以後、列指示文）である。また、列指示文以外に、列間の階層構造関係に基づく条件、又は、列名の部分文字列に基づく条件を含んだ条件文（以後、列条件文と示す）でもよい。すなわち、第１の実施形態における拡張問合せ記述は、列指示文に加え、列条件文による取得対象の列（列群）の指示が可能となっている。
【００２３】
拡張問合せ記述の一例を図２に示す。図２に示す拡張問合せ記述は、図１４に示すテーブルの身体データのうち、２０歳以上の人物の身長と血液型（二値展開されたもの）を取得する例である。具体的には、図２中、「身長」が列指示文であり、「／血液型＿．＊／」が列条件文となる。また「ＷＨＥＲＥ  年齢＞＝２０」が取得対象の行（行群）を指定する条件文となる。「／血液型＿．＊／」は列条件の表記に正規表現マッチを用いた拡張問合せ記述である。正規表現における「.」は任意の1文字を意味し、「＊」は直前の文字が０個以上を意味する。「．＊」は０文字以上の任意の文字列を意味し、「血液型＿．＊」は「血液型＿」を含む文字列を表す。図１４に示す二値展開された血液型を取得対象列とする場合、拡張問合せ記述を用いないと全ての血液型の記述が必要となる。これに対し、拡張問合せ記述を用いることにより、問合せ記述の量を削減することができる。
【００２４】
書換部１０４０は、拡張受付部１０２０から拡張問合せ記述を受け取り、拡張問合せ記述を列条件文が含まれない形式に変換する。すなわち、書換部１０４０は、列条件文による問合せができないＲＤＢ装置２０００の受付部２０２０で処理が可能な問合せ記述の形式に変換する。具体的には、拡張問合せ記述内に列条件文が含まれている場合、書換部１０４０は、列階層構造格納部１０６０から列名とその階層構造情報を取得し、条件に当てはまる列名をそれらの情報より抽出する。続いて、書換部１０４０は、問合せ記述内の列条件文を、抽出した列名を用いた列指示文で置き換え、出力する。
【００２５】
図３は、書換装置の書換部における書換処理の一例を示す図である。書換部１０４０は受付けた拡張問合せ記述に列条件文「／血液型＿．＊／」があるため、列階層構造格納部１０６０の階層構造情報から条件に当てはまる列名「血液型＿Ａ，血液型＿Ｂ，血液型＿Ｏ，血液型＿ＡＢ」を取得する。続いて、書換部１０４０は拡張問合せ記述の列条件文を、抽出した列名を用いた列指示文で置き換えて出力する。
【００２６】
なお、書換装置１０００は、列条件文が含まれない問合せ記述（拡張問合せ記述ではない）も受けることができる。問合せ記述内に列条件文が含まれていない場合は、書換部１０４０は問合せ記述に変更を加えず、問合せ記述を出力する。
【００２７】
列階層構造格納部１０６０は、列名の一覧と、列間の階層構造を示す階層構造情報を保持する。階層構造情報の例を図４に示す。図４に示す階層構造情報は列間の階層構造が木構造で表現されている。第１の実施形態では、図４に示すような階層構造情報がテーブルの列名の情報に基づき事前に定義され列階層構造格納部１０６０に保持されているものとする。
【００２８】
図５は、列名が階層構造を表す例である。図５は第１階層として「列１」、「列２」を有し、第２階層として「列１」と関連する「列１＿１」、「列１＿２」を有する。さらに第３階層として「列１＿２」と関連する「列１＿２＿１」を有する。列名が階層構造を有するときに、列名の階層構造の中でｎ番目（ｎは１以上の整数）の階層に存在する列群を［ｄｅｐｔｈ＝ｎ］と規定することで、列条件として列名の階層構造を指定することができる。例えば、テーブル名、ＥｘａｍｐｌｅＴａｂｌｅの列名が、「列１」、「列１＿１」、「列１＿２」、「列２」、「列１＿２＿１」という５個の列を持ち、図５に示す列間の階層構造を有するとする。このとき、テーブルの取得対象列として「列１＿１」、「列１＿２」を選択する問合せ記述は、列名から得られる階層構造を列条件文として記述できる（図６）。このように列名から得られる階層構造を列条件文として用いることで、階層位置を指定した列名の取得が可能となる。
【００２９】
なお、列階層構造格納部１０６０における列名の一覧と、階層構造情報の格納先は主記憶であってもよいし、二次記憶であってもよい。例えば、列名の一覧はデータベース内にテーブルとして保持することができる。また、階層構造情報も単純な木構造であれば、入れ子モデルによりデータベース内にテーブルとして保持することができる。
【００３０】
上記の第１の施形態では、書換装置１０００とＲＤＢ装置２０００をそれぞれ別々の装置として説明したが、一つの装置として構成してもよい。書換装置１０００とＲＤＢ装置２０００を１つの装置として構成する場合、書換部１０４０と受付部２０２０を１つの機能部として設けることもできる。
【００３１】
（動作）
図７は、第１の実施形態に係る問合せ装置５００の動作を示すフローチャートである。図７中、Ｓ１００は、書換装置１０００の動作を示し、Ｓ１１０は、ＲＤＢ装置２０００の動作を示す。以下、書換装置１０００、及び、ＲＤＢ装置２０００の動作を説明することで問合せ装置５００の動作を説明する。
【００３２】
まず、書換装置１０００の拡張受付部１０２０は、レコードの問合せ記述を取得する（Ｓ１０２）。書換部１０４０は問合せ記述内に列条件文が含まれるか否かを判断する（Ｓ１０４）。問合せ記述に列条件文が含まれない（拡張問合せ記述でない）場合（Ｓ１０４：ＮＯ）、書換部１０４０は書換処理をせずに問合せ記述を出力する。問合せ記述に列条件文が含まれる場合（Ｓ１０４：ＹＥＳ）、書換部１０４０は、列階層構造格納部１０６０から列名とその階層構造情報を取得し（Ｓ１０６）、階層構造情報から列条件文に当てはまる列名を抽出する。続いて、書換部１０４０は、拡張問合せ記述内の列条件文を、抽出した列名を用いた列指示文に置き換え（Ｓ１０８）、置き換えた問合せ記述を出力する。
【００３３】
ＲＤＢ装置２０００の受付部２０２０は、書換装置１０００からの置き換えられた問合せ記述を受け取り、データ格納部２１００から問合せ記述の指定するデータを取得する（Ｓ１１０）。
【００３４】
（効果）
第１の実施形態によれば、問合せ記述の記述内容に柔軟性を与え、ＲＤＢＭＳにおけるテーブルの取得対象列を問合せすることができる。問合せ装置は書換装置を備え、書換装置はテーブルの列間の階層構造を用いて取得対象列を指定する列条件文を含む拡張問合せ記述を受付ける。続いて、書換装置の書換部は、列階層構造格納部のテーブルの列名と列間の階層構造情報に基づき、列条件文に当てはまる列名を抽出し、拡張問合せ記述の列条件文を前記抽出した列名を用いた列指示文に置き換えて出力する。
【００３５】
このように、拡張問合せ記述によって、テーブル列名の部分的な情報、又は、列名から得られる階層構造に基づく条件を指定することができ、ユーザが完全な列名を知らなくとも問合せが記述できる。また、拡張問合せ記述は問合せ記述と比べ簡潔となる。
【００３６】
（第２の実施形態）
次に、本発明の第２の実施形態について、図面を用いて説明する。第２の実施形態に係る書換装置は、第１の実施形態に係る書換装置の列階層構造格納部で保持される列名の一覧、及び、列間の階層構造を更新する機能を備える。なお、第２の実施形態に係る書換装置１００２の説明において、第１の実施形態に係る書換装置１０００と同様の構成要素については同様の符号を付して、適宜説明を省略する。
【００３７】
（構成）
図１０は、第２の実施形態に係る書換装置１００２を例示するブロック図である。図１０において、各ブロックは、機能単位の構成を表している。
【００３８】
第２の実施形態に係る書換装置１００２は、第１の実施形態に係る書換装置１０００の構成に加え、スキーマ受付部１１２０、スキーマ格納部１１４０，階層構造抽出部１１６０、抽出ルール格納部１１８０を備える。
【００３９】
スキーマ受付部１１２０は、テーブルのスキーマ、すなわちテーブル内の列名と列のデータ型が指定された情報（以下、スキーマ情報と示す）を装置外部より受け取り、スキーマ格納部１１４０に格納する。
【００４０】
スキーマ格納部１１４０は、スキーマ受付部１１２０より取得したスキーマ情報を保持する。スキーマ情報は列の名前と列のデータ型を含む。
【００４１】
階層構造抽出部１１６０は、抽出ルール格納部１１８０に格納された階層構造の抽出ルールに基づき、スキーマ格納部１１４０内のスキーマ情報から列間の階層構造を算出し、列階層構造格納部１０６０に格納する。
【００４２】
抽出ルール格納部１１８０は、スキーマ情報から列間の階層構造を抽出するための抽出ルールを格納する。抽出ルールの一例としては、スキーマ情報を入力し、列間の階層構造である木構造を出力するプログラムが挙げられる。例えば、列名一覧からパトリシア木を構築するプログラムによって、列間の階層構造を構築することができる。パトリシア木は、文字列集合を格納するトライ木に基づく特殊化された集合データ構造であり、基数木の辺は単一の文字ではなく文字の並びでラベル付けされる。
【００４３】
（動作）
図１１は、第２の実施形態に係る書換装置１００２の動作の一部を示すフローチャートである。具体的には、書換装置１００２のうち、スキーマ受付部１１２０、スキーマ格納部１１４０，階層構造抽出部１１６０、抽出ルール格納部１１８０による動作を示す。
【００４４】
まず、スキーマ受付部１１２０はスキーマ情報を取得し、スキーマ格納部１１４０に格納する（Ｓ２０２）。階層構造抽出部１１６０は、抽出ルール格納部１１８０から階層構造抽出ルールを取得し、取得した階層構造抽出ルールに基づき、スキーマ格納部１１４０のスキーマ情報から列間の階層構造を抽出する（Ｓ２０４）。
【００４５】
図９に、スキーマ情報と列間の階層構造の一例を示す。図９のスキーマ情報がスキーマ格納部１１４０に登録されると、階層構造抽出部１１６０は抽出ルール格納部１１８０から抽出ルールを取得し、取得した抽出ルールを用いて図９の列間の階層構造を抽出する。抽出ルールは、例えば、名称の一覧からパトリシア木を構築するようなプログラムでもよい。なお、抽出ルールは、これに限られるものではなく、スキーマ情報から階層構造を抽出できるものであればよい。
【００４６】
階層構造抽出部１１６０は、算出した階層構造を列階層構造格納部１０６０に格納する（Ｓ２０６）。
【００４７】
なお、スキーマ受付部１１２０、階層構造抽出部１１６０によるＳ２０２〜Ｓ２０６の処理は、図７に示す書換装置１０００によるＳ１００の処理前に実行されることが望ましい。
【００４８】
本実施形態によれば、列名又はデータ型などのスキーマ情報から列間に階層構造を抽出することができる。例えば、繰り返しＦＥによって新たにテーブルに列名が追加された場合でもスキーマ情報から列間の階層構造を抽出し、書換装置の列階層構造格納部に登録することができる。これにより、拡張問合せ記述を利用できるＲＤＢＭＳを増やすことができる。
【００４９】
（第３の実施形態）
図１０は、第３の実施形態に係る書換装置１００４の構成を示すブロック図である。図１０において、各ブロックは、機能単位の構成を表している。第３の実施形態に係る書換装置１００４は、第２の実施形態に係る書換装置１００２に加え、抽出ルール受付部２２００を備える。抽出ルール受付部２２００は、スキーマ情報から階層構造を抽出するための抽出ルールを取得し、抽出ルール格納部１１８０に格納する。
【００５０】
例えば、抽出ルール受付部２２００が抽出ルール格納部１１８０に格納した抽出ルールを「列は、自身の親となる列名を上から順に‘＿’で結合し、自身の元の列名を末尾に‘＿‘と共に追加する」とする。ここで、スキーマ受付部１１２０が図１０に示すスキーマ情報を受付けると、階層構造抽出部１１６０は、格納された上述の抽出ルールを用いて図１０のスキーマ情報の列名から列の階層構造を抽出する。
【００５１】
第３の実施形態によれば、列名などのスキーマ情報から列間の階層構造を抽出する抽出ルールをユーザが自由に定義し、スキーム情報から階層構造を抽出できるようになる。
【００５２】
（活用例）
第１〜３の実施形態の活用例として、機械学習処理によるデータ分析機能を有するＲＤＢＭＳに適用することが挙げられる。データ分析の精度の向上のためにＲＤＢＭＳが管理するテーブルに対して頻繁に前処理するとテーブルの列数が膨大となる。また、分析案件毎に独自の命名規則（ルール）を定める、あるいは、列間に暗黙的な階層構造を定めることも多くなる。このような状態のテーブルは、ＳＱＬの操作が煩雑となる。
【００５３】
本実施形態を適用することで、データ分析の前処理によって膨大な列群となったテーブルであっても所望の列群を取得することができる。
【００５４】
また、拡張問合せ記述の適用により、問合せ記述の表記を簡潔にすることができる。これにより、ＲＤＢＭＳのユーザの記述労力を削減できるだけではなく、問合せ記述の読解あるいは識別も容易となる。したがって、利用勝手のよいデータ分析向けＲＤＢＭＳを提供することができる。
（ハードウエア構成）
図１２は、本発明の第１〜３の実施形態における問合せ装置５００、書換装置１０００、１００２、１００４、又は、ＲＤＢ装置２０００をコンピュータ装置で実現したハードウエア構成を示す図である。
【００５５】
図１２に示すように、問合せ装置、又は、ＲＤＢ装置は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）９１、ネットワーク接続用の通信Ｉ／Ｆ（通信インターフェース）９２、メモリ９３、及び、プログラムを格納するハードディスク等の記憶装置９４を含む。また、ＣＰＵは、システムバス９７を介して入力装置９５及び、出力装置９６に接続されている。
【００５６】
ＣＰＵ９１は、オペレーティングシステムを動作させて本発明の第１〜３の実施形態に係る問合せ装置、又は、ＲＤＢ装置を制御する。またＣＰＵ９１は、例えば、ドライブ装置に装着された記録媒体からメモリ９３にプログラムやデータを読み出す。
【００５７】
また、ＣＰＵ９１は、例えば、入力される情報信号を処理する機能を有し、プログラムに基づいて拡張受付部１０２０、書換部１０４０、スキーマ受付部１１２０、階層構造抽出部１１６０、抽ルール受付部１２００各種機能の処理を実行する。
【００５８】
記憶装置９４は、例えば、光ディスク、フレキシブルディスク、磁気光ディスク、外付けハードディスク、又は半導体メモリ等である。記憶装置９４の一部の記憶媒体は、不揮発性記憶装置であり、そこにプログラムを記憶する。また、プログラムは、通信網に接続されている。図示しない外部コンピュータからダウンロードされてもよい。
【００５９】
入力装置９５は、例えば、マウス、キーボード、内臓のキーボタン、カード取込口、又は、タッチパネルなどで実現され、入力操作に用いられる。
【００６０】
出力装置９６は、例えば、ディスプレイで実現され、ＣＰＵ９１により処理された情報等を出力して確認するために用いられる。
【００６１】
以上のように、本発明の各実施形態は、図１２に示されるハードウエア構成によって実現される。但し、問合せ装置、ＲＤＢＭＳが備える各部の実現手段は、特に限定されない。すなわち、問合せ装置は、物理的に結合した一つの装置により実現されてもよいし、物理的に分離した二つ以上の装置を有線又は無線で接続し、これら複数の装置により実現してもよい。
【００６２】
以上、実施形態（及び実施例）を参照して本願発明を説明したが、本願発明は上記実施形態（及び実施例）に限定されものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【００６３】
９１  ＣＰＵ
９２  通信Ｉ／Ｆ（通信インターフェース）
９３  メモリ
９４  記憶装置
９５  入力装置
９６  出力装置
９７  システムバス
５００  問合せ装置
１０００、１００２、１００４  書換装置
１０２０  拡張受付部
１０４０  書換部
１０６０  列階層構造格納部
１１２０  スキーマ受付部
１１４０  スキーマ格納部
１１６０  階層構造抽出部
１１８０  抽出ルール格納部
２０００  ＲＤＢ装置
２０２０  受付部
２１００  データ格納部
【図１】
0006589317.tif 000002
【図２】
0006589317.tif 000003
【図３】
0006589317.tif 000004
【図４】
0006589317.tif 000005
【図５】
0006589317.tif 000006
【図６】
0006589317.tif 000007
【図７】
0006589317.tif 000008
【図８】
0006589317.tif 000009
【図９】
0006589317.tif 000010
【図１０】
0006589317.tif 000011
【図１１】
0006589317.tif 000012
【図１２】
0006589317.tif 000013
【図１３】
0006589317.tif 000014
【図１４】
0006589317.tif 000015