事務處理與SQL查詢

2021-10-01 21:01:43 字數 2200 閱讀 5279

事務完成乙個業務邏輯所涉及的一組具有acid特性的資料庫操作

事務管理器( transaction manager ):負責對資料庫的改變記錄日誌,以支援系統崩潰後的恢復。

併發控制器: 保障事務的併發執行,以支援多使用者訪問。

acid特性:

dbms讀取資料字典,檢查是否存在該關係和相應字段,並對該命令進行語法和使用者許可權檢查。如果檢查通過,則執行該命令,否則拒絕並返回出錯資訊;

執行該命令時,首先根據資料字典中的定義將命令中的外模式對映到模式,確定應該讀取哪些記錄;

根據資料字典中的定義資訊,將模式對映到內模式,確定應該讀入哪些物理記錄及有關的位址資訊;

dbms向作業系統os傳送讀取該記錄的命令;

os執行讀取資料的有關操作,從指定位址讀取記錄並存入系統緩衝區;

dbms將系統緩衝區中的資料轉換為模式並進而轉換為外模式;

dbms將系統緩衝區外模式形式的記錄返回給應用程式;

dbms將運**況登記在執行日誌中;

dbms將命令執行狀態返回應用程式;

若應用程式中的命令需讀取多條記錄,則反覆執行4-10步。

查詢分析和詞法、語法解析、語義檢查 、約束檢查

將 sql 查詢轉換為關係代數,選擇邏輯查詢計畫選擇物理查詢計畫,在物理查詢計畫中指明運算的具體順序和用於實現每乙個運算的演算法

邏輯查詢計畫:是乙個代數表示式,表示要在資料上執行的若干個具體運算以及有關運算順序。

查詢處理的步驟:優化

執行

乙個查詢有多個表達方式:如 σsa

lary

<

75000(π

sala

ry(i

nstr

ucto

r))\sigma_ (\pi _ (instructor))

σsalar

y<75

000​

(πsa

lary

​(in

stru

ctor

))和 πsa

lary

(σsa

lary

<

75000(i

nstr

ucto

r))\pi _(\sigma_ (instructor))

πsalar

y​(σ

sala

ry<75

000​

(ins

truc

tor)

)每乙個關係代數運算通常有多種計算方法(執行計畫),不同的執行計畫有不同的代價。

從所有等價的執行計畫中選擇代價最小的乙個。

基於代價的優化

啟發式優化

基於代價的優化

代價是利用資料庫目錄(catalog )中的統計資訊估算而得的,如:每個關係中的元組數,每個元組的長度,等等。

關鍵問題:如何度量查詢代價、執行關係代數運算的演算法、如何進行單元運算的組合,以實現整個表示式計算、如何優化查詢,即如何找到代價最小的查詢執行計畫。

代價估算:

忽略:

笛卡爾積

選擇使用索引的選擇

涉及比較的選擇

投影排序

巢狀迴圈連線

索引連線

雜湊連線

歸併連線

啟發式優化準則

選擇和投影盡早執行(選擇 、投影)

執行連線之前關係進行預處理(index、sort)

某些選擇 + 笛卡爾積 => 連線

將常用查詢的優化結果(執行計畫)存於系統中

sql事務處理語言

事務 也稱為工作單元,是由乙個或多個sql語句組成的操作序列,這些sql語句作為乙個完整的工作單元,要麼全部執行成功,要麼全部執行失敗。這樣能保證資料的一致性。事務處理語言 transaction process language 簡稱tpl,主要用來對組成事務的dml語句的操作結果進行確認或取消。...

delphi 事務處理SQL語句

方法一 利用adoconnection.exe sqlstate adoconnection1.begintrans 開始事務 tryadoconnection1.execute sqlstr1 adoconnection1.execute sqlstr2 adoconnection1.execut...

delphi 事務處理SQL語句

方法一 利用adoconnection.exe sqlstate adoconnection1.begintrans 開始事務 tryadoconnection1.execute sqlstr1 adoconnection1.execute sqlstr2 adoconnection1.execut...