JP5061173B2 - Database management method, database management apparatus, and database management program - Google Patents

Database management method, database management apparatus, and database management program Download PDF

Info

Publication number
JP5061173B2
JP5061173B2 JP2009259699A JP2009259699A JP5061173B2 JP 5061173 B2 JP5061173 B2 JP 5061173B2 JP 2009259699 A JP2009259699 A JP 2009259699A JP 2009259699 A JP2009259699 A JP 2009259699A JP 5061173 B2 JP5061173 B2 JP 5061173B2
Authority
JP
Japan
Prior art keywords
index
group
index group
name
acquired
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009259699A
Other languages
Japanese (ja)
Other versions
JP2011107814A (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 JP2009259699A priority Critical patent/JP5061173B2/en
Priority to PCT/JP2010/001528 priority patent/WO2011058666A1/en
Publication of JP2011107814A publication Critical patent/JP2011107814A/en
Application granted granted Critical
Publication of JP5061173B2 publication Critical patent/JP5061173B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation

Description

本発明は、インデクスを利用して検索を行うデータベースを有するデータベース管理装置に関し、特に、複数のユーザアプリケーションからのアクセス要求に応じてインデクスを選択するための技術に関するデータベース管理方法、データベース管理装置及びデータベース管理プログラムに好適なものである。   The present invention relates to a database management apparatus having a database that performs a search using an index, and more particularly to a database management method, a database management apparatus, and a database related to a technique for selecting an index in response to access requests from a plurality of user applications. It is suitable for a management program.

情報化社会の発展に伴い、情報システムの扱うデータの量は日々増加しており、多くの企業が情報システムにデータベース管理システム(DBMS: Database Management System)を利用している。DBMSとは、データベースのデータに対する問い合わせに応答するシステムである。   With the development of the information society, the amount of data handled by information systems is increasing day by day, and many companies use database management systems (DBMS) for information systems. A DBMS is a system that responds to an inquiry about data in a database.

情報システムでは複数のユーザアプリケーションプログラム(User Application Program)が動作している。以下、このようなユーザアプリケーションプログラムを「UAP」「ユーザアプリケーション」とも省略する。ユーザアプリケーションは「AP」などとも呼ばれる。ユーザアプリケーションは、DBMSに問い合わせを行うことでデータベースからデータを取得し、取得したデータを利用してサービスを提供する。   In the information system, a plurality of user application programs (User Application Programs) are operating. Hereinafter, such user application programs are also abbreviated as “UAP” and “user application”. The user application is also called “AP” or the like. The user application acquires data from the database by making an inquiry to the DBMS, and provides a service using the acquired data.

DBMSでは、データに対する問い合わせを記述する問い合わせ言語として、SQLがよく利用される。ユーザアプリケーションは、DBMSに対してSQLを発行することで問い合わせを行う。ユーザアプリケーションが発行するSQLとしては、ユーザアプリケーション中に直接記述された静的なSQLが存在するとともに、ユーザアプリケーションが生成する動的なSQLが存在する。   In DBMS, SQL is often used as an inquiry language for describing an inquiry about data. The user application makes an inquiry by issuing an SQL to the DBMS. As the SQL issued by the user application, there is a static SQL described directly in the user application and a dynamic SQL generated by the user application.

SQLは宣言型の問い合わせ言語であり、その問い合わせには、目的のデータ及びデータの条件を指定する。問い合わせの結果を求めるためにDBMSがデータベースにアクセスする手順は、DBMS自身が生成する。以下、このようなDBMSのアクセス手順のことを「アクセスパス」と呼ぶこととする。アクセスパスは、クエリプラン、アクセスプラン又はクエリ実行計画など、様々な名称でも呼ばれる。   SQL is a declarative query language, and the target data and data conditions are specified in the query. The procedure for the DBMS to access the database to obtain the result of the inquiry is generated by the DBMS itself. Hereinafter, such a DBMS access procedure is referred to as an “access path”. The access path is also called various names such as a query plan, an access plan, or a query execution plan.

近年、ユーザアプリケーションの開発において、DBMSの問い合わせ性能のチューニングに多くの時間とコストが掛かる傾向がある。企業間における競争が激化し、さらに、情報システムに対する企業のコスト意識が高まっている中で、ユーザアプリケーションの開発期間の短縮及び開発コストの削減が求められている。そのため、ユーザアプリケーションの開発における、DBMSへの問い合わせ性能のチューニングに掛かる時間とコストを短縮する必要が生じている。   In recent years, in the development of user applications, there is a tendency that much time and cost are required for tuning the query performance of DBMS. As competition between companies intensifies and the cost awareness of companies with respect to information systems is increasing, there is a need for shortening the development period of user applications and reducing development costs. Therefore, it is necessary to reduce the time and cost required for tuning the query performance to the DBMS in the development of the user application.

DBMSへの問い合わせ性能のチューニングが必要となる原因の一つとして、DBMSが生成するアクセスパスが、必ずしも問い合わせ結果を求める際の性能が良いアクセスパスであるとは限らないことが挙げられる。そのため、ユーザアプリケーション開発者はアクセスパスを検証して、アクセスパスのチューニングを行う必要がある。   One of the reasons why tuning of the query performance to the DBMS is necessary is that the access path generated by the DBMS is not necessarily an access path with good performance when obtaining the query result. Therefore, the user application developer needs to verify the access path and tune the access path.

DBMSがアクセスパスを生成する際においてはインデクスの存在が影響を与える。インデクスとは、データベースの特定のデータに高速にアクセスするための手段である。問い合わせ結果を求めるためにアクセスが必要となるデータに対するインデクスが存在している場合に、そのインデクスを利用して問い合わせ結果を求めると、そのインデクスを利用しない場合と比較して、問い合わせ結果を求める際の性能が向上するため、DBMSは、インデクスを利用したアクセスパスを生成する。そのため、ユーザアプリケーション開発者は、インデクスを作成することでアクセスパスの決定に介入して、より問い合わせ結果を求める際の性能が良いアクセスパスとなるようにチューニングを行うことができる。   When the DBMS generates an access path, the presence of the index has an effect. An index is a means for accessing specific data in a database at high speed. When the query result is obtained using the index when there is an index for the data that needs to be accessed in order to obtain the query result, the query result is compared with the case where the index is not used. Therefore, the DBMS generates an access path using an index. Therefore, the user application developer can create an index to intervene in determining the access path and perform tuning so that the access path has a better performance when obtaining a query result.

具体的な例を示すと、DBMSのデータに対するインデクスとは、例えば書籍における索引に相当する。索引のない書籍の場合、その本文の中から目的の情報を探すためには、全てのページを読まなければならず効率が悪い。しかしながら、各章の見出しに対応する索引が存在すると、その本文の中から目的の情報を探すために読まなければならないページ数を限定することができ、索引のない書籍よりも効率的に目的の情報を探すことができる。さらに、本文に含まれるキーワードに対する索引が存在すると、その索引からキーワードを探すことによって、直接目的のページを発見することができ、さらに効率的に目的の情報を探すことができる。このように書籍における索引と同様に、DBMSにおいても、インデクスを利用してデータベースにアクセスすることで、効率的に問い合わせ結果を求めることができる。   As a specific example, an index for DBMS data corresponds to, for example, an index in a book. In the case of a book without an index, all pages must be read in order to find target information in the text, which is inefficient. However, if there is an index corresponding to the heading of each chapter, it is possible to limit the number of pages that must be read in order to search for the target information in the text, and the target index is more efficient than a book without an index. Search for information. Furthermore, if there is an index for the keyword included in the text, the target page can be found directly by searching for the keyword from the index, and the target information can be searched more efficiently. As described above, in the DBMS as well as the index in the book, the query result can be efficiently obtained by accessing the database using the index.

インデクスは、データベース中に複数存在している。特定のデータ及びデータの組み合わせに対してインデクスを作成することができるため、1つのデータに対して、複数のインデクスが存在している場合がある。DBMSがアクセスパスを生成する際には、データベース中に存在する全てのインデクスの中から、問い合わせ結果を求める際の性能が最も良いと判断したインデクスが選択される(非特許文献1参照)。   Multiple indexes exist in the database. Since indexes can be created for specific data and combinations of data, a plurality of indexes may exist for one data. When the DBMS generates an access path, an index that is determined to have the best performance when obtaining a query result is selected from all indexes existing in the database (see Non-Patent Document 1).

アクセスパスを生成する際に、データベース中に存在する全てのインデクスから、問い合わせ結果を求める際の性能が最も良いと判断したインデクスを選択することで、論理的には、インデクスの追加、変更又は削除が行われた場合にも、常に、問い合わせ結果を求める際の性能が最も良いと考えられるインデクスを選択してアクセスパスを生成することができる仕組みになっている。   When creating an access path, logically add, change, or delete an index by selecting the index that has been determined to have the best performance when obtaining query results from all the indexes that exist in the database. Even when a query is performed, the system can always generate an access path by selecting an index considered to have the best performance when obtaining a query result.

"Database Systems : The Complete Book", 2002, Page 757 to 764, Hector Garcia-Molina, Jeffrey D.Ullman and Jennifer Widom, Prentice-Hall、Inc."Database Systems: The Complete Book", 2002, Page 757 to 764, Hector Garcia-Molina, Jeffrey D. Ullman and Jennifer Widom, Prentice-Hall, Inc.

しかしながら、従来のDBMSでは、問い合わせ結果を求める際の性能が最も良いと判断したインデクスを選択する場合、実際にインデクスを利用して問い合わせ結果を求め、各インデクスを実際に利用した場合の性能を比較している訳ではない。実際のところ、従来のDBMSは、入力されたSQLを解析し、その解析結果により把握されるSQLと既に存在するインデクスとを比較して、その時点、即ち、各インデクスを実際利用する時点において問い合わせ結果を求める際の性能が最も良いと判断したインデクスを選択する。このため、従来のDBMSにおいては、問い合わせの内容やデータの特徴によっては、問い合わせ結果を求める際の性能が最も良いとは云えないインデクスが選択される場合がある。   However, in the conventional DBMS, when selecting an index that is judged to have the best performance when obtaining a query result, the query result is actually obtained using the index, and the performance when each index is actually used is compared. I do not mean. Actually, the conventional DBMS analyzes the inputted SQL, compares the SQL ascertained from the analysis result and the existing index, and inquires at that time, that is, at the time of actually using each index. Select the index that is judged to have the best performance when obtaining the results. For this reason, in the conventional DBMS, depending on the contents of the inquiry and the characteristics of the data, an index that cannot be said to have the best performance when obtaining the inquiry result may be selected.

この理由について、前述した書籍の索引の例を挙げて説明する。ある書籍に対して、本文中のキーワードに対する索引と、本文中の人物名に対する索引の2つの索引が存在する場合を考える。例えば目的の情報が「ベートーベン」に関する情報であった場合、キーワードに対する索引と、人物名に対する索引のどちらを利用しても探すことはできる。しかしながら、キーワードに対する索引よりも人物名に対する索引の方が索引の項目数が少ない場合、問い合わせの内容である「ベートーベン」は人物名であるため、人物名に対する索引を利用した方がより効率的に目的の情報を探すことができる。このように、問い合わせが人物名であることが分かり、人物名に絞った索引があるということが分かれば、目的の情報である「ベートーベン」を探すための性能が最も良い索引を選択することが可能となる。   The reason for this will be described with reference to the above-described example of the book index. Consider a case where there are two indexes for a book: an index for a keyword in the text and an index for a person name in the text. For example, when the target information is information related to “Beethoven”, the search can be performed using either the index for the keyword or the index for the person name. However, if the index for the person name has fewer items than the index for the keyword, the content of the query “Beethoven” is the person name, so it is more efficient to use the index for the person name. You can search for the information you want. In this way, if it is known that the inquiry is a person name and it is found that there is an index focused on the person name, an index with the best performance for searching for the target information “Beethoven” can be selected. It becomes possible.

この点、DBMSは、SQLによって指定される目的のデータ及びデータの条件が人物名であるのか否かという判別を行うことはできない。そのため、キーワードに対する索引と、人物名に対する索引とが存在した場合に、どちらの索引が選択されるかは、DBMS自身のインデクス選択アルゴリズムに依存する。   In this regard, the DBMS cannot determine whether the target data specified by SQL and the data condition are person names. Therefore, when an index for a keyword and an index for a person name exist, which index is selected depends on the index selection algorithm of the DBMS itself.

このようにデータベースにおけるインデクスは、あるユーザアプリケーションの開発者によってユーザアプリケーションの性能を向上させるために作成されるが、特定のユーザアプリケーションに対して性能が向上するインデクスであっても、他のユーザアプリケーションに対しても性能が向上するとは限らない。すなわち、ユーザアプリケーションごとに、性能の観点で最も良いインデクスがある。   In this way, the index in the database is created by a developer of a certain user application in order to improve the performance of the user application. However, even if the index improves the performance for a specific user application, other user applications However, the performance is not always improved. That is, for each user application, there is the best index from the viewpoint of performance.

例えば、1つのDBMSを利用して、最初に第1のユーザアプリケーションの開発を行い、その後、第2のユーザアプリケーションの開発を行う場合を考える。まず、第1のユーザアプリケーションを開発する際、アクセスパスのチューニングを行い、性能要求を満たすために第1のユーザアプリケーションの開発者が問い合わせ結果を求める際の性能が最も良いと判断したアクセスパスで動作するように第1のインデクスを作成する。この時点では、DBMSには、第1のインデクスのみが存在するため、第1のユーザアプリケーションのアクセスパス生成時には、必ず、この第1のインデクスが選択される。従って、第1のユーザアプリケーションの開発者は、第1のユーザアプリケーションが実際に第1のユーザアプリケーションの開発者が問い合わせ結果を求める際の性能が最も良いと判断したアクセスパスで動作していることを確認することができる。   For example, consider a case where a first user application is first developed using one DBMS, and then a second user application is developed. First, when developing the first user application, the access path is tuned, and the access path that the developer of the first user application has determined that the performance when obtaining the query result is the best in order to satisfy the performance requirement. Create a first index to work. At this time, since only the first index exists in the DBMS, this first index is always selected when the access path of the first user application is generated. Therefore, the developer of the first user application is operating on the access path that the first user application has actually determined to have the best performance when the developer of the first user application seeks the query result. Can be confirmed.

その後、第2のユーザアプリケーションを開発する際に、既存の第1のインデクスを利用して生成されたアクセスパスでは、性能上の要件を満たすことができないため、第2のインデクスを新たに作成して追加することでアクセスパスのチューニングを行う。すると、このDBMSにはインデクスが2つ存在することになる。従来のDBMSにおいては、アクセスパスを生成する際、その時点に存在する全てのインデクスから選択を行うため、第1又は第2のインデクスが選択されることになる。ここで、第1のユーザアプリケーションのアクセスパス生成時に、開発者の意図しない第2のインデクスが選択され、第1のインデクスが選択されていた時と比べて性能が低下してしまう場合がある。   After that, when developing the second user application, the access path generated using the existing first index cannot satisfy the performance requirement. Therefore, the second index is newly created. Tune the access path by adding. Then, there are two indexes in this DBMS. In the conventional DBMS, when the access path is generated, the selection is made from all the indexes existing at that time, so the first or second index is selected. Here, when the access path of the first user application is generated, the second index that is not intended by the developer is selected, and the performance may be reduced as compared with the case where the first index is selected.

すなわち、インデクスは全てのアプリケーションにとって問い合わせ結果を求める際の性能が最も良くなるわけではない。第1のユーザアプリケーションには第1のインデクス、第2のユーザアプリケーションには第2のインデクスというように、それぞれのユーザアプリケーションごとに問い合わせ結果を求める際の性能が最も良いインデクスが必要となる。   In other words, the index does not provide the best performance when obtaining a query result for all applications. An index having the best performance when obtaining a query result is required for each user application, such as a first index for the first user application and a second index for the second user application.

しかしながら、従来のDBMSでは、特定のユーザアプリケーションのアクセスパスをチューニングするためにインデクスの追加を行うと、他のユーザアプリケーションのアクセスパスに影響を与えてしまう。これはインデクスを変更又は削除した場合も同様である。そのため、開発者は、インデクスの追加、変更又は削除を行う際に、全てのユーザアプリケーションに対応するアクセスパスの確認を行い、アクセスパスが変化する場合には再度性能の評価を行うことで問題がないことを確認するか、問題がある場合にはチューニングを行う必要が生ずる。ところが、上述した情報システムが大規模となると、膨大な数のユーザアプリケーションが動作しているため、全てのユーザアプリケーションに対応するアクセスパスの確認を行い、上記同様に性能の再評価やチューニングを行うことが、開発期間の長期化を招くとともに開発コストの増加の原因となっている。   However, in the conventional DBMS, if an index is added to tune the access path of a specific user application, the access path of another user application is affected. This is the same when the index is changed or deleted. Therefore, when adding, changing, or deleting an index, the developer checks the access path corresponding to all user applications, and if the access path changes, the developer evaluates the performance again. If there is a problem, it will be necessary to perform tuning. However, when the information system described above becomes large, a huge number of user applications are operating, so access paths corresponding to all user applications are confirmed, and performance is re-evaluated and tuned as described above. As a result, the development period is prolonged and the development cost is increased.

本発明は、以上の点を考慮してなされたもので、他のユーザアプリケーションに対応するアクセスパスに影響を与えることなく、ユーザアプリケーションごとに問い合わせ結果を求める際の性能が最も良いアクセスパスを生成するためのインデクスを自由に追加、変更又は削除することができるデータベース管理方法、データベース管理装置及びデータベース管理プログラムを提案するものである。   The present invention has been made in consideration of the above points, and generates an access path with the best performance when obtaining a query result for each user application without affecting the access paths corresponding to other user applications. The present invention proposes a database management method, a database management apparatus, and a database management program that can freely add, change, or delete an index to be used.

かかる課題を解決するため、本発明においては、メモリを有し、少なくとも1つの表を有するデータベースに対する複数のユーザアプリケーションからのアクセス要求に応じて前記表に設定された複数のインデクスの中からインデクスを選択して生成されたアクセスパスに従って前記表のデータを操作するデータベース管理装置におけるデータベース管理方法において、前記データベース管理装置は、複数の第1の定義要求に基づいて、定義対象であるインデクスグループのインデクスグループ名を取得し、前記取得されたインデクスグループ名に対応させて前記インデクスグループをインデクスグループ管理表に登録して新たな複数のインデクスグループを作成第2の定義要求に基づいて、定義対象であるインデクスと、前記定義対象であるインデクスに含まれる列が所属している表の表名と、前記定義対象であるインデクスに含まれる列の列名とを含む第1のインデクス情報、並びに、前記インデクスを所属させるべきインデクスグループのインデクスグループ名を取得して前記メモリに保持するとともに、前記定義対象であるインデクスごとに前記第1のインデクス情報をインデクス管理表に登録し、前記インデクスグループ管理表を参照して前記メモリに保持されているインデクスグループ名に対応するインデクスグループを取得し、前記取得されたインデクスグループと、前記取得されたインデクスグループに所属されるべき少なくとも1つのインデクスとを関連付けてインデクス−インデクスグループ対応表に登録しておくことにより、各前記インデクスグループに、各前記インデクスグループに対応する各前記ユーザアプリケーションを実行するときに問合せ結果を求める際の性能が最も良いと判断される少なくとも1つのインデクスを所属させ、前記複数のユーザアプリケーションのいずれかからインデクスグループの指定されたアクセス要求を受け付け、前記第1の定義要求を発行したユーザアプリケーションに関連付けられているインデクスグループ名を管理するための関連付け管理ファイルに基づいて、前記アクセス要求を受け付けたユーザアプリケーションに関連付けられている特定のインデクスグループ名を取得し、前記インデクスグループ管理表を参照して前記取得された特定のインデクスグループ名に対応する特定のインデクスグループを取得するとともに、前記インデクス−インデクスグループ対応表に基づいて前記取得された特定のインデクスグループに対応する特定のインデクスに関する第1のインデクス情報を取得して前記メモリに保持し、前記メモリに保持された第1のインデクス情報と、前記アクセス要求から取得された表名及び列名を含む第2のインデクス情報とを照らし合わせた結果に応じて、アクセスする際に利用するのに適したインデクスを決定し、前記決定されたインデクスを利用しアクセスパスを生成することを特徴とする。 To solve such problems, the present invention has a memory, in response to access requests from a plurality of user applications to a database having at least one table, index from a plurality of indexes set in the table In the database management method in the database management apparatus that operates the data in the table according to the access path generated by selecting the database , the database management apparatus is configured to determine the index group to be defined based on the plurality of first definition requests. Gets the index group name, to create a plurality of new indices groups by registering the index group in correspondence with the obtained index group name in the index group management table, based on the second definition request, defined The target index and the definition pair First index information including the table name of the table to which the column included in the index belongs, the column name of the column included in the index to be defined, and the index group to which the index should belong The index group name is acquired and stored in the memory, and the first index information is registered in the index management table for each index to be defined, and stored in the memory with reference to the index group management table An index group corresponding to the index group name being acquired is acquired, and the acquired index group and at least one index that should belong to the acquired index group are associated and registered in the index-index group correspondence table Each index group. At least one index that is judged to have the best performance when obtaining a query result when executing each of the user applications corresponding to each of the index groups, and indexing from any of the plurality of user applications Based on the association management file for managing the index group name associated with the user application that has issued the first definition request and has received the specified access request for the group, the user application that has received the access request A specific index group name associated with the index group management table is acquired, a specific index group corresponding to the acquired specific index group name is acquired with reference to the index group management table, and the index-index is acquired. First index information related to a specific index corresponding to the acquired specific index group based on the index group correspondence table is acquired and held in the memory, and the first index information held in the memory; According to the result of comparing the table name and the second index information including the column name acquired from the access request, an index suitable for use in access is determined, and the determined index is and generating an access path using.

また、本発明においては、メモリを有し、少なくとも1つの表を有するデータベースに対する複数のユーザアプリケーションからのアクセス要求に応じて、前記表に設定された複数のインデクスの中からインデクスを選択して生成されたアクセスパスに従って前記表のデータを操作するデータベース管理装置において、複数の第1の定義要求に基づいて、定義対象であるインデクスグループのインデクスグループ名を取得し、前記取得されたインデクスグループ名に対応させて前記インデクスグループをインデクスグループ管理表に登録して新たな複数のインデクスグループを作成第2の定義要求に基づいて、定義対象であるインデクスと、前記定義対象であるインデクスに含まれる列が所属している表の表名と、前記定義対象であるインデクスに含まれる列の列名とを含む第1のインデクス情報、並びに、前記インデクスを所属させるべきインデクスグループのインデクスグループ名を取得して前記メモリに保持するとともに、前記定義対象であるインデクスごとに前記第1のインデクス情報をインデクス管理表に登録し、前記インデクスグループ管理表を参照して前記メモリに保持されているインデクスグループ名に対応するインデクスグループを取得し、前記取得されたインデクスグループと、前記取得されたインデクスグループに所属されるべき少なくとも1つのインデクスとを関連付けてインデクス−インデクスグループ対応表に登録しておくことにより、各前記インデクスグループに、各前記インデクスグループに対応する各前記ユーザアプリケーションを実行するときに問合せ結果を求める際の性能が最も良いと判断される少なくとも1つのインデクスを所属させ、前記複数のユーザアプリケーションのいずれかからインデクスグループの指定されたアクセス要求を受け付け、前記第1の定義要求を発行したユーザアプリケーションに関連付けられているインデクスグループ名を管理するための関連付け管理ファイルに基づいて、前記アクセス要求を受け付けたユーザアプリケーションに関連付けられている特定のインデクスグループ名を取得し、前記インデクスグループ管理表を参照して前記取得された特定のインデクスグループ名に対応する特定のインデクスグループを取得するとともに、前記インデクス−インデクスグループ対応表に基づいて前記取得された特定のインデクスグループに対応する特定のインデクスに関する第1のインデクス情報を取得して前記メモリに保持し、前記メモリに保持された第1のインデクス情報と、前記アクセス要求から取得された表名及び列名を含む第2のインデクス情報とを照らし合わせた結果に応じて、アクセスする際に利用するのに適したインデクスを決定し、前記決定されたインデクスを利用しアクセスパスを生成することを特徴とする。 Further, in the present invention, in response to an access request from a plurality of user applications for a database having a memory and having at least one table, the index is selected and generated from the plurality of indexes set in the table. In the database management device that operates the data of the table according to the access path thus obtained, the index group name of the index group to be defined is acquired based on the plurality of first definition requests, and the acquired index group name is and registering the index group to the index group management table to create a plurality of new indices groups in correspondence, based on the second definition request, included in the index are defined target, a defined subject index The table name of the table to which the column belongs and the definition target The first index information including the column names of the columns included in the index and the index group name of the index group to which the index should belong are acquired and held in the memory, and each index that is the definition target Registering the first index information in an index management table, referring to the index group management table, obtaining an index group corresponding to an index group name held in the memory, and obtaining the index group; Each user application corresponding to each index group is associated with each index group by associating at least one index to belong to the acquired index group and registering it in the index-index group correspondence table. Run At least one index that is judged to have the best performance when obtaining a query result sometimes belongs, accepts an access request designated by an index group from any of the plurality of user applications, and the first definition request Based on the association management file for managing the index group name associated with the user application that issued the index, a specific index group name associated with the user application that has accepted the access request is acquired, and the index group A specific index group corresponding to the acquired specific index group name is acquired with reference to a management table, and the specific index group corresponding to the acquired specific index group is acquired based on the index-index group correspondence table First index information related to a specific index is acquired and stored in the memory, and the first index information stored in the memory, and a second index including the table name and column name acquired from the access request An index suitable for use in access is determined according to a result of comparing the information with the information, and an access path is generated using the determined index.

また、本発明においては、メモリを有するデータベース管理装置に、少なくとも1つの表を有するデータベースに対する複数のユーザアプリケーションからのアクセス要求に応じて前記表に設定された複数のインデクスの中からインデクスを選択して生成されたアクセスパスに従って前記表のデータを操作させるデータベース管理プログラムにおいて、前記データベース管理装置に、複数の第1の定義要求に基づいて、定義対象であるインデクスグループのインデクスグループ名を取得し、前記取得されたインデクスグループ名に対応させて前記インデクスグループをインデクスグループ管理表に登録して新たな複数のインデクスグループを作成させ第2の定義要求に基づいて、定義対象であるインデクスと、前記定義対象であるインデクスに含まれる列が所属している表の表名と、前記定義対象であるインデクスに含まれる列の列名とを含む第1のインデクス情報、並びに、前記インデクスを所属させるべきインデクスグループのインデクスグループ名を取得して前記メモリに保持させるとともに、前記定義対象であるインデクスごとに前記第1のインデクス情報をインデクス管理表に登録させ、前記インデクスグループ管理表を参照して前記メモリに保持されているインデクスグループ名に対応するインデクスグループを取得させ、前記取得されたインデクスグループと、前記取得されたインデクスグループに所属されるべき少なくとも1つのインデクスとを関連付けてインデクス−インデクスグループ対応表に登録させておくことにより、各前記インデクスグループに、各前記インデクスグループに対応する各前記ユーザアプリケーションを実行するときに問合せ結果を求める際の性能が最も良いと判断される少なくとも1つのインデクスを所属させ、前記複数のユーザアプリケーションのいずれかからインデクスグループの指定されたアクセス要求を受け付け、前記第1の定義要求を発行したユーザアプリケーションに関連付けられているインデクスグループ名を管理するための関連付け管理ファイルに基づいて、前記アクセス要求を受け付けたユーザアプリケーションに関連付けられている特定のインデクスグループ名を取得させ、前記インデクスグループ管理表を参照して前記取得された特定のインデクスグループ名に対応する特定のインデクスグループを取得させるとともに、前記インデクス−インデクスグループ対応表に基づいて前記取得された特定のインデクスグループに対応する特定のインデクスに関する第1のインデクス情報を取得して前記メモリに保持させ、前記メモリに保持された第1のインデクス情報と、前記アクセス要求から取得された表名及び列名を含む第2のインデクス情報とを照らし合わせた結果に応じて、アクセスする際に利用するのに適したインデクスを決定させ、前記決定されたインデクスを利用しアクセスパスを生成させることを特徴とする。 In the present invention, selected to the database management system, in response to access requests from a plurality of user applications to a database having at least one table, the index from a plurality of indexes set in the table having a memory In the database management program for operating the data in the table according to the generated access path, the database management device acquires the index group name of the index group to be defined based on the plurality of first definition requests. the in correspondence to the obtained index group name registered in the index group management table to create a plurality of new indices groups the index group, based on the second definition request, and index is defined target, The definition target First index information including the table name of the table to which the column included in the column belongs, the column name of the column included in the index to be defined, and the index of the index group to which the index should belong The group name is acquired and stored in the memory, and the first index information is registered in the index management table for each index to be defined, and stored in the memory with reference to the index group management table. An index group corresponding to the index group name being acquired is acquired, and the acquired index group is associated with at least one index that should belong to the acquired index group and registered in the index-index group correspondence table. By placing each index group, Specify at least one index that is determined to have the best performance when obtaining a query result when executing each user application corresponding to the index group, and specify an index group from any of the plurality of user applications Is associated with the user application that has accepted the access request based on an association management file for managing an index group name associated with the user application that has issued the first definition request. Specific index group names are acquired, a specific index group corresponding to the acquired specific index group name is acquired with reference to the index group management table, and the index-index is also acquired. First index information related to a specific index corresponding to the acquired specific index group based on the acquired group index table is stored in the memory, and the first index information stored in the memory; in response to a second index information to the results against the containing table name and column names acquired from the access request, to determine the index suitable for use when accessing, the determined index It is characterized by generating an access path using it.

本発明によれば、他のユーザアプリケーションに対応するアクセスパスに影響を与えることなく、ユーザアプリケーショごとに問い合わせ結果を求める際の性能が最も良いアクセスパスを生成するためのインデクスを自由に追加、変更又は削除することができる。   According to the present invention, it is possible to freely add or change an index for generating an access path with the best performance when obtaining a query result for each user application without affecting an access path corresponding to another user application. Or it can be deleted.

本実施の形態によるデータベース管理装置の概略構成を示す概念図である。It is a conceptual diagram which shows schematic structure of the database management apparatus by this Embodiment. インデクスグループを示す概念図である。It is a conceptual diagram which shows an index group. データベース管理装置の構成の一例を示す機能ブロック図である。It is a functional block diagram which shows an example of a structure of a database management apparatus. インデクスグループ管理表を構成する列情報の一例を示す図である。It is a figure which shows an example of the column information which comprises an index group management table. インデクスグループを作成するためのインデクスグループ定義要求(SQL)の一例を示す図である。It is a figure which shows an example of the index group definition request | requirement (SQL) for creating an index group. インデクス管理表を構成する列情報の一例を示す図である。It is a figure which shows an example of the column information which comprises an index management table. インデクス−インデクスグループ対応表を構成する列情報の一例を示す図である。It is a figure which shows an example of the column information which comprises an index-index group mapping table. インデクスを作成するためのインデクス定義要求(SQL)の一例を示す図である。It is a figure which shows an example of the index definition request | requirement (SQL) for creating an index. インデクスグループを利用する際における手順を示すフローチャートである。It is a flowchart which shows the procedure at the time of using an index group. インデクスグループを定義する際における処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of the process at the time of defining an index group. インデクスを新たに定義する際における処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of the process at the time of defining a new index. アクセスパスを生成する場合における処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of the process in the case of producing | generating an access path. アクセスパスが出力された際における出力内容の一例を示す図である。It is a figure which shows an example of the output content when an access path is output. インデクス定義を変更する場合における処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of the process in the case of changing an index definition. インデクス定義を削除する場合における処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of the process in the case of deleting an index definition. ユーザアプリケーションとインデクスグループとの対応付けを変更する場合の手順を示すフローチャートである。It is a flowchart which shows the procedure in the case of changing matching with a user application and an index group. インデクスグループの複製を作成する場合における処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of the process in the case of creating the replication of an index group. インデクスグループを複製するためのインデクスグループ複製要求(SQL)の一例を示す図である。It is a figure which shows an example of the index group replication request (SQL) for replicating an index group.

1000……第1のユーザアプリケーション、1100……第2のユーザアプリケーション、1200……データベース管理装置、1300……第1のインデクスグループ、1400……第2のインデクスグループ、1800……第1のインデクス、1900……第2のインデクス、3000……ユーザアプリケーション、3400……データベース管理装置、3410……プロセッサ、3421……アクセスパス、3431……定義要求部、3432……DBアクセス要求受付部、3433……ディスクショナリ管理部、3434……アクセスパス生成部、3435……アクセスパス実行部、3436……アクセスパス表示部、3530……インデクスグループ管理表、3520……インデクス管理表、3540……インデクス−インデクスグループ対応表、3550……表、3560……インデクス。   1000 ... 1st user application, 1100 ... 2nd user application, 1200 ... Database management device, 1300 ... 1st index group, 1400 ... 2nd index group, 1800 ... 1st index 1900 ... 2nd index, 3000 ... User application, 3400 ... Database management device, 3410 ... Processor, 3421 ... Access path, 3431 ... Definition request section, 3432 ... DB access request reception section, 3433 ... Discretionary management section, 3434... Access path generation section, 3435... Access path execution section, 3436... Access path display section, 3530 ... Index group management table, 3520 ... Index management table, 3540. Index-Index Group correspondence table, 3550 ...... Table, 3560 ...... index.

以下、図面について、本発明の一実施の形態について詳述する。   Hereinafter, an embodiment of the present invention will be described in detail with reference to the drawings.

(1)本実施の形態によるデータベース管理装置の概略構成
図1は、本実施の形態によるデータベース管理装置1200の概略構成を示す。データベース管理装置1200は、例えばワークステーション又はメインフレームのようなコンピュータである。本実施の形態では、データベース管理装置1200をDBMS(Database Management System)とも図示している。
(1) Schematic Configuration of Database Management Device According to this Embodiment FIG. 1 shows a schematic configuration of a database management device 1200 according to this embodiment. The database management device 1200 is a computer such as a workstation or a mainframe. In the present embodiment, the database management device 1200 is also illustrated as a DBMS (Database Management System).

データベース管理装置1200は、ハードウェア資源として、図示しないプロセッサ、メモリ、キャッシュ、ハードディスクドライブ及びインターフェースを備えている。データベース管理装置1200においては、プロセッサが、ハードディスクドライブから読み出したデータベース管理プログラムをメモリ上で実行することで、後述する機能を実現する。データベースにおいては、各データを列及び行によって管理する表が作成されており、各表の列には後述するインデクスを設定することができる。インデクスは、データベースにおける各テーブルに対してデータの検索などを行う際に、検索処理などを行い易いようにユーザによって設定される書籍の索引に相当する機能である。   The database management device 1200 includes a processor, memory, cache, hard disk drive, and interface (not shown) as hardware resources. In the database management apparatus 1200, the processor implements the functions described later by executing the database management program read from the hard disk drive on the memory. In the database, a table for managing each data by column and row is created, and an index (to be described later) can be set in the column of each table. The index is a function corresponding to an index of a book set by the user so that a search process or the like can be easily performed when data is searched for each table in the database.

本実施の形態においては、「インデクスグループ」なる新たな概念を定義し、少なくとも1つのインデクスをインデクスグループに所属させてグループ化している。具体的には、インデクスの実体そのものをグループ化するのではなく、アクセスパス生成時に利用するインデクス定義情報1500をグループ化している。インデクス定義情報1500は、作成されたインデクスの定義内容を示す情報である。ユーザアプリケーションから問い合わせ(アクセス要求)が行われた際に、データベース管理プログラムは、インデクスグループの指定された問い合わせを受け付け、そのインデクスグループに所属するインデクスの中から、問い合わせ結果を求めるために、最も性能が良いと判断したインデクスを選択してアクセスパスを生成する。   In the present embodiment, a new concept “index group” is defined, and at least one index is grouped by belonging to the index group. Specifically, the index definition information 1500 used when generating the access path is grouped, rather than grouping the index entities themselves. The index definition information 1500 is information indicating the definition content of the created index. When a query (access request) is made from the user application, the database management program receives the query specified by the index group and obtains the query result from the indexes belonging to the index group. The index is determined to be good, and an access path is generated.

データベース管理装置1200では、このようなインデクスグループとして、第1のインデクスグループ1300(以下「IDXGRP_A」とも表現する)及び第2のインデクスグループ1400(以下「IDXGRP_B」とも表現する)が定義されている。図示の例は、第1のインデクスグループ1300に対応付けられた第1のユーザアプリケーション1000(省略して「UAP1」と図示する)が実行された場合におけるデータベース管理装置1200が実行する処理のイメージを示している。また、図示の例では、第2のインデクスグループ1400に対応付けられた第2のユーザアプリケーション1100(省略して「UAP2」と図示する)が実行された場合におけるデータベース管理装置1200が実行する処理のイメージを示している。   The database management apparatus 1200 defines a first index group 1300 (hereinafter also referred to as “IDXGRP_A”) and a second index group 1400 (hereinafter also referred to as “IDXGRP_B”) as such index groups. The illustrated example shows an image of processing executed by the database management apparatus 1200 when the first user application 1000 (abbreviated as “UAP1”) associated with the first index group 1300 is executed. Show. In the illustrated example, the database management device 1200 executes processing when the second user application 1100 (abbreviated as “UAP2”) associated with the second index group 1400 is executed. The image is shown.

第1のインデクスグループ1300には、第1のユーザアプリケーション1000を実行する際に、問い合わせ結果を求める際の性能が最も良いアクセスパスを生成するためのインデクスが所属している。第1のインデクスグループ1300には、所属するインデクスの1つとして、第1のインデクス1800が存在している。   The first index group 1300 belongs to an index for generating an access path with the best performance when obtaining a query result when the first user application 1000 is executed. In the first index group 1300, the first index 1800 exists as one of the indexes to which the first index group 1300 belongs.

第2のインデクスグループ1400には、第2のユーザアプリケーション1100を実行する際に、問い合わせ結果を求める際の性能が最も良いアクセスパスを生成するためのインデクスが所属している。第2のインデクスグループ1400には、所属するインデクスの1つとして、第2のインデクス1900が存在している。   The second index group 1400 belongs to an index for generating an access path with the best performance when obtaining a query result when the second user application 1100 is executed. In the second index group 1400, a second index 1900 exists as one of the indexes to which the second index group 1400 belongs.

まず、第1のユーザアプリケーション1000を実行した場合について説明する。データベース管理プログラムは、アクセスパスを生成する際に、上述したインデクス定義情報1500において第1のインデクスグループ1300に含まれるインデクスの中から、問い合わせ結果を求める際の性能が最も良いと判断したインデクスを選択する。第1のインデクスグループ1300には、第1のユーザアプリケーション1000を開発した時にチューニングを行った際に定義したインデクスのみが存在しており、第1のユーザアプリケーション1000の開発者の意図したとおり、第1のインデクス1800(図示のIDX_Aに相当)が選択される。   First, a case where the first user application 1000 is executed will be described. When generating an access path, the database management program selects an index that is determined to have the best performance when obtaining a query result from the indexes included in the first index group 1300 in the index definition information 1500 described above. To do. In the first index group 1300, only the index defined when tuning is performed when the first user application 1000 is developed exists, and the first user group 1000, as intended by the developer of the first user application 1000, One index 1800 (corresponding to IDX_A in the figure) is selected.

データベース管理プログラムは、第1のインデクス1800を利用する第1のユーザアプリケーション1000のためのアクセスパス1600を生成する。その後、データベース管理プログラムは、このアクセスパス1600を実行して、実際にデータベースにアクセスする。第1のユーザアプリケーション1000のアクセスパス1600には2つの操作が示されており、これら2つの操作として第1及び第2の操作が順番に実行される。   The database management program generates an access path 1600 for the first user application 1000 that uses the first index 1800. Thereafter, the database management program executes this access path 1600 to actually access the database. Two operations are shown in the access path 1600 of the first user application 1000, and the first and second operations are sequentially executed as these two operations.

第1の操作では、データベース管理プログラムが、アクセスパスを生成した際に選択した第1のインデクス1800にアクセスを行う。具体的には、データベース管理プログラムは、第1の操作として、第1のインデクス1800(IDX_A)をアクセスし、名前と所属コードの条件に合うデータを取得する。一方、第2の操作では、データベース管理プログラムが、社員表2000にアクセスすることで、第1の操作で取得したデータに対応する社員コードを取得し、第1のユーザアプリケーション1000の問い合わせに対する実行結果2100を求める。   In the first operation, the database management program accesses the first index 1800 selected when the access path is generated. Specifically, as the first operation, the database management program accesses the first index 1800 (IDX_A) and acquires data that meets the conditions of the name and the belonging code. On the other hand, in the second operation, the database management program accesses the employee table 2000 to acquire the employee code corresponding to the data acquired in the first operation, and the execution result for the query of the first user application 1000 2100 is determined.

次に、第2のユーザアプリケーション1100を実行した場合について説明する。この場合、データベース管理プログラムは、アクセスパスを生成する際に、インデクス定義情報1500のうち第2のインデクスグループ1400に含まれるインデクスの中から、問い合わせ結果を求める際の性能が最も良いと判断したインデクスを選択する。第2のインデクスグループ1400には、第2のユーザアプリケーション1100を開発している時にチューニングを行った際に定義したインデクスのみが存在しており、第2のユーザアプリケーション1100の開発者の意図したとおり、第2のインデクス1900(図示のIDX_Bに相当)が選択される。   Next, a case where the second user application 1100 is executed will be described. In this case, when generating the access path, the database management program determines that the performance for obtaining the query result is the best from the indexes included in the second index group 1400 in the index definition information 1500. Select. In the second index group 1400, only the index defined when tuning is performed when the second user application 1100 is being developed exists, as the developer of the second user application 1100 intends. , The second index 1900 (corresponding to IDX_B shown in the figure) is selected.

データベース管理プログラムは、第2のインデクス1900を利用する第2のユーザアプリケーション1100のためのアクセスパス1700を生成する。その後、データベース管理プログラムは、このアクセスパス1700を実行して、実際にデータベースにアクセスする。第2のユーザアプリケーション1100のアクセスパス1700には1つの操作(第3の操作)が示されており、当該第3の操作が実行される。第3の操作では、データベース管理プログラムが、アクセスパスを生成した際に選択した第2のインデクス1900にアクセスし、所属コードごとのグループ化を計算して行数をカウントする。以上のように、データベース管理プログラムは、第2のユーザアプリケーション1100の問い合わせに対する結果2200を求める。   The database management program generates an access path 1700 for the second user application 1100 that uses the second index 1900. Thereafter, the database management program executes this access path 1700 to actually access the database. One operation (third operation) is shown in the access path 1700 of the second user application 1100, and the third operation is executed. In the third operation, the database management program accesses the second index 1900 selected when the access path is generated, calculates the grouping for each affiliation code, and counts the number of rows. As described above, the database management program obtains the result 2200 for the query of the second user application 1100.

次に、本実施の形態に対する比較例について説明する。この比較例では、第1及び第2のユーザアプリケーション1000,1100のアクセスパスを生成する際に、インデクス定義情報1500の全てのインデクスの中から、問い合わせ結果を求める際の性能が最も良いと判断したインデクスを選択する。この比較例では、それぞれのユーザアプリケーション開発時にチューニングを行った際に定義したインデクス以外のインデクスが存在している。しかし、インデクスは全てのユーザアプリケーションにとって問い合わせ結果を求める際の性能が最も良くなる訳ではない。第1のユーザアプリケーション1000には第1のインデクス1800、第2のユーザアプリケーション1100には第2のインデクス1900というように、それぞれのユーザアプリケーションごとに問い合わせ結果を求める際の性能が最も良いインデクスが必要となる。そのため、例えば、第1のユーザアプリケーション1000を実行した際に、第1のユーザアプリケーション1000の開発者が意図していない第2のインデクス1900が選択されてアクセスパスが生成される場合がある。すると、実際にデータベースにアクセスする手順(アクセスパスに相当)が変化するため、第1のユーザアプリケーション1000はその開発者が意図している性能では動作せず、性能が低下する。   Next, a comparative example for the present embodiment will be described. In this comparative example, when the access paths of the first and second user applications 1000 and 1100 are generated, it is determined that the performance for obtaining the query result is the best among all the indexes of the index definition information 1500. Select an index. In this comparative example, there are indexes other than the indexes defined when tuning is performed during the development of each user application. However, the index does not provide the best performance for query results for all user applications. The first user application 1000 needs an index having the best performance when obtaining a query result for each user application, such as a first index 1800 and a second user application 1100 a second index 1900. It becomes. Therefore, for example, when the first user application 1000 is executed, the second index 1900 that is not intended by the developer of the first user application 1000 may be selected to generate an access path. Then, since the procedure for accessing the database (corresponding to the access path) actually changes, the first user application 1000 does not operate at the performance intended by the developer, and the performance is degraded.

以上のように、本実施の形態では、従来のように単に全てのインデクスの中から問い合わせ結果を求める際の性能が最も良いと判断したインデクスを選択する場合と比較すると、選択対象とするインデクスを限定することが可能となる。そのため、本実施の形態によれば、他のユーザアプリケーションのアクセスパスに影響を与えることなく、ユーザアプリケーションごとに問い合わせ結果を求める際の性能が最も良いアクセスパスを生成するためのインデクスを自由に追加、変更又は削除することができる。これによって、本実施の形態によれば、ユーザアプリケーションを開発した時に、他のユーザアプリケーションのアクセスパスへの影響確認にかかる工数の削減を行うことができる。本実施の形態の概念は以上であるが、次にさらに詳細な概念について説明する。   As described above, in the present embodiment, the index to be selected is compared with the case of selecting the index that is determined to have the best performance when obtaining the query result from all the indexes as in the prior art. It becomes possible to limit. Therefore, according to the present embodiment, an index for generating an access path with the best performance when obtaining a query result for each user application can be freely added without affecting the access paths of other user applications. , Can be changed or deleted. As a result, according to the present embodiment, when a user application is developed, it is possible to reduce the man-hours required for confirming the influence on the access path of another user application. The concept of the present embodiment is as described above. Next, a more detailed concept will be described.

図2は、インデクスグループの概念を説明するための図であり、各図を用いて、第1及び第2のインデクスグループ1300,1400について具体的に説明する。図2では、左側に社員表2000が示されており、右上に、第1のインデクス1800が所属する第1のインデクスグループ1300が示されており、右下に、第2のインデクス1900が所属する第2のインデクスグループ1400が示されている。この社員表2000には、氏名列202及び所属コード列203の組に定義された、第1のインデクス1800(IDX_A)、及び、所属コード列203に定義された第2のインデクス1900(IDX_B)が存在している。   FIG. 2 is a diagram for explaining the concept of the index group, and the first and second index groups 1300 and 1400 will be specifically described with reference to the respective drawings. In FIG. 2, the employee table 2000 is shown on the left side, the first index group 1300 to which the first index 1800 belongs is shown on the upper right, and the second index 1900 belongs to the lower right. A second index group 1400 is shown. The employee table 2000 includes a first index 1800 (IDX_A) defined in the set of the name column 202 and the affiliation code string 203 and a second index 1900 (IDX_B) defined in the affiliation code string 203. Existing.

第1及び第2のインデクス1800,1900の両方が所属コード列203のデータに対するインデクスとなっている。本実施の形態では、複数のインデクスをそれぞれ第1及び第2のインデクスグループ1300,1400に所属させるために、インデクスグループを指定することによりアクセスパス生成の際に選択されるインデクスを指定している。   Both the first and second indexes 1800 and 1900 are indexes for the data of the belonging code string 203. In this embodiment, in order to make a plurality of indexes belong to the first and second index groups 1300 and 1400, the index selected at the time of access path generation is specified by specifying the index group. .

(2)本実施の形態におけるデータベース管理装置の構成
図3は、データベース管理装置3400を含むデータ処理システムの構成の一例を示す。データ処理システムは、ホストコンピュータ3100、端末3200、データベース管理装置3400及び外部記憶装置3500を備える。これらホストコンピュータ3100、端末3200、データベース管理装置3400及び外部記憶装置3500は、ネットワーク3300を介して接続されている。
(2) Configuration of Database Management Device in the Present Embodiment FIG. 3 shows an example of the configuration of a data processing system including the database management device 3400. The data processing system includes a host computer 3100, a terminal 3200, a database management device 3400, and an external storage device 3500. These host computer 3100, terminal 3200, database management device 3400, and external storage device 3500 are connected via a network 3300.

ホストコンピュータ3100では、ユーザアプリケーション3000(上記第1及び第2のユーザアプリケーション1000,1100)が動作している。ユーザアプリケーション3000は、ネットワーク3300を介してデータベース管理装置3400に対して、リレーショナルデータモデルのデータベースに対する問い合わせ言語であるSQLを発行することでデータベースに対する問い合わせを行う。問い合わせの結果は、データベース管理装置3400から、ネットワーク3300を介してホストコンピュータ3100のユーザアプリケーション3000に返される。ユーザアプリケーション3000は、データベース管理装置3400から受け取った問い合わせ結果を加工して利用する。   In the host computer 3100, a user application 3000 (the first and second user applications 1000 and 1100) is running. The user application 3000 makes an inquiry to the database by issuing SQL, which is an inquiry language for the relational data model database, to the database management apparatus 3400 via the network 3300. The result of the inquiry is returned from the database management apparatus 3400 to the user application 3000 of the host computer 3100 via the network 3300. The user application 3000 processes and uses the inquiry result received from the database management apparatus 3400.

端末3200は、ネットワーク3300を介してデータベース管理装置3400に対し、SQLを発行することで定義要求を行う。この定義要求には、表3550の追加、変更若しくは削除、インデクス3560(上記インデクス1800,1900に相当)の追加、変更若しくは削除、又は、インデクスグループの追加、変更若しくは削除などが存在する。定義要求の実行結果は、データベース管理装置3400からネットワーク3300を介して端末3200に返される。   The terminal 3200 issues a definition request by issuing an SQL to the database management apparatus 3400 via the network 3300. This definition request includes addition, change or deletion of the table 3550, addition, change or deletion of an index 3560 (corresponding to the index 1800 or 1900), or addition, change or deletion of an index group. The execution result of the definition request is returned from the database management apparatus 3400 to the terminal 3200 via the network 3300.

データベース管理装置3400は、プロセッサ3410、メモリ3420、ネットワークインターフェース3450及びバス3440を備えている。プロセッサ3410及びメモリ3420は、バス3440の一部としての内部バスで接続されている。メモリ3420にはプログラム及びその他データなどが記憶されている。プロセッサ3410は、メモリ3420に記憶されているデータベース管理プログラム3430などのプログラムを実行する。   The database management apparatus 3400 includes a processor 3410, a memory 3420, a network interface 3450, and a bus 3440. The processor 3410 and the memory 3420 are connected by an internal bus as a part of the bus 3440. The memory 3420 stores programs and other data. The processor 3410 executes a program such as the database management program 3430 stored in the memory 3420.

メモリ3420は、プログラム及びデータを記憶する記憶媒体である。具体的には、メモリ3420には、データベース管理プログラム3430が記憶されるとともに、データベース管理プログラム3430が生成するアクセスパス3421が記憶される。   The memory 3420 is a storage medium that stores programs and data. Specifically, the memory 3420 stores a database management program 3430 and an access path 3421 generated by the database management program 3430.

データベース管理プログラム3430は、表3550及びインデクス3560を管理する。表3550は、概念的に表形式で表現されるデータの集まりであり、インデクス3560は、当該データを効率的にアクセスするための手段である。データベース管理プログラム3430は、定義要求受付部3431、データベース(以下「DB」ともいう)アクセス要求受付部3432、ディクショナリ管理部3433、アクセスパス生成部3434、アクセスパス実行部3435及びアクセスパス表示部3436を有する。   The database management program 3430 manages the table 3550 and the index 3560. A table 3550 is a collection of data conceptually expressed in a table format, and an index 3560 is a means for efficiently accessing the data. The database management program 3430 includes a definition request reception unit 3431, a database (hereinafter also referred to as “DB”) access request reception unit 3432, a dictionary management unit 3433, an access path generation unit 3434, an access path execution unit 3435, and an access path display unit 3436. Have.

定義要求受付部3431は、端末3200などからの定義要求を受け付けて、データベース管理プログラム3430全体を制御する。具体的には、定義要求受付部3431は、端末3200などから要求された表3550の追加、変更若しくは削除、インデクス2560の追加、変更若しくは削除、又は、インデクスグループの追加、変更若しくは削除などの定義の変更要求を解析する。その後、定義要求受付部3431は、要求に応じて、ディクショナリ管理部3433に処理を要求する。   The definition request reception unit 3431 receives a definition request from the terminal 3200 or the like, and controls the entire database management program 3430. Specifically, the definition request reception unit 3431 adds, changes or deletes the table 3550 requested from the terminal 3200 or the like, adds, changes or deletes the index 2560, or adds, changes or deletes an index group. Analyze change requests. Thereafter, the definition request reception unit 3431 requests the dictionary management unit 3433 for processing in response to the request.

即ち、定義要求受付部3431は、端末3200などから受け取った、SQLによる定義要求を解析して、ディクショナリ管理部3433が実施するべき処理の内容を把握し、ディクショナリ管理部3433に処理を要求する。その後、定義要求受付部3431は、定義要求に対する処理の実行結果を、要求元である端末3200に返す。   That is, the definition request receiving unit 3431 analyzes the definition request by SQL received from the terminal 3200 or the like, grasps the contents of the processing to be performed by the dictionary management unit 3433, and requests the dictionary management unit 3433 to perform processing. Thereafter, the definition request reception unit 3431 returns the execution result of the process for the definition request to the terminal 3200 that is the request source.

DBアクセス要求受付部3432は、ユーザアプリケーション3000からのDBアクセス要求を受け付けて、データベース管理プログラム3430全体を制御する。具体的には、DBアクセス要求受付部3432は、ユーザアプリケーション3000などから要求されたDBアクセス要求を解析し、データベースに対する操作の実行手順を生成するために、アクセスパス生成部3434に処理を要求する。次にDBアクセス要求受付部3432は、アクセスパス生成部3434が出力したアクセスパス3421を実行して、実際にデータベースにアクセスを行うために、アクセスパス実行部3435に処理を要求する。その後、DBアクセス要求受付部3432は、DBアクセス要求に対する処理の実行結果を、要求元であるユーザアプリケーション3000に返す。   The DB access request reception unit 3432 receives a DB access request from the user application 3000 and controls the entire database management program 3430. Specifically, the DB access request reception unit 3432 analyzes the DB access request requested from the user application 3000 or the like, and requests the access path generation unit 3434 for processing in order to generate an operation execution procedure for the database. . Next, the DB access request reception unit 3432 requests the access path execution unit 3435 to execute the access path 3421 output by the access path generation unit 3434 and to actually access the database. Thereafter, the DB access request reception unit 3432 returns the execution result of the processing for the DB access request to the user application 3000 that is the request source.

ディクショナリ管理部3433は、インデクス管理表3520、インデクスグループ管理表3530、インデクス−インデクスグループ対応表3540及びデータベースを構成する論理的なスキーマ構造、並びにテーブル情報などの各種定義情報を管理する機能を有する。具体的には、ディクショナリ管理部3433は、表3550に対応する定義情報、インデクス3560に対する定義情報(インデクス管理表3520)、及び、インデクスグループに対する定義情報(インデクスグループ管理表3530、インデクス−インデクスグループ対応表3540)を管理する。   The dictionary management unit 3433 has a function of managing various definition information such as an index management table 3520, an index group management table 3530, an index-index group correspondence table 3540, a logical schema structure constituting the database, and table information. Specifically, the dictionary management unit 3433 defines the definition information corresponding to the table 3550, the definition information for the index 3560 (index management table 3520), and the definition information for the index group (index group management table 3530, index-index group correspondence). Table 3540) is managed.

