트랜잭션 : 하나의 논리적 기능을 수행하기 위한 작업의 단위로 DB의 일관된 상태를 또 다른 일관된 형태로 변환하는 기능을 수행함
트랜잭션의 4가지 성질 (ACID)
Atomicity : 트랜잭션의 연산이 데이터베이스에 모두 반영되거나 아예 반영되지 않아야 한다.
Consistency : 트랜잭션의 연산이 성공적으로 완료되면 언제나 일관성있는 데이터베이스 상태로 변환되어야 한다.
Isolation : 트랜잭션이 수행 중일때는 다른 트랜잭션에서 트랜잭션의 수행 결과를 참조할 수 없다.
Durability : 트랜잭션의 연산이 성공적으로 완료되면 데이터베이스에 영구적으로 반영되어야 한다.
갱신 내용 손실 : 동시에 하나의 데이터가 갱신될 때 하나의 갱신이 누락되는 경우
현황 파악 오류 : 하나의 데이터의 갱신이 아직 끝나지 않은 상태에서 다른 트랜잭션이 해당 데이터를 조회하는 경우
모순성 : 두 트랜잭션이 동시에 수행될 때 일관성없는 모순된 상태로 남음
연쇄 복귀 : 두 트랜잭션이 하나의 데이터를 갱신할 때, 하나의 트랜잭션이 롤백하면 다른 하나의 트랜잭션도 함께 롤백되는 문제
@@ 해결방법
-로킹기법 : 하나의 트랜잭션이 DB에 접근할 때 해당 부분에 다른 트랜잭션이 접근할 수 없도록 접근한 일부분의 DB데이터를 Lock하고 연산이 종료되면 Unlock하는 방법.
1. 공유 로킹 : Lock부분을 다른 트랜잭션이 읽기는 가능하지만 쓰기는 불가능함
무결성 : 데이터의 정확성, 일관성, 유효성을 유지하는 것을 말한다.
무결성 종류