본문 바로가기

DB

트랜잭션에서 사용되는 ACID란?

데이터베이스의 트랜잭션이 성공적으로 수행하는 것을 보장해야하는 성질들의 앞글자를 표현한 약어

 

원자성(Atomicity)

일련의 작업들이 하나의 작업과 같이 모두 성공처리하거나, 실패처리해야하는 성질 

일관성(Consistency)

데이터베이스의 무결성제약을 위반하면 트랜잭션은 중단되는 성질

고립성(Isolation) 

하나의 트랜잭션이 실행될 때, 다른 트랜잭션이 실행하는 것을 방지하는 성질

ex) 고립성이 없다면 Dirty Read, NonRepeatable Read, Pantom Read가 발생할 수 있습니다.

지속성(Durability)

DBMS가 트랜잭션에 대한 응답을 사용자에게 응답해야할 때, 데이터베이스의 장애가 발생하더라도 트랜잭션에 대한 커밋은 보장되어야 하는 성질

DBMS는 지속성을 보장하기 위해 로그를 기록하여 시스템이 복구된 후 로그를 판독하여 변경된 내용을 복구합니다..

 

 

* Dirty Read : A 트랜잭션이 특정 데이터를 1 -> 2로 변경하고 다른 처리 연산에 의해 커밋되지 않은 상태일 때, B 트랜잭션이 커밋되지 않은 데이터를 읽는 현상

만약 A 트랜잭션이 롤백이 된다면 B 트랜잭션은 불일치한 데이터를 읽습니다.

 

* NonRepeatable Read : A 트랜잭션이 같은 쿼리를 사용하여 데이터를 2번 가져와야하는 상황에서 각 쿼리의 사이에 B트랜잭션이 데이터를 1 -> 2로 변경하여 커밋하면 처음 가져왔던 데이터와 2번째 가져왔던 데이터 간의 불일치가 발생하는 현상

 

* Pantom Read : A 트랜잭션이 일정범위의 데이터를 가져온 후 다시 가져와야하는 상황에서 B 트랜잭션이 데이터를 추가하여 두번째 가져오는 데이터의 결과가 달라진 현상 

 

참조

'DB' 카테고리의 다른 글

SQL 문제풀이 3)  (0) 2020.12.17
SQL 문제풀이 2)  (0) 2020.12.16
SQL 문제풀이 1)  (0) 2020.12.15
MariaDB에서 사용하는 스토리지 엔진에 대해 알아보자  (0) 2020.12.02
View란 무엇인가?  (0) 2020.12.02