트랜잭션(Transactions)

이진호·2022년 9월 6일
0

DB

목록 보기
2/6
post-thumbnail

트랜잭션이란?

트랜잭션은 일련의 작업을 하나의 실행 단위로 묶은것을 의미합니다. 각 트랜잭션은 특정 작업으로 시작하며 모든 작업이 성공적으로 완료되면 끝납니다. 만약 작업중 하나라도 실패할 경우, 트랜잭션은 실패합니다. 따라서, 트랜잭션은 성공 또는 실패라는 두 가지 결과만 있습니다.

불완전한 단계는 트랜잭션의 실패로 귀결됩니다. 데이터베이스 트랜잭션은 정의에 따르면, 원자적(atom)이고, 일관성(consistence)있고, 격리(isolated)되어 있고, 내구성(durable)이 있어야 합니다. 이는 ACID 속성으로 알려져 있습니다.

ACID

SQL을 사용하여 트랜잭션을 구현하는 법

이하는 트랜잭션을 제어하는 명령어(TCL)들입니다. 이러한 명령어들은 테이블 생성과 같은 INSERT, UPDATE, DELETE와 같은 DML 명령과 SELECT 같은 DQL 명령에서만 유효합니다.

DDL, DQL, DML, DCL 그리고 TCL 명령어

BEGIN TRANSACTION

명시적 또는 로컬 트랜잭션의 시작점을 나타냅니다.

BEGIN TRANSACTION transaction_name ;

SET TRANSACTION

고립수준과 읽기전용/읽기쓰기와 같은 트랜잭션의 다양한 속성을 설정 가능 하게 합니다.

SET TRANSACTION [ READ WRITE | READ ONLY ];

COMMIT

단일 트랜잭션 내의 모든 명령문이 모든 것이 순서대로라면 모든 변경 사항이 데이터베이스에 함께 기록되는 것을 커밋이라고 합니다. COMMIT 명령은 마지막 COMMIT 또는 ROLLBACK 명령 이후의 모든 트랜잭션을 데이터베이스에 저장합니다.

COMMIT;

SAVEPOINT

ROLLBACK할 트랜잭션 그룹 내에서 포인트를 생성합니다. SAVEPOINT는 전체 트랜잭션을 롤백하지 않고 트랜잭션을 특정 지점으로 롤백할 수 있는 트랜잭션의 지점입니다.

SAVEPOINT SAVEPOINT_NAME;
ROLLBACK TO SAVEPOINT_NAME;

RELEASE SAVEPOINT

이 명령은 생성한 SAVEPOINT를 제거하는 데 사용됩니다.

RELEASE SAVEPOINT SAVEPOINT_NAME

출처

0개의 댓글