Một giao dịch bao gồm một loạt 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ử, tức là nó không thể được chia nhỏ hơn nữa 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 thể thay đổi cấu trúc của cơ sở dữ liệu. Ngoài ra, các thay đổi theo yêu cầu của giao dịch phải được thực hiện cùng nhau. 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 bị lỗi, mất điện hoặc vì một số lý do khác.
Một ví dụ đơn giản về giao dịch như sau -
Harry cần chuyển 100 Rs từ tài khoản của mình cho Sally’s. Đ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 đi 100. Dữ liệu mới này được lưu trở lại 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 thêm 100. Dữ liệu mới này được lưu trở lại tài khoản của Sally.
Tuy nhiên, rất phức tạp để thực hiện một giao dịch trong cơ sở dữ liệu. Trong ví dụ trên, nếu hệ thống gặp sự cố sau khi tiền được rút khỏi tài khoản của Harry, thì số tiề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 giao dịch
Một giao dịch bao gồm một loạt các thao tác đọc và ghi. Chúng được sử 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 thu được sau một số phép tính.
Thao tác đọc
Để đọ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 bắt buộc.
Thao tác viết
Để ghi bất kỳ đối tượng cơ sở dữ liệu nào, giá trị trong bộ nhớ sẽ được lưu và sau đó được lưu trữ lại vào đĩa.