また、ディクショナリ管理部3433は、上記定義要求がされた場合、定義要求受付部3431から要求を受信して解析した結果を、インデクス管理表3520、インデクスグループ管理表3530及びインデクス−インデクスグループ対応表3540などに記録する。さらに、ディクショナリ管理部3433は、DBアクセスが要求された場合、DBアクセス要求受付部3432からの要求に基づいて、アクセスパス生成部3434が処理を実行する際に必要となる定義情報を提供する。   In addition, when the definition request is made, the dictionary management unit 3433 receives the request from the definition request reception unit 3431 and analyzes the analysis result, and the index management table 3520, the index group management table 3530, and the index-index group correspondence table 3540. Record in etc. Furthermore, when a DB access is requested, the dictionary management unit 3433 provides definition information required when the access path generation unit 3434 executes processing based on a request from the DB access request reception unit 3432.

アクセスパス生成部3434は、DBアクセス要求があった場合に、アクセスパスの生成を行う機能を有する。具体的には、アクセスパス生成部3434は、表3550及びインデクス3560にアクセスするための適切なアクセスパスを生成する。生成されたアクセスパスはメモリ3420に出力される。   The access path generation unit 3434 has a function of generating an access path when there is a DB access request. Specifically, the access path generation unit 3434 generates an appropriate access path for accessing the table 3550 and the index 3560. The generated access path is output to the memory 3420.

