Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP6239407B2 - Database system - Google Patents
[go: Go Back, main page]

JP6239407B2 - Database system - Google Patents

Database system Download PDF

Info

Publication number
JP6239407B2
JP6239407B2 JP2014043636A JP2014043636A JP6239407B2 JP 6239407 B2 JP6239407 B2 JP 6239407B2 JP 2014043636 A JP2014043636 A JP 2014043636A JP 2014043636 A JP2014043636 A JP 2014043636A JP 6239407 B2 JP6239407 B2 JP 6239407B2
Authority
JP
Japan
Prior art keywords
update
data
value
key
tables
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.)
Active
Application number
JP2014043636A
Other languages
Japanese (ja)
Other versions
JP2015170076A (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.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2014043636A priority Critical patent/JP6239407B2/en
Publication of JP2015170076A publication Critical patent/JP2015170076A/en
Application granted granted Critical
Publication of JP6239407B2 publication Critical patent/JP6239407B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明の実施形態は、データベースシステムに関する。   Embodiments described herein relate generally to a database system.

リレーショナル型データベースは、表形式で管理されるデータ(テーブル)を、SQL(Structured query language)を使って操作するデータベースである。リレーショナル型データベースは、SQLで結合条件を指定することにより、複数のテーブルを動的に関連付けることができる。   A relational database is a database that operates data (tables) managed in a tabular format using SQL (Structured query language). A relational database can dynamically associate a plurality of tables by specifying a join condition in SQL.

複数のテーブルを関連付ける処理(結合:JOIN)は、条件によっては、その負荷が非常に大きくなるため、このような条件に備えて、複数のテーブルを結合したキャッシュテーブルを予め用意しておくといったことも行われている。   The process of associating multiple tables (join: JOIN) can be very heavy depending on the conditions. For this reason, a cache table that combines multiple tables is prepared in advance. Has also been done.

特開2006−343798号公報JP 2006-343798 A

キャッシュテーブルの基となるテーブルが更新された場合の対処法には、同期型と、非同期型とが存在する。同期型では、テーブルの更新時に、キャッシュテーブルを即応的に更新する。一方、非同期型では、一定期間毎に、各期間の更新分を一括して更新する。   There are a synchronous type and an asynchronous type as a countermeasure when the table that is the basis of the cache table is updated. In the synchronous type, the cache table is updated immediately when the table is updated. On the other hand, in the asynchronous type, the update for each period is updated in a lump for every fixed period.

しかしながら、同期型は、更新時間の増大を招くおそれがあり、一方、非同期型は、更新前の古いデータが参照されるおそれがある。   However, the synchronous type may increase the update time, while the asynchronous type may refer to old data before update.

本発明が解決しようとする課題は、キャッシュテーブルを効率的に更新するデータベースシステムを提供することにある。   An object of the present invention is to provide a database system that efficiently updates a cache table.

実施形態によれば、データベースシステムは、2以上の第1テーブルおよび前記2以上の第1テーブルを事前に参照要求に適するように変形をした第2テーブルを用いて、データの参照要求に応答する。データベースシステムは、第1管理手段と、第2管理手段とを具備する。前記第1管理手段は、前記2以上の第1テーブルを管理する。前記第2管理手段は、前記第2テーブルを管理する。前記第2テーブルは、前記参照要求に適するように、前記2以上の第1テーブルを結合して生成されるものであって、前記2以上の第1テーブルのデータが結合されたデータセット毎に、前記2以上の第1テーブルの主キー値を格納する2以上のキーフィールドと、データセットが有効か否かを示す値を格納する第1フラグとを有する。前記第1管理手段は、通知手段を具備する。前記通知手段は、前記2以上の第1テーブルのデータが更新された場合、その更新内容を示す更新通知を前記第2管理手段に送信する。前記第2管理手段は、無効化手段と、更新手段とを具備する。前記無効化手段は、前記更新通知を受信した場合、前記更新通知で示される更新内容に該当する前記第2テーブルのデータを無効化する。前記更新手段は、前記2以上の第1テーブルのデータの参照要求を受けた場合であって、そのデータの参照要求に応答するために必要な前記第2テーブルのデータが無効化されている場合、そのデータを前記2以上の第1テーブルから取得して前記第2テーブルに格納する。前記無効化手段は、前記更新通知で示される更新内容が前記2以上の第1テーブルの結合に関わるキー値以外かつ前記2以上の第1テーブルの主キー値以外の更新である場合、該当するデータセットに対応する前記第1フラグの値を無効を示す値に更新し、前記更新通知で示される更新内容が前記2以上の第1テーブルの結合に関わるキー値または前記2以上の第1テーブルの主キー値の更新である場合、該当するデータセットに対応する前記2以上のキーフィールドの中の更新対象となった第1テーブルの主キー値を格納するキーフィールド以外のキーフィールドの値と、前記第1フラグの値とを無効を示す値に更新する。 According to an embodiment, the database system uses a second table in which the deformation of two or more of the first table and the two or more first table to suit the reference request in advance, in response to a data reference request . The database system includes first management means and second management means. The first management means manages the two or more first tables. The second management means manages the second table. The second table is generated by combining the two or more first tables so as to be suitable for the reference request, and for each data set in which the data of the two or more first tables are combined. , Two or more key fields that store primary key values of the two or more first tables, and a first flag that stores a value indicating whether or not the data set is valid. The first management means includes notification means. When the data in the two or more first tables is updated, the notification unit transmits an update notification indicating the update contents to the second management unit. The second management means includes invalidation means and update means. The invalidation means invalidates the data in the second table corresponding to the update content indicated by the update notification when the update notification is received. The update means receives a reference request for data of the two or more first tables, and the data of the second table necessary for responding to the reference request for the data is invalidated The data is acquired from the two or more first tables and stored in the second table. The invalidation means is applicable when the update content indicated by the update notification is an update other than the key value related to the combination of the two or more first tables and other than the primary key value of the two or more first tables. The value of the first flag corresponding to the data set is updated to a value indicating invalidity, and the update content indicated by the update notification is a key value related to the combination of the two or more first tables or the two or more first tables. The primary key value of the first table, the key field value other than the key field storing the primary key value of the first table that is the update target in the two or more key fields corresponding to the corresponding data set; The value of the first flag is updated to a value indicating invalidity.

第1実施形態のデータベースシステムのシステム構成を示す図。The figure which shows the system configuration | structure of the database system of 1st Embodiment. 更新用テーブルから参照用テーブルを生成する一例を示す図。The figure which shows an example which produces | generates the table for a reference from the table for an update. 更新用テーブルが更新された場合に同期的に参照用テーブルを更新する一般的な例を示す図。The figure which shows the general example which updates the table for a reference synchronously when the table for an update is updated. 更新用テーブルが更新された場合に非同期的に参照用テーブルを更新する一般的な例を示す図。The figure which shows the general example which updates the table for a reference asynchronously when the table for an update is updated. 更新用テーブルが更新された場合の参照用テーブルの更新についての一般的な考え方を説明するための図。The figure for demonstrating the general view about the update of the reference table when the table for an update is updated. 第1実施形態のデータベースシステムにおける更新用テーブルが更新された場合の参照用テーブルの更新についての基本的な考え方を説明するための図。The figure for demonstrating the basic view about the update of the reference table when the update table in the database system of 1st Embodiment is updated. 更新用テーブルが局所的に頻繁に更新された場合の一例を示す図。The figure which shows an example when the table for an update is frequently updated locally. 「更新側主導」における更新用テーブルの更新に伴う参照用テーブルの更新に関する処理の流れを示す図。The figure which shows the flow of a process regarding the update of the table for a reference accompanying the update of the table for an update in "update side initiative". 「更新側主導」の場合に更新用テーブルの更新時に必要となる計算を説明するための第1の図。The 1st figure for demonstrating the calculation required at the time of the update of the table for an update in the case of "update side initiative". 「更新側主導」の場合に更新用テーブルの更新時に必要となる計算を説明するための第2の図。The 2nd figure for demonstrating the calculation required at the time of the update table update in the case of "update side initiative". 「参照側主導」における更新用テーブルの更新に伴う参照用テーブルの更新に関する処理の流れを示す図。The figure which shows the flow of a process regarding the update of the reference table accompanying the update of the update table in "reference side initiative". 更新用テーブルが局所的に更新された場合の参照用テーブルの更新に関する処理の流れを「更新側主導」と「参照側主導」とで比較する図。The figure which compares the flow of a process regarding the update of the reference table when the update table is updated locally by "update side initiative" and "reference side initiative." 第1実施形態のデータベースシステムにおける参照用テーブルの一構成例を示す図。The figure which shows the example of 1 structure of the table for a reference in the database system of 1st Embodiment. 「更新側主導」における典型的な参照用テーブルの一構成例を示す図。The figure which shows one structural example of the typical reference table in "update side initiative." 「更新側主導」おいて図14の参照用テーブルを更新用テーブルの更新に伴って更新する手順を説明するための図。The figure for demonstrating the procedure which updates the reference table of FIG. 14 with the update of the table for an update in "update side initiative". 第1実施形態のデータベースシステムの参照用テーブルの更新に関する機能ブロック図。The functional block diagram regarding the update of the reference table of the database system of 1st Embodiment. 第1実施形態のデータベースシステムで実行される参照用テーブルの生成を要求するクエリの解析を説明するための図。The figure for demonstrating the analysis of the query which requests | requires the production | generation of the reference table performed with the database system of 1st Embodiment. 第1実施形態のデータベースシステムによる参照用テーブルの「参照側主導」での更新手順を説明するための第1の図。The 1st figure for demonstrating the update procedure by the "reference side initiative" of the reference table by the database system of 1st Embodiment. 第1実施形態のデータベースシステムによる参照用テーブルの「参照側主導」での更新手順を説明するための第2の図。The 2nd figure for demonstrating the update procedure by the "reference side initiative" of the table for a reference by the database system of 1st Embodiment. 第1実施形態のデータベースシステムによる参照用テーブルの「参照側主導」での更新手順を説明するための第3の図。The 3rd figure for demonstrating the update procedure by the "reference side initiative" of the reference table by the database system of 1st Embodiment. 第1実施形態のデータベースシステムによる参照用テーブルの「参照側主導」での更新手順を説明するための第4の図。FIG. 14 is a fourth diagram for explaining an update procedure of “reference side initiative” of the reference table by the database system of the first embodiment. 第1実施形態のデータベースシステムによる参照用テーブルの「参照側主導」での更新手順を説明するための第5の図。The 5th figure for demonstrating the update procedure by the "reference side initiative" of the reference table by the database system of 1st Embodiment. 第1実施形態のデータベースシステムによる参照用テーブルの「参照側主導」での更新手順を説明するための第6の図。The 6th figure for demonstrating the update procedure by the "reference side initiative" of the reference table by the database system of 1st Embodiment. 第1実施形態のデータベースシステムによる参照用テーブルの「参照側主導」での更新手順を説明するための第7の図。The 7th figure for demonstrating the update procedure by the "reference side initiative" of the reference table by the database system of 1st Embodiment. 第1実施形態のデータベースシステムによる参照用テーブルの「参照側主導」での更新手順を説明するための第8の図。The 8th figure for demonstrating the update procedure by the "reference side initiative" of the table for a reference by the database system of 1st Embodiment. 第1実施形態のデータベースシステムにおける更新側データベースエンジンの参照用テーブルの生成時の動作手順を示す図。The figure which shows the operation | movement procedure at the time of the production | generation of the reference table of the update side database engine in the database system of 1st Embodiment. 第1実施形態のデータベースシステムにおける参照側データベースエンジンの参照用テーブルの生成時の動作手順を示す図。The figure which shows the operation | movement procedure at the time of the production | generation of the reference table of the reference side database engine in the database system of 1st Embodiment. 第1実施形態のデータベースシステムにおける更新側データベースエンジンの更新用テーブルの更新時の動作手順を示す図。The figure which shows the operation | movement procedure at the time of the update of the update table of the update side database engine in the database system of 1st Embodiment. 第1実施形態のデータベースシステムにおける参照側データベースエンジンの更新用テーブルの更新時および参照要求の受け付け時の動作手順を示す図。The figure which shows the operation | movement procedure at the time of the update of the update table of the reference side database engine in the database system of 1st Embodiment, and the reception of a reference request. 更新用テーブルの更新に伴う参照用テーブルの更新を「更新側主導」で行った場合と「参照側主導」で行った場合との処理量を比較する図。The figure which compares the processing amount with the case where the update of the reference table accompanying the update of the table for an update is performed by "update side initiative" and the case where it performs by "reference side initiative". 更新用テーブルの更新に伴う参照用テーブルの更新を「更新側主導」で行った場合と「参照側主導」で行った場合との所要時間を比較する図。The figure which compares the time required when the update of the reference table accompanying the update of the update table is performed by “update side initiative” and “reference side initiative”. 第2実施形態のデータベースシステムにおける参照用テーブルの一構成例を示す図。The figure which shows the example of 1 structure of the table for a reference in the database system of 2nd Embodiment. 第2実施形態のデータベースシステムによる参照用テーブルの「参照側主導」での更新手順を説明するための第1の図。The 1st figure for demonstrating the update procedure by the "reference side initiative" of the reference table by the database system of 2nd Embodiment. 第2実施形態のデータベースシステムによる参照用テーブルの「参照側主導」での更新手順を説明するための第2の図。The 2nd figure for demonstrating the update procedure by the "reference side initiative" of the reference table by the database system of 2nd Embodiment. 第3実施形態のデータベースシステムにおける参照用テーブルの一構成例を示す図。The figure which shows the example of 1 structure of the table for a reference in the database system of 3rd Embodiment.

以下、実施の形態について図面を参照して説明する。   Hereinafter, embodiments will be described with reference to the drawings.

(第1実施形態)
図1は、本実施形態に係るデータベースシステム1のシステム構成を示す図である。
(First embodiment)
FIG. 1 is a diagram showing a system configuration of a database system 1 according to the present embodiment.

図1に示すように、本データベースシステム1は、各々がアプリケーションプログラム2からのデータ処理要求を受け付ける1以上のデータベース10によって構成される。ここでは、2つのデータベース10を示しているが、単なる例示であって、これに限定されるものではない。つまり、本データベースシステム1は、1つのデータベース10によっても構成され得るし、3つ以上のデータベース10によっても構成され得る。   As shown in FIG. 1, the database system 1 includes one or more databases 10 each accepting a data processing request from the application program 2. Here, although two databases 10 are shown, it is only an example and the present invention is not limited to this. That is, the database system 1 can be constituted by one database 10 or can be constituted by three or more databases 10.

データベース10は、複数のテーブルを結合させることが可能なリレーショナル型データベースであり、コントローラ11およびファイルシステム12を有している。アプリケーションプログラム2は、GUI(Graphical user interface)部21および論理・算術演算部22を有し、例えば、GUI部21により受け付けたユーザからの指示に応じて、論理・算術演算部22が、SQLで記述したデータ処理要求をデータベース10に発行し、返却されたデータ処理結果をGUI部21によりユーザに提示する。アプリケーションプログラム2により発行されるデータ処理要求には、大きく分けて、データの参照要求と、データの更新要求とが存在し、データの更新要求には、データの追加要求および削除要求が含まれる。また、SQLで記述されるデータ処理要求は、SQL文やクエリなどと称される。   The database 10 is a relational database that can combine a plurality of tables, and includes a controller 11 and a file system 12. The application program 2 includes a GUI (Graphical user interface) unit 21 and a logic / arithmetic operation unit 22. For example, the logic / arithmetic operation unit 22 is in SQL in response to an instruction from the user received by the GUI unit 21. The described data processing request is issued to the database 10, and the returned data processing result is presented to the user by the GUI unit 21. Data processing requests issued by the application program 2 are roughly classified into data reference requests and data update requests, and the data update requests include data addition requests and deletion requests. A data processing request described in SQL is referred to as an SQL sentence or a query.

データベース10のコントローラ11は、アプリケーションプログラム2からのデータ処理要求の受付窓口の役割を担うモジュールである。コントローラ11は、要求されたデータ処理を実行するデータベースエンジン100を有している。また、コントローラ11は、他のデータベース10のコントローラ11との間で通信する機能を有している。したがって、アプリケーションプログラム2は、データ処理要求の発行先であるデータベース10で管理されるテーブルと、このデータベース10とは異なるデータベース10で管理されるテーブルとの結合を伴うデータ処理要求を発行することもできる。換言すれば、アプリケーションプログラム2は、本データベースシステム1を構成する1以上のデータベース10内に存在するテーブルのすべてをデータ処理の対象とすることができる。データベース10のファイルシステム12は、データベース10内に存在する、テーブルのデータを含む各種データの記憶媒体上における配置場所を管理するモジュールである。   The controller 11 of the database 10 is a module that serves as a reception window for receiving data processing requests from the application program 2. The controller 11 has a database engine 100 that executes the requested data processing. Further, the controller 11 has a function of communicating with the controller 11 of another database 10. Therefore, the application program 2 may issue a data processing request involving a combination of a table managed by the database 10 that is the destination of the data processing request and a table managed by the database 10 different from the database 10. it can. In other words, the application program 2 can set all tables existing in one or more databases 10 constituting the database system 1 as data processing targets. The file system 12 of the database 10 is a module that manages the location of various data, including table data, in the database 10 on the storage medium.

本データベースシステム1は、データベース10の各々が、テーブルを事前に参照要求に適するように変形をしたキャッシュテーブルを予め用意しておき、テーブルおよびキャッシュテーブルを使って、データの参照要求に応答する機能を有している。変形とは、典型的には、2以上のテーブルを結合することである。そして、本データベースシステム1は、キャッシュテーブルの基となるテーブルが更新された場合のキャッシュテーブルの更新を効率的に行う仕組みを実装するものであり、以下、この仕組みについて詳述する。   The database system 1 has a function in which each of the databases 10 prepares a cache table in advance so that the table is suitable for a reference request, and responds to a data reference request using the table and the cache table. have. A transformation is typically the joining of two or more tables. The database system 1 implements a mechanism for efficiently updating the cache table when the base table of the cache table is updated. This mechanism will be described in detail below.

まず、本データベースシステム1が実装する、キャッシュテーブルを効率的に更新する仕組みの理解を助けるために、図2乃至図4を参照して、キャッシュテーブルの基となるテーブルが更新された場合の一般的な対処法について説明する。   First, in order to help understand the mechanism for efficiently updating the cache table implemented by the database system 1, referring to FIG. 2 to FIG. 4, the general case where the table that is the basis of the cache table is updated is described. A typical countermeasure will be described.

図2は、2つのテーブル(テーブルA,B)を結合してキャッシュテーブルを生成する一例を示している。以下、キャッシュテーブルを参照用テーブル201(マテリアライズドビュー:MATERIALIZED VIEW [MVIEW])、キャッシュテーブルの基となるテーブルを更新用テーブル202と称する。   FIG. 2 shows an example in which a cache table is generated by combining two tables (tables A and B). Hereinafter, the cache table is referred to as a reference table 201 (materialized view: MATERIALIZED VIEW [MVIEW]), and the table that is the basis of the cache table is referred to as an update table 202.

図2中、「CREATE MATERIALIZED VIEW READABLE AS SELECT 名前、場所 FROM A,B WHERE a2=1 and a3=b0 and b2=’今’」は、更新用テーブル202から参照用テーブル201を生成するためのクエリである。本クエリ中、”WHERE”部に条件文が記述され、条件文は、結合条件と絞り込み条件とを含み得る。”a3=b0”が、結合条件であり、テーブルAの3つ目のフィールドに格納される値とテーブルBの行番号とが一致する行を結合する旨を指定するものである。”a2=1”および”b2=’今’”は、絞り込み条件であり、テーブルAの2つ目のフィールドに格納される値が「1」、テーブルBの2つ目のフィールドに格納される値が「今」の行に絞り込む旨を指定するものである。なお、”SELECT”部には、抽出すべき項目名(フィールド名)が記述され、また、”FROM”部には、対象とすべきファイル名(テーブル名)が記述される。ここでは、テーブルAの1つ目のフィールドの項目名が「名前」であり、また、テーブルBの1つ目のフィールドの項目名が「場所」であるものとする。   In FIG. 2, “CREATE MATERIALIZED VIEW READABLE AS SELECT name, location FROM A, B WHERE a2 = 1 and a3 = b0 and b2 = 'now'” is a query for generating the reference table 201 from the update table 202 It is. In this query, a conditional statement is described in the “WHERE” part, and the conditional statement can include a join condition and a narrowing condition. “A3 = b0” is a join condition, and specifies that a row in which the value stored in the third field of the table A matches the row number of the table B is joined. “A2 = 1” and “b2 = 'now'” are narrowing conditions, the value stored in the second field of table A is “1”, and the value stored in the second field of table B This is to specify that the value is narrowed down to the “now” line. The “SELECT” part describes the item name (field name) to be extracted, and the “FROM” part describes the file name (table name) to be processed. Here, the item name of the first field of the table A is “name”, and the item name of the first field of the table B is “location”.

図2に示す参照用テーブル201を予め生成しておくことにより、以降、「SELECT 名前、場所 FROM A,B WHERE a2=1 and a3=b0 and b2=’今’」を含むデータの参照要求であるクエリが発行された場合、テーブルAとテーブルBとの結合を行わなくとも、要求されたデータを速やかに返却することが可能となる。   By generating the reference table 201 shown in FIG. 2 in advance, a reference request for data including “SELECT name, location FROM A, B WHERE a2 = 1 and a3 = b0 and b2 = 'now'” is performed thereafter. When a certain query is issued, the requested data can be promptly returned without combining Table A and Table B.

ところで、前述したように、アプリケーションプログラム2により発行されるクエリには、データの参照要求のみならず、データの更新要求も存在する。したがって、参照用テーブル201を生成した後に、更新用テーブル202が更新されることも考えられる。この場合、その更新内容を参照用テーブル201に反映させる必要が生じる。ここで、参照用テーブル201の基となる更新用テーブル202であるテーブルAの行番号「2」の行の1つ目のフィールドが「田中」から「里中」に更新された場合を想定する。なお、以下では、行番号を主キー値と称することがある。   Incidentally, as described above, the query issued by the application program 2 includes not only a data reference request but also a data update request. Therefore, it is conceivable that the update table 202 is updated after the reference table 201 is generated. In this case, it is necessary to reflect the updated contents in the reference table 201. Here, it is assumed that the first field of the row with the row number “2” of the table A that is the update table 202 that is the basis of the reference table 201 is updated from “Tanaka” to “Satonaka”. . Hereinafter, the row number may be referred to as a primary key value.

図3は、更新用テーブル202の更新内容を参照用テーブル201に同期的に反映させる場合の例を示している。   FIG. 3 shows an example in which the update contents of the update table 202 are reflected in the reference table 201 synchronously.

図3に示すように、更新用テーブル202が更新された場合に、参照用テーブル201を即応的に更新すれば、データの参照要求に対して返却されるデータは、常に最新のデータとなる。一方で、参照用テーブル201の更新を頻繁に行うことになりかねず、更新時間の増大を招くおそれがある。   As shown in FIG. 3, when the update table 202 is updated, if the reference table 201 is updated promptly, the data returned in response to the data reference request is always the latest data. On the other hand, the reference table 201 may be frequently updated, which may increase the update time.

また、図4は、更新用テーブル202の更新内容を参照用テーブル201に非同期的に反映させる場合の例を示している。   FIG. 4 shows an example in which the update contents of the update table 202 are asynchronously reflected in the reference table 201.

更新用テーブル202が更新されても、参照用テーブル201を即応的に更新するのではなく、図4に示すように、一定期間毎に、各期間の更新分を一括して更新すれば、更新時間は想定範囲内に収めることができる。一方で、データの参照要求に対して返却されるデータが、更新前の古いデータとなるおそれがある。   Even if the update table 202 is updated, instead of updating the reference table 201 immediately, as shown in FIG. 4, if the update for each period is updated in batches at regular intervals, the update is performed. Time can be kept within the expected range. On the other hand, data returned in response to a data reference request may become old data before update.

このような、参照用テーブル201の基となる更新用テーブル202が更新された場合の一般的な対処法である同期型および非同期型の双方の特長を踏まえた上で、続いて、図5および図6を参照して、本データベースシステム1における更新用テーブル202が更新された場合の参照用テーブル201の更新についての基本的な考え方を説明する。   In consideration of the features of both the synchronous type and the asynchronous type, which are general countermeasures when the update table 202 that is the basis of the reference table 201 is updated, FIG. With reference to FIG. 6, a basic concept for updating the reference table 201 when the update table 202 in the database system 1 is updated will be described.

まず、図5に、更新用テーブル202が更新された場合の参照用テーブル201の更新についての一般的な考え方を示す。   First, FIG. 5 shows a general concept for updating the reference table 201 when the update table 202 is updated.

前述した、更新用テーブル202の更新内容を同期的に参照用テーブル201に反映させる対処法(同期型)および更新用テーブル202の更新内容を非同期的に参照用テーブル201に反映させる対処法(非同期型)のいずれも、更新用テーブル202の更新というイベントの発生を契機として、参照用テーブル201の更新を実行するという、言うなれば「更新側主導」の考え方である。   The above-described countermeasure (synchronous) for reflecting the update contents of the update table 202 on the reference table 201 synchronously and the countermeasure for reflecting the update contents of the update table 202 asynchronously on the reference table 201 (asynchronous) Both types are based on the concept of “update side initiative”, that is, the update of the reference table 201 is executed when the event of the update of the update table 202 occurs.

次に、図6に、本データベースシステム1における更新用テーブル202が更新された場合の参照用テーブル201の更新についての基本的な考え方を示す。   Next, FIG. 6 shows a basic concept for updating the reference table 201 when the update table 202 in the database system 1 is updated.

本データベースシステム1では、更新用テーブル202の更新時、旧データを無効化するだけで、参照用テーブル201の更新は実行しない。図6では、旧データを含むデータセットの配置場所を示すポインタの値を「0」に更新している。ここで、「0」は、無効を示す値として定義されているものとする。   In the database system 1, when updating the update table 202, only the old data is invalidated, and the reference table 201 is not updated. In FIG. 6, the pointer value indicating the location of the data set including the old data is updated to “0”. Here, “0” is defined as a value indicating invalidity.

そして、本データベースシステム1では、参照用テーブル201の参照時、該当データが無効化されていた場合に、新データを更新用テーブル202から取得し、参照用テーブル201を更新する。このように、本データベースシステム1では、言うなれば「参照側主導」の考え方を採用する。   In the database system 1, when the corresponding data is invalidated when the reference table 201 is referenced, new data is acquired from the update table 202 and the reference table 201 is updated. In this way, the database system 1 adopts the concept of “reference side initiative”.

図7に、参照用テーブル201の基となる更新用テーブル202が局所的に頻繁に更新された場合の一例を示す。   FIG. 7 shows an example in which the update table 202 that is the basis of the reference table 201 is frequently updated locally.

いま、ある時点(図7のa1)で参照されたデータの同一箇所が頻繁に更新された場合を考える(図7のa2〜a6)。ここでは、参照時の「3」が、「3」→「8」→「9」→「5」→「9」→「6」と更新されている。この間、このデータが参照されることはなく、その後、このデータが2度参照されたとする(図7のa7,a8)。   Consider a case where the same portion of data referred to at a certain time (a1 in FIG. 7) is frequently updated (a2 to a6 in FIG. 7). Here, “3” at the time of reference is updated as “3” → “8” → “9” → “5” → “9” → “6”. During this time, it is assumed that this data is not referred to, and then this data is referred to twice (a7 and a8 in FIG. 7).

このような場合、「更新側主導」では、特に「同期型」においては、更新回数分、このデータに関する参照用テーブル201の更新が実行される。「非同期型」においても、各更新が互いに異なる期間内に行われたならば、「同期型」と同様、更新回数分、このデータに関する参照用テーブル201の更新が実行される。この間、このデータは参照されていないので、「3」→「8」→「9」→「5」→「9」の更新は無駄となる。   In such a case, in “update side initiative”, particularly in the “synchronous type”, the reference table 201 related to this data is updated by the number of times of update. Also in the “asynchronous type”, if each update is performed within different periods, the reference table 201 related to this data is updated by the number of times of update as in the “synchronous type”. During this time, since this data is not referred to, the update of “3” → “8” → “9” → “5” → “9” is useless.

一方、「参照側主導」では、更新後の最初の参照時(図7のa7)に新データを取得して参照用テーブル201を更新するので、上記のような参照用テーブル201の無駄な更新の実行を排除できる。また、以降の参照時(図7のa8)には、参照用テーブル201に格納された新データを速やかに参照することができる。   On the other hand, in the “reference side initiative”, new data is acquired and the reference table 201 is updated at the time of the first reference after the update (a7 in FIG. 7). Can be eliminated. Further, at the time of subsequent reference (a8 in FIG. 7), the new data stored in the reference table 201 can be referred to promptly.

このように、「参照側主導」は、データの参照要求に対して常に最新のデータを返却することを保証しつつ、データの更新に関するオーバヘッドを最小化する。   In this way, “reference side initiative” minimizes the overhead associated with data update while ensuring that the latest data is always returned in response to a data reference request.

図8は、「更新側主導」における更新用テーブル202の更新に伴う参照用テーブル201の更新に関する処理の流れを示す図である。なお、ここでは、データの参照要求に対応するモジュールと、データの更新要求に対応するモジュールとが各々設けられているものとする。データの参照要求に対応するモジュールとは、即ち参照用テーブル201の管理を司るモジュールであり、データの更新要求に対応するモジュールとは、即ち更新用テーブル202の管理を司るモジュールである。   FIG. 8 is a diagram illustrating a flow of processing related to the update of the reference table 201 accompanying the update of the update table 202 in “update side initiative”. Here, it is assumed that a module corresponding to a data reference request and a module corresponding to a data update request are provided. The module corresponding to the data reference request is a module that manages the reference table 201, and the module corresponding to the data update request is the module that manages the update table 202.

図8に示すように、「更新側主導」では、更新用テーブル202の更新が要求された場合(図8のb1)、更新用テーブル202の更新に加え、概ねその都度(「同期型」であれば毎回)、新データが参照用テーブル201の条件に合うか(参照用テーブル201の条件から外れたか)を確認するための計算が行われ(図8のb2)、必要であれば、参照用テーブル201を更新するためのデータの転送が行われる(図8のb3)。この更新データの参照用テーブル201への反映(図8のb4)も、更新用テーブル202の更新を契機として実行される。そして、これらの処理は、参照用テーブル201の参照(図8のb5)の有無に関係なく実行される。   As shown in FIG. 8, in the “update side initiative”, when an update of the update table 202 is requested (b1 in FIG. 8), in addition to the update of the update table 202, in each case (“synchronous”) Calculation is performed to check whether the new data meets the conditions of the reference table 201 (i.e., deviated from the conditions of the reference table 201) (b2 in FIG. 8). Data for updating the table 201 is transferred (b3 in FIG. 8). Reflection of the update data to the reference table 201 (b4 in FIG. 8) is also executed when the update table 202 is updated. These processes are executed regardless of whether the reference table 201 is referenced (b5 in FIG. 8).

ここで、まず、図9および図10を参照して、「更新側主導」の場合に必要となる、更新用テーブル202の更新時に新データが参照用テーブル201の条件に合うか(参照用テーブル201の条件から外れたか)を確認するための計算について説明する。   First, referring to FIG. 9 and FIG. 10, whether or not new data meets the conditions of the reference table 201 when the update table 202 is updated, which is necessary in the case of “update side initiative” (reference table). The calculation for confirming whether or not the condition 201 is not met will be described.

図9では、テーブルAの行番号「2」の行の3つめのフィールド(a3)が「1」から「3」に変更された例を示している。このフィールドは、結合条件に関わるフィールドであり、また、結合先のテーブルBの2つ目のフィールド(b2)が、絞り込み条件に関わるフィールトであるので、新データに基づき改めて結合を行い、結合先のテーブルBの2つ目のフィールドの値を確認する。その値は「昔」であり、絞り込み条件を満たさない。   FIG. 9 shows an example in which the third field (a3) of the row with the row number “2” in the table A is changed from “1” to “3”. Since this field is a field related to the join condition, and the second field (b2) of the table B to be joined is a field related to the narrowing condition, the join is performed again based on the new data, and the join destination The value of the second field of the table B is confirmed. The value is “old” and does not satisfy the narrow-down condition.

この時、更新前の旧データ「1」により結合されるテーブルBの2つ目のフィールドの値を確認すると、その値は「今」であり、絞り込み条件を満たしている。これにより、参照用テーブル201から1つの行を削除する必要があることが分かる。   At this time, when the value of the second field of the table B joined by the old data “1” before update is confirmed, the value is “now”, which satisfies the narrowing condition. Thereby, it is understood that one row needs to be deleted from the reference table 201.

一方、図10では、テーブルAの行番号「3」の行の3つ目のフィールド(a3)が、「3」から「1」に変更された例を示している。このフィールドは、結合条件に関わるフィールドであり、また、結合先のテーブルBの2つ目のフィールド(b2)が、絞り込み条件に関わるフィールトであるので、新データに基づき改めて結合を行い、結合先のテーブルBの2つ目のフィールドの値を確認する。その値は「今」であり、絞り込み条件を満たしている。   On the other hand, FIG. 10 shows an example in which the third field (a3) of the row with the row number “3” in the table A is changed from “3” to “1”. Since this field is a field related to the join condition, and the second field (b2) of the table B to be joined is a field related to the narrowing condition, the join is performed again based on the new data, and the join destination The value of the second field of the table B is confirmed. The value is “now”, which satisfies the narrow-down condition.

この時、更新前の旧データ「3」により結合されるテーブルBの2つ目のフィールドの値を確認すると、その値は「昔」であり、絞り込み条件を満たさない。これにより、参照用テーブル201に1つの行を追加する必要があることが分かる。なお、絞り込み条件を満たしている場合には、参照用テーブル201側に存在するデータセットを更新する必要があることが分かる。例えば更新前の旧データが「2」であった場合、参照用テーブル201側の該当データセット内の「横浜」を「川崎」に更新しなければならない。   At this time, when the value of the second field of the table B joined by the old data “3” before update is confirmed, the value is “old” and does not satisfy the narrowing condition. As a result, it can be seen that one row needs to be added to the reference table 201. Note that, when the narrowing-down condition is satisfied, it is understood that the data set existing on the reference table 201 side needs to be updated. For example, when the old data before update is “2”, “Yokohama” in the corresponding data set on the reference table 201 side must be updated to “Kawasaki”.

このように、「更新側主導」の場合には、更新用テーブル202の更新時、負荷の大きい結合を伴う計算が必須となる。   As described above, in the case of “update side initiative”, when the update table 202 is updated, a calculation with a heavy load is essential.

図11は、「参照側主導」における更新用テーブル202の更新に伴う参照用テーブル201の更新に関する処理の流れを示す図である。   FIG. 11 is a diagram illustrating a flow of processing related to the update of the reference table 201 accompanying the update of the update table 202 in “reference side initiative”.

図11に示すように、「参照側主導」では、更新用テーブル202の更新が要求された場合(図11のc1)、更新用テーブル202の更新(図11のc2)と、その更新の通知(図11のc3)とが行われる。また、参照用テーブル201については、更新が通知されたデータに関わる行の削除(図11のc4)、つまり無効化のみが行われ、参照用テーブル201の更新は実行されない。   As shown in FIG. 11, in “reference side initiative”, when an update of the update table 202 is requested (c1 in FIG. 11), the update of the update table 202 (c2 in FIG. 11) and notification of the update (C3 in FIG. 11) is performed. In addition, with respect to the reference table 201, only deletion of the row related to the data notified of the update (c4 in FIG. 11), that is, invalidation is performed, and the update of the reference table 201 is not executed.

また、更新用テーブル202の更新(図11のc2)が、同一テーブルの同一レコードに対する2箇所目以降の更新である場合や、そもそも参照用テーブル201と関係のないデータを対象とするものである場合、その更新の通知(図11のc3)は行われず、参照用テーブル201の該当行の削除(図11のc4)も行われない。   In addition, when the update of the update table 202 (c2 in FIG. 11) is an update after the second place for the same record of the same table, or data that is not related to the reference table 201 in the first place. In such a case, the update notification (c3 in FIG. 11) is not performed, and the corresponding line in the reference table 201 is not deleted (c4 in FIG. 11).

そして、参照用テーブル201の参照時(図11のc5)、該当のデータが存在しない場合に限り、そのデータを更新用テーブル202から取得して、参照用テーブル201を更新する(図11のc6)。   Then, when referring to the reference table 201 (c5 in FIG. 11), only when the corresponding data does not exist, the data is acquired from the update table 202 and the reference table 201 is updated (c6 in FIG. 11). ).

