當前位置:首頁 » 數據倉庫 » 資料庫入庫時間是事務完成時間
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

資料庫入庫時間是事務完成時間

發布時間: 2022-04-18 04:14:06

資料庫事務正確執行的四個基本要素包括

ACID,指資料庫事務正確執行的四個基本要素的縮寫。包含:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability)。一個支持事務(Transaction)的資料庫,必需要具有這四種特性,否則在事務過程(Transaction processing)當中無法保證數據的正確性,交易過程極可能達不到交易方的要求。
原子性
整個事務中的所有操作,要麼全部完成,要麼全部不完成,不可能停滯在中間某個環節。事務在執行過程中發生錯誤,會被回滾(Rollback)到事務開始前的狀態,就像這個事務從來沒有執行過一樣。
一致性
一個事務可以封裝狀態改變(除非它是一個只讀的)。事務必須始終保持系統處於一致的狀態,不管在任何給定的時間並發事務有多少。
也就是說:如果事務是並發多個,系統也必須如同串列事務一樣操作。其主要特徵是保護性和不變性(Preserving an Invariant),以轉賬案例為例,假設有五個賬戶,每個賬戶余額是100元,那麼五個賬戶總額是500元,如果在這個5個賬戶之間同時發生多個轉賬,無論並發多少個,比如在A與B賬戶之間轉賬5元,在C與D賬戶之間轉賬10元,在B與E之間轉賬15元,五個賬戶總額也應該還是500元,這就是保護性和不變性
隔離性
隔離狀態執行事務,使它們好像是系統在給定時間內執行的唯一操作。如果有兩個事務,運行在相同的時間內,執行相同的功能,事務的隔離性將確保每一事務在系統中認為只有該事務在使用系統。這種屬性有時稱為串列化,為了防止事務操作間的混淆,必須串列化或序列化請求,使得在同一時間僅有一個請求用於同一數據。
持久性
在事務完成以後,該事務對資料庫所作的更改便持久的保存在資料庫之中,並不會被回滾。
由於一項操作通常會包含許多子操作,而這些子操作可能會因為硬體的損壞或其他因素產生問題,要正確實現ACID並不容易。ACID建議資料庫將所有需要更新以及修改的資料一次操作完畢,但實際上並不可行。
目前主要有兩種方式實現ACID:第一種是Write ahead logging,也就是日誌式的方式(現代資料庫均基於這種方式)。第二種是Shadow paging。

Ⅱ 資料庫中的事務是什麼

事物的定義:
資料庫事務(Database Transaction) ,是指作為單個邏輯工作單元執行的一系列操作,要麼完整地執行,要麼完全地不執行。 事務處理可以確保除非事務性單元內的所有操作都成功完成,否則不會永久更新面向數據的資源。通過將一組相關操作組合為一個要麼全部成功要麼全部失敗的單元,可以簡化錯誤恢復並使應用程序更加可靠。一個邏輯工作單元要成為事務,必須滿足所謂的ACID(原子性、一致性、隔離性和持久性)屬性。
============
簡單說事務就是一組操作的集合,而且這組操作必須全部執行成功否者回滾到所有操作前的狀態。

舉個例子什麼時候用到事務:
例如,在將資金從一個帳戶轉移到另一個帳戶的銀行應用中,一個帳戶將一定的金額貸記到一個資料庫表中,同時另一個帳戶將相同的金額借記到另一個資料庫表中。由於計算機可能會因停電、網路中斷等而出現故障,因此有可能更新了一個表中的行,但沒有更新另一個表中的行。如果資料庫支持事務,則可以將資料庫操作組成一個事務,以防止因這些事件而使資料庫出現不一致。如果事務中的某個點發生故障,則所有更新都可以回滾到事務開始之前的狀態。如果沒有發生故障,則通過以完成狀態提交事務來完成更新。

Ⅲ 時態資料庫的時態資料庫理論的基本概念

