메모장 / / 2022. 5. 12.

[SQLD] 2-1-4. TCL

728x90
반응형

* 트랜잭션

-데이터베이스의 논리적 연산단위

-밀접히 관련되어 -> 한개 이상의 데이터베이스를 조작

-하나의 트랜잭션 -> 하나 이상의 SQL 문장 포함

-트랜잭션은 분할 할 수 없는 최소의 단위

-전부 적용 OR 전부 취소, 즉 트랜잭션은 ALL OR NOTHING

 

*트랜잭션을 컨트롤 하는 TCL

-COMMIT    : 트랜잭션을 데이터베이스에 반영

-ROLLBACK  : 트랜잭션 수행 이전의 상태로 되돌리는 것

 

*트랜잭선의 특성 (원일고지)

-원자성 : 모두 적용 OR 모두 취소 

-일관성 : 트랜잭션의 실행전, DB에 이상이 없다면, 실행 후에도 이상이 없어야 한다

-고립성 : 트랜잭션 실행중, 다른 트랜잭션의 영향을 받아서는 안된다.

-지속성 : 트랜잭션이 성공적으로 수행되면, 영구적으로 반영

 

*COMMIT

<COMMIT 이전의 상태>

-이전 상태로 복구 가능

-현재 사용자는 SELECT문으로 결과 확인 가능

-다른 사용자는 확인 불가능

-변경된 행은 잠금(LOCKING)이 되어 있어 다른 사용자가 변경 불가능

 

<COMMIT 이후의 상태>

-데이터베이스에 영구적 반영

-이전 데이터는 영원히 잃어버린다.

-모든 사용자가 결과 조회 가능

-관련 행에 잠금이 해제된다. 다른 사용자가 조각 가능하다

 

*ROLLBACK

-테이블 내 입력, 수정, 삭제한 데이터에 대하여 commit 이전에 변경 사항을 취소하는 기능

-변경사항이 취소되고, 관련 행 잠금이 풀림.

-다른 사용자가 데이터 변경 가능

 

<롤백 후 데이터 상태>

-데이터에 대한 변경 사항은 취소됨

-이전 데이터가 재정장됨

-다른 사용자가 행 조작 가능

 

*COMMIT과 ROLLBACK을 사용함으로써 얻을 수 있는 효과

-데이터 무결성 보장

-영구적인 변경을 하기 전에 데이터의 변경 사항 확인 가능

-논리적으로 연관된 작업을 그룹핑 하여 처리 가능

 

*SAVEPOINT(저장점)

-저장점을 정의하면, 롤백을 할 경우 저장점까지의 일부만 롤백 가능

-복수의 저장점 정의 가능

-나중에 저장한 저장점이 유효

-저장점을 정의하고, 저장점으로 롤백

 

--한 저장점으로 돌리고 나서 그보다 더 미래로 다시 되돌릴 수 없다. 

 

 

 

 

 

 

728x90
반응형

'메모장' 카테고리의 다른 글

[SQLD] 개념요약 - 과목 1데이터 모델링의 이해  (0) 2022.05.19
[SQLD] 2-1-8. ORDER BY 절  (0) 2022.05.17
[SQLD] 2-1-7. Group By / Having 절  (0) 2022.05.17
[SQLD] 2-1-6. 함수  (0) 2022.05.16
[SQLD] 2-1-5. Where 절  (0) 2022.05.12
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유