ACID

majungha·2023년 4월 25일
1

메모

목록 보기
39/57

오늘의 공부 👍

오늘은 트랜잭션의 속성인 ACID에 대해서 알아보겠습니다.

📝 트랜잭션의 속성(ACID)


  • ACID는 트랜잭션을 정의하는 4가지 중대한 속성을 가리키는 약어입니다.
  • 원자성(Atomicity), 일관성(Consistency), 신뢰성(Reliability), 격리(Isolation) 그리고 영속성(Durability)을 의미한다.
  • 한 테이블의 읽기, 쓰기 또는 수정 작업이 각각 다음과 같은 속성을 가지고 있다고 보장해준다.

▷ A(Atomicity)원자성

  • 모두 성공할 것 아니면 모두 실패하게 만드는 것이다.(DB의 오염을 막기 위함)
  • 이 속성이 있으면 스트리밍 데이터 소스가 스트리밍 중에 갑자기 오류를 일으키더라도 데이터 손실과 손상이 방지된다.

▷ C(Consistency) : 일관성

  • 똑같은 쿼리를 조회할 때마다 동일한 결과값이 나타나야하는 것이다.
  • 트랜잭션이 테이블에 변경 사항을 적용할 때 미리 정의된, 예측할 수 있는 방식만 취한다.
  • 트랜잭션 일관성이 확보되면 데이터 손상이나 오류 때문에 테이블 무결성에 의도치 않은 결과가 생기지 않는다.

▷ I(Isolation) : 격리성

  • A 사람의 요청을 처리하는 동안 B사람의 요청은 잠시 기다리는 것이다.
  • 각각의 요청이 실제로는 모두 동시에 발생하더라도, 마치 하나씩 발생하는 것처럼 발생할 수 있다.

▷ D(Durability) : 지속성

  • 성공하여 commit이 되었으면 서버를 다시 켜도 그 데이터는 그대로 유지가 되어야 되는 것이다.

📝 ACID의 장점


  • 가능한 최대한의 데이터 안정성과 무결성을 보장해줍니다.
  • 데이터가 일관적이지 않은 상태가 되는 불상사가 절대로 일어나지 않게 해준다.

출처 및 참고
코드캠프
ACID 트랜잭션

profile
개발자 블로그 / 항상 겸손한 자세로 배우면서 성장하자 할 수 있다!

0개의 댓글