こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

-広告-

解決済みの質問

トランザクション

データベースに置いてトランザクションは
多くのプログラミング言語の関数みたいなものですか?

投稿日時 - 2018-01-08 23:57:08

QNo.9416441

困ってます

質問者が選んだベストアンサー

RDBMSでのTransactionとは、ROLLBACK可能な処理単位のことです。

RDBMSではテーブルへのinsert、delete、updateと更新の処理が幾つかありますが、更新を進めていったなかで全てキャンセルしたい自称が発生することがあります。
その時、Transactionを使わないとバックアップからの復旧くらいしか手段がないことになりますが、Transactionを利用すると更新処理をキャンセルしてトランザクション処理開始前の状態に戻すことが可能となります。

クライアント側やサーバープロセスのプログラムでbegin transactionなどの宣言で開始することもあれば、ストアードプロシージャ内で宣言することもあります。


勿論、大規模な処理の場合はメモリ搭載量や表領域などシステム要件に依存することもあるのでシステ家設計のときにある程度考慮させないと後々破綻して混乱を招くだけになりますから…



ということで、関数ではなくRDBMS特有の処理単位となります。

私はOracleで学んだのでMySQLとは言葉の使い方が違うかもしれませんが、そこは読み手側で読み替えてください。

投稿日時 - 2018-01-09 06:51:10

お礼

回答ありがとうございます!

投稿日時 - 2018-01-09 20:39:24

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(2)

ANo.1

少し違うかな。

トランザクションとは1つのまとまった処理という意味では関数と同じですが、
トランザクションはやりかけたモノを元に戻す事ができます。

銀行で1万円引き出した時、通帳から1万円引き、機械から1万円を出すという
処理があります。何処かでエラーが生じて機械から1万円が出せなくなったら
通帳から引いた1万円をもとに戻すことができます。
関数では1万円は戻りません。

投稿日時 - 2018-01-09 03:44:04

お礼

回答ありがとうございます!

投稿日時 - 2018-01-09 20:39:14

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-