DB - ACID

namkun·2023년 7월 3일
0

T-I-L

목록 보기
18/20

ACID?

ACID는 DB내에서 일어나는 하나의 트랜잭션의 안전성을 보장하기 위해서 필요한 성질이라고 한다.

트랜잭션

트랜잭션은 여러개의 작업을 하나로 묶은 것을 말한다.

즉, 데이터베이스의 상태를 변환시키는 기능을 수행하기 위한 하나 이상의 쿼리를 여러개로 모아놓은 것이라고 할 수 있다.

그럼 이제 ACID가 어떤 것을 의미하는지 알아보자.

Atomicity (원자성)

트랜잭션이 안전성 보장을 위해 가져야할 성질을 말한다.

한 트랜잭션의 연산이 하나라도 실패하면 모두 실패, 모든게 성공한다면 성공으로 처리한다.

말 그대로 All or Nothing 이다.

Consistency (일관성)

트랜잭션 이전과 이후의 DB 상태는 이전과 같이 유효해야한다.

즉, DB의 제약 or 규칙을 만족해야한다.

Isolation (격리성)

모든 트랜잭션은 다른 트랜잭션으로부터 독립되어야한다는 성질이다.

즉, 트랜잭션 수행중에는 다른 트랜잭션에 영향을 주어서도 안되고, 다른 트랜잭션에 의해 간섭을 받아서도 안 된다.

실제로 여러 트랜잭션들이 수행될 때, 각 트랜잭션은 고립되어 연속으로 실행되는 것과 동일한 결과를 나타낸다.

Durability (지속성)

하나의 트랜잭션이 성공적으로 수행되었다면, 그 결과가 영구적으로 남는 성질이다.

MySQL과 이외의 여러 DB의 구현에서는 트랜잭션 조작을 로그에 남기고, 이상이 생기면 해당 로그로 그 전으로 복원하는 것이 가능하다.

profile
개발하는 중국학과 사람

0개의 댓글