JP4033207B2 - Database management method - Google Patents

Database management method Download PDF

Info

Publication number
JP4033207B2
JP4033207B2 JP2005283258A JP2005283258A JP4033207B2 JP 4033207 B2 JP4033207 B2 JP 4033207B2 JP 2005283258 A JP2005283258 A JP 2005283258A JP 2005283258 A JP2005283258 A JP 2005283258A JP 4033207 B2 JP4033207 B2 JP 4033207B2
Authority
JP
Japan
Prior art keywords
data
sub
database
information
server
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 - Lifetime
Application number
JP2005283258A
Other languages
Japanese (ja)
Other versions
JP2006065880A (en
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2005283258A priority Critical patent/JP4033207B2/en
Publication of JP2006065880A publication Critical patent/JP2006065880A/en
Application granted granted Critical
Publication of JP4033207B2 publication Critical patent/JP4033207B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Description

本発明は、デ−タベ−ス管理システムに関し、特にリレ−ショナルデ−タベ−ス管理システムに適した問合せの並列処理に好適な問合せ処理方法に関する。   The present invention relates to a database management system, and more particularly to a query processing method suitable for parallel processing of queries suitable for a relational database management system.

本発明に関連する従来技術として、SQL3のAbstruct Data Typeと、並列データベースシステムの2点について記述する。最初に、SQL3のAbstruct Data Typeについて記述する。事務データ処理を中心にしてリレーショナルデータベース、主にSQLデータベースシステムの適用が進んでいる。また、従来のリレーショナルデータベースの枠組みでは効率的に扱うことが難しい、複雑な構造を持ったデータを扱うことを、1つの目的とするオブジェクトデータベースの実用も進められた。   As the prior art related to the present invention, two points of SQL3 Abstruct Data Type and parallel database system will be described. First, SQL3 Abstruct Data Type will be described. Application of relational databases, mainly SQL database systems, is progressing mainly in office data processing. In addition, an object database has been put into practical use with the purpose of handling data having a complicated structure, which is difficult to handle efficiently in the framework of a conventional relational database.

一方で、リレーショナルデータベースを拡張して、複雑な構造を持ったデータを扱うことが研究されており、SQL3で標準化が進められている。SQL3では、Abstruct Data Type(抽象データ型、以下ADTと記す)という複雑な構造を持ったユーザ定義のデータ(型)を扱うことができる。ADTは、複数の、属性と呼ばれるデータ(以下では、サブデータと呼ぶことにする)を、関数インタフェースで隠蔽し、型間で継承関係を持つことができる、オブジェクト指向の考えを取り入れた複雑なデータを扱うことができる。CREATE TYPEで始まるADTの定義系SQL文により型を定義する。定義した型は、整数型、文字型などのシステム定義の型と同様に変数宣言や、表の列定義などに用いることができる。各型により複雑な構造を持ったデータを作成し使用することが可能になる。SQL3、ADTについては、Andrew E. Wade, Ph.D. :"Object Query Standards",ACM SIGMOD Record, Vol.25, No.1, pp87-92, March 1996などに記載がある。また、SQL3の標準化のDraftは、ISO/IEC JTC1/SC21/WG3 DBL-MCI-004, ISO Working Draft Database Language SQL, 1996である。   On the other hand, research has been conducted on extending relational databases to handle data having a complex structure, and standardization is being promoted in SQL3. In SQL3, user-defined data (type) having a complicated structure called Abstruct Data Type (abstract data type, hereinafter referred to as ADT) can be handled. ADT is a complex approach that incorporates an object-oriented concept that allows multiple types of data called attributes (hereinafter referred to as sub-data) to be concealed by function interfaces and have inheritance relationships between types. Can handle data. Define the type using an ADT definition SQL statement that begins with CREATE TYPE. The defined types can be used for variable declarations, table column definitions, etc., as well as system-defined types such as integer types and character types. Each type makes it possible to create and use data with a complex structure. SQL3 and ADT are described in Andrew E. Wade, Ph.D .: "Object Query Standards", ACM SIGMOD Record, Vol. 25, No. 1, pp87-92, March 1996, and the like. The standardization draft of SQL3 is ISO / IEC JTC1 / SC21 / WG3 DBL-MCI-004, ISO Working Draft Database Language SQL, 1996.

次に、並列データベースシステムについて記述する。リレーショナルデータベースシステムにおいては、データを複数のデータベース処理サーバに分割して配置して、並列にアクセスすることで、性能の向上を図ることが容易である。このような並列データベースシステムに対する要求は、データ量の増大にともなって強まってきている。並列データベースシステムについては、DeWitt,D.,et.al.:"Parallel Database Systems: The Future of High Performance Database Systems", CACM, Vol.35, No.6, 1992.に記載されている。   Next, a parallel database system is described. In a relational database system, it is easy to improve performance by dividing data into a plurality of database processing servers and accessing them in parallel. The demand for such a parallel database system has been increased as the amount of data has increased. The parallel database system is described in DeWitt, D., et.al .: “Parallel Database Systems: The Future of High Performance Database Systems”, CACM, Vol. 35, No. 6, 1992.

並列データベースシステムの構成としては、ホスト計算機のユーザアプリケーションプログラム(以下UAPと呼ぶことにする)からのデータベースに対する問い合わせを解析しコンパイルするサーバ(フロントエンドサーバと呼ぶことにする)と、データが格納されるディスク装置にアクセスしデータの操作を行う複数のサーバ(データベース操作サーバと呼ぶことにする)を有する。以下では、簡単のため、1つのホスト、1つのフロントエンドサーバと複数のデータベース操作サーバの構成で説明を行う。しかし、1つ、または、複数のホストからの複数の問い合わせに対して、複数のフロントエンドサーバが取りあつかうことができる。この場合でも1つ1つの問い合わせに対しては、1つのホスト、1つのフロントエンドサーバと複数のデータベース操作サーバの構成であり、以下の説明、及び、本発明に問題無く適用される。   The parallel database system consists of a server that analyzes and compiles a database query from a user application program (hereinafter referred to as UAP) on the host computer (hereinafter referred to as a front-end server), and data. A plurality of servers (referred to as database operation servers) for accessing the disk device and operating data. In the following, for the sake of simplicity, description will be made with a configuration of one host, one front-end server, and a plurality of database operation servers. However, multiple front-end servers can handle multiple queries from one or multiple hosts. Even in this case, each query has a configuration of one host, one front-end server, and a plurality of database operation servers, and can be applied to the following description and the present invention without any problem.

一般にデータベースに対する問い合わせ(以下、データベース問い合わせと呼ぶことにする)であるSQLは、C言語などの計算機言語(以下親言語と呼ぶことにする)に埋めこんだ形で使われることが多い(以下、埋込型SQLと呼ぶことにする)。データベースへの検索、及びデータベースへのデータの更新、削除と挿入などのデータベース問い合わせを、ホストの親言語から発し、データベースシステムが問い合わせの解析、実行を行ない、結果をホストに返す。ホストの親言語は、結果を受け取り、条件判定などの制御処理や代入や計算などの加工処理に用いる。ストアドプロシジャのように、制御処理や加工処理を含めたデータベース問い合わせを発する場合でも本発明の適用は可能である。(この場合、検索、挿入、更新、削除処理などデータベース操作サーバ側で行なう処理を、制御処理や加工処理などフロントエンドサーバ側で行なう処理と分ける意味で、以下、データベース操作文と呼ぶことがある)。ストアドプロシジャについては、片山初子:ストアド・プロシージャとトリガーを使いこなす, NIKKEI OPEN SYSTEMS, No.2, pp.133-144,1993.などに記載されている。   In general, SQL that is a query to a database (hereinafter referred to as a database query) is often used in a form embedded in a computer language such as C language (hereinafter referred to as a parent language) (hereinafter referred to as a database language). This will be referred to as embedded SQL). Database queries such as searching the database and updating, deleting and inserting data into the database are issued from the host's parent language, the database system parses and executes the query, and returns the results to the host. The host parent language receives the result and uses it for control processing such as condition determination and processing such as substitution and calculation. The present invention can be applied even when a database inquiry including control processing and processing processing is issued as in a stored procedure. (In this case, processing performed on the database operation server side such as search, insertion, update, and deletion processing is sometimes referred to as a database operation statement in the sense that it is separated from processing performed on the front-end server side such as control processing and processing processing. ). Stored procedures are described in Hatsuko Katayama: Mastering Stored Procedures and Triggers, NIKKEI OPEN SYSTEMS, No.2, pp.133-144, 1993.

親言語には、複数のデータベース問い合わせを埋め込むことができ、親言語の変数を介して、結果のやりとりを行なうことができる。変数による値の受け渡しは、親言語の解析結果の処理方法による。変数ごとに値を格納する領域を決めておき、変数の値を使用する場合は、その領域を見るように変数のバインドを決めておく方法などが挙げられる。   A plurality of database queries can be embedded in the parent language, and results can be exchanged via variables in the parent language. The passing of values by variables depends on the processing method of the analysis result of the parent language. For example, if you decide the area for storing the value for each variable and use the value of the variable, you can decide how to bind the variable so that you can see the area.

以下に、埋込型SQLによる、一般的な、並列データベースシステムの内部形式の処理手順の作成、転送と実行の例を記す。データベース操作の結果に対する加工や制御を、埋込型SQLで書かれたUAPの制御構文が行う。データベース問い合わせは1文ずつUAPとのフロントエンドサーバにネットワークを介して送られる。そして、コンパイラによって構文解析、意味解析、最適化、コンパイルを行うことによって、送られたデータベース問い合わせに基づいた実際のデータベース操作を行うための内部形式の処理手順を作成する。   An example of creating, transferring, and executing a processing procedure in a general parallel database system internal format using embedded SQL will be described below. UAP control syntax written in embedded SQL performs processing and control on the results of database operations. Database queries are sent one sentence at a time via the network to the front-end server with the UAP. Then, by performing syntax analysis, semantic analysis, optimization, and compilation by the compiler, a processing procedure in an internal format for performing an actual database operation based on the sent database query is created.

内部形式の処理手順は、インタプリタで解釈実行するコードや、実行形式のコードである。コンパイルに必要な定義情報などはフロントエンドサーバからアクセスできるディクショナリ情報として存在する。作成された処理手順は、実際にデータベース操作を行うデータベース操作サーバにネットワークを通じて転送し起動要求により実行する。実際にデータベース操作を行なうサーバは通常操作する表の分割に関する情報で決まる。表の分割に関する情報は表定義で指定し、ディクショナリに入る。   The processing procedure in the internal format is a code that is interpreted and executed by an interpreter or a code in an execution format. Definition information necessary for compiling exists as dictionary information accessible from the front-end server. The created processing procedure is transferred to the database operation server that actually performs the database operation through the network, and is executed by the activation request. The server that actually performs database operations is determined by information related to table partitioning that is normally operated. Information about table partitioning is specified in the table definition and entered into the dictionary.

