㈠ 在資料庫系統中的事務是什麼是否就是指一個具體操作
實 時 事 務 模 型
----1 . 系 統 模 型與 傳 統 數 據 庫 系 統 相 類 似, 實 時 數 據 庫 系 統 的 操 作 也 是 以 事 務 的 形 式 出 現。 事 務 就 是 包 含 在BEGIN/COMMIT/ABORT 之 間 的 操 作 序 列。 系 統 以 事 務 為 單 位 分 配CPU、 數 據 等 資 源, 進 行 優 先 級 的 分 配、 調 度 處 理 等。
---- 實 時 數 據 庫 系 統 中 的 事 務 與 傳 統 事 務 有 很 大 的 不 同, 其 事 務 可 以 有 定 時 限 制( 典 型 地 為 截 止 期), 系 統 追 求 的 目 標 不 是 系 統 的 吞 吐 量, 而 是 單 個 事 務 定 時 限 制 的 滿 足, 以 使 滿 足 定 時 限 制 的 事 務 比 率 最 大; 傳 統 事 務 的 原 子 性、 一 致 性、 隔 離 性 及 永 久 性 在 實 時 環 境 下 變 得 太 嚴 格 或 不 可 能; 要 求 采 用" 識 時" 機 制 來 處 理 事 務 的 調 度 或 並 發 控 制, 而 不 是 傳 統 的 先 來 先 服 務 方 式。
----2 . 結 構 模 型
---- 傳 統 數 據 庫 中 事 務 就 是 一 個 平 坦 的 操 作 序 列, 事 務 的 執 行 要 么 順 利 執 行 到 提 交, 要 么 夭 折 而 不 在 系 統 的 任 何 部 分 留 有 痕 跡。 在 實 時 應 用 環 境 下 則 不 同:
應 用 語 義 有 時 顯 式 地 要 求 結 構 上 的 一 個 事 務 為 另 一 個 事 務 的 子 事 務。 例 如, 在CAD 工 程 中, 一 個 工 程 事 務 劃 分 成 若 干 個 設 計 事 務, 而 每 一 設 計 事 務 又 可 分 成 若 干 個 子 任 務 而 分 配 給 各 設 計 者。
實 時 應 用 中 被 觸 發 的 活 動 依 應 用 要 求 可 以 是 觸 發 它 的 事 務 的 子 事 務。 在 過 程 控 制、 自 動 化 等 領 域 這 種 情 形 很 普 遍。
在 分 布 式 應 用 環 境 中, 一 個 事 務 可 能 要 分 出 若 干 在 不 同 節 點 上 執 行 的 代 理 事 務, 它 們 分 工 合 作 且 都 作 為 原 事 務 的 子 事 務。
在 工 程 應 用 中, 普 遍 存 在 長 壽 事 務 或 開 端 事 務。 這 種 事 務 會 造 成 系 統 資 源 需 求 的 瓶 頸。 為 此, 可 將 這 種 事 務 劃 分 成 若 干 邏 輯 相 對 獨 立 的 子 事 務, 以 便 當 其 結 束 時 能 提 前 釋 放 占 用 的 資 源。
---- 所 以, 實 時 應 用 要 求 系 統 提 供 事 務 嵌 套 機 制。 包 含 其 他 事 務 的 事 務 稱 為" 父 事 務", 被 包 含 的 事 務 稱 為 " 子 事 務", 沒 有 父 事 務 的 事 務 為" 根 事 務"。 事 務 之 間 可 以 形 成 嵌 套 關 系。
實 時 事 務 的 特 征
----1 . 定 時 性
---- 實 時 應 用 中 事 務 的 定 時 性 來 源 於 兩 方 面: 一 是 外 部 環 境 顯 式 給 出 的 反 應 時 間 要 求, 如 截 止 期 等; 二 是 由 於 系 統 中 的 數 據 隨 時 間 變 化 而 轉 嫁 來 的。
---- 定 時 性 包 括 了 兩 方 面 的 含 義:
---- 定 時 限 制 事 務 的 執 行 具 有 顯 式 的 時 限, 如 期 限、 截 止 時 間 等。 這 是 由 於 控 制 系 統 要 隨 時 緊 緊 地 跟 蹤 被 控 系 統 而 引 起 的, 它 要 求RTDB 必 須 有 時 間 處 理 機 構。 時 限 還 可 有 軟 硬 之 分。
---- 定 時 正 確 性 事 務 能 按 合 適 的 時 間 要 求 正 確 執 行。 這 是 由 於 要 求 數 據 對 於 控 制 系 統 的 各 種 決 策 活 動 隨 時 有 效 而 引 起 的, 它 要 求 權 衡 定 時 限 制 與 數 據 一 致 性 等 多 方 面 因 素, 提 供 合 適 的 調 度 算 法。
---- 實 時 事 務 有 不 同 的 定 時 限 制, 其 中 最 重 要 的 有:
---- 截 止 時 間 實 時 事 務 完 成 的 最 後 期 限。 它 可 以 有 硬、 軟 之 分, 具 有 硬 截 止 時 間 的 事 務( 稱 為 硬 實 時 事 務), 必 須 在 其 截 止 時 間 以 前 完 成, 否 則 將 帶 來 災 難 性 的 後 果, 故 到 達 其 截 止 時 間 還 不 能 完 成 的 硬 實 時 事 務 必 須 夭 折。 具 有 軟 截 止 時 間 的 事 務( 稱 為 軟 實 時 事 務), 應 該 在 其 截 止 期 完 成, 但 超 過 其 截 止 時 間 也 還 有 一 定 意 義( 盡 管 不 斷 下 降), 故 軟 實 時 事 務 到 達 其 截 止 時 間 後 不 必 立 即 夭 折 它。
---- 到 達 時 間 事 務 在 系 統 中 生 成 的 時 間。 它 可 以 是 可 預 報 的, 也 可 以 是 不 可 預 報 的。 可 預 報 的 到 達 時 間 可 顯 式 地 給 出 或 者 作 為 一 個 導 出 函 數, 如 周 期 事 務 的 到 達 時 間 是 可 預 報 的。 不 可 預 報 的 到 達 時 間 是 指 當 相 應 事 務 到 達 系 統 時 才 能 知 道, 非 周 期 事 務 的 到 達 時 間 就 是 不 可 預 報 的。
---- 期 望 執 行 時 間 估 算 的 最 壞 情 況 執 行 時 間。 由 於 各 種 不 可 預 報 性 因 素, 它 很 難 做 到 准 確, 估 算 的 最 壞 情 況 執 行 時 間 可 能 與 實 際 情 況 相 差 很 大。 然 而, 為 了 合 理 地 得 到 事 務 的 截 止 時 間 及 適 當 地 調 度 以 使 其 滿 足, 又 必 須 事 先 較 准 確 地 估 算 其 執 行 時 間。
----2 . 語 義 相 關 性
---- 實 時 數 據 庫 事 務 之 間 存 在 著 各 種 關 系, 包 括 結 構 關 系、 數 據 與 通 信 關 系、 時 間 關 系 等, 這 些 關 系 帶 來 了 事 務 間 的 各 種 相 關 性。
----(1) 結 構 相 關
---- 它 來 自 於 復 雜 事 務 模 型 的 結 構 特 征, 用 來 建 模 復 雜 事 務 內 部 並 發 事 務 行 為 的 一 種 約 束。 不 同 的 復 雜 事 務 模 型 有 不 同 的 結 構 相 關 性, 但 它 們 可 以 通 過 事 務 間 的" 執 行 依 賴 性" 來 定 義, 實 時 嵌 套 事 務 中 基 本 的 事 務 依 賴 有:
子 事 務 對 父 事 務 的 開 始 依 賴(BD): 子 事 務 開 始 前 父 事 務 已 經 開 始;
父 事 務 對 子 事 務 的 提 交 依 賴(CD): 父 事 務 提 交 前 子 事 務 已 經 結 束( 提 交 或 夭 折);
子 事 務 對 父 事 務 的 夭 折 依 賴(AD): 父 事 務 夭 折 則 子 事 務 一 定 夭 折。
----(2) 數 據 相 關
---- 數 據 相 關 就 是 不 同 事 務 間 的 共 享 數 據 聯 系, 但 此" 共 享" 概 念 比 傳 統 的 具 有 更 廣 的 意 義: 實 時 嵌 套 事 務 中 的 子 事 務 共 享 父 事 務 數 據, 子 事 務 提 交 時 其 對 數 據 庫 的 更 改 委 托 給 父 事 務, 只 有 父 事 務 提 交 時 才 能 真 正 地 寫 入 數 據 庫。
----(3) 功 能 替 代/ 結 果 補 償
---- 一 個 實 時 應 用 常 常 由 若 干 任 務 組 成, 而 一 個 任 務 有 時 可 以 通 過 不 同 途 徑 來 實 現。 一 個 應 用 建 模 為 一 個 事 務, 一 個 任 務 則 建 模 為 一 組 功 能 等 價 的 子 事 務, 稱 為 該 任 務 的 替 代 集。 若 一 個 任 務 的 替 代 集 中 的 子 事 務 之 一 能 成 功 執 行, 則 該 任 務 是 可 完 成 的。 若 對 應 一 個 事 務 的 所 有 任 務 可 完 成, 則 該 事 務 是 成 功 的( 可 提 交)。 功 能 替 代 導 致 了 事 務 執 行 路 徑 的 不 確 定 性, 即 一 個 事 務 成 功 執 行 的 路 徑 依 賴 於 執 行 過 程 中( 子 事 務) 失 敗 的 發 生, 且 即 使 某 些 子 事 務 失 敗 了, 事 務 仍 可 能 順 利 提 交。 這 還 體 現 了 實 時 事 務 的 健 壯 性, 即 有 的 事 務( 任 務) 不 能 失 敗。
---- 由 於 前 面 所 述 的 事 務 的 結 構 復 雜 性 和 功 能 替 代 性, 因 此, 事 務 的 執 行 經 歷 不 確 定, 一 個 子 事 務 的 執 行 直 到 提 交 時 還 不 能 確 定 它 是 否 需 要。 若 一 個( 子) 事 務 提 交 後, 發 現 它 是 不 需 要 的, 該 怎 么 辦 ? 另 一 方 面, 一 個 實 時 事 務 可 以 物 理 改 變 現 實 世 界 的 狀 態, 換 句 話 說, 事 務 可 以 啟 動 各 種 活 動, 這 些 活 動 在 它 提 交 前 就 已 經 影 響 了 現 實 世 界, 因 而 當 這 種 事 務 夭 折 時, 不 能 進 行 傳 統 意 義 下 的" 還 原"(Undo)。 於 是 需 要 一 種" 補 償" 活 動 來 抵 消 它 所 有 的 影 響, 這 種 補 償 活 動 也 是 事 務。 對 於 一 個( 子) 事 務, 若 存 在 能 抵 消 它 提 交 後 所 產 生 的 所 有 影 響 的( 子) 事 務, 則 稱 其 為 是 可 補 償 的, 否 則 是 不 可 補 償 的。 當 然, 不 是 每 一 個( 子) 事 務 都 是 可 補 償 的, 不 可 補 償 的( 子) 事 務 在 知 道 它 確 實 是 需 要 的 以 前, 一 定 不 能 提 交。
實 時 事 務 分 類
---- 實 時 事 務 可 以 從 不 同 的 側 面 進 行 分 類。
----1 . 按 關 鍵 性 分 類
---- 也 就 是 按 事 務 時 限( 截 止 期) 的 性 質, 即 事 務 超 截 止 期 對 系 統 帶 來 的 影 響 分 類。 而 這 種 時 限 的 性 質 可 以 很 好 地 用 價 值 函 數 來 建 模, 於 是 我 們 有:
---- 硬( 截 止 期/ 實 時) 事 務 超 截 止 期 會 導 致 惡 果( 價 值 函 數 取 大 且 可 能 不 斷 增 加 的 負 值)。 它 對 應 於 安 全 危 急 性 活 動。
---- 軟( 截 止 期/ 實 時) 事 務 超 截 止 期 仍 有 一 定 的 價 值, 且 價 值 不 斷 下 降, 直 到 某 一 時 刻( 稱 為 最 終 有 效 時 間) 降 到 零, 此 後 保 持 為 零( 不 會 為 負)。
---- 固( 截 止 期/ 實 時) 事 務 一 旦 到 達 截 止 時 間, 其 價 值 立 即 降 為 零, 此 後 固 定 為 零( 也 不 會 為 負)。 顯 然, 它 是 軟 實 時 事 務 在 最 終 有 效 時 間 與 截 止 時 間 重 合 情 況 的 特 例。
----2 . 按 功 能 分 類
---- 一 個 實 時 數 據 庫 系 統 以 兩 種 方 式 直 接 與 現 實 世 界 交 互 作 用, 一 是 關 於 現 實 世 界 狀 態 或 事 件 的 信 息 被 記 錄 到 數 據 庫 中, 二 是 事 務 可 以 啟 動 各 種 影 響 現 實 世 界 的 活 動。 這 就 給 予 我 們 一 種 如 下 事 務 分 類:
---- 數 據 接 收 事 務 記 錄 現 實 世 界 的 狀 態 或 發 生 的 事 件 到 數 據 庫 中。 它 是 簡 單 的 只 寫 事 務; 為 了 保 持 數 據 庫 的" 外 部 一 致" 和 跟 蹤 記 錄, 它 應 是 短 的、 周 期 的, 且 應 是 被 立 即 執 行( 不 能 等 待 和 阻 塞) 的 硬 實 時 事 務。 為 了 保 證 其 定 時 限 制 的 滿 足, 它 可 能 會 引 起 對 數 據 庫 一 致 性 的 破 壞。
---- 數 據 處 理 事 務 類 似 傳 統 數 據 庫 的 事 務。 它 用 來 恢 復 已 違 反 了 一 致 性( 可 能 由 於 數 據 接 收 事 務 的 結 果) 的 數 據 庫 的 狀 態。 這 種 事 務 可 看 作 維 護 正 常 運 行 的 監 控 器, 它 可 能 是" 長 壽" 的。
---- 控 制 事 務 引 起 現 實 世 界 中 有 關 活 動 的 執 行。 像 數 據 接 收 事 務 一 樣, 這 種 事 務 是 很 短 的, 盡 管 所 引 起 的 現 實 活 動 可 能 要 執 行 很 長 時 間。 它 通 常 也 是 硬 實 時 的。 這 種 事 務 還 可 以 作 為 數 據 處 理 事 務 的 子 事 務 而 被 調 用, 而 它 本 身 也 可 以 觸 發 子 事 務, 比 如 以 一 子 事 務 來 檢 測 所 引 起 的 現 實 活 動。
實 時 事 務 的 正 確 性
----1 . 正 確 性 概 念 及 內 涵 實 時 事 務 與 傳 統 事 務 的 本 質 區 別 就 在 於 其 有 定 時 限 制, 因 此, 事 務 處 理 必 須 同 時 滿 足 一 致 性 要 求 和 定 時 限 制。 雖 然 實 時 事 務 的 正 確 性 與 傳 統 事 務 一 樣, 也 包 括 數 據 庫 狀 態 正 確 性 和 事 務 執 行 正 確 性 兩 個 方 面, 但 其 含 義 與 內 容 有 很 大 的 不 同。 數 據 庫 狀 態 正 確 性 包 含 內 部 一 致 和 時 間 一 致, 事 務 執 行 正 確 性 則 包 含 其 結 果 正 確 性、 行 為 正 確 性、 結 構 正 確 性 和 時 間 正 確 性。
----2 . 正 確 性 標 准
---- 傳 統 數 據 庫 中 的 原 子 性 和 可 串 行 化 包 含 了 事 務 正 確 性 的 所 有 概 念。 而 實 時 嵌 套 事 務 正 確 性 的 內 容 更 為 豐 富, 實 現 的 手 段 也 就 更 為 復 雜。 傳 統 可 串 行 化 標 准 在 實 時 環 境 下 太 嚴 格 或 不 適 合, 限 制 了 系 統 中 事 務 執 行 的 並 發 度, 對 於 滿 足 事 務 定 時 限 制 是 不 利 的。 我 們 開 發 了 一 種 新 穎 的 准 一 致 性 可 串 行 化 並 發 控 制 策 略, 事 務 執 行 給 系 統 帶 來 的 不 一 致 被 限 定 在 一 定 的 范 圍 內, 並 在 一 定 的 時 機 恢 復 數 據 庫 到 一 致 狀 態。 而 實 時 事 務 的 時 間 正 確 性 需 要" 識 時" 協 議 實 現, 結 構 正 確 性 需 要 事 務 管 理 檢 查 事 務 間 的 結 構 相 關 性 來 實 現。
實 時 事 務 處 理
----1 . 實 時 事 務 優 先 級 分 配
---- 實 時 事 務 的 調 度 和 並 發 控 制 都 是 基 於 事 務 的 優 先 級 進 行 的, 因 此, 如 何 分 配 事 務 的 優 先 級 是 一 個 重 要 的 問 題。
---- 常 見 的 事 務 優 先 級 分 配 算 法 有 以 下 幾 種:
---- 最 早 放 行 最 優 先(Earliest Release First) 該 策 略 將 最 高 優 先 級 指 派 給 具 有 最 早" 放 行"(Release) 時 間 的 事 務。 所 謂 放 行 時 間 就 是 事 務 可 以 開 始 執 行 的 最 早 時 間, 與 此 相 聯 的 有 事 務 到 達(Arrive) 時 間、 事 務 接 納(Admission) 時 間。
---- 截 止 期 最 早 最 優 先(Earliest Deadline First) 即 具 有 最 早 截 止 期 者 優 先 級 最 高。
---- 可 達 截 止 期 最 早 最 優 先(Earliest Feasible Deadline First) 具 有 最 早 的 可 達 截 止 期 者 優 先 級 最 高。 所 謂 一 個 事 務t 的 截 止 期 是 當 前 時 間" 可 達 到" 的, 乃 指 τ +(E -P) ≤d。 這 里 τ 為 當 前 時 間,E、P 分 別 為 事 務T 的 執 行 時 間 估 算 和 已 執 行 時 間, d 為 其 截 止 期。
---- 空 余 時 間 最 短 最 優 先(Least Slack First) 事 務t 的 空 余 時 間S=d -( τ +E -P), 即 推 遲T 的 執 行 而 仍 然 滿 足 其 截 止 期 的 可 推 遲 時 間 量 估 算。
---- 價 值 最 高 最 優 先(Highest Value First) 每 一 事 務 都 有 一 價 值 函 數, 其 值 最 大 者 最 優 先。 問 題 是 如 何 合 理 地 構 造 價 值 函 數, 一 個 例 子 是:
---- V(t)=c(w1( τ - τS) -w2d +w3P -w4S)
---- 其 中 τ、d、P、S 的 意 義 同 上,c、 τs 分 別 為 t 的 危 急 度、 開 始 時 間,wi 為 加 權 因 子。
---- 價 值 密 度 最 大 最 優 先(Greatest Value Density First) 價 值 密 度 函 數 為:
---- 即 事 務 完 成 時 的 期 望 價 值 與 實 現 該 價 值 所 需 計 算 量 的 比 最 大 者 優 先 級 最 高。 顯 然, 對 於 期 望 價 值 一 樣 的 事 務, 該 策 略 偏 向 較 短 者, 因 為 它 每 單 位 消 耗 時 間 所 獲 得 的 價 值 更 大。 與 上 面 的HVF 策 略 一 樣, 這 里 也 有 如 何 設 計 價 值 函 數 的 問 題。
----2 . 實 時 事 務 並 發 控 制 和 調 度
---- 在 實 時 應 用 環 境 中, 如 果 處 理 不 當, 可 能 造 成" 優 先 級 顛 倒", 即 優 先 級 高 的 事 務 等 待 優 先 級 低 的 事 務, 這 對 實 現 事 務 的 定 時 限 制 是 不 利 的。 為 此, 我 們 提 出 了 以 下 幾 種 改 進 方 案:
----(1) 優 先 級 繼 承
---- 優 先 級 繼 承 的 基 本 思 想 是: 當 發 生 優 先 級 顛 倒 時, 將 占 有 者tH 的 優 先 級 提 高 到 與tR 的 一 樣( 即 繼 承tR 的 優 先 級),tH 繼 續 執 行 直 到 結 束( 提 交 或 夭 折)。 在tH 因 某 種 原 因( 如 成 為 死 鎖 的 犧 牲 者) 而 重 啟 動 時, 它 恢 復 原 來 的 優 先 級。 讓tH 繼 承 tR 優 先 級 是 為 了 讓 它 盡 快 完 成, 因 為tH 的 進 展 也 意 味 著tR 的 進 展。 這 種 策 略 稱 為 優 先 繼 承(PI)。
----(2) 高 優 先 級 夭 折
---- 這 種 策 略 的 思 想 是, 當 發 生 優 先 級 顛 倒 時, 夭 折 低 優 先 級 的tH 而 讓 高 優 先 級 的tR 執 行。 該 策 略 稱" 高 優 先" 法(HP)。
---- 這 種 策 略 可 以 消 除 死 鎖, 但 它 的 問 題 是:
對 那 些 已 執 行 時 間 很 長 而 還 需 執 行 的 時 間 已 很 短 的tH, 夭 折 的 代 價 很 大。 尤 其 是 當dH( 截 止 時 間) -ct( 當 前 時 間) 與tH 的" 剩 余 執 行 時 間 估 算"el(tH) 相 差 不 大 時, 重 啟 動 必 然 導 致 其 超 截 止 時 間, 而 且 浪 費 大 量 系 統 資 源, 使 整 個 系 統 性 能 下 降。
若 采 用 像LSF 這 樣 的 動 態 優 先 級 分 配 策 略, 則 被 夭 折 而 重 啟 動 的tH 可 能 馬 上 會 有 比tR 更 高 的 優 先 級。 為 此, 當 重 啟 動 的tH 再 次 與 tR 沖 突 時,tR 可 能 又 被tH 夭 折, 這 樣 就 導 致 循 環 夭 折。
㈡ 事務處理的事務處理
在許多大型、關鍵的應用程序中,計算機每秒鍾都在執行大量的任務。更為經常的不是這些任務本身,而是將這些任務結合在一起完成一個業務要求,稱為事務。如果能成功地執行一個任務,而在第二個或第三個相關的任務中出現錯誤,將會發生什麼?這個錯誤很可能使系統處於不一致狀態。這時事務變得非常重要,它能使系統擺脫這種不一致的狀態。
用戶信息控制系統(CICS)、Tuxedo和TopEnd等產品都是事務處理系統的例子,它們為應用程序提供事務服務。
為了討論事務處理,必須首先定義事務。
事務是一個最小的工作單元,不論成功與否都作為一個整體進行工作。
不會有部分完成的事務。由於事務是由幾個任務組成的,因此如果一個事務作為一個整體是成功的,則事務中的每個任務都必須成功。如果事務中有一部分失敗,則整個事務失敗。
當事務失敗時,系統返回到事務開始時的狀態。這個取消所有變化的過程稱為「回滾」( rollback )。例如,如果一個事務成功更新了兩個表,在更新第三個表時失敗,則系統將兩次更新恢復原狀,並返回到原始的狀態。
保持應用程序的完整性
任何應用程序的關鍵是要確保它所執行的所有操作都是正確的,如果應用程序僅僅是部分地完成操作,那麼應用程序中的數據,甚至整個系統將會處於不一致狀態。例如,看一下銀行轉賬的例子,如果從一個帳戶中提出錢,而在錢到達另一個帳戶前出錯,那麼在此應用程序中的數據是錯誤的,而且失去了它的完整性,也就是說錢會莫名其妙地消失。
克服這種錯誤有兩種方法:
在傳統的編程模型中,開發者必須防止任何方式的操作失敗。對任何失敗點,開發者必須加上支持應用程序返回到這一操作開始時的狀態的措施。換句話說,開發者必須加入代碼使系統能夠在操作出現錯誤時恢復原狀(撤消)。
更為簡單的方法是在事務處理系統的環境之內進行操作,事務處理系統的任務就是保證整個事務或者完全成功,或者什麼也不做。如果事務的所有任務都成功地完成,那麼在應用程序中的變化就提交給系統,系統就處理下一個事務或任務。如果操作中某一部分不能成功地完成,這將使系統處於無效的狀態,應回滾系統的變化,並使應用程序返回到原來的狀態。
事務處理系統的能力就是將完成這些操作的知識嵌入到系統本身。開發者不必為將系統恢復原狀編寫代碼,需要做的只是告訴系統執行任務是否成功,剩下的事情由事務處理系統自動完成。
在幫助開發人員解決復雜的問題時,事務處理系統的另一好處是其ACID屬性。
ACID屬性
當事務處理系統創建事務時,將確保事務有某些特性。組件的開發者們假設事務的特性應該是一些不需要他們親自管理的特性。這些特性稱為ACID特性。
ACID就是:原子性(Atomicity )、一致性( Consistency )、隔離性( Isolation)和持久性(Durabilily)。
1. 原子性
原子性屬性用於標識事務是否完全地完成,一個事務的任何更新要在系統上完全完成,如果由於某種原因出錯,事務不能完成它的全部任務,系統將返回到事務未開始的狀態。
讓我們再看一下銀行轉帳的例子。如果在轉帳的過程中出現錯誤,整個事務將會回滾。只有當事務中的所有部分都成功執行了,才將事務寫入磁碟並使變化永久化。
為了提供回滾或者撤消未提交的變化的能力,許多數據源採用日誌機制。例如,sql Server使用一個預寫事務日誌,在將數據應用於(或提交到)實際數據頁面前,先寫在事務日誌上。但是,其他一些數據源不是關系型資料庫管理系統(RDBMS),它們管理未提交事務的方式完全不同。只要事務回滾時,數據源可以撤消所有未提交的改變,那麼這種技術應該可用於管理事務。
2. 一致性
事務在系統完整性中實施一致性,這通過保證系統的任何事務最後都處於有效狀態來實現。如果事務成功地完成,那麼系統中所有變化將正確地應用,系統處於有效狀態。如果在事務中出現錯誤,那麼系統中的所有變化將自動地回滾,系統返回到原始狀態。因為事務開始時系統處於一致狀態,所以現在系統仍然處於一致狀態。
再讓我們回頭看一下銀行轉帳的例子,在帳戶轉換和資金轉移前,帳戶處於有效狀態。如果事務成功地完成,並且提交事務,則帳戶處於新的有效的狀態。如果事務出錯,終止後,帳戶返回到原先的有效狀態。
記住,事務不負責實施數據完整性,而僅僅負責在事務提交或終止以後確保數據返回到一致狀態。理解數據完整性規則並寫代碼實現完整性的重任通常落在開發者肩上,他們根據業務要求進行設計。
當許多用戶同時使用和修改同樣的數據時,事務必須保持其數據的完整性和一致性。
3. 隔離性
在隔離狀態執行事務,使它們好像是系統在給定時間內執行的唯一操作。如果有兩個事務,運行在相同的時間內,執行相同的功能,事務的隔離性將確保每一事務在系統中認為只有該事務在使用系統。
這種屬性有時稱為串列化,為了防止事務操作間的混淆,必須串列化或序列化請求,使得在同一時間僅有一個請求用於同一數據。
重要的是,在隔離狀態執行事務,系統的狀態有可能是不一致的,在結束事務前,應確保系統處於一致狀態。但是在每個單獨的事務中,系統的狀態可能會發生變化。如果事務不是在隔離狀態運行,它就可能從系統中訪問數據,而系統可能處於不一致狀態。通過提供事務隔離,可以阻止這類事件的發生。
在銀行的示例中,這意味著在這個系統內,其他過程和事務在我們的事務完成前看不到我們的事務引起的任何變化,這對於終止的情況非常重要。如果有另一個過程根據帳戶余額進行相應處理,而它在我們的事務完成前就能看到它造成的變化,那麼這個過程的決策可能建立在錯誤的數據之上,因為我們的事務可能終止。這就是說明了為什麼事務產生的變化,直到事務完成,才對系統的其他部分可見。
隔離性不僅僅保證多個事務不能同時修改相同數據,而且能夠保證事務操作產生的變化直到變化被提交或終止時才能對另一個事務可見,並發的事務彼此之間毫無影響。這就意味著所有要求修改或讀取的數據已經被鎖定在事務中,直到事務完成才能釋放。大多數資料庫,例如SQL Server以及其他的RDBMS,通過使用鎖定來實現隔離,事務中涉及的各個數據項或數據集使用鎖定來防止並發訪問。
4. 持久性
持久性意味著一旦事務執行成功,在系統中產生的所有變化將是永久的。應該存在一些檢查點防止在系統失敗時丟失信息。甚至硬體本身失敗,系統的狀態仍能通過在日誌中記錄事務完成的任務進行重建。持久性的概念允許開發者認為不管系統以後發生了什麼變化,完成的事務是系統永久的部分。
在銀行的例子中,資金的轉移是永久的,一直保持在系統中。這聽起來似乎簡單,但這,依賴於將數據寫入磁碟,特別需要指出的是,在事務完全完成並提交後才寫入磁碟的。
所有這些事務特性,不管其內部如何關聯,僅僅是保證從事務開始到事務完成,不管事務成功與否,都能正確地管理事務涉及的數據。
㈢ 什麼是事務事務中的提交和回滾是什麼意思
事務(Transaction),一般是指要做的或所做的事情。在計算機術語中是指訪問並可能更新資料庫中各種數據項的一個程序執行單元(unit)。事務通常由高級資料庫操縱語言或編程語言(如SQL,C++或Java)書寫的用戶程序的執行所引起,並用形如begin transaction和end transaction語句(或函數調用)來界定。
事務的提交是指事務里的所有操作都正常完成。
事務的回滾是指程序或數據處理錯誤,將程序或數據恢復到上一次正確狀態的行為。
(3)訪問其他系統提交事務擴展閱讀:
事務的特徵:
事務應該具有4個屬性:原子性、一致性、隔離性、持久性。這四個屬性通常稱為ACID特性。
1、原子性(atomicity)。一個事務是一個不可分割的工作單位,事務中包括的諸操作要麼都做,要麼都不做。
2、一致性(consistency)。事務必須是使資料庫從一個一致性狀態變到另一個一致性狀態。一致性與原子性是密切相關的。
隔離性(isolation)。一個事務的執行不能被其他事務干擾。即一個事務內部的操作及使用的數據對並發的其他事務是隔離的,並發執行的各個事務之間不能互相干擾。
4、持久性(rability)。持久性也稱永久性(permanence),指一個事務一旦提交,它對資料庫中數據的改變就應該是永久性的。接下來的其他操作或故障不應該對其有任何影響。
㈣ 在區域網內,想訪問其他計算機,系統提示說伺服器沒有設置事務處理,哪位高手幫幫忙多謝了
想徹底解決「伺服器沒有事務處理」問題的同志請仔細閱讀
自Windows 2000系統以後,微軟就不再用NETBIOS來注冊計算機名,也不再靠WINS對計算機名稱進行解析,而是全部交付給了DNS。
那麼Windows系統是如何通過以上名稱注冊和解析原理來實現在「網上鄰居」上的瀏覽的呢?這就是要涉及到Windows系統中的一個非常重要的服務--Computer Browser Service(計算機瀏覽器服務)。 計算機瀏覽服務是一系列分布式的含有可用的網路資源列表,這些列表分布在一些計算機上,提出瀏覽請求的計算機充當瀏覽工作站,而提供瀏覽列表的計算機充當瀏覽伺服器。
瀏覽器的種類及運行該服務的計算機為實現網路瀏覽目的而執行的各種職能介紹如下:
域主瀏覽器―――僅用於域環境。在默認情況下,域的主域控制器 (PDC) 完成該任務。 收集和維護域中可用伺服器的主瀏覽列表,以及網路中其他域和工作組的名稱。分配和同步其他子網中主瀏覽器的主瀏覽列表,該子網有屬於相同域的計算機。
主瀏覽器 ―――收集和維護子網中可用網路伺服器的主瀏覽列表。完全復制列出的包括主瀏覽列表的信息以獲得網路的完整瀏覽列表。向同一子網上的備份瀏覽器分發完整列表。
備份瀏覽器―――從主瀏覽器接收本子網的瀏覽列表副本。根據請求向其他計算機分發瀏覽列表。
潛在瀏覽器―――在正常情況下,按非瀏覽器運行。在接到子網主瀏覽器指令後才會成為備份瀏覽器。
在某些條件下,如果擔任指定瀏覽器職能的計算機失效或關閉,瀏覽器(或潛在瀏覽器)可能改作其他職能。這通常通過稱作「瀏覽器選舉」的過程來執行。在Windows操作系統的早期版本中瀏覽服務可理解為三個關鍵過程:
1)瀏覽信息的收集
當子網上的主瀏覽器收到主機聲明後,將發送計算機的名稱合並到當前的瀏覽列表中。如果名稱已經存在,則刷新列表。如果名稱不存在,則添加到列表。
(2)瀏覽信息的分發
瀏覽列表由子網主瀏覽器分發給備份瀏覽器。主瀏覽器必須周期性地向本地子網廣播包含配置的域或工作組名稱的聲明消息。該消息確認主瀏覽器在網路上的存在。如果主瀏覽器在一段時間不能聲明自己,則將發生瀏覽器選舉。一旦主瀏覽器存在或(因失敗事件而)被替換,其他備份瀏覽器周期性地與其聯系以獲得其所維護子網瀏覽列表的更新副本。
(3)向來自客戶的瀏覽請求提供服務
當瀏覽客戶計算機在子網上啟動後,將向主瀏覽器請求在子網上備份瀏覽器的列表。主瀏覽器響應該請求並向客戶端提供包含三個備份瀏覽器的列表。瀏覽客戶端則隨機地從列表中選擇一個備份瀏覽器並與其聯系以獲得瀏覽列表副本。被選中的備份瀏覽器響應該客戶機,給它一個域或工作組的伺服器列表。客戶機再從該伺服器列表中取得這個伺服器上的可用資源的列表。
瀏覽器選舉
在NT域環境下或工作組環境下,瀏覽服務維護著一個瀏覽列表,它包含所有可使用的域、工作組和計算機名等,是共享資源的目錄。當我們使用「網上鄰居」時,就在使用這個瀏覽服務。這些系統的瀏覽服務系統同樣包含了主瀏覽器、備份瀏覽器和瀏覽器客戶等角色。
(1)選舉是通過發廣播來實現的,如果哪個計算機的選舉條件比它收到的報文要好,則它將廣播自己的選舉條件,收到別人的選舉條件後每個計算機根據自己在域中的角色延遲不等的時間後再做反應,這樣能減少選舉條件較差的計算機發送選舉報文。 (2)當一個計算機選舉成為主瀏覽器並且它的瀏覽列表是空時,它將廣播一個請求通知的報文,強迫所有的計算機必須在30秒內給予答復,這個30秒的時間是為了防止伺服器過載或報文丟失。 (3)除了承擔主瀏覽器和備份瀏覽器任務的計算機外,其他計算機將向主瀏覽器周期性地發布通知,告知自己是可利用的資源。這個時間開始是1分鍾、2分鍾、4分鍾、8分鍾,以後就是每12分鍾一次了。 (4)如果某個計算機關機了,主瀏覽器連續3個周期也就是36分鍾沒有收到它的消息,將認定它不可用,並從瀏覽列表中刪掉它。但是它還留在備份瀏覽器的計算機里,備份瀏覽器每隔15分鍾呼叫主瀏覽器一次以獲得更新的網路資源列表,也就是說不可用的資源最多要等到36+15=51分鍾後才會從網上徹底消失。這就是為什麼有的計算機改了名,但舊名字依舊留在網上一段時間的原因。 在一個工作組里有一個主瀏覽器,那麼在多個工作組、多個域甚至多個子網里中又將如何呢?這就需要一個域主瀏覽器,每個工作組或域的主瀏覽器要周期性地向這個域主瀏覽器發送自已所管轄的列表,這個周期開始是1分鍾,5次後是15分鍾。如果3個周期內沒有收到這個報文,域主瀏覽器也將它從自己的列表中去除。也就是說,當一個工作組失效後,它還將在主列表中保留45分鍾。域主瀏覽器默認為主域控制器,Windows XP Professional版本的計算機不能擔此重任。當收到瀏覽列表後,計算機必須能解析裡面的NetBIOS名,這就要求網路的WINS服務或DNS服務必須正常,瀏覽才能正常,因為瀏覽的選舉過程是通過UDP廣播實現的。
作為網路管理員,當網上鄰居出現問題時,要一步步分析,看是暫時的還是選舉過程出了問題。目前沒有辦法證明瀏覽列表是否完整,但有辦法發現某可用資源是否在列表裡,甚至可以強迫開始一次選舉。
注意:重啟伺服器上的COMPUTER BROWSER服務,打開伺服器上的ipc$,確保客戶端全部打開,在伺服器端用「ping 客戶端IP」逐一ping過來,確保可以全部ping通。如果客戶端是win2000的話,也要重啟一下COMPUTER BROWSER服務,
徹底解決方法的話,最好是建立一個域,由主域控制器來充當瀏覽服務是最理想的。
不同情況解決方法不同,以上是原理分析,下面介紹常見的解決辦法(可能不適用於您的情況):
1、區域網「伺服器沒有設置事務處理」是因為區域網的主控瀏覽伺服器的列表文件壞了,首先查毒,如果沒有病毒的話
解決的辦法就是:先在區域網中找一台WIN2K,改個工作組名,然後依次改剩下的機器的(如果區域網中有WIN2K SERVER的就先改SERVER)
2、文章分類: 區域網
文章標題: 點擊網上鄰居的工作組,出現伺服器沒有設置事務處理
關 鍵 字: 0
文章作者: alonglee 轉
文章來源: 0
發表時間: 2004-6-20 1:59:00
上次我發了一篇《伺服器沒有設置事務處理-故障處理》,後來發現這個問題並不那麼簡單,再找來一篇文章:
這是一個以前遇見過的問題,就是A win2000 ,發現自己的c,d默認共享沒有了,ipc共享也沒有了,別人在網上鄰居訪問A計算機會出現,「伺服器沒有設置事務處理」,自己訪問自己用unc路徑也不能訪問,但A win2000訪問別人沒有問題,查了一下資料,發現是中毒了。
首先,我在進程中查看到一個叫wuamgrd.exe這個進程,證明中了一種叫「w32.spybot.worm的病毒「,在進程中結束她,然後在%SYSTEM%\SYSTEM32 下找\wuamgrd.EXE,把它刪除,重新啟動,發現問題解決,共享恢復,unc訪問正常。
以下是技術資料,可以完全清除病毒:
這是一個叫w32.spybot.worm的病毒
W32.Spybot.Worm is a detection for a family of worms that spreads using KaZaA file-sharing and mIRC. This worm can also spread to computers infected with common back door Trojan horses.
W32.Spybot.Worm can perform different back door-type functions by connecting to a configurable IRC server and joining a specific channel to listen for instructions.
技術細節,這個病毒會干什麼事呢?請看
W32.Spybot.Worm
Discovered on: April 16, 2003
Last Updated on: May 20, 2004 02:27:17 PM
W32.Spybot.Worm is a detection for a family of worms that spreads using KaZaA file-sharing and mIRC. This worm can also spread to computers infected with common back door Trojan horses.
W32.Spybot.Worm can perform different back door-type functions by connecting to a configurable IRC server and joining a specific channel to listen for instructions.
----------
Note: The October 8, 2003, virus definitions contain a modified W32.Spybot.Worm detection which accounts
for a minor variation discovered on October 7, 2003.
-----------------------------------------
Also Known As: Worm.P2P.SpyBot.gen [KAV], W32/Spybot-Fam [Sophos], W32/Spybot.worm.gen [McAfee], WORM_SPYBOT.GEN [Trend], Win32.Spybot.gen [CA]
Type: Worm
Infection Length: various
Systems Affected: Windows 95, Windows 98, Windows NT, Windows 2000, Windows XP, Windows Me
Systems Not Affected: Macintosh, OS/2, UNIX, Linux
Virus Definitions (Intelligent Updater) *
April 16, 2003
Virus Definitions (LiveUpdate™) **
April 16, 2003
*
Intelligent Updater definitions are released daily, but require manual download and installation.
Click here to download manually.
**
LiveUpdate virus definitions are usually released every Wednesday.
Click here for instructions on using LiveUpdate.
Wild:
Number of infections: More than 1000
Number of sites: More than 10
Geographical distribution: High
Threat containment: Easy
Removal: Moderate
Threat Metrics
Wild:
Medium
Damage:
Medium
Distribution:
Medium
Damage
Payload:
Releases confidential info: Sends personal data to an IRC channel.
Compromises security settings: Allows unauthorized commands to be executed on an infected machine.
Distribution
Shared drives: Spreads using the KaZaA file-sharing network, as well as spreading through mIRC.
When W32.Spybot.Worm is executed, it does the following:
Copies itself to the %System% folder.
-------------------------------------------------------------
Note: %System% is a variable. The worm locates the System folder and copies itself to that location.
By default, this is C:\Windows\System (Windows 95/98/Me), C:\Winnt\System32 (Windows NT/2000),
or C:\Windows\System32 (Windows XP).
----------------------------------------------------------------
如果是WINDOWS 2000系統,這個病毒會將自身復制在%SYSTEM%\SYSTEM32\下,
文件名就是wuamgrd.EXE,而且是系統,隱含屬性。
文件名,圖標與WINDOWS自動更新的客戶端取的差不多,極易忽視。然後會在注冊表中創建下列的鍵值
Can be configured to creates and share a folder on the KaZaA file-sharing network,
by adding the following registry value:
"dir0"="012345:<configurable path>"
to the registry key:
HKEY_CURRENT_USER\SOFTWARE\KAZAA\LocalContent
Copies itself to the configured path as file names that are designed to
trick other users into downloading and executing the worm.
Can be configured to perform Denial of Service (DoS) attacks on specified servers.
Can be configured to terminate security proct processes
Connects to specified IRC servers and joins a channel to receive commands.
One such command is to itself to many hard-coded Windows Startup Folders, such as the following:
Documents and Settings\All Users\Menu Start\Programma』s\Opstarten
WINDOWS\All Users\Start Menu\Programs\StartUp
WINNT\Profiles\All Users\Start Menu\Programs\Startup
WINDOWS\Start Menu\Programs\Startup
Documenti e Impostazioni\All Users\Start Menu\Programs\Startup
Dokumente und Einstellungen\All Users\Start Menu\Programs\Startup
Documents and Settings\All Users\Start Menu\Programs\Startup
----------------------------------------------------------------
Note: Symantec Security Response has received reports of variants of this worm creating zero-byte files in the Startup folder. These files may have file names such as TFTP780 or
TFTP###, where # can be any number.
-----------------主要會在下面的鍵值創建
Adds a variable registry value to one or more of the following registry keys:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersionRunOnce
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersionRunServices
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
For example:
"Microsoft Update" = "wuamgrd.exe"
May log keystrokes to a file in the System folder.
May send personal information, such as the operating system, IP address, user name, and so on, to the IRC server.
May open a back-door port.
解決方法:
The following instructions pertain to all current and recent Symantec antivirus procts,
including the Symantec AntiVirus and Norton AntiVirus proct lines.
1.Disable System Restore (Windows Me/XP).
2.Update the virus definitions.
3.Restart the computer in Safe mode.
4.Run a full system scan, and delete all files that are detected as W32.Spybot.Worm.
Delete the value that was added to the registry.
Delete any zero-byte files in the Startup folder.
For specific details on each of these steps, read the following instructions
1. Disabling System Restore (Windows Me/XP)
If you are running Windows Me or Windows XP, we recommend that you temporarily
turn off System Restore. Windows Me/XP uses this feature, which is enabled by default,
to restore the files on your computer in case they become damaged. If a virus, worm, or
Trojan infects a computer, System Restore may back up the virus, worm, or Trojan on the computer.
Windows prevents outside programs, including antivirus programs, from modifying System Restore.
Therefore, antivirus programs or tools cannot remove threats in the System Restore folder.
As a result, System Restore has the potential of restoring an infected file on your computer,
even after you have cleaned the infected files from all the other locations.
Also, a virus scan may detect a threat in the System Restore folder even though you have removed the threat.
For instructions on how to turn off System Restore, read your Windows documentation or one of the following articles:
"How to disable or enable Windows Me System Restore"
"How to turn off or turn on Windows XP System Restore"
For additional information, and an alternative to disabling Windows Me System Restore,
see the Microsoft Knowledge Base article, "Antivirus Tools Cannot Clean Infected Files in the _Restore Folder,"
Article ID: Q263455.
2. Updating the virus definitions
Symantec Security Response fully tests all virus definitions for quality assurance before they are posted to our servers.
There are two ways to obtain the most recent virus definitions:
Running LiveUpdate, which is the easiest way to obtain virus definitions
These virus definitions are posted to the LiveUpdate servers once each week (usually on Wednesdays),
unless there is a major virus outbreak. To determine whether definitions for
this threat are available by LiveUpdate, refer to the Virus Definitions (LiveUpdate).
Downloading the definitions using the Intelligent Updater
The Intelligent Updater virus definitions are posted on U.S. business days (Monday through Friday).
You should download the definitions from the Symantec Security Response Web site and manually install them.
To determine whether definitions for this threat are available by the Intelligent Updater, refer to the
Virus Definitions (Intelligent Updater).
The Intelligent Updater virus definitions are available: Read "How to update virus definition files using the
Intelligent Updater" for detailed instructions.
3. Restarting the computer in Safe mode
Restart the computer in Safe mode. All the Windows 32-bit operating systems, except for Windows NT, can be restarted in Safe mode.
NOTE: The following instructions are basic and can vary slightly depending on the operating system.
If the computer is running, shut down Windows and then turn off the power.
Wait 30 seconds, and then turn on the computer.
Start tapping the F8 key.
When the Startup Menu appears, ensure that the Safe mode option is selected. In most cases, i
t is the first item in the list and is selected by default. (If it is not selected, use the arrow keys to select it.)
Press Enter. The computer will start in Safe mode. This can take a few minutes.
When you are finished with all the troubleshooting, close all the programs and restart the
computer as you normally would.
4. Scanning for and deleting the infected files
Start your Symantec antivirus program and make sure that it is configured to scan all the files.
For Norton AntiVirus consumer procts
Read the document "How to configure Norton AntiVirus to scan all files."
For Symantec AntiVirus Enterprise procts
Read the document "How to verify that a Symantec Corporate antivirus proct is set to scan all files."
Run a full system scan.
If any files are detected as infected with W32.Spybot.Worm, write down the file names, and then click Delete.
5. Deleting the value from the registry
WARNING: Symantec strongly recommends that you back up the registry before making any
changes to it. Incorrect changes to the registry can result in permanent data loss or corrupted files.
Modify the specified keys only. Read the document, "How to make a backup of the Windows registry,
" for instructions.
Click Start, and then click Run. (The Run dialog box appears.)
Type regedit
then click OK. (The Registry Editor opens.)
Navigate to the key:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
In the right pane, delete any values that refer to the file name that was detected as infected with W32.Spybot.Worm.
Navigate to the following key:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersionRunOnce
In the right pane, delete any values that reference the file name in step d.
Navigate to the following key:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersionRunServices
In the right pane, delete any values that reference the file name in step d.
Navigate to the following key:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
In the right pane, delete any values that reference the file name in step d.
Exit the Registry Editor.
6. Delete the zero-byte files from the Startup folder
Follow the instructions for your version of Windows:
NOTE: There may be legitimate files on your system that start with "tftp." Delete only the zero-byte files from the Startup folder.
To delete zero-byte files in Windows 95/98/Me/NT/2000
On the Windows taskbar, click Start > Find (or Search) > Files or Folders.
Make sure that "Look in" is set to (C:) and that "Include subfolders" is checked.
In the "Named" or "Search for..." box, type--or and paste--the following file name:
tftp*.*
Click Find Now or Search Now.
Delete the files that are zero-bytes in size and contained within any folder whose name ends with "Startup".
To delete zero-byte files in Windows XP
On the Windows taskbar, click Start > Search.
Click "All files and folders."
In the "All or part of the file name" box, type--or and paste--the following file name:
tftp*.*
Verify that "Look in" is set to "Local Hard Drives" or to (C:).
Click "More advanced options."
Check "Search system folders."
Check "Search subfolders."
Click Search.
Delete the files that are zero-bytes in size and contained within any folder whose name ends with "Startup".
Revision History:
May 17, 2004: Added reference to possible registry key modification.
October 8, 2003: Added information regarding updated detection released in virus definitions on this day.
August 13, 2003: Updated removal instructions for Safe Mode.
August 7, 2003:
Upgraded from Category 1 to Category 2 e to increased prevalence.
Added information pertaining to the existence of 0-byte files in the StartUp folder.
按上面方法,清除後,解決問題,也能夠共享文件,IPC$等幾個默認共享也全部出現了。系統正常
㈤ Oracle事務提交
重新啟動時,系統先REDO,然後對未提交的UNDO,數據在更新前的狀態
㈥ 誰給我詳細解釋一下資料庫中的事務提交吧。
事務(TRANSACTION)是作為單個邏輯工作單元執行的一系列操作 這些操作作為一個整體一起向系統提交,要麼都執行、要麼都不執行 事務是一個不可分割的工作邏輯單元 比如說銀行操作轉賬,一個人的賬號減100,另一個加100,如果提交兩條語句某一條出錯了,就會造成一個讓無故增加100元,或一個無故減少100。所以作為一個整體提交,要麼都成功,要麼都失敗。 觸發器是在對表進行插入、更新或刪於強除操作時自動執行的存儲過程
觸發器通常用制業務規則
觸發器是一種高級約束,可以定義比用CHECK 約束更為復雜的約束
可執行復雜的SQL語句(if/while/case)
可引用其它表中的列 觸發器也就是 固定的業務邏輯比如一個員工退休,就會當該員工從員工表刪除的時候將他自動插入退休員工表
㈦ 事務的提交和回滾是什麼意思 Java
一組業務整體處理的行為叫一個事務。這一組的業務都能成功處理,我們就可以把這個事務提交來保存你已做的行為結果。但如果一組中有任何的差錯出現的話,我們就認為這事務不成功,需要回滾來撤消之前的操作。舉例:你去銀行轉賬,轉賬我們有兩步吧,從你賬戶中取出錢再往他賬戶中加錢。那這兩步銀行是必須要確保正確無誤的進行的。要被看做成一個事務。其中任何一步出錯就算是轉賬失敗,但可能你這時是已經從你賬戶中扣了錢了,又沒往他賬戶里加錢?怎麼辦算了?你不肯吧。所以銀行會事務回滾,不保存你剛才的操作,即恢復到你沒轉賬之前的狀態。累啊
㈧ 資料庫操作的時候,什麼情況下需要用到事務
當資料庫需要處理操作量大、復雜度高的數據的時候需要用到事務。用事務是為了保證資料庫的完整性,保證成批的 SQL 語句要麼全部執行,要麼全部不執行。
一個資料庫事務通常包含了一個序列的對資料庫的讀/寫操作。它的存在包含有以下兩個目的:
1、為資料庫操作序列提供了一個從失敗中恢復到正常狀態的方法,同時提供了資料庫即使在異常狀態下仍能保持一致性的方法。
2、當多個應用程序在並發訪問資料庫時,可以在這些應用程序之間提供一個隔離方法,以防止彼此的操作互相干擾。
當事務被提交給了資料庫管理系統,則資料庫管理系統需要確保該事務中的所有操作都成功完成且其結果被永久保存在資料庫中,如果事務中有的操作沒有成功完成,則事務中的所有操作都需要被回滾,回到事務執行前的狀態;同時,該事務對資料庫或者其他事務的執行無影響,所有的事務都好像在獨立的運行。
(8)訪問其他系統提交事務擴展閱讀:
資料庫事務ACID性質:
1、原子性(Atomicity):事務作為一個整體被執行,包含在其中的對資料庫的操作要麼全部被執行,要麼都不執行。
2、一致性(Consistency):事務應確保資料庫的狀態從一個一致狀態轉變為另一個一致狀態,一致狀態的含義是資料庫中的數據應滿足完整性約束。
3、隔離性(Isolation):多個事務並發執行時,一個事務的執行不應影響其他事務的執行。
4、持久性(Durability):已被提交的事務對資料庫的修改應該永久保存在資料庫中。
參考資料來源:
網路-資料庫事務
網路-資料庫
㈨ Oracle:如何以事物的方式對資料庫進行訪問
兩次連續成功的COMMIT或ROLLBACK之間的操作,稱為一個事務。在一個事務內,數據的修改一起提交或撤銷,如果發生故障或系統錯誤,整個事務也會自動撤銷。 一 事務的概念 事務是由相關操作構成的一個完整的操作單元。兩次連續成功的COMMIT或ROLLBACK之間的操作,稱為一個事務。在一個事務內,數據的修改一起提交或撤銷,如果發生故障或系統錯誤,整個事務也會自動撤銷。 oracle的數據語音分為數據定義語言(DDL)、數據控制語言(DCL)和數據操縱語言(DML)。其中的DML語言會生成事務,其他兩種語言只要執行,事務就會結束。 簡單的說DML語言可以建立事務,DDL和DCL不能建立事務。 DML語言包括幾個命令,例如 select insert delete update等等,這些命令執行後,當前用戶的顯示信息是更改了,但是其他人訪問你改的表的時候數據並沒有更改,需要使用commit確認後才能更改。如果當前用戶在沒有執行commit前反悔操作了,那使用rollback命令可以回退到執行操縱語句之前,但是如果已經執行了commit語句是無法回退的。 比如,我們去銀行轉賬,操作可以分為下面兩個環節: (1) 從第一個賬戶劃出款項。 (2) 將款項存入第二個賬戶。 在這個過程中,兩個環節是關聯的。第一個賬戶劃出款項必須保證正確的存入第二個賬戶,如果第二個環節沒有完成,整個的過程都應該取消,否則就會發生丟失款項的問題。整個交易過程,可以看作是一個事物,成功則全部成功,失敗則需要全部撤消,這樣可以避免當操作的中間環節出現問題時,產生數據不一致的問題。 一個事務是由一個可執行的SQL語句開始,一個可執行SQL語句產生對實例的調用。在事務開始時,被賦給一個可用回滾段,記錄該事務的回滾項。一個事務以下列任何一個出現而結束。資料庫事務是一個邏輯上的劃分,有的時候並不是很明顯,它可以是一個操作步驟,也可以是多個操作步驟。關鍵字: 分層查詢 函數 觸發器語法 Oracle物化視圖 跟蹤sql語句 內容摘要:事務是由相關操作構成的一個完整的操作單元。兩次連續成功的COMMIT或ROLLBACK之間的操作,稱為一個事務。在一個事務內,數據的修改一起提交或撤銷,如果發生故障或系統錯誤,整個事務也會自動撤銷。 我們可以這樣理解資料庫事物:對資料庫所做的一系列修改,在修改過程中,暫時不寫入資料庫,而是緩存起來,用戶在自己的終端可以預覽變化,直到全部修改完成,並經過檢查確認無誤後,一次性提交並寫入資料庫,在提交之前,必要的話所做的修改都可以取消。提交之後,就不能撤銷,提交成功後其他用戶才可以通過查詢瀏覽數據的變化。 以事務的方式對資料庫進行訪問,有如下的優點: * 把邏輯相關的操作分成了一個組。 * 在數據永久改變前,可以預覽數據變化。 * 能夠保證數據的讀一致性。 二 資料庫事務的應用 資料庫事務處理可分為隱式和顯式兩種。顯式事務操作通過命令實現,隱式事務由系統自動完成提交或撤銷(回退)工作,無需用戶的干預。 隱式提交的情況包括:當用戶正常退出SQL*Plus或執行CREATE、DROP、GRANT、REVOKE等命令時會發生事務的自動提交。 還有一種情況,如果把系統的環境變數AUTOCOMMIT設置為ON(默認狀態為OFF),則每當執行一條INSERT、DELETE或UPDATE命令對數據進行修改後,就會馬上自動提交。設置命令格式如下: SET AUTOCOMMIT ON/OFF 隱式回退的情況包括:當異常結束SQL*Plus或系統故障發生時,會發生事務的自動回退。 顯式事務處理的資料庫事務操作語句有3條,分別是COMMIT,ROLLBACK,SAVEPOINT語句。 COMMIT是資料庫事物提交,將變化寫入資料庫。此操作把多個步驟對資料庫的修改,一次性地永久寫入資料庫,代表資料庫事務的成功執行。ROLLBACK是資料庫事務回退,撤銷對資料庫的修改。操作在發生問題時,把對資料庫已經作出的修改撤消,回退到修改前的狀態。在操作過程中,一旦發生問題,如果還沒有提交操作,則隨時可以使用ROLLBACK來撤消前面的操作。SAVEPOINT則用於在事務中間建立一些保存點,ROLLBACK可以使操作回退到這些點撤上邊,而不必撤銷全部的操作。一旦COMMIT完成,就不能用ROLLBACK來取消已經提交的操作。一旦ROLLBACK完成,被撤消的操作要重做,必須重新執行相關操作語句。 如何開始一個新的事務呢?一般情況下,開始一個會話(即連接資料庫),執行第一條SQL語句將開始一個新的事務,或執行COMMIT提交或ROLLBACK撤銷事務,也標志新的事務的開始。另外,執行DDL(如CREATE)或DCL命令也將自動提交前一個事務而開始一個新的事務。 數據在修改的時候會對記錄進行鎖定,其他會話不能對鎖定的記錄進行修改或加鎖,只有當前會話提交或撤銷後,記錄的鎖定才會釋放。 例如修改雇員SCOTT的工資,工資在原有基礎上增加1000: UPDATE emp SET sal=sal+1000 WHERE empno=7788; 執行結果: 已更新 1 行。 顯示修改後SCOTT的工資: SELECT ename,sal FROM emp WHERE empno=7788; 執行結果: ENAME SAL SCOTT 4000 經查看修改結果正確,提交所做的修改: COMMIT; 執行結果: 提交完成。 在執行COMMIT後,工資的修改被永久寫入資料庫。本訓練的第1步,先使用COMMIT命令提交原來的操作,同時標志一個新的事務的開始。注意:在事務執行過程中,隨時可以預覽數據的變化。
㈩ 事務完成最後一個操作後,該事務是否一定可以進入提交狀態如果不是,資料庫管理系統如何處理該事務
理論上來講,完成最後一步後,一定可以提交。因為所有的操作已經在commit前做完,包含redo和undo數據,但是如果真的發生提交失敗。該事務會回滾。