-
當(dāng)前位置:首頁 > 創(chuàng)意學(xué)院 > 景觀設(shè)計 > 專題列表 > 正文
事務(wù)和程序的區(qū)別(事務(wù)和程序的區(qū)別和聯(lián)系)
大家好!今天讓小編來大家介紹下關(guān)于事務(wù)和程序的區(qū)別的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。
創(chuàng)意嶺作為行業(yè)內(nèi)優(yōu)秀的企業(yè),服務(wù)客戶遍布全球各地,相關(guān)業(yè)務(wù)請撥打電話:175-8598-2043,或添加微信:1454722008
文章目錄列表:
一、事務(wù)處理系統(tǒng)和決策支持系統(tǒng)的區(qū)別
一、事務(wù)處理系統(tǒng)
事務(wù)處理系統(tǒng)是一種處理記錄和報告信息的計算機程序,其目的是管理,控制和跟蹤數(shù)據(jù)交易和控制數(shù)據(jù)庫的變化。事務(wù)處理系統(tǒng)可以處理業(yè)務(wù)邏輯復(fù)雜的應(yīng)用,或者處理大量的快速交易。
事務(wù)處理系統(tǒng)的主要功能是處理復(fù)雜的數(shù)據(jù)庫事務(wù),并且可以存儲和訪問大量的信息。它使用一種特殊的算法來處理并發(fā)操作,以確保其結(jié)果是可靠和準(zhǔn)確的。
二、決策支持系統(tǒng)
決策支持系統(tǒng)(DSS)是一種計算機程序,它可以支持和指導(dǎo)決策者進行決策,以達到特定的目的。它使用各種模型和復(fù)雜的算法,從而可以幫助決策者更好地理解當(dāng)前的環(huán)境,并做出最佳的決策。
與事務(wù)處理系統(tǒng)不同,DSS的目的是支持和指導(dǎo)決策者進行決策,而不是處理和控制數(shù)據(jù)庫的變化。它使用復(fù)雜的模型和算法幫助決策者更好地理解當(dāng)前環(huán)境,以便做出更好的決策。
二、在java中,事務(wù)是什么?有什么用!
一、什么是Java事務(wù)
通常的觀念認(rèn)為,事務(wù)僅與數(shù)據(jù)庫相關(guān)。
事務(wù)必須服從ISO/IEC所制定的ACID原則。ACID是原子性(atomicity)、一致性(consistency)、隔離性
(isolation)和持久性(durability)的縮寫。事務(wù)的原子性表示事務(wù)執(zhí)行過程中的任何失敗都將導(dǎo)致事務(wù)所做的任何修改失效。一致性表示
當(dāng)事務(wù)執(zhí)行失敗時,所有被該事務(wù)影響的數(shù)據(jù)都應(yīng)該恢復(fù)到事務(wù)執(zhí)行前的狀態(tài)。隔離性表示在事務(wù)執(zhí)行過程中對數(shù)據(jù)的修改,在事務(wù)提交之前對其他事務(wù)不可見。持
久性表示已提交的數(shù)據(jù)在事務(wù)執(zhí)行失敗時,數(shù)據(jù)的狀態(tài)都應(yīng)該正確。
通俗的理解,事務(wù)是一組原子操作單元,從數(shù)據(jù)庫角度說,就是一組SQL指令,要么全部執(zhí)行成功,若因為某個原因其中一條指令執(zhí)行有錯誤,則撤銷先前執(zhí)行過的所有指令。更簡答的說就是:要么全部執(zhí)行成功,要么撤銷不執(zhí)行。
既然事務(wù)的概念從數(shù)據(jù)庫而來,那Java事務(wù)是什么?之間有什么聯(lián)系?
實際上,一個Java應(yīng)用系統(tǒng),如果要操作數(shù)據(jù)庫,則通過JDBC來實現(xiàn)的。增加、修改、刪除都是通過相應(yīng)方法間接來實現(xiàn)的,事務(wù)的控制也相應(yīng)轉(zhuǎn)移到Java程序代碼中。因此,數(shù)據(jù)庫操作的事務(wù)習(xí)慣上就稱為Java事務(wù)。
二、為什么需要事務(wù)
事務(wù)是為解決數(shù)據(jù)安全操作提出的,事務(wù)控制實際上就是控制數(shù)據(jù)的安全訪問。具一個簡單例子:比如銀行轉(zhuǎn)帳業(yè)務(wù),賬戶A要將自己賬戶上的1000元
轉(zhuǎn)到B賬戶下面,A賬戶余額首先要減去1000元,然后B賬戶要增加1000元。假如在中間網(wǎng)絡(luò)出現(xiàn)了問題,A賬戶減去1000元已經(jīng)結(jié)束,B因為網(wǎng)絡(luò)中
斷而操作失敗,那么整個業(yè)務(wù)失敗,必須做出控制,要求A賬戶轉(zhuǎn)帳業(yè)務(wù)撤銷。這才能保證業(yè)務(wù)的正確性,完成這個操走就需要事務(wù),將A賬戶資金減少和B賬戶資
金增加方到一個事務(wù)里面,要么全部執(zhí)行成功,要么操作全部撤銷,這樣就保持了數(shù)據(jù)的安全性。
三、Java事務(wù)的類型
Java事務(wù)的類型有三種:JDBC事務(wù)、JTA(Java Transaction API)事務(wù)、容器事務(wù)。
1、JDBC事務(wù)
JDBC 事務(wù)是用 Connection 對象控制的。JDBC Connection 接口( java.sql.Connection )提供了兩種事務(wù)模式:自動提交和手工提交。 java.sql.Connection 提供了以下控制事務(wù)的方法:
public void setAutoCommit(boolean)
public boolean getAutoCommit()
public void commit()
public void rollback()
使用 JDBC 事務(wù)界定時,您可以將多個 SQL 語句結(jié)合到一個事務(wù)中。JDBC 事務(wù)的一個缺點是事務(wù)的范圍局限于一個數(shù)據(jù)庫連接。一個 JDBC 事務(wù)不能跨越多個數(shù)據(jù)庫。
2、JTA(Java Transaction API)事務(wù)
JTA是一種高層的,與實現(xiàn)無關(guān)的,與協(xié)議無關(guān)的API,應(yīng)用程序和應(yīng)用服務(wù)器可以使用JTA來訪問事務(wù)。
JTA允許應(yīng)用程序執(zhí)行分布式事務(wù)處理–在兩個或多個網(wǎng)絡(luò)計算機資源上訪問并且更新數(shù)據(jù),這些數(shù)據(jù)可以分布在多個數(shù)據(jù)庫上。JDBC驅(qū)動程序的JTA支持極大地增強了數(shù)據(jù)訪問能力。
如果計劃用 JTA 界定事務(wù),那么就需要有一個實現(xiàn) javax.sql.XADataSource 、
javax.sql.XAConnection 和 javax.sql.XAResource 接口的 JDBC
驅(qū)動程序。一個實現(xiàn)了這些接口的驅(qū)動程序?qū)⒖梢詤⑴c JTA 事務(wù)。一個 XADataSource 對象就是一個 XAConnection
對象的工廠。 XAConnection s 是參與 JTA 事務(wù)的 JDBC 連接。
您將需要用應(yīng)用服務(wù)器的管理工具設(shè)置 XADataSource 。從應(yīng)用服務(wù)器和 JDBC 驅(qū)動程序的文檔中可以了解到相關(guān)的指導(dǎo)。
J2EE 應(yīng)用程序用 JNDI 查詢數(shù)據(jù)源。一旦應(yīng)用程序找到了數(shù)據(jù)源對象,它就調(diào)用 javax.sql.DataSource.getConnection() 以獲得到數(shù)據(jù)庫的連接。
XA 連接與非 XA 連接不同。一定要記住 XA 連接參與了 JTA 事務(wù)。這意味著 XA 連接不支持 JDBC
的自動提交功能。同時,應(yīng)用程序一定不要對 XA 連接調(diào)用 java.sql.Connection.commit() 或者
java.sql.Connection.rollback() 。相反,應(yīng)用程序應(yīng)該使用 UserTransaction.begin()、
UserTransaction.commit() 和 serTransaction.rollback() 。
3、容器事務(wù)
容器事務(wù)主要是J2EE應(yīng)用服務(wù)器提供的,容器事務(wù)大多是基于JTA完成,這是一個基于JNDI的,相當(dāng)復(fù)雜的API實現(xiàn)。相對編碼實現(xiàn)JTA事
務(wù)管理,我們可以通過EJB容器提供的容器事務(wù)管理機制(CMT)完成同一個功能,這項功能由J2EE應(yīng)用服務(wù)器提供。這使得我們可以簡單的指定將哪個方
法加入事務(wù),一旦指定,容器將負(fù)責(zé)事務(wù)管理任務(wù)。這是我們土建的解決方式,因為通過這種方式我們可以將事務(wù)代碼排除在邏輯編碼之外,同時將所有困難交給
J2EE容器去解決。使用EJB CMT的另外一個好處就是程序員無需關(guān)心JTA API的編碼,不過,理論上我們必須使用EJB。
四、三種事務(wù)差異
1、JDBC事務(wù)控制的局限性在一個數(shù)據(jù)庫連接內(nèi),但是其使用簡單。
2、JTA事務(wù)的功能強大,事務(wù)可以跨越多個數(shù)據(jù)庫或多個DAO,使用也比較復(fù)雜。
3、容器事務(wù),主要指的是J2EE應(yīng)用服務(wù)器提供的事務(wù)管理,局限于EJB應(yīng)用使用。
五、總結(jié)
事務(wù)控制是構(gòu)建J2EE應(yīng)用不可缺少的一部分,合理選擇應(yīng)用何種事務(wù)對整個應(yīng)用系統(tǒng)來說至關(guān)重要。一般說來,在單個JDBC
連接連接的情況下可以選擇JDBC事務(wù),在跨多個連接或者數(shù)據(jù)庫情況下,需要選擇使用JTA事務(wù),如果用到了EJB,則可以考慮使用EJB容器事務(wù)。
如果滿意請及時采納,謝謝~
三、系統(tǒng)和程序有什么區(qū)別?
程序是個概論,他可以分為操作系統(tǒng)程序和應(yīng)用程序
我們通常所說的系統(tǒng)是指操作系統(tǒng)(目前微機上常見的操作系統(tǒng)有DOS、OS/2、UNIX、XENIX、LINUX、Windows2000、Netware等。)
是計算機系統(tǒng)中負(fù)責(zé)支撐應(yīng)用程序運行環(huán)境以及用戶操作環(huán)境的系統(tǒng)軟件,同時也是計算機系統(tǒng)的核心與基石。它的職責(zé)通常(但并非絕對)包括對硬體的直接監(jiān)管、對各種計算資源(如內(nèi)存、處理器時間等)的管理、以及提供諸如作業(yè)管理之類的面向應(yīng)用程序的服務(wù)等等。
操作系統(tǒng)為其它應(yīng)用軟件(就是你問的程序)提供支持等,使計算機系統(tǒng)所有資源最大限度地發(fā)揮作用,為用戶提供方便的、有效的、友善的服務(wù)界面。
操作系統(tǒng)是一個龐大的管理控制程序,大致包括5個方面的管理功能:進程與處理機管理、作業(yè)管理、存儲管理、設(shè)備管理、文件管理。
四、試比較操作系統(tǒng)的原語和事務(wù)兩個概念的異同點
一般地,把系統(tǒng)態(tài)下執(zhí)行的某些具有特定功能的程序段成為原語。
原語有倆類:
一類是機器指令級的,其特點是執(zhí)行期間不允許中斷,正如在物理學(xué)中的原子一樣,在操作系統(tǒng)中是一個不可分割的基本單位。
另一類是功能型的,其特點是作為原語的程序段不允許并發(fā)執(zhí)行。
倆類原語均在系統(tǒng)態(tài)下執(zhí)行,且都是為了完成某個系統(tǒng)管理所需要的功能被高層軟件所調(diào)用。
以上就是小編對于事務(wù)和程序的區(qū)別問題和相關(guān)問題的解答了,如有疑問,可撥打網(wǎng)站上的電話,或添加微信。
推薦閱讀:
河北中洲數(shù)據(jù)分析師事務(wù)所(河北中洲數(shù)據(jù)分析師事務(wù)所有限公司電話)
泰國景觀設(shè)計事務(wù)所有哪些(泰國景觀設(shè)計事務(wù)所有哪些部門)