🤔 동시성 제어란 ?

동시성 제어는 여러 트랜잭션을 동시에 실행하면서도 데이터베이스의 일관성과 격리성을 보장하기 위한 기법이다.

여러 사용자가 동시에 같은 데이터에 엑세스할 때 충돌을 방지하는데 필요하다.


💯동시성 제어의 두 가지 기법

< 잠금(Locking)> < 타임스탬프(Timestamp)>

 

잠금(Locking) 기법: 잠금 기법에서는 데이터 항목에 대해 '잠금(lock)'을 설정하여 다른 트랜잭션들이 해당 데이터에 액세스하는 것을 제한한다. 잠금은 일반적으로 '읽기 잠금(공유 잠금)'과 '쓰기 잠금(배타적 잠금)'의 두 가지 유형이 있다. 읽기 잠금은 해당 데이터 항목을 읽을 수는 있지만 수정할 수는 없게 하며, 쓰기 잠금은 해당 데이터 항목을 읽거나 쓸 수 있는 트랜잭션을 한 개로 제한한다.

타임스탬프(Timestamp) 기법: 타임스탬프 기법에서는 각 트랜잭션에 고유한 타임스탬프를 할당하여 트랜잭션의 순서를 정한다. 이 기법은 트랜잭션들이 동일한 데이터에 대해 순차적으로 액세스하도록 강제함으로써 충돌을 방지한다.

이러한 기법들을 통해 DBMS는 동시에 실행되는 여러 트랜잭션들 사이에서 데이터의 일관성을 유지하고 무결성을 보장한다.

 


 

🥺 < 동시성 제어를 하지 않을 시 발생하는 문제 > 

갱신 손실 (Lost Update): 두 트랜잭션이 동시에 같은 데이터를 변경하려고 할 때, 한 트랜잭션의 변경이 다른 트랜잭션에 의해 덮어쓰여질 수 있다.

비완료 의존성 (Dirty Read): 한 트랜잭션이 아직 커밋되지 않은 변경을 읽는 경우, 그 트랜잭션이 롤백되면 일관성 없는 데이터를 보게 될 수 있다.

계층형 읽기 (Non-repeatable Read): 한 트랜잭션 도중에 같은 데이터를 두 번 이상 읽는 경우, 그 사이에 다른 트랜잭션이 그 데이터를 변경하고 커밋할 경우, 같은 트랜잭션 내에서 데이터의 일관성이 깨질 수 있다.

팬텀 읽기 (Phantom Read): 한 트랜잭션 도중에 일련의 행 (예를 들어, 특정 조건을 충족하는 행)을 두 번 이상 읽는 경우, 그 사이에 다른 트랜잭션이 새 행을 삽입하고 커밋할 경우, 같은 트랜잭션 내에서 일련의 행이 변경되는 현상을 볼 수 있다.


 

Reference :

GeeksforGeeks - Concurrency Control in DBMS

 

Concurrency Control in DBMS - GeeksforGeeks

A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.

www.geeksforgeeks.org

TutorialsPoint - DBMS Concurrency Control

 

DBMS - Concurrency Control

DBMS Concurrency Control - In a multiprogramming environment where multiple transactions can be executed simultaneously, it is highly important to control the concurrency of transactions. We have concurrency control protocols to ensure atomicity, isolation

www.tutorialspoint.com

 

'SQL 이론' 카테고리의 다른 글

SQL Joins  (0) 2023.05.17
정규화(Normalization)  (0) 2023.05.16
DataBase Key  (0) 2023.05.16
DBMS(Database Management System)  (0) 2023.05.16
DataBase 일관성/무결성 제약 조건  (0) 2023.05.16

+ Recent posts