OrientDB - Giao dịch
Giống như RDBMS, OrientDB hỗ trợ các thuộc tính ACID giao dịch. Atransactionbao gồm một đơn vị công việc được thực hiện trong hệ thống quản lý cơ sở dữ liệu. Có hai lý do chính để duy trì các giao dịch trong môi trường cơ sở dữ liệu.
Để cho phép khôi phục đồng thời từ các lỗi và giữ cho cơ sở dữ liệu nhất quán ngay cả trong trường hợp hệ thống bị lỗi.
Để cung cấp sự cô lập giữa các chương trình truy cập đồng thời vào cơ sở dữ liệu.
Theo mặc định, giao dịch cơ sở dữ liệu phải tuân theo các thuộc tính ACID như thuộc tính Nguyên tử, Nhất quán, Cô lập và Bền. Nhưng OrientDB là một cơ sở dữ liệu tuân thủ ACID, có nghĩa là nó không mâu thuẫn hoặc phủ định khái niệm ACID, nhưng nó thay đổi nhận thức trong khi xử lý cơ sở dữ liệu NoSQL. Hãy xem cách các thuộc tính ACID hoạt động cùng với cơ sở dữ liệu NoSQL.
Atomic - Khi bạn làm điều gì đó để thay đổi cơ sở dữ liệu, thay đổi sẽ hoạt động hoặc không thành công.
Consistent - Cơ sở dữ liệu phải nhất quán.
Isolated - Nếu các thực thi giao dịch khác đang thực hiện cùng một lúc, thì người dùng sẽ không thể xem các bản ghi đang thực hiện đồng thời.
Durable - Nếu hệ thống gặp sự cố (phần cứng hoặc phần mềm), bản thân cơ sở dữ liệu sẽ có thể sao lưu.
Giao dịch cơ sở dữ liệu có thể đạt được bằng cách sử dụng các lệnh Cam kết và Khôi phục.
Cam kết
Cam kết có nghĩa là đóng giao dịch bằng cách lưu tất cả các thay đổi vào cơ sở dữ liệu. Rollback có nghĩa là khôi phục trạng thái cơ sở dữ liệu đến thời điểm bạn đã mở giao dịch.
Câu lệnh sau đây là cú pháp cơ bản của lệnh cơ sở dữ liệu COMMIT.
COMMIT
Note - Bạn chỉ có thể sử dụng lệnh này sau khi kết nối với một cơ sở dữ liệu cụ thể và sau khi bắt đầu giao dịch.
Thí dụ
Trong ví dụ này, chúng tôi sẽ sử dụng cùng một cơ sở dữ liệu có tên 'demo' mà chúng tôi đã tạo trong chương trước của hướng dẫn này. Chúng ta sẽ thấy hoạt động của giao dịch cam kết và lưu trữ bản ghi sử dụng các giao dịch.
Trước tiên, bạn cần bắt đầu giao dịch bằng lệnh BEGIN sau.
orientdb {db = demo}> BEGIN
Chèn bản ghi vào bảng nhân viên với các giá trị id = 12 và name = thoả mãn bằng lệnh sau.
orientdb> INSERT INTO employee (id, name) VALUES (12, 'satish.P')
Bạn có thể sử dụng lệnh sau để thực hiện giao dịch.
orientdb> commit
Nếu giao dịch này được cam kết thành công, bạn sẽ nhận được kết quả sau.
Transaction 2 has been committed in 4ms
Khôi phục
Rollback có nghĩa là khôi phục trạng thái cơ sở dữ liệu đến thời điểm bạn đã mở giao dịch.
Câu lệnh sau là cú pháp cơ bản của lệnh cơ sở dữ liệu ROLLBACK.
ROLLBACK
Note - Bạn chỉ có thể sử dụng lệnh này sau khi kết nối với một cơ sở dữ liệu cụ thể và sau khi bắt đầu giao dịch.
Thí dụ
Trong ví dụ này, chúng tôi sẽ sử dụng cùng một cơ sở dữ liệu có tên 'demo' mà chúng tôi đã tạo trong chương trước của hướng dẫn. Chúng ta sẽ thấy hoạt động của giao dịch khôi phục và lưu trữ bản ghi bằng cách sử dụng các giao dịch.
Trước tiên, bạn phải bắt đầu giao dịch bằng lệnh BEGIN sau.
orientdb {db = demo}> BEGIN
Chèn bản ghi vào bảng nhân viên với các giá trị id = 12 và name = thoả mãn bằng lệnh sau.
orientdb> INSERT INTO employee (id, name) VALUES (12, 'satish.P')
Bạn có thể sử dụng lệnh sau để truy xuất các bản ghi của nhân viên bảng.
orientdb> SELECT FROM employee WHERE name LIKE '%.P'
Nếu lệnh này được thực hiện thành công, bạn sẽ nhận được kết quả sau.
---+-------+--------------------
# | ID | name
---+-------+--------------------
0 | 12 | satish.P
---+-------+--------------------
1 item(s) found. Query executed in 0.076 sec(s).
Bạn có thể sử dụng lệnh sau để khôi phục giao dịch này.
orientdb> ROLLBACK
Kiểm tra lại truy vấn chọn để truy xuất bản ghi tương tự từ bảng Nhân viên.
orientdb> SELECT FROM employee WHERE name LIKE '%.P'
Nếu Rollback được thực thi thành công, bạn sẽ nhận được 0 bản ghi được tìm thấy trong đầu ra.
0 item(s) found. Query executed in 0.037 sec(s).