본문 바로가기

자격증/SQLD

SQLD 2과목 1-4장. TCL

[ 목차 ]

1. 트랜잭션 정의와 특징

2. 트랙잭션의 용어

3. 트랜잭션의 특성

4. 잠금

5. COMMIT 사용 이전

6. COMMIT 사용

7.  ROLLBACK 사용

8. COMMIT과 ROLLBACK의 이점

9. SAVEPOINT

10. 추가 내용

 

1. 트랜잭션 정의와 특징

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

2) 밀접히 관련되어 분리될 수 업슨 한 개 이상의 데이터베이스 조작을 의미

3) 논리적인 작업 단위를 구성하는 세부적인 연산들의 집합

4) 하나의 트랜잭션에는 하나 이상의 SQL 문장이 포함

5) 트랜잭션은 분리할 수 없는 최소의 단위로, 전부 적용하거나 전부 취소하는 ALL OR NOTHING의 개념

6) 대상이 되는 SQL문은 UPDATE, INSERT, DELETE 등 데이터를 수정하는 DML문

7) SELECT의 경우 직접적 댕상은 아니나 배타적  LOCK을 요구하는 SELECT문장은 대상이 될 수 있음

 

2. 트랙잭션의 용어

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

  1] 오라클은 DML 실행 시 DBMS가 트랜잭션을 내부적으로 실행하여 DML 이후 사용자가 임의로 COMMIT을 수행해야 트랜잭션이 종료

  2] SQL은 AUTO COMMIT 모드로, DML 수행 후 사용자가 COMMIT을 수행할 필요 없음

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

  1] 커밋과 동일

3) 저장점 : 롤백 시 트랜잭션 전체가 아닌 저장점까지의 트랜잭션 일부만 롤백 가능

SQL의 세 가지 트랜잭셩 방식

1) AUTO 트랜잭션
  1] 기본 방식
  2] DML, DDL 수행 시 DBMS가 트랜잭션을 컨트롤하며, 성공시 자동 COMMIT, 오류시 자동 ROLLBACK

2) 암시적 트랜잭션
  1] 오라클과 같은 방식
  2] 트랜잭션의 시작은 DBMS가 처리하나 끝은 사용자가 직접 명령하여 처리
  3] 인스턴스 단위 or 세션 단위로 설정 가능

3) 명시적 트랜잭션
  1] 시작과 끝은 모두 사용자가 명시적으로 지정하는 방식
  2] BEGIN TRANSACTION으로 트랜잭션을 시작하고 COMMIT, ROLLBACK TRANSACTION으로 트랜잭션 종료

3. 트랜잭션의 특성

1) 원자성 : 정의된 연산들은 모두 성곡적으로 실행되던지 아니면 전혀 실행되지 않는 상태로 남아야 함

2) 일관성 : 실행되기 전의 데이터베이스 내용이 잘못 되어잇지 않다면 트랜잭션 이후에도 잘못된 내용은 없어야 함

3) 고립성 : 드랙ㄴ잭됨션 실행 도중 다른 트랜잭션의 영향을 받아 잘못된 결과가 만들어지면 안됨

4) 지속성 : 성공적으로 수행되면 갱신한 데이터베이스의 내용은 영구적 저장

 

4. 잠금

1) 트랜잭션의 특성(원자성)을 충족하기 위해 다양한 레벨의 잠금 기능을 제공

2) 트랜잭션 수행 동안 다른 트랜잭션이 동시에 접근하지 못하도록 제한하는 기법

3) 잠금을 실행한 트랜잭션만 접근 가능하며 다른 트랜잭션으로부터의 간섭, 방해를 보장

4) 잠금이 걸린 데이터는 이를 실행한 트랜잭션만 해제 가능

 

5. COMMIT 사용 이전

1) 변경된 데이터가 전혀 문제가 없다고 판단될 경우 COMMIT 명령어를 통해 트랜잭션을 완료 가능

2) 메모리 BUFFER에만 영향을 받았기 때문에 데이터의 변경 이전 상태로 복구 가능

3)  SELECT 문자응로 결과를 확인 가능

4) 다른 사용자는 현재 사용자가 수행한 명령의 결과를 볼 수 없음

5) 변경된 행은 잠금이 설정되어 다른 사용자가 변경할 수 없음

 

6. COMMIT 사용

1) 데이터에 대한 변경 사항이 데이터베이스에 반영

2) 이전 데이터는 영구삭제

3) 모든 사용자는 결과를 볼 수 있음

4) 잠금이 풀려 다른 사용자가 조작 가능

 

7.  ROLLBACK 사용

1) 데이터 변경 사항이 취소되어 이전 데이터가 다시 재저장

2) 관련 행에 대한 잠그이 풀리고 다른 사용자들이 조작 가능

 

8. COMMIT과 ROLLBACK의 이점

1) 데이터의 무결성 보장

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

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

 

9. SAVEPOINT

1) 복수의 저장점을 정의할 수 있으며, 동일 이름 정의 시 나중에 정의한 저장점이 유효

2) SQL은 SAVE TRANSACTION으로 동일한 기능 수행 가능

3) 특정 저장점까지 롤백하면 그 저장점 이후에 설정한 저장점은 무효

 

10. 추가 내용

1) DML 문장 이후 커밋 없이 DDL 문장 실행 시 DDL 수행 전에 자동으로 커밋

2) 데이터베이스를 정상적으로 접속을 종료하면 자동으로 커밋

3) 애플리케이션의 이상 종료로 데이터베이스와의 접속이 단절되었을 경우 트랜잭션이 자동 롤백

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

SQLD 2과목 1-7장. GROUP BY, HAVING절  (0) 2020.03.12
SQLD 2과목 1-5장. WHERE절  (0) 2020.03.12
SQLD 2과목 1-3장. DML  (0) 2020.03.09
SQLD 2과목 1-2장. DDL  (0) 2020.03.09
SQLD 2과목 1-1장. 관계형 데이터베이스  (0) 2020.02.28