アクセスパス実行部3435は、DBアクセス要求があった場合に、アクセスパス生成部3434が生成したメモリ3420に出力したアクセスパス3421で決められた実行手順に従い、実際にデータベースへのアクセスを実行する。具体的には、アクセスパス実行部3435は、表3550及びインデクス3560にアクセスして、DBアクセス要求に対する実行結果を求める機能を有する。   When there is a DB access request, the access path execution unit 3435 actually executes access to the database according to the execution procedure determined by the access path 3421 output to the memory 3420 generated by the access path generation unit 3434. Specifically, the access path execution unit 3435 has a function of accessing the table 3550 and the index 3560 to obtain an execution result for the DB access request.

アクセスパス表示部3436は、アクセスパス生成部3434が生成してメモリ3420に出力したアクセスパス3421で決められた実行手順を確認するために、アクセスパスを表示する機能を有する。   The access path display unit 3436 has a function of displaying an access path in order to confirm the execution procedure determined by the access path 3421 generated by the access path generation unit 3434 and output to the memory 3420.

上述したメモリ3420に配置される各処理部3431などは、プログラムで実現することを想定しているが、その代わりに、オブジェクト又はハードウェアで実現することも可能である。メモリ3420に配置した各処理部3431などは、CD−ROM(Compact Disk Read Only Memory)又はDVD−ROM(Digital Versatile Disk Read Only Memory)のような記憶媒体に格納されており、OS(Operating System)又はデータベースシステムが有するインストール処理部によりメモリ3420にインストールされる。   The processing units 3431 and the like arranged in the memory 3420 described above are assumed to be realized by a program, but instead, can be realized by an object or hardware. Each processing unit 3431 arranged in the memory 3420 is stored in a storage medium such as a CD-ROM (Compact Disk Read Only Memory) or a DVD-ROM (Digital Versatile Disk Read Only Memory), and an OS (Operating System). Alternatively, it is installed in the memory 3420 by an installation processing unit included in the database system.

