728x90
반응형
SQLD 단원별 목록으로
1. 트랜잭션 개요
- 데이터베이스의 논리적 연산 단위
- 밀접히 관련되어 분리될 수 없는 한 개 이상의 데이터베이스 조작을 가리킨다.
- 분할할 수 없는 최소단위. 그렇기 때문에 전부 적용하거나 전부 취소한다.(ALL OR NOTHING)
2. COMMIT
- 입력한 자료나 수정한 자료에 대해서 또는 삭제한 자료에 대해서 전혀 문제가 없다고 판단되었을 경우
COMMIT 명령어를 통해 트랜잭션을 완료할 수 있다.
- COMMIT이나 ROLLBACK 이전의 데이터 상태
- 단지 메모리 BUFFER에만 영향을 받았기 때문에 데이터의 변경 이전 상태로 복구 가능
- 현재 사용자는 SELECT 문장으로 결과를 확인 가능
- 다른 사용자는 현재 사용자가 수행한 명령의 결과를 볼 수 없다.
- 변경된 행은 잠금(LOCKING)이 설정되어서 다른 사용자가 변경할 수 없다.
- 관련된 행에 대한 잠금(LOCKING)이 풀리고, 다른 사용자들이 행을 조작할 수 있게 된다. - COMMIT 이후의 데이터 상태
- 데이터에 대한 변경 사항이 데이터베이스에 반영된다.
- 이전 데이터는 영원히 잃어버리게 된다.
- 모든 사용자는 결과를 볼 수 있다. - SQL Server에서의 트랜잭션
- AUTO COMMIT : SQL Server의 기본 방식이며, DML, DDL을 수행할 때마다 DBMS가 트랜잭션을 컨트롤하는 방식
- 암시적 트랜잭션 : 트랜잭션의 시작은 DBMS가 처리하고 트랜잭션의 끝은 사용자가 명시적으로 COMMIT 또는 ROLLBACK 처리
- 명시적 트랜잭션 : 트랜잭션의 시작과 끝을 모두 사용자가 명시적으로 지정하는 방식
3. ROLLBACK
- 테이블 내 입력한 데이터나, 수정한 데이터, 삭제한 데이터에 대하여 COMMIT 이전에는 변경 사항을 취소할 수 있는데 데이터베이스에 롤백(ROLLBACK) 기능을 사용한다. 롤 백(ROLLBACK)은 데이터 변경 사항이 취소되어 데이터의 이전 상태로 복구되며,
관련된 행에 대한 잠금(LOCKING)이 풀리고 다른 사용자들이 데이터 변경을 할 수 있게 된다.
- COMMIT과 ROLLBACK을 사용함으로써 효과
- 데이터 무결성 보장
- 영구적인 변경을 하기 전에 데이터의 변경 사항 확인 가능
- 논리적으로 연관된 작업을 그룹핑하여 처리 가능
4. SAVEPOINT
- 저장점(SAVEPOINT)을 정의하면 롤백(ROLLBACK)할 때 트랜잭션에 포함된 전체 작업을 롤백하는 것이 아니라 현시점에서 SAVEPOINT까지 트랜잭션의 일부만 롤백할 수 있다.
- SAVEPOINT SVPT1;
- SAVEPOINT 명을 부여하여 실행하면 저장점 설정 이후에 있었던 데이터 변경에 대해서만 원래 데이터 상태로 되돌아가게 된다.
- SQL Server는 SAVE TRANSACTION을 사용하여 동일한 기능을 수행할 수 있다. - SAVE TRANSACTION SVTR1;
- 저장점까지 롤백할 때는 ROLLACK 뒤에 저장점 명을 지정한다. - ROLLBACK TRANSACTION SVTR1;
728x90
반응형
'자격증 > SQL개발자(SQLD)' 카테고리의 다른 글
3-6장. SQL 기본(함수[FUNCTION]) (10) | 2023.05.24 |
---|---|
3-5장. SQL 기본(WHERE 절) (8) | 2023.05.23 |
3-3장. SQL 기본(DML[DATA DEFINITION LANGUAGE]) (6) | 2023.05.23 |
3-2장. SQL 기본(DDL[DATA DEFINITION LANGUAGE]) (6) | 2023.05.23 |
3-1장. SQL 기본(관계형 데이터베이스 개요) (6) | 2023.05.21 |