Ⅰ 事務是什麼意思
什麼叫事務? 這些就是資料庫特有的術語了。懶蟲在這里口頭解釋:就是把多件事情當做一件事情來處理。也就是大家同在一條船上,要活一起活,要over一起over !事務(Transaction)是訪問並可能更新資料庫中各種數據項的一個程序執行單元(unit)。事務通常由高級資料庫操縱語言或編程語言(如SQL,C++或Java)書寫的用戶程序的執行所引起,並用形如begin transaction和end transaction語句(或函數調用)來界定。事務由事務開始(begin transaction)和事務結束(end transaction)之間執行的全體操作組成。例如:在關系資料庫中,一個事務可以是一條SQL語句,一組SQL語句或整個程序。事務是恢復和並發控制的基本單位。事務應該具有4個屬性:原子性、一致性、隔離性、持續性。這四個屬性通常稱為ACID特性。原子性(atomicity)。一個事務是一個不可分割的工作單位,事務中包括的諸操作要麼都做,要麼都不做。一致性(consistency)。事務必須是使資料庫從一個一致性狀態變到另一個一致性狀態。一致性與原子性是密切相關的。隔離性(isolation)。一個事務的執行不能被其他事務干擾。即一個事務內部的操作及使用的數據對並發的其他事務是隔離的,並發執行的各個事務之間不能互相干擾。持久性(rability)。持續性也稱永久性(permanence),指一個事務一旦提交,它對資料庫中數據的改變就應該是永久性的。接下來的其他操作或故障不應該對其有任何影響。
Ⅱ 資料庫中的事務是什麼,資料庫中什麼叫事務
事務是作為一個邏輯單元執行的一系列操作,一個邏輯工作單元必須有四個屬性,稱為 ACID(原子性、一致性、隔離性和持久性)屬性,
只有這樣才能成為一個事務:
原子性
事務必須是原子工作單元;對於其數據修改,要麼全都執行,要麼全都不執行。
一致性
事務在完成時,必須使所有的數據都保持一致狀態。在相關資料庫中,所有規則都必須應用於事務的修改,以保持所有數據的完整性。
事務結束時,所有的內部數據結構(如 B 樹索引或雙向鏈表)都必須是正確的。
隔離性
由並發事務所作的修改必須與任何其它並發事務所作的修改隔離。事務查看數據時數據所處的狀態,要麼是另一並發事務修改它之前的狀態,
要麼是另一事務修改它之後的狀態,事務不會查看中間狀態的數據。這稱為可串列性,因為它能夠重新裝載起始數據,
並且重播一系列事務,以使數據結束時的狀態與原始事務執行的狀態相同。
持久性
事務完成之後,它對於系統的影響是永久性的。該修改即使出現系統故障也將一直保持。
Ⅲ 什麼是「交換流」什麼是「事務流」《軟體工程》
數據流圖呈線性變換特徵,而且可以抽象成三部分:I-P-O。
信息沿輸入通路進入系統,同時由外部形式變換成內部形式,進入系統的信息通過變換中心,經加工處理以後再沿輸出通路變換成外部形式離開軟體系統。當數據流圖具有這些特徵時,這種信息流就叫作變換流 。
計算、分析型軟體的數據流圖通常具有這種形式。
Ⅳ sql中什麼是事務啊
事務(Transaction),一般是指要做的或所做的事情。在計算機術語中是指訪問並可能更新資料庫中各種數據項的一個程序執行單元(unit)。
事務通常由高級資料庫操縱語言或編程語言(如SQL,C++或Java)書寫的用戶程序的執行所引起,並用形如begin transaction和end transaction語句(或函數調用)來界定。
(4)軟體工程中事物是什麼意思擴展閱讀
事務類型
(1)手動事務
手動事務允許顯式處理若干過程,這些過程包括:開始事務、控制事務邊界內的每個連接和資源登記、確定事務結果(提交或中止)以及結束事務。
(2)自動事務
.NET 頁、XML Web services方法或 .NET Framework 類一旦被標記為參與事務,它們將自動在事務范圍內執行。您可以通過在頁、XML Web services 方法或類中設置一個事務屬性值來控制對象的事務行為。
Ⅳ 資料庫操作中的「事務」指的是什麼
什麼是資料庫事務
資料庫事務是指作為單個邏輯工作單元執行的一系列操作。
設想網上購物的一次交易,其付款過程至少包括以下幾步資料庫操作:
·
更新客戶所購商品的庫存信息
·
保存客戶付款信息--可能包括與銀行系統的交互
·
生成訂單並且保存到資料庫中
·
更新用戶相關信息,例如購物數量等等
正常的情況下,這些操作將順利進行,最終交易成功,與交易相關的所有資料庫信息也成功地更新。但是,如果在這一系列過程中任何一個環節出了差錯,例如在更新商品庫存信息時發生異常、該顧客銀行帳戶存款不足等,都將導致交易失敗。一旦交易失敗,資料庫中所有信息都必須保持交易前的狀態不變,比如最後一步更新用戶信息時失敗而導致交易失敗,那麼必須保證這筆失敗的交易不影響資料庫的狀態--庫存信息沒有被更新、用戶也沒有付款,訂單也沒有生成。否則,資料庫的信息將會一片混亂而不可預測。
資料庫事務正是用來保證這種情況下交易的平穩性和可預測性的技術。
Ⅵ 在java中,事務是什麼有什麼用!
一、什麼是Java事務
通常的觀念認為,事務僅與資料庫相關。
事務必須服從ISO/IEC所制定的ACID原則。ACID是原子性(atomicity)、一致性(consistency)、隔離性
(isolation)和持久性(rability)的縮寫。事務的原子性表示事務執行過程中的任何失敗都將導致事務所做的任何修改失效。一致性表示
當事務執行失敗時,所有被該事務影響的數據都應該恢復到事務執行前的狀態。隔離性表示在事務執行過程中對數據的修改,在事務提交之前對其他事務不可見。持
久性表示已提交的數據在事務執行失敗時,數據的狀態都應該正確。
通俗的理解,事務是一組原子操作單元,從資料庫角度說,就是一組SQL指令,要麼全部執行成功,若因為某個原因其中一條指令執行有錯誤,則撤銷先前執行過的所有指令。更簡答的說就是:要麼全部執行成功,要麼撤銷不執行。
既然事務的概念從資料庫而來,那Java事務是什麼?之間有什麼聯系?
實際上,一個Java應用系統,如果要操作資料庫,則通過JDBC來實現的。增加、修改、刪除都是通過相應方法間接來實現的,事務的控制也相應轉移到Java程序代碼中。因此,資料庫操作的事務習慣上就稱為Java事務。
二、為什麼需要事務
事務是為解決數據安全操作提出的,事務控制實際上就是控制數據的安全訪問。具一個簡單例子:比如銀行轉帳業務,賬戶A要將自己賬戶上的1000元
轉到B賬戶下面,A賬戶余額首先要減去1000元,然後B賬戶要增加1000元。假如在中間網路出現了問題,A賬戶減去1000元已經結束,B因為網路中
斷而操作失敗,那麼整個業務失敗,必須做出控制,要求A賬戶轉帳業務撤銷。這才能保證業務的正確性,完成這個操走就需要事務,將A賬戶資金減少和B賬戶資
金增加方到一個事務裡面,要麼全部執行成功,要麼操作全部撤銷,這樣就保持了數據的安全性。
三、Java事務的類型
Java事務的類型有三種:JDBC事務、JTA(Java Transaction API)事務、容器事務。
1、JDBC事務
JDBC 事務是用 Connection 對象控制的。JDBC Connection 介面( java.sql.Connection )提供了兩種事務模式:自動提交和手工提交。 java.sql.Connection 提供了以下控制事務的方法:
public void setAutoCommit(boolean)
public boolean getAutoCommit()
public void commit()
public void rollback()
使用 JDBC 事務界定時,您可以將多個 SQL 語句結合到一個事務中。JDBC 事務的一個缺點是事務的范圍局限於一個資料庫連接。一個 JDBC 事務不能跨越多個資料庫。
2、JTA(Java Transaction API)事務
JTA是一種高層的,與實現無關的,與協議無關的API,應用程序和應用伺服器可以使用JTA來訪問事務。
JTA允許應用程序執行分布式事務處理–在兩個或多個網路計算機資源上訪問並且更新數據,這些數據可以分布在多個資料庫上。JDBC驅動程序的JTA支持極大地增強了數據訪問能力。
如果計劃用 JTA 界定事務,那麼就需要有一個實現 javax.sql.XADataSource 、
javax.sql.XAConnection 和 javax.sql.XAResource 介面的 JDBC
驅動程序。一個實現了這些介面的驅動程序將可以參與 JTA 事務。一個 XADataSource 對象就是一個 XAConnection
對象的工廠。 XAConnection s 是參與 JTA 事務的 JDBC 連接。
您將需要用應用伺服器的管理工具設置 XADataSource 。從應用伺服器和 JDBC 驅動程序的文檔中可以了解到相關的指導。
J2EE 應用程序用 JNDI 查詢數據源。一旦應用程序找到了數據源對象,它就調用 javax.sql.DataSource.getConnection() 以獲得到資料庫的連接。
XA 連接與非 XA 連接不同。一定要記住 XA 連接參與了 JTA 事務。這意味著 XA 連接不支持 JDBC
的自動提交功能。同時,應用程序一定不要對 XA 連接調用 java.sql.Connection.commit() 或者
java.sql.Connection.rollback() 。相反,應用程序應該使用 UserTransaction.begin()、
UserTransaction.commit() 和 serTransaction.rollback() 。
3、容器事務
容器事務主要是J2EE應用伺服器提供的,容器事務大多是基於JTA完成,這是一個基於JNDI的,相當復雜的API實現。相對編碼實現JTA事
務管理,我們可以通過EJB容器提供的容器事務管理機制(CMT)完成同一個功能,這項功能由J2EE應用伺服器提供。這使得我們可以簡單的指定將哪個方
法加入事務,一旦指定,容器將負責事務管理任務。這是我們土建的解決方式,因為通過這種方式我們可以將事務代碼排除在邏輯編碼之外,同時將所有困難交給
J2EE容器去解決。使用EJB CMT的另外一個好處就是程序員無需關心JTA API的編碼,不過,理論上我們必須使用EJB。
四、三種事務差異
1、JDBC事務控制的局限性在一個資料庫連接內,但是其使用簡單。
2、JTA事務的功能強大,事務可以跨越多個資料庫或多個DAO,使用也比較復雜。
3、容器事務,主要指的是J2EE應用伺服器提供的事務管理,局限於EJB應用使用。
五、總結
事務控制是構建J2EE應用不可缺少的一部分,合理選擇應用何種事務對整個應用系統來說至關重要。一般說來,在單個JDBC
連接連接的情況下可以選擇JDBC事務,在跨多個連接或者資料庫情況下,需要選擇使用JTA事務,如果用到了EJB,則可以考慮使用EJB容器事務。
如果滿意請及時採納,謝謝~
Ⅶ 資料庫中的事務是什麼
資料庫事務(簡稱:事務)是資料庫管理系統執行過程中的一個邏輯單位,由一個有限的資料庫操作序列構成。
一個資料庫事務通常包含了一個序列的對資料庫的讀/寫操作。它的存在包含有以下兩個目的:
為資料庫操作序列提供了一個從失敗中恢復到正常狀態的方法,同時提供了資料庫即使在異常狀態下仍能保持一致性的方法。
當多個應用程序在並發訪問資料庫時,可以在這些應用程序之間提供一個隔離方法,以防止彼此的操作互相干擾。
當事務被提交給了DBMS(資料庫管理系統),則DBMS(資料庫管理系統)需要確保該事務中的所有操作都成功完成且其結果被永久保存在資料庫中,如果事務中有的操作沒有成功完成,則事務中的所有操作都需要被回滾,回到事務執行前的狀態;同時,該事務對資料庫或者其他事務的執行無影響,所有的事務都好像在獨立的運行。
但在現實情況下,失敗的風險很高。在一個資料庫事務的執行過程中,有可能會遇上事務操作失敗、資料庫系統/操作系統失敗,甚至是存儲介質失敗等情況。這便需要DBMS對一個執行失敗的事務執行恢復操作,將其資料庫狀態恢復到一致狀態(數據的一致性得到保證的狀態)。為了實現將資料庫狀態恢復到一致狀態的功能,DBMS通常需要維護事務日誌以追蹤事務中所有影響資料庫數據的操作。
Ⅷ 在軟體開發中,會用到事務,問題來了什麼是事務
給你用一個生活中的案例,你去超市購買東西,就是一個事務(交錢,交貨)。
事務的體現:交錢和交貨必須全部成功,事務才能算成功,任何一個活動失敗,整個事務就失敗了。
事務是一系列操作組成的工作單元,該工作單元內的操作是不可分割的,即要麼所有操作都做,要麼所有操作都不做,這就是事務。
理解一:事務可以看做是一次大的活動,它由不同的小活動組成,這些活動要麼全部成功,要麼全部失敗。
理解二:事務可以看做是一個大的操作,它由一系列操作組成,這些操作要麼全部成功,要麼全部失敗。
Ⅸ 軟體工程中的事務是什麼
事物其實就是這個事件的定義名稱。