目次
10 関係: ACID (コンピュータ科学)、ロールバック、トランザクション、アトミックコミット、コミット (データ管理)、関係データベース、SAVEPOINT (SQL)、SQL、2相コミット、3相コミット。
ACID (コンピュータ科学)
ACIDとは、信頼性のあるトランザクションシステムの持つべき性質として1970年代後半にジム・グレイが定義した概念で、これ以上分解してはならないという意味の不可分性(atomicity)、一貫性(consistency)、独立性(isolation)、および(durability)は、トランザクション処理の信頼性を保証するために求められる性質であるとする考え方である。 この語はその4つの性質を表す英語の単語の頭文字をとって作られた頭字語であり、1983年にアンドレアス・ロイターとテオ・ヘルダーによって提唱された。
見る COMMIT (SQL)とACID (コンピュータ科学)
ロールバック
ロールバック(rollback、巻き戻し)はコンピュータ用語では、データ更新などで障害が起こったときに、その前の状態にまで戻ることをいう。後進復帰とも言う。 データベースでは、更新前のジャーナルファイルを使い、更新前の正常な状態に戻す。 コンピュータ用語以外では、過去の良い状態に戻ることなどを指す。ロールバック(長期低価格)商品、ロールバックマラリア(マラリア撃退)計画など。
トランザクション
トランザクション (transaction) とは、商取引、売買、執行、取扱、議事録という意味の単語である。コンピュータ用語としては、情報システムにおける業務に存在する不可分な処理も指す(一般的な用語のトランザクションには一貫したなどの意味合いは無い。)。
アトミックコミット
アトミックコミット (英: atomic commit)は、計算機科学の分野では、一連の個別の変更が単一の処理として実行される処理のこと。すべての変更が適用された場合、アトミックコミットは成功したと表現される。アトミックコミットを完了する前に障害が発生した場合、"コミット"は中止され、すべての変更が取り消されます (ロールバック)。これにより、システムは常に一貫した状態に保たれる。もう1つの重要な特性は、不可分操作としての性質に由来する。トランザクション分離により、一度に1つのアトミックコミットのみが処理される。アトミックコミットの最も一般的な用途は、データベースシステムとバージョン管理システムである。
コミット (データ管理)
コミット (英: commit)は、計算機科学とデータ管理では、一連の暫定的な内容更新を恒久的なものとしてトランザクションの終了をマークし、確定する行為。コミットの記録は、コミットログと呼ばれる。コミットすると動詞的に使われることもある。
関係データベース
関係データベース(かんけいデータベース、リレーショナルデータベース、英: relational database)は、関係モデル(リレーショナルデータモデル、後述)にもとづいて設計、開発されるデータベースである。関係データベースを管理するデータベース管理システム (DBMS) を関係データベース管理システム (RDBMS) と呼ぶ。 Oracle Database、Microsoft SQL Server、MySQL、PostgreSQL、DB2、FileMaker、H2 Database などがRDBMSである関係データベースに含まれないデータベースは、NoSQL などを参照。。
SAVEPOINT (SQL)
SAVEPOINTは、サブトランザクション(入れ子トランザクションとも呼ばれる)を実現するための、データベース言語SQLのステートメントの1つである。トランザクション内の特定の地点に名前を付け、その地点以前に行った処理に影響を及ぼすことなく、その地点以降に行った処理をロールバックできる。1つのトランザクション内で複数の SAVEPOINT を作成することもできる。 SAVEPOINTはデータベースを利用するアプリケーションで、複雑なエラー復帰処理を実現するのに有効である。複数のステートメントから成るトランザクションの途中でエラーが発生した場合、SAVEPOINTを利用すると、トランザクション全体をロールバックすることなく、エラーから復帰することができる。
見る COMMIT (SQL)とSAVEPOINT (SQL)
SQL
SQL(Structured Query Language)(エスキューエルよりデジタル大辞泉、IT用語がわかる辞典を参照、シークェル、シーケルよりDBM用語辞典を参照)は、関係データベース管理システム (RDBMS) において、データの操作や定義を行うためのデータベース言語(問い合わせ言語)、ドメイン固有言語である。プログラミングにおいてデータベースへのアクセスのために、他のプログラミング言語と併用される。 SQLが使われるRDBは「エドガー・F・コッドによって考案された関係データベースの関係モデルにおける演算体系である、関係代数と関係論理(関係計算)に基づいている」と宣伝されていることが多い。しかし、SQLについては、そのコッド自身をはじめ他からも、関係代数と関係論理にきちんと準拠していないとして批判されてはいる(The Third Manifesto - クリス・デイト、ヒュー・ダーウェン)。
2相コミット
2相コミット(Two-Phase Commit)とは、コンピュータネットワークやデータベースにおいて、分散システム内の全ノードがトランザクションのコミットに合意するための分散アルゴリズムあるいはプロトコルである。ネットワーク障害やノード故障の場合も考慮され、結果としてトランザクションはコミットが成功するか失敗するかのいずれかの状態となる。しかし、Dale Skeen とマイケル・ストーンブレーカーの研究によれば、2相コミットは同時に複数のサイトが(無作為に)障害に陥った場合に対応できない。このアルゴリズムの2相とは、「調整者; coordinator」が全「参加者; cohorts」の調整を行う「コミット要求相; commit-request phase」と、調整者の決定によって全参加者がトランザクションを完了させる「コミット相; commit phase」である。
3相コミット
コンピュータネットワークやデータベースにおいて、3相コミットプロトコル(3PC)は分散アルゴリズムであり、分散システムの全ノードがデータベーストランザクションのコミットに合意することを可能にするものである。しかし、2相コミット(2PC)とは違い、3PCはノンブロッキングである。より詳細には、3PCはトランザクションがコミットするか、中止するかのいずれかにかかる時間に上限を設ける。この性質により、もしあるトランザクションが3PCによりコミットしようとして、あるロックを行っている場合、タイムアウトによりそのロックが解除されることが保証される。