データベース操作サーバはプロセサと1つ以上のディスク装置を有する。データベース操作サーバのキャッシュに内部形式の処理手順を置くことによって、2回目以降の実行は、実行要求を発しキャッシュにある処理手順を用いる改良案がある。並列データベースシステムにおいてはデータベース操作サーバは複数存在し、SQLの処理の並列化がなされる。SQLの処理の結果は、必要に応じて他のデータベース操作サーバとネットワークを通じてデータなどのやりとりを行い、最終的にUAPとのフロントエンドサーバの結果受取り処理を通じて、実行結果がUAPに返され、実行結果の加工や制御を行う。以下SQL文1文ずつについて同じ処理を繰り返す。   The database operation server has a processor and one or more disk devices. By placing the processing procedure in the internal format in the cache of the database operation server, there is an improvement plan for issuing the execution request and using the processing procedure in the cache for the second and subsequent executions. In a parallel database system, there are a plurality of database operation servers, and SQL processing is parallelized. The SQL processing results are exchanged with other database operation servers through the network as necessary, and finally the execution results are returned to the UAP through the front end server's result reception processing with the UAP. Process and control the results. Thereafter, the same processing is repeated for each SQL sentence.

Andrew E. Wade, Ph.D. :"Object Query Standards", ACM SIGMODRecord, Vol.25, No.1, pp87-92, March 1996.Andrew E. Wade, Ph.D .: "Object Query Standards", ACM SIGMODRecord, Vol.25, No.1, pp87-92, March 1996. ISO/IEC JTC1/SC21/WG3 DBL-MCI-004, ISO Working Draft Data base Language SQL, 1996.ISO / IEC JTC1 / SC21 / WG3 DBL-MCI-004, ISO Working Draft Data base Language SQL, 1996. DeWitt,D.,et.al.:"Parallel Database Systems: The Future of High Performance Database Systems", CACM, Vol.35, No.6, 1992.DeWitt, D., et.al .: "Parallel Database Systems: The Future of High Performance Database Systems", CACM, Vol. 35, No. 6, 1992. 片山初子:ストアド・プロシージャとトリガーを使いこなす, NIKKEI OPEN SYSTEMS, No.2, pp.133-144,1993.Hatsuko Katayama: Mastering Stored Procedures and Triggers, NIKKEI OPEN SYSTEMS, No.2, pp.133-144, 1993.

データベース問い合わせで扱えるデータが、複数のデータ(ADTでいう属性、以下サブデータと呼ぶ)の集まりであるとき、データに対する検索、更新、挿入、加工、制御などの処理は、サブデータ1つ1つを別個に処理する場合と、サブデータの集まりであるデータ全体を処理する場合の2通りが考えられる。ここで、データベースに対する問い合わせの使用方法として次のようなものが考えられる。   When the data that can be handled by a database query is a collection of multiple data (attributes in ADT, hereinafter referred to as sub-data), processing such as search, update, insertion, processing, and control for the data is performed one by one. Can be considered separately, and the case where the entire data, which is a collection of sub data, is processed. Here, the following can be considered as a method of using a query to the database.

まず、先に行なう問い合わせで、データ全体を検索する。そして、親言語の変数を介して、後の問い合わせに、検索したデータを渡す。後の問い合わせで渡されたデータのサブデータ1つ1つを別個に処理する。このような使用方法の場合、後の問い合わせが、検索したデータのサブデータ全てを使用するとは限らない。しかし、従来技術で述べた並列データベースシステムの技術をそのままADTに適用する場合、検索問い合わせでは、ホストに返す結果であるデータは、データのあるデータベース操作サーバから、後の問い合わせの解析や実行を行なうフロントエンドサーバに全て転送される。   First, the entire data is searched by an inquiry made first. Then, the retrieved data is passed to a later inquiry via the parent language variable. Each sub-data of the data passed in a later inquiry is processed separately. In the case of such a usage method, a later inquiry does not always use all sub-data of the retrieved data. However, when the parallel database system technology described in the prior art is applied to ADT as it is, the data returned as a result of the search query is analyzed and executed from the database operation server with the data. All forwarded to the front-end server.

使用しないサブデータがLOBデータなど大規模なデータの場合、データベース操作サーバから、フロントエンドサーバに、使用しない大規模データを転送すると、転送時間が増大することになり、問い合わせにかかる時間が大きくなる。本発明は、データベース操作サーバから、フロントエンドサーバへ、後の処理で使用するデータのみを転送することを実現することで、問い合わせ時間を小さくするのが目的である。   If unused sub-data is large-scale data such as LOB data, transferring large-scale unused data from the database operation server to the front-end server will increase the transfer time and increase the time required for inquiries. . An object of the present invention is to reduce the inquiry time by realizing transfer of only data used in the subsequent processing from the database operation server to the front-end server.

上記目的を達成するために、先に行なう検索問い合わせのときには、複数のサブデータからなるデータに対しては、データベース操作サーバから、フロントエンドサーバに、データの位置情報のみを返す。位置情報は、データベース操作サーバ上でのデータのアドレスと、データベース操作サーバの識別子を含む。後の問い合わせには変数を介して、位置情報を渡す。後の問い合わせは、渡された位置情報と、データ内での各サブデータの位置のディクショナリ情報と、問い合わせで必要なサブデータの識別子により、データベース操作サーバにあるデータの各サブデータを取り出す。位置情報はデータのあるデータベース操作サーバの識別子を含むので、データのあるデータベース操作サーバにデータ取り出し要求を行なえる。   In order to achieve the above object, at the time of a search inquiry to be performed first, only the data location information is returned from the database operation server to the front-end server for data consisting of a plurality of sub-data. The location information includes an address of data on the database operation server and an identifier of the database operation server. The position information is passed to the subsequent query via a variable. In the subsequent inquiry, each sub-data of the data in the database operation server is extracted from the passed position information, the dictionary information of the position of each sub-data in the data, and the sub-data identifier required for the inquiry. Since the position information includes the identifier of the database operation server with data, a data retrieval request can be made to the database operation server with data.

また、位置情報はデータベース操作サーバ上でのデータのアドレスを含むので、データを取出せる。データ内での各サブデータの位置のディクショナリ情報と、必要なサブデータの識別子により、データから、必要なサブデータの位置を割り出し、個々のサブデータを取り出すことができる。取り出したサブデータはフロントエンドサーバに返され、そのサブデータを使用する処理を行なうことが可能になる。   Further, since the position information includes the address of data on the database operation server, the data can be extracted. Based on the dictionary information of the position of each sub-data in the data and the identifier of the necessary sub-data, the position of the necessary sub-data can be determined from the data and individual sub-data can be extracted. The extracted sub data is returned to the front-end server, and processing using the sub data can be performed.

データベース操作サーバから、フロントエンドサーバへ、後の処理で使用するデータのみを転送するため、使用しないデータが大きい場合、問い合わせ時間を小さくする目的が実現される。   Since only the data used in the subsequent processing is transferred from the database operation server to the front-end server, the purpose of reducing the inquiry time is realized when the unused data is large.

サブデータを使用する後の処理が、先の検索処理のデータに対する更新処理である場合、更新処理の内部形式の処理手順が、データベース操作サーバ側で、必要とするサブデータを受け取り更新処理を行なうことができる。この場合、データベース操作サーバから、フロントエンドサーバへのサブデータの転送が無くなるため、さらに問い合わせの時間が小さくなる。   When the processing after using the sub data is an update processing for the data of the previous search processing, the processing procedure in the internal format of the update processing receives the necessary sub data on the database operation server side and performs the update processing. be able to. In this case, since the sub-data transfer from the database operation server to the front-end server is eliminated, the inquiry time is further reduced.

また、上記、先に行なう検索処理で、データの位置情報のみを取り出し、後の処理でサブデータを取り出す方法を第一の方法とし、先に行なう検索処理で、サブデータを含むデータ全体をフロントエンドサーバ側に取り出し、後の処理に渡す方法を第二の方法とし、サブデータのデータ長や通信にかかる時間などから計算した各方法のコスト比較や、LOBデータなどあらかじめシステムで与える基準値より長いサブデータの有無などにより、2つの方法から1つ選択することで、状況に応じて細かく、問い合わせ時間が小さい方法を選択することができ、問い合わせ時間を小さくする上記目的が達成される。   In addition, the first method is to extract only the position information of the data in the above-described search processing and to extract the sub-data in the subsequent processing. In the first search processing, the entire data including the sub-data is front-mounted. The second method is the method of taking it out to the end server and passing it to the subsequent processing. Compare the cost of each method calculated from the data length of sub-data and the time required for communication, etc. By selecting one of the two methods depending on the presence of long sub-data, etc., a method with a small inquiry time can be selected according to the situation, and the above-described object of reducing the inquiry time is achieved.

本発明はデータベースの主流であるリレーショナルデータベース、SQLにより説明を行う。また、本発明で扱う複雑な構造を持ったデータとして、SQL3のADTにより説明を行なう。しかし、親言語に、データベース問い合わせが埋め込まれ、複数のデータベース問い合わせの間でデータのやりとりができ、かつ、複数のデータの集まりからなるデータを扱えるデータベース管理システムであれば本発明を適用可能である。   The present invention will be described using a relational database, SQL, which is the mainstream database. Further, the data having a complicated structure handled in the present invention will be described using the SQL3 ADT. However, the present invention can be applied to any database management system in which a database query is embedded in the parent language, data can be exchanged between a plurality of database queries, and data consisting of a collection of a plurality of data can be handled. .

本発明によれば、複数のサブデータからなるデータに対する処理において、位置情報転送し、後でそのデータのサブデータを使用することができるAccording to the present invention, in processing for data consisting of a plurality of sub data, position information can be transferred and the sub data of the data can be used later.

以下において本発明の一実施例を図面を用いて説明する。図1は本発明の実施例の構成図である。データベースへの問い合わせ122に対するフロントエンドの役割をするデータベースサーバ12と、データベースに対する操作を行う役割をする複数のデータベース操作サーバ13で構成される。フロントエンドデータベースサーバ12とデータベース操作サーバ13は、高速な相互結合ネットワークで繋がっているものとする。   Hereinafter, an embodiment of the present invention will be described with reference to the drawings. FIG. 1 is a configuration diagram of an embodiment of the present invention. The database server 12 serves as a front-end for a database inquiry 122, and a plurality of database operation servers 13 serve as operations for the database. It is assumed that the front-end database server 12 and the database operation server 13 are connected by a high-speed interconnection network.

