OrientDB-트랜잭션

RDBMS와 마찬가지로 OrientDB는 트랜잭션 ACID 속성을 지원합니다. ㅏtransaction데이터베이스 관리 시스템 내에서 수행되는 작업 단위로 구성됩니다. 데이터베이스 환경에서 트랜잭션을 유지하는 데에는 두 가지 주요 이유가 있습니다.

  • 장애로부터 동시 복구를 허용하고 시스템 장애가 발생하더라도 데이터베이스를 일관되게 유지합니다.

  • 데이터베이스에 동시에 액세스하는 프로그램간에 격리를 제공합니다.

기본적으로 데이터베이스 트랜잭션은 Atomic, Consistent, Isolated 및 Durable 속성과 같은 ACID 속성을 따라야합니다. 그러나 OrientDB는 ACID 호환 데이터베이스이므로 ACID 개념을 모순하거나 부정하지 않지만 NoSQL 데이터베이스를 처리하는 동안 인식을 변경합니다. ACID 속성이 NoSQL 데이터베이스와 함께 작동하는 방식을 살펴보십시오.

Atomic − 데이터베이스를 변경하기 위해 어떤 작업을 수행하면 변경이 전체적으로 작동하거나 실패해야합니다.

Consistent − 데이터베이스는 일관성을 유지해야합니다.

Isolated − 다른 트랜잭션 실행이 동시에 실행되는 경우 사용자는 동시에 실행중인 레코드를 볼 수 없습니다.

Durable − 시스템이 충돌하면 (하드웨어 또는 소프트웨어) 데이터베이스 자체가 백업을 수행 할 수 있어야합니다.

Commit 및 Rollback 명령을 사용하여 데이터베이스 트랜잭션을 수행 할 수 있습니다.

범하다

커밋은 모든 변경 사항을 데이터베이스에 저장하여 트랜잭션을 닫는 것을 의미합니다. 롤백은 트랜잭션을 연 시점으로 데이터베이스 상태를 복구하는 것을 의미합니다.

다음 명령문은 COMMIT 데이터베이스 명령의 기본 구문입니다.

COMMIT

Note −이 명령은 특정 데이터베이스에 연결 한 후 트랜잭션을 시작한 후에 만 ​​사용할 수 있습니다.

이 예에서는이 자습서의 이전 장에서 만든 'demo'라는 동일한 데이터베이스를 사용합니다. 커밋 트랜잭션의 동작을보고 트랜잭션을 사용하여 레코드를 저장합니다.

먼저 다음 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 −이 명령은 특정 데이터베이스에 연결 한 후 트랜잭션을 시작한 후에 만 ​​사용할 수 있습니다.

이 예에서는 자습서의 이전 장에서 만든 'demo'라는 동일한 데이터베이스를 사용합니다. 롤백 트랜잭션의 작동을 확인하고 트랜잭션을 사용하여 레코드를 저장합니다.

먼저 다음 BEGIN 명령을 사용하여 트랜잭션을 시작해야합니다.

orientdb {db = demo}> BEGIN

다음 명령을 사용하여 값이 id = 12이고 name = satish.P 인 직원 테이블에 레코드를 삽입합니다.

orientdb> INSERT INTO employee (id, name) VALUES (12, 'satish.P')

다음 명령을 사용하여 employee 테이블의 레코드를 검색 할 수 있습니다.

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

Employee 테이블에서 동일한 레코드를 검색하려면 선택 쿼리를 다시 확인하십시오.

orientdb> SELECT FROM employee WHERE name LIKE '%.P'

롤백이 성공적으로 실행되면 출력에서 ​​0 개의 레코드를 찾을 수 있습니다.

0 item(s) found. Query executed in 0.037 sec(s).