外部記憶装置3500は、環境定義ファイル3510、インデクス管理表3520、インデクスグループ管理表3530、インデクス−インデクスグループ対応表3540、表データ3550及びインデクス3560を記憶している。外部記憶装置3500は、例えば磁気的にデータが記憶される磁気ディスクを搭載する記憶装置である。   The external storage device 3500 stores an environment definition file 3510, an index management table 3520, an index group management table 3530, an index-index group correspondence table 3540, table data 3550, and an index 3560. The external storage device 3500 is a storage device on which a magnetic disk in which data is stored magnetically is mounted, for example.

環境定義ファイル3510は、データベース管理プログラム3430の動作をカスタマイズするための設定が記録されている。環境定義ファイル3510は、データベース管理プログラム3430を構築する際に作成される。環境定義ファイル3510は、例えばテキストで記述されたファイルである。   The environment definition file 3510 records settings for customizing the operation of the database management program 3430. The environment definition file 3510 is created when the database management program 3430 is constructed. The environment definition file 3510 is a file described in text, for example.

環境定義ファイル3510の内容は、データベース管理プログラム3430の起動時に、データベース管理システムが管理する環境定義ファイルの設定値を記録するための表(図示せず)に記録される。データベース管理プログラム3430は、動作している間には環境定義ファイル3510を直接参照せずに、環境定義ファイル351の設定値を記録した上記図示しない表から設定値を取得する。インデクス管理表3520、インデクスグループ管理表3530、インデクス−インデクスグループ対応表3540、表データ3550及びインデクス3560については後述する。   The contents of the environment definition file 3510 are recorded in a table (not shown) for recording setting values of the environment definition file managed by the database management system when the database management program 3430 is started. While the database management program 3430 is operating, the database management program 3430 does not directly refer to the environment definition file 3510 but acquires the setting values from the table (not shown) in which the setting values of the environment definition file 351 are recorded. The index management table 3520, the index group management table 3530, the index-index group correspondence table 3540, the table data 3550, and the index 3560 will be described later.

図4は、インデクスグループ管理表3530を構成する列情報の一例を示す。インデクスグループ管理表3530は、定義されたインデクスグループごとに1レコードとする表形式となっている。インデクスグループは、表又はインデクスに関係なく定義することができる。インデクスグループ管理表3530には、インデクスグループID401及びインデクスグループ名402を含んでいる。インデクスグループID401は、インデクスグループ名402ごとに一意に割り当てられる識別子である。なお、インデクスグループ名402に関して「IDXGRP_A」は、上記第1のインデクスグループ1300を表しており、「INDGRP_B」は、上記第2のインデクスグループ1400を表している。インデクスグループ管理表3530は、後述するインデクスグループ定義要求の例に対応している。具体的な対応関係については、図5において説明する。   FIG. 4 shows an example of the column information constituting the index group management table 3530. The index group management table 3530 has a table format in which one record is defined for each defined index group. An index group can be defined regardless of the table or index. The index group management table 3530 includes an index group ID 401 and an index group name 402. The index group ID 401 is an identifier that is uniquely assigned to each index group name 402. Regarding the index group name 402, “IDXGRP_A” represents the first index group 1300, and “INDGRP_B” represents the second index group 1400. The index group management table 3530 corresponds to an example of an index group definition request to be described later. A specific correspondence will be described with reference to FIG.

図5は、インデクスグループを作成するためのインデクスグループの定義要求の一例を示す。インデクスグループの定義要求は、SQLにより記述されている。当該インデクスグループの定義要求は、インデクスグループ名が「IDXGRP_A」であるインデクスグループを定義することを示している。ここで云うインデクスグループは、上記第1のインデクスグループ1300に相当する。   FIG. 5 shows an example of an index group definition request for creating an index group. The index group definition request is described in SQL. The index group definition request indicates that an index group whose index group name is “IDXGRP_A” is defined. The index group referred to here corresponds to the first index group 1300.

上述したインデクスグループ管理表3530は、図5に示したインデクスグループの定義要求の例に対応している。インデクスグループ管理表3530の1番目のレコード403は、インデクスグループ名が「IDXGRP_A」であり、図5に示すインデクスグループの定義要求に記述されたインデクスグループ名「IDXGRP_A」と対応している。また、図5に示すインデクスグループに対応する、インデクスグループの削除要求も実現可能である。   The index group management table 3530 described above corresponds to the example of the index group definition request shown in FIG. The first record 403 of the index group management table 3530 has an index group name “IDXGRP_A”, and corresponds to the index group name “IDXGRP_A” described in the index group definition request shown in FIG. Also, an index group deletion request corresponding to the index group shown in FIG. 5 can be realized.

図6は、インデクス管理表3520を構成する列情報の一例を示す。インデクス管理表3520は、定義されたインデクスを構成する列ごとに1レコードとする表形式となっている。インデクス管理表3520は、列情報として、インデクスID601、インデクス名602、表名603、インデクス構成列名604及びバージョン605を含む。   FIG. 6 shows an example of column information constituting the index management table 3520. The index management table 3520 has a table format in which one record is provided for each column constituting the defined index. The index management table 3520 includes, as column information, an index ID 601, an index name 602, a table name 603, an index configuration column name 604, and a version 605.

表名603は、当該インデクスが定義された表の名称を表している。インデクス構成列名604は、当該インデクスが定義された表の列名を表している。バージョン605は、当該インデクスのバージョンを表している。   A table name 603 represents the name of the table in which the index is defined. The index component column name 604 represents the column name of the table in which the index is defined. A version 605 represents the version of the index.

バージョン605が存在することで、同一名称のインデクス名602で、異なる実体のインデクスを作成することが可能となる。インデクス名602は、全てのインデクス3560の間においてユニークなものであったのが、これにより、同一の名称ながらバージョン605を変更して1つ以上のインデクスグループに所属することができるようになる。   Since the version 605 exists, it is possible to create indexes of different entities with the index name 602 having the same name. Since the index name 602 is unique among all the indexes 3560, it is possible to change the version 605 with the same name and belong to one or more index groups.

このように本実施の形態においては、あるインデクスをインデクスグループA,Bの両方にも所属することができる。ここで、インデクスグループAを利用して動作している第1のユーザアプリケーション1000と、インデクスグループBを利用して動作している第2のユーザアプリケーション1100とが存在する場合を考える。   Thus, in the present embodiment, an index can belong to both index groups A and B. Here, a case is considered in which there is a first user application 1000 that operates using the index group A and a second user application 1100 that operates using the index group B.

インデクスを複数のインデクスグループに所属させるために当該バージョンの概念を用いない場合には、例えば、第1のユーザアプリケーション1000の性能を改善するためにそのアクセスパスを変更しようとして第1のインデクス1800の定義を変更したいとき、直接、第1のインデクス1800を変更してしまうと、第2のユーザアプリケーション1100のアクセスパスにも変化が生じてしまう可能性がある。従って、あるインデクスの変更に伴う影響がその所属するインデクスグループ以外のインデクスグループに広がってしまう。   When the concept of the version is not used to make an index belong to a plurality of index groups, for example, in order to improve the performance of the first user application 1000, the access path of the first index 1800 is tried to be changed. When the definition is to be changed, if the first index 1800 is changed directly, the access path of the second user application 1100 may also change. Therefore, the effect of changing an index spreads to index groups other than the index group to which the index belongs.

そこで本実施形態では、複数のインデクスグループに所属している第1のインデクス1800を変更する場合には、バージョンを変えた同名の第1のインデクス1800を作成する。一例として、インデクスグループAに所属している第1のインデクス1800のバージョンを「2」として、インデクスグループBに所属している第1のインデクス1800のバージョンを「1」とする。   Therefore, in the present embodiment, when the first index 1800 belonging to a plurality of index groups is changed, the first index 1800 having the same name with a different version is created. As an example, the version of the first index 1800 belonging to the index group A is “2”, and the version of the first index 1800 belonging to the index group B is “1”.

本実施の形態では、第2のインデクスグループ1400に所属している第1のインデクス1800(バージョン1)には変更をせず、新たに作成した第1のインデクス1800(バージョン2)に対して変更を加えることにより、次のような利点がある。即ち、このようにすると、第1のインデクスグループ1300を利用して動作している第1のユーザアプリケーション1000の性能改善を実現しながらも、第2のユーザアプリケーション1100のアクセスパスに影響を与えないようにすることができる。   In the present embodiment, the first index 1800 (version 1) belonging to the second index group 1400 is not changed, but is changed to the newly created first index 1800 (version 2). By adding, there are the following advantages. That is, in this way, while improving the performance of the first user application 1000 operating using the first index group 1300, the access path of the second user application 1100 is not affected. Can be.

図7は、インデクス−インデクスグループ対応表3540を構成する列情報の一例を示す。このインデクスーインデクスグループ対応表3540においては、プロセッサ3410によりインデクスグループとインデクスとの対応関係が定義されている。即ち、インデクス−インデクスグループ対応表3540は、定義されたインデクスと、当該インデクスの所属するインデクスグループの関係ごとに1レコードとする表形式となっている。1つのインデクスは複数のインデクスグループに所属することができる。インデクス−インデクスグループ対応表3540は、列情報としてインデクスID801及びインデクスグループID802を含む。インデクスID801は、インデクスごとに一意に割り当てられている識別子である。インデクスグループID802は、当該インデクスが所属しているインデクスグループに一意に割り当てられる識別子である。   FIG. 7 shows an example of column information constituting the index-index group correspondence table 3540. In this index-index group correspondence table 3540, the processor 3410 defines the correspondence between the index group and the index. That is, the index-index group correspondence table 3540 has a table format in which one record is provided for each relationship between the defined index and the index group to which the index belongs. One index can belong to a plurality of index groups. The index-index group correspondence table 3540 includes an index ID 801 and an index group ID 802 as column information. The index ID 801 is an identifier that is uniquely assigned to each index. The index group ID 802 is an identifier that is uniquely assigned to the index group to which the index belongs.

また、図7に示すインデクス−インデクスグループ対応表3540は、図8において後述するインデクス定義要求の例に対応している。具体的な対応関係については、図8において後述する。   Also, the index-index group correspondence table 3540 shown in FIG. 7 corresponds to an example of an index definition request described later in FIG. A specific correspondence will be described later with reference to FIG.

図8は、インデクスを作成するためのインデクスの定義要求の一例を示す図である。このインデクスの定義要求もSQLによって記述されている。インデクスの定義要求は、社員表2000の列である氏名列202及び所属コード列203に対し、インデクスを定義して、第1のインデクスグループ1300(IDXGRP_A)というインデクスグループに所属させるというインデクスの定義要求を示している。   FIG. 8 is a diagram illustrating an example of an index definition request for creating an index. This index definition request is also described in SQL. The index definition request is an index definition request that defines an index for the name column 202 and the affiliation code column 203 that are columns of the employee table 2000 and belongs to the index group named first index group 1300 (IDXGRP_A). Is shown.

このインデクス定義要求は、インデクス名が「IDX_A」というインデクスを定義することを、「CREATE」から「IDX_A」までの部分で示している。そして、社員表2000の氏名202列、及び、所属コード203列に対してインデクスを定義することを、「ON」から「INDEXGROUP」の手前までの部分で示している。また、「INDEXGROUP」以降の部分は、定義したインデクスを所属させるインデクスグループ名を表している。さらに、このインデクス定義要求は、図5に示したインデクスグループ定義要求に基づいて作成済みのインデクスグループ名を指定している。   This index definition request indicates that an index whose index name is “IDX_A” is defined by a portion from “CREATE” to “IDX_A”. The definition of indexes for the name 202 column and the affiliation code 203 column of the employee table 2000 is shown in the part from “ON” to “INDEXGROUP”. The part after “INDEXGROUP” represents the name of the index group to which the defined index belongs. Further, this index definition request designates the name of an index group that has been created based on the index group definition request shown in FIG.

図6に示すインデクス管理表3520、及び、図7に示すインデクス−インデクスグループ対応表3540は、上述のように図8に示すインデクス定義要求の例に対応する。図6に示すインデクス管理表3520における1番目のレコード606及び2番目のレコード607を参照すると、インデクス名が「IDX_A」であるインデクスは、表名「Employee」及び列名「NAME」、「DIVISION」である。   The index management table 3520 shown in FIG. 6 and the index-index group correspondence table 3540 shown in FIG. 7 correspond to the example of the index definition request shown in FIG. 8 as described above. Referring to the first record 606 and the second record 607 in the index management table 3520 shown in FIG. 6, the index whose index name is “IDX_A” is the table name “Employee”, the column names “NAME”, and “DIVISION”. It is.

従って、レコード606及びレコード607が、図8に示したインデクス定義要求に対応していることが分かる。そして、図7に示したインデクス−インデクスグループ対応表3540の1番目のレコード803を参照すると、インデクスIDが「1」であるインデクスと、インデクスグループIDが「1」であるインデクスグループが対応付けられている。インデクスIDが「1」であるインデクスは、図6に示すインデクス管理表3520に基づいて「IDX_A」であることが分かる。さらに、インデクスグループIDが「1」であるインデクスグループは、インデクスグループ管理表3530に基づいて「IDXGRP_A」であることが分かる。このため、インデクス1800(IDX_A)がインデクスグループ1300(IDXGRP_A)に所属していることを示している。   Therefore, it can be seen that the record 606 and the record 607 correspond to the index definition request shown in FIG. Then, referring to the first record 803 of the index-index group correspondence table 3540 shown in FIG. 7, the index whose index ID is “1” is associated with the index group whose index group ID is “1”. ing. It can be seen that the index whose index ID is “1” is “IDX_A” based on the index management table 3520 shown in FIG. Further, it is understood that the index group whose index group ID is “1” is “IDXGRP_A” based on the index group management table 3530. For this reason, it is indicated that the index 1800 (IDX_A) belongs to the index group 1300 (IDXGRP_A).

ここで、インデクス変更要求をするには、図8に示すインデクス定義要求を記述したSQL文において用いられていた「CREATE」の代わりに「ALTER」を用いることにより実現が可能である。また、インデクス削除要求をするには、上記インデクス定義要求を記述したSQL文において用いられている「CREATE」の代わりに「DELETE」を用いることにより実現が可能である。   Here, the index change request can be realized by using “ALTER” instead of “CREATE” used in the SQL statement describing the index definition request shown in FIG. An index deletion request can be realized by using “DELETE” instead of “CREATE” used in the SQL statement describing the index definition request.

また、インデクス定義要求によって、インデクスを新規作成する場合にインデクスグループに所属させる以外にも、既存のインデクスを、別のインデクスグループにも所属させるインデクス追加要求も実現可能である。   Further, in addition to making an index group belong to an index group when a new index is created by an index definition request, an index addition request for making an existing index belong to another index group can also be realized.

(3)本実施の形態におけるデータベース管理方法
図9は、データベース管理プログラム3430がインデクスグループを利用する際の手順を示す。データベース管理プログラム3430は、データベース管理装置1200においてプロセッサによって動作が制御されている。以下では、各ステップを実行する主体として、プロセッサの代わりに主としてデータベース管理プログラム3430(又はその各機能モジュール)を挙げて説明する。ステップS901では、定義要求受付部4341が、端末3200などによって発行されたインデクスグループ定義要求及びインデクス定義要求を受信し、解析を行う。その後、ディクショナリ管理部3433が、その解析結果に基づいて呼び出され、要求に基づいた定義を実行する。インデクスグループ定義要求及びインデクス定義要求の手順については、それぞれ後述する図10及び図11において後述する。
(3) Database Management Method in this Embodiment FIG. 9 shows a procedure when the database management program 3430 uses an index group. The operation of the database management program 3430 is controlled by the processor in the database management apparatus 1200. In the following description, the database management program 3430 (or each of its functional modules) will be mainly described as the main body that executes each step instead of the processor. In step S901, the definition request receiving unit 4341 receives and analyzes the index group definition request and the index definition request issued by the terminal 3200 or the like. Thereafter, the dictionary management unit 3433 is called based on the analysis result, and executes the definition based on the request. The procedures of the index group definition request and the index definition request will be described later with reference to FIGS.