ただし、ネットワークで繋がる複数プロセッサの並列データベースシステムで無く、単一プロセッサのシステムでも、各サーバの役割として並列なプロセスを割り当てていれば、本発明を適用可能である。   However, the present invention can be applied to a single processor system as long as a parallel process is assigned as a role of each server, not a parallel database system of a plurality of processors connected by a network.

フロントエンドサーバ12は、外部のホスト11とネットワークで繋がっているものとする。ただし、本発明はフロントエンドサーバ12とデータベース操作サーバ13の間の転送量を削減するものなので、ホストの役割をデータベースシステム側に取り込み、内部の高速なネットワークで繋げる代案や、ホストの役割とフロントエンドのデータベースサーバを1つに統合する代案に対しても本発明を適用できる。また一連の問い合わせが、ホストのUAPで無く、ストアドプロシジャの場合でも、複数のサブデータに対する検索問い合わせ、変数による受け渡し、後の問い合わせでサブデータを使用するという形で対応を付けることができ、本発明を適用できる。   The front-end server 12 is assumed to be connected to an external host 11 via a network. However, since the present invention reduces the transfer amount between the front-end server 12 and the database operation server 13, there is an alternative in which the role of the host is taken into the database system side and connected by the internal high-speed network, or the role of the host and the front The present invention can also be applied to an alternative in which end database servers are integrated into one. Even if a series of inquiries is not a host UAP but a stored procedure, it can be handled in the form of a search query for multiple sub-data, passing by variable, and using the sub-data in subsequent queries. The invention can be applied.

図1はデータベース問い合わせの解析、実行の例であり、表、型などの定義文の解析は後述の図10を参照する。データベース問い合わせか、定義文かは、意味解析で判定できる。解析101にはその判定を含む。   FIG. 1 shows an example of database query analysis and execution. Refer to FIG. 10 described later for analysis of definition statements such as tables and types. Whether it is a database query or a definition statement can be determined by semantic analysis. The analysis 101 includes the determination.

まず、先に行なう検索問い合わせ122aをフロントエンドサーバ12で解析101することで、内部形式の処理手順125を作成する。内部形式の処理手順は、実行形式のコードであっても、インタプリタ用のコードであっても良い。   First, the front-end server 12 analyzes 101 the search query 122a to be performed first, thereby creating a processing procedure 125 in an internal format. The processing procedure in the internal format may be an execution format code or an interpreter code.

検索問い合わせ122aの実行に対して、サブデータへの操作は無いものとし132、かつ、データベース操作文であるため133、内部形式の処理手順125をデータベース操作サーバ13に転送する102。データベース操作サーバ13は処理手順125を受け取り111、処理手順を実行し、複数のサブデータからなるデータの検索に対しては、データベース操作サーバの識別子IDとデータのアドレスを取得する112。検索の結果126はフロントエンドサーバ側に結果転送を行なう113。フロントエンドサーバ側は結果を受け取り103受け取った結果を、後の問い合わせ122bに変数を介して渡す情報127としてUAPに返す105。   For the execution of the search query 122a, it is assumed that there is no operation on the sub data 132, and since it is a database operation statement 133, the processing procedure 125 in the internal format is transferred 102 to the database operation server 13. The database operation server 13 receives the processing procedure 125 111, executes the processing procedure, and obtains the identifier ID of the database operation server and the data address 112 for the retrieval of data consisting of a plurality of sub data. The search result 126 is transferred 113 to the front end server side. The front-end server side receives the result 103 and returns 105 the received result to the UAP as information 127 to be passed to the subsequent inquiry 122b via a variable.

次に、サブデータを使用する後の問い合わせ122bをフロントエンドサーバ12で解析101する。入力となる変数が存在するので、変数にバインドした情報127がUAPから渡される。また、変数にバインドした情報127が、複数のサブデータからなるデータの位置情報126の場合、サブデータを取り出すためのオフセット情報124をディクショナリ14から取得する。上記情報127、124により、サブデータを取得する内部形式の処理手順と、取得したサブデータを使用する問い合わせの処理手順を作成する。   Next, the front end server 12 analyzes 101 the inquiry 122b after using the sub data. Since there is a variable to be input, information 127 bound to the variable is passed from the UAP. Further, when the information 127 bound to the variable is the position information 126 of data composed of a plurality of sub data, the offset information 124 for extracting the sub data is acquired from the dictionary 14. Based on the information 127 and 124, a processing procedure in an internal format for acquiring sub data and a processing procedure for an inquiry using the acquired sub data are created.

問い合わせ122bの実行に対して、サブデータへの操作であるため131、サブデータ取得106を行なう。先の検索処理で取得した位置情報126のデータベース操作サーバの識別子から、データのあるデータベース操作サーバがわかるので、サブデータ取り出しに必要な情報128とともに、サブデータ取り出しの要求をそのデータベース操作サーバ13に出す。サブデータ取り出しに必要な情報128とは、そのデータベース操作サーバ内でのデータのアドレスと、必要なサブデータを取り出すためのオフセット情報124である。どの、サブデータが必要かは、解析101時に抽出することができ、サブデータを取得する内部形式に情報を埋め込んで置く。   In response to the execution of the inquiry 122b, since it is an operation on sub data 131, sub data acquisition 106 is performed. Since the database operation server with the data is known from the identifier of the database operation server in the position information 126 acquired in the previous search process, the sub-data retrieval request is sent to the database operation server 13 together with information 128 necessary for sub-data retrieval. put out. The information 128 necessary for sub data retrieval is the address of data in the database operation server and offset information 124 for retrieving necessary sub data. Which sub-data is necessary can be extracted at the time of analysis 101, and information is embedded in an internal format for acquiring the sub-data.

データベース操作サーバ側は、サブデータ取り出しの要求があると、データのアドレスとサブデータのオフセット位置の情報からサブデータを取り出し、要求元のフロントエンドサーバ12にサブデータ129を返す。実施例では、データベース操作サーバ13側の処理を、データのアドレスとサブデータのオフセット情報を受け取り、サブデータを返す、システム括り付けの処理で表しているが、解析時に同様の処理を行なう内部形式の処理手順を作成し、実行時にデータベース操作サーバに処理手順を転送し、実行する代案でも本発明を適用できる。   When there is a request for taking out the sub data, the database operation server side takes out the sub data from the data address and the information on the offset position of the sub data, and returns the sub data 129 to the requesting front end server 12. In the embodiment, the processing on the database operation server 13 side is represented by a system binding process that receives the data address and sub-data offset information and returns the sub-data. The present invention can be applied to an alternative in which the processing procedure is created, transferred to the database operation server at the time of execution, and executed.

フロントエンドサーバ側は、必要なサブデータ129を受け取る107。サブデータを受け取る場所は、解析101時に、問い合わせ122bの主となる処理であるサブデータを使用する処理の内部形式の処理手順中のサブデータ使用場所からポイントしておく。後の問い合わせがデータベース操作文である133無し134にかかわらず、続く内部形式の処理手順の実行104、112でサブデータを使用することができる。   The front-end server side receives 107 the necessary sub data 129. The place where the sub data is received is pointed from the sub data use place in the processing procedure of the internal format of the process using the sub data which is the main process of the inquiry 122b at the time of the analysis 101. Regardless of whether the subsequent inquiry is a database operation statement 133 without 133, the sub-data can be used in the subsequent execution 104, 112 of the processing procedure in the internal format.

先に行なう、複数のサブデータからなるデータの検索問い合わせ122aで、位置情報126のみを取得し、後に行なう、サブデータを使用する問い合わせ122bで、必要とするサブデータ129のみを取得するため、使用しないデータがLOBのように大規模なデータの場合、問い合わせ時間を小さくすることが可能になる。   Since only the position information 126 is acquired by the data search query 122a made of a plurality of sub-data, and only the necessary sub-data 129 is acquired by the query 122b using the sub-data, which is made later. If the data to be processed is large-scale data such as LOB, the inquiry time can be reduced.

図2は、複数のサブデータからなるデータの例である。型の定義例21、型から作成されるデータの例22、データの検索問い合わせ例23を記述する。   FIG. 2 is an example of data composed of a plurality of sub data. A type definition example 21, a data example 22 created from the type, and a data search query example 23 are described.

データ型の定義には、各サブデータ(ADTでいう属性)の名称と型の宣言201を含む。サブデータの型は、システム定義の型でも、ユーザ定義の型でも良い。型のデータに対する関数や手続きの定義202や、型同士の継承関係も指定することができるが、指定が無くても良い。   The data type definition includes the name of each sub-data (attribute in ADT) and the type declaration 201. The sub-data type may be a system-defined type or a user-defined type. A function or procedure definition 202 for data of a type and an inheritance relationship between types can be specified, but there is no need to specify them.

複数のサブデータからなるデータは、システム定義の型と同じく、表定義22に使用する。表へ、データの挿入を行なうことで、住所データのように、郵便番号、住所、電話番号のサブデータ204からなるデータ203を作成することができる。   Data consisting of a plurality of sub-data is used for the table definition 22 as with the system-defined type. By inserting data into the table, it is possible to create data 203 consisting of post data, address, and telephone number sub-data 204, like address data.

作成したデータは、検索などの問い合わせを行なうことができる205、206。205は住所データのサブデータ郵便番号を検索する問い合わせである。206は住所データのサブデータ住所がYokohamaである住所データを検索する問い合わせである。このように、サブデータの検索も、複数のサブデータからなるデータ自身の検索も行なうことができる。   The created data can be inquired such as a search 205, 206. 205 is a query for searching for the sub-data zip code of the address data. Reference numeral 206 denotes an inquiry for searching for address data whose sub-data address is address Yokohama. In this way, it is possible to search for sub data as well as for data consisting of a plurality of sub data.

図3は本発明の内、図1の位置情報126の例である。位置情報126は、データベース操作サーバ13の識別子301と、サーバ13内でのデータのアドレス302を含む。フロントエンドサーバ12などでの制御処理に用いる情報として、型の識別子などの付加的な情報を含んでも良い。データベース操作サーバの識別子301は、データを格納するデータベース操作サーバを特定できる情報であればよい。データのアドレス302は、データ格納の実アドレスでも、メモリ上にデータを取り出し先頭アドレスからのオフセットによる論理的なアドレスで表してもよい。   FIG. 3 shows an example of the position information 126 of FIG. 1 in the present invention. The position information 126 includes an identifier 301 of the database operation server 13 and an address 302 of data in the server 13. Additional information such as a type identifier may be included as information used for control processing in the front-end server 12 or the like. The database operation server identifier 301 may be information that can identify the database operation server that stores the data. The data address 302 may be a real address for data storage or may be represented by a logical address obtained by taking out data from the memory and offsetting from the head address.

