제 4절 TCL

suyeon-jung·2021년 11월 11일
0

SQLD

목록 보기
4/19

1. 트랜잭션

데이터베이스에서의 논리적 연산 단위
밀접히 관련되어 분리될 수 없는 한 개 이상의 데이터베이스 조작
하나의 트랜잭션에는 하나 이상의 SQL 문장이 포함
트랜잭션은 분할할 수 없는 최소의 단위

  • COMMIT : 올바르게 반영된 데이터를 DB에 반영

  • ROLLBACK : 트랜잭션 시작 이전의 상태로 되돌림

  • SAVEPOINT : 저장 지점

  • 트랜잭션 특성(ACID)

  1. 원자성 : 트랜잭션에 정의된 연산은 모두 성공하거나 전혀 실행되지 않아야 함
  2. 일관성 : 트랜잭션 실행 전 DB 내용이 잘못 되지 않으면 실행 후도 잘못 되지 않아야 함
  3. 고립성 : 트랜잭션 실행 도중 다른 트랜잭션의 영향을 받아선 안됨
  4. 지속성 : 트랜잭션이 성공적으로 수행되면 영구적으로 저장됨

2. COMMIT

입력, 수정, 삭제한 자료에 대해 문제가 없을 경우 COMMIT 명령어를 통해 트랜잭션을 완료

COMMIT이나 ROLLBACK을 통해 데이터베이스에 반영하기 전에는 메모리 버퍼에만 영향을 준 상태여서 변경 이전 상태로 복구 할 수 있음

COMMIT이나 ROLLBACK을 통해 데이터베이스에 반영이 되면 이전 데이터는 영원히 잃어버림

COMMIT;

3. ROLLBACK

테이블 내 입력, 수정, 삭제한 데이터에 대해서 COMMIT 이전에 변경 사항을 취소할 수 있는 기능

  • 효과
    • 데이터 무결성 보장
    • 영구적 변경을 하기 전에 데이터 변경 사항 확인 가능
    • 논리적으로 연관된 작업을 그룹핑하여 처리 가능
ROLLBACK;

4. SAVEPOINT

저장점을 정의하면 롤백할때 전체 롤백이 아닌 일부만 롤백할 수 있음

  • 복수의 저장점 정의 가능
  • 동일 이름으로 저장점을 저장하면 나중에 정의한 저장점이 유효
  • 저장점 정의하고 저장점으로 롤백할 수 있음
  • 특정 저장점까지 롤백하면 그 저장점
SAVEPOINT SVPT1;
ROLLBACK TO SVPT1;

0개의 댓글