ステップS902では、ディクショナリ管理部3433が、ユーザアプリケーション(以下、「UAP」とも省略する)と、当該ユーザアプリケーションの利用するインデクスが所属しているインデクスグループの対応付けを行う。ユーザアプリケーションの対応付けは、環境定義ファイル3510において指定される。   In step S902, the dictionary management unit 3433 associates the user application (hereinafter also abbreviated as “UAP”) with the index group to which the index used by the user application belongs. The user application association is specified in the environment definition file 3510.

具体的には、例えば、環境定義ファイル3510の記述形式に「INDEX GROUP ユーザアプリケーション名=インデクスグループ名」という、インデクスグループとユーザアプリケーションとの対応付けを指定するための記述を新たに設け、「INDEX GROUP UAP1=IDXGRP_A」と記述することで、第1のユーザアプリケーション1000(UAP1に相当)と第1のインデクスグループ1300とが対応付けされる。   Specifically, for example, in the description format of the environment definition file 3510, a description for specifying an association between an index group and a user application, “INDEX GROUP user application name = index group name”, is provided. By describing “GROUP UAP1 = IDXGRP_A”, the first user application 1000 (corresponding to UAP1) and the first index group 1300 are associated with each other.

なお、従来のDBMSで動作していたユーザアプリケーションを本実施の形態のデータベース管理装置1200で利用する場合(又は、例えば、仮にインデクスグループを複数用意する必要がない場合)においては、本実施の形態を採用しないDBMSと同様に利用したいことも考えられる。具体例としては、例えば、インデクス定義要求において、インデクスグループの指定を省略したいとき、又は、ユーザアプリケーションを開発するたびにインデクスグループとの対応関係を記述したくないときなどである。   In the case where a user application that has been operating in a conventional DBMS is used in the database management apparatus 1200 according to the present embodiment (or when it is not necessary to prepare a plurality of index groups, for example), the present embodiment It is conceivable that the user wants to use it in the same manner as a DBMS that does not adopt the. Specific examples include, for example, when it is desired to omit specification of an index group in an index definition request, or when it is not desired to describe the correspondence relationship with an index group every time a user application is developed.

そこで、環境定義ファイル3510の記述形式に「DEFAULT INDEX GROUP インデクスグループ名」というような、インデクスグループの指定を省略した場合に仮定されるインデクスグループを指定するための記述形式を新たに設けて、「DEFAULT INDEX GROUP IDXGRP_DEFAULT」と記述することで、インデクスグループの指定を省略した場合に「IDXGRP_DEFAULT」が仮定されるように対応付けを行うことも可能である。   Therefore, a description format for specifying an index group that is assumed when the specification of an index group is omitted, such as “DEFAULT INDEX GROUP index group name”, is newly provided in the description format of the environment definition file 3510. By describing as “DEFAULT INDEX GROUP IDXGRP_DEFAULT”, it is also possible to perform association so that “IDXGRP_DEFAULT” is assumed when the index group specification is omitted.

環境定義ファイル3510の内容は、このようなファイル形式とする代わりに、データベース管理プログラム3430の起動時に、データベース管理プログラム3430が管理する環境定義ファイルの設定値を記録するための表(図示せず)に記録されるようにしても良い。このような構成では、データベース管理プログラム3430は、動作している間、環境定義ファイル3510を直接参照せずに、環境定義ファイルの設定値を記録するための図示しない表から設定値を取得する。従って、端末3200などが、データベース管理プログラム3430に対し、SQLを利用して環境定義ファイル3510の設定値を記録するための表(図示せず)の変更要求を行うことで、ユーザアプリケーションとインデクスグループの対応付けを変更することも可能である。   The content of the environment definition file 3510 is a table (not shown) for recording the setting values of the environment definition file managed by the database management program 3430 when the database management program 3430 is started, instead of having such a file format. May be recorded. In such a configuration, the database management program 3430 acquires the setting value from a table (not shown) for recording the setting value of the environment definition file without directly referring to the environment definition file 3510 during operation. Accordingly, the terminal 3200 or the like requests the database management program 3430 to change the table (not shown) for recording the setting value of the environment definition file 3510 using SQL, and thereby the user application and the index group. It is also possible to change the association.

なお、本実施の形態では、このような環境定義ファイル3510を利用する代わりに、ユーザアプリケーションとインデクスグループの対応関係を記録するためのユーザアプリケーション−インデクスグループ対応表(図示せず)などを外部記憶装置3500に用意しておき、ユーザアプリケーションとインデクスグループの対応関係を管理するようにしても良い。   In the present embodiment, instead of using such an environment definition file 3510, a user application-index group correspondence table (not shown) for recording the correspondence between user applications and index groups is stored in an external storage. It may be prepared in the apparatus 3500 to manage the correspondence between the user application and the index group.

ここで、上述のような環境定義ファイル3510又はユーザアプリケーション−インデクスグループ対応表(図示せず)などを利用して、ユーザアプリケーションとインデクスグループの対応関係を示すことのメリットとしては、既存のユーザアプリケーション又はSQLを直接変更する必要がないことである。本実施の形態を採用しないデータベース管理装置1200を用いている場合においてユーザアプリケーション又はSQLに変更を加えようとすると、ユーザアプリケーションの開発現場では、ユーザアプリケーション開発時に行ったテストを全てやり直さなければならない。このような構成によれば、環境定義ファイル3510又はユーザアプリケーション−インデクスグループ対応表(図示せず)などを利用して、ユーザアプリケーションとインデクスグループの対応関係を示すことによって、既存のユーザアプリケーション又はSQLについて修正を行うことなく、本実施の形態におけるデータベース管理装置1200を導入すること、又は、対応するインデクスグループを変更することが可能となる。   Here, as a merit of showing the correspondence between the user application and the index group using the environment definition file 3510 or the user application-index group correspondence table (not shown) as described above, the existing user application Or, there is no need to change the SQL directly. If a user application or SQL is to be changed when using the database management apparatus 1200 that does not employ the present embodiment, all tests performed at the time of user application development must be redone at the user application development site. According to such a configuration, by using the environment definition file 3510 or the user application-index group correspondence table (not shown) or the like, the correspondence relationship between the user application and the index group is shown, so that existing user applications or SQL It is possible to introduce the database management apparatus 1200 in the present embodiment or change the corresponding index group without correcting the above.

次にステップS903では、アクセスパス表示部3436が、アクセスパス生成部3434が生成したアクセスパス3421を所定の形式で出力する。このような形式としては、ユーザアプリケーションの開発者が理解することができる形式であればどのような出力内容であっても良い。このような出力内容の一例としては後述する図13に示す内容を挙げることができる。この図13の内容の詳細については後述する。   In step S903, the access path display unit 3436 outputs the access path 3421 generated by the access path generation unit 3434 in a predetermined format. Such a format may be any output content as long as it can be understood by the developer of the user application. As an example of such output contents, the contents shown in FIG. Details of the contents of FIG. 13 will be described later.

アクセスパス表示部3436は、アクセスパスの表示要求がなされた場合、アクセスパスを表示する。併せてアクセスパス表示部3436は、このアクセスパスとともにインデクスグループを表示する。このアクセスパスは、このインデクスグループに所属するインデクスを利用して生成されたアクセスの手順である。このようにアクセスパスを表示する用途としては、ユーザアプリケーションを開発した際における、又は、性能改善のための調査を行う場合を挙げることができる。なお、アクセスパス表示部3436は、ユーザアプリケーションがサービスを提供している間は、通常、このようなアクセスパスを表示しない。   When the access path display request is made, the access path display unit 3436 displays the access path. In addition, the access path display unit 3436 displays the index group together with this access path. This access path is an access procedure generated using an index belonging to this index group. As an application for displaying the access path in this way, there may be mentioned a case where a user application is developed or a survey for performance improvement is performed. Note that the access path display unit 3436 normally does not display such an access path while the user application provides a service.

ステップS904では、アクセスパス実行部3435が、アクセスパス3421に従ってデータベースにアクセスを行い、問い合わせ要求に対する回答を作成してユーザアプリケーション1000などに返す。このような回答としては、図1に示す実行結果2100,2200を挙げることができる。   In step S904, the access path execution unit 3435 accesses the database according to the access path 3421, creates an answer to the inquiry request, and returns it to the user application 1000 or the like. Examples of such an answer include execution results 2100 and 2200 shown in FIG.

<インデクスグループ作成ステップ>
インデクスグループ作成ステップでは、インデクスとインデクスグループの対応付けを行い、その対応関係を保持する。インデクスとインデクスグループの対応付けについては、ユーザからの定義要求に基づいて行うが、その具体的な一例について図10及び図11を用いて以下に説明する。
<Index group creation step>
In the index group creation step, the index and the index group are associated with each other and the correspondence relationship is maintained. The association between the index and the index group is performed based on a definition request from the user. A specific example thereof will be described below with reference to FIGS.

図10は、データベース管理プログラム3430がインデクスグループを定義する際における処理の手順を示す。本処理は、プロセッサ3410により定義要求受付部3431が実行されることによって、開始される。このインデクスグループ作成ステップでは、プロセッサが複数のインデクスをグループ化することによりインデクスグループを作成する。   FIG. 10 shows a processing procedure when the database management program 3430 defines an index group. This processing is started when the processor 3410 executes the definition request receiving unit 3431. In this index group creation step, the processor creates an index group by grouping a plurality of indexes.

プロセッサ3410は、まず、定義要求受付部3431を実行する。この要求受付部3431は、端末3200などによって入力されたインデクスグループ定義要求から、定義対象であるインデクスグループのインデクスグループ名を取得し、メモリ3420に保持する(ステップS1001)。例えば、図5に示したインデクスグループ定義要求が入力された場合、メモリ3420には、定義対象のインデクスグループ名である「IDXGRP_A」が保持される。   The processor 3410 first executes the definition request receiving unit 3431. The request reception unit 3431 acquires the index group name of the index group to be defined from the index group definition request input by the terminal 3200 or the like, and holds it in the memory 3420 (step S1001). For example, when the index group definition request shown in FIG. 5 is input, the memory 3420 holds “IDXGRP_A” which is the name of the index group to be defined.

プロセッサ3410は、その後、ディクショナリ管理部3433を実行する。このディクショナリ管理部3433は、メモリ3420に保持されているインデクスグループ名、及び、インデクス名ごとにユニークな値をインデクスグループIDとして関連付けて、インデクスグループ管理表3530に登録する(ステップS1002)。例えば、図5に示すインデクスグループ定義要求が入力された場合には、図4に示すレコード403が登録される。   Thereafter, the processor 3410 executes the dictionary management unit 3433. The dictionary management unit 3433 associates an index group name held in the memory 3420 and a unique value for each index name as an index group ID, and registers them in the index group management table 3530 (step S1002). For example, when the index group definition request shown in FIG. 5 is input, the record 403 shown in FIG. 4 is registered.

図11は、データベース管理プログラム3430がインデクスを新たに定義する際の処理の手順を示すフローチャートである。本処理は、プロセッサ3410により定義要求受付部3431が実行されることによって、開始される。   FIG. 11 is a flowchart showing a processing procedure when the database management program 3430 newly defines an index. This processing is started when the processor 3410 executes the definition request receiving unit 3431.

定義要求受付部3431は、端末3200などによって入力されたインデクス定義要求から、定義対象であるインデクスのインデクス名、当該インデクスに含まれる列が所属している表名、インデクスに含まれる列名、及び、当該インデクスを所属させるインデクスグループ名を取得し、メモリ3420に保持する(ステップS1101)。   The definition request reception unit 3431 receives the index definition request input from the terminal 3200 or the like, the index name of the index to be defined, the table name to which the column included in the index belongs, the column name included in the index, and The index group name to which the index belongs is acquired and stored in the memory 3420 (step S1101).

例えば、図8に示したインデクス定義要求が入力された場合には、定義対象のインデクス名である「IDX_A」、当該インデクスに含まれる列が所属している表名である「Employee」、インデクスに含まれる列名である「NAME」及び「DIVISION」、及び、当該インデクスを所属させるインデクスグループ名である「IDXGRP_A」が保持される。   For example, when the index definition request shown in FIG. 8 is input, “IDX_A” that is the index name to be defined, “Employee” that is the name of the table to which the column included in the index belongs, and the index The included column names “NAME” and “DIVISION” and the index group name “IDXGRP_A” to which the index belongs are stored.

次にプロセッサ3410は、ディクショナリ管理部3433を実行することによって、メモリ3420に保持されているインデクス名、表名、列名、及び、インデクスごとにユニークな値をインデクスIDとするとともに、さらにバージョンを「0」として関連付けて、インデクス管理表3520に登録する(ステップS1102)。列名は複数指定することができる。列名が複数指定されていた場合には、列名ごとに1つの関連付けを作成して、それぞれ登録する。例えば、図8に示したインデクス定義要求が入力された場合には、図6に示したレコード606及びレコード607が登録される。   Next, the processor 3410 executes the dictionary management unit 3433 to set a unique value for each index name, table name, column name, and index held in the memory 3420 as an index ID, and further update the version. It is registered as “0” in the index management table 3520 (step S1102). Multiple column names can be specified. When a plurality of column names are designated, one association is created for each column name and registered. For example, when the index definition request shown in FIG. 8 is input, the record 606 and the record 607 shown in FIG. 6 are registered.

その後、ディクショナリ管理部3433は、インデクスグループ管理表3530を参照して、メモリ3420に保持されているインデクスグループ名に対応するインデクスグループIDを取得する。このインデクスIDと、インデクスごとにユニークな値として付与したインデクスIDを関連付けて、インデクス−インデクスグループ対応表3540に登録する(ステップS1103)。例えば、図8に示したインデクス定義要求が入力された場合には、図4に示したレコード403から、インデクスグループ名「IDXGRP_A」に対応するインデクスIDである「1」を取得し、インデクスごとにユニークな値として付与したインデクスIDである「1」と関連付けて、図7に示したレコード803が登録される。   Thereafter, the dictionary management unit 3433 refers to the index group management table 3530, and acquires the index group ID corresponding to the index group name held in the memory 3420. This index ID is associated with the index ID assigned as a unique value for each index and registered in the index-index group correspondence table 3540 (step S1103). For example, when the index definition request shown in FIG. 8 is input, the index ID “1” corresponding to the index group name “IDXGRP_A” is acquired from the record 403 shown in FIG. The record 803 shown in FIG. 7 is registered in association with the index ID “1” given as a unique value.

本実施形態では、インデクスグループ作成方法の具体的な一例として、インデクスグループを定義したあとで、インデクスグループを指定してインデクスを定義するインデクスグループ作成方法について説明したが、別の一例として、既存の1つ以上のインデクスから新たなインデクスグループを作成する方法もある。例えば、既存のインデクスとして、インデクス1、インデクス2及びインデクス3が存在している場合、この3つのインデクスからIDXGRP_NEWというインデクスグループを作成する場合について説明する。これを実現するためのインデクスグループ定義要求(SQL)としては、「CREATE INDEXGROUP ”IDXGRP_NEW” FROM ”インデクス1”,”インデクス2”,”インデクス3”」などが考えられる。   In this embodiment, as a specific example of an index group creation method, an index group creation method for defining an index group by defining an index group after defining the index group has been described. However, as another example, an existing index group creation method is described. There is also a method of creating a new index group from one or more indexes. For example, when index 1, index 2, and index 3 exist as existing indexes, a case where an index group called IDXGRP_NEW is created from these three indexes will be described. As an index group definition request (SQL) for realizing this, “CREATE INDEXGROUP“ IDXGRP_NEW ”FROM“ index 1 ”,“ index 2 ”,“ index 3 ”” and the like can be considered.

このとき、定義要求受付部3431は、端末3200などによって入力された前述したインデクスグループ定義要求から、定義対象であるインデクスグループ名、及び、所属させるインデクス名を取得し、メモリ3420に保持する。   At this time, the definition request accepting unit 3431 obtains the index group name to be defined and the index name to which it belongs from the above-described index group definition request input by the terminal 3200 or the like, and stores it in the memory 3420.

次にプロセッサ3410は、ディクショナリ管理部3433を実行することによって、メモリ3420に保持されているインデクスグループ名にユニークな値をインデクスグループIDとして、インデクスグループ管理表3530に登録する。   Next, the processor 3410 executes the dictionary management unit 3433 to register a unique value for the index group name held in the memory 3420 in the index group management table 3530 as an index group ID.

その後、ディクショナリ管理部3433は、インデクス管理表3520を参照して、メモリ3420に保持されているインデクス名に対応するインデクスIDを取得する。このインデクスIDと、インデクスグループごとにユニークな値として付与したインデクスグループIDを関連付けて、インデクス−インデクスグループ対応表3540に登録する。   Thereafter, the dictionary management unit 3433 refers to the index management table 3520, and acquires an index ID corresponding to the index name held in the memory 3420. This index ID is associated with the index group ID assigned as a unique value for each index group, and is registered in the index-index group correspondence table 3540.

<アクセスパス作成ステップ>
図12は、データベース管理プログラム3430がアクセスパスを生成する際の処理の手順を示す。本処理は、プロセッサ3410によってDBアクセス要求受付部3432が実行されることにより、開始される。このアクセスパス作成ステップでは、DBアクセス要求受付部3432が、インデクスグループの指定されたアクセス要求を受け付け、インデクスグループに含まれるインデクスの中から問い合わせ結果を求める際の性能が最も良いと判断したインデクスを選択し、そのインデクスを利用してアクセスパスを生成する。
<Access path creation step>
FIG. 12 shows a processing procedure when the database management program 3430 generates an access path. This process is started when the processor 3410 executes the DB access request reception unit 3432. In this access path creation step, the DB access request acceptance unit 3432 accepts an access request designated by an index group, and selects an index that has been determined to have the best performance when obtaining a query result from among the indexes included in the index group. Select an access path using that index.

具体的には、まず、DBアクセス要求受付部3432は、いずれかのユーザアプリケーション1000などから、インデクスグループの指定されたDBアクセス要求を受け付ける。次にDBアクセス要求受付部3432は、DBアクセス要求を発行したユーザアプリケーション3000に関連付けられているインデクスグループ名を、環境定義ファイル3510で指定された設定値を参照して取得する(ステップS1201)。   Specifically, first, the DB access request reception unit 3432 receives a DB access request in which an index group is designated from any user application 1000 or the like. Next, the DB access request reception unit 3432 acquires the index group name associated with the user application 3000 that issued the DB access request with reference to the setting value specified in the environment definition file 3510 (step S1201).

