Back-end/DataBase

[DB]Transaction 트랜잭션이란?

cheersHena 2018. 6. 22. 21:10
반응형

Transaction 트랜잭션이란? 


데이터베이스의 상태 변화시키기 위해 수행되는 작업의 단위.

(✽데이터 베이스의 상태변화란? 

SELECT, INSERT, DELETE, UPDATE등의 질의어(SQL)이용하여 디비에 접근하는 것.)

이때, 작업의 단위는 질의어 한문장이 아니다!

 작업단위는 많은 질의어 명령문들을 사람이 정하는 기준에 따라 정하는 것을 의미한다.




◼︎Transaction 특징

  • 원자성 (Atomicity)  
  • 트랜젝션이 데이터베이스에 모두 반영되던가 , 그렇지 않으면 전혀 반영되지 않아야 한다. 트랜잭션은 사람이 설계한 논리적 작업단위로, 처리는 기준설정 해놓은 작업단위 별로 이루어져야 한다. 
  • 일관성 (Consistency) 
  • 트랜잭션의 작업처리 결과가 항상 일관성이 있어야 한다. 트랜잭션 진행동안 데이터베이스가 변경 되더라도 업데이트된 데이터베이스로 트랜잭션이 진행되는 것이 아니라, 처음에 트랜잭션을 진행 전 참조한 데이터 베이스로 진행된다. 즉 각 사용자는 일관성 있는 데이터를 볼 수 있다. 
  • 독립성 (Isolation) 
  • 둘 이상의 트랜잭션이 동시에 병행 실행될 경우, 어느 하나의 트랜잭션이라도 다른 트랜잭션의 연산에 끼어들 수 없다. 즉, 하나의 특정 트랜잭션이 완료될때까지 다른 트랜잭션이 특정 트랜잭션의 결과를 참조할 수 없다. **특히 공동작업에서 트랜잭션을 할 경우,  트랜잭션 이후 꼭 commit 혹은 rollback 후 트랜잭션을 끝내고, 다른 트랜잭션이 실행될 수 있도록 해 주어야함..
  • 지속성 (Durability) 
  • 트랜잭션이 성공적으로 완료되었을 경우 결과는 영구적으로 반영되어야 한다. 


◼︎Commit, Rollback 연산.


Commit 

커밋이란 하나의 트랜잭션이 성공적으로 끝났고 데이터베이스가 일관성있는 상태에 있을때, 하나의 트랜잭션이 끝났다는 것을 알려주기 위해 사용하는 연산.

이 연산을 사용하면 수행했던 트랜잭션이 로그에 저장되고 실제 데이터베이스에 최종 반영된다.


Rollback 

롤백이란 트랜잭션 처리시 문제가 발생하여 다시 초기상태(bigin; 시점으로) 되돌리는 연산. 트랜잭션 시작시 bigin;을 선언해주고 시작하는데 다시 bigin 선언 시점으로 돌아가는 것이므로 잘못된 트랜잭션을 초기화 시키는 연산기능이다.  

반응형

'Back-end > DataBase' 카테고리의 다른 글

Database - 정규화란? Normalization  (0) 2018.06.27
sql 활용 연습문제.  (0) 2018.06.25
MYSQL 내장함수 Built in functions  (0) 2018.06.22
SQL - View 뷰란? Trigger 트리거란?  (0) 2018.06.22
SQL - Procedure 프로시저란?  (0) 2018.06.22