동시성 제어에 대해 알아보자
·
데이터베이스
동시성 제어만약 여러 사용자가 동시에 데이터베이스에 접근하는 상황에서 적절한 통제가 이루어지지 않는다면, 데이터베이스의 무결성이 깨져 의도하지 않은 결과가 반환되는 문제가 발생할 수 있다. 따라서 DBMS에서는 동시성 제어 (Concurrency Control)를 통해 데이터베이스의 무결성을 보호하고, 트랜잭션이 항상 정확하고 일관된 데이터를 참조할 수 있도록 조정한다.동시성 제어의 목표는 트랜잭션이 동시에 실행될 수 있도록 허용하면서도 데이터의 일관성과 무결성을 유지하는 것이다.동시성 제어 기법1. LockingLocking은 공유 자원에 대한 동시 엑세스를 제어하는 전통적인 방법이다. 잠금을 획득한 스레드만 공유 자원(Critical Section)에 접근할 수 있어 신뢰성과 안정성이 높다. 하지만,..
트랜잭션 격리수준
·
데이터베이스
트랜잭션이란?트랜잭션은 작업의 완전성을 보장해 준다. 즉, 트랜잭션은 논리적인 작업 셋을 모두 완벽하게 처리하거나, 처리하지 못할 경우에는 원 상태로 복구하여 작업의 일부만 적용되는 현상(Partial update)이 발생하지 않도록 해준다. 잠금(Lock)과 비슷한 개념이라고 생각할 수 있지만, 잠금은 동시성을 제어하기 위한 기능이고 트랜잭션은 데이터의 정합성을 보장하기 위한 기능이다.또한, 트랜잭션은 여러 개의 변경 작업을 수행하는 쿼리가 조합됐을 때만 의미 있는 개념이 아니다. 트랜잭션은 하나의 논리적인 작업 셋에 쿼리의 수와 상관없이 원자성을 보장하는 것이다.주의사항트랜잭션 범위를는 최소화해하는 것이 좋다. 이유가 무엇일까? 데이터베이스 커넥션은 개수가 제한적이어서 각 단위 프로그램이 커넥션을 소..