Hệ Quản Trị CSDL
Số trang: 26
Loại file: ppt
Dung lượng: 3.54 MB
Lượt xem: 16
Lượt tải: 0
Xem trước 3 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
GVHD: ThS Đỗ Thị Minh Phụng.Transaction–Giaotác(SQLServer)1. 2. 3. 4. Khái niệm Phân loại Giao tác không tường minh (Implicit Transaction) Giao tác tường minh (Explicit
Nội dung trích xuất từ tài liệu:
Hệ Quản Trị CSDLGVHD: ThS Đỗ Thị Minh PhụngTransaction–Giaotác(SQLServer) 1. Khái niệm 2. Phân loại 3. Giao tác không tường minh (Implicit Transaction) 4. Giao tác tường minh (Explicit Transaction)LiênhệvớisosánhvớiOracle 1.KháiniệmGiao tác (transaction) là 1 tập hợp có thứ tự các thao tác (statement) truyxuất dữ liệu trên CSDL thành 1 đơn vị công việc logic (xem là 1 thao tácnguyên tố), chuyển CSDL từ trạng thái nhất quán này sang trạng thái nhấtquán khác TrừtiềnbênA Bàitoánchuyểntiềntừtài khoảnA>tàikhoảnB CộngtiềnbênB- Chỉ một trong 2 hành động thành công ?- Trạng thái trước đó của CSDL có được đảm bảo ? Cầncàiđặtgiaotácchoviệc chuyểntiền 2.Phânloại SQL Server thực thi transaction theo 4 chế độ.Autocommit transactionsMỗi một thao tác đơn (statement) được xem là 1 transactionExplicit transactionsTransaction bắt đầu với câu lệnh BEGIN TRANSACTION và th ực thi quacâu lệnh COMMIT or ROLLBACK.Implicit transactionsCác transaction được thực hiện liên tiếp nhau – đ ược coi là m ột chu ỗi. M ỗitransaction trong chuỗi đó cũng được thực thi qua câu l ệnh COMMIT orROLLBACKBatch-scoped transactionsChạy thông qua session MARS (Multi active result sets). Lúc này n ếu trongmột chuỗi các transaction của một file batch nếu có transaction ch ưa đ ượcthực thì thì transaction này sẽ được SQL Server tự động kết thúc BEGIN TRANSACTION EXPLICITAUTOCOMMIT IMPLICITSETIMPLICIT_TRANSACTION (ON/OFF) MARS Session BATCH SCOPED3.Giaotáckhôngtườngminh Sau khi chế độ implicit transaction (SET IMPLICIT_TRANSACTION ON) được bật , một trong những câu lệnh sau sẽ bắt đầu chuỗi giao tác không tường minh . Sau khi câu lệnh kết thúc (commit hoặc rollback) thì SQL Server sẽ tự động thực hiện tiếp các transaction sau đó cho đến khi kết thúc chuỗi hoặc gặp chế độ implicit được tắt (SET IMPLICIT_TRANSACTION OFF)4.Giaotáctườngminh- Để bắt đầu một giao tác tường minh, sử dụng câu BEGIN TRAN.- Để chỉ định SQL Server kết thúc giao tác và ghi nhận lại các hành đ ộng cậpnhật dữ liệu -> sử dụng lệnh COMMIT TRAN- Để chỉ định SQL Server kết thúc giao tác mà không ghi nhận lại các hànhđộng cập nhật dữ liệu trong giao tác, sử dụng lệnh ROLLBACK TRAN4.1/Cúpháp BEGINTRAN[SACTION][Tên_giao_tác]Tên_giao_tác : phải được chỉ định rõ ràng, chỉ nên sử dụng tên giao tác khi cấpđộ lồng nhau của các giao tác nhiều hơn hai cấp COMMITTRAN[SACTION][Tên_giao_tác] ROLLBACKTRAN[SACTION][Tên_giao_tác] Tên_giao_tác : tên của giao tác được định nghĩa trước đó trong câu lệnh BEGIN TRAN 4.2/Transactionlồngnhau SQL cho phép các giao tác này được thực thi bên trong một thao tác khác. Lúc nàybiến hệ thống tự động là @@TRANCOUNT trả về cấp độ lồng hiện hàng bêntrong giao tác cha (tổng số giao tác được lồng ) SQL đưa ra các qui định sau nhằm đảm bảo việc thực hiện của các transactionlồng nhau không làm vi phạm các tính chất của giao tác :• Lệnh COMMIT TRANSACTION sẽ được xem như thuộc về transaction bắt đầusau nhất (bên trong nhất) chưa commit , cho dù nó được đi kèm với tên củatransaction bắt đầu trước (cấp ngoài hơn).• Lệnh COMMIT của transaction con chỉ giảm @@TRANCOUNT đi 1, không có tácdụng yêu cầu hệ quản trị ghi nhận chắc chắn những thay đổi trên CSDL màtransaction này đã làm.•Chỉ có COMMIT của transaction ngoài cùng mới thực sự có tác dụng này (như vậynếu có n transaction lồng nhau thì lệnh commit transaction thứ n mới thực sự committoàn bộ giao tác).• Ngược với COMMIT , chỉ cần có một lệnh ROLLBACK (ở bất cứ cấp nào) làtoàn bộ giao tác sẽ bị rollback.• ROLLBACK TRAN + Tên_giao_tác chỉ hợp lệ khi Tên_giao_tác là tên củatransaction ngoài cùng, nếu là tên của transaction bên trong, lệnh này sẽ bị lỗi. 4.3/Phânvùngtronggiaotác–SAVETRAN- Ta có thể chỉ định việc đồng ý ghi nhận hoặc không ghi nhận lại các hànhđộng cập nhật dữ liệu riêng lẻ bên trong một giao tác bằng cách phân chiathành nhiều vùng nhỏ cho các câu lệnh bên trong một giao tác.- Bằng cách này chúng ta chia nhỏ các hành động bên trong giao tác ra thànhnhiều phần, tương ứng từng phần nhỏ chúng ta ...
Nội dung trích xuất từ tài liệu:
Hệ Quản Trị CSDLGVHD: ThS Đỗ Thị Minh PhụngTransaction–Giaotác(SQLServer) 1. Khái niệm 2. Phân loại 3. Giao tác không tường minh (Implicit Transaction) 4. Giao tác tường minh (Explicit Transaction)LiênhệvớisosánhvớiOracle 1.KháiniệmGiao tác (transaction) là 1 tập hợp có thứ tự các thao tác (statement) truyxuất dữ liệu trên CSDL thành 1 đơn vị công việc logic (xem là 1 thao tácnguyên tố), chuyển CSDL từ trạng thái nhất quán này sang trạng thái nhấtquán khác TrừtiềnbênA Bàitoánchuyểntiềntừtài khoảnA>tàikhoảnB CộngtiềnbênB- Chỉ một trong 2 hành động thành công ?- Trạng thái trước đó của CSDL có được đảm bảo ? Cầncàiđặtgiaotácchoviệc chuyểntiền 2.Phânloại SQL Server thực thi transaction theo 4 chế độ.Autocommit transactionsMỗi một thao tác đơn (statement) được xem là 1 transactionExplicit transactionsTransaction bắt đầu với câu lệnh BEGIN TRANSACTION và th ực thi quacâu lệnh COMMIT or ROLLBACK.Implicit transactionsCác transaction được thực hiện liên tiếp nhau – đ ược coi là m ột chu ỗi. M ỗitransaction trong chuỗi đó cũng được thực thi qua câu l ệnh COMMIT orROLLBACKBatch-scoped transactionsChạy thông qua session MARS (Multi active result sets). Lúc này n ếu trongmột chuỗi các transaction của một file batch nếu có transaction ch ưa đ ượcthực thì thì transaction này sẽ được SQL Server tự động kết thúc BEGIN TRANSACTION EXPLICITAUTOCOMMIT IMPLICITSETIMPLICIT_TRANSACTION (ON/OFF) MARS Session BATCH SCOPED3.Giaotáckhôngtườngminh Sau khi chế độ implicit transaction (SET IMPLICIT_TRANSACTION ON) được bật , một trong những câu lệnh sau sẽ bắt đầu chuỗi giao tác không tường minh . Sau khi câu lệnh kết thúc (commit hoặc rollback) thì SQL Server sẽ tự động thực hiện tiếp các transaction sau đó cho đến khi kết thúc chuỗi hoặc gặp chế độ implicit được tắt (SET IMPLICIT_TRANSACTION OFF)4.Giaotáctườngminh- Để bắt đầu một giao tác tường minh, sử dụng câu BEGIN TRAN.- Để chỉ định SQL Server kết thúc giao tác và ghi nhận lại các hành đ ộng cậpnhật dữ liệu -> sử dụng lệnh COMMIT TRAN- Để chỉ định SQL Server kết thúc giao tác mà không ghi nhận lại các hànhđộng cập nhật dữ liệu trong giao tác, sử dụng lệnh ROLLBACK TRAN4.1/Cúpháp BEGINTRAN[SACTION][Tên_giao_tác]Tên_giao_tác : phải được chỉ định rõ ràng, chỉ nên sử dụng tên giao tác khi cấpđộ lồng nhau của các giao tác nhiều hơn hai cấp COMMITTRAN[SACTION][Tên_giao_tác] ROLLBACKTRAN[SACTION][Tên_giao_tác] Tên_giao_tác : tên của giao tác được định nghĩa trước đó trong câu lệnh BEGIN TRAN 4.2/Transactionlồngnhau SQL cho phép các giao tác này được thực thi bên trong một thao tác khác. Lúc nàybiến hệ thống tự động là @@TRANCOUNT trả về cấp độ lồng hiện hàng bêntrong giao tác cha (tổng số giao tác được lồng ) SQL đưa ra các qui định sau nhằm đảm bảo việc thực hiện của các transactionlồng nhau không làm vi phạm các tính chất của giao tác :• Lệnh COMMIT TRANSACTION sẽ được xem như thuộc về transaction bắt đầusau nhất (bên trong nhất) chưa commit , cho dù nó được đi kèm với tên củatransaction bắt đầu trước (cấp ngoài hơn).• Lệnh COMMIT của transaction con chỉ giảm @@TRANCOUNT đi 1, không có tácdụng yêu cầu hệ quản trị ghi nhận chắc chắn những thay đổi trên CSDL màtransaction này đã làm.•Chỉ có COMMIT của transaction ngoài cùng mới thực sự có tác dụng này (như vậynếu có n transaction lồng nhau thì lệnh commit transaction thứ n mới thực sự committoàn bộ giao tác).• Ngược với COMMIT , chỉ cần có một lệnh ROLLBACK (ở bất cứ cấp nào) làtoàn bộ giao tác sẽ bị rollback.• ROLLBACK TRAN + Tên_giao_tác chỉ hợp lệ khi Tên_giao_tác là tên củatransaction ngoài cùng, nếu là tên của transaction bên trong, lệnh này sẽ bị lỗi. 4.3/Phânvùngtronggiaotác–SAVETRAN- Ta có thể chỉ định việc đồng ý ghi nhận hoặc không ghi nhận lại các hànhđộng cập nhật dữ liệu riêng lẻ bên trong một giao tác bằng cách phân chiathành nhiều vùng nhỏ cho các câu lệnh bên trong một giao tác.- Bằng cách này chúng ta chia nhỏ các hành động bên trong giao tác ra thànhnhiều phần, tương ứng từng phần nhỏ chúng ta ...
Tìm kiếm theo từ khóa liên quan:
hệ quản trị cơ sở dữ liệu quản trị giao dịch cấu trúc hệ thống tổng thể kiến trúc hệ cơ sở dữ liệu hệ thống client serverTài liệu liên quan:
-
Giáo án Tin học lớp 12 (Trọn bộ cả năm)
180 trang 272 0 0 -
Thực hiện truy vấn không gian với WebGIS
8 trang 254 0 0 -
Đề cương chi tiết học phần Quản trị cơ sở dữ liệu (Database Management Systems - DBMS)
14 trang 248 0 0 -
69 trang 145 0 0
-
57 trang 90 0 0
-
34 trang 85 0 0
-
Bài giảng Khái niệm về hệ cơ sở dữ liệu: Bài 2 - Hệ quản trị cơ sở dữ liệu
13 trang 79 0 0 -
Giáo trình Hệ quản trị cơ sở dữ liệu - Trần Thiên Thành
130 trang 75 0 0 -
Phát triển Java 2.0: Phân tích dữ liệu lớn bằng MapReduce của Hadoop
12 trang 73 0 0 -
Lý thuyết, bài tập và bài giải hệ thống thông tin kế toán: Phần 1
198 trang 70 0 0