일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- solidity
- 불안정 정렬
- ES6 모듈
- Relational Database
- Factory Functions
- Private Blockchain
- npm
- short-circuiting
- Hybrid Blockchain
- react
- 명시도
- CSS Specificity
- IP
- 2티어 아키텍처
- Factory 함수
- 안정 정렬
- skip ci
- CLI
- #유니티
- 블록체인
- UTXO
- NoSQL
- javascript
- http 모듈
- 3티어 아키텍처
- SQL
- 텍스트 가운데 정렬
- #1인게임개발
- caverjs
- CSS
- Today
- Total
짹뚜 스튜디오
[Database] Transaction 본문
Transaction
Transaction이란 Database의 상태를 변화시키기 위해 수행하는 하나 이상의 쿼리 또는 작업을 모아 놓은 작업 단위이다. 상태를 변화시킨다는 것은 Database에 접근을 해서 삽입, 삭제, 수정 등의 작업을 하는 것을 얘기한다.
Database의 Transaction은 ACID라는 특성을 가지고 있다.
ACID
Atomicity(원자성)
하나의 Transaction에 속해있는 모든 작업이 전부 성공하거나 전부 실패해야 한다. 부분적으로 성공 또는 실패를 하게 되면 오작동을 했을 때 원인을 파악하기가 힘들고 업데이트 날짜가 누락되는 등 데이터가 오염될 수 있다.
Consistency(일관성)
Database의 상태가 일관되어야 한다. Transaction 이전과 이후의 Database의 상태는 동일해야 한다. 예를 들어 '각 데이터는 이름을 가지고 있어야 한다'라는 Database의 제약이 있는데, Transaction 이후에 이름이 없는 데이터가 있다면 그것은 일관성을 위반하는 것이다.
Isolation(격리성, 고립성)
각각의 Transaction은 독립성을 가지고 있다. 동시에 여러 개의 Transaction이 수행될 때, 각 Transaction은 다른 Transaction의 연산이 끼어들 수 없다. 그리고 Transaction이 끝날 때까지 다른 Transaction의 수행 결과를 참조할 수 없다.
Durability(지속성)
Transaction이 성공적으로 완료가 되면 그 결과는 영구적으로 반영이 된다. 시스템 오류가 발생해도 이미 성공적으로 완료된 Transaction의 결과는 보존된다. 그래서 모든 Transaction은 로그로 남고 시스템 오류 전 상태로 되돌릴 수 있다. 완료 전에 시스템 오류가 발생해서 Transaction이 실패한다면 Atomicity 원칙에 따라 Transaction을 수행하기 전 상태로 돌아간다.
'개발 공부 > Database' 카테고리의 다른 글
[Database] SQL vs NoSQL (0) | 2022.02.15 |
---|---|
[Database] NoSQL (0) | 2022.02.15 |
[Database] SQL (0) | 2022.02.12 |
[Database] 관계형 데이터베이스 (Relational Database) (0) | 2022.02.10 |
[Database] Database 란? (0) | 2022.02.09 |