본문 바로가기
이과/JAVA 안드로이드

[안드로이드] 트랜잭션(Transaction)이란?

by 코딩초밥 2021. 5. 16.
반응형

안녕하세요 코딩초밥입니다

혹시 여러분들은 계좌이체를 해보았나요?

저는 오늘도 4번을 했는데요..(내돈..)

상상해봅시다. 내가 돈을 제 3자한테 보냈는데 어떤 이상현상으로 (관리하던 데이터베이스가 에러가 걸린다거나)

하면..내 돈은 갑자기 공중 분해 되겠죠?

그러면 화가 나겠어요? 안나겠어요?

그러나 이런 경우는 정말 없죠.

왜 그럴까요? 데이터베이스가 완벽에 가까워서 그럴까요?????

자, 우리의 삶과 가깝지만 낯선 녀석

트랜잭션을 알아봅시다 😀😍


| 트랜잭션

트랜잭션이란, 데이터 베이스의 상태 변화시키기 위해서 수행하는 작업 단위를 뜻합니다

SQL 을 이용하여서 데이터 베이스의 접근 하는것을 의미합니다

 

'SELECT' 'INSERT' 'DELETE' 'UPDATE'

 

이 4가지의 질의어가 따로 쓰이는것이 아닌

합쳐서 작업을 이루는 계념입니다.

위에서 언급하였던 은행을 예로 들자면

사용자가 송금을 INSERT하고 제 3자가 입금을받고 SELECT를 한다고 예를든다면

순차적으로라면 INSERT -> DATABASE -> SELECT 이렇게 순차적으로 가겠지만

트랜잭션은 (INSERTDATABASESELECT) 이런느낌으로 하나의 일처리로

본다는 것이다. 하나라도 잘못된다면 그 작업은 실행되지않는다.

아니지. 하나라고 생각하니까 하나에서 하나가 잘못되면 실행안되는건 어찌보면 당연한것이다


트랜잭션은 원자성 일관성 독립성 지속성 이 4가지를 중점적으로 계념을가진다

원자성 (Atomicity)
일관성 (Consistency)
독립성 (Isolation)
지속성 (Durability)

원자성(Atomicity): 자신의 연산을 전체 실패 , 전체 성공만 있을뿐 중간에 끊기는건 없이 하는것이다. 즉, 중간 단계까지 실행되고 실패하는 일은 없도록 하는 것이다.

혹시 중간에 에러로인해 연산이 실패된다면 전체 실행 중지가 되고 Roll back(롤백) 이됩니다.

연산에 성공한다면 Commit(커밋)이 되어 다시 일관성을 가지게 됩니다.

일관성(Consistency)은 트랜잭션이 실행을 완료하면 언제나 일관성 있는 데이터베이스 상태로 유지하는 것을 의미한다.

격리성(Isolation)은 트랜잭션을 수행할때 다른 연산은 트랜잭션을 건드리지 못하는 격리성이 있어야한다

영속성(Durability)은 성공적으로 수행된 트랜잭션은 영원히 반영되어야 함을 의미한다.

 

앞글자를 따서 ACID는 데이터베이스 트랜젝션을 수행되는것을 보장하는

성질을 가르키는 약어입니다. 이 4가지의 계념을 알고계시다면 트랜잭션을 알고 계신겁니다.

반응형

댓글