• ベストアンサー
  • 困ってます

トランザクション

  • 質問No.9416441
  • 閲覧数119
  • ありがとう数2
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 95% (58/61)

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

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

  • 回答No.2
  • ベストアンサー

ベストアンサー率 28% (4361/15341)

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

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

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


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



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

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

お礼率 95% (58/61)

回答ありがとうございます!
投稿日時:2018/01/09 20:39

その他の回答 (全1件)

  • 回答No.1

ベストアンサー率 19% (839/4398)

少し違うかな。

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

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

お礼率 95% (58/61)

回答ありがとうございます!
投稿日時:2018/01/09 20:39
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,600万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