트랜잭션의 ACID속성
*원자성(atomicity). 하나의 트랜잭션은 연산이 모두 실행되거나, 전혀실행되지 않아야 한다. 예를 들어 , ATM에서 돈을 인출하고 해당하는 고객의 계좌에서 잔액을 변경하는 것은 하나의 원자적 트랜잭션이어야 한다. 돈은 인출되었는데 잔액이 변경되지 않았거나, 잔액은 변경되었는데 돈이 인출되지 않은 상황은 허용되어서는 안된다.
*일관셩(consistency).관리자가 설정한 모든 조건을 데이터가 만족할 때, 데이터베이스는 "일관된 상태(consistent state)"에 있다라고 한다. 예를 들어, 항공기 데이터베이스의 적합한 일관성 조건은 하나의 좌석이 두명의 고객에게 할당될 수 없다는 것이다. 트랜잭션이 수행되는 동안에는 이 조건이 잠시 위반될 수도 있지만, 트랜잭션의 실행이 완료된 후에는 데이터베이스가 모든 일관성 조건을 만족하도록 트랜잭션 관리기가 보장해 주어야 한다.
*고립성(isolation). 둘 이상의 트랜잭션이 병행하여 수행될때, 트랜잭션들이 서로 영향을 미쳐서는 안된다. 즉, 두 트랜잭션이 차례로 실행될 때는 발생하지 않는 영향이 두 트랜잭션이 동시에 수행됨으로 인해 발생되어서는 안된다. 예를 들어 두 여행사 직원이 있으며 항공기 좌석은 하나만 남았다고 가정하자. 이때 두 여행사 직원으로부터 좌석예약 요청중 하나는 거절되어야만 한다. 병행수행된 연산때문에 같은 좌석이 두번 판매되거나 아예 판매가 되지 않아서는 안된다.
*지속성(durablility).트랜잭션의 작업이 완료되면, 시스템 고장이 발생하더라도 결과가 손실되어서는 안된다.
>.< 트랜잭션은 하나의 연산처럼, 모두 순서대로 실행되는것 처럼 보여야 하는 연산들의 그룹을 뜻한다.
|