OrientDB - ธุรกรรม
เช่นเดียวกับ RDBMS OrientDB รองรับคุณสมบัติกรดธุรกรรม กtransactionประกอบด้วยหน่วยงานที่ดำเนินการภายในระบบจัดการฐานข้อมูล มีสองเหตุผลหลักในการรักษาธุรกรรมในสภาพแวดล้อมฐานข้อมูล
เพื่อให้สามารถกู้คืนพร้อมกันจากความล้มเหลวและรักษาฐานข้อมูลให้สอดคล้องกันแม้ในกรณีที่ระบบล้มเหลว
เพื่อแยกระหว่างโปรแกรมที่เข้าถึงฐานข้อมูลพร้อมกัน
โดยค่าเริ่มต้นธุรกรรมฐานข้อมูลจะต้องเป็นไปตามคุณสมบัติของกรดเช่นคุณสมบัติของอะตอมสอดคล้องแยกและทนทาน แต่ OrientDB เป็นฐานข้อมูลที่สอดคล้องกับ ACID ซึ่งหมายความว่าไม่ขัดแย้งหรือลบล้างแนวคิด ACID แต่จะเปลี่ยนการรับรู้ขณะจัดการฐานข้อมูล NoSQL ดูว่าคุณสมบัติ ACID ทำงานร่วมกับฐานข้อมูล NoSQL อย่างไร
Atomic - เมื่อคุณทำอะไรบางอย่างเพื่อเปลี่ยนแปลงฐานข้อมูลการเปลี่ยนแปลงควรใช้งานได้หรือล้มเหลวโดยรวม
Consistent - ฐานข้อมูลควรมีความสม่ำเสมอ
Isolated - หากมีการดำเนินการธุรกรรมอื่น ๆ ในเวลาเดียวกันผู้ใช้จะไม่สามารถเห็นบันทึกในการดำเนินการพร้อมกันได้
Durable - หากระบบขัดข้อง (ฮาร์ดแวร์หรือซอฟต์แวร์) ฐานข้อมูลเองควรจะสำรองข้อมูลได้
ธุรกรรมฐานข้อมูลสามารถทำได้โดยใช้คำสั่ง Commit และ Rollback
กระทำ
Commit หมายถึงการปิดธุรกรรมโดยบันทึกการเปลี่ยนแปลงทั้งหมดลงในฐานข้อมูล การย้อนกลับหมายถึงการกู้คืนสถานะฐานข้อมูลไปยังจุดที่คุณเปิดธุรกรรม
คำสั่งต่อไปนี้เป็นไวยากรณ์พื้นฐานของคำสั่งฐานข้อมูล COMMIT
COMMIT
Note - คุณสามารถใช้คำสั่งนี้ได้หลังจากเชื่อมต่อกับฐานข้อมูลเฉพาะและหลังจากเริ่มต้นธุรกรรม
ตัวอย่าง
ในตัวอย่างนี้เราจะใช้ฐานข้อมูลเดียวกันชื่อ 'สาธิต' ที่เราสร้างในบทก่อนหน้าของบทช่วยสอนนี้ เราจะเห็นการดำเนินการของการทำธุรกรรมและจัดเก็บบันทึกโดยใช้ธุรกรรม
ก่อนอื่นคุณต้องเริ่มต้นธุรกรรมโดยใช้คำสั่ง BEGIN ต่อไปนี้
orientdb {db = demo}> BEGIN
แทรกระเบียนลงในตารางพนักงานด้วยค่า id = 12 และ name = satish.P โดยใช้คำสั่งต่อไปนี้
orientdb> INSERT INTO employee (id, name) VALUES (12, 'satish.P')
คุณสามารถใช้คำสั่งต่อไปนี้เพื่อคอมมิตธุรกรรม
orientdb> commit
หากทำธุรกรรมนี้สำเร็จคุณจะได้รับผลลัพธ์ต่อไปนี้
Transaction 2 has been committed in 4ms
ย้อนกลับ
การย้อนกลับหมายถึงการกู้คืนสถานะฐานข้อมูลไปยังจุดที่คุณเปิดธุรกรรม
คำสั่งต่อไปนี้เป็นไวยากรณ์พื้นฐานของคำสั่งฐานข้อมูล ROLLBACK
ROLLBACK
Note - คุณสามารถใช้คำสั่งนี้ได้หลังจากเชื่อมต่อกับฐานข้อมูลเฉพาะและหลังจากเริ่มต้นธุรกรรม
ตัวอย่าง
ในตัวอย่างนี้เราจะใช้ฐานข้อมูลเดียวกันชื่อ 'สาธิต' ที่เราสร้างในบทก่อนหน้าของบทช่วยสอน เราจะเห็นการทำงานของธุรกรรมย้อนกลับและจัดเก็บบันทึกโดยใช้ธุรกรรม
ก่อนอื่นคุณต้องเริ่มต้นธุรกรรมโดยใช้คำสั่ง BEGIN ต่อไปนี้
orientdb {db = demo}> BEGIN
แทรกระเบียนลงในตารางพนักงานด้วยค่า id = 12 และ name = satish.P โดยใช้คำสั่งต่อไปนี้
orientdb> INSERT INTO employee (id, name) VALUES (12, 'satish.P')
คุณสามารถใช้คำสั่งต่อไปนี้เพื่อดึงข้อมูลของพนักงานโต๊ะ
orientdb> SELECT FROM employee WHERE name LIKE '%.P'
หากคำสั่งนี้ดำเนินการสำเร็จคุณจะได้รับผลลัพธ์ต่อไปนี้
---+-------+--------------------
# | ID | name
---+-------+--------------------
0 | 12 | satish.P
---+-------+--------------------
1 item(s) found. Query executed in 0.076 sec(s).
คุณสามารถใช้คำสั่งต่อไปนี้เพื่อย้อนกลับธุรกรรมนี้
orientdb> ROLLBACK
ตรวจสอบคิวรีแบบเลือกอีกครั้งเพื่อดึงเรกคอร์ดเดียวกันจากตารางพนักงาน
orientdb> SELECT FROM employee WHERE name LIKE '%.P'
หากดำเนินการย้อนกลับสำเร็จคุณจะได้รับ 0 รายการที่พบในผลลัพธ์
0 item(s) found. Query executed in 0.037 sec(s).