図12は、更新用テーブル202が局所的に更新された場合の参照用テーブル201の更新に関する処理の流れを「更新側主導」と「参照側主導」とで比較する図である。   FIG. 12 is a diagram comparing the flow of processing related to the update of the reference table 201 when the update table 202 is locally updated between “update side initiative” and “reference side initiative”.

参照用テーブル201を更新した後、そのデータが参照されなかった場合、その更新は無駄に終わる。したがって、図12に示すように、「更新側主導」では、例えば更新用テーブル202が局所的に更新された場合、無駄な参照用テーブル201の更新が多く発生する。これに対して、「参照側主導」では、参照用テーブル201の更新が、参照される必要分に止まる。このことから、「参照側主導」は、バースト処理に対して効果的であるといえる。   After the reference table 201 is updated, if the data is not referenced, the update is useless. Therefore, as shown in FIG. 12, in the “update side initiative”, for example, when the update table 202 is locally updated, many unnecessary updates of the reference table 201 occur. On the other hand, in the “reference side initiative”, the update of the reference table 201 is limited to the necessary reference. From this, it can be said that “reference side initiative” is effective for burst processing.

次に、本データベースシステム1が、この「参照側主導」を実現する基本原理について説明する。   Next, the basic principle by which the database system 1 realizes the “reference side initiative” will be described.

