트랜잭션... 너 뭐니?

ensia96·2020년 5월 29일
0
post-thumbnail

슈퍼개발자, 춤추는망고입니다.

( 춤 안춥니다. )








어디서 들어보긴 했는데, 뭔지는 몰랐던,



너 뭐니?

' Transaction ! '









트랜잭션 ( transaction ) 이란?

성공 / 실패가 분명하고, 독립적이며 일관된 시스템에서의 상호작용 단위
( 혹은, 데이터베이스 관리 시스템 ( RDBMS ) 에서의 상호작용 단위 )
데이터베이스의 상태를 변환시키는 논리적 기능을 수행하는 하나의 단위
한번에 수행되어야하는 모든 연산의 집합 단위




쉽게 말하자면, ' 실행 ' 이라는 한 덩어리에요 !

( 여러 로직이 있더라도, 그 로직들의 목적은 결국, 하나의 기능이죠 ! )

  1. 데이터베이스와 관련된 핵심 개념인 ' ACID ' 가 작용하는 단위에요 !
  2. 논리적 작업단위 ( Logical Units of Work / LUW ) 라고도 불려요 !
  3. 데이터베이스의 완전성 ( integrity ) 에 대해 확신 할 수 있어야 해요 !
    ( 트랜잭션이 존재하는 이유라고 할 수 있죠 ! )
  4. 하나의 트랜잭션 단위는 Commit 혹은 Rollback 되어야 해요!
    ( 여러 연산이 이뤄져도, 전부 정상적으로 실행되거나, 전부 취소 ! )



구성쓰!

		   활동
	       /	 \
	   부분완료 	 실패
	     |		  |
	    완료  	 철회

하나의 기능이 실행되었다면!

  1. ' 부분완료 => 완료 ' 의 단계로 Commit 되거나!
  2. ' 실패 => 철회 ' 의 단계로 Rollback 되거나!



특징쓰!

  1. 한 단위로 데이터를 다루기 때문에, 데이터의 부정합을 방지할 수 있어요 !
  2. 여러 동작을 병렬적으로 ( 한번에 ) 실행해야 해서, 스케쥴을 관리해줘야 해요!



참고쓰!

  1. 트랜잭션을 지원하는 데이터베이스를 ' 트랜잭셔널 데이터베이스 ' 라고 해요 !
  2. 대부분의 관계형 데이터베이스 관리시스템 ( RDBMS ) 은 트랜잭셔널 !
  3. 데이터베이스의 성능을 측정하는 단위이기도 해요!
    ( 초당 트랜잭션 실행 수 / TPS )
  4. 스케쥴링이 제대로 되어있지 않다면, 교착상태 ( Deadlock ) 에 빠져요 !
교착상태 ( Deadlock / 데드락 ) 란?
두 개 이상의 작업이 서로 다른쪽 작업이 끝나기 만을 기다리고 있는 상태에요!
결과적으로 아무것도 완료되지 못하죠!








출처쓰!

' 코딩팩토리 ' 님의 티스토리 블로그 !
https://coding-factory.tistory.com/226
' victolee ' 님의 티스토리 블로그 !
https://victorydntmd.tistory.com/129
위키피디아 - 트랜잭션 !
https://ko.wikipedia.org/wiki/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4_%ED%8A%B8%EB%9E%9C%EC%9E%AD%EC%85%98
위키피디아 - 교착 상태 !
https://ko.wikipedia.org/wiki/%EA%B5%90%EC%B0%A9_%EC%83%81%ED%83%9C

profile
지금까지 이런 망고는 없었다. 이것은 개발자인가 춤추는망고인가

0개의 댓글