図4は本発明の内、図1の変数にバインドする情報127の例である。図4は、複数のサブデータからなるデータの検索結果をバインドする場合である。複数のサブデータからなるデータ全体の検索で無い場合は、変数にバインドする情報は、検索するデータ自身である。変数にバインドする情報127は、データベース操作サーバ13の識別子401と、サーバ13内でのデータのアドレス402を含む。フロントエンドサーバ12などでの制御処理に用いる情報として、型の識別子などの付加的な情報を含んでも良い。データベース操作サーバの識別子401は、データを格納するデータベース操作サーバを特定できる情報であればよい。データのアドレス402は、データ格納の実アドレスでも、メモリ上にデータを取り出しオフセットによる論理的なアドレスで表してもよい。図21の実施例のように、コストによりデータをフロントエンド側に置くか、バックエンド側に置くか選択する方式を行なう場合には、データがフロントエンド側にあるか、バックエンド側にあるかを表す情報を変数にバインドする情報に含める。ホストのUAP側では、サブデータを含むデータの検索の場合、変数の領域として、変数にバインドする情報を受け取るだけの長さ分の領域を用意する必要がある。   FIG. 4 shows an example of information 127 to be bound to the variables of FIG. 1 in the present invention. FIG. 4 shows a case where search results of data composed of a plurality of sub data are bound. When the search is not for the entire data composed of a plurality of sub-data, the information to be bound to the variable is the data to be searched. The information 127 to be bound to the variable includes the identifier 401 of the database operation server 13 and the data address 402 in the server 13. Additional information such as a type identifier may be included as information used for control processing in the front-end server 12 or the like. The database operation server identifier 401 may be information that can identify the database operation server that stores the data. The data address 402 may be a real address of data storage or may be represented by a logical address obtained by taking out the data from the memory. When the method of selecting whether to place data on the front end side or the back end side according to cost as in the embodiment of FIG. 21, is the data on the front end side or the back end side? Include information that represents in the information that is bound to the variable. On the UAP side of the host, when searching for data including sub-data, it is necessary to prepare an area for the length of the variable area to receive information to be bound to the variable.

図5は本発明の内、図1の内部形式の処理手順125の例である。内部形式の処理手順125は、インタプリタで解釈実行するコード及び各コードに付随する情報からなる。情報には、取り出すデータの型や長さの情報、サブデータのオフセット情報、取り出したデータを置く場所の情報など、処理に応じた各種の情報がある。情報には次に実行するコードの情報も含む。次に実行するコードが条件分岐の情報により分かれることも可能である。サブデータ取り出し用のコード501に付随する情報502はデータの位置情報126や使用するサブデータのオフセット情報を含む。内部形式の処理手順は、インタプリタで解釈実行するコードで無く、実行形式のコードであっても本発明を適用可能である。図5は位置情報126からサブデータ129を取り出す内部形式の処理手順51と、サブデータを使用する内部形式の処理手順52の関係を示すものである。処理手順51により取り出すサブデータ129を置く場所505を共用メモリ上でのオフセット位置506で表し、処理手順52でサブデータを使用するコードの情報504に入れて置く。上記の情報により、処理手順51で取り出したサブデータ129を処理手順52側で使用することができる。サブデータを取り出す内部形式の処理手順51と、サブデータを使用する内部形式の処理手順52は、1つの処理手順にまとめた形であっても良い。   FIG. 5 shows an example of the processing procedure 125 in the internal format of FIG. 1 in the present invention. The processing procedure 125 in the internal format includes a code that is interpreted and executed by an interpreter and information accompanying each code. The information includes various types of information according to processing, such as information on the type and length of data to be extracted, offset information on sub-data, and information on the location where the extracted data is placed. The information includes information on the code to be executed next. It is also possible to divide the code to be executed next by conditional branch information. Information 502 accompanying the sub-data extraction code 501 includes data position information 126 and sub-data offset information to be used. The processing procedure in the internal format is not a code that is interpreted and executed by an interpreter, but can be applied to a code in an executable format. FIG. 5 shows the relationship between the internal-format processing procedure 51 for extracting the sub-data 129 from the position information 126 and the internal-format processing procedure 52 using the sub-data. A place 505 where the sub data 129 extracted by the processing procedure 51 is placed is represented by an offset position 506 on the shared memory, and is put in the information 504 of the code using the sub data in the processing procedure 52. Based on the above information, the sub-data 129 extracted in the processing procedure 51 can be used on the processing procedure 52 side. The internal format processing procedure 51 for extracting sub data and the internal format processing procedure 52 using the sub data may be combined into one processing procedure.

図5の例では、サブデータ129を取り出す処理は、取り出すサブデータの情報502を用いてコード501aにより解釈実行する形であるが、取り出す手順を表す複数のコードからなっていても良い。図5の例では、サブデータ129を使用する場合の内部形式の処理手順であるが、サブデータを使用しない内部形式の処理手順の場合は、サブデータを取り出す処理手順51や、サブデータ129を置く場所505のオフセット位置の情報は必要無い。位置情報126を取り出す内部形式の処理手順の場合、解釈実行に必要な情報として、取り出す位置情報の長さ分の領域へのオフセット位置を含む。   In the example of FIG. 5, the process of extracting the sub data 129 is interpreted and executed by the code 501a using the sub data information 502 to be extracted, but may be composed of a plurality of codes representing the extraction procedure. In the example of FIG. 5, the processing procedure of the internal format when using the sub-data 129 is used. However, in the processing procedure of the internal format not using the sub-data, the processing procedure 51 for extracting the sub-data and the sub-data 129 are changed. Information on the offset position of the place 505 is not necessary. In the case of the processing procedure of the internal format for extracting the position information 126, the offset position to the area corresponding to the length of the extracted position information is included as information necessary for execution of interpretation.

図6は本発明の内、図1のサブデータのオフセット情報124の例である。サブデータのオフセット情報124は、複数のサブデータからなるデータごとに作成する。サブデータのオフセット情報124は、サブデータの識別子601、データ型602、データ長603、オフセット位置604を含む。オフセット位置は、データの先頭などの基準となるアドレスからのオフセットである。各サブデータがクラスタリングしてあれば、各サブデータの、オフセット位置は、データ長603から計算できるため、データ型602やオフセット位置604は無くてもかまわない。また、可変長サブデータが存在する場合は、ディクショナリ14にオフセット位置を置くことができない。この場合、オフセット位置をデータ130に組み入れる代案を適用できる。サブデータの識別子601とオフセットの対応が取れるようにデータ130に組みいれる。例えば、サブデータの識別子が、データの中の定義順に、1から順にふられている場合、データ130に同じ順にオフセットを置くようにする方法が考えられる。   FIG. 6 is an example of the offset information 124 of the sub data in FIG. 1 in the present invention. The sub data offset information 124 is created for each piece of data composed of a plurality of sub data. The sub data offset information 124 includes a sub data identifier 601, a data type 602, a data length 603, and an offset position 604. The offset position is an offset from a reference address such as the head of data. If each sub-data is clustered, the offset position of each sub-data can be calculated from the data length 603. Therefore, the data type 602 and the offset position 604 may be omitted. Further, when variable length sub-data exists, an offset position cannot be placed in the dictionary 14. In this case, an alternative to incorporate the offset position into the data 130 can be applied. It is incorporated in the data 130 so that the sub-data identifier 601 can be associated with the offset. For example, when the sub-data identifiers are assigned in order of definition in the data from 1 in order, an offset may be placed on the data 130 in the same order.

図7は本発明の内、図1のサブデータ取り出し用情報128の例である。サブデータ取り出し用情報128は、データベース操作サーバ13内でのデータのアドレス302と、使用するサブデータ129のオフセット情報701を含む。使用するサブデータのオフセット情報701は、サブデータの識別子601、データ型602、データ長603、オフセット位置604を含む。使用するサブデータ129のオフセット情報701は、解析101時に、サブデータのオフセット情報124から、使用するサブデータ129の識別子601のオフセット情報を取り出す。サブデータのオフセット情報124と、使用するサブデータ129の識別子を、サブデータ取り出し用情報128に含め、データベース操作サーバ13側で、使用するサブデータ129のオフセット情報を選択する代案も適用できる。   FIG. 7 shows an example of the sub-data extraction information 128 of FIG. 1 in the present invention. The sub-data retrieval information 128 includes data address 302 in the database operation server 13 and offset information 701 of sub-data 129 to be used. The sub-data offset information 701 to be used includes a sub-data identifier 601, a data type 602, a data length 603, and an offset position 604. As the offset information 701 of the sub data 129 to be used, the offset information of the identifier 601 of the sub data 129 to be used is extracted from the offset information 124 of the sub data at the time of analysis 101. An alternative is also applicable in which the offset information 124 of the sub data and the identifier of the sub data 129 to be used are included in the sub data extraction information 128 and the offset information of the sub data 129 to be used is selected on the database operation server 13 side.

図8は本発明の内、図1のサブデータ129の例である。サブデータ129は、システム定義型もしくは、ユーザ定義型の実際のデータ801である。取り出すサブデータがユーザ定義型で、使用するデータがサブデータのサブデータの場合、サブデータ取り出し用情報701に、サブデータのサブデータのオフセット情報を含めてデータベース操作サーバ13側で、サブデータのサブデータを取り出す代案が適用できる。サブデータのサブデータのサブデータ以下続く場合でも同様にオフセット情報をサブデータ取り出し用情報701に含めることで適用可能である。   FIG. 8 shows an example of the sub-data 129 of FIG. 1 in the present invention. The sub data 129 is actual data 801 of a system definition type or a user definition type. When the sub-data to be extracted is a user-defined type and the data to be used is sub-data sub-data, the database operation server 13 side includes sub-data sub-data offset information in the sub-data extraction information 701 on the side of the sub-data. Alternatives for retrieving subdata are applicable. Even when the sub-data of the sub-data follows the sub-data, it can be similarly applied by including the offset information in the sub-data extracting information 701.

図9は本発明の内、図1のデータ操作サーバに格納してあるデータ130の例である。データ操作サーバに格納してあるデータ130は、各列ごとのデータ901の集まりである。各列の取り出しの高速化などの為に、各列のデータに対して、先頭からのオフセット情報などの付加情報があっても良い。各列のデータは、システム定義の型のデータ902と、ユーザ定義の型のデータ903を含む。各列のデータ型は、CREATE TABLEなどの表定義によるもので、システム定義の型のデータ902、ユーザ定義の型のデータ903ともに0回以上何回どの順番で出現してもかまわない。ただし、どちらか最低1つは必要である。   FIG. 9 shows an example of data 130 stored in the data operation server of FIG. 1 in the present invention. Data 130 stored in the data operation server is a collection of data 901 for each column. There may be additional information such as offset information from the head for each column of data in order to speed up the extraction of each column. Each column of data includes system-defined type data 902 and user-defined type data 903. The data type of each column is based on a table definition such as CREATE TABLE, and both the system-defined type data 902 and the user-defined type data 903 may appear 0 or more times in any order. However, at least one of them is required.

