Apache Derby는 여러 가지 격리 수준을 지원하여 동시에 실행되는 트랜잭션 간의 상호 작용을 관리합니다. 격리 수준은 트랜잭션 간의 가시성과 동시성 문제를 다루는 방식을 결정하는 중요한 요소입니다.
Apache Derby에서 제공하는 네 가지 격리 수준은 다음과 같습니다:
-
READ UNCOMMITTED: 이 격리 수준은 다른 트랜잭션에서 변경한 데이터를 다른 트랜잭션에게 허용합니다. 이는 가장 낮은 격리 수준입니다. READ UNCOMMITTED 격리 수준은 데이터의 무결성을 보장하지 않으며, 다른 트랜잭션에 의해 변경된 데이터를 읽을 수 있습니다.
-
READ COMMITTED: 이 격리 수준은 트랜잭션이 커밋된 데이터만 읽을 수 있게 합니다. 한 트랜잭션이 데이터를 변경하면 다른 트랜잭션에서는 해당 변경 내용을 볼 수 없습니다. READ COMMITTED 격리 수준은 다른 트랜잭션 간의 강한 일관성을 유지하지만, 반복 읽기와 불일치된 읽기 문제가 발생할 수 있습니다.
-
REPEATABLE READ: 이 격리 수준은 한 트랜잭션이 데이터를 읽는 동안 다른 트랜잭션이 해당 데이터를 수정할 수 없게 합니다. REPEATABLE READ 격리 수준은 트랜잭션의 일관성을 보장하고 반복 읽기 문제를 해결합니다.
-
SERIALIZABLE: 이 격리 수준은 가장 높은 수준의 격리를 제공합니다. SERIALIZABLE 격리 수준은 여러 트랜잭션 간에 동시성을 완전히 배제합니다. 따라서 데이터의 일관성과 동시성을 보장합니다. SERIALIZABLE 격리 수준은 다른 격리 수준에 비해 성능상의 부담이 큰 단점도 있습니다.
Apache Derby에서는 이러한 격리 수준을 설정할 수 있으며, 기본적으로 REPEATABLE READ 격리 수준이 적용됩니다. 격리 수준을 선택할 때는 데이터의 일관성과 동시성을 고려하여 적절한 수준을 선택하는 것이 중요합니다.
더 자세한 내용은 Apache Derby 문서를 참조하시기 바랍니다.