https://spurious-heath-8ab.notion.site/RDBMS-851e680ff7fb4c569bed1710804ce105
Q. 트랜잭션의 정의
- DB에서 하나의 논리적 기능을 수행하기 위한 작업 단위
Q. 트랜잭션의 ACID
- Atomicity (원자성) : 한 개의 작업 단위
- Consistency (일관성) : 트랜잭션 실행 후 일관서 있는 DB 상태 보존
- Isolation (고립성) : 트랜잭션 실행 중 다른 트랜잭션 접근 불가
- Durability (영속성) : 성공된 트랜잭션 결과는 영속적으로 DB에 저장
Q. Sql-92에서 표준으로 만든 isolation level 종류
- 0 : Read Uncommitted : 트랜잭션에서 처리중인 데이터를 다른 트랜잭션이 읽는 것을 허용
- 1 : Read Committed : 트랜잭션이 Commit 되어 확정된 데이터만 읽는 것을 허용
- 2 : Repeatable Read : 선행 트랜잭션이 읽은 데이터는 트랜잭션이 종료될 때까지 후행 트랜잭션이 갱신, 삭제 불허
- 3 : Serializable : 선행 트랜잭션이 읽은 데이터는 트랜잭션이 종료될 때까지 후행 트랜잭션이 갱신, 삭제, 삽입 불허
Q. 데이터 동시성 제어를 하지 않을 때 발생하는 문제 - phantom read에 대한 설명
기존에 사원수가 1,000명이라고 하자.
A 트랜잭션이 사원 수를 조회했는데, 동시에 B 트랜잭션이 사원 한 명을 추가로 등록했다.
A 트랜잭션이 먼저 실행되었기 때문에 1,000명이 조회되어야 하는데, 동시성 제어를 하지 않아서 1,001명이 조회되는 문제가 있다.
'두두의 IT > Computer Science' 카테고리의 다른 글
[DB] NoSQL (0) | 2022.10.12 |
---|---|
[DB] Join (1) | 2022.10.06 |
[네트워크] 주요 지식 (0) | 2022.08.30 |
[OS] 주요 지식 (0) | 2022.08.30 |
웹(Frontend, Javascript) 기본 지식 (0) | 2022.08.30 |