図9の(a)は複数のサブデータからなる列データを、他の列データとクラスタリングし、全体のデータ130に埋め込んだ形式にしてある。サブデータに可変長のデータを含む場合、図9の(b)のように、サブデータを持つデータの列に対して、各サブデータのオフセット904を組み入れる代案を適用できる。サブデータを持つデータ903bの構造が、全体のデータ130の構造と同形になっている。図9の(b)では、オフセットはサブデータの先頭アドレスからのものを入れているが、サブデータの識別子から、サブデータの位置を確定できる情報が組み入れてあれば他の形でもよい。サブまた、可変長のサブデータに対して、オフセットの情報では無く、その可変長のサブデータにデータ長の情報を組み入れる代案もある。図6のディクショナリ情報のサブデータの識別子から、そのサブデータを取り出せる形になっていれば本発明を適用可能である。   FIG. 9A shows a format in which column data composed of a plurality of sub-data is clustered with other column data and embedded in the entire data 130. When sub-data includes variable-length data, an alternative that incorporates an offset 904 of each sub-data can be applied to a column of data having sub-data as shown in FIG. The structure of the data 903b having sub data is the same as the structure of the entire data 130. In FIG. 9 (b), the offset is from the start address of the sub data, but any other form may be used as long as information that can determine the position of the sub data is incorporated from the sub data identifier. There is also an alternative in which data length information is incorporated into variable-length subdata instead of offset information for variable-length subdata. The present invention can be applied if the sub-data can be extracted from the sub-data identifier of the dictionary information in FIG.

複数のサブデータからなる列データ903を、全体のデータ130と別の領域に格納し、その領域へのポインタのみをデータ130に格納する代案も適用できる。   An alternative is also applicable in which column data 903 composed of a plurality of sub-data is stored in an area different from the entire data 130 and only a pointer to the area is stored in the data 130.

図10はサブデータのオフセット情報124作成の実施例である。サブデータのオフセット情報124は、複数のサブデータからなるデータの型の定義のときに作成される。CREATE TYPEのような型の定義文1001をフロントエンドサーバ12で解析101を行なう。サブデータ1つ1つに対して型を調べ、型の種類により決められた長さ、もしくは、文字列などの場合は定義された長さによって、サブデータの識別子601、データ型602、データ長603、オフセット位置604を得る。サブデータ識別子601は、サブデータの名称と対応付けられるものであればかまわない。フロントエンドサーバと、ディクショナリのあるサーバを分けて、ディクショナリのあるサーバで解析を行なう代案も適用できる。   FIG. 10 shows an example of creating the offset information 124 of the sub data. The sub data offset information 124 is created when defining the type of data composed of a plurality of sub data. The front end server 12 analyzes the type definition statement 1001 such as CREATE TYPE 101. The type is examined for each subdata, and the subdata identifier 601, data type 602, data length are determined according to the length determined by the type of type, or in the case of a character string, etc. 603, an offset position 604 is obtained. The sub data identifier 601 may be anything that is associated with the name of the sub data. An alternative to separate the front-end server and the server with the dictionary and performing the analysis with the server with the dictionary is also applicable.

図11は複数のサブデータからなるデータ130作成の実施例である。複数のサブデータからなるデータ130は、挿入問い合わせのときなどに作成される。CREATE TABLEのような表の定義文により作成される表定義情報を用いる。表定義情報は各列の列識別子、データ型を含む。従来と変わることとしては、データ型として、ユーザ定義の型を使用できる。図11は挿入問い合わせの例である。挿入問い合わせ1101をフロントエンドサーバ12で解析101を行なう。挿入問い合わせ1101は、各列に挿入する値データを含む。挿入する値データが、複数のサブデータからなるデータの場合、各サブデータの値を指定する方法や、データを作成する関数とその引数を指定する方法などがある。ADTの場合は、データを作成する関数とその引数(引数無しの指定もある)を指定する。関数によりデータを作成する場合は、図10の型の定義時、定義の中に指定した関数などの解析した結果が、ディクショナリに格納される。   FIG. 11 shows an example of creating data 130 composed of a plurality of sub data. Data 130 composed of a plurality of sub-data is created at the time of an insertion inquiry. Use table definition information created by a table definition statement such as CREATE TABLE. The table definition information includes the column identifier and data type of each column. As a change from the past, a user-defined type can be used as a data type. FIG. 11 shows an example of an insertion inquiry. The front-end server 12 analyzes the insertion inquiry 1101. The insertion query 1101 includes value data to be inserted into each column. When the value data to be inserted is data composed of a plurality of sub-data, there are a method of specifying the value of each sub-data, a method of creating data and a method of specifying its argument, and the like. In the case of ADT, specify the function to create data and its argument (there may be no argument). When data is created by a function, the analysis result of the function or the like specified in the definition is stored in the dictionary when the type shown in FIG. 10 is defined.

挿入問い合わせ1101の解析101により、挿入する値もしくは値を作成する関数と引数を、インタプリタで解釈実行する情報として含む内部形式の処理手順1102を作成する。情報には、表定義情報やサブデータのオフセット情報から得る各列やサブデータの型、長さを含む。内部形式の処理手順1102をその挿入する表の格納してあるデータ操作サーバ13に転送する。データ操作サーバ13側は、内部形式の処理手順1102を受け取り、実行する。インタプリタで実行するコードは、列やサブデータの型や長さの情報と挿入する値の情報から、挿入する値の作成1103、型変換1104を経て、データ130の形式に組み上げ格納1105する。サブデータのサブデータに対しては、再帰処理などを用いてデータ130を組み上げる。内部形式の処理手順1102は、インタプリタで解釈実行するコードで無く、実行形式のコードであっても本発明を適用可能である。   Based on the analysis 101 of the insertion query 1101, a processing procedure 1102 in an internal format that includes a value to be inserted or a function for creating a value and information as information to be interpreted and executed by an interpreter is created. The information includes the type and length of each column and sub data obtained from the table definition information and sub data offset information. The processing procedure 1102 in the internal format is transferred to the data operation server 13 in which the table to be inserted is stored. The data operation server 13 side receives and executes the processing procedure 1102 in the internal format. The code executed by the interpreter is assembled and stored 1105 in the format of the data 130 from the column / subdata type / length information and the inserted value information, through the creation of the inserted value 1103 and the type conversion 1104. For the sub data of the sub data, the data 130 is assembled using recursive processing or the like. The processing procedure 1102 in the internal format can be applied to the execution format code, not the code that is interpreted and executed by the interpreter.

図12は本発明の内、図1の内部形式の処理手順作成101の処理説明図である。まず、問い合わせ122と、変数による入力があればそのバインドの情報127を受け取る1201。問い合わせ122の構文解析1202、意味解析1203を行ない、その過程で変数のサブデータの使用があるかどうか、ある場合使用するサブデータの識別子の解析も行なう。また問い合わせ122の中に使用するサブデータは複数あってもよいので、使用する側のサブデータと、取り出す側のサブデータは同じ識別子で解析結果の情報に含めておく。   FIG. 12 is an explanatory diagram of the processing procedure creation 101 in the internal format of FIG. 1 in the present invention. First, if there is an inquiry 122 and an input by a variable, the binding information 127 is received 1201. The syntax analysis 1202 and the semantic analysis 1203 of the query 122 are performed, and in the process, whether or not the variable sub-data is used is also analyzed. Since there may be a plurality of sub-data used in the inquiry 122, the sub-data on the use side and the sub-data on the extraction side are included in the analysis result information with the same identifier.

変数のサブデータの使用があれば1204、変数のバインドの情報から、データの位置情報126を取り出し1205、そのデータの位置情報126と、ディクショナリにあるサブデータのオフセット情報124と、使用するサブデータの識別子から、サブデータを取り出す内部形式の処理手順51を作成する1206。次に、サブデータを使用する問い合わせ122の内部形式の処理手順52を作成する1207。同じ識別子のサブデータには同じ格納場所を表すオフセットを与えることで、サブデータを取り出す側51と、使用する側52で、サブデータのやり取りができる。   If there is use of variable sub-data 1204, the data position information 126 is extracted 1205 from the variable binding information 1205, the data position information 126, the sub-data offset information 124 in the dictionary, and the sub-data to be used A processing procedure 51 in an internal format for extracting sub-data is created 1206 from the identifier. Next, the processing procedure 52 in the internal format of the query 122 using sub data is created 1207. By giving an offset indicating the same storage location to sub-data with the same identifier, sub-data can be exchanged between the sub-data extracting side 51 and the using side 52.

変数のサブデータの使用が無ければ1204、サブデータを取り出す内部形式の処理手順は必要無く、問い合わせ122の内部形式の処理手順のみを作成する1207。問い合わせがデータベース操作サーバ側で行なうデータベース操作サーバの場合、内部形式の処理手順には、実行するデータベース操作サーバの情報を付随する。実行するデータベース操作サーバの情報は、操作を行なう表の分割に関する情報から得られる。表の分割情報は、表定義時に指定され、ディクショナリに入っている。   If there is no use of variable sub-data, no processing procedure in the internal format for extracting the sub-data is required, and only the processing procedure in the internal format of the query 122 is created 1207. In the case of the database operation server in which the inquiry is performed on the database operation server side, the processing procedure in the internal format is accompanied by information on the database operation server to be executed. The information of the database operation server to be executed is obtained from the information related to the table partition to be operated. Table partition information is specified at the time of table definition and is stored in the dictionary.

図13は本発明の内、図1の内部形式の処理手順転送102と、処理手順受け取り111の実施例の処理説明図である。実行するデータベース操作サーバ13の1つ1つに対して1301、内部形式の処理手順125を転送する1302。データベース操作サーバ13側は、内部形式の処理手順125を受け取り111、実行を行なう112。データベース操作サーバが処理手順125の受け取り報告をフロントエンドサーバ12に返し、全て受け取ったのを確認してから各データベース操作サーバ13に起動要求をかけ実行112に移る代案も適用できる。データベース操作サーバのキャッシュに内部形式の処理手順125を置くことによって、2回目以降の実行は、実行要求を発しキャッシュにある処理手順125を用いる改良案も適用できる。   FIG. 13 is a process explanatory diagram of an embodiment of the processing procedure transfer 102 and the processing procedure reception 111 in the internal format of FIG. 1301 is transferred to each database operation server 13 to be executed, and 1302 is transferred 1302 in the internal format. The database operation server 13 side receives 111 the processing procedure 125 in the internal format and executes 112. An alternative is also applicable in which the database operation server returns a reception report of the processing procedure 125 to the front-end server 12, confirms that all have been received, makes an activation request to each database operation server 13, and moves to execution 112. By placing the processing procedure 125 in the internal format in the cache of the database operation server, the second and subsequent executions can also apply an improvement plan that issues an execution request and uses the processing procedure 125 in the cache.

