Evernote 전공 정리 노트 불러오기
Computer Science
Transaction
Transaction
- 트랜잭션(transaction)은 ATM, 데이터베이스 등의 시스템에서 사용되는 쪼갤 수 없는 업무 처리의 단위이다.
- 영어 낱말 transction은 거래를 뜻한다.
- 예를 들어 돈을 줬는데 물건을 받지 못한다면, 그 거래는 이루어지지 못하고 원상태로 복구되어야 한다.
- 이와 같이 쪼갤 수 없는 하나의 처리 행위를 원자적 행위라고 한다.
- 여기서 쪼갤 수 없다는 말의 의미는 실제로 쪼갤 수 없다기 보다는 만일 쪼개질 경우 시스템에 심각한 오류를 초래할 수 있다는 것이다.
- 이러한 개념의 기능을 ATM 또는 데이터베이스 등의 시스템에서 제공하는 것이 바로 트랜젝션이다.
- 트랜잭션은 사용자가 시스템에 요구를 시작하여 시스템 내의 처리, 시스템에서 사용자에게 응답하는 모든 처리를 포함한다.
- 이러한 트랜잭션이 충족해야 하는 기술적인 요건은 ACID가 있다.
- ACID는 데이터베이스 트랜젝션이 안전하게 수행된다는 것을 보장하기 위한 성질을 가리키는 약어이다.
- Atomicity(원자성)
- 트랜젝션과 관련된 작업들이 부분적으로 실행되다가 중단되지 않는 것을 보장하는 능력이다.
- 예릉들어, 자금 이체는 성공할 수도 실패할 수도 있지만 보내는 쪽에서 돈을 빼오는 작업만 성공하고 받는 쪽에 돈을 넣는 작업을 실패해서는 안된다.
- 원자성은 이와 같이 중간 단계까지 실행되고 실패하는 일이 없도록 하는 것이다.
- Consistency(일관성)
- 트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 유지하는 것을 의미한다.
- 무결성 제약이 모든 계좌는 잔고가 있어야 한다면 이를 위반하는 트랜잭션은 중단된다.
- Isolation(고립성)
- 트랜잭션을 수행 시 다른 트랜잭션의 연산 작업이 끼어들지 못하도록 보장하는 것을 의미한다.
- 이것은 트랜잭션 밖에 있는 어떤 연산도 중간 단계의 데이터를 볼 수 없음을 의미한다.
- 은행 관리자는 이체 작업을 하는 도중에 쿼리를 실행하더라도 특정 계좌간 이체하는 양 쪽을 볼 수 없다.
- 공식적으로 고립성은 트랜잭션 실행내역은 연속적이어야 함을 의미한다.
- 성능관련 이유로 인해 이 특성은 가장 유연성 있는 제약 조적이다.
- Durability(지속성)
- 성공적으로 수행된 트랜잭션은 영원히 반영되어야 함을 의미한다.
- 시스템 문제, DB 일관성 체크 등을 하더라도 유지되어야 함을 의미한다.
- 전형적으로 모든 트랜잭션은 로그로 남고 시스템장애 발생 전 상태로 되돌릴 수있다.
- 트랜잭션은 로그에 모든 것이 저장된 후에만 commit 상태로 간주될 수 있다.
출처 : https://ko.wikipedia.org/wiki/ACID [위키]
'Learn IT Knowledge > Computer Science' 카테고리의 다른 글
[ 전공 지식 ] Thymeleaf (0) | 2018.01.03 |
---|---|
[ 전공 지식 ] Spring Framework (0) | 2018.01.03 |
[ 전공 지식 ] Type-safe (0) | 2018.01.03 |
[ 전공 지식 ] Spring Annotation (0) | 2018.01.03 |
[ 전공 지식 ] XML (0) | 2018.01.03 |