정보처리기사 필기발행일 2024. 2. 25.원본 https://blog.naver.com/jword_/223362785912 ↗

트랜잭션이란?

트랜잭션이란? — #정보처리기사 #트랜잭션이란 24년도 1회차 정보처리기사 필기 시험대비 공부를 진행하였습니다. * 본글은 ...

#정보처리기사 필기#Naver Blog

#정보처리기사 #트랜잭션이란

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로 기억하면 편합니다!