図14は本発明の内、図1の内部形式の処理手順実行104の実施例の処理説明図である。インタプリタにより、コードを1つずつ1401、付随する情報とともに解釈実行を行なう1402。次に行なうコードを情報から取り出し1403、次々実行していく。   FIG. 14 is a process explanatory diagram of an embodiment of the processing procedure execution 104 in the internal format of FIG. 1 in the present invention. The interpreter 1401 interprets the code one by one with accompanying information 1402. The next code is extracted from the information 1403 and executed one after another.

図15は本発明の内、図1の処理手順実行112の実施例の処理説明図である。インタプリタによるコードの実行は図14と同様である。インタプリタによって扱うコードの種類は、フロントエンドサーバ12側と、バックエンドサーバ13側で異なってもよい。インタプリタにより、コードを1つずつ1501、付随する情報とともに解釈実行を行なう1502。次に行なうコードを情報から取り出し1503、次々実行していく。実行するコードが、複数のサブデータからなるデータの検索の場合1504、データベース操作サーバ13aの識別子301とデータのアドレス302を取得し、解析時に結果用に用意しておく領域に、位置情報126を作成する。データベース操作サーバ13の識別子は、内部形式の処理手順125にコードが用いる情報として用意しておいても良い。複数のサブデータからなるデータで無い場合のデータの検索の場合は、解析時に結果用に用意しておく領域に、データ自身を取り出す。   FIG. 15 is a process explanatory diagram of an embodiment of the process procedure execution 112 of FIG. 1 in the present invention. Code execution by the interpreter is the same as in FIG. The type of code handled by the interpreter may be different on the front end server 12 side and the back end server 13 side. An interpreter interprets and executes codes 1501 one by one with accompanying information 1502. The next code to be executed is extracted from the information 1503 and executed one after another. If the code to be executed is retrieval of data consisting of a plurality of sub-data 1504, the identifier 301 and the data address 302 of the database operation server 13 a are acquired, and the position information 126 is stored in an area prepared for the result at the time of analysis. create. The identifier of the database operation server 13 may be prepared as information used by the code for the processing procedure 125 in the internal format. In the case of data search when the data is not composed of a plurality of sub-data, the data itself is taken out in an area prepared for the result at the time of analysis.

図16は本発明の内、図1の結果受け取り103と、結果転送113の実施例の処理説明図である。内部形式の処理手順125を転送した102データベース操作サーバ13から、実行結果が無くなる1602まで結果が転送される1601。結果は、複数個ごとに転送する代案も適用できる。各データベース操作サーバ13からの結果はキューなどにより結果を送られてきた順などに取り出される1603。結果受取りの処理手順を解析時に作成しても良い。起動したデータベース操作サーバ13から全て結果終了の報告が送られてくるまで1604、結果を受け取る1603。結果はホストのUAPに返す105。図1の場合、結果を全て受け取ってからUAPに返すようになっているが、結果を1つまたは複数個、受け取るごとにUAPに返す代案も適用できる。問い合わせが検索の場合は結果は検索結果である。複数のサブデータからなるデータの検索の場合は、検索結果に位置情報126を含む。問い合わせが検索結果以外の場合は、結果終了の報告のみである。   FIG. 16 is a diagram for explaining the processing of the embodiment of the result reception 103 and the result transfer 113 shown in FIG. The result is transferred 1601 from the 102 database operation server 13 that has transferred the processing procedure 125 in the internal format to 1602 when the execution result disappears. An alternative of transferring the results every plural numbers can also be applied. The results from each database operation server 13 are extracted 1603 in the order in which the results are sent by a queue or the like. A processing procedure for receiving results may be created at the time of analysis. Until the report of the end of the result is sent from the activated database operation server 13, 1604 and the result are received 1603. The result is returned 105 to the host UAP. In the case of FIG. 1, all the results are received and then returned to the UAP. However, an alternative to returning one or a plurality of results to the UAP each time it is received is also applicable. If the query is a search, the result is a search result. In the case of searching for data consisting of a plurality of sub data, the search result includes the position information 126. If the inquiry is other than the search result, only the result end report is given.

図17は本発明の内、図1のサブデータ取得106と、サブデータ取り出し114と、データ転送115と、データ受け取り107の実施例の処理説明図である。データの位置情報127からデータのあるデータベース操作サーバ13の識別子を取り出し1701、そのデータベース操作サーバ13に、サブデータ取り出しに必要な情報128とともに、サブデータ取り出しの要求をそのデータベース操作サーバ13に出す1702。データベース操作サーバ側はフロントエンドサーバ12側から、サブデータ取り出し用情報128を受け取る1703。データベース操作サーバ13内でのデータのアドレス302により、データを取得する1704。使用するサブデータのオフセット情報701により、オフセット位置604からデータ長603の分だけ、データ型602にしたがって、サブデータ129を取り出す1705。可変長のサブデータに対して、オフセットがデータ130の方に組み入れてある代案においては、サブデータの識別子から、データ130に組み込んだオフセットを取り出し、そのオフセットを用いてサブデータを取り出せばよい。取り出したサブデータ129はフロントエンドサーバ側に転送する115。データベース操作サーバ13から受け取る1706結果である1つ以上のサブデータ129を、解析101時に用意した、結果を格納する領域505に置く1707。この領域は、サブデータを使用する内部形式の処理手順52にオフセット506で指定され、サブデータの使用が実現する。   FIG. 17 is a process explanatory diagram of an embodiment of the sub data acquisition 106, sub data extraction 114, data transfer 115, and data reception 107 of FIG. The identifier of the database operation server 13 with the data is extracted from the data position information 127, and a request for sub-data extraction is sent to the database operation server 13 together with information 128 necessary for sub-data extraction 1702. . The database operation server side receives 1703 sub-data retrieval information 128 from the front-end server 12 side. Data is acquired 1704 by the data address 302 in the database operation server 13. Sub data 129 is extracted 1705 according to the data type 602 from the offset position 604 by the data length 603 based on the offset information 701 of the sub data to be used. In an alternative in which the offset is incorporated in the data 130 with respect to the variable length sub-data, the offset incorporated in the data 130 may be extracted from the sub-data identifier, and the sub-data may be extracted using the offset. The extracted sub-data 129 is transferred 115 to the front-end server side. One or more sub-data 129, which is the result of 1706 received from the database operation server 13, is placed 1707 in the area 505 for storing the result prepared at the time of analysis 101. This area is designated by the offset 506 in the processing procedure 52 of the internal format using the sub data, and the use of the sub data is realized.

サブデータを使用する問い合わせ122bが、検索したデータに対する更新処理のように、データベース操作サーバ13側でサブデータを受け渡すことが可能な場合は、サブデータを使用する側と共用している領域におく処理107と、図5のサブデータを置く場所505を、データベース操作サーバ13側にする代案を適用できる。検索したデータに対する更新処理かどうかの判断は、先に行なう検索問い合わせ122aの解析のときに、更新用検索の指定がある場合に可能である。この場合、フロントエンドサーバ12とデータベース操作サーバ13間のデータの転送が無いので、問い合わせ時間の削減が見込まれる。   When the sub-data inquiry 122b can deliver the sub-data on the database operation server 13 side as in the update process for the retrieved data, the sub-data inquiry 122b is set in the area shared with the sub-data using side. It is possible to apply an alternative in which the processing 107 and the location 505 in FIG. It is possible to determine whether or not it is an update process for the retrieved data when an update search is designated during the analysis of the search query 122a. In this case, since there is no data transfer between the front-end server 12 and the database operation server 13, the inquiry time can be reduced.

また、サブデータを使用する問い合わせ122bが、検索したデータに対する更新処理であり、データのアドレス402がデータ格納の実アドレスである場合は、サブデータ取り出しを行なわず、更新処理の内部形式の処理手順に直接、位置情報127や使用するサブデータのオフセット情報124を組み込むことで、直接データベース上のデータを更新する代案も適用できる。この場合、データをメモリ上に取り出さず、直接データを更新するので、問い合わせ時間の削減が見込まれる。   If the query 122b using the sub data is an update process for the retrieved data, and the data address 402 is a real address for data storage, the sub data is not fetched and the processing procedure in the internal format of the update process is performed. Alternatively, an alternative to directly updating the data on the database can be applied by incorporating the position information 127 and the offset information 124 of the sub data to be used. In this case, since the data is directly updated without fetching the data on the memory, the inquiry time can be reduced.

図18と図19は本発明を具体的なSQLに適用する例の概要図である。図18は、複数のサブデータからなるデータの検索SQLの例であり、図19は、図18で検索したデータのサブデータを使用するSQLの例である。図の例では、INTOにより、検索結果を1つ取り出し、後に使用する例であるが、複数の検索結果を取り出し、ループなどで結果1つずつを後の問い合わせで使用する場合にも、本発明を適用可能である。   18 and 19 are schematic diagrams of examples in which the present invention is applied to a specific SQL. FIG. 18 shows an example of a search SQL for data composed of a plurality of sub data, and FIG. 19 shows an example of SQL using the sub data of the data searched in FIG. In the example shown in the figure, one search result is extracted by INTO and used later. However, the present invention is also applicable to a case where a plurality of search results are extracted and one result is used in a subsequent query in a loop or the like. Is applicable.

図18は、住所録から、住所データを検索するSQLの解析、実行である。住所データは、郵便番号、住所、電話番号の3つのサブデータからなる。住所録表や、住所データの型の定義情報をディクショナリから取得し、解析を行ない、内部形式の処理手順125を作成する。住所録表がデータベース操作サーバ1とサーバ2の2つに分割格納されているものとする。WHERE条件に合うデータはサーバ2の方にあるものとする。サーバ1とサーバ2に内部形式の処理手順を転送し102、実行を行なう112。サーバ2では条件に合うデータが存在するので、データベース操作サーバ13bの識別子であるサーバ2を取得し1505、データのアドレス1801を取得し1506、位置情報126を作成し1507、結果126を返す113。結果126は、ホスト11のUAP側に変数にバインドする情報127として返す。図18ではディスクを省略しているが、アドレスはデータ格納の実アドレスでも、メモリ上にデータを取り出しオフセットによる論理的なアドレスで表してもよい。   FIG. 18 shows the SQL analysis and execution for retrieving address data from the address book. The address data is composed of three sub-data items such as a zip code, an address, and a telephone number. The address book table and address data type definition information are acquired from the dictionary, analyzed, and a processing procedure 125 in an internal format is created. It is assumed that the address book is divided and stored in the database operation server 1 and the server 2. It is assumed that the data that meets the WHERE condition is in the server 2. The processing procedure in the internal format is transferred 102 to the server 1 and the server 2 and executed 112. Since the server 2 has data that meets the conditions, the server 2 which is the identifier of the database operation server 13b is acquired 1505, the data address 1801 is acquired 1506, the position information 126 is created 1507, and the result 126 is returned 113. The result 126 is returned as information 127 to be bound to the variable on the UAP side of the host 11. Although the disk is omitted in FIG. 18, the address may be a real address for storing data, or may be represented by a logical address obtained by taking out the data from the memory.

