[1. 트랜잭션]
1. 트랜잭션 (Transaction)
- 데이터베이스에서 하나의 논리적 기능을 수행하기 위한 작업의 단위
- 여러 개의 쿼리를 하나로 묶는 작업을 뜻함 (데이터베이스에 접근하는 방식이 쿼리이므로)
2. 트랜잭션의 특징
- 원자성, 일관성, 독립성, 지속성
- 특징을 한 번에 ACID라고 부름
- 하나의 트랜잭션은 커밋(commit, 저장)되거나 롤백(rolll-back, 철회)될 수 있음
3. 커밋과 롤백
- 커밋 : 여러 쿼리가 성공적으로 처리되었다고 확정하는 명령어, 트랜잭션 단위로 수행되며 영구적으로 저장됨
- 롤백 : 트랜잭션으로 처리한 하나의 과정을 발생 전으로 돌리는 것, 즉 취소
- 커밋과 롤백으로 데이터의 무결성을 지킬 수 있음
무결성 : 데이터의 정확성, 일관성, 유효성을 유지하는 것으로 데이터베이스에 저장된 값과 그 값에 해당하는 현실 세계의 실제 값이 일치하는지에 대한 신뢰를 가지게 함
개체 무결성 | 기본키로 선택된 필드는 NULL값을 허용하지 않음 |
참조 무결성 | 서로 참조 관계에 있는 두 테이블의 항상 일관된 값을 유지해야 함 |
고유 무결성 | 특정 속성에 대해 고유한 값을 가지도록 조건이 주어진 경우 그 속성 값은 모두 고유한 값을 가짐 |
NULL 무결성 | 특정 속성 값에 NULL이 올 수 없다는 조건이 주어진 경우 그 속성 값은 NULL이 될 수 없다는 제약 조건 |
[2. ACID]
ACID = 트랜잭션의 특징을 부르는 말
1. 원자성 (Atomicity)
- 트랜잭션과 관련된 일이 모두 수행되었거나 되지 않았거나를 보장하는 특징
- 트랜잭션을 커밋한 후 문제가 생겨 롤백할 때, 그 트랜잭션과 관련된 모든 일이 수행되지 않음을 뜻하는 것
2. 일관성 (Consistency)
- 허용된 방식으로만 데이터를 변경해야하는 것
- 데이터베이스에 기록된 모든 데이터는 여러가지 조건, 규칙에 따라 유효함을 가져야 한다는 것을 의미
3. 격리성 (Isolation)
- 트랜잭션 수행 시 서로 끼어들지 못하는 것
- 서로 격리되어 순차적으로 실행되는 것처럼 작동되어야 하고 여러 사용자가 같은 데이터베이스에 접근할 수 있어야 함
- 그냥 순차적이기만 하면 성능이 안좋으므로, 여러 개의 격리 수준으로 나눔
4. 지속성 (Durability)
- 성공적으로 수행된 트랜잭션은 영원히 반영되어야 한다는 것
- 데이터베이스 시스템 장애가 발생해도 원래 상태로 복구하는 회복 기능이 있어야 함을 뜻함
- 이를 위해 체크섬, 저널링, 롤백 등의 기능 제공
- 체크섬 : 중복 검사의 한 형태, 오류 정정을 통해 송신된 자료의 무결성을 보호하는 단순한 방법
- 저널링 : 파일 시스템 또는 데이터베이스 시스템에 변경 사항을 반영하기 전에 로깅하는 것, 트랜잭션 등 변경사항에 대한 로그를 남기는 것
'부트캠프 > 백엔드 스터디' 카테고리의 다른 글
[DB] KEY (1) | 2024.01.29 |
---|---|
[DB] index (0) | 2024.01.16 |
[DB] ORM (0) | 2024.01.15 |
[DB] RDBMS/NoSQL (1) | 2024.01.15 |