■ 트랜잭션은 다양한 데이터 항목을 액세스하고 갱신하는 프로그램실행의 논리적인 단위이다. 트랜잭션 개념을 이해하는 것은 동시 실행뿐만 아니라 다양한 형태의 오류로 인해 데이터베이스가 비일관성 상태에빠지지 않도록 데이터베이스의 데이터갱신을 이해하고 구현하기 위한 필수조건이다.

■ 트랜잭션들은 ACID 속성들을 가져야 한다.
 ① Atomicity : 원자성은 트랜잭션에 의한 모든 영향이 데이터베이스에 전부 반영되거나 아니면 하나도 반영되지 않도록 보장하는 것이다. 즉 오류로 인해 실패가 발생했을 때 데이터베이스에 트랜잭션이 일부만 실행된 상태로 존재하지 않도록 하는 것이다.
 ② Consistency : 일관성은 만약 데이터베이스가 처음에 일관된 상태에 있었다면 트랜잭션이 실행되고 난 후에도 계속 일관된 상태로 유지되어야 한다는 것을 보장하는 것이다.
 ③ Isolation : 고립성은 동시에 수행하는 트랜잭션들이 서로 고립된 상태, 즉 동시에 수행중인 다른 트랜잭션의 실행에 영향을 주지 않도록 한다는 것이다.
 ④ Durability : 지속성은 일단 트랜잭션이 정상적으로 완료되고 난 후에는 오류로 인해 시스템이 멈추더라도 그 트랜잭션이 수행한 갱신 내용은 지속되어야 한다는 것이다.

■ 트랜잭션의 동시 실행은 트랜잭션의 처리율과 시스템 이용률을 높이고 트랜잭션의 대기시간을 줄인다.

Posted by 정훈승