図13は、「参照側主導」である本データベースシステム1における参照用テーブル201の一構成例を示す図である。   FIG. 13 is a diagram illustrating a configuration example of the reference table 201 in the database system 1 that is “referred by the reference side”.

ここで、図13に示す参照用テーブル201の一構成例と比較するために、一旦、図14および図15を参照して、「更新側主導」における典型的な参照用テーブル201の一構成例および更新用テーブル202の更新に伴う当該参照用テーブル201の更新手順を説明する。   Here, in order to compare with a configuration example of the reference table 201 shown in FIG. 13, referring to FIGS. 14 and 15 once, a configuration example of a typical reference table 201 in “update side initiative”. The update procedure of the reference table 201 accompanying the update of the update table 202 will be described.

図14に示すように、「更新側主導」の場合、参照用テーブル201は、通常、結合した各テーブルの行番号(主キー値)の組み合わせである行番号(rowid)と、データセットの配置場所を示すポインタ(ptr)とを備える。   As shown in FIG. 14, in the case of “update side initiative”, the reference table 201 usually has a row number (rowid) that is a combination of row numbers (primary key values) of the joined tables and the arrangement of the data set. And a pointer (ptr) indicating the location.

いま、更新用テーブル202のデータであって、参照用テーブル201側にキャッシュされているデータが「田中」から「里中」に更新されたものとする。   Now, it is assumed that the data stored in the update table 202 and cached on the reference table 201 side is updated from “Tanaka” to “Satonaka”.

