欧美日韩不卡一区二区三区,www.蜜臀.com,高清国产一区二区三区四区五区,欧美日韩三级视频,欧美性综合,精品国产91久久久久久,99a精品视频在线观看

NIIT認證

NIIT認證面試題

時間:2024-07-03 13:29:28 NIIT認證 我要投稿

2016年NIIT認證面試題精選

  什么是事務?四大事務特性是什么?(ACID)

2016年NIIT認證面試題精選

  事務是單個的工作單元。如果某一事務成功,則在該事務中進行的所有數(shù)據(jù)修改均會提交,成為數(shù)據(jù)庫中的永久組成部分。如果事務遇到錯誤且必須取消或回滾,則所有數(shù)據(jù)修改均被清除。

  舉個例子,比如你去銀行轉(zhuǎn)帳就是一個事務。轉(zhuǎn)帳可以簡單的分為兩個步驟,一是把錢從你的帳戶中扣除,二是把錢存到你指定轉(zhuǎn)帳的帳戶中。這兩個步驟就是一個事務,必須全部執(zhí)行,或是全部不執(zhí)行。如果從你帳戶扣錢成功,但是轉(zhuǎn)帳失敗,那么你轉(zhuǎn)帳的錢就沒有了;如果是扣錢失敗了,但是轉(zhuǎn)帳成功了,那銀行就虧了。

  事務是作為單個邏輯工作單元執(zhí)行的一系列操作。一個邏輯工作單元必須有四個屬性,稱為原子性、一致性、隔離性和持久性 (ACID) 屬性,只有這樣才能成為一個事務。

  原子性:事務必須是原子工作單元;對于其數(shù)據(jù)修改,要么全都執(zhí)行,要么全都不執(zhí)行。

  一致性:事務在完成時,必須使所有的數(shù)據(jù)都保持一致狀態(tài)。在相關(guān)數(shù)據(jù)庫中,所有規(guī)則都必須應用于事務的修改,以保持所有數(shù)據(jù)的完整性。事務結(jié)束時,所有的內(nèi)部數(shù)據(jù)結(jié)構(gòu)(如 B 樹索引或雙向鏈表)都必須是正確的。

  隔離:由并發(fā)事務所做的修改必須與任何其他并發(fā)事務所做的修改隔離。事務識別數(shù)據(jù)時數(shù)據(jù)所處的狀態(tài),要么是另一并發(fā)事務修改它之前的狀態(tài),要么是第二個事務修改它之后的狀態(tài),事務不會識別中間狀態(tài)的數(shù)據(jù)。這稱為可串行性,因為它能夠重新裝載起始數(shù)據(jù),并且重播一系列事務,以使數(shù)據(jù)結(jié)束時的狀態(tài)與原始事務執(zhí)行的狀態(tài)相同。

  持久性:事務完成之后,它對于系統(tǒng)的影響是永久性的。該修改即使出現(xiàn)系統(tǒng)故障也將一直保持。

  SQL Server 以下列事務模式運行。

  自動提交事務:每條單獨的語句都是一個事務。

  顯式事務:每個事務均以 BEGIN TRANSACTION 語句顯式開始,以 COMMIT 或 ROLLBACK 語句顯式結(jié)束。

  隱式事務:在前一個事務完成時新事務隱式啟動,但每個事務仍以 COMMIT 或 ROLLBACK 語句顯式完成。

  批處理級事務:只能應用于多個活動結(jié)果集 (MARS),在 MARS 會話中啟動的 Transact-SQL 顯式或隱式事務變?yōu)榕幚砑壥聞。當批處理完成時沒有提交或回滾的批處理級事務自動由 SQL Server 進行回滾。

  Sql Server中有三種使用事務的方法,分別是Sql語句,SqlTransaction和TransactionScope,下面一節(jié)將分別介紹這三種事務的使用方法。htt

  事務(TRANSACTION)是作為單個邏輯工作單元執(zhí)行的一系列操作

  q 這些操作作為一個整體一起向系統(tǒng)提交,要么都執(zhí)行、要么都不執(zhí)行

  q 事務是一個不可分割的工作邏輯單元

  轉(zhuǎn)帳過程就是一個事務。

  它需要兩條UPDATE語句來完成,這兩條語句是一個整體,如果其中任一條出現(xiàn)錯誤,則整個轉(zhuǎn)帳業(yè)務也應取消,兩個帳戶中的余額應恢復到原來的數(shù)據(jù),從而確保轉(zhuǎn)帳前和轉(zhuǎn)帳后的余額不變,即都是1001元。

  事務的特性

  事務必須具備以下四個屬性,簡稱ACID屬性:

  •q原子性(Atomicity):事務是一個完整的操作。事務的各步操作是不可分的(原子的);要么都執(zhí)行,要么都不執(zhí)行

  •q一致性(Consistency):當事務完成時,數(shù)據(jù)必須處于一致狀態(tài)

  •q隔離性(Isolation):對數(shù)據(jù)進行修改的所有并發(fā)事務是彼此隔離的,這表明事務必須是獨立的,它不應以任何方式依賴于或影響其他事務

  •q永久性(Durability):事務完成后,它對數(shù)據(jù)庫的修改被永久保持,事務日志能夠保持事務的永久性

  如何創(chuàng)建事務

  q T-SQL使用下列語句來管理事務:

  q 開始事務:BEGIN TRANSACTION

  q 提交事務:COMMIT TRANSACTION

  q 回滾(撤銷)事務:ROLLBACK TRANSACTION

  一旦事務提交或回滾,則事務結(jié)束。

  q 判斷某條語句執(zhí)行是否出錯:

  q 使用全局變量@@ERROR;

  q @@ERROR只能判斷當前一條T-SQL語句執(zhí)行是否有錯,為了判斷事務中所有T-SQL語句是否有錯,我們需要對錯誤進行累計;

  如: SET @errorSum=@errorSum+@@error

  了解事務的分類:

  q 顯示事務:用BEGIN TRANSACTION明確指定事務的開始,這是最常用的事務類型

  q 隱性事務:通過設置SET IMPLICIT_TRANSACTIONS ON 語句,將隱性事務模式設置為打開,下一個語句自動啟動一個新事務。當該事務完成時,再下一個 T-SQL 語句又將啟動一個新事務

  q 自動提交事務:這是 SQL Server 的默認模式,它將每條單獨的 T-SQL 語句視為一個事務,如果成功執(zhí)行,則自動提交;如果錯誤,則自動回滾

  q 使用事務解決銀行轉(zhuǎn)帳問題

  ……關(guān)鍵語句講解………

  BEGIN TRANSACTION

  /*--定義變量,用于累計事務執(zhí)行過程中的錯誤--*/

  DECLARE @errorSum INT

  SET @errorSum=0 --初始化為0,即無錯誤

  /*--轉(zhuǎn)帳:張三的帳戶少1000元,李四的帳戶多1000元*/

  UPDATE bank SET currentMoney=currentMoney-1000

  WHERE customerName='張三'

  SET @errorSum=@errorSum+@@error

  UPDATE bank SET currentMoney=currentMoney+1000

  WHERE customerName='李四'

  SET @errorSum=@errorSum+@@error --累計是否有錯誤

  IF @errorSum<>0 --如果有錯誤

  BEGIN

  print '交易失敗,回滾事務'

  ROLLBACK TRANSACTION

  END

  ELSE

  BEGIN

  print '交易成功,提交事務,寫入硬盤,永久的保存'

  COMMIT TRANSACTION

  END

  Go

  print '查看轉(zhuǎn)帳事務后的余額'

  SELECT * FROM bank

  GO

【NIIT認證面試題】相關(guān)文章:

NIIT認證Java面試題及答案08-27

NIIT認證簡介08-15

NIIT認證的就業(yè)前景06-26

NIIT教學及認證體系09-16

NIIT認證詳細介紹07-09

關(guān)于NIIT認證的介紹06-16

NIIT認證培訓筆記08-18

2016關(guān)于NIIT認證的問與答06-21

2016年NIIT認證模擬試題10-27

NIIT認證面試真題及答案2017年05-11