원자성(Atomicity) : 트랜잭션의 작업이 부분적으로 실행되다가 중단되지 않는 것을 보장하는 것 트랜잭션이 All or Noting 으로 실행된다.
일관성(Consistency) : 트랜잭션이 성공적으로 완료시 일관적인 DB상태를 유지하는 것 예로 데이터 타입이 변하지 않는 것, 필드값이 0 이상이어야 한다는 조건 등이 있다.
고립성(Isolation) : 트랜잭션 수행시 다른 트랜잭션의 작업이 끼어들지 못하도록 보장하는 것 간섭이 일어날 경우 데이터의 동기화를 보장 할 수 없다 . 트 랜잭션에서는 데이터를 읽을 때에는 여러 트랜잭션이 읽을 수는 있도록 허용하는 shared_lock을 합니다. 즉 shared_lock은 데이터를 쓰기를 허용하지 않고 오직 읽기만 허용합니다. 또한 데이터를 쓸 때는 다른 트랜잭션이 읽을 수도 쓸 수도 없도록 하는 exclusive_lock을 사용합니다. 그리고 읽기, 쓰기 작업이 끝나면 unlock을 통해 다른 트랜잭션이 lock을 할 수 있도록 데이터에 대한 잠금(lock)을 풀어줍니다.
지속성(Durability) : 성공적을 수행된 트랜잭션은 영원히 반영이 된다. commit 을 하면 현재 상태가 보장된다.
트랜잭션의 원칙 ACID
원자성(Atomicity) : 트랜잭션의 작업이 부분적으로 실행되다가 중단되지 않는 것을 보장하는 것 트랜잭션이 All or Noting 으로 실행된다.
일관성(Consistency) : 트랜잭션이 성공적으로 완료시 일관적인 DB상태를 유지하는 것 예로 데이터 타입이 변하지 않는 것, 필드값이 0 이상이어야 한다는 조건 등이 있다.
고립성(Isolation) : 트랜잭션 수행시 다른 트랜잭션의 작업이 끼어들지 못하도록 보장하는 것 간섭이 일어날 경우 데이터의 동기화를 보장 할 수 없다 . 트 랜잭션에서는 데이터를 읽을 때에는 여러 트랜잭션이 읽을 수는 있도록 허용하는 shared_lock을 합니다. 즉 shared_lock은 데이터를 쓰기를 허용하지 않고 오직 읽기만 허용합니다. 또한 데이터를 쓸 때는 다른 트랜잭션이 읽을 수도 쓸 수도 없도록 하는 exclusive_lock을 사용합니다. 그리고 읽기, 쓰기 작업이 끝나면 unlock을 통해 다른 트랜잭션이 lock을 할 수 있도록 데이터에 대한 잠금(lock)을 풀어줍니다.
지속성(Durability) : 성공적을 수행된 트랜잭션은 영원히 반영이 된다. commit 을 하면 현재 상태가 보장된다.