この場合、図15に示すように、更新されたデータを含む行について結合を実行し、参照用テーブル201における行番号を計算して、参照用テーブル201用の更新データとして転送する。そして、この更新データに付される行番号に基づき、参照用テーブル201を更新する。   In this case, as shown in FIG. 15, the join is executed for the row including the updated data, the row number in the reference table 201 is calculated, and transferred as the update data for the reference table 201. Then, the reference table 201 is updated based on the row number attached to the update data.

再び、図13を参照する。   Reference is again made to FIG.

この参照用テーブル201について、「参照側主導」である本データベースシステム1では、行番号(rowid)とは別に、主キー値を格納するキーフィールドをテーブル(更新用テーブル202)毎に持つ(rA,rB)。そして、本データベースシステム1では、第1に、キャッシュが有効か否かのフラグを行毎に持つ(cache)。第2に、主キー値による行番号のダイレクトサーチを可能とするためのインデックスをテーブル(更新用テーブル202)毎に持つ(index_rA,index_rB)。第3に、絞り込み条件としての主キー値の指定が有効な状態か否かのフラグをテーブル(更新用テーブル202)毎に持つ。   Regarding this reference table 201, this database system 1 that is “referred by the reference side” has a key field for storing the primary key value for each table (update table 202) separately from the row number (rowid) (rA , rB). In the database system 1, first, a flag indicating whether or not the cache is valid is provided for each line (cache). Second, each table (update table 202) has an index (index_rA, index_rB) for enabling direct search of the row number by the primary key value. Third, each table (update table 202) has a flag indicating whether or not the designation of the primary key value as the narrowing condition is valid.

以下、図13に示したように参照用テーブル201を構成することで、本データベースシステム1が、当該参照用テーブル201を「参照側主導」でどのように更新するのかについて説明する。   Hereinafter, it will be described how the database system 1 updates the reference table 201 in “reference side initiative” by configuring the reference table 201 as illustrated in FIG. 13.

図16は、本データベースシステム1の参照用テーブル201の更新に関する機能ブロック図である。   FIG. 16 is a functional block diagram relating to the update of the reference table 201 of the database system 1.

本データベースシステム1における参照用テーブル201および更新用テーブル202の管理は、データベースエンジン100が司る。図16中、(A)は、データの参照要求に対応するモジュール、つまり参照用テーブル201の管理を司るモジュールとして動作するデータベースエンジン100の機能ブロックを示し、(B)は、データの更新要求に対応するモジュール、つまり更新用テーブル202の管理を司るモジュールとして動作するデータベースエンジン100の機能ブロックを示している。1つのデータベースエンジン100を、データの参照要求に対応するモジュールおよびデータの更新要求に対応するモジュールの双方として動作させてもよいし、2つのデータベースエンジン100を、一方をデータの参照要求に対応するモジュールとして、他方をデータの更新要求に対応するモジュールとして動作させてもよい。以下、データの参照要求に対応するモジュールとして動作するデータベースエンジン100を参照側データベースエンジン100と称し、データの更新要求に対応するモジュールとして動作するデータベースエンジン100を更新側データベースエンジン100と称する。   The database engine 100 manages the reference table 201 and the update table 202 in the database system 1. 16A shows functional blocks of the database engine 100 that operate as a module corresponding to a data reference request, that is, a module that manages the reference table 201, and FIG. 16B shows a data update request. A functional block of the database engine 100 that operates as a corresponding module, that is, a module that manages the update table 202 is shown. One database engine 100 may be operated as both a module corresponding to a data reference request and a module corresponding to a data update request, and one of the two database engines 100 corresponds to a data reference request. The other module may be operated as a module corresponding to a data update request. Hereinafter, the database engine 100 that operates as a module corresponding to a data reference request is referred to as a reference-side database engine 100, and the database engine 100 that operates as a module corresponding to a data update request is referred to as an update-side database engine 100.

図16(A)に示すように、参照側データベースエンジン100は、SQL文解析部111、データ制御部112、データ変更部113、データ要求部114およびメモリ115を有している。   As shown in FIG. 16A, the reference-side database engine 100 includes an SQL sentence analysis unit 111, a data control unit 112, a data change unit 113, a data request unit 114, and a memory 115.

SQL文解析部111は、SQLで記載されるデータの参照要求、つまりクエリを解析するモジュールである。SQL文解析部111は、その参照要求が参照用テーブル201を適用可能なものであるか否かを判定する。参照用テーブル201を適用可能なデータの参照要求は、参照用テーブル201からデータが取得されて返却され、参照用テーブル201を適用不可なデータの参照要求は、更新用テーブル202からデータが取得されて返却されることとなる。   The SQL sentence analysis unit 111 is a module that analyzes a reference request for data described in SQL, that is, a query. The SQL sentence analysis unit 111 determines whether the reference request is applicable to the reference table 201. The data reference request to which the reference table 201 can be applied is returned after the data is acquired from the reference table 201, and the data reference request to which the reference table 201 is not applicable is acquired from the update table 202. Will be returned.

データ制御部112は、参照が要求されたデータを返却するモジュールであり、当該参照が要求されたデータが参照用テーブル201に存在するか否か(参照用テーブル201のデータは有効か否か)を判定する機能を有している。データ変更部113は、更新側データベースエンジン100から更新用テーブル202の更新通知を受け取った場合に、参照用テーブル201の該当データを無効化する等の参照用テーブル201の更新を実行するモジュールである。また、データ変更部113は、更新通知として送られてくるスキーマに基づき、参照用テーブル201を作成する機能を有している。   The data control unit 112 is a module that returns data requested to be referenced, and whether or not the data requested to be referenced exists in the reference table 201 (whether or not the data in the reference table 201 is valid). It has the function to judge. The data changing unit 113 is a module that executes an update of the reference table 201 such as invalidating the corresponding data in the reference table 201 when receiving an update notification of the update table 202 from the update-side database engine 100. . The data changing unit 113 has a function of creating the reference table 201 based on the schema sent as an update notification.

データ要求部114は、データ制御部112により、参照が要求されたデータが参照用テーブル201に存在しないと判定された場合、該当データを更新用テーブル202から取得して、参照用テーブル201に格納するモジュールである。メモリ115は、参照用テーブル201を格納する記憶領域である。   When the data control unit 112 determines that the data requested for reference does not exist in the reference table 201, the data request unit 114 acquires the corresponding data from the update table 202 and stores it in the reference table 201. It is a module to do. The memory 115 is a storage area for storing the reference table 201.

また、更新側データベースエンジン100は、図16(B)に示すように、SQL文解析部121、データ制御部122、更新通知部123およびメモリ124を有している。   Further, as shown in FIG. 16B, the update-side database engine 100 includes an SQL sentence analysis unit 121, a data control unit 122, an update notification unit 123, and a memory 124.

SQL文解析部121も、参照側データベースエンジン100のSQL文解析部111と同様、クエリを解析するモジュールである。データの更新要求の中には、キャッシュテーブルの生成要求、つまり参照用テーブル201の生成要求も含まれ、SQL文解析部121は、クエリが参照用テーブル201の生成を要求するものか否かを判定する機能を有している。また、SQL文解析部121は、参照用テーブル201の生成を要求するクエリから、絞り込み条件と結合条件とを含む条件文を抽出する機能を有している。この条件文の抽出は、更新用テーブル202の更新に伴う参照用テーブル201の更新を「参照側主導」で行うための事前準備として行うものであり、この点については後述する。   The SQL sentence analysis unit 121 is also a module that analyzes a query, like the SQL sentence analysis unit 111 of the reference database engine 100. The data update request also includes a cache table generation request, that is, a reference table 201 generation request, and the SQL statement analysis unit 121 determines whether or not the query requests generation of the reference table 201. It has a function to judge. The SQL sentence analysis unit 121 has a function of extracting a conditional sentence including a narrowing condition and a joining condition from a query that requests generation of the reference table 201. The extraction of the conditional statement is performed as a preliminary preparation for performing the update of the reference table 201 accompanying the update of the update table 202 by “reference side initiative”, which will be described later.

データ制御部122は、更新が要求された更新用テーブル202のデータを更新するモジュールである。この更新時、データ制御部122は、データを更新した行の行番号を示す更新行情報210をメモリ124に格納する。データ制御部122は、参照用テーブル201の生成が要求された際、当該参照用テーブル201のスキーマを作成する。   The data control unit 122 is a module that updates data in the update table 202 for which an update is requested. At the time of this update, the data control unit 122 stores in the memory 124 updated row information 210 indicating the row number of the row whose data has been updated. When the generation of the reference table 201 is requested, the data control unit 122 creates a schema for the reference table 201.

更新通知部123は、データ制御部122により作成されたスキーマと、メモリ124に格納された更新行情報210とを、更新通知として参照側データベースエンジン100に送信するモジュールである。メモリ124は、更新行情報210を格納する記憶領域である。   The update notification unit 123 is a module that transmits the schema created by the data control unit 122 and the updated row information 210 stored in the memory 124 to the reference database engine 100 as an update notification. The memory 124 is a storage area for storing updated row information 210.

ここで、図17を参照して、更新側データベースエンジン100のSQL文解析部121による参照用テーブル201の生成を要求するクエリの解析について説明する。   Here, with reference to FIG. 17, the analysis of the query which requests | requires the production | generation of the reference table 201 by the SQL sentence analysis part 121 of the update side database engine 100 is demonstrated.

いま、「CREATE MATERIALIZED VIEW READABLE AS SELECT 名前、場所 FROM A,B WHERE a2=1 and a3=b0 and b2=’今’」といったクエリが発行されたものと想定する。SQL文解析部121は、このクエリから、条件文、つまり「WHERE a2=1 and a3=b0 and b2=’今’」のみを抽出する。また、SQL文解析部121は、抽出した条件文に含まれる結合条件(a3=b0)で指定される各テーブルのキー(a3,b0)と、結合対象の各テーブルの主キー(a0,b0)とを、結合に関わるキーとして取得する。   Assume that a query such as “CREATE MATERIALIZED VIEW READABLE AS SELECT name, location FROM A, B WHERE a2 = 1 and a3 = b0 and b2 =’ now ’” is issued. The SQL sentence analysis unit 121 extracts only the conditional sentence, that is, “WHERE a2 = 1 and a3 = b0 and b2 =“ now ”” from the query. The SQL statement analysis unit 121 also includes a key (a3, b0) of each table specified by the join condition (a3 = b0) included in the extracted conditional statement and a primary key (a0, b0) of each table to be joined. ) As a key related to the combination.

次に、図18乃至図26を参照して、事前準備として取得したキーを使った参照用テーブル201の「参照側主導」での更新手順について説明する。このうち、図18乃至図22は、更新用テーブル202の更新時に関する図であり、図23乃至図26は、参照用テーブル201の参照時に関する図である。   Next, with reference to FIG. 18 to FIG. 26, the “reference side initiative” update procedure of the reference table 201 using the key acquired as advance preparation will be described. Among these, FIGS. 18 to 22 are diagrams relating to the update of the update table 202, and FIGS. 23 to 26 are diagrams relating to the reference table 201 being referred to.

図18は、事前準備として取得したキー以外の変更となる更新用テーブル202の更新の一例を示している。   FIG. 18 shows an example of the update of the update table 202 that is a change other than the key acquired as advance preparation.

