Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Định nghĩa giao dịch (Transaction) trong cơ sở dữ liệu

Một giao dịch (transaction) bao gồm một chuỗi các lệnh được thực thi trong cơ sở dữ liệu. Mỗi lệnh trong một giao dịch là nguyên tử (atomic), tức là không thể tách nhỏ hơn thành các lệnh con. Bất kỳ lệnh nào trong giao dịch có thể thay đổi hoặc không thay đổi cấu trúc của cơ sở dữ liệu. Ngoài ra, các thay đổi yêu cầu bởi giao dịch phải được thực hiện cùng một lúc. Nếu quy tắc này không được triển khai, dữ liệu có thể bị mất nếu hệ thống lỗi, mất điện hoặc lý do khác.

Một ví dụ đơn giản về giao dịch như sau:

Định nghĩa giao dịch (Transaction) trong cơ sở dữ liệu

Harry cần chuyển 100 Rs từ tài khoản của anh ấy sang tài khoản của Sally. Điều này được thực hiện như một giao dịch. Đầu tiên, chi tiết tài khoản của Harry được đọc và số dư của anh ấy giảm 100. Dữ liệu mới này được lưu lại vào tài khoản của Harry. Tiếp theo, chi tiết tài khoản của Sally được đọc và số dư của cô ấy tăng 100. Dữ liệu mới này được lưu lại vào tài khoản của Sally.

Tuy nhiên, việc triển khai giao dịch trong cơ sở dữ liệu phức tạp. Trong ví dụ trên, nếu hệ thống sập sau khi tiền bị rút từ tài khoản của Harry, nó sẽ không bao giờ được thêm vào tài khoản của Sally. Vì vậy, thông tin bị mất và tài khoản của Sally không bao giờ được cập nhật.

Quy trình của một giao dịch

Một giao dịch bao gồm một chuỗi các thao tác đọc (read) và ghi (write). Chúng được dùng để đọc giá trị hiện tại của bất kỳ đối tượng nào, và ghi lại giá trị cập nhật sau một số phép tính.

Thao tác đọc (Read Operation)

Để đọc bất kỳ đối tượng cơ sở dữ liệu nào, trước tiên nó được đưa vào bộ nhớ chính từ đĩa. Sau đó, giá trị của nó được sao chép vào biến yêu cầu.

Định nghĩa giao dịch (Transaction) trong cơ sở dữ liệu

Thao tác ghi (Write operation)

Để ghi bất kỳ đối tượng cơ sở dữ liệu nào, giá trị trong bộ nhớ được lưu và sau đó lưu trữ trở lại đĩa.

Định nghĩa giao dịch (Transaction) trong cơ sở dữ liệu