UNIX の 57 番の書き込みへコメントを付けます.
ボード:
T-Net - 管理人室
フリートーク - フリートーク MainStream
音楽 - 音楽 MainStream
コンピュータ音楽 - コンピュータ音楽 MainStream
コンピュータ音楽 - MIDI
コンピュータ音楽 - DTM おすすめリンク集
コンピュータ音楽 - 音楽理論・作曲技術
コンピュータ音楽 - 習作 発表会
コンピュータ音楽 - オリジナル音楽 発表会
コンピュータ音楽 - 既存曲の研究
フラクタル・Math Art - フラクタル・Math Art MainStream
フラクタル・Math Art - TFEngine & T-Fract 開発室
コンピュータ - コンピュータ MainStream
コンピュータ - プログラミングのお話
コンピュータ - UNIX
コンピュータ - インターネット
ゲーム - ゲーム MainStream
ゲーム - PlayStation
ゲーム - PlayStation2
ハンドル(名前):
(guest)
Subject:
書き込み:(1行は折り返さないように30文字程度で改行してください。)
>> 要するに、アクセスが重なったときに整合性が取れるように >> 片方の処理をきちんとひとまとめの処理として終わらせる >> と言うような機構のことでしょうか。 > たとえば,銀行である人Aが別の人Bにお金を振り込むとき, > 1.Aの口座の残高をとりだし,x円引き,結果を書き込む > 2.Bの口座の残高をとりだし,x円足し,結果を書き込む > という2つの処理をするわけです. > もし,ここで1が終わった段階でマシンがフリーズすると, > x円が消失してしまいます. > また,別の問題として,Aさんが振込処理すると同時に, > 別のCさんがAさんの口座に振り込もうとしたとき, > 1の処理で残高を取りだしたあとにCさんの振込処理で > 残高が増えた場合,その後1の処理で結果を書き込むと, > 振込処理で残高が増えた分が消えてしまいます. > % 実際このくらいの簡単な操作なら,トランザクション以前に > % 1つの塊として処理されますが(^^;; > そういった問題を防ぐために,1と2を1つの塊として > 処理するのがトランザクションですね. > PostgreSQLは良く知りませんが,Oracleなどであれば, > トランザクション完了の通知を受け取った段階で, > たとえマシンがフリーズしようが電源切ろうが > ちゃんと実行した内容は保存されてますし, > 途中でダメになったらトランザクション全体が > キャンセルされます. >>> ただ,速さなら一番でしょう(^^; >>> めちゃくちゃ速いはずです. >> そうなんですか。いいことを聞きました(^^) >> ただ、複数テーブルの処理になると整合性が取れなくなる可能性が >> あるわけですね。 > 複数テーブルの場合,A,B,Cのテーブルがあるなら, > その2つのテーブルを排他ロックしてから書き替えれば, > (DBが途中で止まらない限り)整合性はとれます. > ただ,テーブルのロック順を統一しないとデッドロックに > なってしまうのでまずいです.
■ メインページ