티스토리 뷰

DBMS/MY-SQL

DB 트랜잭션 (Transaction)

신우섭 2020. 3. 21. 23:25

트랜잭션 : 하나의 작업 묶음, 쪼갤 수 없는 작업의 단위

 

 

트랙잭션은 COMMIT 또는 ROLLBACK 까지 진행되어야 비로소 진행 된 것이다 그 전까지 다른 트랜잭션에 접근 불가.

 

특징 : ACID

Atomicity  원자성 : All or Nothing 될거면 몽땅 되든지 안될거면 몽땅 안되던지

Atomicity Ex)

트랜잭션시작

쿼리1 성공 

쿼리2 성공

쿼리3 실패

ROLLBACK

 

트랜잭션 시작
쿼리1 성공

쿼리2 성공

쿼리3 성공

COMMIT

 

 

Consistency 일관성 : 트랜잭션을 수행하고 나면 하나의 일관된 상태에서 다른 일관된 상태로 바뀌어야 한다

Consistency Ex)

돈 이라는 도메인의 유효범위가 0 이상의 정수 일 때

트랜잭션 시작 -> 현재 돈 300원 -> 500원짜리 아이템 구입 -> 현재 돈 -200 : 일관성을 해침

트랜잭션 시작 -> 현재 돈 300원 -> 500원짜리 아이템 구입 -> 300원짜리 아이템 판매 -> 현재 돈 +100 : 일관성 유지

 

 

Isolation 고립성 : 한 트랜잭션이 실행되는 동안 외부에서는 트랜잭션에 접근할 수 없음

병렬로 수행되더라도 결과는 마치 직렬로 수행된 것 과 비슷해야한다

*TIL 트랜잭션 아이솔레이션 레벨 4단계 : 학부 지식은 아니지만 게임 개발을 원한다면 공부해야하는 필수 지식

 

 

Durability 지속성 : 완료(Commit)된 트랜잭션은 영구적으로 보존되어야 한다

ex)

트랜잭션 시작 -> 작업 1,2 성공 -> Commit 누르는 것과 동시에 프로그램 다운 -> 운영체제가 도움을 주어 어떻게든 commit 시킴

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함