次にプロセッサ3410はディクショナリ管理部3433を実行する。ディクショナリ管理部3433は、インデクスグループ管理表3530を参照して、上記ステップS1201において取得されたインデクスグループ名に対応するインデクスグループIDを取得する。ディクショナリ管理部3433は、インデクス−インデクスグループ対応表3540を参照して、そのインデクスグループIDに対応するインデクスIDを取得する。その後、ディクショナリ管理部3433は、インデクス管理表3520を参照して、そのインデクスIDに対応するインデクス情報を取得してメモリ3420に保持する(ステップS1202)。   Next, the processor 3410 executes the dictionary management unit 3433. The dictionary management unit 3433 refers to the index group management table 3530 and acquires the index group ID corresponding to the index group name acquired in step S1201. The dictionary management unit 3433 refers to the index-index group correspondence table 3540, and acquires an index ID corresponding to the index group ID. Thereafter, the dictionary management unit 3433 refers to the index management table 3520, acquires index information corresponding to the index ID, and stores the index information in the memory 3420 (step S1202).

次にプロセッサ3410は、DBアクセス要求受付部3432を実行する。DBアクセス要求受付部3432は、ユーザアプリケーション3000によって入力されたDBアクセス要求から、データを検索する際の条件となる列名及び表名、並びに、射影対象である列名及び表名を取得する(ステップS1203)。なお、このユーザアプリケーション3000は、上述した第1及び第2のユーザアプリケーション1000,1100を総称したものである。   Next, the processor 3410 executes the DB access request reception unit 3432. The DB access request reception unit 3432 obtains column names and table names that are conditions for searching for data, and column names and table names that are projection targets from the DB access request input by the user application 3000 ( Step S1203). The user application 3000 is a generic name for the first and second user applications 1000 and 1100 described above.

次にプロセッサ3410は、アクセスパス生成部3434を実行する。アクセスパス生成部3434は、上述のようにメモリ3420に保持しているインデクス情報と、ステップS1203で取得した表名や列名とを照らし合わせ、実際にデータベースにアクセスする際に利用するのに適したインデクスとして、問い合わせ結果を求める際の性能が最も良いインデクスを決定する。そして、アクセスパス生成部3434は、当該インデクスを利用したアクセスパスを生成し、このアクセスパスをメモリ3420に保持させる(ステップS1204)。   Next, the processor 3410 executes the access path generation unit 3434. The access path generation unit 3434 compares the index information stored in the memory 3420 as described above with the table name and column name acquired in step S1203, and is suitable for use when actually accessing the database. As the index, the index having the best performance when obtaining the query result is determined. Then, the access path generation unit 3434 generates an access path using the index, and stores this access path in the memory 3420 (step S1204).

<アクセスパス表示ステップ>
図13は、データベース管理プログラム3430がアクセスパスを出力した場合における出力内容の一例を示す。図示の例では、第1のユーザアプリケーション1000によるDBアクセス要求が行われた際に出力されたアクセスパスの一例を示す。このアクセスパス表示ステップでは、プロセッサ3410が、アクセスパス表示部3436を実行し、インデクスグループに所属するインデクスを利用して生成されたアクセスパスとともにそのインデクスグループを含めて表示装置(図示せず)に表示する。
<Access path display step>
FIG. 13 shows an example of output contents when the database management program 3430 outputs an access path. In the illustrated example, an example of an access path output when a DB access request is made by the first user application 1000 is shown. In this access path display step, the processor 3410 executes the access path display unit 3436 to display the access path generated by using the index belonging to the index group together with the index group on a display device (not shown). indicate.

具体的には、その出力内容としては、第1行目から第4行目には、第1のユーザアプリケーション1000が発行したDBアクセス要求を示すSQLが出力される。第6行目には、第1のユーザアプリケーション1000に対応付けられたインデクスグループ名が出力される。なお、第5行目は、その下の第6行目の内容がインデクスグループである旨のタイトルを表している。第8行目以降は、データベースのデータにアクセスする手順が出力される。なお、第7行目は、その下の第8行目以降の内容がアクセスパスである旨のタイトルを表している。   Specifically, as the output contents, SQL indicating the DB access request issued by the first user application 1000 is output from the first line to the fourth line. In the sixth line, the index group name associated with the first user application 1000 is output. The fifth line represents a title indicating that the content of the sixth line below is an index group. From the eighth line onward, the procedure for accessing the data in the database is output. The seventh line represents a title indicating that the content after the eighth line below is an access path.

「1:SELECT STATEMENT」の部分は、当該SQLがSELECT文であることを示している。「2:!SCAN」の部分は、当該SQLが、最小値、最大値、集合関数値、結合検索を含まない単純なSQLであることを示す。「3:!TABLE Employee」の部分は、検索対象の表名を示す。「4:!INDEX IDX_A[1](2)」の部分は、当該アクセスパスがインデクスを利用した検索であることを示す。さらに当該部分は、利用するインデクス名が「IDX_A」であり、バージョンが「1」であり、「IDX_A」を構成しているインデクスを構成する列数が2であることを示す。   The part “1: SELECT STATEMENT” indicates that the SQL is a SELECT statement. The part “2:! SCAN” indicates that the SQL is simple SQL that does not include the minimum value, the maximum value, the set function value, and the join search. The part “3 :! TABLE Employee” indicates the table name to be searched. The portion “4:! INDEX IDX_A [1] (2)” indicates that the access path is a search using an index. Further, this part indicates that the index name to be used is “IDX_A”, the version is “1”, and the number of columns constituting the index constituting “IDX_A” is two.

さらに「5:!SEARCH TYPE RANGE」の部分は、インデクスを利用する場合のアクセス方法を示す。「6:!SEARCH COLUMNS」及び「7:!NAME(1)、DIVISION(2)」の部分は、インデクスの検索条件が指定された列の列名とインデクス上での位置を示す。「8:!SCAN TYPE INDEX」の部分は、インデクスを利用した検索であり、かつ、表にもアクセスすることを示す。「9:!RDAREA NUMBER 1」の部分は、アクセスパス実行時にアクセスするデータベースの領域の数を示す。「10:!WITH SHARE LOCK」の部分は、データベースにアクセスする際の排他の種類を示す。   Furthermore, the part “5:! SEARCH TYPE RANGE” indicates an access method when using an index. “6:! SEARCH COLUMNS” and “7:! NAME (1), DIVISION (2)” indicate the column name and the position on the index in which the index search condition is specified. The part “8:! SCAN TYPE INDEX” indicates that the search is performed using an index and that a table is also accessed. The portion “9:! RDAREA NUMBER 1” indicates the number of database areas to be accessed when the access path is executed. “10 :! WITH SHARE LOCK” indicates the type of exclusion when accessing the database.

<インデクス変更ステップ>
図14は、インデクス定義を変更する際における処理の手順を示す。インデクス変更ステップは、プロセッサ3410が、インデクスグループに所属するインデクスを変更する手順を表している。このインデクス変更ステップは、別のインデクス作成ステップ及び対応関係変更ステップを含んでいる。まず、概念を説明すると、上記別のインデクス作成ステップでは、プロセッサ3410が、インデクスが単一のインデクスグループに所属している場合にはインデクス自体を直接変更する一方、そのインデクスが複数のインデクスグループに所属している場合には、そのインデクスを複製して同一名称を用いた新規な別のインデクスを作成する。次に、上記対応関係変更ステップでは、プロセッサ3410が、複数のインデクスグループのうち別のインデクスが所属すべきインデクスグループと別のインデクスとの対応関係を変更する。
<Index change step>
FIG. 14 shows a processing procedure when changing the index definition. The index change step represents a procedure in which the processor 3410 changes an index belonging to an index group. This index changing step includes another index creating step and a correspondence changing step. First, the concept will be explained. In the above another index creation step, the processor 3410 directly changes the index itself when the index belongs to a single index group, while the index is changed to a plurality of index groups. If it belongs, the index is duplicated to create another new index using the same name. Next, in the correspondence change step, the processor 3410 changes the correspondence between an index group to which another index among a plurality of index groups should belong and another index.

次に、具体的に説明すると、図14に示す処理は、プロセッサ3410によって定義要求受付部3431が実行されることによって、開始される。定義要求受付部3431は、端末3200などによって入力されたインデクス変更要求から、変更対象であるインデクスのインデクス名、及び、当該インデクスが所属するインデクスグループ名を取得する(ステップS1401)。   Next, specifically, the process shown in FIG. 14 is started when the definition request receiving unit 3431 is executed by the processor 3410. The definition request receiving unit 3431 acquires the index name of the index to be changed and the index group name to which the index belongs from the index change request input by the terminal 3200 or the like (step S1401).

次にプロセッサ3410は、ディクショナリ管理部3433を実行することによって、インデクス管理表3520を参照して、ステップS1401で取得したインデクス名に対応するインデクスIDを取得する。   Next, the processor 3410 refers to the index management table 3520 by executing the dictionary management unit 3433, and acquires the index ID corresponding to the index name acquired in step S1401.

同一インデクス名のインデクスが存在している可能性があるため、ディクショナリ管理部3433は、さらに、インデクスグループ管理表3530を参照して、上記ステップS1401で取得したインデクスグループ名に対応するインデクスグループIDを取得する。   Since there is a possibility that indexes with the same index name exist, the dictionary management unit 3433 further refers to the index group management table 3530 to obtain an index group ID corresponding to the index group name acquired in step S1401. get.

ディクショナリ管理部3433は、インデクス−インデクスグループ対応表3540を参照して、取得したインデクスIDとインデクスグループIDの対応が成立するインデクス−インデクスグループ情報を取得することで、変更対象のインデクスIDを特定する。   The dictionary management unit 3433 refers to the index-index group correspondence table 3540 and acquires the index-index group information in which the correspondence between the acquired index ID and the index group ID is established, thereby specifying the index ID to be changed. .

次にディクショナリ管理部3433は、インデクス管理表3520を参照して、変更対象のインデクスIDに対応する、変更対象のインデクス情報を取得し、メモリ3420に保持する(ステップS1402)。   Next, the dictionary management unit 3433 refers to the index management table 3520, acquires index information to be changed corresponding to the index ID to be changed, and stores it in the memory 3420 (step S1402).

次にディクショナリ管理部3433は、インデクス−インデクスグループ対応表3540を参照し、変更対象のインデクスIDに対応するインデクスグループIDを取得して、その数をカウントする(ステップS1403)。次にディクショナリ管理部3433は、そのステップS1403でカウントしたインデクスグループIDの数が「1」よりも大きかった場合には、次の処理を行う(ステップS1404)。   Next, the dictionary management unit 3433 refers to the index-index group correspondence table 3540, acquires the index group ID corresponding to the index ID to be changed, and counts the number (step S1403). Next, if the number of index group IDs counted in step S1403 is greater than “1”, the dictionary management unit 3433 performs the following process (step S1404).

ディクショナリ管理部3433は、まず、保持しているインデクス情報に対して、バージョンの変更、及び、インデクスごとにユニークなIDを再度設定して、インデクス管理表3520に新たに登録する(ステップS1405)。このようにしたのは、インデクス名が同一でも、バージョンが異なるインデクスは、インデクスの実体が異なるため、インデクスIDも再度割り当てる必要があるためである。   First, the dictionary management unit 3433 changes the version of the held index information and sets a unique ID for each index again, and newly registers it in the index management table 3520 (step S1405). This is because indexes with the same index name but different versions have different index entities, and therefore the index ID must be reassigned.

次にステップS1405では、ディクショナリ管理部3433が、インデクス管理表3520に登録したインデクス情報に対して、インデクス変更要求を適用する(ステップS1406)。次に、ディクショナリ管理部3433は、インデクス−インデクスグループ対応表3540を参照して、インデクス変更要求で指定されたインデクスグループのインデクスグループIDと変更対象のインデクスIDとの対応を表すインデクス−インデクスグループ対応情報を探す。ディクショナリ管理部3433は、これらのインデクスIDを、上記ステップS1405においてインデクス管理表に登録したインデクス情報のインデクスIDに変更して、インデクス−インデクスグループ管理表3540のデータを変更する(ステップS1407)。   In step S1405, the dictionary management unit 3433 applies an index change request to the index information registered in the index management table 3520 (step S1406). Next, the dictionary management unit 3433 refers to the index-index group correspondence table 3540, and indicates an index-index group correspondence that indicates the correspondence between the index group ID of the index group specified in the index change request and the index ID to be changed. Search for information. The dictionary management unit 3433 changes the data in the index-index group management table 3540 by changing these index IDs to the index IDs of the index information registered in the index management table in step S1405 (step S1407).

上記のようにインデクス情報を複製してインデクスの実体を別々にするのは、第1のインデクス1800などの各インデクスを第1及び第2のインデクスグループ1300,1400の両方に所属させることができるためである。ここで、第1のインデクスグループ1300を利用して動作している第1のユーザアプリケーション1000と、第2のインデクスグループ1400とを利用して動作している第2のユーザアプリケーション1100とが存在する場合を考える。例えば、第1のユーザアプリケーション1000の性能を改善するために、第1のユーザアプリケーション1000のアクセスパスを変更しようと、第1のインデクス1800の定義を変更する場合、直接、第1のインデクス1800を直接変更してしまうと、第2のユーザアプリケーション1100のアクセスパスが変化してしまう可能性があり、インデクス変更に伴う影響が、特定のインデクスグループ以外に広がってしまう。   The reason for duplicating the index information and separating the index entities as described above is that each index such as the first index 1800 can belong to both the first and second index groups 1300 and 1400. It is. Here, there is a first user application 1000 that operates using the first index group 1300 and a second user application 1100 that operates using the second index group 1400. Think about the case. For example, when the definition of the first index 1800 is changed to change the access path of the first user application 1000 in order to improve the performance of the first user application 1000, the first index 1800 is directly changed. If it is changed directly, the access path of the second user application 1100 may change, and the influence of changing the index spreads to other than the specific index group.

そこで、複数のインデクスグループに所属している第1のインデクス1800を変更する場合には、バージョンを変えた同名の第1のインデクス1800を作成する。一例として、第1のインデクスグループ1300に所属している第1のインデクス1800のバージョンを「2」として、第2のインデクスグループ1400に所属している第1のインデクス1800のバージョンを「1」とする。第2のインデクスグループ1400に所属している第1のインデクス1800(バージョン1)には変更をせず、新たに作成した第1のインデクス1800(バージョン2)に対して変更を加えることで、インデクスグループAを利用して動作している第1のインデクスグループ1300の性能改善を実現して、かつ、第2のインデクスグループ1400のアクセスパスに影響を与えないことを実現する。   Therefore, when changing the first index 1800 belonging to a plurality of index groups, the first index 1800 having the same name with a different version is created. As an example, the version of the first index 1800 belonging to the first index group 1300 is “2”, and the version of the first index 1800 belonging to the second index group 1400 is “1”. To do. By changing the first index 1800 (version 2) newly created without changing the first index 1800 (version 1) belonging to the second index group 1400, the index The performance improvement of the first index group 1300 operating using the group A is realized, and the access path of the second index group 1400 is not affected.

ステップS1404では、インデクスグループIDの数が「1」と等しい場合には、ディクショナリ管理部3433が次の処理を行う。即ち、ディスクショナリ管理部3433は、インデクス管理表3520を参照して、変更対象のインデクスIDに対応するインデクス情報を探し、インデクス変更要求を適用して、直接変更する(ステップS1408)。   In step S1404, if the number of index group IDs is equal to “1”, the dictionary management unit 3433 performs the following process. In other words, the discretionary management unit 3433 refers to the index management table 3520, searches for index information corresponding to the index ID to be changed, applies the index change request, and changes it directly (step S1408).

<インデクス削除ステップ>
図15は、データベース管理プログラム3430がインデクス定義の削除を行う場合の処理の手順を示すフローチャートである。まず、概念を説明すると、インデクス削除ステップでは、プロセッサ3410が、インデクスグループに所属するインデクスを削除する。つまり、このインデクス削除ステップでは、プロセッサ3410が、削除対象のインデクスが単一のインデクスグループに所属している場合にはインデクスを直接削除し、削除対象のインデクスが複数のインデクスグループに所属している場合には、インデクス自体を削除する代わりに、インデクスグループとインデクスの対応関係を削除する。
<Index deletion step>
FIG. 15 is a flowchart showing a processing procedure when the database management program 3430 deletes an index definition. First, the concept will be described. In the index deletion step, the processor 3410 deletes the index belonging to the index group. That is, in this index deletion step, the processor 3410 directly deletes the index when the deletion target index belongs to a single index group, and the deletion target index belongs to a plurality of index groups. In this case, instead of deleting the index itself, the correspondence relationship between the index group and the index is deleted.

具体的に説明すると、まず、本処理は、プロセッサ3410により定義要求受付部3431が実行されることによって、開始される。定義要求受付部3431は、端末3200などによって入力されたインデクス削除要求から、削除対象であるインデクスのインデクス名、及び、当該インデクスが所属するインデクスグループ名を取得する(ステップS1501)。   More specifically, first, this process is started by the processor 3410 executing the definition request receiving unit 3431. The definition request reception unit 3431 acquires the index name of the index to be deleted and the index group name to which the index belongs from the index deletion request input by the terminal 3200 or the like (step S1501).

次にプロセッサ3410は、ディクショナリ管理部3433を実行することによって、インデクス管理表3520を参照し、上記ステップS1501で取得したインデクス名に対応するインデクスIDを取得する。   Next, the processor 3410 refers to the index management table 3520 by executing the dictionary management unit 3433, and acquires the index ID corresponding to the index name acquired in step S1501.

同一インデクス名のインデクスが存在している可能性があるため、ディスクショナリ管理部3433は、さらに、インデクスグループ管理表3530を参照して、上記ステップS1401において取得したインデクスグループ名に対応するインデクスグループIDを取得する。   Since there is a possibility that an index with the same index name exists, the discretionary management unit 3433 further refers to the index group management table 3530 and refers to the index group corresponding to the index group name acquired in step S1401. Get an ID.

ディクショナリ管理部3433は、インデクス−インデクスグループ対応表3540を参照して、取得したインデクスIDとインデクスグループIDの対応が成立するインデクス−インデクスグループ情報を取得することで、削除対象のインデクスIDを特定する。   The dictionary management unit 3433 refers to the index-index group correspondence table 3540 and acquires the index-index group information in which the correspondence between the acquired index ID and the index group ID is established, thereby identifying the index ID to be deleted. .

その後、ディクショナリ管理部3433は、インデクス−インデクスグループ対応表3540を参照し、削除対象のインデクスIDに対応するインデクスグループIDを取得して、その数をカウントする(ステップS1502)。   Thereafter, the dictionary management unit 3433 refers to the index-index group correspondence table 3540, acquires the index group ID corresponding to the index ID to be deleted, and counts the number (step S1502).

