트랜잭션이란?
트랜잭션이란? — #정보처리기사 #트랜잭션이란 24년도 1회차 정보처리기사 필기 시험대비 공부를 진행하였습니다. * 본글은 ...
#정보처리기사 #트랜잭션이란
24년도 1회차 정보처리기사 필기 시험대비 공부를 진행하였습니다.
\* 본글은 PC버전에 최적화 되어있습니다.
**\\ **공부방법론은 가장 첫글에 있습니다. 참고하실 분들은 참고하세요! \\
3과목, 데이터 베이스 구축
view
트랜잭션에 대한 모든 것
트랜잭션이라는 단어는 데이터 베이스 뿐 아니라. 운영체제 병행제어에서 나오는 개념이기도 합니다.
물론 여기서는 데이터베이스를 중점적으로 다룰 것이지만, 이 개념을 다른곳에 적용해도 큰 문제는 없습니다.
이번글에서는 DB에서의 트랜잭션의 개념과, 상태, 특징 등을 이야기 해보겠습니다.
트랜잭션
트랜잭션은 데이터베이스의 상태를 변환시키는 작업 단위입니다. 하나의 작업일 수도 있지만, 큰 덩어리로 열련의 연산들이기도 합니다.
여기서 작업은 코드라고 생각하시면 편합니다.
ex)
| CREATE VIEW test\_view AS SELECT 속성1, 속성2... FROM 유도 테이블; |
|---|
이 CREATE문도 하나의 작업이 되겠습니다.
트랜잭션은 DB 시스템에서 병행제어 및 회복 작업 시 처리되는 작업의 논리적 단위라고도 합니다.
트랜잭션은 여러가지 상태를 가지기도 하는데 가질 수 있는 상태는 아래와 같습니다.
트랜잭션의 상태
활동(Action): 트랜잭션이 실행중인 상태를 의미합니다.
실패(Failed): 트랜잭션 실행에 오류가 발생하여 중단된 상태입니다.
철회(Aborted): 트랜잭션이 비정상적으로 종료되어 Rollback연산을 수행한 상태입니다.
부분완료(Partially Committed): 트랜잭션이 모두 성공적으로 실행 한 후 Commit연산이 실행되기 전인 상태입니다.
완료(Committed): 트랜잭션을 성공적으로 실행 후 Commit연산을 실행한 후의 상태
me) 부분완료와 완료개념이 헷갈릴 수 있기에 Commit연산을 중점으로 기억하시면 편합니다.
💡COMMIT과 ROLLBACK이란?
COMMIT은 트랜잭션이 성공적으로 끝나면 DB가 새로은 일관성을 가지기 위해 변경된 내용을 DB에 반영해야한다. 이때 사용하는 명령이 COMMiT
ROLLBACK은 아직 COMMIT됮 않은 변경된 모든 내용을 취소하고 DB를 이전상태로 되돌리는 명령어
-> 트랜잭션이 성공적으로 끝나지 못한 경우 비일관성이 나타날 수 있기에 시행하는 것
me) git을 사용해보신 분들이라면 조금더 이해하기 편하실 것 같습니다!
트랜잭션의 특성 (A)
원자서(Atomicity): 트랜잭션은 DB에 모두 반영되거나 하나도 반영되지 않도록 복구해야한다. 트랜잭션을 수행 중 어느 하나라도 오류가 발생하면 전부 취소 되어야함
일관성(Consistency): 트랜잭션이 성공적으로 실행하면, 언제나 일관성 있는 DB상태로 변환. 시스템의 고정요소는 수행전과 이후가 같아야한다.
독립성(Isolation): 트랜잭션이 동시에 병행실행되는 경우 실행되는 트랜잭션에 다른 트랜잭션이 끼어들 수 없다. 수행중인 트랜잭션이 완료되기 전까지, 그 수행결과를 다른 곳에서 참조 불가능
= 격리성, 순차성
영속성(Durability): 성공적으로 완료된 트랜잭션 결과는 시스템이 고장나더라도 영구적으로 반영되어야 한다.
= 영속성, 지속성
me) ACIO로 기억하면 편합니다!
