728x90
트랜잭션(Transaction)이란 데이터를 처리하는 작업의 단위를 의미한다.
데이터베이스에서 실행되는 모든 작업은 하나 이상의 트랜잭션으로 구성된다. 각 트랜잭션은 데이터베이스의 상태를 변경할 수 있다.
ACID는 트랜잭션의 속성을 나타내는 약어이다.
- 원자성(Atomicity): 트랜잭션이 하나의 원자적인 작업 단위로 실행되어야 한다. 즉, 트랜잭션 내의 모든 작업이 완료되거나 모두 취소되어야 한다.
- 일관성(Consistency): 트랜잭션이 실행 전과 실행 후에도 데이터베이스의 일관성이 유지되어야 한다. 즉, 트랜잭션을 실행하기 전과 실행한 후의 데이터베이스 상태는 모두 유효한 상태여야 한다.
- 고립성(Isolation): 동시에 여러 트랜잭션이 실행될 경우, 각 트랜잭션이 서로에게 영향을 주지 않도록 보장해야 한다.
- 지속성(Durability): 트랜잭션이 성공적으로 완료되면, 해당 트랜잭션이 변경한 데이터는 영구적으로 저장되어야 한다. 즉, 시스템이 고장나더라도 해당 데이터는 손실되지 않는다.
트랜잭션은 여러 작업을 하나로 묶어서 처리함으로써, 작업 중 하나라도 실패하면 이전 상태로 돌리는 역할을 한다. 예를 들어, 여러 개의 은행 계좌 간 이체 작업을 처리할 때, 모든 이체 작업이 완료되기 전에 어떤 하나의 계좌 이체 작업이 실패할 수 있는데 이 경우, 이전 상태로 모든 작업을 롤백하면, 데이터베이스의 일관성을 유지할 수 있다.
또한, 트랜잭션은 데이터베이스에 저장된 데이터의 무결성을 보장한다. 모든 작업이 원자적인 단위로 수행되기 때문에 중간에 다른 작업이 끼어들거나 잘못된 데이터가 저장되는 경우를 방지할 수 있다.
다음과 같은 질의어(Structured Query Language, SQL)을 사용하여 데이터베이스에 접근한다.
트랜잭션은 SQL문으로 표현된 작업들의 집합이다.
● BEGIN TRANSACTION: 트랜잭션 시작
● COMMIT TRANSACTION: 트랜잭션 완료 및 데이터베이스에 작업 결과를 저장
● ROLLBACK TRANSACTION: 트랜잭션을 취소하고 이전 상태로 되돌리기
● SAVE TRANSACTION: 트랜잭션 내의 특정 지점을 저장
● SET TRANSACTION ISOLATION LEVEL: 트랜잭션의 격리 수준을 설정. 격리 수준은 동시성 제어와 관련이 있다.
● LOCK TABLE: 특정 테이블을 잠그고, 다른 트랜잭션에서의 변경을 방지
● SELECT: 데이터베이스에서 데이터를 검색
● INSERT: 데이터베이스에 새로운 데이터를 삽입
● UPDATE: 데이터베이스 내의 기존 데이터를 수정
● DELETE: 데이터베이스 내의 데이터를 삭제
728x90
'CS(Computer Science)' 카테고리의 다른 글
[스터디] 교착 상태(Deadlock)에 대해서 (0) | 2023.03.16 |
---|---|
[스터디] Transaction의 격리 수준(Isolation Level)에 대해서 (0) | 2023.03.16 |
[스터디] Context Switching 과정이란 (0) | 2023.03.09 |
[스터디] 인공지능 모델의 성능 평가 지표에는 무엇이 있을까? (0) | 2023.03.09 |
[스터디] 교차 검증(Cross validation) (0) | 2023.03.09 |