트랜잭션을 처리하는 SQL문
* COMMIT : DML로 변경된 데이터를 DB에 적용 * ROLLBACK : DML로 변경된 데이터를 변경 이전 상태로 되돌림 * SAVEPOINT : 오류 복구 처리에 효과적인 방법 → 전체 트랜잭션을 ROLLBACK하지 않고도 오류 복귀 가능 |
데이터베이스의 작업을 처리하는 논리적 연산 단위[분리될 수 없는 최소 단위]
트랜잭션의 특성
원자성 [Atomicity] |
트랜잭션에서 정의된 연산들은 모두 성공적으로 실행되던지 아니면 전혀 실행되지 않은 상태로 남아야함 → all or nothing |
일관성 [Consistency] |
트랜잭션 실행 전의 데이터베이스 내용이 잘못되지 않으면 트랜잭션 실행 후에도 데이터베이스 내용이 잘못되면 안됨 |
고립성 [Isolation] |
트랜잭션 실행 도중에 다른 트랜잭션의 영향을 받아 잘못된 결과를 만들면 안됨 |
영속성, 지속성 [Durability] |
트랜잭션 실행이 성공적일 때, 그 트랜잭션이 갱신한 데이터베이스 내용은 영구적으로 저장됨 |
트랜잭션에서 격리성이 낮은 경우 발생할 수 있는 문제점
Non-Repeatable Read | 한 트랜잭션 내에서 같은 쿼리를 두 번 수행했는데, 그 사이 다른 트랜잭션 값을 수정/삭제하는 바람에 두 쿼리 결과가 다르게 나타나는 현상 |
Phantom Read | 한 트랜잭션 내에서 같은 쿼리를 두 번 수행했는데, 첫번째 쿼리에서 없던 유령 레코드가 두번째 쿼리에서 나타나는 현상 |
Dirty Read | 다른 트랜잭션에 의해 수정되었지만 아직 커밋되지 않은 데이터를 읽는 현상 |
COMMIT;
ROLLBACK;
1. 데이터 무결성 보장 2. 영구적인 변경을 하기 전에 데이터의 변경 사항 확인 가능 3. 논리적으로 연관된 작업을 그룹핑하여 처리 가능 |
SAVEPOINT SVPT1;
ROLLBACK TO SVPT1;
[개미의 걸음 SQLD 2과목] DML② SELECT문의 GROUP BY절, HAVING절, ORDER BY절 (0) | 2020.12.25 |
---|---|
[개미의 걸음 SQLD 2과목] DML① SELECT문의 WHERE절과 주요연산자 (0) | 2020.12.24 |
[개미의 걸음 SQLD 2과목] SQL종류③ DML(Data Manipulation Language) (0) | 2020.12.22 |
[개미의 걸음 SQLD 2과목] SQL종류② DDL(Data Definition Language) (0) | 2020.12.21 |
[개미의 걸음 SQLD 2과목] SQL종류① DCL[Data Control Language] (0) | 2020.12.20 |
댓글 영역