次にディクショナリ管理部3433は、上記ステップS1502においてカウントしたインデクスグループIDの数が「1」よりも大きかった場合には、インデクス管理表3520から、ステップS1502で取得した削除対象のインデクスIDに対応するインデクス情報を削除する(ステップ1504)。   Next, when the number of index group IDs counted in step S1502 is larger than “1”, the dictionary management unit 3433 corresponds to the deletion target index ID acquired in step S1502 from the index management table 3520. The index information is deleted (step 1504).

その後、ディクショナリ管理部3433は、インデクス−インデクスグループ対応表3540から、インデクス削除要求で指定されたインデクスグループのインデクスグループIDと、削除対象のインデクスIDの対応を表すインデクス−インデクスグループ対応情報を探し、削除する(ステップS1505)。   Thereafter, the dictionary management unit 3433 searches the index-index group correspondence table 3540 for index-index group correspondence information indicating the correspondence between the index group ID of the index group specified in the index deletion request and the index ID to be deleted. It deletes (step S1505).

<ユーザアプリケーション−インデクスグループの対応付け変更>
図16は、ユーザアプリケーションとインデクスグループの対応付けを変更する際における手順を示す。まず、環境定義ファイル3510に、対応付けを変更する対象となるユーザアプリケーションとインデクスグループとの対応付け(以下、単に「対応付け」という)が記述されているかが確認される(ステップS1601)。このステップS1601において、環境定義ファイル3510に、当該対応付けが記述されていない場合は、環境定義ファイル3510に当該対応付けを指定する記述が新たに追加される(ステップS1602)。
<User application-index group association change>
FIG. 16 shows a procedure for changing the association between the user application and the index group. First, it is confirmed whether or not the environment definition file 3510 describes the association (hereinafter simply referred to as “association”) between the user application whose index is to be changed and the index group (step S1601). In step S1601, when the association is not described in the environment definition file 3510, a description for designating the association is newly added to the environment definition file 3510 (step S1602).

ステップS1601において、環境定義ファイルに当該対応付けが記述されている場合は、環境定義ファイル3510に記述されている、当該対応付けが変更される(ステップS1603)。このように当該対応付けを変更することによって、次のような使い方を行うことができる。   If the association is described in the environment definition file in step S1601, the association described in the environment definition file 3510 is changed (step S1603). By changing the association as described above, the following usage can be performed.

例えば、既にサービスを提供している第1のユーザアプリケーション1000の性能を改善する場合を考える。なお、第1のユーザアプリケーション1000は、第1のインデクスグループ1300を利用して動作しているアプリケーションである。まず、さらに問い合わせ結果を求める際の性能が最も良いアクセスパスを作成するためのインデクスを考えて、第2のインデクスグループ1400に対して、そのインデクスが定義される。次に、第2のインデクスグループ1400を利用してアクセスパスの確認及びテストが行われる。   For example, consider a case where the performance of the first user application 1000 that already provides a service is improved. Note that the first user application 1000 is an application that operates using the first index group 1300. First, considering an index for creating an access path with the best performance when obtaining a query result, the index is defined for the second index group 1400. Next, an access path is confirmed and tested using the second index group 1400.

問題がなければ、第1のユーザアプリケーション1000と対応付けられているインデクスグループが、第1のインデクスグループ1300から第2のインデクスグループ1400に変更される。このようにすると、既に第1のユーザアプリケーション1000が動作している環境においてインデクスを変更した場合にテストを行うことが可能である。さらに、このようにすると、このテストを行った際に作成したインデクスを再度定義し直す必要がなく、そのまま利用することが可能となる。   If there is no problem, the index group associated with the first user application 1000 is changed from the first index group 1300 to the second index group 1400. In this way, it is possible to perform a test when the index is changed in an environment where the first user application 1000 is already operating. Further, when this is done, it is not necessary to redefine the index created when this test is performed, and it can be used as it is.

<インデクスグループ複製ステップ>
図17は、インデクスグループの複製が作成される場合の処理の手順を示す。まず、概念を説明すると、インデクスグループ複製ステップでは、プロセッサ3410が、インデクスグループを複製するとともに、そのインデクスグループに所属しているインデクスとの対応関係も複製している。
<Index group replication step>
FIG. 17 shows a processing procedure when a copy of an index group is created. First, the concept will be described. In the index group duplication step, the processor 3410 duplicates the index group and also duplicates the correspondence relationship with the index belonging to the index group.

具体的に説明すると、本処理は、プロセッサ3410によって定義要求受付部3431が実行されることによって、開始される。定義要求受付部3431は、端末3200などによって入力されたインデクスグループ複製要求から、複製元であるインデクスグループ名及び複製先であるインデクスグループ名を取得して、保持する(ステップS1801)。次にプロセッサ3410は、ディクショナリ管理部3433を実行することによって、保持している複製先のインデクスグループ名をインデクスグループ管理表3530に登録する(ステップS1802)。   More specifically, this processing is started when the processor 3410 executes the definition request receiving unit 3431. The definition request reception unit 3431 acquires and holds the index group name that is the replication source and the index group name that is the replication destination from the index group replication request input by the terminal 3200 or the like (step S1801). Next, the processor 3410 executes the dictionary management unit 3433 to register the held copy destination index group name in the index group management table 3530 (step S1802).

ディクショナリ管理部3433は、インデクスグループ管理表3530を参照し、保持している複製元のインデクスグループ名に対応するインデクスグループIDを取得する。さらにディクショナリ管理部3433は、インデクス−インデクスグループ対応表3540を参照して、そのインデクスグループIDに対応するインデクス−インデクスグループ対応情報を取得する(ステップS1803)。   The dictionary management unit 3433 refers to the index group management table 3530 and acquires an index group ID corresponding to the index group name of the copy source that is held. Furthermore, the dictionary management unit 3433 refers to the index-index group correspondence table 3540, and acquires index-index group correspondence information corresponding to the index group ID (step S1803).

その後、ディクショナリ管理部3433は、上記ステップS1803で取得したインデクス−インデクスグループ対応情報のインデクスグループIDを、ステップS1802で登録したインデクスグループIDに変更する。さらにディクショナリ管理部3433は、変更後のインデクス−インデクスグループ対応情報を、新たにインデクス−インデクスグループ対応表3540に登録する(ステップS1804)。   Thereafter, the dictionary management unit 3433 changes the index group ID of the index-index group correspondence information acquired in step S1803 to the index group ID registered in step S1802. Furthermore, the dictionary management unit 3433 newly registers the index-index group correspondence information after the change in the index-index group correspondence table 3540 (step S1804).

図18は、インデクスグループを複製するためのインデクスグループ複製要求(SQL)の一例を示す。図示のインデクスグループ複製要求は、インデクスグループ名が「IDXGRP_A」であるインデクスグループ(第1のインデクスグループ1300に相当)を、「IDXGRP_NEW」という新しいインデクスグループに複製することを示している。   FIG. 18 shows an example of an index group duplication request (SQL) for duplicating an index group. The index group duplication request shown in the figure indicates that an index group whose index group name is “IDXGRP_A” (corresponding to the first index group 1300) is duplicated to a new index group “IDXGRP_NEW”.

上述した図17では、同一のデータベース管理プログラム3430において、インデクスグループを複製する場合を示した。しかしながら、インデクスグループを指定して、インデクス定義情報をファイルなどにエクスポートすることによって、別のデータベース管理システムに対して、インデクスグループの複製を作成することも可能である。   FIG. 17 described above shows a case where an index group is duplicated in the same database management program 3430. However, it is also possible to create a copy of the index group for another database management system by specifying the index group and exporting the index definition information to a file or the like.

このように当該インデクスグループを複製することによって、次のような使い方を行うことができる。   By duplicating the index group in this way, the following usage can be performed.

例えば、既にサービスを提供している第1のユーザアプリケーション1000の性能を改善する場合を考える。なお、第1のユーザアプリケーション1000は、第1のインデクスグループ1300を利用して動作しているアプリケーションである。まず、インデクスグループを複製して、第1のインデクスグループ1300と同じインデクスが所属する第2のインデクスグループ1400を作成する。次に、第2のインデクスグループ1400に対してインデクスの追加、変更又は削除を行うことで、性能を改善する。そして第2のインデクスグループ1400利用してアクセスパスの確認及びテストが行われる。問題がなければ、前述のユーザアプリケーション−インデクスグループの対応付け変更を利用して、第1のユーザアプリケーション1000と対応付けられているインデクスグループが、第1のインデクスグループ1300から第2のインデクスグループ1400に変更することで性能改善を行うことが可能となる。   For example, consider a case where the performance of the first user application 1000 that already provides a service is improved. Note that the first user application 1000 is an application that operates using the first index group 1300. First, the index group is duplicated to create a second index group 1400 to which the same index as the first index group 1300 belongs. Next, the performance is improved by adding, changing, or deleting an index to the second index group 1400. Then, using the second index group 1400, the access path is confirmed and tested. If there is no problem, the index group associated with the first user application 1000 is changed from the first index group 1300 to the second index group 1400 using the above-described user application-index group association change. It becomes possible to improve performance by changing to.

さらに、インデクス定義情報をファイルなどにエクスポートすることで、開発に利用しているデータベース管理システムから、実際にサービスを提供する、本番に利用しているデータベース管理システムにインデクスグループの移行を行うこと、又は、実際にサービスを提供する、本番に利用しているデータベース管理システムから、開発に利用しているデータベース管理システムにインデクスグループを移行を行うことが可能となる。   In addition, by exporting the index definition information to a file etc., the index group can be migrated from the database management system used for development to the database management system used for production that actually provides services. Alternatively, an index group can be migrated from a database management system that is actually used to provide services to a database management system that is used for development.

<アクセスパス実行ステップ>
アクセスパス実行ステップでは、プロセッサ3410が、アクセスパス実行部3435を実行することにより、上述のようなインデクスグループ作成ステップなどにおいて生成されたアクセスパスを実行することで、上記端末3200などからのDBアクセス要求に応じて表3550のデータを検索、変更、更新、登録又は削除などの操作を行う。
<Access path execution step>
In the access path execution step, the processor 3410 executes the access path execution unit 3435 to execute the access path generated in the index group creation step as described above, thereby allowing DB access from the terminal 3200 or the like. In response to the request, operations such as searching, changing, updating, registering or deleting the data in the table 3550 are performed.

(4)本実施の形態の効果など
以上説明したように、上記実施の形態においては、プロセッサ3410が、複数のインデクス1500をグループ化することによりインデクスグループ1300を作成するインデクスグループ作成ステップと、プロセッサ3410が、インデクスグループ1300の指定されたアクセス要求を受け付け、そのインデクスグループ1300に含まれるインデクスの中から問い合わせ結果を求める際の性能が最も良いと考えられるインデクスを選択し、そのインデクスを利用してアクセスパスを生成するアクセスパス作成ステップとを実行している。
(4) Effects of this embodiment As described above, in the above embodiment, the processor 3410 creates an index group 1300 by grouping a plurality of indexes 1500, and the processor. 3410 receives the specified access request of the index group 1300, selects an index considered to have the best performance when obtaining a query result from the indexes included in the index group 1300, and uses the index An access path creation step for generating an access path is executed.

上記実施の形態においては、データベース管理装置1200は、複数のインデクスをグループ化することによりインデクスグループ1300を作成するインデクスグループ管理部としてのディクショナリ管理部3433と、そのインデクスグループ1300の指定されたアクセス要求を受け付け、そのインデクスグループ1300に含まれるインデクスの中から問い合わせ結果を求める際の性能が最も良いと判断したインデクスを選択し、そのインデクスを利用してアクセスパスを生成するアクセスパス作成部とを有する。このアクセスパス作成部は、上記実施の形態におけるDBアクセス要求受付部3432、ディスクショナリ管理部3433及びアクセスパス生成部3434を含んでいる。   In the above embodiment, the database management device 1200 groups a plurality of indexes to create an index group 1300, and a dictionary management unit 3433 as an index group management unit, and a specified access request for the index group 1300 And an access path creation unit that selects an index determined to have the best performance when obtaining a query result from the indexes included in the index group 1300 and generates an access path using the index. . This access path creation unit includes the DB access request reception unit 3432, the discretionary management unit 3433, and the access path generation unit 3434 in the above embodiment.

このようにすると、あるユーザアプリケーション(例えば第1のユーザアプリケーション1000)からのインデクスの追加、変更又は削除といった操作がアクセスパスに対する影響の範囲を限定することができるため、他のアプリケーション(例えば第2のユーザアプリケーション1100)のアクセスパスに影響を与えないようにすることができる。このため、第2のユーザアプリケーション1100によるアクセス要求に対応するアクセスパスに影響を与えることなく、ユーザアプリケーションごとに問い合わせ結果を求める際の性能が最も良いアクセスパスを生成するためのインデクスを自由に追加、変更又は削除することができる。   In this way, an operation such as adding, changing, or deleting an index from a certain user application (for example, the first user application 1000) can limit the range of influence on the access path. The access path of the user application 1100) can be prevented from being affected. Therefore, an index for generating an access path with the best performance when obtaining a query result for each user application without affecting the access path corresponding to the access request by the second user application 1100 is freely added. , Can be changed or deleted.

本実施の形態においては、プロセッサ3410が、その生成されたアクセスパスを実行することで上記アクセス要求に応じて前記表のデータを操作する。   In the present embodiment, the processor 3410 operates the data in the table according to the access request by executing the generated access path.

このようにすると、新たな第2のユーザアプリケーション1100が追加された場合にも、第1のユーザアプリケーション1000の開発者が意図したとおり、即ち、特定のインデクスグループ1300に所属するインデクスのみを利用したアクセスパスを実行することで、インデクスの操作追加、変更又は削除に伴って、他方のアクセスパスに影響を与えず、実行性能が変化しないようにすることができる。   In this way, even when a new second user application 1100 is added, only the indexes belonging to the specific index group 1300 are used as intended by the developer of the first user application 1000. By executing the access path, it is possible to prevent the execution performance from changing without affecting the other access path with the addition, change or deletion of the index operation.

本実施の形態においては、プロセッサ3410が、インデクス自体をグループ化する代わりに、インデクスの定義情報をグループ化している。当該定義情報は、本実施の形態におけるインデクス定義情報1500に相当する。   In this embodiment, the processor 3410 groups index definition information instead of grouping the indexes themselves. The definition information corresponds to the index definition information 1500 in the present embodiment.

本実施の形態においては、プロセッサ3410が、インデクスグループ1300に所属するインデクスを利用して生成されたアクセスパスとともに前記インデクスグループ1300を含めて表示装置(図示せず)に表示している。   In the present embodiment, the processor 3410 displays the index group 1300 on the display device (not shown) together with the access path generated using the index belonging to the index group 1300.

本実施の形態においては、プロセッサ3410が、インデクスグループ1300に所属するインデクス1800を変更しようとした場合、そのインデクス1800が単一のインデクスグループ1300に所属しているときにはインデクス1800自体を直接変更する一方、そのインデクス1800が複数のインデクスグループ1300,1400に所属しているときには、インデクス1800を複製して同一名称を用いた新規な別のインデクス1900を作成し、さらに複数のインデクスグループ1300,1400のうち、別のインデクスが所属すべきインデクスグループ1300と当該別のインデクスとの対応関係を変更する。   In the present embodiment, when processor 3410 attempts to change index 1800 belonging to index group 1300, when index 1800 belongs to a single index group 1300, it directly changes index 1800 itself. When the index 1800 belongs to a plurality of index groups 1300 and 1400, the index 1800 is duplicated to create another new index 1900 using the same name, and among the plurality of index groups 1300 and 1400 Then, the correspondence relationship between the index group 1300 to which another index belongs and the other index is changed.

このようにすると、あるインデクスが複数のインデクスグループ1300,1400に所属する場合であっても、そのインデクスの変更が、他のインデクスグループ1400を利用している第2のユーザアプリケーション1100のアクセスパスに影響を与えないようにすることができる。   In this way, even if a certain index belongs to a plurality of index groups 1300 and 1400, the change of the index is made to the access path of the second user application 1100 that uses the other index group 1400. It can be made not to affect.

本実施の形態においては、プロセッサ3410が、インデクスグループ1300に所属するインデクスを削除しようとした場合、削除対象のインデクスが単一のインデクスグループ1300に所属しているときにはそのインデクスを直接削除し、削除対象のインデクスが複数のインデクスグループ1300,1400に所属しているときには、インデクス自体を削除する代わりに、インデクスグループ1300とインデクスの対応関係を削除する。   In this embodiment, when the processor 3410 tries to delete an index belonging to the index group 1300, if the index to be deleted belongs to a single index group 1300, the index is directly deleted and deleted. When the target index belongs to a plurality of index groups 1300 and 1400, the correspondence relationship between the index group 1300 and the index is deleted instead of deleting the index itself.

このようにすると、あるインデクスが複数のインデクスグループ1300に所属する場合であっても、そのインデクスの削除が、他のインデクスグループ1400を利用している第2のユーザアプリケーション1100のアクセスパスに影響を与えないようにすることができる。   In this way, even if a certain index belongs to a plurality of index groups 1300, the deletion of the index affects the access path of the second user application 1100 that uses another index group 1400. You can avoid giving.

本実施の形態においては、上記インデクスグループ作成ステップでは、プロセッサ3410が、インデクスグループ1300を定義するためのインデクスグループ定義要求を受け付けてインデクスグループ1300を作成する一方、そのインデクスグループ1300に対してインデクスを定義するためのインデクス定義要求を受け付けてインデクスグループ1300にインデクスを定義している。   In the present embodiment, in the index group creation step, the processor 3410 accepts an index group definition request for defining the index group 1300 and creates the index group 1300, while creating an index for the index group 1300. An index definition request for definition is received and an index is defined in the index group 1300.

本実施の形態においては、プロセッサ3410が、インデクスグループ1300などとインデクスとの対応関係を定義する対応関係定義ステップを実行している。本実施の形態においては、当該対応関係の定義は、インデクス−インデクスグループ対応表3540又は環境定義ファイル3510によって管理されている。   In this embodiment, the processor 3410 executes a correspondence definition step for defining the correspondence between the index group 1300 and the like and the index. In the present embodiment, the definition of the correspondence relationship is managed by the index-index group correspondence table 3540 or the environment definition file 3510.

このようにすると、ユーザアプリケーションのアクセスパスを変更するために、あるインデクスグループ1300に所属しているインデクスの追加、削除又は変更を繰り返すことなく、所属すべきインデクスグループ1300を変更するだけで、そのようなインデクスの追加などを行わずにアクセスパスを変更することができる。   In this way, in order to change the access path of the user application, only by changing the index group 1300 to which the user application belongs without repeating the addition, deletion or change of the index belonging to a certain index group 1300. The access path can be changed without adding such an index.

