【事件の表示】
　平成　９年特許願第　３５０２１号「情報処理方法および並列データベース管理システム」拒絶査定不服審判事件〔平成１０年　９月　２日出願公開、特開平１０−２３２８７５〕について、次のとおり審決する。
【結　論】
　本件審判の請求は、成り立たない。
【理　由】
１．手続の経緯
　本願は、平成９年２月１９日の出願であって、平成１６年９月２７日付で拒絶査定がなされ（発送日同年１０月５日）、これに対し、同年１１月４日に拒絶査定不服審判の請求がなされると共に、同日に手続補正書が提出されたものである。
　
２．本願発明
　本願の請求項１ないし請求項５に記載された発明は、平成１６年１１月４日に提出された手続補正書の特許請求の範囲の請求項１ないし請求項５に、それぞれ記載された、以下のとおりのものである。
　
「【請求項１】
　データベースに接続された処理装置を用いた情報処理方法において、
　前記データベースに対する問い合わせの要求に対応したデータベース処理の実行を指示するための実行手順コードを作成する要求受付処理ステップ、
　前記実行手順コードに従って前記データベース処理を並列に実行する複数の実行処理プログラムを保持するステップ、および、
　前記要求受付処理ステップ及び前記実行処理プログラムのそれぞれがそれぞれの処理機能を実行するための組込みモジュールを組み込んで実行するステップを有する方法であって、
　前記要求受付処理ステップの実行時に、前記要求受付処理ステップに組み込まれた前記組込みモジュールの実行結果として得られる組込みモジュール実行結果データを、前記実行処理プログラムに組み込まれた組込みモジュールに入力し、前記実行手順コードに従って、当該組込みモジュールを実行するステップを含むことを特徴とする情報処理方法。
　【請求項２】
　請求項１に記載の情報処理方法において、
　前記組込みモジュールのインターフェイスの仕様を示す組込みモジュールインターフェイス仕様は、ある組込みモジュールを実行した結果得られる組込みモジュール実行結果データを、前記実行処理プログラムに組み込まれた他の組込みモジュールの入力とする指示を含み、
　前記要求受付処理ステップにおいて、当該組込みモジュールインターフェイス仕様の記述に基づいて、前記実行処理コードを作成するステップを含むことを特徴とする情報処理方法。
　【請求項３】
　請求項２に記載の情報処理方法において、
　前記データベースに対する問い合わせの要求に含まれる入力パラメタ以外に、前記組込みモジュールに入力される入力パラメタがあることを示すインターフェイスの仕様を、前記組込みモジュールインターフェイス仕様の記述に含み、
　当該組込みモジュールインターフェイス仕様の記述に基づいて、前記要求受付処理ステップにおいて、当該入力パラメタのインターフェイス仕様に従った入力パラメタを、前記組込みモジュールに入力して組込みモジュールを実行させるステップ、
および、
　当該組込みモジュールインターフェイス仕様の記述に基づいて、前記要求受付処理ステップにおいて前記実行手順コードを作成するステップと、当該実行手順コードに従って、当該入力パラメタのインターフェイス仕様に従った入力パラメタを、前記組込みモジュールに入力して組込みモジュールを実行するステップ、
の少なくとも一方を含むことを特徴とする情報処理方法。
　【請求項４】
　請求項２または請求項３に記載の情報処理方法において、
　ある組込みモジュールを実行した結果得られる組込みモジュール実行結果データを、前記実行処理プログラムに組み込まれた他の組込みモジュールの入力とする指示を、
　前記実行処理プログラムが実行する組込みモジュール、または、前記要求受付処理ステップで実行される組込みモジュールの、少なくとも一方の組込みモジュールインターフェイス仕様の記述に含むことを特徴とする情報処理方法。
　【請求項５】
　データベースに対する問い合わせの要求に対応したデータベース処理の実行を指示するための実行手順コードを作成する要求受付処理手段、
　前記実行手順コードに従って前記データベース処理を並列に実行する複数の実行処理プログラムを保持する手段、および、
　前記要求受付処理ステップ及び前記実行処理プログラムのそれぞれがそれぞれの処理機能を実行するための組込みモジュールを組み込んで実行する手段を有するシステムであって、
　前記要求受付処理手段は、組み込まれた前記組込みモジュールの実行結果として得られる組込みモジュール実行結果データを、前記実行処理プログラムに組み込まれた組込みモジュールに入力し、前記実行手順コードに従って、当該組込みモジュールを実行する手段を有することを特徴とする並列データベース管理システム。」
　
３．原査定の理由
　原査定の理由は概略以下の理由のとおりである。
　
（理由）
　特許請求の範囲第１項ないし第５項に記載された発明は、明確でなく、かつ、明細書および図面に記載されたものでないから、特許法第３６条第６項第１号および第２号の規定により、本願は拒絶すべきものである。
　
４．当審の判断
　上述の原査定の理由が妥当であるか否か、以下で検討する。
　
（４−１）特許法第３６条第６項第２号の規定違反について
　本願の特許請求の範囲の記載は、以下の（ａ）〜（ｋ）の点で技術的意味が不明瞭となっている。
　
（ａ）請求項１の「データベースに接続された処理装置を用いた情報処理方法」という記載は、処理装置を用いて人間が行う情報処理方法とも、処理装置が行う情報処理方法とも、解釈可能な表現であり、「要求受付処理ステップ」、「実行処理プログラムを保持するステップ」、「組込みモジュールを組み込んで実行するステップ」の各ステップの主体が技術的に不明瞭となっている。
　
（ｂ）請求項１の「データベース」がデータベースファイルを意味するのか、データベース装置またはデータベースシステムを意味するのかという点でも技術的意味が不明瞭である。
　
（ｃ）請求項１の「処理装置」の有するハードウェア資源についての具体的な記載が無いため、各ステップがソフトウェアによる情報処理ステップであると仮定しても、ハードウェア資源とどのように協働して、各情報処理ステップを実行しているのかということが技術的に不明瞭となっている。
　
（ｄ）請求項１の「前記実行手順コードに従って前記データベース処理を並列に実行する複数の実行処理プログラムを保持するステップ」という記載は、「実行手順コード」を変換して「複数の実行処理プログラム」を作成して保持するステップとも解釈できる一方、「実行手順コード」を与えることによって、「実行手順コード」に対応したデータベース処理を並列に実行する機能を有し、予め用意されている複数の実行処理プログラムを実行可能な状態で保持するステップとも解釈可能であり、技術的意味が不明瞭となっている。
　
（ｅ）請求項１の「前記要求受付処理ステップ及び前記実行処理プログラムのそれぞれがそれぞれの処理機能を実行するための組込みモジュールを組み込んで実行するステップ」という記載は、それ以前に順次実行されてきた「要求受付処理ステップ」および「保持するステップ」との実行の順序関係が不明瞭となっている。
　
（ｆ）請求項２の「前記実行処理コード」という記載は、対応する記載が、請求項１にも２にも見あたらない。（「前記実行手順コード」あるいは「前記実行処理プログラム」の誤記か？）
　
（ｇ）請求項２の「前記要求受付処理ステップにおいて、当該組込みモジュールインターフェイス仕様の記述に基づいて、前記実行処理コードを作成するステップを含む」という記載は、要求受付処理ステップにおける「前記データベースに対する問い合わせの要求に対応したデータベース処理の実行を指示するための実行手順コードを作成する」という処理ステップや、「前記要求受付処理ステップ及び前記実行処理プログラムのそれぞれがそれぞれの処理機能を実行するための組込みモジュールを組み込んで実行するステップ」との順序関係が不明瞭な記載となっている。
　
（ｈ）請求項３の「当該組込みモジュールインターフェイス仕様の記述に基づいて、前記要求受付処理ステップにおいて、当該入力パラメタのインターフェイス仕様に従った入力パラメタを、前記組込みモジュールに入力して組込みモジュールを実行させるステップ、
および、
　当該組込みモジュールインターフェイス仕様の記述に基づいて、前記要求受付処理ステップにおいて前記実行手順コードを作成するステップと、当該実行手順コードに従って、当該入力パラメタのインターフェイス仕様に従った入力パラメタを、前記組込みモジュールに入力して組込みモジュールを実行するステップ、
の少なくとも一方を含む」という記載は、新たに追加された各ステップが既存のステップに対してどのような順序で実行されるのかという点で、技術的意味が不明瞭となっている。
　
（ｉ）請求項５の「前記実行手順コードに従って前記データベース処理を並列に実行する複数の実行処理プログラムを保持する手段」という記載は、「実行手順コード」を変換して「複数の実行処理プログラム」を作成して保持する手段とも解釈できる一方、「実行手順コード」を与えることによって、「実行手順コード」に対応したデータベース処理を並列に実行する機能を有し、予め用意されている複数の実行処理プログラムを実行可能な状態で保持する手段とも解釈可能であり、技術的意味が不明瞭となっている。
　
（ｊ）請求項５の「前記要求受付処理ステップ」という記載は、対応する記載が見あたらない。（「前記要求受付処理手段」の誤記か？）
　
（ｋ）請求項５の「前記要求受付処理ステップ及び前記実行処理プログラムのそれぞれがそれぞれの処理機能を実行するための組込みモジュールを組み込んで実行する手段を有する」という記載は、「要求受付処理ステップ」や「実行処理プログラム」のようなソフトウェアがハードウェア手段である「組込みモジュールを組み込んで実行する手段を有」していると解釈可能であり、技術的意味が不明瞭となっている。
　
　したがって、特許請求の範囲の記載は、特許を受けようとする発明が明確でないから、特許法第３６条第６項第２号の規定する要件を満たしていない。
　
（４−２）特許法第３６条第６項第１号の規定違反について
　平成１６年１１月４日に提出された手続補正書により補正された後の本願の明細書（以下、単に「本願明細書」という。）の「発明の詳細な説明」の欄（段落０００１〜００５６）には、以下のように記載されている。
「　　【０００１】
　　【発明の属する技術分野】
　本発明は、システム性能を向上することが出来る情報処理方法および並列データベース管理システムに関する。
　　　【０００２】
　　【従来の技術】
　図１０に、従来技術を適用することで考えられるデータベースシステムの一例の構成概念図を示す。
　このデータベースシステム１０００は、ＳＧＭＬ（Standard Generalized Markup Language；標準一般化マーク付け言語）文書を管理するためのシステムであり、データベース管理システム１１０２と、記憶装置１１２６および１１２８とを具備している。
　　　【０００３】
　前記データベース管理システム１１０２は、ユーザ問合せ１０４を受け付ける要求受付サーバ１１０５と、その要求受付サーバ１１０５からの指示に従ってデータベース処理を実行する複数の実行サーバ１１０６と、システムの定義情報を管理するディクショナリサーバ１１０７と、これらのサーバ１１０５，１１０６，１１０７を接続する通信路１０８とを具備している。
　　　【０００４】
　ＳＧＭＬ文書の例として次の定義を用いる。
CREATE TYPE sgmltext_t (
  text BLOB,
  FUNCTION extract ( sgmltext_t, 
                     VARCHAR )
   RETURNS BLOB
   LANGUAGE C
   EXTERNAL NAME 'p_sgml_extract';
 );