図18に示すように、ここでは、テーブルAの行番号(a0)「2」の行の1つ目のフィールド(a1)が、「田中」から「里中」に更新されている。”a1”は、事前準備として取得したキー以外、つまり結合に関わるキーではないので、更新側データベースエンジン100の更新通知部123は、この行のデータを含むデータセットを無効とするための更新通知(Clear)を参照側データベースエンジン100に送信する。この更新通知には、テーブルAの行番号「2」を示す情報(A2)が含まれる。   As shown in FIG. 18, here, the first field (a1) in the row of the row number (a0) “2” of the table A is updated from “Tanaka” to “Satonaka”. Since “a1” is not a key acquired as a pre-preparation, that is, a key related to the join, the update notification unit 123 of the update-side database engine 100 updates the data set including the data of this row to be invalidated. (Clear) is transmitted to the reference-side database engine 100. This update notification includes information (A2) indicating the row number “2” of the table A.

一方、参照側データベースエンジン100は、この更新通知を受けると、データ変更部113が、テーブルA用のインデックスで参照用テーブル201の行番号を取得し、その行のフラグ(cache)を無効に更新する。ここで、各フラグは、「1」が有効、「0」が無効を示すものとする。   On the other hand, when the reference-side database engine 100 receives this update notification, the data changing unit 113 acquires the row number of the reference table 201 with the index for the table A and updates the flag (cache) of the row to be invalid. To do. Here, for each flag, “1” indicates valid and “0” indicates invalid.

事前準備として取得したキー以外の変更となる更新用テーブル202の更新時には、以上の処理を行うのみで終了する。   When updating the update table 202, which is a change other than the key acquired as a preliminary preparation, the process ends only by performing the above processing.

図19は、事前準備として取得したキーの変更となる更新用テーブル202の更新であって、更新された行の主キー値がそのテーブル用のインデックスに存在する場合の一例を示している。インデックスに存在する場合とは、その行のデータを含むデータセットが参照用テーブル201側に存在する場合または過去に存在した場合である。   FIG. 19 shows an example of the update of the update table 202 that is a change of the key acquired as a preliminary preparation, and the primary key value of the updated row exists in the index for the table. The case where it exists in the index is a case where a data set including the data of the row exists on the reference table 201 side or has existed in the past.

図19に示すように、ここでは、テーブルAの行番号(a0)「2」の行の3つ目のフィールド(a3)が、何らかの値から「3」に更新されている。”a3”は、事前準備として取得したキー、つまり結合に関わるキーであるので、更新側データベースエンジン100の更新通知部123は、この行との結合を無効とするための更新通知(Key)を参照側データベースエンジン100に送信する。この更新通知には、テーブルAの行番号「2」を示す情報(A2)が含まれる。   As shown in FIG. 19, here, the third field (a3) of the row with the row number (a0) “2” in the table A is updated from some value to “3”. Since “a3” is a key acquired as a preliminary preparation, that is, a key related to the combination, the update notification unit 123 of the update-side database engine 100 sends an update notification (Key) for invalidating the combination with this row. It transmits to the reference side database engine 100. This update notification includes information (A2) indicating the row number “2” of the table A.

一方、参照側データベースエンジン100は、この更新通知を受けると、データ変更部113が、テーブルA用のインデックスで参照用テーブル201の行番号を取得し、その行のテーブルA以外のすべてのキーフィールド(rB)、フラグ(cache)およびポインタ(ptr)を無効に更新する。また、データ変更部113は、キーフィールドを無効に更新した場合、そのキーフィールドに対応する、絞り込み条件としての主キー値の指定が有効な状態か否かのフラグを無効に更新する。   On the other hand, when the reference-side database engine 100 receives this update notification, the data change unit 113 acquires the row number of the reference table 201 using the index for the table A, and all the key fields other than the table A in the row (RB), flag (cache) and pointer (ptr) are updated invalid. In addition, when the data changing unit 113 updates the key field to be invalid, the data changing unit 113 invalidates and updates the flag corresponding to the key field as to whether or not the designation of the primary key value as the narrowing condition is valid.

また、図20は、事前準備として取得したキーの変更となる更新用テーブル202の更新であって、更新された行の主キー値がそのテーブル用のインデックスに存在しない場合の一例を示している。インデックスに存在しない場合とは、更新前のデータによる結合では絞り込み条件を満たさず、その行のデータを含むデータセットが参照用テーブル201側において作成されなかった場合、または、その主キー値を格納していたキーフィールドすべてが無効に更新された場合である。   FIG. 20 shows an example of the update of the update table 202 that is a change of the key acquired as a preliminary preparation, and the primary key value of the updated row does not exist in the index for the table. . When the data does not exist in the index, the join condition by the data before the update does not satisfy the narrowing condition, and the data set including the data of the row is not created on the reference table 201 side, or the primary key value is stored. This is a case where all the key fields that have been updated are invalid.

図20に示すように、ここでは、テーブルAの行番号(a0)「2」の行の3つ目のフィールド(a3)が、何らかの値から「1」に更新されている。”a3”は、事前準備として取得したキー、つまり結合に関わるキーであるので、更新側データベースエンジン100の更新通知部123は、この行との結合を無効とするための更新通知(Key)を参照側データベースエンジン100に送信する。この更新通知には、テーブルAの行番号「2」の行を示す情報(A2)が含まれる。   As shown in FIG. 20, here, the third field (a3) in the row of the row number (a0) “2” of the table A is updated from some value to “1”. Since “a3” is a key acquired as a preliminary preparation, that is, a key related to the combination, the update notification unit 123 of the update-side database engine 100 sends an update notification (Key) for invalidating the combination with this row. It transmits to the reference side database engine 100. This update notification includes information (A2) indicating the row of the row number “2” in the table A.

一方、参照側データベースエンジン100は、この更新通知を受けると、データ変更部113が、テーブルA用のインデックスで参照用テーブル201の行番号を取得しようと試みる。更新された行の主キー値がテーブルA用のインデックスに存在しない場合、データ変更部113は、参照用テーブル201に行を追加するとともに、更新された行の主キー値で当該追加した行の行番号を得られるようにインデックスも追加する。追加した行のテーブルAのキーフィールド(rA)には更新された行の行番号である主キー値「2」が格納され、それ以外のすべてのキーフィールド(rB)、フラグ(cache)およびポインタ(ptr)には無効を示す値「0」が格納される。また、無効を示す値「0」を格納するキーフィールドが発生したことにより、データ変更部113は、そのキーフィールドに対応する、絞り込み条件としての主キー値の指定が有効な状態か否かのフラグを無効に更新する。   On the other hand, when the reference-side database engine 100 receives this update notification, the data changing unit 113 tries to acquire the row number of the reference table 201 using the index for the table A. When the primary key value of the updated row does not exist in the index for the table A, the data changing unit 113 adds a row to the reference table 201 and also adds the row of the added row with the updated primary key value. Also add an index to get the line number. The key field (rA) of the added row table A stores the primary key value “2” that is the row number of the updated row, and all other key fields (rB), flags (cache), and pointers. A value “0” indicating invalidity is stored in (ptr). Further, when a key field storing a value “0” indicating invalidity is generated, the data changing unit 113 determines whether or not the designation of the primary key value as a narrowing condition corresponding to the key field is valid. Update the flag to invalid.

図21は、事前準備として取得したキーの変更となる、更新用テーブル202に行が追加された場合の一例を示している。   FIG. 21 shows an example in which a row is added to the update table 202, which is a change of the key acquired as advance preparation.

図21に示すように、ここでは、行番号(a0)「5」の行がテーブルAに追加されている。結合に関わるキーである”a0”および”a3”のデータの追加を伴うので、更新側データベースエンジン100の更新通知部123は、この行との結合を無効とするための更新通知(Key)を参照側データベースエンジン100に送信する。この更新通知には、テーブルAの行番号「5」を示す情報(A5)が含まれる。   As shown in FIG. 21, the row with the row number (a0) “5” is added to the table A here. Since the data of “a0” and “a3”, which are keys related to the combination, is added, the update notification unit 123 of the update-side database engine 100 sends an update notification (Key) for invalidating the combination with this row. It transmits to the reference side database engine 100. This update notification includes information (A5) indicating the row number “5” of table A.

この場合、この更新通知を受けた参照側データベースエンジン100のデータ変更部113が行う処理は、図20を参照して説明した、事前準備として取得したキーの変更となる更新用テーブル202の更新であって、更新された行の主キー値がそのテーブル用のインデックスに存在しない場合の処理と同様となる。つまり、データ変更部113は、参照用テーブル201に行を追加するとともに、更新された行の主キー値で当該追加した行の行番号を得られるようにインデックスも追加する。追加した行のテーブルAのキーフィールド(rA)には更新された行の行番号である主キー値「5」が格納され、それ以外のすべてのキーフィールド(rB)、フラグ(cache)およびポインタ(ptr)には無効を示す値「0」が格納される。また、無効を示す値「0」を格納するキーフィールドが発生したことにより、データ変更部113は、そのキーフィールドに対応する、絞り込み条件としての主キー値の指定が有効な状態か否かのフラグを無効に更新する。   In this case, the processing performed by the data change unit 113 of the reference database engine 100 that has received this update notification is the update of the update table 202 that is a change of the key acquired as a preliminary preparation described with reference to FIG. Thus, the processing is the same as the processing when the primary key value of the updated row does not exist in the index for the table. That is, the data changing unit 113 adds a row to the reference table 201 and also adds an index so that the row number of the added row can be obtained with the updated primary key value of the row. The key field (rA) of the added row table A stores the primary key value “5” which is the row number of the updated row, and all other key fields (rB), flags (cache), and pointers. A value “0” indicating invalidity is stored in (ptr). Further, when a key field storing a value “0” indicating invalidity is generated, the data changing unit 113 determines whether or not the designation of the primary key value as a narrowing condition corresponding to the key field is valid. Update the flag to invalid.

逆に、図22は、事前準備として取得したキーの変更となる、更新用テーブル202から行が削除された場合の一例を示している。   On the other hand, FIG. 22 shows an example in which a row is deleted from the update table 202, which is a change of the key acquired as a preliminary preparation.

図22に示すように、ここでは、行番号(a0)「2」の行がテーブルAから削除されている。結合に関わるキーである”a0”および”a3”のデータの削除を伴うので、更新側データベースエンジン100の更新通知部123は、この行との結合を無効とするための更新通知(Key)を参照側データベースエンジン100に送信する。この更新通知には、テーブルAの行番号「2」を示す情報(A2)が含まれる。   As shown in FIG. 22, the row with the row number (a0) “2” is deleted from the table A here. Since the data of “a0” and “a3”, which are keys related to the combination, is deleted, the update notification unit 123 of the update-side database engine 100 sends an update notification (Key) for invalidating the combination with this row. It transmits to the reference side database engine 100. This update notification includes information (A2) indicating the row number “2” of the table A.

この場合、この更新通知を受けた参照側データベースエンジン100のデータ変更部113が行う処理は、図19を参照して説明した、事前準備として取得したキーの変更となる更新用テーブル202の更新であって、更新された行の主キー値がそのテーブル用のインデックスに存在する場合の処理と同様となる。つまり、データ変更部113は、テーブルA用のインデックスで参照用テーブル201の行番号を取得し、その行のテーブルA以外のすべてのキーフィールド(rB)、フラグ(cache)およびポインタ(ptr)を無効に更新する。また、データ変更部113は、キーフィールドを無効に更新した場合、そのキーフィールドに対応する、絞り込み条件としての主キー値の指定が有効な状態か否かのフラグを無効に更新する。   In this case, the processing performed by the data change unit 113 of the reference database engine 100 that has received this update notification is the update of the update table 202 that is a change of the key acquired as a preliminary preparation described with reference to FIG. Thus, the processing is the same as the processing when the primary key value of the updated row exists in the index for the table. That is, the data changing unit 113 acquires the row number of the reference table 201 using the index for the table A, and stores all the key fields (rB), flags (cache), and pointers (ptr) other than the table A in that row. Update to invalid. In addition, when the data changing unit 113 updates the key field to be invalid, the data changing unit 113 invalidates and updates the flag corresponding to the key field as to whether or not the designation of the primary key value as the narrowing condition is valid.

以上が、本データベースシステム1の更新用テーブル202の更新時における参照用テーブル201の更新手順である。なお、更新側データベースエンジン100は、更新用テーブル202が更新された場合であっても、それが参照用テーブルの生成時にSQL文解析部121により抽出された条件文に含まれる絞り込み条件を満たさないデータに対する更新であった場合には、更新通知部123による更新通知の参照側データベースエンジン100への送信は行わない。   The above is the update procedure of the reference table 201 when the update table 202 of the database system 1 is updated. Even when the update table 202 is updated, the update-side database engine 100 does not satisfy the narrowing-down condition included in the conditional sentence extracted by the SQL sentence analysis unit 121 when the reference table is generated. If the update is for data, the update notification unit 123 does not transmit the update notification to the reference database engine 100.

