728x90
728x90
트랜잭션 (Transaction)
- 하나의 작업을 수행하는 데 필요한 데이터베이스 연산을 모아놓은 것
- DB에서 수행되는 작업의 단위
- 분리될 수 있는 하나 이상의 데이터베이스 조작
# 기본 형태
1 2 3 4 5 6 7 8 9 10 11 12 13 | -- 트랜잭션 시작 START TRANSACTION; -- 일련의 작업 지정 INSERT INTO user_tb(username, password, fullname) VALUES ('john', '1234', 'kim'); INSERT INTO user_tb(username, password, fullname) VALUES ('mike', '222', 'lee'); -- 트랜잭션 완료 COMMIT; | cs |
트랜잭션 제어어 (TCL)
1) COMMIT
- 트랜잭션 수행이 성공적으로 완료됨을 선언하는 연산
- 트랜잭션의 수행 결과가 DB에 반영되고, 일관된 상태를 지속적으로 유지함
: 실제 물리적 저장장치에 저장됨
2) ROLLBACK
- 트랜잭션 수행이 실패함을 선언하는 연산
- DB가 트랜잭션 수행 전의 일관된 상태로 되돌아감
- COMMIT 연산 이전에만 사용 가능
트랜잭션의 특성 (ACID)
1) 원자성 (Atomicity)
- 트랜잭션 내의 연산들이 모두 정상적으로 실행되거나, 아무것도 실행되지 않아야 함
→ 장애 발생 시, 지금까지 실행한 연산 처리를 모두 취소하고, 작업 전 상태로 되돌림
2) 일관성 (Consistency)
- 트랜잭션이 성공적으로 수행된 후에도, DB가 일관된 상태를 유지해야 함
- 실행 전의 DB 내용이 잘못되지 않았다면, 실행 후에도 DB 내용이 잘못되지 않아야 함
3) 고립성 (Isolation)
- 수행 중인 트랜잭션이 완료될 때까지, 다른 트랜잭션들이 중간 연산 결과에 접근할 수 없음
4) 지속성 (Durability)
- 트랜잭션이 성공적으로 완료된 후에 DB에 반영한 수행 결과는 영구적이어야 함
320x100
반응형
'SQL' 카테고리의 다른 글
[SQL] COMMENT (0) | 2023.04.21 |
---|---|
[SQL] 쿼리 조건문 (ifnull, nullif, CASE) (4) | 2023.04.20 |
[SQL] 서브 쿼리 (0) | 2023.04.09 |
[SQL] DCL - 사용자 생성과 권한 설정 (GRANT) (0) | 2023.03.14 |
[SQL] DML - 데이터 조회 (SELECT) & 집계 함수 (0) | 2023.03.11 |