Quản lý giao dịch DBMS: Thuộc tính ACID là gì?

Mục lục:

Anonim

Giao dịch cơ sở dữ liệu là gì?

Một giao dịch cơ sở dữ liệu là một đơn vị logic của xử lý trong một DBMS mà đòi hỏi một hoặc nhiều hoạt động truy cập cơ sở dữ liệu. Tóm lại, 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 tổ chức giữa các câu lệnh giao dịch đầu và cuối đượ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.

Trong hướng dẫn này, bạn sẽ học:

  • Sự thật về Giao dịch cơ sở dữ liệu
  • Tại sao bạn cần tính đồng thời trong Giao dịch?
  • Các trạng thái giao dịch
  • Thuộc tính ACID là gì?
  • Các loại giao dịch
  • Lịch trình là gì?

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ó thể thay đổi hoặc không 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 như một đơn vị duy nhất.
  • Nếu các hoạt động cơ sở dữ liệu không cập nhật cơ sở dữ liệu mà chỉ truy xuất dữ liệu, 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 ĐỒNG Ý này sang trạng thái khác
  • Các giao dịch DBMS phải nguyên tử, nhất quán, cách ly và lâu bền
  • Nếu cơ sở dữ liệu ở trạng thái không nhất quán trước 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 tính đồ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à đường 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ắc hoặc hiệu suất chậm

Các 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 Một 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 thao tác đọ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ả các thay đổi của nó đượ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ỳ một trong các lần kiểm tra không thành công hoặc nếu giao dịch bị hủy bỏ 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 trạng thái kết thúc khi không thể khởi động lại một số giao dịch nhất định đang rời khỏi hệ thống.
Sơ đồ chuyển đổi trạng thái cho một giao dịch cơ sở dữ liệu

Hãy nghiên cứu sơ đồ chuyển đổi trạng thái làm nổi bật cách một giao dịch di chuyển giữa các trạng thái khác nhau này.

  1. Khi một giao dịch bắt đầu thực hiện, nó sẽ hoạt động. Nó có thể đưa ra hoạt động ĐỌC hoặc VIẾT.
  2. Khi các hoạt động ĐỌC và VIẾT hoàn tất, các giao dịch sẽ trở thành trạng thái được cam kết một phần.
  3. 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 vĩnh viễn không thể ghi lại các thay đổi trong giao dịch. Nếu việc kiểm tra này thành công, giao dịch đã cam kết và chuyển sang trạng thái đã cam kết.
  4. Nếu việc 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.
  5. Nếu giao dịch bị hủy bỏ khi đang ở trạng thái hoạt động, nó sẽ chuyển sang trạng thái không thành công. Giao dịch nên được quay trở lại để hoàn tác tác động của các hoạt động ghi trên cơ sở dữ liệu.
  6. 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 A tomicity, C onsistency, I solation và D. urability.

  • Tính nguyên tử: Một giao dịch là một đơn vị hoạt động duy nhất. Bạn có thể thực thi nó hoàn toàn hoặc không thực thi nó. Không thể thực hiện từng 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ách ly: Giao dịch phải được thực hiện cách ly 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: · Sau khi hoàn thành thành công một giao dịch, các 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à một ví dụ về thuộc tính ACID trong DBMS:

Transaction 1: Begin X=X+50, Y = Y-50 ENDTransaction 2: Begin X=1.1*X, Y=1.1*Y END

Giao dịch 1 là chuyển $ 50 từ tài khoản X sang tài khoản Y.

Giao dịch 2 là ghi có vào mỗi tài khoản với khoản thanh toán 10% lãi suất.

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ự nào, kết quả phải giống 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 lĩnh vực ứng dụng

  • Không phân phối so với phân phối
  • Thanh toán các giao dịch
  • Thời gian giao dịch
  • Trực tuyến so với hàng loạt

Dựa trên các 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 bằng 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 các hoạt động bắt đầu và kết thúc.
  • Giao dịch lồng nhau: Một 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 biểu 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ẽ duy trì thứ tự mà các hướng dẫn xuất hiện trong mỗi giao dịch. Nếu hai giao dịch được thực hiện cùng một lúc, kết quả của một giao dịch có thể ảnh hưởng đến kết quả của giao dịch khác.

Thí dụ

Initial Product Quantity is 10Transaction 1: Update Product Quantity to 50Transaction 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à bắt buộc.

Thực hiện song song trong cơ sở dữ liệu là 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 là 3 Loại.

TƯƠNG ĐƯƠNG KẾT QUẢ:

Nếu hai lịch trình hiển thị cùng một kết quả sau khi thực hiện, nó được gọi là lịch trình tương đương kết quả. Chúng có thể đưa ra cùng một kết quả cho một số giá trị và các kết quả khác nhau cho một bộ 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

Xem Tương đương xảy ra khi giao dịch trong cả hai lịch biểu thực hiện một hành động tương tự. Ví dụ: một giao dịch chèn chi tiết sản phẩm trong bảng sản phẩm, trong khi một 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ẶT BẰNG Tương đương

Trong trường hợp này, hai giao dịch cập nhật / xem cùng một tập dữ liệu. Có một xung đột giữa các giao dịch vì thứ tự thực hiện sẽ ảnh hưởng đến đầu ra.

Serializability là gì?

Serializability là quá trình tìm kiếm một lịch trình đồng thời có kết quả tương đương với một lịch trình nối tiếp trong đó các giao dịch ae 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:

  • Cuộc xung đột
  • Lượt xem

Tóm lược:

  • Quản lý giao dịch là một đơn vị xử lý logic trong DBMS đòi hỏi một hoặc nhiều hoạt động truy cập cơ sở dữ liệu
  • Nó là một giao dịch là một đơn vị chương trình mà việc thực thi có thể thay đổi hoặc không 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 vấn đề 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, Không thành công & 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 là Tính nguyên tử, Tính nhất quán, Tính cô lập và Độ bền
  • Ba loại giao dịch DBMS là Cơ sở trên Khu vực ứng dụng, Hành động và Cấu trúc.
  • Lịch biểu 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ó kết quả đầu ra bằng một lịch trình nối tiếp nơi các giao dịch được thực hiện lần lượt.