図23は、更新用テーブル202上で更新されている行の主キー値を絞り込み条件として指定する参照であって、その更新が、事前準備として取得したキー以外の変更である場合の一例を示している。   FIG. 23 shows an example in which the primary key value of the row updated on the update table 202 is specified as a narrowing condition, and the update is a change other than the key acquired as advance preparation. ing.

図23に示すように、ここでは、テーブルAの主キー(a0)値「2」が絞り込み条件として指定されている。このテーブルAの行番号(a0)「2」の行は、1つ目のフィールド(a1)が「田中」から「里中」に更新されている。”a1”は、事前準備として取得したキー以外、つまり結合に関わるキーではないので、参照用テーブル201上では、その行のフラグ(cache)が無効に更新されていることになる。   As shown in FIG. 23, here, the primary key (a0) value “2” of the table A is designated as the narrowing condition. In the row of the row number (a0) “2” in the table A, the first field (a1) is updated from “Tanaka” to “Satonaka”. Since “a1” is not a key acquired as a pre-preparation, that is, a key related to the join, the flag (cache) of the row is updated to be invalid on the reference table 201.

参照側データベースエンジン100は、データ制御部112により、参照が要求されたデータを返却する。データ制御部112は、参照対象の行のフラグ(cache)が有効を示す場合には、その行のポインタ(ptr)で示される配置場所に存在するデータセットを使って、参照が要求されたデータを返却することができる。   The reference-side database engine 100 returns the data requested for reference by the data control unit 112. When the flag (cache) of the reference target row indicates valid, the data control unit 112 uses the data set existing at the arrangement location indicated by the pointer (ptr) of the row to request the reference Can be returned.

一方、参照対象の行のフラグ(cache)が無効を示す場合、データ制御部112は、参照が要求されたデータは参照用テーブル201に存在しない(参照用テーブル201のデータは有効ではない)と判定する。この場合、データ要求部114が、その行のキーフィールド(rA,rB)に格納される主キー値(「2」,「1」)を絞り込み条件として指定したクエリを作成し、更新後のデータを含むデータセットを更新用テーブル202から取得する。データ要求部114は、参照対象の行のポインタ(ptr)を、取得したデータセットの配置場所を示す値に更新して、当該参照対象の行のフラグ(cache)を有効に更新する。そして、データ制御部112は、このデータセットを使って、参照が要求されたデータを返却する。   On the other hand, when the flag (cache) of the reference target row indicates invalidity, the data control unit 112 determines that the data requested to be referenced does not exist in the reference table 201 (data in the reference table 201 is not valid). judge. In this case, the data request unit 114 creates a query in which the primary key values (“2”, “1”) stored in the key fields (rA, rB) of the row are specified as the filtering condition, and the updated data Is obtained from the update table 202. The data request unit 114 updates the pointer (ptr) of the reference target row to a value indicating the location of the acquired data set, and effectively updates the flag (cache) of the reference target row. Then, the data control unit 112 uses this data set to return the data requested for reference.

参照対象の行のキーフィールドに格納される主キー値を絞り込み条件として指定したクエリを作成することにより、参照時における、更新用テーブル202からの最新のデータセットの取得を迅速に行うことができる。   By creating a query in which the primary key value stored in the key field of the row to be referenced is specified as a refinement condition, the latest data set can be quickly acquired from the update table 202 at the time of reference. .

図24は、更新用テーブル202上で更新されている行と結合された(更新されていない)行の主キー値を絞り込み条件として指定する参照であって、その更新が、事前準備として取得したキー以外の変更である場合の一例を示している。   FIG. 24 is a reference that designates the primary key value of a row that has been joined (not updated) with a row that has been updated on the update table 202 as a refinement condition, and that update was acquired as a preliminary preparation. An example of a change other than a key is shown.

図24に示すように、ここでは、テーブルBの主キー(b0)値「1」が絞り込み条件として指定されている。このテーブルBの行番号(b0)「1」の行は、更新されていないが、この行が結合されるテーブルAの行番号(a0)「2」の行と行番号(a0)「3」の行とのうち、行番号(a0)「2」の行は、1つ目のフィールド(a1)が、「田中」から「里中」に更新されている。”a1”は、事前準備として取得したキー以外、つまり結合に関わるキーではないので、参照用テーブル201上では、その行のフラグ(cache)が無効に更新されていることになる。   As shown in FIG. 24, here, the primary key (b0) value “1” of the table B is specified as the narrowing-down condition. The row with the row number (b0) “1” in the table B is not updated, but the row with the row number (a0) “2” and the row number (a0) “3” in the table A to which this row is joined. The first field (a1) of the row with the row number (a0) “2” is updated from “Tanaka” to “Satonaka”. Since “a1” is not a key acquired as a pre-preparation, that is, a key related to the join, the flag (cache) of the row is updated to be invalid on the reference table 201.

参照対象の行のフラグ(cache)が無効を示すので、参照側データベースエンジン100は、図23を参照して説明した、更新用テーブル202上で更新されている行の主キー値を絞り込み条件として指定する参照であって、その更新が、事前準備として取得したキー以外の変更である場合と同様の処理を行うことになる。つまり、データ制御部112により、参照が要求されたデータは参照用テーブル201に存在しない(参照用テーブル201のデータは有効ではない)と判定され、データ要求部114が、その行のキーフィールド(rA,rB)に格納される主キー値(「2」,「1」)を絞り込み条件として指定したクエリを作成し、更新後のデータを含むデータセットを更新用テーブル202から取得する。   Since the flag (cache) of the reference target row indicates invalidity, the reference-side database engine 100 uses the primary key value of the row updated on the update table 202 described with reference to FIG. It is a reference to be specified, and the same processing as that in the case where the update is a change other than the key acquired as advance preparation is performed. That is, the data control unit 112 determines that the data requested to be referenced does not exist in the reference table 201 (the data in the reference table 201 is not valid), and the data request unit 114 displays the key field ( A query specifying the primary key values (“2”, “1”) stored in rA, rB) as a narrowing condition is created, and a data set including the updated data is acquired from the update table 202.

この場合も、参照対象の行のキーフィールドに格納される主キー値を絞り込み条件として指定したクエリを作成するので、参照時における、更新用テーブル202からの最新のデータセットの取得を迅速に行うことができる。   Also in this case, since the query specifying the primary key value stored in the key field of the row to be referenced as a narrowing condition is created, the latest data set is quickly acquired from the update table 202 at the time of reference. be able to.

また、図25は、主キー値を絞り込み条件として指定する参照であって、参照用テーブル201が、当該主キー値の指定が有効な状態にない場合の一例を示している。絞り込み条件としての主キー値の指定が有効な状態に無い場合とは、その主キー値のキーフィールドに無効を示す値を格納する行が存在する場合であり、例えば、事前準備として取得したキーの変更となる更新用テーブル202の更新に伴って、行が追加された場合や、ある行の当該主キー値のキーフィールドが無効に更新された場合などが該当する。   FIG. 25 shows an example in which the primary key value is specified as a narrowing condition, and the reference table 201 is not in a valid state for specifying the primary key value. The case where the specification of the primary key value as the filtering condition is not valid is when there is a row storing a value indicating invalidity in the key field of the primary key value. For example, the key acquired as a preliminary preparation This corresponds to a case where a row is added or the key field of the primary key value in a certain row is invalidally updated in association with the update of the update table 202 that is a change in the above.

図25に示すように、ここでは、テーブルBの主キー(b0)値「1」が絞り込み条件として指定されている。また、参照用テーブル201の行番号(rowid)「3」の行のテーブルB用のキーフィールド(rB)が無効を示していることから、そのキーフィールド(rB)に対応する、絞り込み条件としての主キー値の指定が有効な状態か否かのフラグが無効を示している。この行番号(rowid)「3」の行のテーブルB用のキーフィールド(rB)には、「1」が格納されているべきである可能性があり、このようなテーブルB用のキーフィールド(rB)が不定である行の有無を、当該テーブルB用のキーフィールド(rB)に対応する、絞り込み条件としての主キー値の指定が有効な状態か否かのフラグで即時に判定することができる。   As shown in FIG. 25, here, the primary key (b0) value “1” of the table B is specified as the narrowing-down condition. In addition, since the key field (rB) for the table B in the row of the row number (rowid) “3” of the reference table 201 indicates invalidity, as a narrowing condition corresponding to the key field (rB) A flag indicating whether the specification of the primary key value is valid indicates invalid. There is a possibility that “1” should be stored in the key field (rB) for the table B of the row with the row number “3”, and such a key field for the table B ( The presence / absence of a row for which rB) is indeterminate can be immediately determined by a flag corresponding to the key field (rB) for the table B whether or not the designation of the primary key value as a narrowing condition is valid. it can.

この場合、参照側データベースエンジン100は、まず、データ制御部112が、参照が要求されたデータは参照用テーブル201に存在しない(参照用テーブル201のデータは有効ではない)と判定する。そして、データ要求部114が、参照要求で絞り込み条件として指定されたテーブルBの主キー(b0)値「1」を用いてクエリを作成し、当該参照要求で絞り込み条件として指定されたテーブルBの主キー(b0)値「1」に関わるデータセットを更新用テーブル202から取得する。参照要求で絞り込み条件として指定された主キー値を用いてクエリを作成することにより、参照時における、更新用テーブル202からのデータセットの取得を最小限に抑えることができる。   In this case, in the reference-side database engine 100, first, the data control unit 112 determines that the data requested for reference does not exist in the reference table 201 (data in the reference table 201 is not valid). Then, the data request unit 114 creates a query using the primary key (b0) value “1” of the table B specified as the narrowing condition in the reference request, and the table B specified as the narrowing condition in the reference request. A data set related to the primary key (b0) value “1” is acquired from the update table 202. By creating a query using the primary key value specified as a narrowing condition in the reference request, acquisition of a data set from the update table 202 at the time of reference can be minimized.

データ要求部114は、キーフィールド(rB)に主キー値「1」が格納され、フラグ(cache)が無効を示していた行については、ポインタ(ptr)を、取得したデータセットの配置場所を示す値に更新して、フラグ(cache)を有効に更新する。また、キーフィールド(rB)に無効を示す値が格納されており、かつ、そのキーフィールド(rB)には主キー値「1」が格納されているべきであった行については、さらに、当該キーフィールド(rB)に主キー値「1」を格納する。この際、キーフィールド(rB)に無効を示す値を格納する行が無くなった場合、データ要求部114は、そのキーフィールド(rB)に対応する、絞り込み条件としての主キー値の指定が有効な状態か否かのフラグを有効に更新する。   The data request unit 114 stores the pointer (ptr) for the location of the acquired data set for the row in which the primary key value “1” is stored in the key field (rB) and the flag (cache) indicates invalid. Update to the indicated value and update the flag (cache) effectively. Further, for a row in which a value indicating invalidity is stored in the key field (rB) and the primary key value “1” should have been stored in the key field (rB), The primary key value “1” is stored in the key field (rB). At this time, if there is no more row storing a value indicating invalidity in the key field (rB), the data requesting unit 114 is valid to specify the primary key value as the narrowing condition corresponding to the key field (rB). The status flag is updated effectively.

以上が、本データベースシステム1の参照用テーブル201の参照時における参照用テーブル201の更新手順である。   The above is the update procedure of the reference table 201 when referring to the reference table 201 of the database system 1.

このように、本データベースシステム1は、更新用テーブル202の更新に伴う参照用テーブル201の更新を「参照側主導」で行うことを実現する。   As described above, the database system 1 realizes the update of the reference table 201 accompanying the update of the update table 202 on the “reference side initiative” basis.

図26は、更新側データベースエンジン100の参照用テーブル201の生成時の動作手順を示す図である。   FIG. 26 is a diagram illustrating an operation procedure when the reference database 201 of the update-side database engine 100 is generated.

更新側データベースエンジン100は、クエリを受け取ると(ブロックA1)、SQL文解析部121が、そのクエリが参照用テーブル201の生成を要求するものであるか否かを判定する(ブロックA2)。SQL文解析部121により、参照用テーブル201の生成を要求するクエリであると判定されると(ブロックA2のYES)、データ制御部122が、その参照用テーブル201のスキーマを作成する(ブロックA3)。更新通知部123は、データ制御部122により作成されたスキーマを、更新通知として参照側データベースエンジン100に送信する(ブロックA4)。   When the update-side database engine 100 receives the query (block A1), the SQL statement analysis unit 121 determines whether the query requests generation of the reference table 201 (block A2). If the SQL statement analysis unit 121 determines that the query is a query that requests generation of the reference table 201 (YES in block A2), the data control unit 122 creates a schema for the reference table 201 (block A3). ). The update notification unit 123 transmits the schema created by the data control unit 122 to the reference database engine 100 as an update notification (block A4).

図27は、参照側データベースエンジン100の参照用テーブル201の生成時の動作手順を示す図である。   FIG. 27 is a diagram illustrating an operation procedure when the reference database 201 of the reference-side database engine 100 is generated.

