Quản lý giao dịch trong DBMS: Thuộc tính ACID là gì?
Giao dịch cơ sở dữ liệu là gì?
A Giao dịch cơ sở dữ liệu là một đơn vị xử lý logic trong DBMS bao gồm một hoặc nhiều thao tác truy cập cơ sở dữ liệu. Nói một cách ngắn gọn, các giao dịch cơ sở dữ liệu đại diện cho các sự kiện trong thế giới thực của bất kỳ doanh nghiệp nào.
Tất cả các loại hoạt động truy cập cơ sở dữ liệu được thực hiện giữa các câu lệnh giao dịch bắt đầu và kết thúc được coi là một giao dịch logic duy nhất trong DBMS. Trong quá trình giao dịch, cơ sở dữ liệu không nhất quán. Chỉ khi cơ sở dữ liệu được cam kết, trạng thái mới được thay đổi từ trạng thái nhất quán này sang trạng thái nhất quán khác.

Sự thật về giao dịch cơ sở dữ liệu
- Giao dịch là một đơn vị chương trình mà việc thực thi của nó có thể hoặc không thể thay đổi nội dung của cơ sở dữ liệu.
- Khái niệm giao dịch trong DBMS được thực thi dưới dạng một đơn vị duy nhất.
- Nếu các thao tác cơ sở dữ liệu không cập nhật cơ sở dữ liệu mà chỉ lấy dữ liệu thì loại giao dịch này được gọi là giao dịch chỉ đọc.
- Một giao dịch thành công có thể thay đổi cơ sở dữ liệu từ TRẠNG THÁI CONISTENT này sang STATE khác
- Các giao dịch DBMS phải mang tính nguyên tử, nhất quán, riêng biệt và bền vững
- Nếu cơ sở dữ liệu ở trạng thái không nhất quán trước khi giao dịch, nó sẽ vẫn ở trạng thái không nhất quán sau giao dịch.
Tại sao bạn cần sự đồng thời trong Giao dịch?
Cơ sở dữ liệu là một tài nguyên được chia sẻ được truy cập. Nó được sử dụng bởi nhiều người dùng và xử lý đồng thời. Ví dụ: hệ thống ngân hàng, hệ thống đặt chỗ đường sắt và hàng không, giám sát thị trường chứng khoán, kiểm kê siêu thị và thanh toán, v.v.
Không quản lý quyền truy cập đồng thời có thể tạo ra các vấn đề như:
- Lỗi phần cứng và sự cố hệ thống
- Thực hiện đồng thời cùng một giao dịch, bế tắchoặc hiệu suất chậm
Trạng thái giao dịch
Các trạng thái khác nhau của khái niệm giao dịch trong DBMS được liệt kê dưới đây:
Tiểu bang | Các loại giao dịch |
---|---|
Trạng thái hoạt động | Giao dịch chuyển sang trạng thái hoạt động khi quá trình thực hiện bắt đầu. Trong trạng thái này, các hoạt động đọc hoặc ghi có thể được thực hiện. |
Cam kết một phần | Giao dịch chuyển sang trạng thái cam kết một phần sau khi kết thúc giao dịch. |
Trạng thái cam kết | Khi giao dịch được cam kết ở trạng thái, nó đã hoàn thành việc thực hiện thành công. Hơn nữa, tất cả những thay đổi của nó đều được ghi lại vào cơ sở dữ liệu vĩnh viễn. |
Trạng thái không thành công | Một giao dịch được coi là không thành công khi bất kỳ bước kiểm tra nào không thành công hoặc nếu giao dịch bị hủy khi nó đang ở trạng thái hoạt động. |
Trạng thái chấm dứt | Trạng thái giao dịch đạt đến trạng thái chấm dứt khi một số giao dịch nhất định đang rời khỏi hệ thống không thể khởi động lại được. |
Chúng ta hãy nghiên cứu một sơ đồ chuyển trạng thái làm nổi bật cách giao dịch di chuyển giữa các trạng thái khác nhau này.
- Khi giao dịch ở trạng thái thực thi, nó sẽ hoạt động. Nó có thể đưa ra thao tác ĐỌC hoặc VIẾT.
- Khi các thao tác ĐỌC và VIẾT hoàn tất, các giao dịch sẽ chuyển sang trạng thái được cam kết một phần.
- Tiếp theo, một số giao thức khôi phục cần đảm bảo rằng lỗi hệ thống sẽ không dẫn đến việc không thể ghi lại các thay đổi trong giao dịch vĩnh viễn. Nếu việc kiểm tra này thành công, giao dịch sẽ cam kết và chuyển sang trạng thái đã cam kết.
- Nếu kiểm tra không thành công, giao dịch sẽ chuyển sang trạng thái Không thành công.
- Nếu giao dịch bị hủy khi đang ở trạng thái hoạt động thì giao dịch sẽ chuyển sang trạng thái không thành công. Giao dịch phải được khôi phục để hoàn tác tác động của hoạt động ghi của nó lên cơ sở dữ liệu.
- Trạng thái kết thúc đề cập đến giao dịch rời khỏi hệ thống.
Thuộc tính ACID là gì?
Thuộc tính ACID được sử dụng để duy trì tính toàn vẹn của cơ sở dữ liệu trong quá trình xử lý giao dịch. ACID trong DBMS là viết tắt của Asự tàn ác, Csự kiên trì, Isự an ủi, và Dkhả năng sử dụng.
- Atombăng giá: Một giao dịch là một đơn vị hoạt động duy nhất. Bạn có thể thực hiện nó hoàn toàn hoặc không thực hiện nó chút nào. Không thể thực hiện một phần.
- Tính nhất quán: Khi giao dịch được thực hiện, nó sẽ chuyển từ trạng thái nhất quán này sang trạng thái nhất quán khác.
- Cô lập: Giao dịch phải được thực hiện tách biệt với các giao dịch khác (không có Khóa). Trong quá trình thực hiện giao dịch đồng thời, kết quả giao dịch trung gian từ các giao dịch được thực hiện đồng thời không được cung cấp cho nhau. (Mức 0,1,2,3)
- Độ bền cao:· Sau khi hoàn thành giao dịch thành công, những thay đổi trong cơ sở dữ liệu sẽ vẫn tồn tại. Ngay cả trong trường hợp hệ thống bị lỗi.
Thuộc tính ACID trong DBMS với ví dụ
Dưới đây là ví dụ về thuộc tính ACID trong DBMS:
Transaction 1: Begin X=X+50, Y = Y-50 END Transaction 2: Begin X=1.1*X, Y=1.1*Y END
Giao dịch 1 đang chuyển $50 từ tài khoản X sang tài khoản Y.
Giao dịch 2 đang ghi có vào mỗi tài khoản với khoản thanh toán lãi suất 10%.
Nếu cả hai giao dịch được gửi cùng nhau, không có gì đảm bảo rằng Giao dịch 1 sẽ thực hiện trước Giao dịch 2 hoặc ngược lại. Bất kể thứ tự, kết quả phải như thể các giao dịch diễn ra nối tiếp nhau.
Các loại giao dịch
Dựa trên các lĩnh vực ứng dụng
- Không phân phối so với phân phối
- Giao dịch bù trừ
- Thời gian giao dịch
- Trực tuyến so với hàng loạt
Dựa trên hành động
- Hai bước
- Bị hạn chế
- Mô hình hành động
Dựa trên cấu trúc
- Giao dịch phẳng hoặc đơn giản: Nó bao gồm một chuỗi các hoạt động nguyên thủy được thực hiện giữa hoạt động bắt đầu và kết thúc.
- Giao dịch lồng nhau: Giao dịch có chứa các giao dịch khác.
- Quy trình làm việc
Lịch trình là gì?
Lịch trình là một quá trình tạo ra một nhóm gồm nhiều giao dịch song song và thực hiện từng giao dịch một. Nó sẽ giữ nguyên thứ tự xuất hiện của các hướng dẫn trong mỗi giao dịch. Nếu hai giao dịch được thực hiện cùng lúc, kết quả của một giao dịch có thể ảnh hưởng đến đầu ra của giao dịch khác.
Ví dụ
Initial Product Quantity is 10 Transaction 1: Update Product Quantity to 50 Transaction 2: Read Product Quantity
Nếu Giao dịch 2 được thực hiện trước Giao dịch 1, thông tin lỗi thời về số lượng sản phẩm sẽ được đọc. Do đó, lịch trình là cần thiết.
Thực hiện song song trong cơ sở dữ liệu là điều không thể tránh khỏi. Tuy nhiên, thực hiện song song được phép khi có mối quan hệ tương đương giữa các giao dịch thực hiện đồng thời. Sự tương đương này có 3 loại.
KẾT QUẢ TƯƠNG ĐƯƠNG:
Nếu hai lịch trình hiển thị cùng một kết quả sau khi thực hiện, thì được gọi là lịch trình tương đương kết quả. Chúng có thể cung cấp cùng một kết quả cho một số giá trị và kết quả khác nhau cho một tập hợp giá trị khác. Ví dụ, một giao dịch cập nhật số lượng sản phẩm, trong khi giao dịch khác cập nhật thông tin chi tiết về khách hàng.
Xem tương đương
View Equivalence xảy ra khi giao dịch trong cả hai lịch trình thực hiện hành động tương tự. Ví dụ, một giao dịch chèn chi tiết sản phẩm vào bảng sản phẩm, trong khi giao dịch khác chèn chi tiết sản phẩm vào bảng lưu trữ. Giao dịch giống nhau, nhưng các bảng khác nhau.
Mâu thuẫn tương đương
Trong trường hợp này, hai giao dịch cập nhật/xem cùng một bộ dữ liệu. Có xung đột giữa các giao dịch vì thứ tự thực hiện sẽ ảnh hưởng đến đầu ra.
Khả năng tuần tự hóa là gì?
Khả năng tuần tự hóa là quá trình tìm kiếm một lịch trình đồng thời có đầu ra bằng một lịch trình nối tiếp trong đó giao dịch được thực hiện lần lượt. Tùy thuộc vào loại lịch trình, có hai loại khả năng tuần tự hóa:
- Xung đột
- Xem
Tổng kết
- Quản lý giao dịch là một đơn vị xử lý logic trong DBMS bao gồm một hoặc nhiều hoạt động truy cập cơ sở dữ liệu
- Giao dịch là một đơn vị chương trình mà việc thực thi của nó có thể hoặc không thể thay đổi nội dung của cơ sở dữ liệu.
- Không quản lý quyền truy cập đồng thời có thể tạo ra các sự cố như lỗi phần cứng và sự cố hệ thống.
- Hoạt động, Cam kết một phần, Cam kết, Thất bại & Chấm dứt là các trạng thái giao dịch quan trọng.
- Dạng đầy đủ của Thuộc tính ACID trong DBMS is Atomtính băng giá, tính nhất quán, sự cô lập và độ bền
- Ba loại giao dịch DBMS là Dựa trên các lĩnh vực ứng dụng, Hành động và Cấu trúc.
- Lịch trình là một quá trình tạo ra một nhóm gồm nhiều giao dịch song song và thực hiện từng giao dịch một.
- Khả năng tuần tự hóa là quá trình tìm kiếm một lịch trình đồng thời có đầu ra bằng một lịch trình nối tiếp trong đó các giao dịch được thực hiện lần lượt.