트랜잭션 (ACID, Isolation Level)

Today Jeeho Learned·2022년 9월 15일
0

DataBase

목록 보기
3/3

트랙잭션이란 ?

  • 데이터 베이스의 상태를 변화시키기 위해서 수행하는 작업의 단위를 뜻한다.
  • 데이터의 정합성을 보장하기 위한 기능
  • 데이터 베이스의 상태를 변화시킨다는 것은 sql을 통해 데이터베이스의 접근하는 것을 말한다(SELECT, INSERT, DELETE, UPDATE)
  • 여러 읽기/쓰기를 논리적으로 하나로 묶는 것을 말한다.

트랜잭션의 특징

  • 원자성 (Atomicity)
    트랜잭션이 데이터베이스에 모두 반영되던가, 아니면 전혀 반영되지 않아야 한다는 것이다.

  • 일관성 (Consistency)
    트랜잭션의 작업 처리 결과가 항상 일관성이 있어야 한다.
    데이터베이스에서 정한 무결성 제약 조건을 항상 만족해야 한다.

  • 격리성 (Isolation)
    어떤 하나의 트랜잭션이라도, 다른 트랜잭션의 연산에 끼어들 수 없다는 점을 말한다.

  • 지속성 (Durability)
    트랜잭션이 성공적으로 완료됬을 경우, 결과는 영구적으로 반영되어야 한다.

트랜잭션의 격리수준(Isolation level)

트랜잭션은 원자성, 일관성, 지속성을 보장하는데 문제는 격리성이다. 트랜잭션간에 격리성을 완벽히 보장하려면 동시에 처리되는 트랜잭션을 거의 차례대로 실행을 해야한다. 하지만 이렇게 처리를 하면 처리 성능이 매우 나빠지게 된다. 이러한 문제로 인해 ANSI 표준은 트랜잭션의 격리 수준을 4단계로 나누어 정의하고 있다.

  • READ UNCOMMITTED: 트랜잭션내에서 커밋하지 않은 데이터에 다른 트랜잭션의 접근이 가능
  • READ COMMITTED: 트랜잭션내에서 커밋된 데이터만 다른 트랜잭션이 읽는 것을 허용
  • REPEATABLE READ: 트랜잭션 내에서 한 번 조회한 데이터를 반복해서 조회해도 결과는 동일
  • SERIALIZABLE: 가장 엄격한 격리 수준으로 완벽한 읽기 일관성 모드 제공
profile
기록해야 (살아)남는다 !

0개의 댓글

관련 채용 정보