인가받지 않은 사용자로부터 데이터를 보장하기 위해 DBMS가 가져야하는 특성이자, 데이터베이스 시스템에서 하나의 논리적 기능을 정상적으로 수행하기 위한 작업의 기본 단위
논리적 기능을 수행한다는 것, 상태를 변화한다는 것 -> SQL 질의어를 통해 DB에 접근하는 것
SELECT
INSERT
DELETE
UPDATE
원자성(Atomicity)
일관성(Consistency)
격리성(Isolation)
영속성(Durability)
트랜잭션 제어 언어는 TCL(Transaction control language)
이라고 하며, 트랜잭션의 ㅕㄱㄹ과를 허용하거나 취소하는 목적으로 사용되는 언어를 지칭한다.
커밋 commit
: 트랜잭션 확정, 트랜잭션을 메모리에 영구적으로 저장하는 명령어
롤백 rollback
: 트랜잭션 취소, 트랜잭션 내역을 저장 무효화시키는 명령어
체크포인트 checkpoint
: 저장 시기 설정, rollback을 위한 시점을 지정하는 명령어
병행제어는 다수 사용자 환경에서 여러 트랜잭션을 수행할 때, 데이터베이스 일관성 유지를 위해 상호작용을 제어하는 기법이다.
병행 제어 미보장 시 문제점은 갱신 손실, 현황 파악 오류, 모순성, 연쇄복귀가 있다
갱신 손실(lost update)
: 먼저 실행된 트랜잭션의 결과를 나중에 실행된 트랜잭션이 덮어쓸 때 발생하는 오류현황 파악오류(dirty read)
: 트랜잭션의 중간 수행 결과를 다른 트랜잭션이 참조하여 발생하는 오류모순성(inconsistency)
: 두 트랜잭션이 동시에 실행되어 데이터베이스의 일관성이 결여되는 오류연쇄복귀(cascading rollback)
: 복수의 트랜잭션이 데이터 공유 시 특정 트랜잭션이 처리를 취소할 경우 트랜잭션이 처리한 곳의 부분을 취소하지 못하는 오류