본문 바로가기
IT지식/데이터베이스

[데이터베이스] DB 트랜잭션에 대해 공부해보자.

by five-sun 2022. 12. 14.
728x90

 

우선, 트랜잭션이란?

데이터베이스의 상태를 변화시키기 위해 수행하는 작업의 단위이다.

상태를 변화시킨다는 것은 SQL 질의어를 통해 DB에 접근한다는 것이다. (Ex: Select, Insert, Delete, Update)

하나의 트랜잭션 설계를 잘 만드는 것이 데이터를 다룰 때 많은 이점을 가져다준다.

 

좋은 트랜잭션을 만들기 위해선 트랜잭션의 4가지 특성을 알아야한다. (ACID)

원자성(Atomicity) : 트랜잭션이 DB에 모두 반영되거나, 혹은 전혀 반영되지 않아야 한다.

일관성(Consistency) : 트랜잭션의 작업 처리 결과는 항상 일관성 있어야 한다.

독립성(Isolation) : 둘 이상의 트랜잭션이 동시에 병행 실행되고 있을 때, 어떤 트랜잭션도 다른 트랜잭션 연산에 끼어들 수 없다.

지속성(Durability) : 트랜잭션이 성공적으로 완료되었으면, 결과는 영구적으로 반영되어야 한다.

 

트랜잭션이 이런 특징들을 지키기 위해 사용하는 연산이 있다.

Commit :트랜잭션이 성공적으로 끝났고, DB가 일관성있는 상태일 때, 이를 알려주기 위해 사용하는 연산

Rollback :  하나의 트랜잭션 처리가 비정상적으로 종료된 경우 최종 저장상태로 roll back 하는 연산.

 

Transaction 관리를 위한 DBMS의 전략

이 전략을 이해하기 위해서는 우선 DBMS의 개략적인 구조와 버퍼 관리자 및 트랜잭션 관리와 연관된 버퍼 관리 정책에 대한 이해가 필요하다.

데이트베이스 시스템은 보통 비휘발성 저장 장치인 디스크에 데이터를 저장하며 전체 데이터베이스의 일부분을 메인 메모리에 유지한다. DBMS는 데이터를 고정 길이의 페이지로 저장하고 디스크에서 읽거나 쓸 때에 페이지 단위로 입출력이 이루어진다. 이때 메인 메모리에 유지하는 페이지들을 관리하는 모듈은 보통 페이지 버퍼 관리자 또는 버퍼 관리자라고 부른다. 많은 주요 모듈 중에서 매우 중요한 묘듈 중의 하나이다.

DBMS의 개략적인 구조

버퍼 관리 정책이 트랜잭션 관리에서 매우 중요한 결정을 가져오기 때문에 트랜잭션 관리를 위한 전략을 이해하기 위해서 버퍼 관리자를 알아야 한다.

 

-UNDO와 REDO에 대해서는 나중에 자세히 공부해봐야할 거 같다.

출처: https://d2.naver.com/helloworld/407507

728x90