参照側データベースエンジン100は、更新通知としてスキーマを受信すると(ブロックB1)、データ変更部113が、このスキーマに基づき、図13に示した構成を持つ参照用テーブル201をメモリ115に作成する(ブロックB2)。   When the reference database engine 100 receives the schema as the update notification (block B1), the data changing unit 113 creates the reference table 201 having the configuration shown in FIG. 13 in the memory 115 based on this schema (block). B2).

図28は、更新側データベースエンジン100の更新用テーブル202の更新時の動作手順を示す図である。   FIG. 28 is a diagram illustrating an operation procedure when updating the update table 202 of the update-side database engine 100.

更新側データベースエンジン100は、クエリを受け取ると(ブロックC1)、SQL文解析部121が、そのクエリが更新用テーブル202の更新を要求するものであるか否かを判定する(ブロックC3)。SQL文解析部121により、更新用テーブル202の更新を要求するクエリであると判定されると(ブロックC3のYES)、更新対象の行の情報(更新行情報210)がメモリ124に格納される(ブロックC4)。   When the update-side database engine 100 receives the query (block C1), the SQL statement analysis unit 121 determines whether or not the query requests an update of the update table 202 (block C3). If the SQL statement analysis unit 121 determines that the query is a request for updating the update table 202 (YES in block C3), information on the update target row (update row information 210) is stored in the memory 124. (Block C4).

この更新に対するコミットを要求するクエリを受けると(ブロックC2のYES)、データ制御部122は、コミット処理を実行する(ブロックC6)。また、更新通知部123は、メモリ124に格納された更新行情報210に基づき、更新通知を参照側データベースエンジン100に送信する(ブロックC7)。   When a query requesting a commit for this update is received (YES in block C2), the data control unit 122 executes a commit process (block C6). In addition, the update notification unit 123 transmits an update notification to the reference database engine 100 based on the updated row information 210 stored in the memory 124 (block C7).

図29は、参照側データベースエンジン100の更新用テーブル202の更新時および参照要求の受け付け時の動作手順を示す図である。   FIG. 29 is a diagram illustrating an operation procedure when the update table 202 of the reference database engine 100 is updated and when a reference request is received.

参照側データベースエンジン100は、更新用テーブル202の更新通知を更新側データベースエンジン100から受けると(ブロックD1)、データ変更部113が、その通知内容に応じて、参照用テーブル201を変更する(ブロックD2)。この時の参照用テーブル201の変更とは、更新データの反映ではなく、参照時に更新データの反映が必要であることを記録するためのものである。   When the reference database engine 100 receives an update notification of the update table 202 from the update database engine 100 (block D1), the data changing unit 113 changes the reference table 201 according to the notification content (block). D2). The change of the reference table 201 at this time is not to reflect the update data but to record that the update data needs to be reflected at the time of reference.

また、参照側データベースエンジン100は、データの参照を要求するクエリを受けた場合(ブロックD3)、SQL文解析部121が、その要求が参照用テーブル201を適用可能なものであるか否かを判定する(ブロックD4)。参照用テーブル201を適用可能なものであった場合(ブロックD4のYES)、データ制御部112は、参照対象のデータが参照用テーブル201に存在すれば(ブロックC5のNO)、そのデータを返却する(ブロックD8)。   Further, when the reference database engine 100 receives a query for requesting data reference (block D3), the SQL sentence analysis unit 121 determines whether the request is applicable to the reference table 201. Determination is made (block D4). If the reference table 201 is applicable (YES in block D4), the data control unit 112 returns the data if the reference target data exists in the reference table 201 (NO in block C5). (Block D8).

一方、参照対象のデータが参照用テーブル201に存在しなかった場合(ブロックC5のYES)、データ要求部114が、参照用テーブル201の情報を使って、参照対象のデータを更新用テーブル202から取得する(ブロックC6)。データ変更部113は、データ要求部114により取得されたデータを参照用テーブル201に格納し(ブロックD7)、また、データ制御部112は、同データを返却する(ブロックD8)。   On the other hand, when the reference target data does not exist in the reference table 201 (YES in block C5), the data request unit 114 uses the information in the reference table 201 to retrieve the reference target data from the update table 202. Obtain (block C6). The data change unit 113 stores the data acquired by the data request unit 114 in the reference table 201 (block D7), and the data control unit 112 returns the data (block D8).

図30は、更新用テーブル202の更新に伴う参照用テーブル201の更新を「更新側主導」で行った場合と「参照側主導」で行った場合との処理量を比較する図であり、図31は、更新用テーブル202の更新に伴う参照用テーブル201の更新を「更新側主導」で行った場合と「参照側主導」で行った場合との所要時間を比較する図である。   FIG. 30 is a diagram for comparing the processing amount when the update of the reference table 201 accompanying the update of the update table 202 is performed by “update side initiative” and when it is performed by “reference side initiative”. FIG. 31 is a diagram for comparing the required time when the update of the reference table 201 accompanying the update of the update table 202 is performed by “update side initiative” and when it is performed by “reference side initiative”.

図30および図31から明らかなように、更新用テーブル202の更新に伴う参照用テーブル201の更新に関する処理量および所要時間は、いずれも、「参照側主導」の方が「更新側主導」よりも格段に少ない。   As is clear from FIG. 30 and FIG. 31, the amount of processing and the time required for updating the reference table 201 accompanying the update of the update table 202 are both “reference side initiative” and “update side initiative”. Is much less.

このように、本データベースシステム1によれば、キャッシュテーブルを効率的に更新することが実現される。   As described above, according to the database system 1, it is possible to efficiently update the cache table.

(第2実施形態)
次に、第2の実施の形態について説明する。
(Second Embodiment)
Next, a second embodiment will be described.

図32は、本実施形態のデータベースシステム1における参照用テーブルの一構成例を示す図である。   FIG. 32 is a diagram showing a configuration example of the reference table in the database system 1 of the present embodiment.

図32に示すように、本データベースシステム1では、参照用テーブル201の各行のキャッシュが有効か否かのフラグを、さらにテーブル毎に持つ(cacheA,cacheB)。図32では、参照用テーブル201の行番号(rowid)「B」の行のテーブルAに関するフラグ(cacheA)が無効を示している。一方、この行のテーブルBに関するフラグ(cacheB)は有効を示している。つまり、テーブルAのデータとテーブルBのデータとが結合されたデータセット単位ではなく、更新用テーブル202のテーブル単位に有効か否かを管理する。まず、図33を参照して、本データベースシステム1の参照用テーブル201が図32に示す状態となる更新用テーブル202の更新時の動作手順を説明する。   As shown in FIG. 32, the database system 1 further has a flag indicating whether or not the cache of each row of the reference table 201 is valid for each table (cacheA, cacheB). In FIG. 32, the flag (cacheA) relating to the table A in the row of the row number (rowid) “B” of the reference table 201 indicates invalid. On the other hand, the flag (cacheB) relating to the table B in this row indicates validity. That is, whether or not the data is valid for each table of the update table 202 is managed instead of the data set unit in which the data of the table A and the data of the table B are combined. First, with reference to FIG. 33, an operation procedure at the time of updating the update table 202 in which the reference table 201 of the database system 1 is in the state shown in FIG. 32 will be described.

図33に示すように、ここでは、テーブルAの行番号(a0)「2」の行の1つ目のフィールド(a1)が、「田中」から「里中」に更新されている。”a1”は、事前準備として取得したキー以外、つまり結合に関わるキーではない。この場合、更新側データベースエンジン100の更新通知部123は、この行のデータを無効とするための更新通知(Clear)を参照側データベースエンジン100に送信する。この更新通知には、テーブルAの行番号「2」を示す情報(A2)が含まれる。   As shown in FIG. 33, here, the first field (a1) of the row with the row number (a0) “2” in the table A is updated from “Tanaka” to “Satonaka”. “A1” is not a key obtained as a preliminary preparation, that is, a key related to the combination. In this case, the update notification unit 123 of the update-side database engine 100 transmits an update notification (Clear) for invalidating the data in this row to the reference-side database engine 100. This update notification includes information (A2) indicating the row number “2” of the table A.

一方、参照側データベースエンジン100は、この更新通知を受けると、データ変更部113が、テーブルA用のインデックスで参照用テーブル201の行番号を取得し、その行のテーブルA用のフラグ(cacheA)を無効に更新する。これにより、参照用テーブル201は、図32に示す状態となる。   On the other hand, when the reference-side database engine 100 receives this update notification, the data change unit 113 acquires the row number of the reference table 201 using the index for the table A, and the flag (cacheA) for the table A of that row. Update to invalid. Thereby, the reference table 201 is in the state shown in FIG.

次に、図34を参照して、参照用テーブル201が図32に示す状態、つまり参照用テーブル201の行番号(rowid)「B」の行のテーブルAに関するフラグ(cacheA)が無効を示している状態にある状況下において、この行のデータを参照する時の動作手順を説明する。   Next, referring to FIG. 34, the state of the reference table 201 shown in FIG. 32, that is, the flag (cacheA) related to the table A in the row of the row number (rowid) “B” of the reference table 201 indicates invalid. The operation procedure when referring to the data in this row in the situation where the user is in the state will be described.

参照対象の行のいずれかのフラグ(cacheA,cacheB)が無効を示す場合、データ要求部114は、参照用テーブル201の生成要求に含まれるクエリの条件であって、参照要求のクエリに含まれる条件である「SELECT 名前、場所 FROM A,B WHERE a2=1 and a3=b0 and b2=’今’」のうち、フラグが無効のテーブル(ここでは、テーブルA)に関する絞り込み条件(a2=1)のみを適用し、また、そのテーブル用のキーフィールドに格納される主キー値を絞り込み条件として指定したクエリを作成する。これにより、フラグが無効を示すデータを迅速に取得することができる。データ変更部113は、その行のデータセットの中の当該データ部分のみを、取得されたデータで更新する。   When any of the flags (cacheA, cacheB) in the reference target row indicates invalidity, the data request unit 114 is a query condition included in the generation request of the reference table 201 and is included in the reference request query. Of the conditions "SELECT name, location FROM A, B WHERE a2 = 1 and a3 = b0 and b2 = 'now'", the filtering condition (a2 = 1) for the table with invalid flag (here, table A) Is applied, and a query that specifies the primary key value stored in the key field for the table as a narrowing condition is created. Thereby, it is possible to quickly acquire data indicating that the flag is invalid. The data changing unit 113 updates only the data portion in the data set of the row with the acquired data.

このように、本データベースシステム1によれば、事前準備として取得した、結合に関わるキー以外の変更となる更新用テーブル202の更新に伴う参照用テーブル201の更新について、より一層の効率化を図ることが実現される。   As described above, according to the database system 1, the efficiency of the update of the reference table 201 accompanying the update of the update table 202, which is a change other than the key related to the join, acquired as advance preparation is further improved. Is realized.

(第3実施形態)
次に、第3の実施の形態について説明する。
(Third embodiment)
Next, a third embodiment will be described.

図35は、本実施形態のデータベースシステム1における参照用テーブルの一構成例を示す図である。   FIG. 35 is a diagram showing a configuration example of a reference table in the database system 1 of the present embodiment.

