Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

dongdorodongdong

SQL-TCL 본문

SQLD

SQL-TCL

d5ngs 2019. 10. 23. 17:53

트랜잭션

  • 정의
    - 데이터베이스의 논리적 연산단위
    - 분할할 수 없는 최소의 단위
    - 따라서 All or Nothing (Atomicity 특성)

  • 특징
    - 하나의 트랜잭션에는 하나 이상의 SQL 문장이 포함

  • 특성
    - Atomicity : 모두반영 or 반영x
    - Consistency : 시스템의 고정요소는 트랜잭션 수행 전과 후의 상태가 같아야 함
    - Isolation : 트랜잭션은 완료될 때까지 다른 트랜잭션이 참조X
    - Durability : 트랜잭션의 결과는 영구 반영


TCL (Transaction Control Language)
  • COMMIT
  • ROLLBACK
  • SAVEPOINT

COMMIT


  • COMMIT 이전의 데이터상태
    - 메모리 버퍼에만 영향
    - 변경 이전 상태로 복구 가능
    - SELECT문으로 변경 결과를 확인할 수 있음
    - 다른 사용자는 수행 결과를 볼 수 없음
    - 변경된 행은 LOCKING이 설정되어 다른 사용자가 변경X

  • COMMIT 이후의 데이터상태
    - DB에 반영
    - 이전 데이터는 영원히 사라짐
    - LOCKING이 풀림

  • SQL Server의 COMMIT
    - 기본적으로 Auto Commit 모드
    - DML 구문이 성공이면 자동 COMMIT
    - 오류가 발생할 경우 자동 ROLLBACK



ROLLBACK

  • ROLLBACK 이후의 데이터상태
    - 데이터 변경 사항 취소
    - 이전 데이터 재저장
    - 관련된 행의 LOCKING이 풀림



SAVEPOINT

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

  • 특징
    - 복수의 저장점을 정의할 수 있다.
    - 동일 이름으로 저장점을 저장시 나중에 정의한 저장점이 유효

  • 코드
    Oracle
    - SAVEPOINT P1;
      ROLLBACK TO P1;

    SQL Server
    - SAVE TRANSACTION P1;
      ROLLBACK TRANSACTION P1;




'SQLD' 카테고리의 다른 글

함수  (0) 2019.10.24
SQL-WHERE  (0) 2019.10.23
SQL-DML  (0) 2019.10.23
SQL-DDL  (0) 2019.10.23
관계형데이터베이스 개요  (0) 2019.10.23