장애 발생 시점에 따라 redo나 undo를 실행한다.
트랜잭션이 부분 완료되면 로그에 기록도니 내용을 DB에 한 번에 반영한다.
redo만 사용한다.
undo는 사용하지 않는 이유??
->장애 발생 시 로그 기록만 버리면 DB가 원래 상태를 유지할 수 있기 때문에
일정 검사 시점이 되면 로그 레코드를 로그 파일에 기록하고 검사 시점(check point)을 만든다.
장애 발생 시 가장 최근 검사 시점 이후의 트랜잭션만 회복 작업 수행하면 되기 때문에 시간 단축의 장점이 있다.
일정 주기마다 DB 전체 내용을 다른 저장 장치에 저장한다.
만약에 디스크 장애가 발생한다면??
가장 최근의 덤프로 DB를 복구하고 필요에 따라 redo를 수행한다.
여러 사용자가 데이터 베이스르 동시에 공유할 수 있도록 여러 개의 트랜잭션을 동시에 수행하는 것
병행 수행의 문제점
로킹 기법(가장 대표적)
한 트랙잭션이 먼저 접근한 데이터에 대한 독점권을 가진다.
lock 연산
unlock 연산
로킹 단위와 병행성,제어 난이도는 반비례 관계이다.
공용 lock - read only
전용 lock - read, write
전용 lock 실행 시 lock 연산은 양립할 수 없다.