본문 바로가기
데이터베이스

[데이터베이스설계와질의] 트랜잭션(transaction)이란?

by sum_mit45 2023. 11. 6.
728x90
반응형

출처: 심준호 교수님, 데이터베이스설계와 질의 수업,

R. Ramakrishnan and J.Gehrke, Database Management Systems, 3rd ed.

데이터베이스 시스템 3판

 

Transaction: DB의 프로그램 수행 단위

- DBMS는 시스템이 붕괴된 후 재시동될 때에 모든 데이터(와 처리 중에 있던 응용들의 상태)를 일관적인 상태로 복원하는 것을 보장한다.

- DBMS는 각 사용자가 다른 사람들이 동일한 데이터를 동시에 접근하고 있다는 사실을 아무 지장 없이 무시할 수 있도록 데이터의 동시접근을 계획한다.

- 미완료 트랜잭션과 시스템 붕괴: DBMS는 완료되지 않은 트랜잭션들에 의해 수행된 변경들이 데이터베이스로부터 제거되는 것을 보장해야 한다.

transaction 이란?

  • DBMS에서 사용자 프로그램의 일회 실행이다.
  • 동일 프로그램을 여러 번 실행하는 것은 여러 개의 트랜잭션을 생성다.
  • 부분적으로 수행된 트랜잭션들은 허용되지 않는다.
  • 한 그룹의 트랜잭션들의 효과는 모든 트랜잭션들이 어떤 직렬 순서에 따라 수행한 효과와 동등하다.
  • 트랜잭션이 시작할 때, DB는 consistent state 라고 한다면, 완전히 실행된 각각의 트랜잭션은 DB를 떠나야만 한다.

Concurrency Control: 트랜잭션들의 동시수행

  • 시스템에서 동시성 제어 해야하고, transactions을 동시에 두 개 돌린다는 것은 각각의 operation들이 interleaving 하는 것이다. (사람이 느끼기에 동시에 동작) → 이 때 순서를 잘 동작시켜야 하는데(순서 제어), 이 방법으로 Scheduling, Locking이 있다.
  • 데이터베이스는 많은 사용자들에게 공유되고, 그들의 요구사항을 DBMS에 독립적으로 요청한다.
  • disk 접근은 빈번하고, 상대적으로 느리기 때문에 cpu를 조절하는 것은 중요하다.

DBMS의 구조

DBMS의 구조

[관계 데이터 모델을 기반으로 하는 전형적인 DBMS 구조]

  • DBMS는 다양한 사용자 인터페이스를 통해 생성되는 SQL 명령을 받아들이고, 질의 수행 계획을 수립하고, 데이터베이스를 대상으로 이 계획을 실행하고, 결과를 반환한다.
  • 이 layers 들은 concurrency control 과 recovery를 고려해야한다.
  • (user 요청 순서는 위 -> 아래이고, 처리 순서는 아래 → 위이다. 
  1. 질의 최적하기(query optimizer): 사용자가 어떤 질의를 입력하면, 구문이 분석된 질의는 질의 최적하기로 넘겨진다. 질의 최적하기는 데이터가 어떻게 저장되어 있는가에 관한 정보를 이용한다.
  2. 실행 계획(execution plan): 질의를 계산하기 위한 blueprint로, 대게 연산자들의 트리로 표현된다.
  3. Relational Operators
  4. Files and Access Methods: 페이지들의 모임이나 레코드들의 모임인 파일 개념을 지원한다. 인덱스, 힙 파일(정렬되지 않은 페이지)로 이루어진 파일이 지원된다. 이 계층은 파일 내의 페이지들을 계속 관리하고, 한 페이지 내에 있는 정보를 조직한다.
  5. Buffer Management: 파일과 접근 방법 계층의 코드는 버퍼 관리기(buffer manager) 계층 위에 위치한다. 버퍼 관리기는 읽기 요청에 따라 필요한 대로 페이지들을 디스크로부터 주기억장치로 가져온다.
  6. Disk Space Management: DMBS 소프트웨어의 최하층, 데이터가 저장되는 디스크 상의 공간을 관리한다. 그 위의 계층은 디스크 공간 관리기라고 불리는 이 계층을 통해 페이지를 할당하고, 반납하고, 읽고, 기록한다.

concurrency control과 recovery에 관련된 DBMS 구성요소로는 트랜잭션 관리기, 잠금 관리기, 복구 관리기 등이 있다.

728x90
반응형