◆ 트랜잭션
- 쪼갤 수 없는 업무 처리의 최소 단위
- 데이터베이스의 상태를 변화시키기 위해서 수행하는 작업의 단위
- 질의어(SQL)을 이용하여 데이터베이스를 접근 하는 것을 의미
- 작업의 단위는 SQL 한 문장이 아님
- 작업 단위는 많은 SQL 명령문들을 사람이 정하는 기준에 따라 정하는 것을 의미
● 특징
▶ 원자성
- 트랜잭션이 데이터베이스에 모두 반영되던가, 아니면 전혀 반영되지 않아야 한다는 것
▶ 일관성
- 트랜잭션의 작업 처리 결과가 항상 일관성이 있어야 한다는 것
▶ 독립성
- 둘 이상의 트랜잭션이 동시에 실행되고 있을때 다른 트랜잭션의 연산에 끼어들 수 없다는 점
- 하나의 특정 트랜잭션이 완료될 때까지, 다른 트랜잭션이 특정 트랜잭션의 결과를 참조할 수 없다.
● 연산
- COMMIT : 하나의 트랜잭션이 성공적으로 끝났고, 데이터베이스가 일관성 있는 상태에 있을 때,
하나의 트랜잭션이 끝났다는 것을 알려주기 위해 사용하는 연산
- Rollback : 하나의 트랜잭션 처리가 비정상적으로 종료되어 트랜잭션의 원자성이 깨진 경우,
트랜잭션을 처음부터 다시 시작하거나 트랜잭션의 부분적으로만 연산이 완료된 결과를 다시 취소 시키는 연산
◆ TCL
● COMMIT
- 정상적으로 종료되어 트랜잭션을 반영하는 연산
- 자동으로 실행해줌
● ROLLBACK
- 모든 변경 작업을 취소하고 이전 상태로 되돌리는 연산
- COMMIT 이후의 작업들은 모두 사라짐
● LOCK
- 다른 트랜잭션이 동시에 접근 못하게 제한
- 자동으로 해줌
● SAVEPOINT
- 트랜잭션을 작게 분할
- ROLLBACK TO SAVEPOINT을 사용하여 지정한 곳까지 ROLLBACK
- SAVEPOINT 후 COMMIT 연산을 하면 SAVEPOINT들은 모두 사라짐
- SAVEPOINT는 여러 개 생성가능
● START TRANSACTION
- 트랜잭션을 시작할 때 사용하는 명령
- BEGIN이나 BEGIN WORK도 가능
◆ 실습
'DBMS(SQL)' 카테고리의 다른 글
DBMS실습 (SQL 심화) - ORDER BY, LIMIT, DISTINCT, GROUP BY, 서브 쿼리, 다중 조건문(7일차) (0) | 2023.10.09 |
---|---|
함수적 종속성 & 정규화 (6일차) (0) | 2023.10.09 |
DBMS 실습 - SQL 함수 [자주쓰는 함수] - 2 (5, 6일차) (0) | 2023.10.09 |
DBMS 실습 - SQL 함수 [자주쓰는 함수] - 1 (5, 6일차) (0) | 2023.10.09 |
DBMS 실습 - INSERT, SELECT, UPDATE, DELETE(4일차) (0) | 2023.10.09 |