時態資料庫理論提出了三種基本時間:用戶自定義時間、有效時間和事務時間。同時把資料庫分為四種類型:快照資料庫、回滾資料庫、歷史資料庫和雙時態資料庫。
 用戶自定義時間:指用戶根據自己的需要或理解定義的時間。時態資料庫系統不處理用戶自己定義的時間類型。因此,用戶自定義時間是和應用相關的,不在時態資料庫處理的范圍之內。
 有效時間(Valid-Time):指一個對象在現實世界中發生並保持的時間,即該對象在現實世界中語義為真的時間,包含Valid-From和Valid-To兩個值。它可以指示過去、現在和未來。例如,考慮事實「小明從2003年到2007年是大學生」,那麼時間區間[2003, 2007]是事實「小明是大學生」的有效時間區間,該事實在該時間區間內為真。有效時間可以是時間點、時間點的集合、時間區間或者時間區間的集合,或者是整個時間域。有效時間由時態資料庫系統解釋並處理,在查詢的過程中對用戶透明。用戶也可以顯式地查詢和更新有效時間。
 事務時間(Transaction-Time):指一個資料庫對象發生操作的時間,是一個事實存儲在資料庫、或者在資料庫中發生改變的時間,包含Transaction-From和Transaction-To兩個值。當用戶對資料庫狀態進行更改時,會產生各種操作歷史,事務時間真實地記錄了資料庫狀態變更的歷史。有時也稱事務時間為系統時間。
 快照資料庫:快照資料庫是反映現實世界某一瞬間情況的數據模型。它記錄了特定時刻的資料庫狀態。快照資料庫採用這樣的假設:一個存儲在資料庫中的元組,一定是真實世界中的有效事實。
 歷史資料庫:資料庫中被管理對象的生命周期是對象的有效時間,每一個元組記錄了數據的一個「歷史」狀態。歷史資料庫中沒有約束時間的表示方法,可以是時間點的集合、時間區間或者區間集合等形式表示。
回滾資料庫:資料庫中被管理對象的生命周期是事務時間的資料庫。它保存了資料庫中事務提交、狀態演變的歷史狀態。
雙時態資料庫:資料庫中元組包含一個系統支持的有效時間和一個系統支持的事務時間的資料庫,稱為雙時態資料庫。雙時態資料庫具備了快照資料庫、歷史資料庫和回滾資料庫的特點,存儲了現實世界和資料庫系統的變更歷史。
 Now:Now的中文意思是當前時間,是一個時間變元,隨著當前時間的變化而變化,記錄了隨時間變化的信息,它的有效值依賴於當前時間。但在很多應用當中,now值還能表示「過去」和「未來」時間,這就是now語義的研究課題,它對於提高時態系統查詢效率具有比較重要的意義。有關now語義的討論可參見 軟體學報 Vol. 16, No.5 (2005) 838-845

Ⅳ 「資料庫中的事務」是什麼

事務是作為一個邏輯單元執行的一系列操作,一個邏輯工作單元必須有四個屬性,稱為 ACID(原子性、一致性、隔離性和持久性)屬性,
只有這樣才能成為一個事務:
原子性
事務必須是原子工作單元;對於其數據修改,要麼全都執行,要麼全都不執行。

一致性
事務在完成時,必須使所有的數據都保持一致狀態。在相關資料庫中,所有規則都必須應用於事務的修改,以保持所有數據的完整性。
事務結束時,所有的內部數據結構(如 B 樹索引或雙向鏈表)都必須是正確的。

隔離性
由並發事務所作的修改必須與任何其它並發事務所作的修改隔離。事務查看數據時數據所處的狀態,要麼是另一並發事務修改它之前的狀態,
要麼是另一事務修改它之後的狀態,事務不會查看中間狀態的數據。這稱為可串列性,因為它能夠重新裝載起始數據,
並且重播一系列事務,以使數據結束時的狀態與原始事務執行的狀態相同。
持久性
事務完成之後,它對於系統的影響是永久性的。該修改即使出現系統故障也將一直保持。

Ⅳ 請高手們講講資料庫中事務的使用吧!!!!

