新城@筑波大学情報です。こんにちは。

In article <bq29jh$7m1$1@news-wst.ocn.ad.jp>
        Tanaka-Qtaro-Yasuhiro <tanaq@ca2.so-net.ne.jp> writes:
> データベースの処理を作るときに、「トランザクションで囲んでおきさえ
> すれば、ACID特性はしっかり守られて問題ナシ」とか思って作っていたら、
> isolation levelが READ COMMITEDだったので、処理を全部見直す必要が
> 出てきた、とまあそんなところです。

isolation level って、そんな話だったんですか。と、例の本を見
てみると、書いてありますね。日本語だと上巻の484ページあた
り。「カーソル安定」とか2次とか。「更新データの消失がなく、
ダーティ・データを読まない」という性質が保証されるみたい。

In article <bq29jh$7m1$1@news-wst.ocn.ad.jp>
        Tanaka-Qtaro-Yasuhiro <tanaq@ca2.so-net.ne.jp> writes:
> 副問い合わせで最大値とって結合してたり、でもってその結果で削除する
> 行を決めてたりとか、複雑な処理だとこんがらがっちゃうんですね。
> で、トランザクション処理をうまく設計する定石とか基準みたいなものが
> あるんじゃないかと思い、さきの質問を投げたわけです。

図7.8に「一見等かだが実は違うさうつのありふれたプログラム」
というのがあって、2次(read committed)だと失敗する例が出て
います。

exec sql select balance 
         into:balance
         from account
         where account_id = :id

balance = balance + 10;
exec sql update = :balance
     where account_id = :id;

成功するのは、たとえば、こんなもの。

exec sql update account
     set balnce = balance + 10
     where account_id = :id;

In article <3989220news.pl@insigna.ie.u-ryukyu.ac.jp>
        kono@ie.u-ryukyu.ac.jp (Shinji KONO) writes:
> 河野真治 @ 琉球大学情報工学です。(Oracle の話?)
> 「性能が下がりそうなところを下げる」ってことなんだと思います。
> おそらくは、ISOLATION LEVELで lockの種類を決めているんでしょ
> う。Shared lock しかかけないとかさ。

書込んだデータは、長期排他ロックて、読込んだデータは短期排他
ロック、ということみたい。表7.9。486ページ。

In article <bq4s0n$js9$1@news-wst.ocn.ad.jp>
        Tanaka-Qtaro-Yasuhiro <tanaq@ca2.so-net.ne.jp> writes:
> 田中久太郎です。
> 英語を読むのは苦手なほうなのですが、値段と版の差を考えると
> たしかに原著のほうが良さそうですね。

いえいえ。喜連川先生の本ということで、日本語の方がいいと思い
ます。つまり、一種のブランド品なんです。これを持っていると喜
連川先生に少し近づいた気がするということです。

\\ 新城 靖 (しんじょう やすし) \\
\\ 筑波大学 電子・情報       \\