図19は、住所データのサブデータである電話番号を判定条件に使用する問い合わせの例である。判定後の処理は、発明の主旨と関係無いので…で省略する。問い合わせを受け取り1201、構文解析、意味解析を行ない、変数:Xのサブデータ電話番号を使用する処理であるので、変数にバインドされた位置情報127と、使用するサブデータ電話番号のサブデータのオフセット情報124より、サブデータを取り出す内部形式の処理手順51を作成する1206。次に、サブデータを使用するIF文の内部形式の処理手順52を作成する1207。   FIG. 19 is an example of an inquiry using a telephone number, which is sub-data of address data, as a determination condition. Since the processing after the determination is irrelevant to the gist of the invention, it is omitted in. Since the process receives the query 1201, performs syntax analysis and semantic analysis, and uses the sub-data telephone number of the variable: X, the position information 127 bound to the variable and the offset of the sub-data of the sub-data telephone number to be used A processing procedure 51 in an internal format for extracting sub-data is created 1206 from the information 124. Next, the processing procedure 52 in the internal format of the IF statement that uses the sub data is created 1207.

実行時には、位置情報127から取得したデータのベース操作サーバであるサーバ2に、サブデータ取り出し用情報128である、住所データのアドレスと使用するサブデータ電話番号のオフセット情報を転送する。電話番号のオフセットは26である。郵便番号のデータ長が6、住所のデータ長が20であり、住所データの先頭アドレスから26の位置に電話番号があり、サブデータ電話番号を取り出せる。ただし、サブデータはクラスタリングしてあるものとする。また、簡単のため、オフセットは、最初のサブデータの先頭を0で表している。住所データを図18の検索問い合わせで、キャッシュ上に置き、余分なIOを起こさない代案を適用できる。取り出したサブデータ129は、データ受け取り107で、サブデータを使用するIF文側と共用する領域に置く1707ので、IF文の処理手順を実行する104ときに、サブデータ129を使用できる。   At the time of execution, the address of the address data and the offset information of the sub data telephone number to be used, which is the sub data extraction information 128, are transferred to the server 2 which is the base operation server of the data acquired from the position information 127. The telephone number offset is 26. The data length of the zip code is 6, the data length of the address is 20, and there is a telephone number at a position 26 from the head address of the address data, and the sub data telephone number can be taken out. However, the sub-data is assumed to be clustered. For simplicity, the offset is represented by 0 at the beginning of the first sub data. It is possible to apply an alternative that places address data on the cache by the search query of FIG. 18 and does not cause extra IO. Since the retrieved subdata 129 is placed in an area shared by the IF statement side that uses the subdata in the data reception 107, the subdata 129 can be used when the IF statement processing procedure is executed 104.

図20は本発明の代案の実施例である。図20は、先に行なう検索問い合わせ122aの解析、実行の例である。図1と異なるのは、複数のサブデータからなるデータの検索122aにおいて、検索結果2001が、位置情報126で無く、データ自身2001であることである。この場合変数にバインドする情報127は、フロントエンドサーバ上でのデータのアドレス、または、データ自身である。UAP側で、複数のサブデータからなるデータを受け取る機能が無い場合は、フロントエンドサーバ上でのアドレスになる。サブデータを使用する後の問い合わせ122bでは、フロントエンドサーバ側にデータがあるので、データベース操作サーバ側でサブデータ取り出しをする必要が無い。直接フロントエンドサーバ側のデータおよびサブデータを使用できる。   FIG. 20 shows an alternative embodiment of the present invention. FIG. 20 shows an example of analysis and execution of the search query 122a that is performed first. The difference from FIG. 1 is that, in the data search 122 a made up of a plurality of sub-data, the search result 2001 is not the position information 126 but the data itself 2001. In this case, the information 127 to be bound to the variable is an address of data on the front-end server or the data itself. If there is no function for receiving data consisting of multiple sub-data on the UAP side, the address is on the front-end server. In the inquiry 122b after using the sub-data, there is data on the front-end server side, so there is no need to retrieve sub-data on the database operation server side. Data and sub-data on the front-end server side can be used directly.

図21は本発明の内、図1の変数にバインドする情報127の図4とは別の例である。図22の例で使用する。変数にバインドする情報127は、データをフロントエンドサーバに転送しているか、データは転送せずに位置情報をフロントエンドサーバに転送しているかを表すフラグ情報2101を含む。データをフロントエンドサーバに転送している場合0、位置情報をフロントエンドサーバに転送している場合1のフラグ情報でよい。データをフロントエンドサーバに転送しているか、データは転送せずに位置情報をフロントエンドサーバに転送しているかを判別できれば、上記フラグ情報で無くてもかまわない。変数にバインドする情報127には、データをフロントエンドサーバに転送している場合の情報2102と、位置情報をフロントエンドサーバに転送している場合の情報2103を含む。データをフロントエンドサーバに転送している場合の情報2102は、フロントエンド上でのデータのアドレスもしくは、データ自身である。位置情報をフロントエンドサーバに転送している場合の情報2103は、位置情報126である。   FIG. 21 shows another example of the information 127 to be bound to the variable shown in FIG. Used in the example of FIG. The information 127 bound to the variable includes flag information 2101 indicating whether the data is transferred to the front-end server or whether the position information is transferred to the front-end server without transferring the data. The flag information may be 0 when data is transferred to the front-end server and 1 when position information is transferred to the front-end server. If it is possible to determine whether data is transferred to the front-end server or whether position information is transferred to the front-end server without transferring data, the flag information may not be used. The information 127 to be bound to the variable includes information 2102 when data is transferred to the front-end server and information 2103 when position information is transferred to the front-end server. Information 2102 when data is transferred to the front-end server is the address of the data on the front-end or the data itself. Information 2103 when the position information is transferred to the front-end server is the position information 126.

図22と図23は、図1の方法(位置情報を転送する方法)と図20の方法(データを転送する方法)を、コスト計算などの選択基準で選択する例の概要図である。選択基準としては、サブデータのデータ長などのディクショナリ情報から各方法のコストを計算し比較する方法や、検索するデータにLOBデータなどの大規模なサブデータがあれば図1の方法、無ければ図20の方法というように分ける方法がある。   FIGS. 22 and 23 are schematic diagrams of an example in which the method of FIG. 1 (method of transferring position information) and the method of FIG. 20 (method of transferring data) are selected based on selection criteria such as cost calculation. Selection criteria include a method for calculating and comparing the cost of each method from dictionary information such as the data length of the sub-data, and the method shown in FIG. 1 if there is a large amount of sub-data such as LOB data in the retrieved data. There is a method of dividing as shown in FIG.

図22は、複数のサブデータからなるデータの検索の概要図である。解析101時に、各方式のコスト計算など2201で図1の方法2202、図20の方法2203の解析、実行を選択する。ただし、結果を返す105処理のときに、図21の変数にバインドする情報127を作成する。ホストのUAP側では、サブデータを含むデータの検索の場合、変数の領域として、変数にバインドする情報を受け取るだけの長さ分の領域を用意する必要がある。   FIG. 22 is a schematic diagram of retrieval of data including a plurality of sub data. At the time of analysis 101, analysis and execution of the method 2202 in FIG. 1 and the method 2203 in FIG. However, the information 127 to be bound to the variables shown in FIG. On the UAP side of the host, when searching for data that includes sub-data, it is necessary to prepare an area for the length of the variable area to receive the information to be bound to the variable.

図23は、サブデータを使用する問い合わせの概要図である。解析101時に、変数にバインドする情報127の、データをフロントエンドサーバに転送しているか、データは転送せずに位置情報をフロントエンドサーバに転送しているかを表すフラグ情報2101により2301、図1の方法2302、図20の方法2303の解析、実行を選択する。   FIG. 23 is a schematic diagram of an inquiry using sub-data. At the time of analysis 101, the information 127 bound to the variable is 2301 based on flag information 2101 indicating whether the data is transferred to the front-end server or whether the position information is transferred to the front-end server without transferring the data. The method 2302 of FIG. 20 and the analysis and execution of the method 2303 of FIG. 20 are selected.

以上のように、本発明によれば、複数のサブデータからなるデータの検索において、位置情報のみを転送し、後でそのデータのサブデータを使用する問い合わせにおいて、使用するサブデータを取り出すため、使用しないサブデータの転送による通信時間を削減し、問い合わせ時間を小さくすることができる。使用しないサブデータがLOBデータなど大規模なデータの場合特に有効である。   As described above, according to the present invention, in the search for data consisting of a plurality of sub-data, only the position information is transferred, and the sub-data to be used later is extracted in the inquiry using the sub-data of the data. It is possible to reduce communication time by transferring unused sub data and to reduce inquiry time. This is particularly effective when the unused sub data is large-scale data such as LOB data.

実施例の構成図である。It is a block diagram of an Example. 複数のサブデータからなるデータの例である。It is an example of data consisting of a plurality of sub data. 位置情報の例である。It is an example of position information. 変数にバインドする情報の例である。It is an example of information bound to a variable. 内部形式の処理手順の例である。It is an example of the processing procedure of an internal format. サブデータのオフセット情報の例である。It is an example of offset information of sub data. サブデータ取り出し用情報の例である。It is an example of the information for subdata extraction. サブデータの例である。It is an example of subdata. データ操作サーバに格納してあるデータの例である。It is an example of the data stored in the data operation server. サブデータのオフセット情報作成の実施例である。It is an Example of offset information creation of subdata. 複数のサブデータからなるデータ作成の実施例である。It is an Example of the data preparation which consists of several sub data. 内部形式の処理手順作成の処理説明である。It is an explanation of processing for creating a processing procedure in an internal format. 内部形式の処理手順転送と処理手順受け取りの処理説明である。It is a process description of processing procedure transfer and processing procedure reception in an internal format. 内部形式の処理手順実行の処理説明である。It is a process description of execution of a processing procedure in an internal format. 処理手順実行の処理説明である。It is process description of processing procedure execution. 結果受け取りと結果転送の処理説明である。It is a process description of result reception and result transfer. サブデータ取得とサブデータ取り出しの処理説明である。It is process description of subdata acquisition and subdata extraction. 具体例の概要図である。It is a schematic diagram of a specific example. 具体例の概要図である。It is a schematic diagram of a specific example. 代案の実施例である。This is an alternative embodiment. 変数にバインドする情報の例である。It is an example of information bound to a variable. 複数のサブデータからなるデータの検索の概要図である。It is an outline figure of search of data consisting of a plurality of sub data. サブデータを使用する問い合わせの概要図である。It is a schematic diagram of the inquiry which uses subdata.