事務處理可以確保除非事務性單元內的所有操作都成功完成,否則不會永久更新面向數據的資源。通過將一組相關操作組合為一個要麼全部成功要麼全部失敗的單元,可以簡化錯誤恢復並使應用程序更加可靠。一個邏輯工作單元要成為事務,必須滿足所謂的ACID(原子性、一致性、隔離性和持久性)屬性:
· 原子性
事務必須是原子工作單元;對於其數據修改,要麼全都執行,要麼全都不執行。通常,與某個事務關聯的操作具有共同的目標,並且是相互依賴的。如果系統只執行這些操作的一個子集,則可能會破壞事務的總體目標。原子性消除了系統處理操作子集的可能性。
· 一致性
事務在完成時,必須使所有的數據都保持一致狀態。在相關資料庫中,所有規則都必須應用於事務的修改,以保持所有數據的完整性。事務結束時,所有的內部數據結構(如 B 樹索引或雙向鏈表)都必須是正確的。某些維護一致性的責任由應用程序開發人員承擔,他們必須確保應用程序已強制所有已知的完整性約束。例如,當開發用於轉帳的應用程序時,應避免在轉帳過程中任意移動小數點。
· 隔離性
由並發事務所作的修改必須與任何其它並發事務所作的修改隔離。事務查看數據時數據所處的狀態,要麼是另一並發事務修改它之前的狀態,要麼是另一事務修改它之後的狀態,事務不會查看中間狀態的數據。這稱為可串列性,因為它能夠重新裝載起始數據,並且重播一系列事務,以使數據結束時的狀態與原始事務執行的狀態相同。當事務可序列化時將獲得最高的隔離級別。在此級別上,從一組可並行執行的事務獲得的結果與通過連續運行每個事務所獲得的結果相同。由於高度隔離會限制可並行執行的事務數,所以一些應用程序降低隔離級別以換取更大的吞吐量。
· 持久性
事務完成之後,它對於系統的影響是永久性的。該修改即使出現致命的系統故障也將一直保持。
那麼該處理結果是不明確的。
不加控制的並發存取會產生以下幾種錯誤:
1 丟失修改(lost updates)
當多個事務並發修改一個數據時,不加控制會得出錯誤的結
果,一個修改會覆蓋掉另一個修改。
2 讀的不可重復性
當多個事務按某種時間順序存取若干數據時,如果對並發存
取不加控制,也會產生錯誤。
3 臟讀(DIRDY DATA),讀的不一致性
4 游標帶來的當前值的混亂
事務在執行過程中它在某個表上的當前查找位置是由游標表
示的。游標指向當前正處理的記錄。當處理完該條記錄後,則指
向下一條記錄。在多個事務並發執行時,某一事務的修改可能產
生負作用,使與這些游標有關的事務出錯。
5 未釋放修改造成連鎖退出
一個事務在進行修改操作的過程中可能會發生故障,這時需
要將已做的修改回退(Rollback)。如果在已進行過或已發現錯
誤尚未復原之前允許其它事務讀已做過修改(臟讀),則會導致
連鎖退出。
6 一事務在對一表更新時,另外的事務卻修改或刪除此表的
定義。
資料庫會為每個事務自動地設置適當級別的鎖定。對於前面
講述的問題:臟讀、未釋放修改造成的連鎖退出、一事務在對一
表更新時另外的事務卻修改或刪除此表的定義,資料庫都會自動
解決。而另外的三個問題則需要在編程過程中人為地定義事務或
加鎖來解決。
三 事務和恢復
資料庫本身肩負著管理事務的責任。事務是最小的邏輯工作
單元,在這個工作單元中,對資料庫的所有更新工作,要麼必須
全部成功,要麼必須全部失敗(回退)。只要應用程序指定了某
段程序為一個事務並做了相應的處理(提交或回退),資料庫系
統會自動維護事務本身的特性。

四 ORACLE資料庫的事務定義
ORACLE事務從COMMIT、ROLLBACK、連接到資料庫或開始第一
條可執行的sql語句時開始,到一條COMMIT、ROLLBACK語句或退出
資料庫時結束。如果在一個事務中包含DDL語句,則在DDL語句的
前後都會隱含地執行COMMIT語句,從而開始或結束一個事務。
如果一個事務由於某些故障或者由於用戶改變主意而必須在
提交前取消它,則資料庫被恢復到這些語句和過程執行之前的狀
態。
利用ROLLBACK語句可以在COMMIT命令前隨時撤消或回退一個
事務。可以回退整個事務,也可以會退部分事務,但是不能回退
一個已經被提交的事務。回退部分事務的ROLLBACK命令為:
ROLLBACK to savepoint 存儲點名
存儲點是用戶放入事務中的標記,用來表示一個可被回退的
位置。存儲點通過在事務中放入一個SAVEPOINT命令而被插入。該
命令的語法是:
SAVEPOINT 存儲點名
如果在ROLLBACK語句中沒有給出存儲點名,則整個事務被回
退。
五 SYBASE資料庫的事務定義
SYBASE通過使用BEGIN TRANsaction和COMMIT TRANsaction命令指
示SQL將任意數目的語句作為一個單元來處理。ROLLBACK TRANsaction
命令則允許用戶恢復到事務的開始,或恢復到事務內部已經被用SAVE
TRANsaction命令定義的存儲點上。
BEGIN TRANsaction和COMMIT TRANsaction能夠包含任意數目的SQL
語句和存儲過程,方法很簡單:
BEGIN TRANsaction [事務名稱]
COMMIT TRANsaction
如果一個事務由於某些故障或者由於用戶改變主意而必須在提交
前取消它,則資料庫被恢復到這些語句和過程執行之前的狀態。
利用ROLLBACK TRANsaction命令可以在COMMIT TRANsaction命令
前隨時回退一個事務。可以回退整個事務,也可以回退部分事務,但
是不能回退一個已經被提交的事務。ROLLBACK TRANsaction命令為:
ROLLBACK TRANsaction [事務名|存儲點名]
存儲點名是用戶放入事務中的標記,用來表示一個可以被回退的
位置。存儲點名通過在事務中放入一個SAVE TRANsaction命令而被插
入。該命令的句法是:
SAVE TRANsaction 存儲點名
如果在ROLLBACK TRANsaction中沒有給出存儲點名或事務名,則
事務被回退到批處理中的第一個BEGIN TRANsaction語句處。

