반응형
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 |