[DB] 동시성 제어(Concurrency Control), 직렬화(Serialization)

2023. 11. 30. 12:46·Computer Science (CS)
반응형

Concurrency Control


동시성 제어 란?

동시성 제어는 여러 트랜잭션이 동시에 데이터베이스에 접근하고 수정하는 경우 발생할 수 있는 간섭과 충돌을 방지하며, 데이터의 일관성과 무결성을 유지하는 데 중요한 역할을 한다.

 

특히 은행, 증권사, 카드사와 같은 기업의 데이터베이스는 다수의 사용자가 거래를 수행하고 동시에 업데이트를 진행할 수 있기 때문에 이러한 환경에서는 동시성 제어가 필수적이다.

 

동시성 문제를 관리하기 위해 데이터베이스 시스템은 여러 기술과 기법을 사용한다.

예를 들면 트랜잭션 격리 수준, 락(lock) 메커니즘, 교착상태(데드락) 방지 등이 있다. 이러한 기술들은 동시성을 보장하면서도 성능을 최적화하는 데 도움을 준다.

 

 

동시성 제어 기법

제어 기법 설명
락킹 트랜잭션이 데이터 잠금 설정시 다른 트랜잭션은 해당 데이터에 대해 잠금 해제 될때 까지 접근/수정/삭제 불가
타임스탬프 시스템에서 생성하는 고유 번호인 타임스탬프를 트랜잭선에 부여하여 접근 순서를 미리 정한다 
적합성 검증 먼저 트랜잭션을 수행하고 트랜잭션을 종료할때 적합성을 검증하여 최종 반영

 


트랜잭션 직렬화

 

트랜잭션 직렬화는 데이터베이스 시스템이 안정적이고 예측 가능한 방식으로 다수의 트랜잭션을 처리할 수 있도록 보장한다.

 

이를 통해 데이터베이스에서의 데이터 일관성과 무결성이 유지되며, 여러 사용자 간의 동시성이 확보됩니다.

  • 동시성 제어: 여러 트랜잭션이 동시에 실행될 때, 서로 간섭이나 충돌을 방지하는 메커니즘. 이를 통해 트랜잭션 간의 일관성을 유지한다.
  • 시리얼 가능성: 트랜잭션 직렬화는 여러 트랜잭션이 순차적으로 실행될 때와 동일한 결과를 보장. 즉, 동시에 실행되는 것과 순차적으로 실행되는 것 사이에는 결과적으로 차이가 없어야 한다.
  • 그래프 이론: 트랜잭션 직렬화는 방향성 그래프로 나타낼 수 있다. 이 그래프에서 각 트랜잭션은 노드를 나타내고, 트랜잭션 간의 실행 순서를 나타내는 방향성 있는 에지가 있다.
  • 교착상태(데드락) 방지: 트랜잭션 직렬화는 데드락을 방지하기 위해 트랜잭션 간의 에지가 사이클을 형성하지 않도록 관리한다.
반응형

'Computer Science (CS)' 카테고리의 다른 글

[DB] Database Project - 5 / PHP 연동 및 플랫폼 구현  (0) 2024.03.06
JWT(JSON Web Token) 이란?  (0) 2024.01.23
[DB] 트랜잭션 : 데이터 처리의 기본 작업 단위  (1) 2023.11.30
[DB] Database Project - 4 / SQL Developer 설치 및 Oracle DB 구축  (1) 2023.11.28
[DB] Database Project - 3 오라클 데이터베이스 Entity Relationship Diagram 설계  (0) 2023.11.28
'Computer Science (CS)' 카테고리의 다른 글
  • [DB] Database Project - 5 / PHP 연동 및 플랫폼 구현
  • JWT(JSON Web Token) 이란?
  • [DB] 트랜잭션 : 데이터 처리의 기본 작업 단위
  • [DB] Database Project - 4 / SQL Developer 설치 및 Oracle DB 구축
BoChan
BoChan
    반응형
  • BoChan
    보람찬 코기의 개발자 블로그
    BoChan
  • 전체
    오늘
    어제
    • 분류 전체보기 (61)
      • Kubernetes_쿠버네티스 (8)
      • Docker_도커 (6)
      • Public Cloud (3)
      • 머신러닝 & 딥러닝 & AI 맛보며 친해지기 (10)
      • Develop & Project Review (6)
      • git&github (1)
      • Programming Language (2)
      • Computer Science (CS) (15)
      • 일상&인턴 (10)
      • 논문 리뷰 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • Github
    • Baekjoon Online Judge
  • 공지사항

  • 인기 글

  • 태그

    연구연수생
    인터넷공학
    DB project
    jetson
    ETRI
    Docker
    DB
    AWS
    PyTorch
    머신러닝
    쿠버네티스
    s3fs-fuse
    도커
    python
    k3s
    k8s
    FastAPI
    ORACLEDB
    딥러닝
    Yolov7
    인턴
    Database
    한국전자통신연구원
    ip
    대전
    TensorRT
    Rag
    onnx
    JetsonNano
    컴퓨터공학
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
BoChan
[DB] 동시성 제어(Concurrency Control), 직렬화(Serialization)
상단으로

티스토리툴바