CREATE TABLE reports (
  published_date  DATE,
  contents        sgmltext_t );
　なお、上記の例は、ＳＱＬ３（Structured Query Language;構造化問合せ言語）によって記述されている。
　　　【０００５】
　ユーザは、ＳＧＭＬで記述されたデータ（以下、ＳＧＭＬテキストと略す）をＡＤＴ型（Abstract Data Type；抽象データ型）の sgmltext_t 型を用いて管理する。この sgmltext_t 型は、ＢＬＯＢ（Binary Large Object ）型の text を構成要素とする。
　　　【０００６】
　また、ユーザのデータベースモデルにおける「報告書」に対応するデータの構造をテーブルreports を用いて表わす。さらに、「報告書」が「発行日」と「報告内容」とを構成要素とすることに対応させて、テーブルreports がＤＡＴＥ型のカラムpublished_date と sgmltext_t 型のカラムcontents からなるように定義する。
　大量のＳＧＭＬ文書を並列に処理できるように、テーブルreports のレコードおよびＳＧＭＬテキストは、実行サーバ１１０６がアクセスする記憶装置１１２６に保持されている。なお、「報告書」を「発行日」による条件で高速検索できるように、実行サーバ１１０６が提供する一般的なインデクス機能を用いて、テーブルreports のカラムpublished_date にインデクスを設定する。
　　　【０００７】
　ＡＤＴ関数extract() は、ＳＧＭＬテキストの中からタグで区切られるテキストデータを抽出する関数であり、ＳＧＭＬテキストおよび抽出する部分を指定するタグ名を入力情報とし、sgmltext_tの型を持つデータに対して適用でき、Ｃ言語で記述された外部関数p_sgml_extract に関連付けられている。
　　　【０００８】
　外部関数p_sgml_extract()は、前記ＡＤＴ関数extract() を実現する関数として定義されている。
　前記実行サーバ１１０６には、ＳＧＭＬ文書データ管理機能を実現するための組込みモジュール１１２５が組み込まれている。この組込みモジュール１１２５には、前記外部関数p_sgml_extract()を実現するためのコード１００１が含まれている。
　　　【０００９】
　前記ディクショナリサーバ１１０７がアクセスする記憶装置１２８には、抽出パラメタ１００２が保持されている。この抽出パラメタ１００２は、指定されたタグで区切られるテキストデータをＳＧＭＬ文書から抽出するために用いられる制御情報である。また、抽出パラメタは、抽出したテキストデータをＳＧＭＬ文書として構造化するための構造情報を含んでおり、抽出結果を作成するためには不可欠な情報である。抽出パラメタは、ＳＧＭＬ文書構造に基づいており、同一のＳＧＭＬ文書構造を有するＳＧＭＬテキストに対して共通に利用する。
　「報告書」での「報告内容」の形式すなわち文書構造を固定とするように、ＳＧＭＬ文書構造は、ＳＧＭＬテキストを保持するカラムによって固定とする。これに従って、抽出パラメタ１００２は、処理対象のＳＧＭＬテキストを保持しているカラムによって固定とする。そこで、テーブル名とカラム名から抽出パラメタ１００２を取得できるように、ディクショナリサーバ１１０７の機能を用いて抽出パラメタ１００２を一元管理する。
　　　【００１０】
　抽出処理は次の手順で行なう。
(１)ディクショナリサーバ１１０７にアクセスし、操作対象のＳＧＭＬテキストを保持しているテーブル名とカラム名をもとに抽出パラメタを取得する。
(２)上記の(１)で取得した抽出パラメタを利用して抽出処理を行なう。
　上記の手順(１)(２)の実行制御は、組込みモジュール１１２５が行なう。
　　　【００１１】
　次に、検索処理について説明する。
　検索要求「発行日が１９９６年１０月１５日より最近の報告書のアブストラクト部分を抽出せよ」は、次のように記述する。
SELECT extract(contents, 'abstract')
FROM   reports
WHERE  published_date  '1996-10-15'
　なお、上記の例は、ＳＱＬ３によって記述されている。
　　　【００１２】
　上記検索要求に見合うデータベース処理は、次のような手順で行なう。
(１)カラムpublished_date に設定されたインデクスを用いて、WHERE句の条件を満たすレコードの集合をテーブルreports から取得する。
(２)上記の(１)で得られたレコードの集合を基にＳＧＭＬテキストを逐次取り出し、ＡＤＴ関数extract() を実現する外部関数p_sgml_extract()をコールして、アブストラクト部分を抽出する。
　　　【００１３】
　上記の(２)でＳＧＭＬテキストを逐次取り出してアブストラクト部分を抽出する処理については、並列処理機能を有効に利用して高速に処理すること及び要求受付サーバ１１０５に検索結果をまとめるときのデータ転送量を少なくすることを考慮して、実行サーバ１１０６で行なう。
　すなわち、実行サーバ１１０６では、アブストラクト部分を抽出するために外部関数p_sgml_extract()をコールし、組込みモジュール１１２５に実行制御を渡す。
　実行制御が渡された組込みモジュール１１２５は、ディクショナリサーバ１１０７にアクセスして抽出パラメタを取得する。そして、その抽出パラメタを利用して抽出処理を行なう。
　　　【００１４】
　なお、上記のようなデータベースシステムに適用可能な従来技術として次のものがある。
(１)並列データベース処理
　例えば、特開平８−１３７９１０号公報に記載されているように、ユーザの問い合わせを処理プロセッサが受け付け、複数のデータベースエンジンプロセッサで最適に負荷が分散されるようにＤＢＭＳが実行制御を行なう。
(２)ＳＱＬ３
　ＳＱＬ３は、国際標準化機構ＩＳＯが標準化をすすめているデータベース言語仕様の草案であり、例えば「Information technology - Database languages - SQL - Part 2: SQL/FoundationISO/IEC JTC1/SC21 N10489」に記載されている。
　　　【００１５】
(３)オブジェクト・リレーショナルＤＢＭＳ
　オブジェクト指向の概念を取り入れたリレーショナルＤＢＭＳである。例えば「オブジェクトリレーショナルＤＢＭＳs，Ｍichael Ｓtonebraker著，大田佳伸訳，インターナショナル・トムソン・パブリッシング・ジャパン１９９６年８月」に記載されており、ＳＱＬ３のＡＤＴおよびＡＤＴ関数に対応付けることができるユーザ定義型およびユーザ定義関数を使用可能にすべきであることが述べられている。
　次の例は、ユーザ定義の複合型phone_t の定義文である。
create type phone_t (
  area         varchar(3),
  number       varchar(7),
  description  varchar(20) );