図35に示すように、本データベースシステム1では、参照用テーブル201の各行について、データセットの配置場所を示すポインタを持つのではなく、更新用テーブル202のテーブル毎に、データセットを構成するデータ(同一テーブルの同一行から複数のフィールドのデータが抽出される場合は、当該複数のデータからなるデータセット)の配置場所を示すポインタを持つ(Aptr,Bptr)。このポインタ(Aptr,Bptr)は、キャッシュが有効か否かのフラグの役割を兼ねる。   As shown in FIG. 35, in this database system 1, each row of the reference table 201 does not have a pointer indicating the location of the data set, but the data constituting the data set for each table of the update table 202. (When data of a plurality of fields is extracted from the same row of the same table, it has a pointer (Aptr, Bptr) indicating the arrangement location of the data set. These pointers (Aptr, Bptr) also serve as a flag indicating whether or not the cache is valid.

テーブル形式でデータを格納する場合、異なる行のフィールドに同一のデータが格納されることが発生し得る。そこで、ポインタを更新用テーブル202のテーブル毎に持つことにより、このような場合であっても、その行数分、当該同一のデータを格納するための記憶領域を確保することを不要とし、重複の圧縮を実現する。   When storing data in a table format, it may occur that the same data is stored in fields in different rows. Therefore, by having a pointer for each table of the update table 202, even in such a case, it is not necessary to secure a storage area for storing the same data for the number of rows, and there is duplication. Realize compression.

各実施形態の動作手順は、ソフトウェア(プログラム)によって実現することができるので、このソフトウェアを格納したコンピュータ読み取り可能な記憶媒体を通じてこのソフトウェアを通常のコンピュータにインストールして実行することにより、各実施形態と同様の効果を容易に実現することができる。   Since the operation procedure of each embodiment can be realized by software (program), the software is installed in a normal computer through a computer-readable storage medium storing this software and executed. The same effect as can be easily realized.

本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。   Although several embodiments of the present invention have been described, these embodiments are presented by way of example and are not intended to limit the scope of the invention. These novel embodiments can be implemented in various other forms, and various omissions, replacements, and changes can be made without departing from the scope of the invention. These embodiments and modifications thereof are included in the scope and gist of the invention, and are included in the invention described in the claims and the equivalents thereof.

1…データベースシステム、10…データベース、11…コントローラ、12…ファイルシステム、100…データベースエンジン、111…SQL文解析部、112…データ制御部、113…データ変更部、114…データ要求部、121…SQL文解析部、122…データ制御部、123…更新通知部、201…参照用テーブル、202…更新用テーブル   DESCRIPTION OF SYMBOLS 1 ... Database system, 10 ... Database, 11 ... Controller, 12 ... File system, 100 ... Database engine, 111 ... SQL sentence analysis part, 112 ... Data control part, 113 ... Data change part, 114 ... Data request part, 121 ... SQL sentence analysis unit, 122 ... data control unit, 123 ... update notification unit, 201 ... reference table, 202 ... update table

Claims (8)

2以上の第1テーブルおよび前記2以上の第1テーブルを事前に参照要求に適するように変形をした第2テーブルを用いて、データの参照要求に応答するデータベースシステムであって、
前記2以上の第1テーブルを管理する第1管理手段と、
前記第2テーブルを管理する第2管理手段と、
を具備し、
前記第2テーブルは、前記参照要求に適するように、前記2以上の第1テーブルを結合して生成されるものであって、前記2以上の第1テーブルのデータが結合されたデータセット毎に、前記2以上の第1テーブルの主キー値を格納する2以上のキーフィールドと、データセットが有効か否かを示す値を格納する第1フラグとを有し、
前記第1管理手段は、前記2以上の第1テーブルのデータが更新された場合、その更新内容を示す更新通知を前記第2管理手段に送信する通知手段を具備し、
前記第2管理手段は、
前記更新通知を受信した場合、前記更新通知で示される更新内容に該当する前記第2テーブルのデータを無効化する無効化手段と、
前記2以上の第1テーブルのデータの参照要求を受けた場合であって、そのデータの参照要求に応答するために必要な前記第2テーブルのデータが無効化されている場合、そのデータを前記2以上の第1テーブルから取得して前記第2テーブルに格納する更新手段と、
を具備し、
前記無効化手段は、
前記更新通知で示される更新内容が前記2以上の第1テーブルの結合に関わるキー値以外かつ前記2以上の第1テーブルの主キー値以外の更新である場合、該当するデータセットに対応する前記第1フラグの値を無効を示す値に更新し、
前記更新通知で示される更新内容が前記2以上の第1テーブルの結合に関わるキー値または前記2以上の第1テーブルの主キー値の更新である場合、該当するデータセットに対応する前記2以上のキーフィールドの中の更新対象となった第1テーブルの主キー値を格納するキーフィールド以外のキーフィールドの値と、前記第1フラグの値とを無効を示す値に更新する、
データベースシステム。
2 or more of the first table and the two or more first table using the second table in which the modified to suit the reference request in advance, a database system that responds to a data reference request,
First management means for managing the two or more first tables;
Second management means for managing the second table;
Comprising
The second table is generated by combining the two or more first tables so as to be suitable for the reference request, and for each data set in which the data of the two or more first tables are combined. Two or more key fields that store primary key values of the two or more first tables, and a first flag that stores a value indicating whether or not the data set is valid,
The first management means includes notification means for transmitting an update notification indicating the update contents to the second management means when data of the two or more first tables is updated,
The second management means includes
When receiving the update notification, invalidation means for invalidating the data of the second table corresponding to the update content indicated by the update notification;
When the reference request for the data of the two or more first tables is received and the data of the second table necessary for responding to the reference request for the data is invalidated, the data is Updating means for acquiring from two or more first tables and storing in the second table;
Equipped with,
The invalidation means includes
When the update content indicated in the update notification is an update other than the key value related to the combination of the two or more first tables and other than the primary key value of the two or more first tables, the update data corresponding to the corresponding data set Update the value of the first flag to a value indicating invalidity,
When the update content indicated by the update notification is a key value related to the combination of the two or more first tables or the update of the primary key value of the two or more first tables, the two or more corresponding to the corresponding data set Updating the value of the key field other than the key field storing the primary key value of the first table to be updated in the key field and the value of the first flag to a value indicating invalidity.
Database system.
前記第2テーブルは、前記2以上の第1テーブル毎に、主キー値による当該主キー値を格納するキーフィールドの直接検索を行うためのインデックスをさらに有し、
前記無効化手段は、前記インデックスを用いて、前記更新通知で示される更新内容に該当するデータセットを検索する、
請求項に記載のデータベースシステム。
The second table further includes an index for performing a direct search of a key field storing the primary key value by a primary key value for each of the two or more first tables.
The invalidation means searches for a data set corresponding to the update content indicated by the update notification using the index.
The database system according to claim 1 .
前記第2テーブルは、前記2以上のキーフィールド毎に、無効を示す値を格納するキーフィールドが存在するか否かを示す値を格納する第2フラグをさらに有し、
前記無効化手段は、前記2以上のキーフィールドの値を無効を示す値に更新した場合、そのキーフィールドに対応する前記第2フラグの値を、無効を示す値を格納するキーフィールドが存在することを示す値に更新する、
請求項に記載のデータベースシステム。
The second table further includes a second flag for storing a value indicating whether or not a key field for storing a value indicating invalidity exists for each of the two or more key fields,
When the invalidation means updates the value of the two or more key fields to a value indicating invalidity, there exists a key field for storing a value indicating invalidity as the value of the second flag corresponding to the key field. Update to a value that indicates
The database system according to claim 2 .
前記更新手段は、前記2以上の第1テーブルの結合を伴うデータの参照要求に応答するために必要な前記第2テーブルのデータセットに対応する前記第1フラグの値が無効を示す値であった場合、そのデータセットに対応する前記2以上のキーフィールドの主キー値を用いた絞り込み条件を含むデータの取得要求を発行して、更新データを前記2以上の第1テーブルから取得する請求項に記載のデータベースシステム。 In the updating means, the value of the first flag corresponding to the data set of the second table necessary for responding to a data reference request involving the combination of the two or more first tables is a value indicating invalidity. In this case, an update request is acquired from the two or more first tables by issuing a data acquisition request including a narrowing condition using primary key values of the two or more key fields corresponding to the data set. 3. The database system according to 3 . 前記更新手段は、前記2以上の第1テーブルの結合を伴うデータの参照要求に前記第1テーブルの主キー値を用いた絞り込み条件が含まれ、かつ、その第1テーブルの主キー値を格納するキーフィールドに対応する第2フラグの値が、無効を示す値を格納するキーフィールドが存在することを示す場合、前記データの参照要求に含まれる絞り込み条件に用いられる前記第1テーブルの主キー値を用いた絞り込み条件を含むデータの取得要求を発行して、更新データを前記2以上の第1テーブルから取得する請求項に記載のデータベースシステム。 The updating means includes a narrowing condition using a primary key value of the first table in a data reference request involving a combination of the two or more first tables, and stores the primary key value of the first table If the value of the second flag corresponding to the key field indicates that there is a key field storing a value indicating invalidity, the primary key of the first table used for the narrowing-down condition included in the data reference request The database system according to claim 4 , wherein a data acquisition request including a narrowing condition using a value is issued, and update data is acquired from the two or more first tables. 前記更新手段は、前記取得した更新データを反映させたデータセットに対応する前記2以上のキーフィールドに主キー値を格納するとともに、前記第1フラグの値を有効を示す値に更新し、この主キー値の格納により無効を示す値を格納するキーフィールドが無くなった場合、そのキーフィールドに対応する前記第2フラグの値を、無効を示す値を格納するキーフィールドが存在しないことを示す値に更新する請求項に記載のデータベースシステム。 The updating means stores a primary key value in the two or more key fields corresponding to the data set reflecting the acquired update data, and updates the value of the first flag to a value indicating validity, When there is no key field storing a value indicating invalidity due to storage of the primary key value, the value of the second flag corresponding to the key field is replaced with a value indicating that there is no key field storing a value indicating invalidity. The database system according to claim 5 , wherein the database system is updated. 前記通知手段は、前記2以上の第1テーブルから前記第2テーブルを生成する際の絞り込み条件を満たすデータの更新が前記2以上の第1テーブル上で行われた場合、前記更新通知を前記第2管理手段に送信する請求項に記載のデータベースシステム。 The notifying means sends the update notification when the update of data satisfying a narrowing condition for generating the second table from the two or more first tables is performed on the two or more first tables. 2. The database system according to claim 1 , which is transmitted to the management means. 前記通知手段は、同一テーブルの同一行上での複数のデータの更新が行われた場合、当該複数のデータの更新に対して1つの更新通知を前記第2管理手段に送信する請求項に記載のデータベースシステム。 The notification means, when a plurality of update data on the same row of the same table has been made, to claim 1 for transmitting one update notification to the plurality of data updates to the second management means The database system described.
JP2014043636A 2014-03-06 2014-03-06 Database system Active JP6239407B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014043636A JP6239407B2 (en) 2014-03-06 2014-03-06 Database system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014043636A JP6239407B2 (en) 2014-03-06 2014-03-06 Database system

Publications (2)

Publication Number Publication Date
JP2015170076A JP2015170076A (en) 2015-09-28
JP6239407B2 true JP6239407B2 (en) 2017-11-29

Family

ID=54202778

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014043636A Active JP6239407B2 (en) 2014-03-06 2014-03-06 Database system

Country Status (1)

Country Link
JP (1) JP6239407B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7171312B2 (en) * 2018-08-28 2022-11-15 株式会社Screenホールディングス SEARCH DEVICE, SEARCH METHOD AND SEARCH PROGRAM
US11617148B2 (en) * 2019-05-03 2023-03-28 Samsung Electronics Co., Ltd. Enhancement of flexibility to change STS index/counter for IEEE 802.15.4z
CN111162995A (en) * 2019-12-26 2020-05-15 苏州浪潮智能科技有限公司 Data change notification method, device, equipment and readable storage medium

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0193843A (en) * 1987-10-05 1989-04-12 Hitachi Ltd System for coupling table
JPH1165909A (en) * 1997-08-15 1999-03-09 Oki Electric Ind Co Ltd Distributed processing system
US20040193656A1 (en) * 2003-03-28 2004-09-30 Pizzo Michael J. Systems and methods for caching and invalidating database results and derived objects
US8065269B2 (en) * 2008-12-19 2011-11-22 Ianywhere Solutions, Inc. Immediate maintenance of materialized views
JP5597623B2 (en) * 2011-12-02 2014-10-01 株式会社日立システムズ Database processing method

Also Published As

Publication number Publication date
JP2015170076A (en) 2015-09-28

Similar Documents

Publication Publication Date Title
CN112513835B (en) Techniques to enable and integrate in-memory search of semistructured data and text documents using in-memory columnar query processing
EP2987096B1 (en) Caching external data sources for sql processing
CN108287886B (en) Method and device for synchronizing data change information
US10204135B2 (en) Materializing expressions within in-memory virtual column units to accelerate analytic queries
US12216654B2 (en) Materialized table refresh using multiple processing pipelines
EP3340079A1 (en) Data promotion
KR20080104288A (en) A data caching method, a caching data providing method, and a computer readable medium
US11762775B2 (en) Systems and methods for implementing overlapping data caching for object application program interfaces
CN105009111A (en) Distributed SQL query processing using key-value storage system
CN102867070A (en) Method for updating cache of key-value distributed memory system
CN106407360B (en) Data processing method and device
US11074267B2 (en) Staged approach to automatic data discovery and performance
JP6239407B2 (en) Database system
US20220067108A1 (en) Microservices data aggregation search engine updating
CN107808006B (en) Fuzzy query method, device and system based on large data volume
CN107609091B (en) Method for realizing cross-database multi-table combined query system
CN101271410A (en) Data sharing method, system and device
CN105589915A (en) Database acceleration method through operation index value and hybrid layer cache
US9043371B1 (en) Storing information in a trusted environment for use in processing data triggers in an untrusted environment
CN105574010B (en) Data query method and device
KR102415155B1 (en) Apparatus and method for retrieving data
JP2016194907A (en) Apparatus, program, and method for updating cache memory
US20200192925A1 (en) Self-adapting resource aware phrase indexes
JP2016194826A (en) Database processing control method, processing control program, and database server
JP6293462B2 (en) File access system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160923

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170711

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170718

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170829

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171101

R151 Written notification of patent or utility model registration

Ref document number: 6239407

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151