Transaction - ACID

2005/09/13 09:22
한 시스템이 안전하다고 말하기위해서 충족되어야 할, 트랜잭션의 4가지 요구사항이
ACID, Atomic, Consistent, Isolated, Durable 이다.

Atomic
트랜잭션이 완전히 실행되거나 아니면 하나도 실행되지 않거나다. 예를 들어, 하나의 트랜잭션에서 1,2,3,4의 네개의 task를 실행해야 한다면,
1. 1,2,3,4가 모두 실행되거나
2. 중간에 실패하면 1,2,3,4 중의 어느 것하나도 실행되면 안된다는 것이다.

Consistent
비지니스 시스템이 트랜잭션이 끝난후의 상태와 이치가 맞아야 한다는 것으로, 다시 말해서 비지니스 시스템의 상태가 진짜 비지니스 상황과 같아야 한다는 말이다.
예를 들어, 비행기표를 예약하는 시스템에서 고객한테 티켓을 발급하면서 돈을 지불하는 과정을 빠트린다면, 실제의 비지니스 상황과 트랜잭션 시스템이 일치하지 않는 것이다.
또 데이터베이스에서도 비지니스와 일치하는 constraint을 가져야 하는데, 예를 들어, 고객이 좌석을 예약할때, 비행기, 좌석, 고객정보가 모두 constraint을 가져야지 안그러면 좌석만 배정받고 실제 타야하는 비행기는 모르는 경우가 생길 수도 있다.
Consistent는 atomic, isolated, durable이 모두 만족되야 만족될 수 있는 사항이다.

Isolated
트랜잭션이 실행되는 중간에 방해를 받지 말아야한다는 것으로, 트랜잭션이 액세스하고 있는 데이터가 중간에 다른 프로세스나 다른 트랜잭션으로 인해 변하는 걸 방지하기 위해 필요한 성질이다.

Durable
트랜잭션이 성공하면 트랙잭션으로 인해 생긴 데이터를 물리적인 저장장소에 기록해야 한다는 것으로, 시스템이 크래쉬되더라도 데이터를 잃지 않도록 하기 위한 것이다.

Trackback

Trackback Address :: 이 글에는 트랙백을 보낼 수 없습니다

Comments

Write your comment

댓글 입력 폼
[로그인][오픈아이디란?]
오픈아이디로만 댓글을 남길 수 있습니다