본문 바로가기

두두의 IT/Computer Science

[DB] Transaction(트랜잭션)

728x90

https://spurious-heath-8ab.notion.site/RDBMS-851e680ff7fb4c569bed1710804ce105

 

RDBMS 트랜잭션

트랜잭션

spurious-heath-8ab.notion.site

 

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