　上記の例は、複合型phone_t が、 area という名前で参照される３バイト以下の可変文字列型の要素と、 number という名前で参照される７バイト以下の可変文字列型の要素と、description という名前で参照される２０バイト以下の可変文字列型の要素の３つの要素から構成されることを示している。
　次の例は、ユーザ定義関数Northness_equal() の定義文である。
create function Northness_equal (point, point) returns Boolean
with selfunc = selectivity_comp
external name '/usr/Northness_equal'
language C;
　上の例は、ユーザ定義関数Northness_equal() が、Ｃ言語で記述された外部関数 /usr/Northness_equal に関連付けられていることを示している。
　　　【００１６】
(４)関数定義の指定
　例えば「共通オブジェクトリクエスト・ブローカ　〜構造と仕様〜，オブジェクトマネジメントグループ編著， 相磯秀夫監訳，社団法人 日本オフィスオートメーション協会，原本 The Common Object Request Broker:Architecture and Specification OMG Document Number 91.12.1, Revision 1.1」に記述されているようなＩＤＬ（Interface Definition Language;インタフェイス定義言語）を用いる関数定義の指定方法がある。この方法では、ＣＯＲＢＡと呼ばれるソフトウエアアーキテクチャにおいて、モジュール間のインタフェイスをＩＤＬによって定義する。そのインタフェイスをＣ言語などのプログラミング言語に対応付け、スタブと呼ばれる接続用のモジュールを生成する。このスタブモジュールを介することによって、柔軟なモジュール間通信を可能としている。
　　　【００１７】
　　【発明が解決しようとする課題】
　前記従来のデータベースシステム１０００では、次のような問題がある。
　すなわち、前記検索要求に対応したデータベース処理では、並列処理する複数の実行サーバ１１０６上の組込みモジュール１１２５の全てから１つのディクショナリサーバ１１０７に対するアクセスが発生し、ディクショナリサーバ１１０７で抽出パラメタを取り出す処理を集中して行なうことになる。このため、ディクショナリサーバ１１０７の負荷が一時的に過大となり、ディクショナリサーバ１１０７の処理性能がネックとなって、システム性能が低下してしまう問題点がある。
　そこで、本発明の目的は、上記の問題を解消し、システム性能を向上させることが出来る情報処理方法および並列データベース管理システムを提供することにある。
　
（段落００１８は削除された）
　
　　　【００１９】
　【課題を解決するための手段】
　第１の観点では、本発明は、データベースに接続された処理装置を用いた情報処理方法において、前記データベースに対する問い合わせの要求に対応したデータベース処理の実行を指示するための実行手順コードを作成する要求受付処理ステップ、前記実行手順コードに従って前記データベース処理を並列に実行する複数の実行処理プログラムを保持するステップ、および、前記要求受付処理ステップ及び前記実行処理プログラムのそれぞれがそれぞれの処理機能を実行するための組込みモジュールを組み込んで実行するステップを有する方法であって、前記要求受付処理ステップの実行時に、前記要求受付処理ステップに組み込まれた前記組込みモジュールの実行結果として得られる組込みモジュール実行結果データを、前記実行処理プログラムに組み込まれた組込みモジュールに入力し、前記実行手順コードに従って、当該組込みモジュールを実行するステップを含むことを特徴とする情報処理方法を提供する。
　　　【００２０】
　第２の観点では、本発明は、上記第１の観点に記載の情報処理方法において、前記組込みモジュールのインターフェイスの仕様を示す組込みモジュールインターフェイス仕様は、ある組込みモジュールを実行した結果得られる組込みモジュール実行結果データを、前記実行処理プログラムに組み込まれた他の組込みモジュールの入力とする指示を含み、前記要求受付処理ステップにおいて、当該組込みモジュールインターフェイス仕様の記述に基づいて、前記実行処理コードを作成するステップを含むことを特徴とする情報処理方法を提供する。
　　　【００２１】
　第３の観点では、本発明は、上記第２の観点に記載の情報処理方法において、前記データベースに対する問い合わせの要求に含まれる入力パラメタ以外に、前記組込みモジュールに入力される入力パラメタがあることを示すインターフェイスの仕様を、前記組込みモジュールインターフェイス仕様の記述に含み、当該組込みモジュールインターフェイス仕様の記述に基づいて、前記要求受付処理ステップにおいて、当該入力パラメタのインターフェイス仕様に従った入力パラメタを、前記組込みモジュールに入力して組込みモジュールを実行させるステップ、および、当該組込みモジュールインターフェイス仕様の記述に基づいて、前記要求受付処理ステップにおいて前記実行手順コードを作成するステップと、当該実行手順コードに従って、当該入力パラメタのインターフェイス仕様に従った入力パラメタを、前記組込みモジュールに入力して組込みモジュールを実行するステップ、の少なくとも一方を含むことを特徴とする情報処理方法を提供する。
　　　【００２２】
　第４の観点では、本発明は、上記第２または第３の観点に記載の情報処理方法において、ある組込みモジュールを実行した結果得られる組込みモジュール実行結果データを、前記実行処理プログラムに組み込まれた他の組込みモジュールの入力とする指示を、前記実行処理プログラムが実行する組込みモジュール、または、前記要求受付処理ステップで実行される組込みモジュールの、少なくとも一方の組込みモジュールインターフェイス仕様の記述に含むことを特徴とする情報処理方法を提供する。
　　　【００２３】
　第５の観点では、本発明は、データベースに対する問い合わせの要求に対応したデータベース処理の実行を指示するための実行手順コードを作成する要求受付処理手段、前記実行手順コードに従って前記データベース処理を並列に実行する複数の実行処理プログラムを保持する手段、および、前記要求受付処理ステップ及び前記実行処理プログラムのそれぞれがそれぞれの処理機能を実行するための組込みモジュールを組み込んで実行する手段を有するシステムであって、前記要求受付処理手段は、組み込まれた前記組込みモジュールの実行結果として得られる組込みモジュール実行結果データを、前記実行処理プログラムに組み込まれた組込みモジュールに入力し、前記実行手順コードに従って、当該組込みモジュールを実行する手段を有することを特徴とする並列データベース管理システムを提供する。
　　　【００２４】
　本発明によれば、上記の課題は、特許請求の範囲に記載された発明によって解決される。本発明の実施例は、発明の実施の形態項に記載されている。
　　　【００２５】
　　【発明の実施の形態】
　以下、図を用いて本発明の実施の一形態を詳細に説明する。
　図１は、本発明にかかるデータベースシステムの構成図である。
　前述の図１０で説明したデータベースシステム１０００に対し、前述の問題を回避すべく、本発明を適用したデータベースシステムを説明するものである。
　このデータベースシステム１００は、データベースを利用するアプリケーションプログラム１０１と、データベース管理システム１０２と、記憶装置１２６，１２８および１４０とを具備している。
　　　【００２６】
　前記アプリケーションプログラム１０１は、一般的なデータベースシステムの運用で行われているように、以下の手順にて作成される。
(１)ユーザがデータベース言語（この例ではＳＱＬ３とする）によって問合せ文記述する。
(２)上記の(１)の記述を入力とし、データベース管理システム１０２が提供するアプリケーションプログラム作成ツールを用いて、問合せ処理を要求するプログラムのソースコードを生成する。
(３)上記の(２)のソースコードを適当なプログラミング言語コンパイラでコンパイルし、アプリケーションプログラム１０１を得る。
　　　【００２７】
　前記アプリケーションプログラム１０１は、データベース管理システム１０２が提供する問合せ処理要求関数１０３をコールする。この問合せ処理要求関数１０３をコールするときに、ユーザ問合せ１０４を入力とする。そして、問合せ要求関数１０３は、データベース管理システム１０２（の要求受付サーバ１０５の問合せ処理制御部１０９）に、ユーザの問合せを伝える。
　　　【００２８】
　前記データベース管理システム１０２は、前記アプリケーションプログラム１０１からの要求を受け付ける要求受付サーバ１０５と、ユーザからの要求に見合うデータベース処理を並列に実行する複数の実行サーバ１０６と、システムの定義情報を管理するディクショナリサーバ１０７と、これらのサーバ１０５，１０６，１０７を接続する通信路１０８と、組込みモジュール定義登録ツール１３２とを具備している。
　　　【００２９】
　前記要求受付サーバ１０５は、前記アプリケーションプログラム１０１からの要求を受け付けて当該要求に見合う処理の実行制御を行なう問合せ処理制御部１０９と、受け付けた問合せ処理要求を解析する問合せ解析部１１０と、問合せ解析部１１０の解析結果をもとにしてユーザの要求に見合ったデータベース処理の実行手順を指示する実行手順コード１１１および実行サーバ１０６で処理を実行するときに入力情報として渡す実行時入力情報１１２を実行用ワークエリア１１３に作成する実行手順コード作成部１１４と、前記実行手順コード１１１および前記実行時入力情報１１２をもとに実行サーバ１０６にデータベース処理を行なうように指示する実行指示部１１５と、入力情報取得用の組込みモジュール１１７と、前記実行指示部１１５の指示に応じて実行サーバ１０６が返却する処理結果を保持する実行結果保持部１１８とを具備している。
　　　【００３０】
　前記実行指示部１１５は、組込みモジュール１１７を実行して前記実行時入力情報１１２を取得する処理の制御を行なうパラメタバインド制御部１１６を含んでいる。なお、パラメタバインド制御部１１６によって組込みモジュール１１７を実行して前記実行時入力情報１１２を決定することを「パラメタバインド」と呼ぶ。前記組込みモジュール１１７は、このパラメタバインドを行なうコードを保持している。
　　　【００３１】
　前記組込みモジュール定義登録ツール１３２は、組込みモジュール１１７，１２５のインタフェイス仕様を記述するための組込みモジュールインタフェイス定義言語を提供し、この組込みモジュールインタフェイス定義言語によって記述された組込みモジュール仕様記述１３１を解析し、その解析結果をもとに組込みモジュール定義情報１３０をディクショナリサーバ１０７に登録する。
　　　【００３２】
　前記実行サーバ１０６は、前記要求受付サーバ１０５の実行指示部１１５からの指示を受信しその指示に従った処理を行なうように制御する実行制御部１１９と、前記要求受付サーバ１０５の実行指示部１１５から送信される実行手順コード１１１および実行時入力情報１１２を実行手順コード１２３および実行時入力情報１２４として保持するための実行用ワークエリア１２０と、前記記憶装置１２６に格納しているデータベースファイル１２１への入出力および実行サーバ１０６上でのデータの取り扱いを管理するためのデータアクセス管理部１２２と、実行サーバ１０６において実行する外部関数からなる組込みモジュール１２５とを具備している。
　　　【００３３】
　前記ディクショナリサーバ１０７は、データベースシステム１００に関する定義情報を管理する定義情報管理部１２７を具備している。
　前記定義情報は、記憶装置１２８に格納されており、ユーザ定義関数情報１２９と組込みモジュール定義情報１３０とからなる。これらユーザ定義関数情報１２９および組込みモジュール定義情報１３０の詳細については、後で図４を参照して説明する。
　　　【００３４】
　このデータベースシステム１００におけるユーザの問合せは、次の手順で処理される。
(１)アプリケーションプログラム１０１からの要求を要求受付サーバ１０５が受け付ける。
(２)要求受付サーバ１０５が要求に見合った処理を実行サーバ１０６に指示する。
(３)実行サーバ１０６が要求に見合った処理を実行し、実行結果を要求受付サーバ１０５の実行結果保持部１１８に通信路１０８を介して直接送信する。これにより処理結果が要求受付サーバ１０５の実行結果保持部１１８に保持される。
　　　【００３５】
(４)アプリケーションプログラム１０１からの処理結果取り出しの要求を要求受付サーバ１０５が受け付ける。
(５)要求受付サーバ１０５が、実行結果保持部１１８で保持している実行結果をアプリケーションプログラム１０１に返す。
　　　【００３６】
　図２は、問合せ処理制御部１０９がアプリケーションプログラム１０１からの問合せ要求に応じて行なう問合せ処理の流れ図である。
　この問合せ処理の入力はユーザ問合せ１０４であり、出力および処理結果は実行結果保持部１１８に実行結果を保持させることである。
　ステップ２０１では、問合せ処理制御部１０９は、問合せ解析部１１０を用いてユーザ問合せ１０４を解析する。この解析の結果、実行手順コードパターン選定結果を取得する。このステップ２０１の問合せ解析処理の詳細については、後で図３を参照して説明する。
　ステップ２０２では、問合せ処理制御部１０９は、前記ステップ２０１で取得した実行手順コードパターン選定結果を基に実行手順コード作成部１１４を用いて実行手順コード１１１を作成する。この実行手順コード１１１の詳細については、後で図５を参照して説明する。また、このステップ２０２の実行コード作成処理の詳細については、後で図６を参照して説明する。
　ステップ２０３では、問合せ処理制御部１０９は、前記ステップ２０２で取得した実行手順コード１１１を基に実行指示部１１５を用いて実行サーバ１０６にユーザの要求に見合った処理を行なうように指示する。そして、処理を終了する。このステップ２０３の実行指示処理の詳細については、後で図７を参照して説明する。
　　　【００３７】
　図３は、前記ステップ２０１の問合せ解析処理を示す流れ図である。
　この問合せ解析処理（２０１）の入力はユーザ問合せ１０４であり、出力および処理結果は実行手順コードパターン選定結果とパラメタバインド指示情報リストである。
　ステップ３０１では、問合せ解析部１１０は、ユーザ問合せ１０４の構文解析および意味解析を行なう。すなわち、ユーザ問合せ１０４の中でＡＤＴ関数がコールされているか，どんな型のデータを操作対象としているか等が解析される。このステップ３０１の処理は、一般的なＳＱＬの構文解析および意味解析の手法をもとにＳＱＬ３の記述に対応するよう拡張した形態でよい。
　ステップ３０２では、問合せ解析部１１０は、前記ステップ３０１によって解析した結果をもとにディクショナリサーバ１０７の定義情報管理部１２７にアクセスし、ユーザ定義関数情報１２９および組込みモジュール定義情報１３０を参照し、ＡＤＴ関数と外部関数の対応を調べて、組込みモジュールの実行形態を解析する。
　ステップ３０３では、問合せ解析部１１０は、前記ステップ３０２の解析結果をもとにユーザの要求に見合ったデータベース処理の実行手順コードパターンを選定し、実行手順コードパターン選定結果を生成する。そして、処理を終了する。
　　　【００３８】
　図４は、ユーザ定義関数情報１２９および組込みモジュール定義情報１３０の構成図である。
　ユーザ定義関数情報１２９は、ＡＤＴ関数と外部関数との対応付けを保持するＡＤＴ関数−外部関数テーブル４０１と、ＡＤＴ関数パラメタの構成情報を保持するＡＤＴ関数パラメタテーブル４０２とからなる。
　前記ＡＤＴ関数−外部関数テーブル４０１は、ＡＤＴ関数名，ＡＤＴ型名および外部関数名を示すカラムからなる。
　ＡＤＴ関数−外部関数テーブル４０１のレコード４０３は、ＡＤＴ関数extract() が、sgmltext_t型に定義され、外部関数p_sgml_extract()に対応付けられることを表わしている。このレコード４０３を参照することにより、問合せ解析部１１０は、ユーザ問合せ１０４においてＡＤＴ関数extract() を実行するよう要求されている場合、外部関数p_sgml_extract()をコールしなければならない、という解釈を行なう。
　前記ＡＤＴ関数パラメタテーブル４０２は、ＡＤＴ関数名，パラメタ番号，パラメタ型を示すカラムからなる。
　ＡＤＴ関数パラメタテーブル４０２のレコード４０４は、ＡＤＴ関数extract() の第１パラメタのパラメタ型がsgmltext_tであることを表わしている。ここで、ＡＤＴ関数の第１パラメタで受け渡すパラメタ値は、当該ＡＤＴ関数が処理対象とするＡＤＴ型のデータとする。
　ＡＤＴ関数パラメタテーブル４０２のレコード４０５は、ＡＤＴ関数extract() の第２パラメタのパラメタ型がVARCHAR であることを表わす。意味的には、ＡＤＴ関数extract() の第２パラメタで受け渡すパラメタ値は、抽出部分を指定するタグの名称である。すなわち、ＡＤＴ関数extract() は、この第２パラメタで指定されたタグによって区切られたＳＧＭＬ文書の部分を抽出する。
　前記ＡＤＴ関数パラメタテーブル４０２のレコード４０４およびレコード４０５を参照することにより、問合せ解析部１１０は、ユーザ問合せ１０４におけるＡＤＴ関数extract() のsgmltext_t型および VARCHAR型の２つのパラメタを解析する。
　　　【００３９】
　組込みモジュール定義情報１３０は、組込みモジュール１１７，１２５に含まれる外部関数とその外部関数に関する修飾情報を保持する外部関数テーブル４０６と、組込みモジュール１１７，１２５に含まれる外部関数のパラメタに関する情報を保持する外部関数パラメタテーブル４０７とからなる。
　前記外部関数テーブル４０６は、外部関数名および関数修飾を示すカラムからなる。
　外部関数テーブル４０６のレコード４０８は、関数修飾のカラム値に外部関数修飾子「ＡＤＴ関数対応」を保持することにより、外部関数p_sgml_extract()がＡＤＴ関数に対応付けられた外部関数であることを示している。
　外部関数テーブル４０６のレコード４０９は、関数修飾のカラム値に外部関数修飾子「パラメタバインド」を保持することにより、外部関数p_sgml_load_sgmldef() がパラメタバインドを行なうための外部関数であることを示している。
　　　【００４０】
　前記外部関数パラメタテーブル４０７は、外部関数名，パラメタ番号，パラメタ型およびパラメタ修飾を示すカラムからなる。
　外部関数パラメタテーブル４０７のレコード４１０は、外部関数p_sgml_extract()の第１パラメタがパラメタ型sgmltext_tのパラメタ値を受け渡すことを示している。
　外部関数パラメタテーブル４０７のレコード４１１は、外部関数p_sgml_extract()の第２パラメタがパラメタ型VARCHAR のパラメタ値を受け渡すことを示している。
　なお、問合せ解析部１１０は、上記の外部関数p_sgml_extract()の第１パラメタおよび第２パラメタについては、それぞれＡＤＴ関数の第１パラメタおよび第２パラメタのパラメタ値をそのまま受け渡す、という解釈を行なう。これは、前記ＡＤＴ関数−外部関数テーブル４０１のレコード４０３，前記ＡＤＴ関数パラメタテーブル４０２のレコード４０４およびレコード４０５を参照することにより、外部関数p_sgml_extract()がＡＤＴ関数extract() と対応付けられているからである。
　　　【００４１】
　外部関数パラメタテーブル４０７のレコード４１２は、外部関数p_sgml_extract()の第３パラメタがパラメタ型BLOBのパラメタ値を受け渡すことを示している。また、パラメタ修飾のカラム値にパラメタ修飾子「返却」を保持することにより、当該第３パラメタのパラメタ値を当該関数の返却値として受け渡すことを示している。
　外部関数パラメタテーブル４０７のレコード４１３は、外部関数p_sgml_extract()の第４パラメタがパラメタ型BLOBのパラメタ値を受け渡すことを示している。また、パラメタ修飾のカラム値にパラメタ修飾子「パラメタバインド p_sgml_load_sgmldef」を保持することにより、外部関数p_sgml_load_sgmldef() によってパラメタバインドを行なう、すなわち、外部関数p_sgml_load_sgmldef() が返却する値を当該パラメタ値とすることを示している。
　外部関数パラメタテーブル４０７のコード４１４は、外部関数p_sgml_load_sgmldef() の第１パラメタがパラメタ型BLOBのパラメタ値を受け渡すことを示している。また、パラメタ修飾のカラム値にパラメタ修飾子「返却」を保持することにより、当該第１パラメタのパラメタ値を当該関数の返却値として受け渡すことを示している。
　外部関数パラメタテーブル４０７のレコード４１５は、外部関数p_sgml_load_sgmldef() の第２パラメタがパラメタ型DBCOLUMNINFOのパラメタ値を受け渡すことを示している。ここで、パラメタ型DBCOLUMNINFOは、データベース管理システム１０２が提供する、カラムに関する定義情報を表すためのデータ型である。パラメタ型DBCOLUMNINFOが指定された場合は、問合せ処理制御部１０９が、そのパラメタ値として、処理対象となっているカラムの定義情報を渡すように処理する。
　　　【００４２】
　機能的には、外部関数p_sgml_extract()は、抽出パラメタを入力として、指定されたタグの部分を抽出する関数である。
　また、外部関数p_sgml_load_sgmldef() は、パラメタ型DBCOLUMNINFOのカラム情報からテーブル名，カラム名を取得して、ディクショナリサーバ１０７にアクセスして抽出パラメタを得る関数である。
　このデータベースシステム１００のユーザは、sgmltext_t型をカラム型として指定するときに、カラムに関する情報と対応させて、抽出パラメタをディクショナリサーバ１０７に登録する。
　　　【００４３】
　問合せ解析部１１０は、前記レコード４０３，レコード４０８およびレコード４１０を参照することにより、外部関数p_sgml_extract()を実行サーバ１０６で実行させる、という解釈を行なう。これは、ＡＤＴ関数でＡＤＴ型データの操作を行なう場合は、データを格納している実行サーバ１０６で当該ＡＤＴ関数を実行することが並列処理機能を有効に利用できる、という考えに基づくものである。
　また、問合せ解析部１１０は、前記レコード４０９を参照することにより、外部関数p_sgml_load_sgmldef() を要求受付サーバ１０５で実行させる、という解釈を行なう。これは、外部関数p_sgml_load_sgmldef() がパラメタバインドを行なうための外部関数であるからである。
　　　【００４４】
　図５は、実行手順コード１１１の構成図である。
　この実行手順コード１１１は、次のＳＱＬ３による問合せ文に対応する処理の手順である。
SELECT extract(contents, 'abstract')
FROM   reports
WHERE  published_data  '1996-10-15'
　すなわち、実行手順コード１１１は、インデクス検索して得られた一時的な結果の集合の要素について外部関数p_sgml_extract()を逐次実行するという、ユーザ問合せ１０４に見合った処理の実行手順を示している。
　　　【００４５】
　実行手順コード１１１は、ノード木構造で構成される。このようなノード木構造データは、後述する実行手順コード木構造データ作成処理６０１（図６）において作成される。
　ノード５０１は、当該ノードを説明する情報として「当該実行手順コードは、実行サーバで実行するコードである」ことを示す値を保持している。また、ノード５０１は、実行内容を示すノードへのポインタを保持している。そのポインタは、ノード５０２を指している。
　ノード５０２は、当該ノードを説明する情報として「左下位ノードを１回だけ実行し、その後は右下位ノードのみを実行する」ことを示す値を保持している。ノード５０２の左下位ノードはノード５０３であり、右下位ノードはノード５０６である。
　ノード５０３は、当該ノードを説明する情報として「一時的な処理結果リストを生成する」ことを示す値を保持している。ノード５０３の左下位ノードはノード５０４であり、右下位ノードはノード５０５である。
　ノード５０４は、ノード５０３における一時的な処理結果リストを識別するためのリストＩＤを保持する。
　ノード５０５は、当該ノードを説明する情報として「インデクスを利用した検索を行なう」ことを示す値を保持している。
　結局、上記ノード５０３，５０４および５０５は、「インデクスを利用した検索を行い、検索結果を結果リストＩＤで識別される一時結果リストとする」ことを示している。ここでは、テーブルreports のカラムpublished_dateに設定されたインデクスを用いて、published_date  '1996-10-15' の条件を満たすレコードの検索を行なうことが指示される。そして、検索の結果、条件を満たすレコードのレコードＩＤの集合が一時結果リストとして得られる。
　　　【００４６】
　ノード５０６は、当該ノードを説明する情報として「左下位ノードの処理結果を右下位ノードに渡す」ことを示す値を保持している。ノード５０６の左下位ノードはノード５０７であり、右下位ノードはノード５０８である。
　ノード５０７は、当該ノードを説明する情報として「（当該実行手順コードに従う処理での一時結果リストから）リスト要素を一件取り出す」ことを示す値を保持している。ここでは、リスト要素はレコードＩＤである。
　ノード５０８は、当該ノードを説明する情報として「（ノード５０６から渡されるリスト要素に対応する）レコード値をデータベースファイルから取り出す」ことを示す値を保持している。ここでは、レコードＩＤに対応するレコード値を取り出す。
　　　【００４７】
　前記ノード５０８の下位ノードであるノード５０９は、当該ノードを説明する情報として「（ノード５０８がデータベースファイルから取り出したレコード値の一部である）カラム値を取り出す」ことを示す値を保持している。ここでは、テーブルreports のレコード値のカラムcontentsに保持しているカラム値、すなわちＳＧＭＬテキストを取り出す。
　前記ノード５０９の下位ノードであるノード５１０は、当該ノードを説明する情報として「（ノード５０９で取り出したカラム値に対して）外部関数を実行する」ことを示す値を保持している。ここでは、カラムcontentsに保持しているＳＧＭＬテキストに対して外部関数p_sgml_extract()を実行する。なお、ノード５１０は、外部関数p_sgml_extract()の実行時の入力として実行用ワークエリア１１３に保持する実行時入力情報１１２に保持する入力パラメタ値５１１へのポインタを保持している。ここでは、要求受付サーバ１０５のパラメタバインドによって設定した抽出パラメタを入力パラメタ値５１１としてポイントする。パラメタバインドとポインタの設定については、後で図８を参照して詳述する。
　　　【００４８】
　図６は、前記ステップ２０２の実行手順コード作成処理の流れ図である。
　この実行手順コード作成処理（２０２）の入力は問合せ解析部１１０が出力する実行手順コードパターン選定結果であり、出力および処理結果は実行手順コード１１１とパラメタバインド指示情報リストである。
　ステップ６０１では、実行手順コード作成部１１４は、実行手順コードパターン選定結果からノード木構造データを作成する。この実行手順コード木構造データ作成処理は、データベース処理の実行手順を示す一般的な制御情報と同等のものが作成できればよい。なお、ステップ６０１で作成されるノードには、外部関数コールを指示するノードも含まれる。
　ステップ６０２では、実行手順コード作成部１１４は、パラメタバインドの実行を指示するパラメタバインド指示情報リストを作成する。すなわち、外部関数コールを指示するノードを探索し、外部関数コールを指示するノードを見つけたら、そのパラメタを探索して、パラメタバインドが指定されていないか確認する。パラメタバインドが指定されていれば、その定義情報をもとにパラメタバインドを実行するための指示情報を作成する。例えば、図５のノード木構造データを探索して、外部関数p_sgml_extract()を呼び出すためのノード５１０を見つける。次に、図４の外部関数パラメータテーブル４０７から外部関数p_sgml_extract()をコールするときの第４パラメタの入力として外部関数p_sgml_load_sgmldef() を実行してパラメタバインドを行なわなければならない、という解釈を行なう。これらの情報をもとに、「ノード５１０の外部関数実行の第４パラメタ入力に外部関数p_sgml_load_sgmldef() を実行して得られる返却値を設定せよ」というパラメタバインド指示情報を作成できる。このようなパラメタバインド指示情報が実行手順コードに対して複数存在する場合は、リスト形式で管理し、パラメタバインド指示情報リストを作成する。
　　　【００４９】
　図７は、前記ステップ２０３の実行指示処理の流れ図である。
　この実行指示処理（２０３）の入力は前記実行手順コード作成部１１４が出力する実行手順コード１１１とパラメタバインド指示情報リストであり、出力および処理結果は実行結果保持部１１８に実行結果を保持させることである。
　ステップ７０１では、実行指示部１１５は、実行手順コード１１１とパラメタバインド指示情報リストをもとに、パラメタバインド制御部１１６を用いてパラメタバインドを実行する。パラメタバインド制御部１１６を用いたパラメタバインドの実行の詳細については、後で図８を参照して説明する。
　ステップ７０２では、実行指示部１１５は、パラメタバインドを行なった実行手順コード１１１をもとに、ユーザの要求に見合う処理が複数の実行サーバ１０６で並行に実行されるように、それぞれの実行サーバ１０６に処理実行を指示する。また、実行サーバ１０６へ処理を指示する時に、要求受付サーバ１０５の実行用ワークエリア１１３の情報をそのまま実行サーバ１０５の実行用ワークエリア１２０に送信する。
　　　【００５０】
　図８は、前記ステップ７０１のパラメタバインド処理の流れ図である。
　このパラメタバインド処理（７０１）の入力は実行手順コード作成部１１４で作成されたパラメタバインド指示情報リストであり、出力および処理結果はパラメタバインドを実行し入力パラメタへのポインタを実行手順コード１１１に設定することである。
　ステップ８０１では、パラメタバインド制御部１１６は、パラメタバインド指示情報リストの集合からパラメタバインド指示情報を１つ取り出す。
　ステップ８０２では、パラメタバインド制御部１１６は、取り出したパラメタバインド指示情報をもとにパラメタ値を返却する外部関数を実行する。ここでは、外部関数p_sgml_load_sgmldef() を実行し、ディクショナリサーバ１０７から抽出パラメタを取得する。
　ステップ８０３では、パラメタバインド制御部１１６は、返却されたパラメタ値を実行用ワークエリア１１３に実行時入力情報１１２としてコピーし、パラメタバインド指示情報の指示に従って、この実行時入力情報１１２をパラメタ値としてポイントするように実行手順コード１１１に情報を設定する。
　ステップ８０４では、パラメタバインド制御部１１６は、パラメタバインド指示情報リストに次のパラメタバインド指示情報が存在するかチェックする。次のパラメタバインド指示情報が存在する場合は前記ステップ８０１に戻り、次のパラメタバインド指示情報が存在しない場合は処理を終了する。
　　　【００５１】
　以上の処理とデータ構造とにより、要求受付サーバ１０５で組込みモジュールに含まれる外部関数をコールしてパラメタバインドを行ない、そのパラメタ値を入力として実行サーバ１０６で組込みモジュールに含まれる外部関数をコールすることが可能となる。
　　　【００５２】
　次に、組込みモジュール定義情報１３０をディクショナリサーバ１０７に登録する処理について説明する。
　図９は、組込みモジュール定義登録ツール１３２が組込みモジュール定義情報１３０を登録する処理の流れ図である。
　この組込みモジュール定義登録処理の入力は組込みモジュール仕様記述１３１であり、出力および処理結果はディクショナリサーバ１０７に組込みモジュール定義情報１３０を保持させることである。
　ステップ９０１では、組込みモジュール定義登録ツール１３２は、組込みモジュール仕様記述１３１を解析する。
　データベース管理システム１０２が提供する組込みモジュールインタフェイス定義言語によって記述された組込みモジュール仕様記述１３１の例を次に示す。この例は、図４に示した組込みモジュール定義情報１３０に対応するモジュール仕様記述である。
p_sgml_extract (
 in      sgmltext_t,
 in      VARCHAR,
 returns BLOB,
 in      BLOB setter('p_sgml_load_sgmldef')
) as ADT_FUNCTION;
p_sgml_load_sgmldef (
 returns BLOB,
 in      DBCOLUMNINFO
) as BIND_PARAMETER;
　上記の記述例では、外部関数p_sgml_extract()と外部関数p_sgml_load_sgmldef() とをデータベース管理システム１０２から呼び出すためのインタフェイス仕様が示されている。
　　　【００５３】
　実行サーバ１０６で実行される外部関数p_sgml_extract()のインタフェイス仕様において、キーワードreturns は、パラメタの修飾子であり、当該パラメタが返却用に用いられることを示す。また、キーワードsetterに続いて外部関数名を指定することにより、当該パラメタがパラメタバインドの対象であることを示し、ここに指定された外部関数によってパラメタ値を取得することを示す。また、キーワードasに続いて関数修飾子 ADT_FUNCTION を指定することにより、当該関数がＡＤＴ関数に対応付けられた外部関数であることを示す。
　なお、ユーザからの要求に用いられるＡＤＴ関数extract() のインタフェイス仕様では、ＡＤＴ型sgmltext_tとパラメタ型VARCHAR の２つの入力をとるように定義されているのに対して、この２つの入力以外にパラメタ型BLOBの入力を２つとるように外部関数p_sgml_extract()が定義されている。
　　　【００５４】
　次に、要求受付サーバ１０５で実行される外部関数p_sgml_load_sgmldef() のインタフェイス仕様において、キーワードreturns は、パラメタの修飾子であり、当該パラメタが返却用に用いられることを示す。また、キーワードasに続いて関数修飾子BIND_PARAMETERを指定することにより、当該関数がパラメタバインドに用いられる外部関数であることを示す。
　　　【００５５】
　ステップ９０２では、組込みモジュール定義登録ツール１３２は、解析結果を組込みモジュール定義情報１３０としてディクショナリサーバ１０７の定義情報管理部１２７を用いて登録する。そして、処理を終了する。
　　　【００５６】
　　【発明の効果】
　本発明の情報処理方法および並列データベース管理システムによれば、複数の実行サーバ上の組込みモジュールが必要とする入力情報のうちで、いずれの実行サーバでも同一のものは、それぞれの実行サーバが取得するのではなく、要求受付サーバが取得し、それをそれぞれの実行サーバが利用するので、入力情報を取得する処理の重複や集中を防止でき、システム性能を向上できる。また、組込みモジュールの実行制御を、組込みモジュールのインタフェイス仕様の記述において指示できるようになる。」
　
　本願の請求項１ないし請求項５に係る発明は、以下の（ア）〜（オ）の点で、発明の詳細な説明に記載したものとはいえない。
　
（ア）請求項１の「前記要求受付処理ステップ及び前記実行処理プログラムのそれぞれがそれぞれの処理機能を実行するための組込みモジュールを組み込んで実行するステップ」という構成は、段落００１９に記載された請求項１のデッドコピーを除いて、発明の詳細な説明の他の個所には対応する記載が見られない。
　まず、「要求受付処理ステップ」は、請求項１において「前記データベースに対する問い合わせの要求に対応したデータベース処理の実行を指示するための実行手順コードを作成する要求受付処理ステップ」と記載されていることから、データベース管理システム１０２の要求受付サーバ１０５の実行手順コード作成部１１４が実行する「実行手順コード作成処理２０２」に対応していると認められる。しかし、実行手順コード作成処理２０２では、組込モジュールを用いていない。一方、組込モジュール１１７を利用しているのは、要求受付サーバ１０５の実行指示部１１５のパラメタバインド制御部１１６において実行されるパラメタバインド処理７０１であり、パラメタバインド処理７０１は、組込みモジュール１１７を利用しているものの、実行手順コードを作成していない。よって、請求項１の記載は、発明の詳細な説明の記載と矛盾している。
（イ）請求項１の「データベースに接続された処理装置」という構成は、段落００１９に記載された請求項１のデッドコピーを除いて、発明の詳細な説明の他の個所には対応する記載が見られない。「データベース」という用語は、データベースファイルとも、データベースファイルとデータベース管理システムとから構成されるデータベースシステムとも解釈可能であり、本願の発明の詳細な説明の記載や、図１などに基づけば、請求項１の「データベース」は、データベースファイルと解釈するのが妥当であり、この場合、「データベースに接続された処理装置」は、「データベース管理システム１０２」に対応づけられる。しかし、「処理装置」は、一般に単一の情報処理装置、すなわち、コンピュータを意味するが、「データベース管理システム１０２」は、情報処理装置であるサーバ（要求受付サーバ１０５、ディクショナリサーバ１０７、複数の実行サーバ１０６）と通信路１０８などから構成される「システム」であり、単一の情報処理装置ではなく、請求項１の記載は、発明の詳細な説明の記載と矛盾している。
　
（ウ）請求項１の「実行手順コードに従って前記データベース処理を並列に実行する複数の実行処理プログラムを保持するステップ」という構成は、段落００１９に記載された請求項１のデッドコピーを除いて、発明の詳細な説明の他の個所には対応する記載が見られない。本願の発明の詳細な説明の記載や、図に基づけば、データベース管理システム１０２の要求受付サーバ１０５の実行手順コード作成部１１４が作成した実行手順コードを要求受付サーバ１０５の実行用ワークエリア１１３に格納する旨の記載はあるものの、「実行手順コードに従って前記データベース処理を並列に実行する複数の実行処理プログラム」に対応する記載は見られず、「実行処理プログラム」が何を示しているのか不明である。
　
（エ）請求項２ないし請求項４は、請求項１を引用しており、上記（ア）〜（ウ）で指摘した点で、発明の詳細な説明に記載したものはない。
　
（オ）請求項５にも、請求項１と同様の記載があるから、やはり、上記（ア）〜（ウ）で指摘した点で、発明の詳細な説明に記載したものはない。
　
　したがって、特許請求の範囲の記載は、特許を受けようとする発明が発明の詳細な説明に記載したものはないから、特許法第３６条第６項第１号の規定する要件を満たしていない。
　
５．付記（進歩性違反について）
　上述したように、請求項１ないし請求項５に係る発明は、明確でなく、発明の詳細な説明に記載されたものでもないといえるが、念のため、発明の詳細な説明および図から明確に把握される発明（以下、「本願発明」という。）の進歩性違反について、当合議体の見解の骨子をコメントしておく。
　原査定において引用された「根岸和義、ほか，並列リレーショナルデータベースシステムＨｉＲＤＢの概要と基本技術，電子情報通信学会技術研究報告，日本，電子情報通信学会，１９９５年１２月１２日，９５巻、４０８号、ＤＥ９５−７９，１７−２２頁」（以下、「引用文献」という。）には、本願の要求受付サーバ１０５に相当するＳＱＬサーバと、ディクショナリサーバ１０７に相当するディクショナリサーバと、通信路１０８に相当する高速ネットワークと、実行サーバ１０６に相当する複数のＤＢアクセスサーバを備えた並列リレーショナルデータベースシステムが記載されており、１９頁の右欄「１．２　ＨｉＲＤＢにおける処理の流れ」の中の「（１）ＳＱＬサーバによるコンパイル」において、「クライアントからのデータアクセス要求はＳＱＬの形でＨｉＲＤＢのＳＱＬサーバに伝えられる。ＳＱＬサーバでは、そのＳＱＬをコンパイルし、コンパイルオブジェクトという中間言語に変化する。コンパイル時にディクショナリサーバの情報を取り出して使用する。次にこのＳＱＬを処理すべきＤＢアクセスサーバ、フロータブルサーバを決定し、コンパイルオブジェクトをそのサーバへ転送する」と記載されている。コンパイルオブジェクトが本願の実行手順コードに相当し、「コンパイル時にディクショナリサーバの情報を取り出して使用する。」とは、本願のパラメタバインド処理に対応する。本願発明と引用文献記載の発明を比較すると、本願発明では組込みモジュールを用いる点について、一応相違している。しかし、ＲＤＢ等のデータベース管理システムの技術分野において、繰り返し行われる処理を組込みモジュールとして、登録しておいて、組込みモジュールを呼び出すことで当該処理を実行させることは、本願出願前に周知の技術にすぎないから、引用文献記載の発明で、パラメタバインド処理をＳＱＬサーバでコンパイル時に行う際に、当該周知技術を採用して、組込みモジュールを用いてパラメタバインド処理を行う構成とすることは、当業者が容易に想到し得たものである。
　したがって、発明の詳細な説明および図から明確に把握される発明は、引用文献および周知技術に基づいて当業者が容易に想到できたものである。
６．むすび
  以上のとおりであるから、本願の請求項１ないし請求項５に記載された発明は、明確でなく、また、発明の詳細な説明に記載されたものでもないから、特許請求の範囲の記載は、特許法第３６条第６項第１号および第２号の規定にする要件を満たしておらず、本願は、拒絶すべきものである。
　よって、結論のとおり審決する。