Danh mục

Phần 7 Các giao dịch và khoá

Số trang: 13      Loại file: pdf      Dung lượng: 198.49 KB      Lượt xem: 5      Lượt tải: 0    
Hoai.2512

Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Trong phần trước, chúng ta đã tìm hiểu cơ chế bảo mật trong SQL. Chúng ta đã biết làm cách nàoSQL Server kiểm soát quyền hạn của các người dùng trong khi họ đăng nhập vào hệ thống vàchúng ta cũng đã tìm hiểu cách thao tác và hành động trên CSDL có thể được kiểm soát thôngqua các vai trò và quyền hạn trong SQL Server. Chúng ta cũng đã biết cách thi hành các cấp độbảo mật khác nhau bằng trình Enterprise Manager và các thủ tục....
Nội dung trích xuất từ tài liệu:
Phần 7 Các giao dịch và khoáPhần 7 Các giao dịch và khoáMục tiêu bài họcCuối bài học này, bạn có thể: Định nghĩa giao dịch Hiểu các thuộc tính của giao dịch Mô tả các kiểu giao tác Mô tả các cấp độ riêng của giao dịch Tìm hiểu về nhật ký giao dịch (transaction log) Thi hành giao dịch SQL và bó lệnh SQL Hiểu về khái niệm khoá và khoá chết (deadlock) Liệt kê danh sách các kiểu khoá Học về các cách giải quyết deadlockGiới thiệuTrong phần trước, chúng ta đã tìm hiểu cơ chế bảo mật trong SQL. Chúng ta đã biết làm cách nàoSQL Server kiểm soát quyền hạn của các người dùng trong khi họ đăng nhập vào hệ thống vàchúng ta cũng đã tìm hiểu cách thao tác và hành động trên CSDL có thể được kiểm soát thôngqua các vai trò và quyền hạn trong SQL Server. Chúng ta cũng đã biết cách thi hành các cấp độbảo mật khác nhau bằng trình Enterprise Manager và các thủ tục.Về cơ bản trong bất kỳ hệ thống nào, giao dịch là đơn vị làm việc cơ bản nhất. Đơn vị này có thểbao gồm nhiều bước để hoàn thành tất cả các nhiệm vụ được yêu cầu. Các giao dịch được sửdụng để tạo dữ liệu có tính nhất quán logic. Trong phần này chúng ta sẽ học về các giao dịch vàcác kiểu khoá.7.1 Giao dịch (Transaction)Trong hệ thống quản lý CSDL đa người dùng, các mục dữ liệu chứa trong nguồn tài nguyênchính có thể bị truy cập đồng thời bởi những chương trình của người sử dụng, chúng lấy dữ liệumột cách liên tục từ CSDL và thay đổi CSDL. Sự thi hành của chương trình truy cập hoặc thayđổi nội dung của CSDL được gọi là giao dịch (transaction).Một hệ quản trị CSDL là hệ thống một người dùng (single-user) nếu tại một thời điểm chỉ cónhiều nhất một người sử dụng hệ thống, và hệ quản trị CSDL được gọi là hệ thống đa ngườidùng (multi-user) nếu nhiều người dùng có thể sử dụng hệ thống cùng một lúc. Ví dụ, một hệthống đặt vé máy bay được sử dụng bởi hàng trăm đại lý và đồng thời các người dùng riêng. Cáchệ thống trong các ngân hàng, các đại lý bảo hiểm và các sở giao dịch chứng khoán cũng đượcthực hiện bởi nhiều người sử dụng và những người dùng này xác nhận các giao dịch cùng mộtlúc. Nhiều người sử dụng có thể sử dụng hệ thống máy tính một cách đồng thời bởi vì khái niệmđa chương trình cho phép máy tính xử lý nhiều chương trình trong cùng một lúc.Một giao dịch sẽ bao gồm các thao tác đọc và ghi. Các giao dịch được xác nhận bởi nhiều ngườisử dụng khác nhau có thể thực hiện đồng thời và có thể truy cập, cập nhật cùng các mục giốngnhau trong CSDL.Transactions and Locks 957.1.1 Các thuộc tính của giao dịchMặc dù có vẻ dễ dàng định nghĩa, các giao dịch lại không dễ dàng để thi hành trong một ứngdụng. Tách rời việc viết mã, một nền tảng chắc chắn được yêu cầu để hỗ trợ các giao dịch.Trước khi chúng ta thảo luận về nền tảng, chúng ta tìm hiểu các thuộc tính của giao dịch. Mộtgiao dịch có bốn thuộc tính cụ thể là, tính hoàn chỉnh (Atomicity), tính nhất quán (Consistency),tính riêng biệt (Isolation) và tính bền vững (Durability). Các thuộc tính này được gọi chung làthuộc tính ACID. Atomicity: Một giao dịch phải là một thao tác trọn vẹn. Các thành phần của một giao dịch là không thể phân chia được (nguyên tử). Tất cả các thành phần trong một giao dịch đều phải xác nhận (commit) hoặc hủy bỏ (rollback). Nếu có bất kỳ thành phần nào trong giao dịch lỗi, toàn bộ giao dịch sẽ hủy đi. Ví dụ trong một ngân hàng, có 2 số dư tài khoản đang được cập nhật (một tài khoản là có và tài khoản kia là nợ) thông qua một giao dịch. Nếu giao dịch được xác nhận thì cả 2 tài khoản được cập nhật dữ liệu. Nếu vì một lý do nào đó, giao dịch bị dừng trước khi việc cập nhật trên cả 2 tài khoản thành công thì không có số dư nào được cập nhật và những thay đổi được làm trên bất kỳ số dư tài khoản nào được hủy bỏ. Một giao dịch không thể được xác nhận theo từng phần riêng biệt. Consistency: Khi hoàn thành, giao dịch phải để dữ liệu ở dạng nhất quán. Nói một cách khác, trước khi giao dịch bắt đầu, dữ liệu trong kho chứa dữ liệu ở trong trạng thái nhất quán. Trong một giao dịch đang thực hiện, dữ liệu có thể ở dạng không nhất quán (ví dụ, dữ liệu có thể bị thay đổi từng phần). Tuy nhiên, khi một giao tác hoàn tất thành công, dữ liệu sẽ một lần nữa trở về dạng nhất quán. Những sự thay đổi, được làm với dữ liệu bởi giao dịch không làm hỏng dữ liệu hoặc một giao dịch không nên để dữ liệu ở dạng không ổn định. Một lần nữa lấy ví dụ về ngân hàng. Trước khi giao dịch bắt đầu, tổng của tất cả số dư tất cả các tài khoản ở dạng nhất quán. Trong quá trình thực hiện một nửa giao dịch, số dư của một tài khoản bị giảm và số dư của các tài khoản khác vẫn không bị thay đổi. Do đó, tổng số dư của tất cả tài khoản không nhất quán (không có giá trị bằng ban đầu). Sau khi giao tác hoàn thành, tổng số dư của các tài khoản ...

Tài liệu được xem nhiều: