SQLite는 트랜잭션적이다
SQLite는 트랜잭션적이다 (SQLite is Transactional)
트랜잭션적 데이터베이스란 모든 변경과 쿼리가 원자적(Atomic), 일관적(Consistent), 격리적(Isolated), 영속적(Durable) (ACID)로 나타나는 데이터베이스예요. SQLite는 프로그램 크래시, 운영체제 크래시, 컴퓨터 정전으로 트랜잭션이 중단되어도 원자적이고 일관적이고 격리되고 영속적인 직렬화 가능(serializable) 트랜잭션을 구현해요.
출처: 문서
본문
트랜잭션적 데이터베이스란 모든 변경과 쿼리가 원자적(Atomic), 일관적(Consistent), 격리적(Isolated), 영속적(Durable) (ACID)으로 나타나는 데이터베이스예요. SQLite는 프로그램 크래시, 운영체제 크래시, 컴퓨터 정전으로 트랜잭션이 중단되어도 원자적이고 일관적이고 격리되고 영속적인 직렬화 가능(serializable) 트랜잭션을 구현해요.
우리는 여기서 강조하기 위해 이전 문장을 다시 진술하고 확장해요: SQLite의 단일 트랜잭션 내 모든 변경은, 변경을 디스크에 쓰는 행위가 다음으로 중단되더라도, 완전히 발생하거나 전혀 발생하지 않아요:
- 프로그램 크래시,
- 운영체제 크래시, 또는
- 정전.
이전 문단의 주장은 운영체제 크래시와 정전이 데이터베이스 파일에 미치는 영향을 시뮬레이션하는 특수 테스트 하네스를 사용해 SQLite 회귀 테스트 스위트에서 광범위하게 검사돼요.
더 알아보기 (Learn more)
- Atomic Commit In SQLite — 원자적 커밋 상세
- Write-Ahead Logging — WAL 모드
- SQLite Frequently Asked Questions — 자주 묻는 질문
- ACID — ACID 개념 (위키피디아)