티스토리 뷰

자격증/SQLD

SQLD - SQL 기본 [TCL]

나는연어다 2017. 8. 4. 15:51

1.   트랜잭션 개요

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

-       밀접히 관련되어 분리될 수 없는 한 개 이상의 데이터베이스 조작을 의미한다.

-       하나의 트랜잭션에는 하나 이상의 SQL 문장이 포함된다.

-       트랜재션은 분할할 수 없는 최소의 단위이다.

-       따라서, 전부 적용하거나 전부 축소
, 트랜잭션은 ALL or NOTHING

 

-       트랜잭션을 컨트롤 하는 TCL (TRANSACTION CONTROL LANGUAGE)

-       커밋 (COMMIT) : 올바르게 반영된 데이터를 데이터베이스에 반영시키는 것

-       롤백 (ROLLBACK) : 트랜잭션 시작 이전의 상태로 되돌리는 것

-       저장점 (SAVEPOINT) :

-       트랜잭션 대상이 되는 SQL

-       UPDATE, INSERT, DELETE 등 데이터를 수정하는 DML

-       SELECT FOR UPDATE 등 배타적 LOCK을 요구하는 SELECT

-       트랜잭션 특성

n  원자성 : 트랜잭션에서 정의된 연산은 모두 성공하던지 아니면 전혀 실행되지 않아야 한다. (All or Nothing)

n  일관성 : 트랜잭션이 실행되기 전 데이터베이스에 이상이 없다면 실행 후에도 이상이 없어야 한다.

n  고립성 : 트랜잭션이 실행되는 도중에 다른 트랜잭션의 영향을 받아선 안된다.

n  지속성 : 트랜잭션이 성공적으로 수행되면 영구적으로 저장된다.

2.   COMMIT (커밋)

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

-       COMMIT이나 ROLLBACK 이전의 데이터상태

n  단지 메모리 BUFFER에만 영향을 주고 데이터 변경 이전 상태로 복구 가능하다.

n  현재 사용자는 SELECT 문으로 변경 결과를 확인할 수 있다.

n  다른 사용자는 현재 사용자가 수행한 결과를 볼 수 없다.

n  변경된 행은 잠금(LOCKING)이 설정되어 다른 사용자가 변경할 수 없다.

-       COMMIT 이후의 데이터 상태

n  데이터에 대한 변경 사항이 데이터베이스에 반영된다.

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

n  모든 사용자가 결과를 볼 수 있다.

n  관련된 행에 잠금(LOCKING)이 풀리고, 다른 사용자가 행을 조작할 수 있다.

 

-       SQL Server COMMIT

n  기본적으로 AUTO COMMIT 모드

n  DML 구문이 성공이면 자동으로 COMMIT 된다.

n  오류가 발생할 경우 자동으로 ROLLBACK된다.

n  AUTO COMMIT : SQL Server의 기본 방식

n  암시적 트랜잭션

n  명시적 트랜잭션

3.   ROLLBACK (롤백)

-       테이블 내 입력, 수정, 삭제한 데이터에 대해서 COMMIT 이전에 변경 사항을 취소할 수 있는 기능
데이터 변경 사항 취소, 관련된 행에 대한 잠금이 풀리고 다른 사용자들이 데이터를 변경할 수 있다.

-       롤백 후 데이터의 상태

n  데이터에 대한 변경 사항은 취소된다.

n  이전 데이터는 다시 재저장된다.

n  관련된 행에 대한 잠금이 풀리고, 다른 사용자들이 행을 조작할 수 있다.

 

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

n  데이터 무결성 보장

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

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

 

4.   SAVEPOINT (저장점)

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

n  복수의 저장점을 정의할 수 있다.

n  동일 이름으로 저장점을 저장시 나중에 정의한 저장점이 유효하다.

n  저장점 정의하고 저장점으로 롤백하기

-       Oracle
SAVEPOINT SVPT1;
ROLLBACK TO SVPT!;

-       SQL Server
SAVE TRANSACTION SVTR1;
ROLLBACK TRANSACTION SVTR1;

-       롤백에 저장점을 부여하여 실행하면 저장점 설정 이후의 변경사항은 원래 상태로 되돌아 간다.

 

-      SAVEPOINT 설정 후 롤백 (ROLLBACK)이 이뤄지는 범위

-       저장점 A로 되돌리고 나서 다시 B로 되돌릴 수 없다.

-       특히 저장점까지 롤백하면 그 저장점 이후에 설정한 저장점들은 무효가 된다.

-       저장점 없이 롤백하면 모든 변경 사항을 취소한다.

반응형
LIST

'자격증 > SQLD' 카테고리의 다른 글

SQLD - SQL 기본 [함수]  (0) 2017.08.07
SQLD - SQL 기본 [WHERE]  (0) 2017.08.05
SQLD - SQL 기본 [DML]  (0) 2017.08.04
SQLD - SQL 기본 [DDL]  (0) 2017.08.03
SQLD - SQL 기본 [관계형 데이터베이스 개요]  (0) 2017.08.02
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
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
글 보관함