* 트랜잭션
-데이터베이스의 논리적 연산단위
-밀접히 관련되어 -> 한개 이상의 데이터베이스를 조작
-하나의 트랜잭션 -> 하나 이상의 SQL 문장 포함
-트랜잭션은 분할 할 수 없는 최소의 단위
-전부 적용 OR 전부 취소, 즉 트랜잭션은 ALL OR NOTHING
*트랜잭션을 컨트롤 하는 TCL
-COMMIT : 트랜잭션을 데이터베이스에 반영
-ROLLBACK : 트랜잭션 수행 이전의 상태로 되돌리는 것
*트랜잭선의 특성 (원일고지)
-원자성 : 모두 적용 OR 모두 취소
-일관성 : 트랜잭션의 실행전, DB에 이상이 없다면, 실행 후에도 이상이 없어야 한다
-고립성 : 트랜잭션 실행중, 다른 트랜잭션의 영향을 받아서는 안된다.
-지속성 : 트랜잭션이 성공적으로 수행되면, 영구적으로 반영
*COMMIT
<COMMIT 이전의 상태>
-이전 상태로 복구 가능
-현재 사용자는 SELECT문으로 결과 확인 가능
-다른 사용자는 확인 불가능
-변경된 행은 잠금(LOCKING)이 되어 있어 다른 사용자가 변경 불가능
<COMMIT 이후의 상태>
-데이터베이스에 영구적 반영
-이전 데이터는 영원히 잃어버린다.
-모든 사용자가 결과 조회 가능
-관련 행에 잠금이 해제된다. 다른 사용자가 조각 가능하다
*ROLLBACK
-테이블 내 입력, 수정, 삭제한 데이터에 대하여 commit 이전에 변경 사항을 취소하는 기능
-변경사항이 취소되고, 관련 행 잠금이 풀림.
-다른 사용자가 데이터 변경 가능
<롤백 후 데이터 상태>
-데이터에 대한 변경 사항은 취소됨
-이전 데이터가 재정장됨
-다른 사용자가 행 조작 가능
*COMMIT과 ROLLBACK을 사용함으로써 얻을 수 있는 효과
-데이터 무결성 보장
-영구적인 변경을 하기 전에 데이터의 변경 사항 확인 가능
-논리적으로 연관된 작업을 그룹핑 하여 처리 가능
*SAVEPOINT(저장점)
-저장점을 정의하면, 롤백을 할 경우 저장점까지의 일부만 롤백 가능
-복수의 저장점 정의 가능
-나중에 저장한 저장점이 유효
-저장점을 정의하고, 저장점으로 롤백
--한 저장점으로 돌리고 나서 그보다 더 미래로 다시 되돌릴 수 없다.
'메모장' 카테고리의 다른 글
[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 |