本実施の形態においては、プロセッサ3410が、インデクスグループ1300を複製するとともに、当該インデクスグループ1300に所属しているインデクスとの対応関係も複製している。   In the present embodiment, the processor 3410 duplicates the index group 1300 and also duplicates the correspondence relationship with the index belonging to the index group 1300.

このようにすると、ユーザアプリケーションのアクセスパスを複製して、性能改善の試行などを行うことができる。   In this way, it is possible to duplicate the access path of the user application and perform a performance improvement trial.

また、本実施の形態においては、上記データベース管理装置1200が、上記インデクスグループ管理部として、複数のインデクスをグループ化することによりインデクスグループ1300を定義する一方、このインデクスグループ1300に所属させるべきインデクスを定義するディスクショナリ管理部3433を備えている。また、データベース管理装置1200は、上記アクセスパス作成部として、そのアクセス要求を受け付けるDBアクセス要求受付部3432と、当該DBアクセス要求受付部3432によって受け付けられたアクセス要求に基づいて、上記インデクスグループ1300に含まれるインデクスの中から問い合わせ結果を求める際の性能が最も良いと判断したインデクスを選択するインデクス選択部としてのディクショナリ管理部3433と、当該ディクショナリ管理部3433によって選択された問い合わせ結果を求める際の性能が最も良いと判断したインデクスを利用してアクセスパスを生成するアクセスパス生成部3434を有する。   In the present embodiment, the database management device 1200 defines the index group 1300 by grouping a plurality of indexes as the index group management unit, while the index to be assigned to the index group 1300 is determined. A definition management unit 3433 to be defined is provided. Further, the database management apparatus 1200 serves as the access path creation unit, the DB access request reception unit 3432 that receives the access request, and the index group 1300 based on the access request received by the DB access request reception unit 3432. A dictionary management unit 3433 as an index selection unit that selects an index that has been determined to have the best performance in obtaining a query result from the included indexes, and a performance in obtaining a query result selected by the dictionary management unit 3433 The access path generating unit 3434 generates an access path using the index determined to be the best.

(5)その他の実施形態
上記実施形態は、本発明を説明するための例示であり、本発明をこれらの実施形態にのみ限定する趣旨ではない。本発明は、その趣旨を逸脱しない限り、様々な形態で実施することができる。例えば、上記実施形態では、各種プログラムの処理をシーケンシャルに説明したが、特にこれにこだわるものではない。従って、処理結果に矛盾が生じない限り、処理の順序を入れ替え又は並行動作するように構成しても良い。
(5) Other Embodiments The above embodiment is an example for explaining the present invention, and is not intended to limit the present invention only to these embodiments. The present invention can be implemented in various forms without departing from the spirit of the present invention. For example, in the above-described embodiment, the processing of various programs is described sequentially, but this is not particularly concerned. Therefore, as long as there is no contradiction in the processing result, the processing order may be changed or the operation may be performed in parallel.

Claims (3)

メモリを有し、少なくとも1つの表を有するデータベースに対する複数のユーザアプリケーションからのアクセス要求に応じて前記表に設定された複数のインデクスの中からインデクスを選択して生成されたアクセスパスに従って前記表のデータを操作するデータベース管理装置におけるデータベース管理方法において、
前記データベース管理装置は、
複数の第1の定義要求に基づいて、定義対象であるインデクスグループのインデクスグループ名を取得し、前記取得されたインデクスグループ名に対応させて前記インデクスグループをインデクスグループ管理表に登録して新たな複数のインデクスグループを作成
第2の定義要求に基づいて、定義対象であるインデクスと、前記定義対象であるインデクスに含まれる列が所属している表の表名と、前記定義対象であるインデクスに含まれる列の列名とを含む第1のインデクス情報、並びに、前記インデクスを所属させるべきインデクスグループのインデクスグループ名を取得して前記メモリに保持するとともに、前記定義対象であるインデクスごとに前記第1のインデクス情報をインデクス管理表に登録し、
前記インデクスグループ管理表を参照して前記メモリに保持されているインデクスグループ名に対応するインデクスグループを取得し、前記取得されたインデクスグループと、前記取得されたインデクスグループに所属されるべき少なくとも1つのインデクスとを関連付けてインデクス−インデクスグループ対応表に登録しておくことにより、各前記インデクスグループに、各前記インデクスグループに対応する各前記ユーザアプリケーションを実行するときに問合せ結果を求める際の性能が最も良いと判断される少なくとも1つのインデクスを所属させ、
前記複数のユーザアプリケーションのいずれかからインデクスグループの指定されたアクセス要求を受け付け、前記第1の定義要求を発行したユーザアプリケーションに関連付けられているインデクスグループ名を管理するための関連付け管理ファイルに基づいて、前記アクセス要求を受け付けたユーザアプリケーションに関連付けられている特定のインデクスグループ名を取得し、
前記インデクスグループ管理表を参照して前記取得された特定のインデクスグループ名に対応する特定のインデクスグループを取得するとともに、前記インデクス−インデクスグループ対応表に基づいて前記取得された特定のインデクスグループに対応する特定のインデクスに関する第1のインデクス情報を取得して前記メモリに保持し、前記メモリに保持された第1のインデクス情報と、前記アクセス要求から取得された表名及び列名を含む第2のインデクス情報とを照らし合わせた結果に応じて、アクセスする際に利用するのに適したインデクスを決定し、前記決定されたインデクスを利用しアクセスパスを生成する
ことを特徴とするデータベース管理方法。
A memory, the table in accordance with the access path in response to the access request, generated by selecting an index from a plurality of indexes set in the table from a plurality of user applications to a database having at least one table In the database management method in the database management device that operates the data of
The database management device includes:
Based on the plurality of first definition requests, the index group name of the index group to be defined is acquired, and the index group is registered in the index group management table in correspondence with the acquired index group name to create a new one. create a multiple of the index group,
Based on the second definition request, the definition target index, the table name of the table to which the column included in the definition target index belongs, and the column name of the column included in the definition target index And the index group name of the index group to which the index should belong and is stored in the memory, and the first index information is indexed for each index to be defined Register in the management table,
The index group corresponding to the index group name held in the memory is acquired with reference to the index group management table, and the acquired index group and at least one of the acquired index groups to belong to By associating the index with each other and registering it in the index-index group correspondence table, the performance when obtaining the query result when executing each user application corresponding to each index group is the highest in each index group. At least one index that is considered good
Based on an association management file for managing an index group name associated with the user application that has issued the first definition request by accepting an access request designated for an index group from any of the plurality of user applications , Obtain a specific index group name associated with the user application that received the access request,
A specific index group corresponding to the acquired specific index group name is acquired with reference to the index group management table, and the specific index group is acquired based on the index-index group correspondence table. The first index information related to the specific index to be acquired is stored in the memory, and the first index information stored in the memory, and the second name including the table name and the column name acquired from the access request depending on the result of against the index information, and determines the index suitable for use when accessing the database management method characterized by generating an access path by using the determined index.
メモリを有し、少なくとも1つの表を有するデータベースに対する複数のユーザアプリケーションからのアクセス要求に応じて、前記表に設定された複数のインデクスの中からインデクスを選択して生成されたアクセスパスに従って前記表のデータを操作するデータベース管理装置において、
複数の第1の定義要求に基づいて、定義対象であるインデクスグループのインデクスグループ名を取得し、前記取得されたインデクスグループ名に対応させて前記インデクスグループをインデクスグループ管理表に登録して新たな複数のインデクスグループを作成
第2の定義要求に基づいて、定義対象であるインデクスと、前記定義対象であるインデクスに含まれる列が所属している表の表名と、前記定義対象であるインデクスに含まれる列の列名とを含む第1のインデクス情報、並びに、前記インデクスを所属させるべきインデクスグループのインデクスグループ名を取得して前記メモリに保持するとともに、前記定義対象であるインデクスごとに前記第1のインデクス情報をインデクス管理表に登録し、
前記インデクスグループ管理表を参照して前記メモリに保持されているインデクスグループ名に対応するインデクスグループを取得し、前記取得されたインデクスグループと、前記取得されたインデクスグループに所属されるべき少なくとも1つのインデクスとを関連付けてインデクス−インデクスグループ対応表に登録しておくことにより、各前記インデクスグループに、各前記インデクスグループに対応する各前記ユーザアプリケーションを実行するときに問合せ結果を求める際の性能が最も良いと判断される少なくとも1つのインデクスを所属させ、
前記複数のユーザアプリケーションのいずれかからインデクスグループの指定されたアクセス要求を受け付け、前記第1の定義要求を発行したユーザアプリケーションに関連付けられているインデクスグループ名を管理するための関連付け管理ファイルに基づいて、前記アクセス要求を受け付けたユーザアプリケーションに関連付けられている特定のインデクスグループ名を取得し、
前記インデクスグループ管理表を参照して前記取得された特定のインデクスグループ名に対応する特定のインデクスグループを取得するとともに、前記インデクス−インデクスグループ対応表に基づいて前記取得された特定のインデクスグループに対応する特定のインデクスに関する第1のインデクス情報を取得して前記メモリに保持し、前記メモリに保持された第1のインデクス情報と、前記アクセス要求から取得された表名及び列名を含む第2のインデクス情報とを照らし合わせた結果に応じて、アクセスする際に利用するのに適したインデクスを決定し、前記決定されたインデクスを利用しアクセスパスを生成する
ことを特徴とするデータベース管理装置。
In response to an access request from a plurality of user applications for a database having a memory and having at least one table, the table is selected according to an access path generated by selecting an index from the plurality of indexes set in the table. In the database management device that operates the data of
Based on the plurality of first definition requests, the index group name of the index group to be defined is acquired, and the index group is registered in the index group management table in correspondence with the acquired index group name to create a new one. create a multiple of the index group,
Based on the second definition request, the definition target index, the table name of the table to which the column included in the definition target index belongs, and the column name of the column included in the definition target index And the index group name of the index group to which the index should belong and is stored in the memory, and the first index information is indexed for each index to be defined Register in the management table,
The index group corresponding to the index group name held in the memory is acquired with reference to the index group management table, and the acquired index group and at least one of the acquired index groups to belong to By associating the index with each other and registering it in the index-index group correspondence table, the performance when obtaining the query result when executing each user application corresponding to each index group is the highest in each index group. At least one index that is considered good
Based on an association management file for managing an index group name associated with the user application that has issued the first definition request by accepting an access request designated for an index group from any of the plurality of user applications , Obtain a specific index group name associated with the user application that received the access request,
A specific index group corresponding to the acquired specific index group name is acquired with reference to the index group management table, and the specific index group is acquired based on the index-index group correspondence table. The first index information related to the specific index to be acquired is stored in the memory, and the first index information stored in the memory, and the second name including the table name and the column name acquired from the access request A database management apparatus , wherein an index suitable for use in access is determined according to a result of collating with index information, and an access path is generated using the determined index.
メモリを有するデータベース管理装置に、少なくとも1つの表を有するデータベースに対する複数のユーザアプリケーションからのアクセス要求に応じて前記表に設定された複数のインデクスの中からインデクスを選択して生成されたアクセスパスに従って前記表のデータを操作させるデータベース管理プログラムにおいて、
前記データベース管理装置に、
複数の第1の定義要求に基づいて、定義対象であるインデクスグループのインデクスグループ名を取得し、前記取得されたインデクスグループ名に対応させて前記インデクスグループをインデクスグループ管理表に登録して新たな複数のインデクスグループを作成させ
第2の定義要求に基づいて、定義対象であるインデクスと、前記定義対象であるインデクスに含まれる列が所属している表の表名と、前記定義対象であるインデクスに含まれる列の列名とを含む第1のインデクス情報、並びに、前記インデクスを所属させるべきインデクスグループのインデクスグループ名を取得して前記メモリに保持させるとともに、前記定義対象であるインデクスごとに前記第1のインデクス情報をインデクス管理表に登録させ、
前記インデクスグループ管理表を参照して前記メモリに保持されているインデクスグループ名に対応するインデクスグループを取得させ、前記取得されたインデクスグループと、前記取得されたインデクスグループに所属されるべき少なくとも1つのインデクスとを関連付けてインデクス−インデクスグループ対応表に登録させておくことにより、各前記インデクスグループに、各前記インデクスグループに対応する各前記ユーザアプリケーションを実行するときに問合せ結果を求める際の性能が最も良いと判断される少なくとも1つのインデクスを所属させ、
前記複数のユーザアプリケーションのいずれかからインデクスグループの指定されたアクセス要求を受け付け、前記第1の定義要求を発行したユーザアプリケーションに関連付けられているインデクスグループ名を管理するための関連付け管理ファイルに基づいて、前記アクセス要求を受け付けたユーザアプリケーションに関連付けられている特定のインデクスグループ名を取得させ、
前記インデクスグループ管理表を参照して前記取得された特定のインデクスグループ名に対応する特定のインデクスグループを取得させるとともに、前記インデクス−インデクスグループ対応表に基づいて前記取得された特定のインデクスグループに対応する特定のインデクスに関する第1のインデクス情報を取得して前記メモリに保持させ、前記メモリに保持された第1のインデクス情報と、前記アクセス要求から取得された表名及び列名を含む第2のインデクス情報とを照らし合わせた結果に応じて、アクセスする際に利用するのに適したインデクスを決定させ、前記決定されたインデクスを利用しアクセスパスを生成させる
ことを特徴とするデータベース管理プログラム。
The database management device having a memory, at least one table in response to access requests from a plurality of user applications to a database with access paths generated by selecting an index from a plurality of indexes set in the table In the database management program that operates the data of the table according to
In the database management device,
Based on the plurality of first definition requests, the index group name of the index group to be defined is acquired, and the index group is registered in the index group management table in correspondence with the acquired index group name to create a new one. to create a multiple of the index group,
Based on the second definition request, the definition target index, the table name of the table to which the column included in the definition target index belongs, and the column name of the column included in the definition target index And the index group name of the index group to which the index should belong and is stored in the memory, and the first index information is indexed for each index to be defined Register it in the management table,
An index group corresponding to the index group name held in the memory is acquired with reference to the index group management table, and the acquired index group and at least one of the acquired index groups should belong to the index group By associating the index with each other and registering it in the index-index group correspondence table, the performance when obtaining the query result when executing each user application corresponding to each index group in each index group is the highest. At least one index that is considered good
Based on an association management file for managing an index group name associated with the user application that has issued the first definition request by accepting an access request designated for an index group from any of the plurality of user applications , To obtain a specific index group name associated with the user application that received the access request,
A specific index group corresponding to the acquired specific index group name is acquired with reference to the index group management table, and the specific index group is acquired based on the index-index group correspondence table. The first index information related to the specific index to be acquired is stored in the memory, and the first index information stored in the memory and the second name including the table name and the column name acquired from the access request A database management program characterized by causing an index suitable for use in access to be determined according to a result of collating with index information and generating an access path using the determined index.
JP2009259699A 2009-11-13 2009-11-13 Database management method, database management apparatus, and database management program Expired - Fee Related JP5061173B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009259699A JP5061173B2 (en) 2009-11-13 2009-11-13 Database management method, database management apparatus, and database management program
PCT/JP2010/001528 WO2011058666A1 (en) 2009-11-13 2010-03-04 Database management method, database management device, and database management program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009259699A JP5061173B2 (en) 2009-11-13 2009-11-13 Database management method, database management apparatus, and database management program

Publications (2)

Publication Number Publication Date
JP2011107814A JP2011107814A (en) 2011-06-02
JP5061173B2 true JP5061173B2 (en) 2012-10-31

Family

ID=43991345

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009259699A Expired - Fee Related JP5061173B2 (en) 2009-11-13 2009-11-13 Database management method, database management apparatus, and database management program

Country Status (2)

Country Link
JP (1) JP5061173B2 (en)
WO (1) WO2011058666A1 (en)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0934759A (en) * 1995-07-21 1997-02-07 Omron Corp Device and method for preparing tuning information
US6785684B2 (en) * 2001-03-27 2004-08-31 International Business Machines Corporation Apparatus and method for determining clustering factor in a database using block level sampling
JP2004030294A (en) * 2002-06-26 2004-01-29 Ricoh Co Ltd Device for retrieving database and recording medium
US20050210023A1 (en) * 2004-03-18 2005-09-22 Renato Barrera Query optimizer using implied predicates
JP2007122405A (en) * 2005-10-28 2007-05-17 Hitachi Ltd Performance tuning system for database management system
JP4439497B2 (en) * 2006-07-18 2010-03-24 株式会社東芝 Search processing apparatus and program
JP5068062B2 (en) * 2006-10-30 2012-11-07 インターナショナル・ビジネス・マシーンズ・コーポレーション System, method, and program for integrating databases

Also Published As

Publication number Publication date
JP2011107814A (en) 2011-06-02
WO2011058666A1 (en) 2011-05-19

Similar Documents

Publication Publication Date Title
CN107402988B (en) Distributed NewSQL database system and semi-structured data query method
US7606793B2 (en) System and method for scoping searches using index keys
US20190121819A1 (en) Relational modeler and renderer for non-relational data
US8612468B2 (en) System and method for retrieving data from a relational database management system
US20180165316A1 (en) Managing data with flexible schema
US8015165B2 (en) Efficient path-based operations while searching across versions in a repository
US8443002B2 (en) Operationally complete hierarchical repository in a relational database
US9684699B2 (en) System to convert semantic layer metadata to support database conversion
US20070156687A1 (en) Efficient implementation of multiple work areas in a file system like repository that supports file versioning
US11216516B2 (en) Method and system for scalable search using microservice and cloud based search with records indexes
US20070198545A1 (en) Efficient processing of path related operations on data organized hierarchically in an RDBMS
US7543004B2 (en) Efficient support for workspace-local queries in a repository that supports file versioning
Schreiner et al. Bringing SQL databases to key-based NoSQL databases: a canonical approach
Weintraub et al. Needle in a haystack queries in cloud data lakes.
EP3913497B1 (en) Data imprint techniques for use with data retrieval methods
de Souza Baptista et al. NoSQL geographic databases: an overview
CN104408084A (en) Method and device for screening big data
EP4290393A1 (en) Consolidation spaces providing access to multiple instances of application content
D’silva et al. Secondary indexing techniques for key-value stores: Two rings to rule them all
US6275822B1 (en) Maintaining very large indexes supporting efficient relational querying
US20230418803A1 (en) Techniques for integrating data for multple instances of a data artifact
JP5061173B2 (en) Database management method, database management apparatus, and database management program
US10198249B1 (en) Accessing schema-free databases
JP2016062522A (en) Database management system, database system, database management method, and database management program
Chaalal et al. T-plotter: A new data structure to reconcile OLAP and OLTP models

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120424

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120625

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

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120806

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

Free format text: PAYMENT UNTIL: 20150810

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees