트랜잭션 Transaction 이란?
: 데이터베이스 시스템에서 하나의 논리적 기능을 정상적으로 수행하기 위한 작업의 기본 단위
트랜잭션 특징 : ACID
Automicity 원자성
: 트랜잭션 연산 전체가 성공 또는 실패되야 하는 성질, All or Nothing
Consistency 일관성
: 시스템이 가지고 있는 고정요소는 트랜잭션 수행 전과 후의 상태가 같아야 하는 성질
Isolation 격리성
: 동시에 실행되는 트랜잭션들이 서로 영향을 미치지 않아야 한다는 성질
Durability 영속성
: 성공적으로 완료된 결과는 영구적으로 반영
트랜잭션 제어 언어 TCL
- 커밋 Commit : 트랜잭션 처리가 정상적으로 될 경우 트랜잭션이 수행한 변경 내용을 데이터베이스에 반영하는 연산
- 롤백 Rollback : 트랜잭션 처리 중, 오류가 발생했을 때 오류 이전의 특정 시점 상태로 되돌려주는 제어어
- 체크포인트 Check point(Save point) : 현재의 트랜잭션을 작게 분할하는 명령어
병행제어란? Concurrency Control
: 다수 사용자 환경에서 여러 트랜잭션 수행할 때, 데이터베이스 일관성 유지를 위해 상호작용을 제어하는 기법
병행 제어 기법이란?
#로낙타다
- 로킹 Locking : 같은 자원을 액세스하는 다중 트랜잭션 환경에서 DB의 일관성과 무결성을 유지 위해 트랜잭션 순차 진행을 보장하는 직렬화 기법으로 데이터베이스, 파일 등은 로킹 단위가 될 수 있다.
: 로킹 단위 크면 로크의 수는 적어지고, 제어 기법은 간단 (병행성 감소)
: 로킹 단위 작으면, 로크의 수 많아지고 제어 기법은 까다로움 (병행성 증가)
- 낙관적 검증 : 트랜잭션이 어떤 검증도 수행하지 않고 일단 트랜잭션 수행 후 종료 시 검증을 수행해 DB에 반영
- 타임스탬프 순서 : 타임스탬프를 부여하여 부여된 시간에 따라 트랜잭션 작업을 수행하는 기법
- 다중버전 동시성 제어 : 트랜잭션 타임스탬프와 데이터의 타임스프를 비교해 직렬가능성이 보장되는 적절한 버전을 선택해 접근하도록 하는 기법
'CS-SQL-DB' 카테고리의 다른 글
모두의 네트워크 | 네트워크 입문자에게 추천 (0) | 2022.08.24 |
---|---|
[정보처리기사 실기] 애플리케이션 테스트 관리, 테스트케이스 설계 (0) | 2022.05.05 |
[CS] C, C++, Java, Python 표준 함수 입출력 (0) | 2022.05.03 |
[CS] 연산자의 종류와 우선순위 및 활용 (비트연산자 시프트연산자) (0) | 2022.05.02 |
[SQL] 데이터베이스 특징과 스키마 종류 (0) | 2022.04.29 |
댓글