JPH06103125A - Dbmsにおける更新処理方法 - Google Patents
Dbmsにおける更新処理方法Info
- Publication number
- JPH06103125A JPH06103125A JP4252973A JP25297392A JPH06103125A JP H06103125 A JPH06103125 A JP H06103125A JP 4252973 A JP4252973 A JP 4252973A JP 25297392 A JP25297392 A JP 25297392A JP H06103125 A JPH06103125 A JP H06103125A
- Authority
- JP
- Japan
- Prior art keywords
- statement
- update
- select
- record
- condition
- 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.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
の処理方法に対し、UPDATE文でのレコード位置の特定処
理(インデックス検索)1回分の処理時間の削減するこ
とを可能とするDBMSにおける更新処理方法を提供す
ることを目的とする。 【構成】 データベースにアクセスするプログラム中に
埋め込まれたSQL言語で記述された問い合わせ文のプ
リプロセス処理過程において、着目するSELECT文の位置
から、第1の条件を満たすまでプログラム内の実行文を
先読みし、先読みによって得たUPDATE文に係る第2の条
件を満足するときに、当該着目するSELECT文が指定して
いるレコード位置情報を保存し、この保存したレコード
位置情報を用いて先読みによって得たUPDATE文が更新す
るレコードを特定することを要旨とする。
Description
タベースに対するSQL言語を使ったアプリケーション
・プログラムにおけるDBMSにおける更新処理方法に
関するものである。
ル・データベース(以後、DBと記す)107とは、デ
ータ項目を表(テーブル)形式で格納するデータベース
であり、DB107はリレーショナル・データベース管
理システム(以後DBMSと記す)108で管理する。
図7にテーブル形式のDB107の構成の例を示す。テ
ーブルの縦方向の列をカラム、横方向の行をレコードと
呼ぶことにする。
述されたアプリケーション・プログラム(以後APと記
す)101中に、JISで定められたデータベース言語
(SQL言語;構造化照会言語)[JIS X 3005 Nov.198
7 ]を記述することで行われる。ここで、ホスト言語と
は、C,COBOL,FORTRAN,Adaなどの通
常のプログラミング言語である。ホスト言語とSQL言
語間のデータの授受は特別なホスト言語の変数(以後ホ
スト変数と記す)を経由することにより行う。
場合のDB107に対するAP(一部)の例を示す。図
中のh1,h2,h3,h4,h5,h14,h15はホスト変数である。
ル処理過程とは、AP101中に記述されたSQL文を
ホスト言語または計算機が実行可能な言語によるロジッ
クに変換する過程である。
は、以下のような処理パターンがよく用いられる。
xより大きいならaを引き、既にx以下なら何もしな
い。」つまり条件のついた更新である。
SQL文(UPDATE文(G101))で記述することが可能であ
る。
1に示すような処理フローのUPDATE文の処理I106に
よって、図10に示すようなロジックHを生成する。
であるレコードを特定する(ステップH102)。
す(ステップH103)。
がついた場合には、SQL言語仕様内での条件分岐の記
述が不可能なため、ホスト言語の条件分岐を利用し、2
つのSQL文(SELECT文(J101)とUPDATE文(J103))に分
けて以下のように記述する必要がある。ここで、UPDATE
は更新処理を行うSQL文、SELECTは検索処理を行うS
QL文を表す。
SELECT文の処理(ステップI104)及びUPDATE文の処
理(ステップI106)によって、図13に示すような
ロジックを生成する。
であるレコードを特定する。(ステップK102) (2)ホスト変数h1にレコード内のカラムC1の値を代入
する。(ステップK103) (3)もし、変数h1の値が0より大きいなら、以下のス
テップK105、ステップK106を行う。(ステップ
K104) (4)テーブルT1でカラムC0の値が123であるレコー
ドを特定する。(ステップK105) (5)特定したレコード内のカラムC1の値を1減らす。
(ステップK106)
テップK105は同一の処理を行っている。つまり、SE
LECT文(J101)とUPDATE文(J103)のそれぞれでインデック
スの検索を行い、同じレコードの特定を行っている。こ
れはSELECT文(J101)とUPDATE文(J103)が以下の条件を満
たすためである。
クション内で連続している。
とUPDATE文のテーブル指定が同じである。
とUPDATE文の検索条件指定(WHERE句)が同じである。
(a)〜(c)を満たしていれば、SELECT文とUPDATE文
は必ず同一のレコードを指すため、UPDATE文でのインデ
ックス検索は無駄である。
した場合には、そのホスト変数値も同一でなければなら
ない。
ときに、通常の方法ではSELECT文とUPDATE文の各々につ
いてインデックス検索を行うため、無駄な処理が発生す
るという問題があった。
で、更新処理時のレコード位置特定処理(たとえばイン
デックス検索処理)を削除することで、条件付きの更新
処理を高速化するDBMSにおける更新処理装置を提供
することを目的とする。
本願第1の発明は、データベースにアクセスするプログ
ラム中に埋め込まれたSQL言語で記述された問い合わ
せ文のプリプロセス処理過程において、着目するSELECT
文の位置から、第1の条件を満たすまでプログラム内の
実行文を先読みし、先読みによって得たUPDATE文に係る
第2の条件を満足するときに、当該着目するSELECT文が
指定しているレコード位置情報を保存し、この保存した
レコード位置情報を用いて先読みによって得たUPDATE文
が更新するレコードを特定することを要旨とする。
アクセスするプログラム中に埋め込まれたSQL言語で
記述された問い合わせ文のプリプロセス処理過程におい
て、着目するSELECT文の位置から、次のSQL文を検出
するまで実行文を先読みし、この先読みによって得たUP
DATE文に係る第3の条件を満足するときに、前記着目す
るSELECT文の位置情報と検索条件に用いた全てのホスト
変数を保存し、先読みによって得たUPDATE文に係る第4
の条件を満足するときに、保存されるレコード位置情報
を用いて先読みによって得たUPDATE文が更新するレコー
ドを特定することを要旨とする。
LECT文の位置より先読みを行いUPDATE文を検出し、SELE
CT文とUPDATE文の対象とするレコードが同一であること
をプリプロセス時に確認することによって、プリプロセ
スにおいてUPDATE文でのレコード特定にSELECT文で特定
したレコード位置情報を用いるロジックを生成すること
で、従来UPDATE時に必要であったレコード特定のための
インデックス検索処理を無くすことができ、処理の高速
化が可能になる。
読みを行いUPDATE文を検出し、SELECT文とUPDATE文の検
索条件内のホスト変数の値が同一であれば2つの文の対
象とするレコードが同一になることをプリプロセス時に
確認することによって、プリプロセスにおいてSELECT文
の検索条件内のホスト変数を保存し、その値を更新実行
時にUPDATE文の検索条件内のホスト変数と比較をし、も
し、対応するホスト変数のそれぞれが全て等しければレ
コード特定にSELECT文で特定したレコード位置情報を用
いるロジックを作成することで、従来UPDATE時に必要で
あったレコード特定のためのインデックス検索処理を無
くすことができ、処理の高速化が可能になる。
て説明する。
は、AP中に埋め込まれたSELECT文とそれに続くUPDATE
文を対象とする。図1を参照するに、(1)AP中のSE
LECT文を検出した後(ステップA103)、以下に示す
条件Aのいずれかを満たすまでAPを先読みする(ステ
ップA104)。
きなくなる。
し(ステップA105)、全てを満足すれば、ステップ
A106、ステップA107に進み、以下の処理(3)
(4)を行う。1つでも満たさない条件が存在する場合
には、SELECT文およびUPDATE文に対してそれぞれ従来の
ロジックを生成する。
SQL文はUPDATE文である。
が同一である。
が同一である。
た。
連続性が保証できた。
のロジックAを生成する(ステップA106)。
WHERE句で指定された条件を満たすレコードを特定す
る。
する。
値を代入する。
は、以下のロジックBを生成する(ステップA10
7)。
いて更新を行う。
SELECT文を検出した後、まず、以下に示す条件Cを満た
すまでAPを先読みする。
し、全てを満足するときには、以下に示す処理(3)、
(4)を行う。1つでも満たさない条件が存在する場合
には、SELECT文およびUPDATE文に対してそれぞれ従来の
ロジックを生成する。
SQL文はUPDATE文である。
が同一である。
がホスト変数名の差異を除き同一である。
連続性が保証できた。
に示すロジックEを生成する。
WHERE句で指定された条件を満たすレコードを特定す
る。
する。
変数をバックアップ用のホスト変数に保存する。
値を代入する。
は、以下のロジックFを生成する。
クションで、かつ、間に他のSQL文の実行がなく、か
つ保存しておいたホスト変数とそれに対応するUPDATE文
のホスト変数の値がそれぞれ全て等しいか判定する。
していたレコード位置情報を用いて更新を行う。
DATE文に対して従来の処理を行う。以上、本発明は上述
した過程を有することを特徴とするものである。
詳細に説明する。
の動作フローチャート、図2及び図3はプリプロセス処
理を説明するための図である。
SELECT文(図2に示すB101)を検出した後、まず、ステ
ップA104に従い、以下に示す第1の条件としての条
件Aのいずれかを満たすまでAPを先読みする。
きなくなる。
て異なるが、C言語の場合には以下の条件を満たすとき
SELECT文の検索条件に影響がないと考える。
数の変更がない。 ・ホスト言語の変数のうち、ホスト変数以外の変数の更
新がない。 ・関数呼び出しがない。または、呼び出す関数内でSELE
CT文の WHERE句で使用するホスト変数の更新がない。
異なるが、C言語の場合には以下の条件を満たすとき先
読みを行う部分の連続性が保証できると考える。
ど)により処理が不連続になる。 ・ジャンプからの入り口(ラベル、setjmp) がある。 ・関数呼び出しがない。または、呼び出す関数内にSQ
L文がない。 この場合、先読みを行うと次の文(B102) はif文であ
り、これは条件Aの(a)(b)(c)を満たさないの
で先読みを継続する。
であるため、これは条件(a)を満足するので先読みを
終了する。
述した条件Bをチェックし、全てを満足すれば、ステッ
プA106及びステップA107による処理を行う。1
つでも満たさない条件が存在する場合には、SELECT文お
よびUPDATE文に対してそれぞれ従来のロジックを生成す
る(ステップA108、ステップA109、ステップA
110)。
している。
L文はUPDATE文(B103)であった。 ・SELECT文(B101)とUPDATE文(B103)は、対象テーブルが
どちらもT1である。 ・SELECT文(B101)とUPDATE文(B103)は、検索条件を示す
WHERE句が等しい。 ・SELECT文(B101)からUPDATE文(B103)までの先読みの間
に、SELECT文(B101)の検索条件を変更するような処理が
なかった。 ・SELECT文(B101)からUPDATE文(B103)までの実行時連続
性が保証できた。
SELECT文(B101)に対しては、図3に示すように以下のロ
ジックAを生成する。
内で、 WHERE句で指定された条件(C4=:h4 and C5=:h5)
を満たすレコードを特定する。(ステップC102) (3-2) 特定したレコードの位置情報を保存する。(ステ
ップC103) (3-3) ホスト変数(h3,h2,h1) にレコード内のカラム
(C3,C2,C1) の値を代入する。
の処理のロジック(B102)を(3)と(4)の間に展開す
る。(ステップC105) (4)ステップA108に従いSELECT文(B101)に続くUP
DATE文(B103)に対しては、図3に示すように以下のロジ
ック3を生成する。
いて更新を行う。(ステップC106) 次に図を参照して第2の実施例について説明する。
ート、図5から図6はのプリプロセス処理を説明するた
めの図である。
5)中のSELECT文(E101) を検出した後、まず、ステッ
プD104に従い、以下の条件Cを満たすまでAPを先
読みする。
102)であり、これは(a)を満たさないので先読みを継
続する。次に、先読みを行うと、UPDATE文(E103) であ
るため、これは条件(a)を満足するので先読みを終了
する。
した条件Dをチェックし、全てを満足すれば、以下の処
理には、SELECT文およびUPDATE文に対してそれぞれ従来
のロジックを生成(ステップD108、ステップD10
9、ステップD110)する。
満足している。
L文はUPDATE文(E103) であった。 ・SELECT文(E101) とUPDATE文(E103) は、対象テーブ
ルがどちらもT1である。 ・SELECT文(E101) とUPDATE文(E103) は、検索条件を
示す WHERE句が等しい。
までの先読みの間に、SELECT文(E101) の検索条件を変
更するような処理がなかった。 ・SELECT文(E101) からUPDATE文(E103) までの実行時
連続性が保証できた。
LECT文(E101) に対しては、図6に示すように以下のロ
ジックEを生成する。
で、 WHERE句で指定された条件を満たすレコードを特定
する(ステップF102)。
する。(ステップF1003) (c)検索条件指定に用いた全てのホスト変数(h4,h5)
をバックアップ用のホスト言語の変数(bh4,bh5)に保存
する(ステップF104)。
内のカラム(C3.C2.C1) の値を代入する(ステップF1
05)。
の処理のロジック(E102) を(3)と(4)の間に展開
する(ステップF106)。
(E101) に続くUPDATE文(E103) に対しては、図6に示
すように以下のロジックFを生成する。
4,bh5)の値とそれに対応するUPDATE時の検索条件のホス
ト変数(h14,h15)の値がそれぞれ全て等しいこと(bh4=
h14かつbh5=h15)をチェックする(ステップF10
7)。
していたレコード位置情報を用いて更新を行う(ステッ
プF108)。
DATE文に対して従来の処理を行う。(ステップF10
9、ステップF110) 以上、本発明の実施例を具体例を用いて説明してきた
が、本発明は上記実施例に限定される事はなく、その要
旨を逸脱しない範囲、たとえばSELECT文とUPDATE文の検
索条件の複雑化や、SELECT文とUPDATE文の間のロジック
の複雑化(SELECT文とUPDATE文の間に複数のif文が存在
することや、その他の関数/手続きが存在すること)や
簡約化(SELECT文とUPDATE文の間にif文がなく単に連続
する場合など)、等の種々変更が可能である。
TE文)でもUPDATE文と同様にインデックス検索を行うた
め、条件付きDELETE文のは条件付きUPDATE文の場合と全
く同様に本発明の適用が可能である。
先読みを行いUPDATE文を検出し、SELECT文とUPDATE文の
対象とするレコードが同一であることをプリプロセス時
に確認することによって、プリプロセスにおいてUPDATE
文でのレコード特定にSELECT文で特定したレコード位置
情報を用いるロジックを生成することで、従来UPDATE時
に必要であったレコード特定のためのインデックス検索
処理を無くすことができ、処理の高速化が可能になる。
DATE文を検出し、SELECT文とUPDATE文の検索条件内のホ
スト変数の値が同一であれば2つの文の対象とするレコ
ードが同一になることをプリプロセス時に確認すること
によって、プリプロセスにおいてSELECT文の検索条件内
のホスト変数を保存し、その値を更新実行時にUPDATE文
の検索条件内のホスト変数と比較をし、もし、対応する
ホスト変数のそれぞれが全て等しければレコード特定に
SELECT文で特定したレコード位置情報を用いるロジック
を作成することで、従来UPDATE時に必要であったレコー
ド特定のためのインデックス検索処理を無くすことがで
き、処理の高速化が可能になる。
囲内で記述されたAPに対して行うことができる。
てC言語を用いるが、本発明はこれに限定されること無
く、ホスト言語がC言語以外の場合でも同様に適用可能
である。
更新処理において、従来の処理方法に対し、UPDATE文で
のレコード位置の特定処理(インデックス検索)1回分
の処理時間の削減することが可能になる。
プロセスの動作フローチャートである。
更新処理の例を示す図である。
されるロジックを示すフローチャートである。
リプロセスの動作フローチャートである。
理の例を示す図である。
されるロジックを示すフローチャートである。
る。
すブロック図である。
を示すフローチャートの例である。
チャートである。
る。
ロジックを示すフローチャートの例である。
Claims (2)
- 【請求項1】 データベースにアクセスするプログラム
中に埋め込まれたSQL言語で記述された問い合わせ文
のプリプロセス処理過程において、着目するSELECT文の
位置から、第1の条件を満たすまでプログラム内の実行
文を先読みし、先読みによって得たUPDATE文に係る第2
の条件を満足するときに、当該着目するSELECT文が指定
しているレコード位置情報を保存し、この保存したレコ
ード位置情報を用いて先読みによって得たUPDATE文が更
新するレコードを特定することを特徴とするDBMSに
おける更新処理方法。 - 【請求項2】 データベースにアクセスするプログラム
中に埋め込まれたSQL言語で記述された問い合わせ文
のプリプロセス処理過程において、着目するSELECT文の
位置から、次のSQL文を検出するまで実行文を先読み
し、この先読みによって得たUPDATE文に係る第3の条件
を満足するときに、前記着目するSELECT文の位置情報と
検索条件に用いた全てのホスト変数を保存し、先読みに
よって得たUPDATE文に係る第4の条件を満足するとき
に、保存されるレコード位置情報を用いて先読みによっ
て得たUPDATE文が更新するレコードを特定することを特
徴とするDBMSにおける更新処理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP25297392A JP3508863B2 (ja) | 1992-09-22 | 1992-09-22 | Dbmsにおける更新処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP25297392A JP3508863B2 (ja) | 1992-09-22 | 1992-09-22 | Dbmsにおける更新処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06103125A true JPH06103125A (ja) | 1994-04-15 |
JP3508863B2 JP3508863B2 (ja) | 2004-03-22 |
Family
ID=17244732
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP25297392A Expired - Lifetime JP3508863B2 (ja) | 1992-09-22 | 1992-09-22 | Dbmsにおける更新処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3508863B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6405205B1 (en) | 1999-03-03 | 2002-06-11 | Nec Corporation | Message display method and system for reproduction of DML objects in relational databases |
-
1992
- 1992-09-22 JP JP25297392A patent/JP3508863B2/ja not_active Expired - Lifetime
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6405205B1 (en) | 1999-03-03 | 2002-06-11 | Nec Corporation | Message display method and system for reproduction of DML objects in relational databases |
Also Published As
Publication number | Publication date |
---|---|
JP3508863B2 (ja) | 2004-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6349305B1 (en) | Method and system for database processing by invoking a function related to index type definition, generating an execution plan based on index type name | |
US20040267747A1 (en) | Transaction processing system supporting concurrent accesses to hierarchical data by transactions | |
US6754653B2 (en) | Method, system, and program for processing a fetch request for a target row in a table that precedes as current row | |
US6898607B2 (en) | Proposed syntax for a synchronized commands execution | |
US5857182A (en) | Database management system, method and program for supporting the mutation of a composite object without read/write and write/write conflicts | |
US9104740B2 (en) | Enhanced attribute synchronization in a content management system | |
US7895181B2 (en) | Configuration-based search | |
US7117197B1 (en) | Selectively auditing accesses to rows within a relational database at a database server | |
JP2541464B2 (ja) | マルチメディア文書の記述・提示方法 | |
JP2009520255A (ja) | Sqlプロシージャを配備するためのシステム及び方法 | |
US7979477B2 (en) | Placeholder control for updating database object | |
US6980995B2 (en) | Method, computer program product, and system for automatically generating a hierarchial database schema report to facilitate writing application code for accessing hierarchial databases | |
JP3508863B2 (ja) | Dbmsにおける更新処理方法 | |
US7437504B2 (en) | Reading a storage medium | |
US7127448B1 (en) | Reforming queries to selectively audit accesses to rows within a relational database | |
US5930800A (en) | Execution of user defined ADT function implemented by embedded module in a database management method | |
EP0336580A2 (en) | Relational databases | |
JP2008176777A (ja) | ウェブ文書スタイル変更システム及びその方法 | |
US6925630B1 (en) | Method for generating code for processing a database | |
JPH06215037A (ja) | インデックスの自動更新装置 | |
US20060004863A1 (en) | Method, system and program for simplifying data flow in a statement with sequenced subexpressions | |
JP2000090093A (ja) | 全文検索方法及び全文検索システム並びに全文検索プログラムを記録した記録媒体 | |
DE69914290D1 (de) | Verfahren zur Daten-Übertragung zwischen einem Rechnerunterstützten Entwurfssystem und einem Rechnerunterstützten Herstellungssystem, Verwendung eines solchen Verfahrens und Schnittstelle zwischen den genannten Systemen | |
JP3338752B2 (ja) | 更新可能表の明示指定によるデッドロック削減方式 | |
JPH05197534A (ja) | プログラムデータベースシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7426 Effective date: 20031217 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20031217 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090109 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090109 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100109 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110109 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110109 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120109 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130109 Year of fee payment: 9 |
|
EXPY | Cancellation because of completion of term | ||
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130109 Year of fee payment: 9 |