트랜잭션 (Transaction , 작업단위)
여기에선 데이터를 쿼리하고 변경하는 다양한 작업뿐만 아니라 데이터 정의를 변경하는 작업도 포함된다.
경계는 명시적 / 암시적으로 지정할 수 있다.
- 명시적
직접 BEGIN문과 COMMIT [실패시 ROLLBACK] TRAN을 사용한다.
BEGIN TRAN/TRANSACTION 구문을 사용하며,
마지막 부분에는 COMMIT TRAN / TRANSACTION이나 ROLLBACK TRAN / TRANSACTION을 지정한다.
- 암시적
기본적으로 개별 구문마다 트랜젝션으로 묶어서 처리하게된다.
- 암시적 트랜젝션 구문
IMPLICIT_TRANSACTIONS = on / off [ON 이면 암시적 트랜젝션]
트랜젝션의 끝에는 COMMIT이나 ROLLBACK을 지정해야 한다.
* 트랜젝션의 4가지 특성.
트랜젝션은 4개의 특성을 가지고 있는데, 각각의 첫 글자를 따서 ACID라 한다.
Atomitity (원자성)
트랜젝션은 분리할 수 없는 하나의 단위로서, 작업은 모든 구문이 처리되거나 모두 처리되지 않는다.
원자성의 보증은 데이터베이스의 부분적인 갱신으로 더 큰 문제가 발생하는 것을 방지한다.
Atom의 어원은 '기초적이고 나눌 수 없는 요소'란 의미의 고대 그리스어에서 기원한다.
Consistency (일관성, 정합성)
트랜젝션 처리 전과 처리 된 후에 데이터 모순이 없는 상태를 유지하는 것을 의미.
RDBMS가 동시 트랜젝션 형태로 데이터를 변경하고 조회할 수 있도록 제공하는 데이터의 상태를 말한다.
- DB가 제약조건 (기본키, 고유제약조건, 참조키 등)을 통해 정의되는 무결성의 규칙을 따라야함을 의미하는 용어이기도 하다.
- 트랜젝션은 데이터베이스를 하나의 일관된 상태에서 다른 상태로 바꾸는 역할을 한다.
- 잠금과 관련이 깊다.
Isolation (격리성, 독립성)
트랜젝션 수행할 때, 다른 트랜젝션의 연산 작업이 끼어들지 못하도록 보장하는 것을 의미.
즉, 트랜젝션 밖에 있는 어떤 처리, 연산도 중간 단계의 데이터를 볼 수 없음을 의미한다.
데이터에 접근을 관리하는데 사용되며, 트랜젝션에서 정의하고 있는 일관성 수준을 만족하는 데이터에만 접근하는 것을 보장하는 매커니즘을 말한다.
- '잠금' 관련된 전통적은 방식
- 행 버전 관리를 사용하는 방식
으로 격리수준을 관리한다.
Durability (영속성)
성공적으로 수행된 트랜젝션은 영원히 반영되어야 함을 의미한다.
데이터의 변경사항은 항상 디스크에 있는 데이터베이스의 데이터 파일에 저장되기전에 트랜젝션 로그파일에 기록된다.
'프로그래밍&IT > SQL Server (MS-SQL)' 카테고리의 다른 글
SQL Server - FOR XML PATH 그리고 STUFF (0) | 2024.03.12 |
---|---|
SQL Server - GO에 대해서 (BATCH) (0) | 2024.03.02 |
데이터 조작 - 데이터 입력하기 (INSERT VALUES, SELECT, BULK) (1) | 2024.02.18 |
그룹핑 집합 (GROUPING SETS, CUBE, ROLLUP, GROUPING, GROUPING_ID) (0) | 2024.01.31 |
데이터 피벗, 언피벗 (Pivot, Unpivot) (1) | 2024.01.27 |