/ DEFAULT VALUES Lệnh này gồm 2 bớc:
d. INSERT và giao dịch
3.1 Cơ chế của giao dịch
Oracle Server thực hiện các thuộc tính ACID của giao dịch qua hai cơ chế: transaction log và cơ chế khoá. Transaction log cho phép Oracle Server duy trì tính nguyên tố, tính bền vững và tính giá trị. Oracle Server sử dụng các khoá để hỗ trợ tính riêng biệt, tính bền vững trong các giao dịch đồng thời.
Transaction Log
Giao dịch cơ sở dữ liệu trong Oracle Server đợc thực hiện thông qua việc sử dụng một file log đặc biệt - transaction log, mỗi thay đổi đợc thực hiện thông qua việc sử dụng một file log đặc biệt - transaction log, mỗi thay đổi đối với dữ liệu đều đợc ghi vào transaction log.
Khi quay lui (ROLL BACK) một giao dịch, Oracle Server đọc transaction log, lấy lại những thay đổi dữ liệu đã thực hiện trong giao dịch đó.
Tuy nhiện, không phải tất cả các thao tác đều đợc ghi vào lộ trình. Một số thao tác không đợc lu vết là: lệnh SELECT INTO, lệnh bulk copy và BULF INSERT. Cơ chế thực hiện transaction log nh sau:
Hình II.22 : Cơ chế thực hiện transaction log
Với những loại tài nguyên cơ sở dữ liệu khác nhau, Oracle Server có các loại khoá tơng ứng nh sau:
- Khoá dùng chung (shared): những ngời sử dụng khác có thể đọc nhng không thể ghi vào tài nguyên.
- Cập nhật (update): những ngời sử dụng khác có thể đọc và các khoá tăng dần để loại trừ.
- Khoá độc quyền (exclusive): không ngời sử dụng nào khác đợc đọc và ghi vào tài nguyên.
- Các lệnh đọc dữ liệu nh lệnh SELECT chỉ cần đặt khoá shared lên dữ liệu nhng các lệnh thay đổi dữ liệu nh INSERT, UPDATE, DELETE phải nhận đợc khoá exclusive, nếu nh tài nguyên đó đã có khoá shared thì giao dịch của lệnh này không lấy đợc khoá exclusive, nó có thể lấy khoá exclusive để tơng thích với những khoá shared khác.
Ngoài các loại khoá hớng dữ liệu nh trên, Oracle Server còn có khoá mục đích - chỉ ra mục đích đạt khoá exclusive hay khoá shared trên một tài nguyên. Oracle Server còn có khoá sơ đồ (schema) để thực hiện các thay đổi về cấu trúc bảng. Oracle Server cho phép khoá ở mức hàng, trang và mức bảng.
File cơ sở dữ liệu
Trạng tháiđầu
Xác nhận
Cập nhật cơ sở dữ liệu Cache dữ liệu
Ghi nhậ thay đổi vào transaction log
Bắt đầu giao dịch Quay lui Checkpoint write Transaction Log write