DB 용어정리 ( 트랜잭션, 교착 상태 )

영진·2023년 1월 11일
1

network

목록 보기
3/14

오늘은 트랜잭션이랑, 교착상태에 대해 알아볼 것이다.

우선 트랜잭션이란 무엇일까?

트렌젝션

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

SQL를 이용하여 데이터베이스를 접근 하는 것을 의미한다.

  • SELECT
  • INSERT
  • DELETE
  • UPDATE

특징은 크게 4가지로 구분할 수 있다.

  • 원자성 (Atomicity)
  • 일관성 (Consistency)
  • 독립성 (Isolation)
  • 지속성 (Durability)
  1. 원자성: 트랜잭션이 DB에 모두 반영되던가, 전혀 반영되지 않아야한다.
  2. 일관성: 트랜잭션의 작업 처리 결과가 항상 일관성이 있어야 한다.
  3. 독립성: 둘 이상의 트랜잭션이 동시에 실행되고 있을 경우 어떤 하나의 트랜잭션이라도, 다른 트랜잭션의 연산에 끼어 들 수 없다.
  4. 지속성: 트랜잭션이 성공적으로 완료됬을 경우, 결과는 영구적으로 반영되어야 한다.

Commit, Rollback

Commit: 하나의 트랜잭션이 성공적으로 끝나고, DB가 일관성 있는 상태에 있을때이다.

Rollback: 트랜잭션 처리가 비정상적으로 종료되어 트랜잭션의 원자성이 깨질때, 트랜잭션을 처음부터 다시 시작하거나, 트랜잭션의 부분적으로만 연산된 결과를 다시 취소시킨다.


이제 교착 상태가 무엇인지 한 번 알아보자

교착 상태

데드락이라고 하며, 두 개 이상의 작업이 서로 상대방의 작업이 끝나기만을 기다리고 있어 결과적으로 아무것도 하지 못하는 상태이다.

다중 프로그래밍 환경에서 흔히 발생할 수 잇는 문제이다.

다중 프로그래밍: 하나의 CPU로 동시에 여러 프로그램을 실행하는 것처럼 처리하는 것이다.

교착상태의 조건은 다음과 같다.

  1. 상호배제: 프로세스들이 필요로 하는 자원에 대해 배타적인 통제권을 요구
  2. 점유대기: 프로세스가 할당된 자원을 가진 상태에서 다른 자원을 기다림
  3. 비선점: 프로세스가 어떤 자원의 사용을 끝낼 때까지 그 자원을 뺏을 수 없다.
  4. 순환대기: 각 프로세스는 순환적으로 다음 프로세스가 요구하는 자원을 가지고 있다.
profile
I'm good at cloud computing.

0개의 댓글