데이터베이스에서의 로킹(Locking) 단위란 말 그대로 "잠그는 단위"를 말 한다. 로킹 기법이란 하나의 트랜잭션이 데이터를 액세스하는 동안 다른 트랜잭션이 그데이터 항목을 액세스할 수 없도록 하는 병행 제어 기법이며, 로크는 사용하는 데이터 객체이다.
쉽게 말하면, 한번에 한명만 사용할 수 있게 하는 단위를 "로킹 단위" 라고 한다는 것이다.
예를들어 어떤 프로젝트의 소스를 여러 사람이 동시에 작업할 경우 파일이 꼬일 수도있다. 그래서 누군가가 특정 파일을 건들고 있을때, 다른 사용자는 그 파일을 건들지 못하도록 하는데 안전한데, 이게 로킹이다. 그리고 여 경우에선 로킹 단위가 파일이 된다.
이런 방법도 있지만 더 높은 안전성을 위해서, 어떤 사람이 어떤 폴더에 있는 파일을 작업하고 있을때 다른 사람으로 하여금 그 폴더에 아예 접근을 못 하게 하는 방법도 있다. 이렇게 하면 로킹 단위가 폴더가 된다. 그리고 더 나아가서 한명씩 차례로 작업할 수만 있고, 누군가가 작업 중이라면 아예 프로젝트에 접근조차 못하게 할 수 있다. 이때 로킹 단위는 프로젝트이다.
이때 그 단위별로 나누어진 하나하나를 '로크' 라고 하는데, 로킹 단위를 파일로 하자면 파일 하나하나가 로크가 되니 당연히 그 수가 많아질테고, 폴더로 하자면 훨씬 줄어들 것이다. 그리고 로킹 단위를 프로젝트로 하면 로크는 1개 밖에 없게 된다.
데이터 베이스 트랜젝션에서도 이와 마찬가지로 로킹 단위는 파일, 레코드, 필드와 같이 여러가지로 나누어 질 수도 있다.
상식적으로 생각하여,
로킹 단위가 크면 -> 로크의 수가 적어진다. -> 제어 기법이 간단해 진다. -> 병행성이 감소한다.
로킹 단위가 작으면 -> 로크의 수가 많아진다. -> 제어 하기 까다롭다. -> 병행성이 증가한다.
'IT 이론 > 데이터베이스' 카테고리의 다른 글
[데이터베이스] 정규화(Normalization) (0) | 2014.05.24 |
---|---|
[데이터베이스] 해싱(Hashing) 관련 용어 (0) | 2014.05.24 |
여러가지 관계해석식 표현법과 예제 (0) | 2013.01.12 |
여러가지 관계대수식 표현법과 예제 (0) | 2013.01.12 |
[데이터베이스] Super Key, Candidate Key, Primary Key (0) | 2013.01.12 |
댓글