본문내용
1. 후로킹 파일 개요
1.1. 동시성 제어
동시성 제어는 데이터베이스 관리에 있어 매우 중요한 요소이다. 다수의 사용자가 데이터베이스에 동시에 접근할 수 있도록 허용하되, 데이터베이스의 일관성을 유지하는 것이 핵심이다. 이를 위해 데이터베이스 관리 시스템에서는 로킹(locking) 기법을 활용한다.
로킹이란 동일한 데이터 항목에 대한 여러 트랜잭션들의 동시 접근을 조정하는 기법이다. 데이터베이스 내 각 데이터 항목마다 로크(lock)라 불리는 변수가 존재한다. 트랜잭션이 데이터 항목에 접근할 때마다 해당 데이터의 로크를 요청하게 된다.
독점 로크(X-lock, eXclusive lock)는 트랜잭션에서 갱신 목적으로 데이터 항목에 접근할 때 요청된다. 공유 로크(S-lock, Shared lock)는 트랜잭션에서 읽기 목적으로 데이터 항목에 접근할 때 요청된다. 이를 통해 데이터의 수정이 필요한 경우에는 독점적 접근이 가능하며, 읽기 전용의 경우에는 동시 접근이 가능해진다.
데이터베이스 관리 시스템은 2단계 로킹 프로토콜(2-phase locking protocol)을 따른다. 이는 트랜잭션이 로크 확장 단계에서 새로운 로크를 요청할 수 있지만, 기존에 보유하고 있던 로크는 해제할 수 없는 단계와, 로크 수축 단계에서 보유 로크를 해제할 수 있지만 새로운 로크 요청은 불가능한 단계로 구성된다. 이를 통해 데이터의 일관성을 보장할 수 있다.
그러나 2단계 로킹 프로토콜에서는 데드락(deadlock) 문제가 발생할 수 있다. 데드락이란 두 개 이상의 트랜잭션이 서로 상대방이 보유하고 있는 로크를 요청하며 기다리는 상태를 말한다. 이 경우 시스템은 자동으로 일부 트랜잭션을 중단시켜 데드락을 해결한다.
이처럼 동시성 제어는 데이터베이스의 일관성 및 안정성을 유지하는 핵심 기술이다. 로킹 기법을 통해 트랜잭션 간 상호작용을 조절하고, 데드락 문제를 해결함으로써 다수의 사용자가 동시에 데이터베이스에 접근할 수 있도록 한다.
1.2. 데이터베이스 회복
데이터베이스 시스템에서 회복(recovery)은 시스템 고장이나 재해로 인해 발생한 데이터베이스...