Ⅵ 資料庫操作的時候,什麼情況下需要用到事務

當資料庫需要處理操作量大、復雜度高的數據的時候需要用到事務。用事務是為了保證資料庫的完整性,保證成批的 SQL 語句要麼全部執行,要麼全部不執行。

一個資料庫事務通常包含了一個序列的對資料庫的讀/寫操作。它的存在包含有以下兩個目的:

1、為資料庫操作序列提供了一個從失敗中恢復到正常狀態的方法,同時提供了資料庫即使在異常狀態下仍能保持一致性的方法。

2、當多個應用程序在並發訪問資料庫時,可以在這些應用程序之間提供一個隔離方法,以防止彼此的操作互相干擾。

當事務被提交給了資料庫管理系統,則資料庫管理系統需要確保該事務中的所有操作都成功完成且其結果被永久保存在資料庫中,如果事務中有的操作沒有成功完成,則事務中的所有操作都需要被回滾,回到事務執行前的狀態;同時,該事務對資料庫或者其他事務的執行無影響,所有的事務都好像在獨立的運行。

(6)資料庫入庫時間是事務完成時間擴展閱讀:

資料庫事務ACID性質:

1、原子性(Atomicity):事務作為一個整體被執行,包含在其中的對資料庫的操作要麼全部被執行,要麼都不執行。

2、一致性(Consistency):事務應確保資料庫的狀態從一個一致狀態轉變為另一個一致狀態,一致狀態的含義是資料庫中的數據應滿足完整性約束。

3、隔離性(Isolation):多個事務並發執行時,一個事務的執行不應影響其他事務的執行。

4、持久性(Durability):已被提交的事務對資料庫的修改應該永久保存在資料庫中。

參考資料來源:

網路-資料庫事務

網路-資料庫

Ⅶ oracle sysdate 由於事務時間過長導致插入資料庫的數據時間不對的問題

可以用觸發器,當有新紀錄插入時,寫入當時的時間。

Ⅷ Mysql資料庫中,事務是指什麼如何使用該功能

MySQL 事務

什麼是事務?

MySQL 事務主要用於處理操作量大,復雜度高的數據。比如說,在人員管理系統中,你刪除一個人員,你既需要刪除人員的基本資料,也要刪除和該人員相關的信息,如信箱,文章等等,這樣,這些資料庫操作語句就構成一個事務!

在 MySQL 中只有使用了 Innodb 資料庫引擎的資料庫或表才支持事務。

  • 事務處理可以用來維護資料庫的完整性,保證成批的 SQL 語句要麼全部執行,要麼全部不執行。

  • 事務用來管理 insert,update,delete 語句

一般來說,事務是必須滿足4個條件(ACID):原子性(Atomicity,或稱不可分割性)、一致性(Consistency)、隔離性(Isolation,又稱獨立性)、持久性(Durability)。

  • 原子性:一個事務(transaction)中的所有操作,要麼全部完成,要麼全部不完成,不會結束在中間某個環節。事務在執行過程中發生錯誤,會被回滾(Rollback)到事務開始前的狀態,就像這個事務從來沒有執行過一樣。

  • 一致性:在事務開始之前和事務結束以後,資料庫的完整性沒有被破壞。這表示寫入的資料必須完全符合所有的預設規則,這包含資料的精確度、串聯性以及後續資料庫可以自發性地完成預定的工作。

  • 隔離性:資料庫允許多個並發事務同時對其數據進行讀寫和修改的能力,隔離性可以防止多個事務並發執行時由於交叉執行而導致數據的不一致。事務隔離分為不同級別,包括讀未提交(Read uncommitted)、讀提交(read committed)、可重復讀(repeatable read)和串列化(Serializable)。

  • 持久性:事務處理結束後,對數據的修改就是永久的,即便系統故障也不會丟失。

在 MySQL 命令行的默認設置下,事務都是自動提交的,即執行 SQL 語句後就會馬上執行 COMMIT 操作。因此要顯式地開啟一個事務務須使用命令 BEGIN 或 START TRANSACTION,或者執行命令 SET AUTOCOMMIT=0,用來禁止使用當前會話的自動提交。

from 樹懶學堂 - 一站式數據知識平台