개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.05.20 05:10

외부 잠금(External Locking) 이해 도움을 청합니다.

목록
  • 프론트엔드기사 13일 전 2025.05.20 05:10 인기
  • 188
    1
저는 현재 데이터베이스 시스템 설계를 공부하고 있습니다.
외부 잠금은 데이터베이스 시스템에서 하나의 트랜잭션에 의해 데이터베이스의 데이터가 잠금된 상태를 유지하는 것을 의미합니다.
이러한 외부 잠금은 데이터베이스의 동시성 제어와 무결성 유지에 중요한 역할을 합니다.

제가 이해한 외부 잠금의 개념은 다음과 같습니다.
- 데이터베이스의 데이터를 잠금 상태로 유지하는 방법은 트랜잭션의 시작 시점에 잠금을 걸어두고,
- 트랜잭션이 완료되면 잠금을 해제하는 방식이라고 합니다.
- 그러나 외부 잠금의 구체적인 동작 방식, 예를 들어 잠금의 타입(쉐어드 잠금, 익스클루시브 잠금 등)과 잠금의 동시성 제어 방식에 대해 잘 이해하지 못하고 있습니다.

이를 위해 외부 잠금의 구체적인 동작 방식에 대해 알려주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  13일 전



    외부 잠금은 데이터베이스 시스템에서 하나의 트랜잭션에 의해 데이터베이스의 데이터가 잠금된 상태를 유지하는 것을 의미합니다.

    외부 잠금의 구체적인 동작 방식은 다음과 같습니다.

    - 쉐어드 잠금(Shared Lock) : 여러 트랜잭션이 동시에 데이터를 읽을 수 있도록 허용합니다. 읽기 연산은 공유 잠금을 획득하여 데이터를 읽을 수 있습니다.
    - 익스클루시브 잠금(Exclusive Lock) : 데이터를 읽기 전에 다른 트랜잭션이 데이터를 수정하지 못하도록 데이터에 대한 독점적인 잠금을 획득합니다. 쓰기 연산은 독점 잠금을 획득하여 데이터를 수정할 수 있습니다.
    - 업그레이드 잠금(Upgrade Lock) : 트랜잭션이 데이터를 읽기 전에 데이터를 수정할 수 있도록 허용합니다. 다른 트랜잭션이 데이터를 읽을 수는 있지만 데이터를 수정할 수는 없습니다.
    - 다운그레이드 잠금(Downgrade Lock) : 트랜잭션이 데이터를 수정하기 전에 데이터를 읽을 수 있도록 허용합니다. 다른 트랜잭션이 데이터를 수정할 수는 있지만 데이터를 읽을 수는 없습니다.

    외부 잠금의 동시성 제어 방식은 다음과 같습니다.

    - First-Come-First-Served(FCFS) : 트랜잭션이 잠금을 요청하면, 요청된 순서대로 잠금을 획득하거나 거절합니다.
    - Priority-Based : 트랜잭션의 우선순위를 고려하여 잠금을 획득하거나 거절합니다.
    - Time-Based : 트랜잭션의 시작 시간을 고려하여 잠금을 획득하거나 거절합니다.

    이러한 외부 잠금의 구체적인 동작 방식과 동시성 제어 방식은 데이터베이스 시스템의 성능과 무결성을 유지하는 데 중요합니다.

    2025-05-20 05:11

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 24,476건 / 14 페이지

검색

게시물 검색