Bài giảng SQL Server 2008: Managing Transactions, locks - Trần Thị Kim Chi
Số trang: 93
Loại file: ppt
Dung lượng: 1.33 MB
Lượt xem: 10
Lượt tải: 0
Xem trước 10 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài giảng "SQL Server 2008: Managing Transactions, locks" cung cấp cho người học các kiến thức: Định nghĩa Transactions, thuộc tính của Transactions, các loại Transaction, công dụng Transaction log, định nghĩa Lock, các vấn đề đồng thời (Concurrency problem), các kiểu Lock. Mời các bạn cùng tham khảo.
Nội dung trích xuất từ tài liệu:
Bài giảng SQL Server 2008: Managing Transactions, locks - Trần Thị Kim ChiManaging Transactions, LocksNội dung ĐịnhnghĩaTransactions ThuộctínhcủaTransactions CácloạiTransaction CôngdụngTransactionlog ĐịnhnghĩaLock Cácvấnđềđồngthời(Concurrency problem). CáckiểuLock Transaction• Một giao tác (transaction) là một chuỗi gồm một hoặc nhiều câu lệnh SQL được kết hợp lại với nhau thành mộtkhốicôngviệc.• Các câu lệnh SQL xuất hiện trong giao tác thường có mốiquanhệtươngđốimậtthiếtvớinhauvàthựchiện cácthaotácđộclập.Việckếthợpcáccâulệnhlạivới nhautrongmộtgiaotácnhằmđảmbảotínhtoànvẹndữ liệuvàkhảnăngphụchồidữliệu.• Trongmộtgiaotác,cáccâulệnhcóthểđộclậpvớinhau nhưng tất cả các câu lệnh trong một giao tác đòi hỏi hoặc phải thực thi trọn vẹn hoặc không một câu lệnh nàođượcthựcthi.TransactionVD:giaodịchchuyểnkhoản50$từtàikhoảnAsangtài khoảnB read(A) INSERT A:=A–50 UPDATE write(A) read(B) DELETE B:=B+50 UPDATE write(B) INSERT Thuộc tính của Transaction Tính nguyên tử (Atomicity): Là một công việc đơn tử. Hoặc toàn bộ các hiệu chỉnh dữ liệu được thực hiện hoặc là tất cả chúng đều không được thực hiện. Tính nhất quán (Consistency): Tính nhất quán đòi hỏi sau khi giao tác kết thúc, cho dù là thành công hay bị lỗi, tất cả dữ liệu phải ở trạng thái nhất quán (tức là sự toàn vẹn dữ liệu phải luôn được bảo toàn) Tính cô lập (Isolation): Dữ liệu khi hiệu chỉnh được thực hiện bởi các Transaction phải độc lập với các hiệu chỉnh khác của các Transaction đồng thời khác. Tính bền vững (Durability): Sau khi một giao dịch thực hiện thành công, các thay đổi đã được tạo ra đối với CSDL vẫn còn ngay cả khi xảy ra sự cố hệ thống.Transaction Properties Iso y l ati i cit on t om A Transaction Co ty ns ist l i en ra bi cy Du Quản lý các trạng thái Transaction Active : Trạng thái khởi đầu, giao dịch giữ trong trạng thái này trong khi nó đang thực hiện Partially committed: Sau khi lệnh cuối cùng được thực hiện. Failed: Sau khi phát hiện rằng sự thực hiện không thể tiếp tục được nữa. Aborted: Sau khi giao dịch đã bị “roll back” và CSDL đã phục hồi lại trạng thái của nó trước khi khởi động giao dịch. Committed: Sau khi thực hiện thành công giao dịch.Quản lý các Transaction -trạng thái Mô hình Transaction trong SQL Giao tác SQL được định nghĩa dựa trên các câu lệnh xử lý giao tác sau đây: BEGIN TRANSACTION: Bắt đầu một giao tác SAVE TRANSACTION: Đánh dấu một vị trí trong giao tác (gọi là điểm đánh dấu). ROLLBACK TRANSACTION: Quay lui trở lại đầu giao tác hoặc một điểm đánh dấu trước đó trong giao tác. COMMIT TRANSACTION: Đánh dấu điểm kết thúc một giao tác. Khi câu lệnh này thực thi cũng có nghĩa là giao tác đã thực hiện thành công. ROLLBACK [WORK]: Quay lui trở lại đầu giao tác. COMMIT [WORK]: Đánh dấu kết thúc giao tác. Mô hình Transaction trong SQLCú Pháp:BEGIN TRANSACTION SQL StatementsCOMMIT | ROLLBACK TRANSACTION Mô hình Transaction trong SQLChúng ta có thể sử dụng TRY…CACTH hoặc IF cùng với TRANSACTIONBEGIN TRYBEGIN TRAN -- Code for your transactionCOMMIT TRANEND TRYBEGIN CATCH -- output an error messageROLLBACK TRAN END CATCH Mô hình Transaction trong SQL Ví dụ 6.1: Giao tác dưới đây kết thúc do lệnh ROLLBACK TRANSACTION và mọi thay đổi vể mặt dữ liệu mà giao tác đã thực hiện (UPDATE) đều không có tác dụng.BEGIN TRANSACTION giaotac1UPDATE monhoc SET sodvht=4 WHERE sodvht=3UPDATE diemthi SET diemlan2=0 WHERE diemlan2 IS NULLROLLBACK TRANSACTION giaotac1 Mô hình Transaction trong SQL Giao tác dưới đây kết thúc bởi lệnh COMMIT và thực hiện thành công việc cập nhật dữ liệu trên các bảng MONHOC và DIEMTHI.BEGIN TRANSACTION giaotac2UPDATE monhoc SET sodvht=4 WHERE sodvht=3UPDATE diemthi SET diemlan2=0 WHERE diemlan2 IS NULLCOMMIT TRANSACTION giaotac2Quản lý các Transaction -trạng thái HoạtđộngcủamộttransactionMô hình Transaction trong SQLCác loại Transaction Explicit–Tườngminh Implicit–Khôngtườngminh Auto commit transaction Giao tác tự độngchuyểngia ...
Nội dung trích xuất từ tài liệu:
Bài giảng SQL Server 2008: Managing Transactions, locks - Trần Thị Kim ChiManaging Transactions, LocksNội dung ĐịnhnghĩaTransactions ThuộctínhcủaTransactions CácloạiTransaction CôngdụngTransactionlog ĐịnhnghĩaLock Cácvấnđềđồngthời(Concurrency problem). CáckiểuLock Transaction• Một giao tác (transaction) là một chuỗi gồm một hoặc nhiều câu lệnh SQL được kết hợp lại với nhau thành mộtkhốicôngviệc.• Các câu lệnh SQL xuất hiện trong giao tác thường có mốiquanhệtươngđốimậtthiếtvớinhauvàthựchiện cácthaotácđộclập.Việckếthợpcáccâulệnhlạivới nhautrongmộtgiaotácnhằmđảmbảotínhtoànvẹndữ liệuvàkhảnăngphụchồidữliệu.• Trongmộtgiaotác,cáccâulệnhcóthểđộclậpvớinhau nhưng tất cả các câu lệnh trong một giao tác đòi hỏi hoặc phải thực thi trọn vẹn hoặc không một câu lệnh nàođượcthựcthi.TransactionVD:giaodịchchuyểnkhoản50$từtàikhoảnAsangtài khoảnB read(A) INSERT A:=A–50 UPDATE write(A) read(B) DELETE B:=B+50 UPDATE write(B) INSERT Thuộc tính của Transaction Tính nguyên tử (Atomicity): Là một công việc đơn tử. Hoặc toàn bộ các hiệu chỉnh dữ liệu được thực hiện hoặc là tất cả chúng đều không được thực hiện. Tính nhất quán (Consistency): Tính nhất quán đòi hỏi sau khi giao tác kết thúc, cho dù là thành công hay bị lỗi, tất cả dữ liệu phải ở trạng thái nhất quán (tức là sự toàn vẹn dữ liệu phải luôn được bảo toàn) Tính cô lập (Isolation): Dữ liệu khi hiệu chỉnh được thực hiện bởi các Transaction phải độc lập với các hiệu chỉnh khác của các Transaction đồng thời khác. Tính bền vững (Durability): Sau khi một giao dịch thực hiện thành công, các thay đổi đã được tạo ra đối với CSDL vẫn còn ngay cả khi xảy ra sự cố hệ thống.Transaction Properties Iso y l ati i cit on t om A Transaction Co ty ns ist l i en ra bi cy Du Quản lý các trạng thái Transaction Active : Trạng thái khởi đầu, giao dịch giữ trong trạng thái này trong khi nó đang thực hiện Partially committed: Sau khi lệnh cuối cùng được thực hiện. Failed: Sau khi phát hiện rằng sự thực hiện không thể tiếp tục được nữa. Aborted: Sau khi giao dịch đã bị “roll back” và CSDL đã phục hồi lại trạng thái của nó trước khi khởi động giao dịch. Committed: Sau khi thực hiện thành công giao dịch.Quản lý các Transaction -trạng thái Mô hình Transaction trong SQL Giao tác SQL được định nghĩa dựa trên các câu lệnh xử lý giao tác sau đây: BEGIN TRANSACTION: Bắt đầu một giao tác SAVE TRANSACTION: Đánh dấu một vị trí trong giao tác (gọi là điểm đánh dấu). ROLLBACK TRANSACTION: Quay lui trở lại đầu giao tác hoặc một điểm đánh dấu trước đó trong giao tác. COMMIT TRANSACTION: Đánh dấu điểm kết thúc một giao tác. Khi câu lệnh này thực thi cũng có nghĩa là giao tác đã thực hiện thành công. ROLLBACK [WORK]: Quay lui trở lại đầu giao tác. COMMIT [WORK]: Đánh dấu kết thúc giao tác. Mô hình Transaction trong SQLCú Pháp:BEGIN TRANSACTION SQL StatementsCOMMIT | ROLLBACK TRANSACTION Mô hình Transaction trong SQLChúng ta có thể sử dụng TRY…CACTH hoặc IF cùng với TRANSACTIONBEGIN TRYBEGIN TRAN -- Code for your transactionCOMMIT TRANEND TRYBEGIN CATCH -- output an error messageROLLBACK TRAN END CATCH Mô hình Transaction trong SQL Ví dụ 6.1: Giao tác dưới đây kết thúc do lệnh ROLLBACK TRANSACTION và mọi thay đổi vể mặt dữ liệu mà giao tác đã thực hiện (UPDATE) đều không có tác dụng.BEGIN TRANSACTION giaotac1UPDATE monhoc SET sodvht=4 WHERE sodvht=3UPDATE diemthi SET diemlan2=0 WHERE diemlan2 IS NULLROLLBACK TRANSACTION giaotac1 Mô hình Transaction trong SQL Giao tác dưới đây kết thúc bởi lệnh COMMIT và thực hiện thành công việc cập nhật dữ liệu trên các bảng MONHOC và DIEMTHI.BEGIN TRANSACTION giaotac2UPDATE monhoc SET sodvht=4 WHERE sodvht=3UPDATE diemthi SET diemlan2=0 WHERE diemlan2 IS NULLCOMMIT TRANSACTION giaotac2Quản lý các Transaction -trạng thái HoạtđộngcủamộttransactionMô hình Transaction trong SQLCác loại Transaction Explicit–Tườngminh Implicit–Khôngtườngminh Auto commit transaction Giao tác tự độngchuyểngia ...
Tìm kiếm theo từ khóa liên quan:
Bài giảng SQL Server 2008 SQL Server 2008 Managing Transactions Thuộc tính của Transactions Công dụng Transaction log Các kiểu LockGợi ý tài liệu liên quan:
-
Giáo trình SQL Server 2008 - Nhất Nghệ
161 trang 26 0 0 -
Bài giảng SQL Server 2008: Backup và Restore Database - Trần Thị Kim Chi
14 trang 24 0 0 -
Bài giảng SQL Server 2008: Bài 7 - Trần Thị Kim Chi
116 trang 21 0 0 -
Bài giảng SQL server 2008 - Lương Trần Hy Hiến
53 trang 20 0 0 -
Bài giảng Cài đặt DBMS: Bài 2 - Nguyễn Đức Cương
39 trang 18 0 0 -
Bài thực hành Lập trình Java 3 - Bài 5
10 trang 17 0 0 -
Bài giảng SQL Server 2008: Chương 1 - Trần Thị Kim Chi
114 trang 16 0 0 -
Bài giảng SQL Server 2008: Chương 3 - Nguyễn Đức Cương
11 trang 16 0 0 -
Cải tiến trong lệnh T-SQL của SQL Server 2008 (1)
9 trang 15 0 0 -
Cải tiến trong lệnh T-SQL của SQL Server 2008 (2)
9 trang 14 0 0