트랜잭션 분석 / CRUD 분석
트랜잭션 : 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미함
트랜잭션의 상태
- 활동 : 트랜잭션이 실행중인 상태이다.
- 실패 : 트랜잭션 실행에 오류가 발생하여 중단된 상태이다.
- 철회 : 트랜잭션이 비정장적으로 ㅈ오료되어 RollBack 연산을 수행한 상태이다.
- 부분완료 : 트랜잭션을 모두 성공적으로 실행한 후 commit 연산이 실행되기 직전인 상태이다.
- 완료 : 트랜잭션을 모두 성공적으로 실행한 후 Commit연산을 실행한 후의 상태이다.
트랜잭션의 특성
데이터의 무결성을 보장하기 위하여 DBMS의 트랜잭션이 가져야 할 특성들이다.
- Atomicity : 트랜잭션의 연산은 Commit 되던지 Rollback되어야 한다. 완전히 완료되던지 하나라도 문제가 발생하면 Rollback되어야 한다.
- Consistency : 트랜잭션이 실행을 성공적으로 완료하면 언제나 이로간성 있는 데이터베이스 상태로 변환한다. 시스템이 가지고 있는 고정 요소는 트랜잭션 수행 전과 트랜잭션 수행 완료 후의 상태가 같아야 한다.
- Isolation : 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행중에 다른 트랜잭션의 연산이 끼어들 수 없다.
하나가 완전히 완료될 때 까지 다른 트랜잭션에서 수행 결과를 참조할 수 없다.
- Durability : 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야한다.
CRUD분석
데이터베이스 테이블에 변화를 주는 트랜잭션의 CRUD연산에 대해 CRUD매트릭스를 작성하여 분석하는 것
- CRUD분석을 통해 데이터의 양의 유추 가능
- CRUD분석을 통해 많은 트랜잭션이 몰리는 테이블을 파악할 수 있으므로 유용한 자료 활용 가능
- CRUD분석을 통해 연결지연이나 타임아웃 오류를 방지할 수 있다.
<aside>
💡 마지막 연산이 실행되었지만 최종 결과를 데이터베이스에 반영하지 않은 상태 : partially committed
</aside>