符号の説明Explanation of symbols

11…ホスト
12…フロントエンドサーバ
13…データベース操作サーバ
14…ディクショナリ
101…解析、102…内部形式の処理手順転送、103…結果受け取り
104…内部形式の処理手順実行、106…サブデータ取得、107…データ受け取り
111…処理手順受け取り、112…処理手順実行、113…結果転送
114…サブデータ取り出し、115…データ転送
121…UAP、122…問い合わせ、124サブデータのオフセット情報
125…処理手順、126…位置情報、127…変数にバインドする情報
128…サブデータ取り出し用情報、129…サブデータ、130…データ
DESCRIPTION OF SYMBOLS 11 ... Host 12 ... Front-end server 13 ... Database operation server 14 ... Dictionary 101 ... Analysis, 102 ... Transfer processing procedure in internal format, 103 ... Result reception 104 ... Execution of processing procedure in internal format, 106 ... Sub-data acquisition, 107 ... Data reception 111 ... processing procedure reception, 112 ... processing procedure execution, 113 ... result transfer 114 ... sub-data retrieval, 115 ... data transfer 121 ... UAP, 122 ... inquiry, 124 sub-data offset information 125 ... processing procedure, 126 ... position Information, 127: Information bound to variable 128: Information for sub data extraction, 129: Sub data, 130: Data

Claims (8)

データベースへの問合せを解析するフロントエンドサーバと、前記データベースに前記問合せの解析結果に基づくデータ操作を行うデータベース操作サーバとを有するデータベース管理システムにおけるデータベース管理方法において、
前記フロントエンドサーバは、複数のサブデータの名称と型の宣言から定義される階層構造を有する階層データの、各サブデータの識別子と、前記階層データの格納場所から各サブデータの格納場所までのオフセット情報とを有するディクショナリ情報を格納しており、複数のサブデータを有する前記階層データに対する前記問合せの解析に基づいて処理手順を生成し、
前記データベース操作サーバは、前記フロントエンドサーバから入力された前記処理手順に基づいて前記階層データの位置情報を前記フロントエンドサーバに返却し、
前記フロントエンドサーバは、前記サブデータに対する操作要求の入力に応じて、前記返却された前記階層データの前記位置情報と、ディクショナリ情報から得た前記操作対象のサブデータのオフセット情報と、前記操作対象のサブデータの識別子とにより、前記データベース操作サーバにある前記階層データのサブデータを取り出し、前記サブデータを前記操作要求に基づいて処理する
ことを特徴とするデータベース管理方法。
In a database management method in a database management system having a front-end server that analyzes a query to a database and a database operation server that performs data operations based on the analysis result of the query in the database,
The front-end server includes an identifier of each subdata of a hierarchical data having a hierarchical structure defined from a plurality of subdata names and type declarations, and from the storage location of the hierarchical data to a storage location of each subdata. Storing dictionary information having offset information, and generating a processing procedure based on the analysis of the query with respect to the hierarchical data having a plurality of sub-data,
The database operation server returns position information of the hierarchical data to the front-end server based on the processing procedure input from the front-end server,
The front-end server, in response to an input of an operation request for the sub data, the position information of the returned hierarchical data, offset information of the operation target sub data obtained from dictionary information, and the operation target A database management method comprising: extracting the subdata of the hierarchical data in the database operation server based on the identifier of the subdata, and processing the subdata based on the operation request.
請求項1に記載のデータベース管理方法において、
前記階層データの位置情報は、前記データベース操作サーバの識別子と、前記階層データの前記データベース操作サーバ内でのアドレスとを含むことを特徴とするデータベースシステム管理方法。
The database management method according to claim 1,
The location information of the hierarchical data includes an identifier of the database operation server and an address of the hierarchical data in the database operation server.
請求項1又は2に記載のデータベース管理方法において、
前記取り出した前記サブデータに対する前記操作要求に基づく処理は、取り出した前記サブデータが所定の条件を満たすかどうかを判定する処理であり、該条件を満たすサブデータを含む前記階層データを問い合わせに対する結果として返却することを特徴とするデータベース管理方法。
In the database management method according to claim 1 or 2,
The process based on the operation request for the extracted subdata is a process of determining whether the extracted subdata satisfies a predetermined condition, and the result of querying the hierarchical data including the subdata satisfying the condition Database management method characterized by returning as
請求項1又は2に記載のデータベース管理方法において、
前記取り出した前記サブデータに対する前記操作要求に基づく処理は、前記サブデータに対する更新処理であることを特徴とするデータベース管理方法。
In the database management method according to claim 1 or 2,
The database management method characterized in that the processing based on the operation request for the extracted sub data is an update processing for the sub data.
データベース管理システムにおいて、
複数のサブデータの名称と型の宣言から定義される階層構造を有する階層データの、各サブデータの識別子と、前記階層データの格納場所から各サブデータの格納場所までのオフセット情報とを有するディクショナリ情報を格納する手段と、
複数のサブデータを有する前記階層データに対する問合せの解析に基づいて処理手順を生成する手段と、
前記サブデータに対する操作要求の入力に応じて、データベース操作サーバから返却された前記階層データの位置情報と、ディクショナリ情報から得た前記操作対象のサブデータのオフセット情報と、前記操作対象のサブデータの識別子とにより、前記データベース操作サーバにある前記階層データのサブデータを取り出し、前記サブデータを前記操作要求に基づいて処理する手段と、を有する前記フロントエンドサーバと、
前記フロントエンドサーバから入力された前記処理手順に基づいて前記階層データの位置情報を前記フロントエンドサーバに返却する手段を有する前記データベース操作サーバと、を有することを特徴とするデータベース管理システム。
In the database management system,
A dictionary of hierarchical data having a hierarchical structure defined from a plurality of sub-data names and type declarations, and an identifier of each sub-data and offset information from the storage location of the hierarchical data to the storage location of each sub-data Means for storing information;
Means for generating a processing procedure based on an analysis of a query for the hierarchical data having a plurality of sub-data;
In response to the input of the operation request for the sub data, the position information of the hierarchical data returned from the database operation server, the offset information of the operation target sub data obtained from the dictionary information, and the operation target sub data Means for retrieving sub-data of the hierarchical data in the database operation server according to an identifier, and processing the sub-data based on the operation request;
A database management system comprising: the database operation server having means for returning position information of the hierarchical data to the front end server based on the processing procedure input from the front end server.
請求項に記載のデータベース管理システムにおいて、
前記階層データの位置情報は、前記データベース操作サーバの識別子と、前記階層データの前記データベース操作サーバ内でのアドレスとを含むことを特徴とするデータベースシステム管理システム。
The database management system according to claim 5 , wherein
The position information of the hierarchy data includes an identifier of the database operation server and an address of the hierarchy data in the database operation server.
請求項又はに記載のデータベース管理システムにおいて、
前記取り出した前記サブデータに対する前記操作要求に基づく処理は、取り出した前記サブデータが所定の条件を満たすかどうかを判定する処理であり、該条件を満たすサブデータを含む前記階層データを問い合わせに対する結果として返却することを特徴とするデータベース管理システム。
In the database management system according to claim 5 or 6 ,
The process based on the operation request for the extracted subdata is a process of determining whether the extracted subdata satisfies a predetermined condition, and the result of querying the hierarchical data including the subdata satisfying the condition Database management system characterized by being returned as
請求項又はに記載のデータベース管理システムにおいて、
前記取り出した前記サブデータに対する前記操作要求に基づく処理は、前記サブデータに対する更新処理であることを特徴とするデータベース管理システム。
In the database management system according to claim 5 or 6 ,
The database management system according to claim 1, wherein the process based on the operation request for the extracted sub data is an update process for the sub data.
JP2005283258A 2005-09-29 2005-09-29 Database management method Expired - Lifetime JP4033207B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005283258A JP4033207B2 (en) 2005-09-29 2005-09-29 Database management method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005283258A JP4033207B2 (en) 2005-09-29 2005-09-29 Database management method

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP22640696A Division JP3747525B2 (en) 1996-08-28 1996-08-28 Parallel database system search method

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2007133629A Division JP2007207280A (en) 2007-05-21 2007-05-21 Database management method

Publications (2)

Publication Number Publication Date
JP2006065880A JP2006065880A (en) 2006-03-09
JP4033207B2 true JP4033207B2 (en) 2008-01-16

Family

ID=36112257

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005283258A Expired - Lifetime JP4033207B2 (en) 2005-09-29 2005-09-29 Database management method

Country Status (1)

Country Link
JP (1) JP4033207B2 (en)

Also Published As

Publication number Publication date
JP2006065880A (en) 2006-03-09

Similar Documents

Publication Publication Date Title
JP3747525B2 (en) Parallel database system search method
EP3446242B1 (en) Query plan generation and execution in a relational database management system with a temporal-relational database
JP3742177B2 (en) Parallel database system routine execution method
US7062507B2 (en) Indexing profile for efficient and scalable XML based publish and subscribe system
US7499909B2 (en) Techniques of using a relational caching framework for efficiently handling XML queries in the mid-tier data caching
US7792817B2 (en) System and method for managing complex relationships over distributed heterogeneous data sources
US6618822B1 (en) Method and mechanism for relational access of recovery logs in a database system
US8005807B2 (en) Object oriented query path expression to relational outer join translator method, system, and article of manufacture, and computer program product
US20030037037A1 (en) Method of storing, maintaining and distributing computer intelligible electronic data
US8073843B2 (en) Mechanism for deferred rewrite of multiple XPath evaluations over binary XML
JP4207096B2 (en) Database management method
JP3808941B2 (en) Parallel database system communication frequency reduction method
JP3777666B2 (en) Database processing method and system
US8312030B2 (en) Efficient evaluation of XQuery and XPath full text extension
JP4033207B2 (en) Database management method
JPH05204983A (en) Relational data base processor and method therefor
JP2007207280A (en) Database management method
JPH1021125A (en) System for managing location of distributed database system
US20060235819A1 (en) Apparatus and method for reducing data returned for a database query using select list processing
JP3882835B2 (en) Database management method and parallel database management system
JP2000057025A (en) Reduction method for executing frequency of database system function
Kadlag Implementation of SPINE Genomic Index and Graphical User Interface in BODHI

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20060421

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070320

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070521

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070703

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070726

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20070905

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071015

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

Free format text: PAYMENT UNTIL: 20101102

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20101102

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20111102

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20121102

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20121102

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20131102

Year of fee payment: 6

EXPY Cancellation because of completion of term